text('title', _t('@', 'Name'), '', true) ->required() ->text('keyword', _t('@', 'Keyword'), '', false) ->required() ->hidden($visibleFordev) ->onValidate(function($data) use ($form){ $data['value'] = Banners::model()->positionKeywordValidate($data['value'], $data['result']['title'], $form->recordID()); return true; }) ->text('width', _t('@banners', 'Width'), '', false) ->stretch(false) ->rule(TYPE_UINT) ->label('px') ->tip('0 - 100%') ->text('height', _t('@banners', 'Height'), '', false) ->stretch(false) ->rule(TYPE_UINT) ->label('px') ->tip('0 - 100%') ->onValidate(function ($data) { if (empty($data['value']) && empty($data['result']['width'])) { Errors::set(_t('@banners', 'Please specify at least one of the sizes, width or height')); return false; } return true; }) ->text('width_mobile', _t('@banners', 'Width'), '', false) ->titleRender(function ($html) { ?>
stretch(false) ->rule(TYPE_UINT) ->label('px') ->tip('0 - 100%') ->text('height_mobile', _t('@banners', 'Height'), '', false) ->titleRender(function ($html) { ?>
stretch(false) ->rule(TYPE_UINT) ->label('px') ->tip('0 - 100%') ->onValidate(function ($data) { if (empty($data['value']) && empty($data['result']['width_mobile'])) { Errors::set(_t('@banners', 'Please specify at least one of the sizes, width or height')); return false; } return true; }) ; $form ->radio('_type', _t('@site', 'Type')) ->option(0, _t('@banners', 'Standard')) ->option(1, _t('@banners', 'Slider')) ->option(2, _t('@banners', 'Rotation')) ->noFieldsList() ->onValidate(static function($p) { switch ($p['value']) { case 1: $p['result']['slider'] = 1; $p['result']['rotation'] = 0; break; case 2: $p['result']['slider'] = 0; $p['result']['rotation'] = 1; break; default: $p['result']['slider'] = 0; $p['result']['rotation'] = 0; break; } return false; }) ->onValue(static function($v) use ($form) { $d = $form->_data(); if (! empty($d['slider'])) { return 1; } if (! empty($d['rotation'])) { return 2; } return 0; }) ->number('rotation_visible', _t('@banners', 'Display Banners Simultaneously'), 1, 0, 1, 1) ->visibleIf('_type', 2) ; $form ->checkbox('filter_pages', _t('@banners', 'Filters')) ->label(_t('@banners', 'Website Section')) ->hidden($visibleFordev) ->checkbox('filter_region') ->label(_t('@banners', 'Region')) ->hidden(function () use ($fordev) { if (! $fordev) return true; if (method_exists('Geo', 'filterDisabled')) { return Geo::filterDisabled(); } return ! $fordev; }) ->checkbox('filter_list_pos') ->label(_t('@banners', 'Position Number In the List')) ->hidden($visibleFordev) ->checkbox('filter_auth_users', _t('@', 'Users')) ->label(_t('@banners', 'Hide for Logged Users')) ->hidden(function () use ($fordev) { return ! Banners::FILTER_AUTH_USERS || ! $fordev; }) ->checkbox('enabled', _t('@', 'Enabled')) ; $form ->buttonSubmit() ->whenEdit(static function () use ($form, $list, &$fordev) { $form->buttonSubmitReturn(); if ($fordev) { $form ->buttonHref(_t('@', 'Delete'), function() use ($form, $list) { $href = $list->urlAjax('position_delete', ['position_id' => $form->recordID()]) ?> ['class' => 'btn-danger']] ); } }) ->when(true, static function () use ($form) { $form->buttonCancel(); }) ->contentWrapper(function($html) use ($form, $fordev) { if ( ! $fordev && ! $form->recordID()) { Errors::impossible(); return ''; } ?> _fieldActivate('width') ->htmlAfter('
px
') ->_fieldActivate('height') ->htmlAfter('
px
') ->_fieldActivate('enabled') ; }