function build_bootstrap_select ($name, $params, $selected = null, $max_length = HTML_SELECT_MAX_LENGTH, $multiple_size = false, $js = '',$data_images = false,$search=false,$label_text=false,$max_options=false)
{
global $lang;
if (empty($params)) return '';
//vdn($data_images);
$this->options = '';
$this->selected = array_flip((array) $selected);
$this->max_length = $max_length;
$this->attr = array();
$this->cur_attr =& $this->attr;
if (isset($params['__attributes']))
{
$this->attr = $params['__attributes'];
unset($params['__attributes']);
}
$this->_build_bootstrap_select_rec($params,$data_images);
$select_params = ($js) ? " $js" : '';
$select_params .= ($multiple_size) ? ' multiple="multiple" data-size="'. $multiple_size .'" size="'. $multiple_size .'"' : '';
$select_params .= ($search) ? ' data-live-search="true"' : '';
$select_params .= ($max_options) ? ' data-max-options="'. (int)$max_options .'"' : '';
$select_params .= ($max_options) ? ' data-max-options-text="'. sprintf($lang['SLECTPICKER_MULTIPLE_MAX'], $max_options) .'"' : '';
//
$select_params .= ' name="'. htmlCHR($name) .'"';
$select_params .= ' id="'. htmlCHR($name) .'"';
$select_params .= ' class="form-control selectpicker"';
$label_text = ($label_text) ? '<label for="'. htmlCHR($name) .'">'.$label_text.'</label>' : '';
return "\n{$label_text}\n<select {$select_params}>\n". $this->options ."</select>\n";
}
function _build_bootstrap_select_rec ($params,$data_images=false)
{
//var_dump($params);
foreach ($params as $opt_name => $opt_val)
{
$opt_name = rtrim($opt_name);
//vdn($data_images);
if (is_array($opt_val))
{
$this->cur_attr =& $this->cur_attr[$opt_name];
$label = htmlCHR(str_short($opt_name, $this->max_length));
$this->options .= "\t<optgroup label=\"". $label ."\">\n";
$this->_build_bootstrap_select_rec($opt_val);
$this->options .= "\t</optgroup>\n";
$this->cur_attr =& $this->attr;
}
else
{
$text = htmlCHR(str_short($opt_name, $this->max_length));
if(stristr($opt_name,'<|||>')){
$tmp_arr = explode('<|||>',$opt_name);
$text = (!empty($tmp_arr[0])) ? htmlCHR(str_short($tmp_arr[0], $this->max_length)) : $text;
$data_subtext = (!empty($tmp_arr[1])) ? ' data-subtext="'. htmlCHR($tmp_arr[1]) .'"' : $text;
}
else{
$data_subtext = '';
}
$value = ' value="'. htmlCHR($opt_val) .'"';
$class = isset($this->cur_attr[$opt_name]['class']) ? ' class="'. $this->cur_attr[$opt_name]['class'] .'"' : '';
$style = isset($this->cur_attr[$opt_name]['style']) ? ' style="'. $this->cur_attr[$opt_name]['style'] .'"' : '';
$selected = isset($this->selected[$opt_val]) ? HTML_SELECTED : '';
$disabled = isset($this->cur_attr[$opt_name]['disabled']) ? HTML_DISABLED : '';
$images = ($data_images AND @getimagesize("images/position/".$opt_val.".png")) ? ' data-image="images/position/'.$opt_val.'.png?2"':"";
$this->options .= "\t\t<option".$class . $style . $selected . $disabled . $data_subtext . $value. $images. '>'. $text ."</option>\n";
}
}
}