...
Code Block | ||
---|---|---|
| ||
<?php use Blesta\Core\Util\Input\Fields\InputFields; class MyController extends AppControllerMyPluginController { ... public function myWidget() { // Set filters from post input $post_filters = []; if (isset($this->post['filters'])) { $post_filters = $this->post['filters']; unset($this->post['filters']); } ... // Set the input field filters for the widget $filters = $this->getFilters($post_filters); $this->set('filters', $filters); $this->set('filter_vars', $post_filters); } private function getFilters(array $vars) { $filters = new InputFields(); // Create "Service Name" label $service_name = $filters->label('Service Name', 'service_name'); // Create "filters[service_name]" input field $service_name->attach( $filters->fieldText( 'filters[service_name]', isset($vars['service_name']) ? $vars['service_name'] : null, // Pre-populate the field if it is defined in $vars [ 'id' => 'text_input', 'class' => 'form-control', 'placeholder' => 'Service Name' ] ) ); $filters->setField($service_name); // Set control panels list $control_panels = [ 'cpanel' => 'cPanel', 'plesk' => 'Plesk' ]; // Create "Control Panel" label $control_panel = $filters->label('Control Panel', 'control_panel'); // Create "filters[control_panel]" select field $control_panel->attach( $filters->fieldSelect( 'filters[control_panel]', $control_panels, isset($vars['control_panel']) ? $vars['control_panel'] : null, ['id' => 'control_panel', 'class' => 'form-control'] ) ); $filters->setField($control_panel); // You can set HTML code as well! $fields->setHtml(' <script type="text/javascript">alert("It Works!");</script> '); return $filters; } } |
...