/** * Get access editing form. * * @param \stdClass $objectAcl Acl object with data. * @param Role $currentRole Role object. * * @return CoreForm */ protected function _getForm($objectAcl, $currentRole) { $form = new CoreForm(); if (!empty($objectAcl->actions)) { $form->addHtml('header_actions', '<h4>' . $this->di->get('i18n')->_('Actions') . '</h4>'); foreach ($objectAcl->actions as $action) { $form->addCheckbox($action, ucfirst($action), sprintf('ACTION_%s_%s_DESCRIPTION', strtoupper(str_replace('\\', '_', $objectAcl->name)), strtoupper($action)), 1, $this->core->acl()->isAllowed($currentRole->name, $objectAcl->name, $action), 0); } } if (!empty($objectAcl->options)) { $form->addHtml('header_options', '<br/><br/><h4>' . $this->di->get('i18n')->_('Options') . '</h4>'); foreach ($objectAcl->options as $option) { $form->addText($option, ucfirst($option), sprintf('OPTION_%s_%s_DESCRIPTION', strtoupper(str_replace('\\', '_', $objectAcl->name)), strtoupper($option)), $this->core->acl()->getAllowedValue($objectAcl->name, $currentRole, $option)); } } $form->addFooterFieldSet()->addButton('save')->addButtonLink('cancel', 'Cancel', ['for' => 'admin-access']); return $form; }
/** * Admin action for editing widget options through admin panel. * * @return CoreForm */ public function adminAction() { $form = new CoreForm(); $form->addText('title'); // Adding additional html for language selector support. $languageSelectorHtml = ' <style type="text/css"> form .form_elements > div{ min-height: auto !important; padding-top: 0px !important; } form .form_elements > div:nth-last-child(2){ padding-top: 10px !important; } </style> <script type="text/javascript"> var defaultLanguage = "%s"; $(document).ready(function(){ $("#html_block_language").change(function(){ $("#cke_html_"+$(this).val()).closest(".form_element_container").show(); $(".cke").not("#cke_html_"+$(this).val()).closest(".form_element_container").hide(); }); // Hide inactive. $("textarea").not("#html_"+defaultLanguage).closest(".form_element_container").hide(); setTimeout( function(){ $(".cke").not("#cke_html_"+defaultLanguage).closest(".form_element_container").hide(); }, 200); }); </script> <div class="form_element_container" style="float: left;"> <div class="form_label"> <label for="title">%s</label> </div> <div class="form_element"> <select id="html_block_language" style="width: 120px;"> %s </select> </div> </div> '; // Creating languages boxes. $languages = Language::find(); $languageHtmlItems = ''; $defaultLanguage = Settings::getSetting('system_default_language', 'en'); if ($defaultLanguage == 'auto') { $defaultLanguage = 'en'; } $elements = []; foreach ($languages as $language) { $selectedLanguage = ''; if ($language->language == $defaultLanguage) { $selectedLanguage = 'selected="selected"'; } $elementName = 'html_' . $language->language; $elements[$elementName] = 'HTML (' . strtoupper($language->language) . ')'; $languageHtmlItems .= '<option ' . $selectedLanguage . ' value=' . $language->language . '>' . $language->name . '</option>'; } $languageSelectorHtml = sprintf($languageSelectorHtml, $defaultLanguage, $this->di->get('i18n')->_('HTML block, for:'), $languageHtmlItems); // Adding created html to form. $form->addHtml('html_language', $languageSelectorHtml); foreach ($elements as $elementName => $elementTitle) { $form->addCkEditor($elementName, $elementTitle); } $form->addHtml('separator'); return $form; }