Versions Compared

Key

  • This line was added.
  • This line was removed.
  • Formatting was changed.

...

Code Block
languagephp
<?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;
	}
}

...