public function build_struct($data) { $data['rule'] = json_decode($data['rule']); $tags = new MyTags(); $rule = ''; $validate = ''; $width = empty($data['width']) ? '' : ' width:' . $data['width'] . 'px;'; $height = empty($data['height']) ? '' : ' height:' . $data['height'] . 'px;'; $style = ''; if ($width . $height != '') { $style = ' style="' . $width . $height . '" '; } if (!empty($data['rule'])) { $validate = ' validate={'; foreach ($data['rule'] as $rule_key => $rule_value) { $rule .= '"' . $rule_key . '"' . ':' . $rule_value . ','; } //组合错误消息 if (trim($data['error_tips']) != '') { $rule .= '"messages":"' . $data['error_tips'] . '"'; } $validate .= trim($rule, ',') . '} '; } if (substr($data['field_type'], 0, 6) == 'switch' && $data['setting']['type'] == 'option') { $this->html_struct[$data['field_name']]['add_html'] = '<select name="' . $data['field_name'] . '" ' . $data['js_event'] . ' ' . $validate . '><option value="">请选择</option>'; $this->html_struct[$data['field_name']]['edit_html'] = '<select name="' . $data['field_name'] . '" ' . $data['js_event'] . ' ' . $validate . '><option value="">请选择</option>'; } if (substr($data['field_type'], 0, 5) == 'input') { $this->html_struct[$data['field_name']]['add_html'] = '<input type="text" name="' . $data['field_name'] . '" ' . $data['js_event'] . ' ' . $data['html_attr'] . $validate . ' value="' . $data['default_val'] . '" />'; $this->html_struct[$data['field_name']]['edit_html'] = "<input type=\"text\" name=\"" . $data['field_name'] . '" ' . $data['js_event'] . ' ' . $data['html_attr'] . $validate . $style . " value=\"<?php echo \$" . $data['field_name'] . ";?>\" />"; } if ($data['field_type'] == 'switch') { foreach ($data['data'] as $radio_v => $radio_n) { if ($radio_v == $data['default_val']) { $checked = 'checked="checked"'; $selected = 'selected="selected"'; } else { $checked = ''; $selected = $checked; } $edit_checked = '<?php if(in_array("' . $radio_v . '",explode("#",$' . $data['field_name'] . '))):?>checked<?php endif;?>'; $edit_selected = '<?php if($' . $data['field_name'] . '=="' . $radio_v . '"):?>selected<?php endif;?>'; if ($data['setting']['type'] == 'radio') { $this->html_struct[$data['field_name']]['add_html'] .= '<label><input type="' . $data['setting']['type'] . "\" name=\"{$data['field_name']}\" {$data['js_event']} value=\"{$radio_v}\"{$validate} {$checked} />{$radio_n}</label>"; $this->html_struct[$data['field_name']]['edit_html'] .= '<label><input type="' . $data['setting']['type'] . "\" name=\"{$data['field_name']}\" {$data['js_event']} value=\"{$radio_v}\"{$validate} {$edit_checked} />{$radio_n}</label>"; } else { if ($data['setting']['type'] == 'checkbox') { $this->html_struct[$data['field_name']]['add_html'] .= '<label><input type="' . $data['setting']['type'] . "\" name=\"{$data['field_name']}[]\" {$data['js_event']} value=\"{$radio_v}\"{$validate} {$checked} />{$radio_n}</label>"; $this->html_struct[$data['field_name']]['edit_html'] .= '<label><input type="' . $data['setting']['type'] . "\" name=\"{$data['field_name']}[]\" {$data['js_event']} value=\"{$radio_v}\"{$validate} {$edit_checked} />{$radio_n}</label>"; } else { //下拉列表 $this->html_struct[$data['field_name']]['add_html'] .= '<option value="' . $radio_v . '" ' . $selected . '>' . $radio_n . '</option>'; $this->html_struct[$data['field_name']]['edit_html'] .= '<option value="' . $radio_v . '" ' . $edit_selected . '>' . $radio_n . '</option>'; } } } } if (substr($data['field_type'], 0, 6) == 'switch' && $data['setting']['type'] == 'option') { $this->html_struct[$data['field_name']]['add_html'] .= '</select>'; $this->html_struct[$data['field_name']]['edit_html'] .= '</select>'; } if ($data['field_type'] == 'editor') { //编辑器 $editor_attr = array('name' => $data['field_name'], 'id' => $data['field_name'], 'content' => $data['default_val'], 'width' => $data['width'], 'height' => $data['height'], 'style' => $data['editor_style']); if (isset($data['rule']['maxlength'])) { $editor_attr['max'] = $data['rule']['maxlength']; //最大输入字数 } $this->html_struct[$data['field_name']]['add_html'] = $tags->_editor($editor_attr, ''); $editor_attr['content'] = '$' . $data['field_name']; $this->html_struct[$data['field_name']]['edit_html'] = $tags->_editor($editor_attr, ''); } if ($data['field_type'] == 'textarea') { //文本域 $this->html_struct[$data['field_name']]['add_html'] = '<textarea name = "' . $data['field_name'] . '" ' . $data['js_event'] . ' ' . $data['html_attr'] . $validate . $style . ' >' . $data['default_val'] . '</textarea>'; $this->html_struct[$data['field_name']]['edit_html'] = '<textarea name = "' . $data['field_name'] . '" ' . $data['js_event'] . ' ' . $data['html_attr'] . $validate . $style . ' ><?php echo $' . $data['field_name'] . ';?></textarea>'; } if ($data['field_type'] == 'linkage') { //联动数据 $attr = array(); $data['attached'] = json_decode($data['attached']); if (!empty($data['attached'])) { $attr['field'] = $data['field_name'] . '#'; $attr['edit_field'] = '$' . $data['field_name'] . '#$'; $attr['field'] .= implode('#', $data['attached']); $attr['edit_field'] .= implode('#$', $data['attached']); } else { $attr['field'] = $data['field_name']; $attr['edit_field'] = '$' . $data['field_name']; } $attr['edit_field'] = rtrim($attr['edit_field'], '#$'); $attr['data'] = $data['lcgid']; $attr['style'] = $data['linkage_style']; $attr['attr'] = $data['html_attr'] . $validate; $attr['checkbox'] = isset($data['setting']['checkbox']) ? 'true' : 'false'; if (!empty($data['default_val'])) { $attr['defaults'] = $data['default_val']; } $this->html_struct[$data['field_name']]['add_html'] = $tags->_linkage($attr, ''); $attr['defaults'] = $attr['edit_field']; $this->html_struct[$data['field_name']]['edit_html'] = $tags->_linkage($attr, ''); } }
* * @var int * @access protected */ protected $fontSizeRange = 0; /** * Defines the base font size * * @var int * @access protected */ protected $baseFontSize = 12; } // }}} // Create an instance of our extended HTML_TagCloud we prepared above $tags = new MyTags(); // Add Elements (same as TagCloud_example1.php) $tags->addElement('PHP', 'http://www.php.net', 39, strtotime('-1 day')); $tags->addElement('XML', 'http://www.xml.org', 21, strtotime('-2 week')); $tags->addElement('Perl', 'http://www.perl.org', 15, strtotime('-1 month')); $tags->addElement('PEAR', 'http://pear.php.net', 32, time()); $tags->addElement('MySQL', 'http://www.mysql.com', 10, strtotime('-2 day')); $tags->addElement('PostgreSQL', 'http://pgsql.com', 6, strtotime('-3 week')); // Print out HTML and CSS print $tags->buildALL(); // Show source, you don't need this line in your code, it's just for showing off ?> <br/> Take a look at the source:<br/> <?php show_source(__FILE__);