Ejemplo n.º 1
0
 /**
  * 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;
 }
Ejemplo n.º 2
0
    /**
     * 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;
    }