public function createOptionList($table, $field_value, $field_text, $condition = array())
{
$where = '';
if(isset($condition['where'])){
$where = "WHERE ". $condition['where'];
}
$join = '';
if(isset($condition['join'])){
$join = $condition['join'];
}
if(isset($condition['order_by'])){
$order_by = $condition['order_by'];
}else{
$order_by = $field_text;
}
$ret = false;
if(isset($condition['return'])){
$ret = $condition['return'];
}
$select_value = '';
if(isset($condition['active'])){
$select_value = $condition['active'];
}
$field_attributes = '';
if(isset($condition['attributes'])){
foreach($condition['attributes'] as $field){
if($field != $field_value && $field != $field_text){
$field_attributes .= ', '.$field;
}
}
}
$list = '';
$order_by = 'ORDER BY '. $order_by;
$sql = "SELECT $field_value, $field_text $field_attributes FROM $table $join $where $order_by";
$qry = $this->db->query($sql);
foreach ($qry->result_array() as $row) {
$selected = '';
if($select_value == $row[$field_value]){
$selected = 'selected="selected"';
}
$attributes = '';
if(isset($condition['attributes'])){
foreach($condition['attributes'] as $field){
$attributes .= ' data-'. $field . '="'.$row[$field].'"' ;
}
}
if( strpos($field_text, '(') === false ) {//no function
if( strpos($field_text, ',') !== false ) {
$i = 0;
$separator = '';
$text_title = '';
if(isset($condition['field_text_separator'])){
$field_text_separator = $condition['field_text_separator'];
}else{
$field_text_separator = ' ';
}
$arr = explode(',', $field_text);
foreach($arr as $val){
$text_title .= $separator . $row[trim($val)];
if(is_array($field_text_separator)){
$separator = $field_text_separator[$i];
}else{
$separator = $field_text_separator;
}
}
}else{
$text_title = $row[$field_text];
}
}else{
$text_title = $row[$field_text];
}
$option = '<option '.$attributes.' value="'. $row[$field_value] . '" '.$selected.'>' . $text_title . '</option>';
if($ret == true){
$list .= $option;
}else{
echo $option;
}
}
if($ret == true){
return $list;
}
}