if (!rex::isBackend()) { \rex_extension::register('OUTPUT_FILTER', '\\Sprog\\Extension::replaceWildcards'); } if (rex::isBackend() && rex::getUser()) { \rex_extension::register('CLANG_ADDED', '\\Sprog\\Extension::clangAdded'); \rex_extension::register('CLANG_DELETED', '\\Sprog\\Extension::clangDeleted'); rex_extension::register('PAGES_PREPARED', function () { if (rex::getUser()->isAdmin()) { if (\rex_be_controller::getCurrentPage() == 'sprog/settings') { $func = rex_request('func', 'string'); if ($func == 'update') { \rex_config::set('sprog', 'wildcard_clang_switch', rex_request('clang_switch', 'bool')); } } } if (rex::getUser()->isAdmin() || rex::getUser()->hasPerm('sprog[wildcard]')) { $page = \rex_be_controller::getPageObject('sprog/wildcard'); if (Wildcard::isClangSwitchMode()) { $clang_id = str_replace('clang', '', rex_be_controller::getCurrentPagePart(3)); $page->setSubPath(rex_path::addon('sprog', 'pages/wildcard.clang_switch.php')); foreach (\rex_clang::getAll() as $id => $clang) { if (rex::getUser()->getComplexPerm('clang')->hasPerm($id)) { $page->addSubpage((new rex_be_page('clang' . $id, $clang->getName()))->setSubPath(rex_path::addon('sprog', 'pages/wildcard.clang_switch.php'))->setIsActive($id == $clang_id)); } } } else { $page->setSubPath(rex_path::addon('sprog', 'pages/wildcard.clang_all.php')); } } }); }
$content = $fragment->parse('core/page/section.php'); } else { $title = $func == 'edit' ? $this->i18n('edit') : $this->i18n('add'); \rex_extension::register('REX_FORM_CONTROL_FIELDS', '\\Sprog\\Extension::wildcardFormControlElement'); $form = rex_form::factory(rex::getTable('sprog_wildcard'), '', 'pid = ' . $pid); $form->addParam('pid', $pid); $form->setApplyUrl(rex_url::currentBackendPage()); $form->setLanguageSupport('id', 'clang_id'); $form->setEditMode($func == 'edit'); if ($func == 'add' && rex::getUser()->getComplexPerm('clang')->hasAll()) { $field = $form->addTextField('wildcard', rex_request('wildcard_name', 'string', null)); $field->setNotice($this->i18n('wildcard_without_tag')); } else { $field = $form->addReadOnlyField('wildcard', rex_request('wildcard_name', 'string', null)); } $field->setLabel($this->i18n('wildcard')); $field->getValidator()->add('notEmpty', $this->i18n('wildcard_error_no_wildcard')); $field = $form->addTextAreaField('replace'); $field->setLabel($this->i18n('wildcard_replace')); $content .= $form->get(); $fragment = new rex_fragment(); $fragment->setVar('class', 'edit', false); $fragment->setVar('title', $title); $fragment->setVar('body', $content, false); $content = $fragment->parse('core/page/section.php'); } echo $message; echo $content; if (rex::getUser()->getComplexPerm('clang')->hasAll()) { echo Wildcard::getMissingWildcardsAsTable(); }