config = $config; $this->options = $options; } public function render() { foreach($this->config as $tab_name => $sub_menus): echo '
'; foreach($sub_menus as $sub_menu_name => $options): echo '

' . $tab_name . ' » ' . $sub_menu_name . '

'; foreach($options as $option): $pro = isset($option['pro']) ? 'pro_option' : ''; $semi_pro = isset($option['semi_pro']) ? 'semi_pro_option' : ''; $type = isset($option['type']) ? $option['type'] : null; $unit = isset($option['unit']) ? '' . $option['unit'] . '' : null; $select = isset($option['select']) ? $option['select'] : null; echo ''; endforeach; echo '
' . $option['title'] . '
' . $option['label'] . '
'; $this->f($type, $option['option'], $select); echo $unit . '
'; endforeach; echo '
'; endforeach; } public function i($data) { return strtolower(str_replace([' ', '/'], '_', $data)); } public function f($type, $option_name, $select) { switch($type): case 'checkbox' : $comp = new Form\Checkbox; $comp->render($this->options[$option_name]); break; case 'colour' : $comp = new Form\Colour; $comp->render($this->options[$option_name]); break; case 'textarea' : $comp = new Form\TextArea; $comp->render($this->options[$option_name]); break; case 'select' : $comp = new Form\Select; $comp->render($this->options[$option_name], $select); break; case 'image' : $comp = new Form\Image; $comp->render($this->options[$option_name]); break; case 'menu_ordering' : $comp = new Form\MenuOrdering; $comp->render($this->options[$option_name]); break; case 'header_ordering' : $comp = new Form\HeaderBarOrdering; $comp->render($this->options[$option_name]); break; case 'fonticons' : $comp = new Form\FontIconPageList; $comp->render($this->options[$option_name]); break; case 'import' : $comp = new Form\Import; $comp->render(); break; case 'export' : $comp = new Form\Export; $comp->render(); break; case 'reset' : $comp = new Form\Reset; $comp->render(); break; default : $comp = new Form\Text; $comp->render($this->options[$option_name]); break; endswitch; } }