icingaweb2/doc/form_elements.md

2.1 KiB

Form Elements Shipped With Icinga 2 Web

On top of the elements provided by the Zend Framework, Icinga 2 Web ships its own to offer additional functionality. The following is a list of these classes, as well as descriptions of the functionality they offer.

DateTimePicker

Icinga\Web\Form\Element\DateTimePicker represents a control that allows the user to select date/time and to display the date and time with a user specified format. Internally the element returns the input as Unix timestamp after it has been proven valid. That is when the input is valid to \DateTime::createFromFormat() according to the user specified format. Input is always timezone aware because the element utilizes Icinga\Util\DateTimeFactory which relies on the timezone set by the user.

Example #1 DateTimePicker expecting date

use Icinga\Web\Form\Element\DateTimePicker;

$element = new DateTimePicker(
    array(
        'name'      => 'date',
        'label'     => t('Date'),
        'patterns'  => array('Y-m-d') // Allowed format
    )
)

Example #2 DateTimePicker expecting time

use Icinga\Web\Form\Element\DateTimePicker;

$element = new DateTimePicker(
    array(
        'name'      => 'time',
        'label'     => t('Time'),
        'patterns'  => array('H:i:s') // Allowed format
    )
)

Example #3 DateTimePicker expecting date and time

use Icinga\Web\Form\Element\DateTimePicker;

$element = new DateTimePicker(
    array(
        'name'      => 'datetime',
        'label'     => t('Date And Time'),
        'patterns'  => array('Y-m-d H:i:s') // Allowed format
    )
)

Example #4 DateTimePicker expecting date/time w/ default value

use Icinga\Web\Form\Element\DateTimePicker;
use Icinga\Util\DateTimeFactory;

$now = DateTimeFactory::create();

$element =  new DateTimePicker(
    array(
        'name'      => 'datetime',
        'label'     => t('Date/Time'),
        'value'     => $now->getTimestamp() + 3600, // now plus 1 hour
        'patterns'  => array('Y-m-d H:i:s', 'Y-m-d', 'H:i:s') // Allowed format
    )
)