mirror of
https://github.com/e107inc/e107.git
synced 2025-08-04 13:47:31 +02:00
Fixes #3461 - Removed duplicated type=hidden elements. Code Cleanup
This commit is contained in:
@@ -17,7 +17,7 @@ if (!defined('e107_INIT')) { exit; }
|
|||||||
* @package e107
|
* @package e107
|
||||||
* @subpackage e107_handlers
|
* @subpackage e107_handlers
|
||||||
* @version $Id$
|
* @version $Id$
|
||||||
* @todo hardcoded text
|
*
|
||||||
*
|
*
|
||||||
* Automate Form fields creation. Produced markup is following e107 CSS/XHTML standards
|
* Automate Form fields creation. Produced markup is following e107 CSS/XHTML standards
|
||||||
* If options argument is omitted, default values will be used (which OK most of the time)
|
* If options argument is omitted, default values will be used (which OK most of the time)
|
||||||
@@ -85,6 +85,7 @@ class e_form
|
|||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
* @param $tmp
|
||||||
* @return array
|
* @return array
|
||||||
* @see https://github.com/e107inc/e107/issues/3533
|
* @see https://github.com/e107inc/e107/issues/3533
|
||||||
*/
|
*/
|
||||||
@@ -109,8 +110,8 @@ class e_form
|
|||||||
* Open a new form
|
* Open a new form
|
||||||
* @param string name
|
* @param string name
|
||||||
* @param $method - post|get default is post
|
* @param $method - post|get default is post
|
||||||
* @param @target - e_REQUEST_URI by default
|
* @param string target - e_REQUEST_URI by default
|
||||||
* @param $other - unused at the moment.
|
* @param array $options
|
||||||
* @return string
|
* @return string
|
||||||
*/
|
*/
|
||||||
public function open($name, $method=null, $target=null, $options=null)
|
public function open($name, $method=null, $target=null, $options=null)
|
||||||
@@ -124,8 +125,7 @@ class e_form
|
|||||||
{
|
{
|
||||||
$method = "post";
|
$method = "post";
|
||||||
}
|
}
|
||||||
|
|
||||||
$class = "";
|
|
||||||
$autoComplete = "";
|
$autoComplete = "";
|
||||||
|
|
||||||
if(is_string($options))
|
if(is_string($options))
|
||||||
@@ -509,19 +509,17 @@ class e_form
|
|||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Render Bootstrap Tabs
|
* Render Bootstrap Tabs
|
||||||
|
*
|
||||||
* @param $array
|
* @param $array
|
||||||
* @param $options
|
* @param $options
|
||||||
|
* @return string
|
||||||
* @example
|
* @example
|
||||||
* $array = array(
|
* $array = array(
|
||||||
* 'home' => array('caption' => 'Home', 'text' => 'some tab content' ),
|
* 'home' => array('caption' => 'Home', 'text' => 'some tab content' ),
|
||||||
* 'other' => array('caption' => 'Other', 'text' => 'second tab content' )
|
* 'other' => array('caption' => 'Other', 'text' => 'second tab content' )
|
||||||
* );
|
* );
|
||||||
*/
|
*/
|
||||||
function tabs($array,$options = array())
|
function tabs($array,$options = array())
|
||||||
{
|
{
|
||||||
@@ -708,11 +706,17 @@ class e_form
|
|||||||
|
|
||||||
return $start.$indicators.$inner.$controls.$end; // $text;
|
return $start.$indicators.$inner.$controls.$end; // $text;
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Same as $this->text() except it adds input validation for urls.
|
* Same as $this->text() except it adds input validation for urls.
|
||||||
* At this stage, checking only for spaces. Should include sef-urls.
|
* At this stage, checking only for spaces. Should include sef-urls.
|
||||||
|
*
|
||||||
|
* @param string $name
|
||||||
|
* @param string $value
|
||||||
|
* @param int $maxlength
|
||||||
|
* @param array $options
|
||||||
|
* @return string
|
||||||
*/
|
*/
|
||||||
function url($name, $value = '', $maxlength = 80, $options= array())
|
function url($name, $value = '', $maxlength = 80, $options= array())
|
||||||
{
|
{
|
||||||
@@ -778,15 +782,6 @@ class e_form
|
|||||||
e107::js('core', 'selectize/js/selectize.min.js', 'jquery');
|
e107::js('core', 'selectize/js/selectize.min.js', 'jquery');
|
||||||
e107::css('core', 'selectize/css/selectize.css', 'jquery');
|
e107::css('core', 'selectize/css/selectize.css', 'jquery');
|
||||||
|
|
||||||
if(deftrue('BOOTSTRAP') === 3)
|
|
||||||
{
|
|
||||||
// e107::css('core', 'selectize/css/selectize.bootstrap3.css', 'jquery');
|
|
||||||
}
|
|
||||||
elseif(deftrue('BOOTSTRAP'))
|
|
||||||
{
|
|
||||||
// e107::css('core', 'selectize/css/selectize.bootstrap2.css', 'jquery');
|
|
||||||
}
|
|
||||||
|
|
||||||
// Load selectize behavior.
|
// Load selectize behavior.
|
||||||
e107::js('core', 'selectize/js/selectize.init.js', 'jquery');
|
e107::js('core', 'selectize/js/selectize.init.js', 'jquery');
|
||||||
|
|
||||||
@@ -890,14 +885,11 @@ class e_form
|
|||||||
// Always define the min. parameter
|
// Always define the min. parameter
|
||||||
// defaults to 0
|
// defaults to 0
|
||||||
// setting the min option to a negative value allows negative inputs
|
// setting the min option to a negative value allows negative inputs
|
||||||
$min = " min='".varsettrue($options['min'], '0')."'";
|
$min = " min='".vartrue($options['min'], '0')."'";
|
||||||
$max = isset($options['max']) ? " max='".$options['max']."'" : '';
|
$max = isset($options['max']) ? " max='".$options['max']."'" : '';
|
||||||
|
|
||||||
if (!empty($options['pattern']))
|
|
||||||
{
|
if (empty($options['pattern']))
|
||||||
$pattern = ' pattern="'.trim($options['pattern']).'"';
|
|
||||||
}
|
|
||||||
else
|
|
||||||
{
|
{
|
||||||
$options['pattern'] = '^';
|
$options['pattern'] = '^';
|
||||||
// ^\-?[0-9]*\.?[0-9]{0,2}
|
// ^\-?[0-9]*\.?[0-9]{0,2}
|
||||||
@@ -933,11 +925,11 @@ class e_form
|
|||||||
// decimal option not defined
|
// decimal option not defined
|
||||||
// check for step option (1, 0.1, 0.01, and so on)
|
// check for step option (1, 0.1, 0.01, and so on)
|
||||||
// or set default step 1 (integers only)
|
// or set default step 1 (integers only)
|
||||||
$step = "step='" . varsettrue($options['step'], '1') . "'";
|
$step = "step='" . vartrue($options['step'], '1') . "'";
|
||||||
}
|
}
|
||||||
|
|
||||||
$pattern = ' pattern="'.$options['pattern'].'"';
|
|
||||||
}
|
}
|
||||||
|
|
||||||
$options = $this->format_options('text', $name, $options);
|
$options = $this->format_options('text', $name, $options);
|
||||||
|
|
||||||
//never allow id in format name-value for text fields
|
//never allow id in format name-value for text fields
|
||||||
@@ -962,6 +954,7 @@ class e_form
|
|||||||
|
|
||||||
function iconpreview($id, $default, $width='', $height='') // FIXME
|
function iconpreview($id, $default, $width='', $height='') // FIXME
|
||||||
{
|
{
|
||||||
|
unset($width,$height); // quick fix
|
||||||
// XXX - $name ?!
|
// XXX - $name ?!
|
||||||
// $parms = $name."|".$width."|".$height."|".$id;
|
// $parms = $name."|".$width."|".$height."|".$id;
|
||||||
$sc_parameters = 'mode=preview&default='.$default.'&id='.$id;
|
$sc_parameters = 'mode=preview&default='.$default.'&id='.$id;
|
||||||
@@ -970,26 +963,29 @@ class e_form
|
|||||||
|
|
||||||
/**
|
/**
|
||||||
* @param $name
|
* @param $name
|
||||||
* @param $default value
|
* @param $default - value
|
||||||
* @param $label
|
* @param $label
|
||||||
* @param $options - gylphs=1
|
* @param $options - gylphs=1
|
||||||
* @param $ajax
|
* @param $ajax
|
||||||
|
* @return string
|
||||||
*/
|
*/
|
||||||
function iconpicker($name, $default, $label, $options = array(), $ajax = true)
|
function iconpicker($name, $default, $label, $options = array(), $ajax = true)
|
||||||
{
|
{
|
||||||
//v2.2.0
|
//v2.2.0
|
||||||
$options['icon'] = 1;
|
unset($label,$ajax); // no longer used.
|
||||||
$options['glyph'] = 1;
|
|
||||||
$options['w'] = 64;
|
|
||||||
$options['h'] = 64;
|
|
||||||
$options['media'] = '_icon';
|
|
||||||
|
|
||||||
if(!isset($options['legacyPath']))
|
$options['icon'] = 1;
|
||||||
{
|
$options['glyph'] = 1;
|
||||||
$options['legacyPath'] = "{e_IMAGE}icons";
|
$options['w'] = 64;
|
||||||
}
|
$options['h'] = 64;
|
||||||
|
$options['media'] = '_icon';
|
||||||
|
|
||||||
return $this->mediapicker($name, $default, $options);
|
if(!isset($options['legacyPath']))
|
||||||
|
{
|
||||||
|
$options['legacyPath'] = "{e_IMAGE}icons";
|
||||||
|
}
|
||||||
|
|
||||||
|
return $this->mediapicker($name, $default, $options);
|
||||||
|
|
||||||
|
|
||||||
/* $options['media'] = '_icon';
|
/* $options['media'] = '_icon';
|
||||||
@@ -1111,10 +1107,13 @@ class e_form
|
|||||||
|
|
||||||
/**
|
/**
|
||||||
* Avatar Picker
|
* Avatar Picker
|
||||||
* @param $name - form element name ie. value to be posted.
|
* @param string $name - form element name ie. value to be posted.
|
||||||
* @param $curVal - current avatar value. ie. the image-file name or URL.
|
* @param string $curVal - current avatar value. ie. the image-file name or URL.
|
||||||
|
* @param array $options
|
||||||
|
* @todo add a pref for allowing external or internal avatars or both.
|
||||||
|
* @return string
|
||||||
*/
|
*/
|
||||||
function avatarpicker($name,$curVal='',$options=array())
|
function avatarpicker($name, $curVal='',$options=array())
|
||||||
{
|
{
|
||||||
|
|
||||||
$tp = e107::getParser();
|
$tp = e107::getParser();
|
||||||
@@ -1124,7 +1123,7 @@ class e_form
|
|||||||
$tp->setThumbSize($pref['im_width'],$pref['im_height']);
|
$tp->setThumbSize($pref['im_width'],$pref['im_height']);
|
||||||
|
|
||||||
$blankImg = $tp->thumbUrl(e_IMAGE."generic/blank_avatar.jpg",$attr);
|
$blankImg = $tp->thumbUrl(e_IMAGE."generic/blank_avatar.jpg",$attr);
|
||||||
$localonly = true; //TODO add a pref for allowing external or internal avatars or both.
|
$localonly = true;
|
||||||
$idinput = $this->name2id($name);
|
$idinput = $this->name2id($name);
|
||||||
$previnput = $idinput."-preview";
|
$previnput = $idinput."-preview";
|
||||||
$optioni = $idinput."-options";
|
$optioni = $idinput."-options";
|
||||||
@@ -1232,32 +1231,30 @@ class e_form
|
|||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Image Picker
|
* Image Picker
|
||||||
|
*
|
||||||
* @param string $name input name
|
* @param string $name input name
|
||||||
* @param string $default default value
|
* @param string $default default value
|
||||||
* @param string $label custom label
|
* @param string $previewURL
|
||||||
* @param string $sc_parameters shortcode parameters
|
* @param string $sc_parameters shortcode parameters
|
||||||
* --- SC Parameter list ---
|
* --- SC Parameter list ---
|
||||||
* - media: if present - load from media category table
|
* - media: if present - load from media category table
|
||||||
* - w: preview width in pixels
|
* - w: preview width in pixels
|
||||||
* - h: preview height in pixels
|
* - h: preview height in pixels
|
||||||
* - help: tooltip
|
* - help: tooltip
|
||||||
* - video: when set to true, will enable the Youtube (video) tab.
|
* - video: when set to true, will enable the Youtube (video) tab.
|
||||||
* @example $frm->imagepicker('banner_image', $_POST['banner_image'], '', 'banner'); // all images from category 'banner_image' + common images.
|
|
||||||
* @example $frm->imagepicker('banner_image', $_POST['banner_image'], '', 'media=banner&w=600');
|
|
||||||
* @return string html output
|
* @return string html output
|
||||||
|
* @example $frm->imagepicker('banner_image', $_POST['banner_image'], '', 'banner'); // all images from category 'banner_image' + common images.
|
||||||
|
* @example $frm->imagepicker('banner_image', $_POST['banner_image'], '', 'media=banner&w=600');
|
||||||
*/
|
*/
|
||||||
function imagepicker($name, $default, $previewURL = '', $sc_parameters = '')
|
function imagepicker($name, $default, $previewURL = '', $sc_parameters = '')
|
||||||
{
|
{
|
||||||
|
|
||||||
$tp = e107::getParser();
|
// $tp = e107::getParser();
|
||||||
|
|
||||||
$name_id = $this->name2id($name);
|
// $name_id = $this->name2id($name);
|
||||||
$meta_id = $name_id."-meta";
|
// $meta_id = $name_id."-meta";
|
||||||
|
|
||||||
if(is_string($sc_parameters))
|
if(is_string($sc_parameters))
|
||||||
{
|
{
|
||||||
@@ -1269,9 +1266,10 @@ class e_form
|
|||||||
$sc_parameters = array();
|
$sc_parameters = array();
|
||||||
}
|
}
|
||||||
|
|
||||||
$cat = $tp->toDB(vartrue($sc_parameters['media']));
|
// $cat = $tp->toDB(vartrue($sc_parameters['media']));
|
||||||
|
|
||||||
// v2.2.0
|
// v2.2.0
|
||||||
|
unset($previewURL );
|
||||||
$sc_parameters['image'] = 1;
|
$sc_parameters['image'] = 1;
|
||||||
$sc_parameters['dropzone'] = 1;
|
$sc_parameters['dropzone'] = 1;
|
||||||
if(!empty($sc_parameters['video'])) // bc fix
|
if(!empty($sc_parameters['video'])) // bc fix
|
||||||
@@ -1282,130 +1280,6 @@ class e_form
|
|||||||
return $this->mediapicker($name, $default, $sc_parameters);
|
return $this->mediapicker($name, $default, $sc_parameters);
|
||||||
|
|
||||||
|
|
||||||
/*
|
|
||||||
if(empty($sc_parameters['media']))
|
|
||||||
{
|
|
||||||
$sc_parameters['media'] = '_common';
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
// e107::getDebug()->log($sc_parameters);
|
|
||||||
|
|
||||||
$default_thumb = $default;
|
|
||||||
$class = '';
|
|
||||||
|
|
||||||
if($default)
|
|
||||||
{
|
|
||||||
if($video = $tp->toVideo($default, array('thumb'=>'src')))
|
|
||||||
{
|
|
||||||
$default_url = $video;
|
|
||||||
$class = 'image-selector-video';
|
|
||||||
|
|
||||||
}
|
|
||||||
else
|
|
||||||
{
|
|
||||||
if('{' != $default[0]) // legacy path or one without {}
|
|
||||||
{
|
|
||||||
list($default_thumb,$default) = $this->imagepickerDefault($default, $sc_parameters);
|
|
||||||
}
|
|
||||||
|
|
||||||
$default_url = $tp->replaceConstants($default, 'abs');
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
$debugInfo = "
|
|
||||||
<pre>
|
|
||||||
default-thumb: ".$default_thumb."
|
|
||||||
defautlt: ".$default."
|
|
||||||
default-url: ".$default_url."
|
|
||||||
</pre>";
|
|
||||||
|
|
||||||
// e107::getDebug()->log($debugInfo);
|
|
||||||
|
|
||||||
|
|
||||||
$blank = FALSE;
|
|
||||||
|
|
||||||
|
|
||||||
}
|
|
||||||
else
|
|
||||||
{
|
|
||||||
//$default = $default_url = e_IMAGE_ABS."generic/blank.gif";
|
|
||||||
$default_url = e_IMAGE_ABS."generic/nomedia.png";
|
|
||||||
$blank = TRUE;
|
|
||||||
$class = 'image-selector-empty';
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
//$width = intval(vartrue($sc_parameters['width'], 150));
|
|
||||||
|
|
||||||
|
|
||||||
if($cat == '_icon') // ICONS
|
|
||||||
{
|
|
||||||
$ret = "<div class='imgselector-container' style='display:block;width:64px;min-height:64px'>";
|
|
||||||
$thpath = isset($sc_parameters['nothumb']) || vartrue($hide) ? $default : $default_thumb;
|
|
||||||
|
|
||||||
$label = "<div id='{$name_id}_prev' class='text-center well well-small image-selector icon-selector img-responsive img-fluid' >";
|
|
||||||
$label .= $tp->toIcon($default_url,array('class'=>'img-responsive img-fluid'));
|
|
||||||
|
|
||||||
//$label = "<div id='{$name_id}_prev' class='text-center well well-small image-selector' >";
|
|
||||||
//$label .= $tp->toIcon($default_url);
|
|
||||||
|
|
||||||
$label .= "</div>";
|
|
||||||
|
|
||||||
// $label = "<img id='{$name_id}_prev' src='{$default_url}' alt='{$default_url}' class='well well-small image-selector' style='{$style}' />";
|
|
||||||
|
|
||||||
|
|
||||||
$ret = $this->mediaUrl($cat, $label, $name_id, $sc_parameters);
|
|
||||||
}
|
|
||||||
else // Images
|
|
||||||
{
|
|
||||||
|
|
||||||
$title = (vartrue($sc_parameters['help'])) ? "title='".$sc_parameters['help']."'" : "";
|
|
||||||
$width = vartrue($sc_parameters['w'], 120);
|
|
||||||
$height = vartrue($sc_parameters['h'], 0);
|
|
||||||
|
|
||||||
$ret = "<div class='imgselector-container e-tip ".$class."' {$title} style='vertical-align:top;margin-right:25px; display:inline-block; width:".$width."px;min-height:".$height."px;'>";
|
|
||||||
$att = 'aw='.$width."'&ah=".$height."'";
|
|
||||||
$thpath = empty($default) || !empty($video) ? $default_url : $tp->thumbUrl($default_thumb, $att, true);
|
|
||||||
//isset($sc_parameters['nothumb']) || vartrue($hide) ?
|
|
||||||
|
|
||||||
$label = "<img id='{$name_id}_prev' src='".$thpath."' alt='{$default_url}' class='well well-small image-selector img-responsive img-fluid' style='display:block;' />";
|
|
||||||
|
|
||||||
if($cat != 'news' && $cat !='page' && $cat !='' && strpos($cat,'_image')===false)
|
|
||||||
{
|
|
||||||
$cat = $cat . "_image";
|
|
||||||
}
|
|
||||||
|
|
||||||
$sc_parameters['class'] = 'btn btn-sm btn-default';
|
|
||||||
|
|
||||||
if($blank === true)
|
|
||||||
{
|
|
||||||
$sc_parameters['title'] = LAN_ADD;
|
|
||||||
$editIcon = $this->mediaUrl($cat, $tp->toGlyph('fa-plus', array('fw'=>1)), $name_id,$sc_parameters);
|
|
||||||
$previewIcon = '';
|
|
||||||
|
|
||||||
// @todo drag-n-drop upload code in here.
|
|
||||||
}
|
|
||||||
else
|
|
||||||
{
|
|
||||||
$editIcon = $this->mediaUrl($cat, $tp->toGlyph('fa-edit', array('fw'=>1)), $name_id,$sc_parameters);
|
|
||||||
$previewIcon = "<a title='".LAN_PREVIEW."' class='btn btn-sm btn-default btn-secondary e-modal' data-modal-caption='".LAN_PREVIEW."' href='".$default_url."'>".$tp->toGlyph('fa-search', array('fw'=>1))."</a>";
|
|
||||||
}
|
|
||||||
|
|
||||||
$ret .= $label; // image
|
|
||||||
|
|
||||||
$ret .= '<div class="overlay">
|
|
||||||
<div class="text">'.$editIcon.$previewIcon.'</div>
|
|
||||||
</div>';
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
$ret .= "</div>\n";
|
|
||||||
$ret .= "<input type='hidden' name='{$name}' id='{$name_id}' value='{$default}' />";
|
|
||||||
$ret .= "<input type='hidden' name='mediameta_{$name}' id='{$meta_id}' value='' />";
|
|
||||||
|
|
||||||
return $ret;*/
|
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
@@ -1590,52 +1464,20 @@ class e_form
|
|||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
private function imagepickerDefault($path, $parms=array())
|
|
||||||
{
|
|
||||||
$tp = e107::getParser();
|
|
||||||
|
|
||||||
if(!empty($parms['legacyPath'])) // look in a specific path.
|
|
||||||
{
|
|
||||||
$legacyDefault = rtrim($parms['legacyPath'],'/')."/".$path;
|
|
||||||
$legacyRel = $tp->replaceConstants($legacyDefault);
|
|
||||||
|
|
||||||
if(is_readable($legacyRel))
|
|
||||||
{
|
|
||||||
return array($legacyDefault, $legacyDefault);
|
|
||||||
}
|
|
||||||
else
|
|
||||||
{
|
|
||||||
// e107::getDebug()->log("Legacy Default:".$legacyDefault);
|
|
||||||
// e107::getDebug()->log("wasnt found:".$legacyRel);
|
|
||||||
}
|
|
||||||
|
|
||||||
}
|
|
||||||
|
|
||||||
$path = str_replace('e_MEDIA_IMAGE/','{e_MEDIA_IMAGE}',$path);
|
|
||||||
|
|
||||||
$default_thumb = $tp->createConstants($path, 'nice');
|
|
||||||
$default = $tp->createConstants($path, 'mix');
|
|
||||||
|
|
||||||
return array($default_thumb, $default);
|
|
||||||
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* File Picker
|
* File Picker
|
||||||
|
*
|
||||||
* @param string name eg. 'myfield' or 'myfield[]'
|
* @param string name eg. 'myfield' or 'myfield[]'
|
||||||
* @param mixed default
|
* @param mixed default
|
||||||
* @param string label
|
* @param string label
|
||||||
* @param mixed sc_parameters
|
* @param mixed sc_parameters
|
||||||
*/
|
* @return string
|
||||||
|
*/
|
||||||
function filepicker($name, $default, $label = '', $sc_parameters = null)
|
function filepicker($name, $default, $label = '', $sc_parameters = null)
|
||||||
{
|
{
|
||||||
$tp = e107::getParser();
|
$tp = e107::getParser();
|
||||||
$name_id = $this->name2id($name);
|
$name_id = $this->name2id($name);
|
||||||
|
unset($label);
|
||||||
|
|
||||||
if(is_string($sc_parameters))
|
if(is_string($sc_parameters))
|
||||||
{
|
{
|
||||||
@@ -1687,11 +1529,12 @@ class e_form
|
|||||||
* Date field with popup calendar // NEW in 0.8/2.0
|
* Date field with popup calendar // NEW in 0.8/2.0
|
||||||
* on Submit returns unix timestamp or string value.
|
* on Submit returns unix timestamp or string value.
|
||||||
* @param string $name the name of the field
|
* @param string $name the name of the field
|
||||||
* @param integer $datestamp UNIX timestamp - default value of the field
|
* @param int|bool $datestamp UNIX timestamp - default value of the field
|
||||||
* @param array or str
|
* @param array|string {
|
||||||
* @param string $options['type'] date or datetime
|
* @type string type date or datetime
|
||||||
* @param string $options['format'] strftime format eg. '%Y-%m-%d'
|
* @type string format strftime format eg. '%Y-%m-%d'
|
||||||
* @param string $options['timezone'] eg. 'America/Los_Angeles' - intended timezone of the date/time entered. (offsets UTC value)
|
* @type string timezone eg. 'America/Los_Angeles' - intended timezone of the date/time entered. (offsets UTC value)
|
||||||
|
* }
|
||||||
* @example $frm->datepicker('my_field',time(),'type=date');
|
* @example $frm->datepicker('my_field',time(),'type=date');
|
||||||
* @example $frm->datepicker('my_field',time(),'type=datetime&inline=1');
|
* @example $frm->datepicker('my_field',time(),'type=datetime&inline=1');
|
||||||
* @example $frm->datepicker('my_field',time(),'type=date&format=yyyy-mm-dd');
|
* @example $frm->datepicker('my_field',time(),'type=date&format=yyyy-mm-dd');
|
||||||
@@ -1793,13 +1636,13 @@ class e_form
|
|||||||
* @param string $name - form field name
|
* @param string $name - form field name
|
||||||
* @param null $val - current value
|
* @param null $val - current value
|
||||||
* @param array $options
|
* @param array $options
|
||||||
* @param string $options['group'] if == 'class' then users will be sorted into userclass groups.
|
* @param string 'group' if == 'class' then users will be sorted into userclass groups.
|
||||||
* @param string $options['fields']
|
* @type string 'fields'
|
||||||
* @param string $options['classes'] - single or comma-separated list of user-classes members to include.
|
* @type string 'classes' - single or comma-separated list of user-classes members to include.
|
||||||
* @param string $options['excludeSelf'] = exlude logged in user from list.
|
* @type string 'excludeSelf' = exlude logged in user from list.
|
||||||
* @param string $options['return'] if == 'array' an array is returned.
|
* @type string 'return' if == 'array' an array is returned.
|
||||||
* @param string $options['return'] if == 'sqlWhere' an sql query is returned.
|
* @type string 'return' if == 'sqlWhere' an sql query is returned.
|
||||||
* @return string select form element.
|
* @return string|array select form element.
|
||||||
*/
|
*/
|
||||||
public function userlist($name, $val=null, $options=array())
|
public function userlist($name, $val=null, $options=array())
|
||||||
{
|
{
|
||||||
@@ -1967,9 +1810,9 @@ class e_form
|
|||||||
* @param string $name form element name
|
* @param string $name form element name
|
||||||
* @param string|array $value comma separated list of user ids or array of userid=>username pairs.
|
* @param string|array $value comma separated list of user ids or array of userid=>username pairs.
|
||||||
* @param array|string $options [optional]
|
* @param array|string $options [optional]
|
||||||
* @param int $options['limit'] Maximum number of users
|
* @type int 'limit' Maximum number of users
|
||||||
* @param string $options['id'] Custom id
|
* @type string 'id' Custom id
|
||||||
* @param string $options['inline'] Inline ID.
|
* @type string 'inline' Inline ID.
|
||||||
*
|
*
|
||||||
* @example $frm->userpicker('author', 1);
|
* @example $frm->userpicker('author', 1);
|
||||||
* @example $frm->userpicker('authors', "1,2,3");
|
* @example $frm->userpicker('authors', "1,2,3");
|
||||||
@@ -2051,22 +1894,21 @@ class e_form
|
|||||||
}
|
}
|
||||||
|
|
||||||
$parms = array_merge($parms, $options);
|
$parms = array_merge($parms, $options);
|
||||||
|
|
||||||
$ret = $this->text($name, implode(",",$defValues), 100, $parms);
|
|
||||||
|
|
||||||
return $ret;
|
return $this->text($name, implode(",",$defValues), 100, $parms);
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* A Rating element
|
* A Rating element
|
||||||
* @var $text
|
*
|
||||||
|
* @param string $table
|
||||||
|
* @param int $id
|
||||||
|
* @param array $options
|
||||||
|
* @return string
|
||||||
*/
|
*/
|
||||||
function rate($table,$id,$options=null)
|
function rate($table,$id,$options=array())
|
||||||
{
|
{
|
||||||
$table = preg_replace('/\W/', '', $table);
|
$table = preg_replace('/\W/', '', $table);
|
||||||
$id = intval($id);
|
$id = intval($id);
|
||||||
@@ -2104,8 +1946,16 @@ class e_form
|
|||||||
return "<input type='file' name='{$name}'".$this->get_attributes($options, $name)." />";
|
return "<input type='file' name='{$name}'".$this->get_attributes($options, $name)." />";
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Upload Element. (for the future)
|
||||||
|
*
|
||||||
|
* @param $name
|
||||||
|
* @param array $options
|
||||||
|
* @return string
|
||||||
|
*/
|
||||||
function upload($name, $options = array())
|
function upload($name, $options = array())
|
||||||
{
|
{
|
||||||
|
unset($name,$options);
|
||||||
return 'Ready to use upload form fields, optional - file list view';
|
return 'Ready to use upload form fields, optional - file list view';
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -2225,13 +2075,14 @@ class e_form
|
|||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Render a bootStrap ProgressBar.
|
* Render a bootStrap ProgressBar.
|
||||||
* @param string $name
|
*
|
||||||
|
* @param string $name
|
||||||
* @param number|string $value
|
* @param number|string $value
|
||||||
* @param array $options
|
* @param array $options
|
||||||
* @example Use
|
* @return string
|
||||||
|
* @example Use
|
||||||
*/
|
*/
|
||||||
public function progressBar($name,$value,$options=array())
|
public function progressBar($name,$value,$options=array())
|
||||||
{
|
{
|
||||||
@@ -2303,12 +2154,12 @@ class e_form
|
|||||||
|
|
||||||
/**
|
/**
|
||||||
* Textarea Element
|
* Textarea Element
|
||||||
* @param $name
|
* @param string $name
|
||||||
* @param $value
|
* @param string $value
|
||||||
* @param $rows
|
* @param int $rows
|
||||||
* @param $cols
|
* @param int $cols
|
||||||
* @param $options
|
* @param array $options
|
||||||
* @param $count
|
* @param int|bool $counter
|
||||||
* @return string
|
* @return string
|
||||||
*/
|
*/
|
||||||
function textarea($name, $value, $rows = 10, $cols = 80, $options = array(), $counter = false)
|
function textarea($name, $value, $rows = 10, $cols = 80, $options = array(), $counter = false)
|
||||||
@@ -2341,15 +2192,18 @@ class e_form
|
|||||||
/**
|
/**
|
||||||
* Bbcode Area. Name, value, template, media-Cat, size, options array eg. counter
|
* Bbcode Area. Name, value, template, media-Cat, size, options array eg. counter
|
||||||
* IMPORTANT: $$mediaCat is also used is the media-manager category identifier
|
* IMPORTANT: $$mediaCat is also used is the media-manager category identifier
|
||||||
|
*
|
||||||
* @param string $name
|
* @param string $name
|
||||||
* @param mixed $value
|
* @param mixed $value
|
||||||
* @param string $template
|
* @param string $template
|
||||||
* @param string $mediaCat _common
|
* @param string $mediaCat _common
|
||||||
* @param string $size : small | medium | large
|
* @param string $size : small | medium | large
|
||||||
* @param array $options array();
|
* @param array $options {
|
||||||
* @param bool $options['wysiwyg'] when set to false will disable wysiwyg if active.
|
* @type bool wysiwyg when set to false will disable wysiwyg if active.
|
||||||
* @param string $options['class'] override class.
|
* @type string class override class.
|
||||||
* @param string $options['id']
|
* }
|
||||||
|
|
||||||
|
* @return string
|
||||||
*/
|
*/
|
||||||
function bbarea($name, $value, $template = '', $mediaCat='_common', $size = 'large', $options = array())
|
function bbarea($name, $value, $template = '', $mediaCat='_common', $size = 'large', $options = array())
|
||||||
{
|
{
|
||||||
@@ -6878,8 +6732,7 @@ var_dump($select_options);*/
|
|||||||
foreach ($form['fieldsets'] as $elid => $data)
|
foreach ($form['fieldsets'] as $elid => $data)
|
||||||
{
|
{
|
||||||
$elid = $form['id'].'-'.$elid;
|
$elid = $form['id'].'-'.$elid;
|
||||||
|
|
||||||
|
|
||||||
if(vartrue($data['tabs'])) // Tabs Present
|
if(vartrue($data['tabs'])) // Tabs Present
|
||||||
{
|
{
|
||||||
$text .= '<ul class="nav nav-tabs">';
|
$text .= '<ul class="nav nav-tabs">';
|
||||||
@@ -6905,13 +6758,13 @@ var_dump($select_options);*/
|
|||||||
}
|
}
|
||||||
|
|
||||||
$text .= "</div>";
|
$text .= "</div>";
|
||||||
$text .= $this->renderCreateButtonsBar($elid, $data, $model, $tabId); // Create/Update Buttons etc.
|
$text .= $this->renderCreateButtonsBar( $data, $model->getId()); // Create/Update Buttons etc.
|
||||||
|
|
||||||
}
|
}
|
||||||
else // No Tabs Present
|
else // No Tabs Present
|
||||||
{
|
{
|
||||||
$text .= $this->renderCreateFieldset($elid, $data, $model, false);
|
$text .= $this->renderCreateFieldset($elid, $data, $model, false);
|
||||||
$text .= $this->renderCreateButtonsBar($elid, $data, $model, false); // Create/Update Buttons etc.
|
$text .= $this->renderCreateButtonsBar( $data, $model->getId()); // Create/Update Buttons etc.
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
@@ -7027,7 +6880,7 @@ var_dump($select_options);*/
|
|||||||
if('hidden' === $att['type'])
|
if('hidden' === $att['type'])
|
||||||
{
|
{
|
||||||
|
|
||||||
if(empty($writeParms['show']))
|
if(empty($writeParms['show'])) // hidden field and not displayed. Render element after the field-set.
|
||||||
{
|
{
|
||||||
$hidden_fields[] = $this->renderElement($keyName, $model->getIfPosted($valPath), $att, varset($model_required[$key], array()));
|
$hidden_fields[] = $this->renderElement($keyName, $model->getIfPosted($valPath), $att, varset($model_required[$key], array()));
|
||||||
|
|
||||||
@@ -7059,19 +6912,6 @@ var_dump($select_options);*/
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
/*
|
|
||||||
if('hidden' === $att['type'])
|
|
||||||
{
|
|
||||||
parse_str(varset($att['writeParms']), $tmp);
|
|
||||||
if(!vartrue($tmp['show']))
|
|
||||||
{
|
|
||||||
$hidden_fields[] = $this->renderElement($keyName, $model->getIfPosted($valPath), $att, varset($model_required[$key], array()));
|
|
||||||
unset($tmp);
|
|
||||||
continue;
|
|
||||||
}
|
|
||||||
unset($tmp);
|
|
||||||
}
|
|
||||||
*/
|
|
||||||
|
|
||||||
if(in_array($key,$this->_field_warnings))
|
if(in_array($key,$this->_field_warnings))
|
||||||
{
|
{
|
||||||
@@ -7094,17 +6934,10 @@ var_dump($select_options);*/
|
|||||||
|
|
||||||
|
|
||||||
}
|
}
|
||||||
//if($bckp) $model->remove($bckp);
|
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
//print_a($fdata);
|
|
||||||
/*
|
|
||||||
if($required_help)
|
|
||||||
{
|
|
||||||
$required_help = '<div class="form-note">'.$this->getRequiredString().' - required fields</div>'; //TODO - lans
|
|
||||||
}*/
|
|
||||||
|
|
||||||
|
|
||||||
if(!empty($text) || !empty($hidden_fields))
|
if(!empty($text) || !empty($hidden_fields))
|
||||||
{
|
{
|
||||||
@@ -7114,6 +6947,8 @@ var_dump($select_options);*/
|
|||||||
</tbody>
|
</tbody>
|
||||||
</table>";
|
</table>";
|
||||||
|
|
||||||
|
$text .= vartrue($fdata['table_post']);
|
||||||
|
|
||||||
$text .= implode("\n", $hidden_fields);
|
$text .= implode("\n", $hidden_fields);
|
||||||
|
|
||||||
$text .= "</fieldset>";
|
$text .= "</fieldset>";
|
||||||
@@ -7141,7 +6976,7 @@ var_dump($select_options);*/
|
|||||||
*/
|
*/
|
||||||
public function renderCreateFieldRow($label, $control, $att = array())
|
public function renderCreateFieldRow($label, $control, $att = array())
|
||||||
{
|
{
|
||||||
|
|
||||||
$writeParms = $att['writeParms'];
|
$writeParms = $att['writeParms'];
|
||||||
|
|
||||||
if(vartrue($att['type']) == 'bbarea' || !empty($writeParms['nolabel']))
|
if(vartrue($att['type']) == 'bbarea' || !empty($writeParms['nolabel']))
|
||||||
@@ -7183,137 +7018,14 @@ var_dump($select_options);*/
|
|||||||
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* @param $id
|
* Render the submit buttons in the Create/Edit Form.
|
||||||
* @param $fdata
|
* @param array $fdata - admin-ui data such as $fields, $tabs, $after_submit_options etc.
|
||||||
* @param $model
|
* @param int $id Primary ID of the record being edited (only in edit-mode)
|
||||||
* @param int $tab
|
|
||||||
* @return string
|
* @return string
|
||||||
*/
|
*/
|
||||||
function renderCreateButtonsBar($id, $fdata, $model, $tab=0)
|
public function renderCreateButtonsBar($fdata, $id=null) // XXX Note model and $tab removed as of v2.3
|
||||||
{
|
{
|
||||||
/*
|
$text = "
|
||||||
$text = vartrue($fdata['fieldset_pre'])."
|
|
||||||
<fieldset id='{$id}'>
|
|
||||||
<legend>".vartrue($fdata['legend'])."</legend>
|
|
||||||
".vartrue($fdata['table_pre'])."
|
|
||||||
<table class='table adminform'>
|
|
||||||
<colgroup>
|
|
||||||
<col class='col-label' />
|
|
||||||
<col class='col-control' />
|
|
||||||
</colgroup>
|
|
||||||
<tbody>
|
|
||||||
";
|
|
||||||
*/
|
|
||||||
$text = '';
|
|
||||||
|
|
||||||
// required fields - model definition
|
|
||||||
/** @var e_object $model */
|
|
||||||
$model_required = $model->getValidationRules();
|
|
||||||
$required_help = false;
|
|
||||||
$hidden_fields = array();
|
|
||||||
foreach($fdata['fields'] as $key => $att)
|
|
||||||
{
|
|
||||||
|
|
||||||
if($tab !== false && varset($att['tab'], 0) !== $tab)
|
|
||||||
{
|
|
||||||
continue;
|
|
||||||
}
|
|
||||||
|
|
||||||
// convert aliases - not supported in edit mod
|
|
||||||
if(vartrue($att['alias']) && !$model->hasData($key))
|
|
||||||
{
|
|
||||||
$key = $att['field'];
|
|
||||||
}
|
|
||||||
|
|
||||||
if($key == 'checkboxes' || $key == 'options')
|
|
||||||
{
|
|
||||||
continue;
|
|
||||||
}
|
|
||||||
|
|
||||||
$parms = vartrue($att['formparms'], array());
|
|
||||||
if(!is_array($parms)) parse_str($parms, $parms);
|
|
||||||
$label = vartrue($att['note']) ? '<div class="label-note">'.deftrue($att['note'], $att['note']).'</div>' : '';
|
|
||||||
$help = vartrue($att['help']) ? '<div class="field-help">'.deftrue($att['help'], $att['help']).'</div>' : '';
|
|
||||||
|
|
||||||
$valPath = trim(vartrue($att['dataPath'], $key), '/');
|
|
||||||
$keyName = $key;
|
|
||||||
if(strpos($valPath, '/')) //not TRUE, cause string doesn't start with /
|
|
||||||
{
|
|
||||||
$tmp = explode('/', $valPath);
|
|
||||||
$keyName = array_shift($tmp);
|
|
||||||
foreach ($tmp as $path)
|
|
||||||
{
|
|
||||||
$keyName .= '['.$path.']';
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
if('hidden' === $att['type'])
|
|
||||||
{
|
|
||||||
if(!is_array($att['writeParms'])) parse_str(varset($att['writeParms']), $tmp);
|
|
||||||
else $tmp = $att['writeParms'];
|
|
||||||
|
|
||||||
if(!vartrue($tmp['show']))
|
|
||||||
{
|
|
||||||
$hidden_fields[] = $this->renderElement($keyName, $model->getIfPosted($valPath), $att, varset($model_required[$key], array()), $model->getId());
|
|
||||||
unset($tmp);
|
|
||||||
continue;
|
|
||||||
}
|
|
||||||
unset($tmp);
|
|
||||||
}
|
|
||||||
|
|
||||||
// type null - system (special) fields
|
|
||||||
if(vartrue($att['type']) !== null && !vartrue($att['noedit']) && $key != $model->getFieldIdName())
|
|
||||||
{
|
|
||||||
$required = '';
|
|
||||||
$required_class = '';
|
|
||||||
if(isset($model_required[$key]) || vartrue($att['validate']))
|
|
||||||
{
|
|
||||||
$required = $this->getRequiredString();
|
|
||||||
$required_class = ' class="required-label"'; // TODO - add 'required-label' to the core CSS definitions
|
|
||||||
$required_help = true;
|
|
||||||
if(vartrue($att['validate']))
|
|
||||||
{
|
|
||||||
// override
|
|
||||||
$model_required[$key] = array();
|
|
||||||
$model_required[$key][] = true === $att['validate'] ? 'required' : $att['validate'];
|
|
||||||
$model_required[$key][] = varset($att['rule']);
|
|
||||||
$model_required[$key][] = $att['title'];
|
|
||||||
$model_required[$key][] = varset($att['error']);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
/*
|
|
||||||
$text .= "
|
|
||||||
<tr>
|
|
||||||
<td>
|
|
||||||
".$required."<span{$required_class}>".defset(vartrue($att['title']), vartrue($att['title']))."</span>".$label."
|
|
||||||
</td>
|
|
||||||
<td>
|
|
||||||
".$this->renderElement($keyName, $model->getIfPosted($valPath), $att, varset($model_required[$key], array()))."
|
|
||||||
{$help}
|
|
||||||
</td>
|
|
||||||
</tr>
|
|
||||||
";
|
|
||||||
* */
|
|
||||||
}
|
|
||||||
//if($bckp) $model->remove($bckp);
|
|
||||||
|
|
||||||
}
|
|
||||||
|
|
||||||
if($required_help)
|
|
||||||
{
|
|
||||||
// $required_help = '<div class="form-note">'.$this->getRequiredString().' - required fields</div>'; //TODO - lans
|
|
||||||
}
|
|
||||||
|
|
||||||
// $text .= "
|
|
||||||
// </tbody>
|
|
||||||
// </table></fieldset>";
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
$text .= "
|
|
||||||
".implode("\n", $hidden_fields)."
|
|
||||||
".vartrue($fdata['table_post'])."
|
|
||||||
<div class='buttons-bar center'>
|
<div class='buttons-bar center'>
|
||||||
";
|
";
|
||||||
// After submit options
|
// After submit options
|
||||||
@@ -7331,17 +7043,19 @@ var_dump($select_options);*/
|
|||||||
}
|
}
|
||||||
|
|
||||||
$triggers = (empty($fdata['triggers']) && $fdata['triggers'] !== false) ? 'auto' : $fdata['triggers']; // vartrue($fdata['triggers'], 'auto');
|
$triggers = (empty($fdata['triggers']) && $fdata['triggers'] !== false) ? 'auto' : $fdata['triggers']; // vartrue($fdata['triggers'], 'auto');
|
||||||
|
|
||||||
if(is_string($triggers) && 'auto' === $triggers)
|
if(is_string($triggers) && 'auto' === $triggers)
|
||||||
{
|
{
|
||||||
$triggers = array();
|
$triggers = array();
|
||||||
if($model->getId())
|
if(!empty($id))
|
||||||
{
|
{
|
||||||
$triggers['submit'] = array(LAN_UPDATE, 'update', $model->getId());
|
$triggers['submit'] = array(LAN_UPDATE, 'update', $id);
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
$triggers['submit'] = array(LAN_CREATE, 'create', 0);
|
$triggers['submit'] = array(LAN_CREATE, 'create', 0);
|
||||||
}
|
}
|
||||||
|
|
||||||
$triggers['cancel'] = array(LAN_CANCEL, 'cancel');
|
$triggers['cancel'] = array(LAN_CANCEL, 'cancel');
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -7368,13 +7082,6 @@ var_dump($select_options);*/
|
|||||||
$text .= "<li class='after-submit'>".$this->radio('__after_submit_action', $k, $selected == $k, "label=".$v)."</li>";
|
$text .= "<li class='after-submit'>".$this->radio('__after_submit_action', $k, $selected == $k, "label=".$v)."</li>";
|
||||||
}
|
}
|
||||||
|
|
||||||
//$text .= '
|
|
||||||
// <li role="menuitem">
|
|
||||||
// <div class="options left" style="padding:5px">
|
|
||||||
// '.$this->radio_multi('__after_submit_action', $submitopt, $selected, true).'
|
|
||||||
// </div></li>';
|
|
||||||
|
|
||||||
|
|
||||||
$text .= '</ul>';
|
$text .= '</ul>';
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -7389,9 +7096,9 @@ var_dump($select_options);*/
|
|||||||
|
|
||||||
$text .= "
|
$text .= "
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
".vartrue($fdata['fieldset_post'])."
|
|
||||||
";
|
";
|
||||||
|
|
||||||
return $text;
|
return $text;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
Reference in New Issue
Block a user