mirror of
https://github.com/e107inc/e107.git
synced 2025-08-05 14:17:49 +02:00
e_form handler fixes/improvements
This commit is contained in:
@@ -9,8 +9,8 @@
|
|||||||
* Form Handler
|
* Form Handler
|
||||||
*
|
*
|
||||||
* $Source: /cvs_backup/e107_0.8/e107_handlers/form_handler.php,v $
|
* $Source: /cvs_backup/e107_0.8/e107_handlers/form_handler.php,v $
|
||||||
* $Revision: 1.8 $
|
* $Revision: 1.9 $
|
||||||
* $Date: 2008-12-16 14:22:01 $
|
* $Date: 2008-12-17 11:08:31 $
|
||||||
* $Author: secretr $
|
* $Author: secretr $
|
||||||
*
|
*
|
||||||
*/
|
*/
|
||||||
@@ -66,7 +66,7 @@ class e_form
|
|||||||
var $_tabindex_enabled = true;
|
var $_tabindex_enabled = true;
|
||||||
var $_cached_attributes = array();
|
var $_cached_attributes = array();
|
||||||
|
|
||||||
function e_form($enable_tabindex = true)
|
function e_form($enable_tabindex = false)
|
||||||
{
|
{
|
||||||
$this->_tabindex_enabled = $enable_tabindex;
|
$this->_tabindex_enabled = $enable_tabindex;
|
||||||
}
|
}
|
||||||
@@ -74,26 +74,30 @@ class e_form
|
|||||||
function text($name, $value, $maxlength = 200, $options = array())
|
function text($name, $value, $maxlength = 200, $options = array())
|
||||||
{
|
{
|
||||||
$options = $this->format_options('text', $name, $options);
|
$options = $this->format_options('text', $name, $options);
|
||||||
return "<input type='text' name='{$name}' value='{$value}' maxlength='{$maxlength}'".$this->get_attributes($options, $name, $value)." />";
|
//never allow id in format name-value for text fields
|
||||||
|
return "<input type='text' name='{$name}' value='{$value}' maxlength='{$maxlength}'".$this->get_attributes($options, $name)." />";
|
||||||
}
|
}
|
||||||
|
|
||||||
function file($name, $options = array())
|
function file($name, $options = array())
|
||||||
{
|
{
|
||||||
$options = $this->format_options('text', $name, $options);
|
$options = $this->format_options('text', $name, $options);
|
||||||
return "<input type='text' name='{$name}'".$this->get_attributes($options, $name, $value)." />";
|
//never allow id in format name-value for text fields
|
||||||
|
return "<input type='text' name='{$name}'".$this->get_attributes($options, $name)." />";
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
function password($name, $maxlength = 50, $options = array())
|
function password($name, $maxlength = 50, $options = array())
|
||||||
{
|
{
|
||||||
$options = $this->format_options('text', $name, $options);
|
$options = $this->format_options('text', $name, $options);
|
||||||
return "<input type='password' name='{$name}' value='' maxlength='{$maxlength}'".$this->get_attributes($options, $name, $value)." />";
|
//never allow id in format name-value for text fields
|
||||||
|
return "<input type='password' name='{$name}' value='' maxlength='{$maxlength}'".$this->get_attributes($options, $name)." />";
|
||||||
}
|
}
|
||||||
|
|
||||||
function textarea($name, $value, $rows = 15, $cols = 40, $options = array())
|
function textarea($name, $value, $rows = 15, $cols = 40, $options = array())
|
||||||
{
|
{
|
||||||
$options = $this->format_options('textarea', $name, $options);
|
$options = $this->format_options('textarea', $name, $options);
|
||||||
return "<textarea name='{$name}' rows='{$rows}' cols='{$cols}'".$this->get_attributes($options, $name, $value).">{$value}</textarea>";
|
//never allow id in format name-value for text fields
|
||||||
|
return "<textarea name='{$name}' rows='{$rows}' cols='{$cols}'".$this->get_attributes($options, $name).">{$value}</textarea>";
|
||||||
}
|
}
|
||||||
|
|
||||||
function checkbox($name, $value, $checked = false, $options = array())
|
function checkbox($name, $value, $checked = false, $options = array())
|
||||||
@@ -156,21 +160,35 @@ class e_form
|
|||||||
function submit($name, $value, $options = array())
|
function submit($name, $value, $options = array())
|
||||||
{
|
{
|
||||||
$options = $this->format_options('submit', $name, $options);
|
$options = $this->format_options('submit', $name, $options);
|
||||||
return "<input class='button' type='submit' name='{$name}' value='{$value}'".$this->get_attributes($options, $name, $value)." />";
|
return "<input type='submit' name='{$name}' value='{$value}'".$this->get_attributes($options, $name, $value)." />";
|
||||||
}
|
}
|
||||||
|
|
||||||
function submit_image($name, $value, $image, $options = array())
|
function submit_image($name, $value, $image, $title='', $options = array())
|
||||||
{
|
{
|
||||||
$options = $this->format_options('submit', $name, $options);
|
$options = $this->format_options('submit_image', $name, $options);
|
||||||
return "<input class='image' type='image' src='{$image}' name='{$name}' value='{$value}'".$this->get_attributes($options, $name, $value)." />";
|
switch ($image) {
|
||||||
|
case 'edit':
|
||||||
|
$image = e_ADMIN_ABS.'admin_images/edit_16.png';
|
||||||
|
$options['class'] = 'action edit';
|
||||||
|
break;
|
||||||
|
|
||||||
|
case 'delete':
|
||||||
|
$image = e_ADMIN_ABS.'admin_images/delete_16.png';
|
||||||
|
$options['class'] = 'action delete';
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
$options['title'] = $title;//shorthand
|
||||||
|
|
||||||
|
return "<input type='image' src='{$image}' name='{$name}' value='{$value}'".$this->get_attributes($options, $name, $value)." />";
|
||||||
}
|
}
|
||||||
|
|
||||||
function admin_button($name, $value, $action = 'submit', $label = '', $options = array())
|
function admin_button($name, $value, $action = 'submit', $label = '', $options = array())
|
||||||
{
|
{
|
||||||
$options['class'] = $action; //additional classes in options not allowed
|
|
||||||
$btype = 'submit';
|
$btype = 'submit';
|
||||||
if($action == 'action') $btype = 'button';
|
if($action == 'action') $btype = 'button';
|
||||||
$options = $this->format_options('admin_button', $name, $options);
|
$options = $this->format_options('admin_button', $name, $options);
|
||||||
|
$options['class'] = $action;//shorthand
|
||||||
if(empty($label)) $label = $value;
|
if(empty($label)) $label = $value;
|
||||||
|
|
||||||
return "
|
return "
|
||||||
@@ -178,6 +196,18 @@ class e_form
|
|||||||
";
|
";
|
||||||
}
|
}
|
||||||
|
|
||||||
|
function getNext()
|
||||||
|
{
|
||||||
|
if(!$this->_tabindex_enabled) return 0;
|
||||||
|
$this->_tabindex_counter += 1;
|
||||||
|
return $this->_tabindex_counter;
|
||||||
|
}
|
||||||
|
|
||||||
|
function resetTabindex()
|
||||||
|
{
|
||||||
|
$this->_tabindex_counter = 0;
|
||||||
|
}
|
||||||
|
|
||||||
function get_attributes($options, $name = '', $value = '')
|
function get_attributes($options, $name = '', $value = '')
|
||||||
{
|
{
|
||||||
$ret = '';
|
$ret = '';
|
||||||
@@ -203,8 +233,8 @@ class e_form
|
|||||||
break;
|
break;
|
||||||
|
|
||||||
case 'tabindex':
|
case 'tabindex':
|
||||||
if($optval === false || !$this->_tabindex_enabled) break;
|
if(false === $optval || !$this->_tabindex_enabled) break;
|
||||||
$this->_tabindex_counter++;
|
$this->_tabindex_counter += 1;
|
||||||
$ret .= " tabindex='".($optval ? $optval : $this->_tabindex_counter)."'";
|
$ret .= " tabindex='".($optval ? $optval : $this->_tabindex_counter)."'";
|
||||||
break;
|
break;
|
||||||
|
|
||||||
@@ -245,8 +275,11 @@ class e_form
|
|||||||
{
|
{
|
||||||
if($id_value === false) return '';
|
if($id_value === false) return '';
|
||||||
|
|
||||||
//format the name first
|
//format data first
|
||||||
$name = str_replace(array('[]', '[', ']', '_'), array('', '-', '', '-'), $name);
|
$name = rtrim(str_replace(array('[]', '[', ']', '_'), array('-', '-', '', '-'), $name), '-');
|
||||||
|
$value = trim(preg_replace('#[^a-z0-9\-]/i#','-', $value), '-');
|
||||||
|
|
||||||
|
if(!$id_value && is_numeric($value)) $id_value = $value;
|
||||||
|
|
||||||
if(empty($id_value) ) return " {$return_attribute}='{$name}".($value ? "-{$value}" : '')."'";// also useful when name is e.g. name='my_name[some_id]'
|
if(empty($id_value) ) return " {$return_attribute}='{$name}".($value ? "-{$value}" : '')."'";// also useful when name is e.g. name='my_name[some_id]'
|
||||||
elseif(is_numeric($id_value) && $name) return " {$return_attribute}='{$name}-{$id_value}'";// also useful when name is e.g. name='my_name[]'
|
elseif(is_numeric($id_value) && $name) return " {$return_attribute}='{$name}-{$id_value}'";// also useful when name is e.g. name='my_name[]'
|
||||||
@@ -271,7 +304,7 @@ class e_form
|
|||||||
|
|
||||||
foreach (array_keys($user_options) as $key)
|
foreach (array_keys($user_options) as $key)
|
||||||
{
|
{
|
||||||
if(!isset($def_options[$key])) unset($user_options[$key]);
|
if(!isset($def_options[$key])) unset($user_options[$key]);//remove it?
|
||||||
}
|
}
|
||||||
|
|
||||||
$user_options['name'] = $name; //required for some of the automated tasks
|
$user_options['name'] = $name; //required for some of the automated tasks
|
||||||
@@ -340,6 +373,11 @@ class e_form
|
|||||||
unset($def_options['checked'], $def_options['selected'], $def_options['readonly']);
|
unset($def_options['checked'], $def_options['selected'], $def_options['readonly']);
|
||||||
break;
|
break;
|
||||||
|
|
||||||
|
case 'submit_image':
|
||||||
|
$def_options['class'] = 'image';
|
||||||
|
unset($def_options['checked'], $def_options['selected'], $def_options['readonly']);
|
||||||
|
break;
|
||||||
|
|
||||||
case 'admin_button':
|
case 'admin_button':
|
||||||
unset($def_options['checked'], $def_options['selected'], $def_options['readonly']);
|
unset($def_options['checked'], $def_options['selected'], $def_options['readonly']);
|
||||||
break;
|
break;
|
||||||
|
Reference in New Issue
Block a user