module_srl = $module_srl; } /** * @brief register a key of extra variable * @param module_srl, idx, name, type, default, desc, is_required, search, value **/ function setExtraVarKeys($extra_keys) { if(!is_array($extra_keys) || !count($extra_keys)) return; foreach($extra_keys as $key => $val) { $obj = null; $obj = new ExtraItem($val->module_srl, $val->idx, $val->name, $val->type, $val->default, $val->desc, $val->is_required, $val->search, $val->value, $val->eid); $this->keys[$val->idx] = $obj; } } /** * @brief Return an array of extra vars **/ function getExtraVars() { return $this->keys; } } /** * @class ExtraItem * @author NHN (developers@xpressengine.com) * @brief each value of the extra vars **/ class ExtraItem { var $module_srl = 0; var $idx = 0; var $name = 0; var $type = 'text'; var $default = null; var $desc = ''; var $is_required = 'N'; var $search = 'N'; var $value = null; var $eid = ''; /** * @brief constructor **/ function ExtraItem($module_srl, $idx, $name, $type = 'text', $default = null, $desc = '', $is_required = 'N', $search = 'N', $value = null, $eid = '') { if(!$idx) return; $this->module_srl = $module_srl; $this->idx = $idx; $this->name = $name; $this->type = $type; $this->default = $default; $this->desc = $desc; $this->is_required = $is_required; $this->search = $search; $this->value = $value; $this->eid = $eid; } /** * @brief Values **/ function setValue($value) { $this->value = $value; } /** * @brief return a given value converted based on its type **/ function _getTypeValue($type, $value) { $value = trim($value); if(!isset($value)) return; switch($type) { case 'homepage' : if($value && !preg_match('/^([a-z]+):\/\//i',$value)) $value = 'http://'.$value; return htmlspecialchars($value); break; case 'tel' : if(is_array($value)) $values = $value; elseif(strpos($value,'|@|')!==false) $values = explode('|@|', $value); elseif(strpos($value,',')!==false) $values = explode(',', $value); $values[0] = $values[0]; $values[1] = $values[1]; $values[2] = $values[2]; return $values; break; break; case 'checkbox' : case 'radio' : case 'select' : if(is_array($value)) $values = $value; elseif(strpos($value,'|@|')!==false) $values = explode('|@|', $value); elseif(strpos($value,',')!==false) $values = explode(',', $value); else $values = array($value); for($i=0;$i_getTypeValue($this->type, $this->value); switch($this->type) { case 'homepage' : return ($value)?(sprintf('%s', $value, strlen($value)>60?substr($value,0,40).'...'.substr($value,-10):$value)):""; case 'email_address' : return ($value)?sprintf('%s', $value, $value):""; break; case 'tel' : return sprintf('%s - %s - %s', $value[0],$value[1],$value[2]); break; case 'textarea' : return nl2br($value); break; case 'checkbox' : if(is_array($value)) return implode(', ',$value); else return $value; break; case 'date' : return zdate($value,"Y-m-d"); break; case 'select' : case 'radio' : if(is_array($value)) return implode(', ',$value); else return $value; break; case 'kr_zip' : if(is_array($value)) return implode(' ',$value); else return $value; break; // case 'text' : default : return $value; } } /** * @brief return a form based on its type **/ function getFormHTML() { static $id_num = 1000; $type = $this->type; $name = $this->name; $value = $this->_getTypeValue($this->type, $this->value); $default = $this->_getTypeValue($this->type, $this->default); $column_name = 'extra_vars'.$this->idx; $tmp_id = $column_name.'-'.$id_num++; $buff = ''; switch($type) { // Homepage case 'homepage' : $buff .= ''; break; // Email Address case 'email_address' : $buff .= ''; break; // Phone Number case 'tel' : $buff .= ''. ''. ''; break; // textarea case 'textarea' : $buff .= ''; break; // multiple choice case 'checkbox' : $buff .= ''; break; // single choice case 'select' : $buff .= ''; break; // radio case 'radio' : $buff .= ''; break; // date case 'date' : // datepicker javascript plugin load Context::loadJavascriptPlugin('ui.datepicker'); $buff .= ''. ' '."\n". ''; break; // address case "kr_zip" : // krzip address javascript plugin load Context::loadJavascriptPlugin('ui.krzip'); $buff .= '
'. ''. ''.Context::getLang('cmd_cancel').''. '
'. ''. '
'. ''. ''.Context::getLang('cmd_search').''. '
'. ''. ''; break; // General text default : $buff .=' '; break; } if($this->desc) $buff .= '

'.$this->desc.'

'; return $buff; } } ?>