config = $config;
$this->options = $options;
}
public function render() {
$output = '';
foreach($this->config as $tab_name => $sub_menus):
$output .= '
';
foreach($sub_menus as $sub_menu_name => $options):
$output .= '
';
endforeach;
$output .= '
';
endforeach;
return $output;
}
public function i($data) {
return strtolower(str_replace([' ', '/'], '_', $data));
}
public function f($type, $option_name, $select) {
switch($type):
case 'checkbox' : $comp = new Form\Checkbox;
return $comp->render($this->options[$option_name]);
break;
case 'colour' : $comp = new Form\Colour;
return $comp->render($this->options[$option_name]);
break;
case 'textarea' : $comp = new Form\TextArea;
return $comp->render($this->options[$option_name]);
break;
case 'select' : $comp = new Form\Select;
return $comp->render($this->options[$option_name], $select);
break;
case 'image' : $comp = new Form\Image;
return $comp->render($this->options[$option_name]);
break;
case 'menu_ordering' : $comp = new Form\MenuOrdering;
return $comp->render($this->options[$option_name]);
break;
case 'header_ordering' : $comp = new Form\HeaderBarOrdering;
return $comp->render($this->options[$option_name]);
break;
case 'fonticons' : $comp = new Form\FontIconPageList;
return $comp->render($this->options[$option_name]);
break;
case 'import' : $comp = new Form\Import;
return $comp->render();
break;
case 'export' : $comp = new Form\Export;
return $comp->render();
break;
case 'reset' : $comp = new Form\Reset;
return $comp->render();
break;
default : $comp = new Form\Text;
return $comp->render($this->options[$option_name]);
break;
endswitch;
}
}