<?php /** * This file is part of the Url package. * * @author (c) Thomas Blum <*****@*****.**> * * For the full copyright and license information, please view the LICENSE * file that was distributed with this source code. */ /** * Convert some text to Markdown... */ function markdown($text) { return (new ParsedownExtra())->text($text); } if (rex::isBackend()) { rex_view::addCssFile($this->getAssetsUrl('dao.css')); rex_view::addJsFile($this->getAssetsUrl('vendor/redips/redips-table.js')); if (rex_be_controller::getCurrentPage() == 'dao_var/readme') { rex_view::addJsFile($this->getAssetsUrl('prism.js')); } }
<?php /** * @package redaxo5 */ // -------------- Defaults $subpage = rex_be_controller::getCurrentPagePart(2); $func = rex_request('func', 'string'); echo rex_view::title(rex_i18n::msg('modules')); include rex_be_controller::getCurrentPageObject()->getSubPath();
<?php /** * Cronjob Addon. * * @author gharlan[at]web[dot]de Gregor Harlan * * @package redaxo5 * * @var rex_addon $this */ echo rex_view::title($this->i18n('title')); rex_be_controller::includeCurrentPageSubPath();
<nav class="rex-nav-top navbar navbar-default"> <div class="container-fluid"> <div class="navbar-header"> <?php if (rex_be_controller::getCurrentPageObject()->isPopup()) { ?> <span class="navbar-brand"><img class="rex-js-svg rex-redaxo-logo" src="<?php echo rex_url::coreAssets('redaxo-logo.svg'); ?> " /></span> <?php } else { ?> <a class="navbar-brand" href="<?php echo rex_url::backendController(); ?> "><img class="rex-js-svg rex-redaxo-logo" src="<?php echo rex_url::coreAssets('redaxo-logo.svg'); ?> " /></a> <?php } ?> </div> <?php echo $this->meta_navigation; ?> </div> </nav>
/** * Returns the url to the current backend page. * * @param array $params Params * @param bool $escape Flag whether the argument separator "&" should be escaped (&) * * @return string */ public static function currentBackendPage(array $params = [], $escape = true) { return self::backendPage(rex_be_controller::getCurrentPage(), $params, $escape); }
/** * Returns the formatted title. * * @param string $head * @param null|string|array $subtitle * * @throws InvalidArgumentException * * @return string */ public static function title($head, $subtitle = null) { if ($subtitle !== null && !is_string($subtitle) && (!is_array($subtitle) || count($subtitle) > 0 && !reset($subtitle) instanceof rex_be_page)) { throw new InvalidArgumentException('Expecting $subtitle to be a string or an array of rex_be_page!'); } if ($subtitle === null) { $subtitle = rex_be_controller::getPageObject(rex_be_controller::getCurrentPagePart(1))->getSubpages(); } if (is_array($subtitle) && count($subtitle) && reset($subtitle) instanceof rex_be_page) { $nav = rex_be_navigation::factory(); $nav->setHeadline('default', rex_i18n::msg('subnavigation', $head)); foreach ($subtitle as $pageObj) { $nav->addPage($pageObj); } $blocks = $nav->getNavigation(); $navigation = []; if (count($blocks) == 1) { $navigation = current($blocks); $navigation = $navigation['navigation']; } if (!empty($navigation)) { $fragment = new rex_fragment(); $fragment->setVar('left', $navigation, false); $subtitle = $fragment->parse('core/navigations/content.php'); } else { $subtitle = ''; } } elseif (!is_string($subtitle)) { $subtitle = ''; } $title = rex_extension::registerPoint(new rex_extension_point('PAGE_TITLE', $head)); $fragment = new rex_fragment(); $fragment->setVar('heading', $title, false); $fragment->setVar('subtitle', $subtitle, false); $return = $fragment->parse('core/page/header.php'); $return .= rex_extension::registerPoint(new rex_extension_point('PAGE_TITLE_SHOWN', '')); return $return; }
<?php /** * MetaForm Addon. * * @author markus[dot]staab[at]redaxo[dot]de Markus Staab * * @package redaxo5 */ // Parameter $Basedir = __DIR__; $subpage = rex_be_controller::getCurrentPagePart(2); $func = rex_request('func', 'string'); echo rex_view::title(rex_i18n::msg('minfo_title')); // Include Current Page switch ($subpage) { case 'media': $prefix = 'med_'; break; case 'categories': $prefix = 'cat_'; break; default: $prefix = 'art_'; } $metaTable = rex_metainfo_meta_table($prefix); require $Basedir . '/field.php';
// ------------------------------------------ END: CONTENT HEAD MENUE // ------------------------------------------ WARNING if ($global_warning != '') { $contentMain .= rex_view::warning($global_warning); } if ($global_info != '') { $contentMain .= rex_view::success($global_info); } // --------------------------------------------- API MESSAGES $contentMain .= rex_api_function::getMessage(); if ($warning != '') { $contentMain .= rex_view::warning($warning); } if ($info != '') { $contentMain .= rex_view::success($info); } // ----- EXTENSION POINT $contentMain .= rex_extension::registerPoint(new rex_extension_point('STRUCTURE_CONTENT_BEFORE_SLICES', '', ['article_id' => $article_id, 'clang' => $clang, 'function' => $function, 'slice_id' => $slice_id, 'page' => rex_be_controller::getCurrentPage(), 'ctype' => $ctype, 'category_id' => $category_id, 'article_revision' => &$article_revision, 'slice_revision' => &$slice_revision])); // ------------------------------------------ START: MODULE EDITIEREN/ADDEN ETC. $contentMain .= (include rex_be_controller::getCurrentPageObject()->getSubPath()); // ------------------------------------------ END: AUSGABE // ----- EXTENSION POINT $contentMain .= rex_extension::registerPoint(new rex_extension_point('STRUCTURE_CONTENT_AFTER_SLICES', '', ['article_id' => $article_id, 'clang' => $clang, 'function' => $function, 'slice_id' => $slice_id, 'page' => rex_be_controller::getCurrentPage(), 'ctype' => $ctype, 'category_id' => $category_id, 'article_revision' => &$article_revision, 'slice_revision' => &$slice_revision])); // ----- EXTENSION POINT $contentSidebar = rex_extension::registerPoint(new rex_extension_point('STRUCTURE_CONTENT_SIDEBAR', '', ['article_id' => $article_id, 'clang' => $clang, 'function' => $function, 'slice_id' => $slice_id, 'page' => rex_be_controller::getCurrentPage(), 'ctype' => $ctype, 'category_id' => $category_id, 'article_revision' => &$article_revision, 'slice_revision' => &$slice_revision])); $fragment = new rex_fragment(); $fragment->setVar('content', $contentMain, false); $fragment->setVar('sidebar', $contentSidebar, false); echo $fragment->parse('core/page/main_content.php'); } }
protected function loadBackendConfig() { $this->addParam('page', rex_be_controller::getCurrentPage()); }
/** * Page Content Addon. * * @author markus[dot]staab[at]redaxo[dot]de Markus Staab * * @package redaxo5 */ rex_perm::register('moveSlice[]', null, rex_perm::OPTIONS); rex_complex_perm::register('modules', 'rex_module_perm'); if (rex::isBackend()) { rex_extension::register('PAGE_CHECKED', function () { if (rex_be_controller::getCurrentPagePart(1) == 'content') { rex_be_controller::getPageObject('structure')->setIsActive(true); } }); if (rex_be_controller::getCurrentPagePart(1) == 'system') { rex_system_setting::register(new rex_system_setting_default_template_id()); } rex_extension::register('CLANG_DELETED', function (rex_extension_point $ep) { $del = rex_sql::factory(); $del->setQuery('delete from ' . rex::getTablePrefix() . "article_slice where clang_id='" . $ep->getParam('clang')->getId() . "'"); }); } else { rex_extension::register('FE_OUTPUT', function (rex_extension_point $ep) { $content = $ep->getSubject(); $article = new rex_article_content(); $article->setCLang(rex_clang::getCurrentId()); if ($article->setArticleId(rex_article::getCurrentId())) { $content .= $article->getArticleTemplate(); } else { $content .= 'Kein Startartikel selektiert / No starting Article selected. Please click here to enter <a href="' . rex_url::backendController() . '">redaxo</a>';
<?php /** * Cronjob Addon. * * @author gharlan[at]web[dot]de Gregor Harlan * * @package redaxo5 * * @var rex_addon $this */ define('REX_CRONJOB_LOG_FOLDER', $this->getDataPath()); define('REX_CRONJOB_TABLE', rex::getTable('cronjob')); rex_extension::register('PACKAGES_INCLUDED', function () { foreach ($this->getAvailablePlugins() as $plugin) { if (($type = $plugin->getProperty('cronjob_type')) != '') { rex_cronjob_manager::registerType($type); } } }); $nexttime = $this->getConfig('nexttime', 0); if ($nexttime != 0 && time() >= $nexttime) { $env = rex_cronjob_manager::getCurrentEnvironment(); $EP = 'backend' === $env ? 'PAGE_CHECKED' : 'PACKAGES_INCLUDED'; rex_extension::register($EP, function () use($env) { if ('backend' !== $env || !in_array(rex_be_controller::getCurrentPagePart(1), ['setup', 'login', 'cronjob'])) { rex_cronjob_manager_sql::factory()->check(); } }); }
<?php // ------- Default Values $HTMLArea = rex_request('HTMLArea', 'string'); $opener_input_field = rex_request('opener_input_field', 'string'); $opener_input_field_name = rex_request('opener_input_field_name', 'string'); $category_id = rex_request('category_id', 'int'); $category_id = rex_category::get($category_id) ? $category_id : 0; $clang = rex_request('clang', 'int'); $clang = rex_clang::exists($clang) ? $clang : rex_clang::getStartId(); $context = new rex_context(['page' => rex_be_controller::getCurrentPage(), 'HTMLArea' => $HTMLArea, 'opener_input_field' => $opener_input_field, 'opener_input_field_name' => $opener_input_field_name, 'category_id' => $category_id, 'clang' => $clang]); // ------- Build JS Functions $func_body = ''; if ($HTMLArea != '') { if ($HTMLArea == 'TINY') { $func_body = 'window.opener.tinyMCE.insertLink(link);'; } else { $func_body = 'window.opener.' . $HTMLArea . '.surroundHTML("<a href="+link+">","</a>");'; } } if ($opener_input_field != '' && $opener_input_field_name == '') { $opener_input_field_name = $opener_input_field . '_NAME'; } if ($opener_input_field == 'TINY') { $func_body .= 'window.opener.insertLink(link,name); self.close();'; } elseif (substr($opener_input_field, 0, 13) == 'REX_LINKLIST_') { $id = substr($opener_input_field, 13, strlen($opener_input_field)); $func_body .= 'var linklist = "REX_LINKLIST_SELECT_' . $id . '"; var linkid = link.replace("redaxo://",""); var source = opener.document.getElementById(linklist);
/** * @param rex_context $context * * @return string * * @package redaxo\structure */ function rex_structure_searchbar(rex_context $context) { $message = ''; $search_result = ''; // ------------ Parameter $clang = $context->getParam('clang', 1); $category_id = $context->getParam('category_id', 0); $article_id = $context->getParam('article_id', 0); $search_article_name = rex_request('search_article_name', 'string'); // ------------ Suche via ArtikelId if (preg_match('/^[0-9]+$/', $search_article_name, $matches)) { if ($OOArt = rex_article::get($matches[0], $clang)) { rex_response::sendRedirect($context->getUrl(['page' => 'content/edit', 'article_id' => $OOArt->getId()], false)); } } // Auswahl eines normalen Artikels => category holen if ($article_id != 0) { $OOArt = rex_article::get($article_id, $clang); // Falls Artikel gerade geloescht wird, gibts keinen rex_article if ($OOArt) { $category_id = $OOArt->getCategoryId(); } } // ------------ Suche via ArtikelName if (rex_request('search_start', 'bool')) { // replace LIKE wildcards $search_article_name_like = str_replace(['_', '%'], ['\\_', '\\%'], $search_article_name); $qry = ' SELECT id FROM ' . rex::getTablePrefix() . 'article WHERE clang_id = ' . $clang . ' AND ( name LIKE "%' . $search_article_name_like . '%" OR catname LIKE "%' . $search_article_name_like . '%" )'; if (rex_addon::get('structure')->getConfig('searchmode', 'local') != 'global') { // Suche auf aktuellen Kontext eingrenzen if ($category_id != 0) { $qry .= ' AND path LIKE "%|' . $category_id . '|%"'; } } $search = rex_sql::factory(); // $search->setDebug(); $search->setQuery($qry); $foundRows = $search->getRows(); // Suche ergab nur einen Treffer => Direkt auf den Treffer weiterleiten if ($foundRows == 1) { $OOArt = rex_article::get($search->getValue('id'), $clang); if (rex::getUser()->getComplexPerm('structure')->hasCategoryPerm($OOArt->getCategoryId())) { rex_response::sendRedirect($context->getUrl(['page' => 'content/edit', 'article_id' => $search->getValue('id')], false)); } } elseif ($foundRows > 0) { $needle = htmlspecialchars($search_article_name); $search_result .= '<div class="list-group">'; for ($i = 0; $i < $foundRows; ++$i) { $breadcrumb = []; $OOArt = rex_article::get($search->getValue('id'), $clang); $label = $OOArt->getName(); if (rex::getUser()->getComplexPerm('structure')->hasCategoryPerm($OOArt->getCategoryId())) { $label .= ' [' . $search->getValue('id') . ']'; $highlightHit = function ($string, $needle) { return preg_replace('/(.*)(' . preg_quote($needle, '/') . ')(.*)/i', '\\1<mark>\\2</mark>\\3', $string); }; foreach ($OOArt->getParentTree() as $treeItem) { $treeLabel = $treeItem->getName(); if (rex::getUser()->hasPerm('advancedMode[]')) { $treeLabel .= ' [' . $treeItem->getId() . ']'; } $treeLabel = htmlspecialchars($treeLabel); $treeLabel = $highlightHit($treeLabel, $needle); $e = []; $e['title'] = $treeLabel; $e['href'] = $context->getUrl(['page' => 'structure', 'category_id' => $treeItem->getId()]); $breadcrumb[] = $e; } $label = htmlspecialchars($label); $label = $highlightHit($label, $needle); $e = []; $e['title'] = $label; $e['href'] = $context->getUrl(['page' => 'content/edit', 'article_id' => $treeItem->getId()]); $breadcrumb[] = $e; $fragment = new rex_fragment(); $fragment->setVar('items', $breadcrumb, false); $search_result .= '<div class="list-group-item">' . $fragment->parse('core/navigations/breadcrumb.php') . '</div>'; } $search->next(); } $search_result .= '</div>'; $fragment = new rex_fragment(); $fragment->setVar('title', rex_i18n::msg('be_search_result'), false); $fragment->setVar('content', $search_result, false); $search_result = $fragment->parse('core/page/section.php'); } else { $message = rex_view::info(rex_i18n::msg('be_search_no_results')); } } $select_name = 'category_id'; $add_homepage = true; if (rex_be_controller::getCurrentPagePart(1) == 'content') { $select_name = 'article_id'; $add_homepage = false; } $category_select = new rex_category_select(false, false, true, $add_homepage); $category_select->setName($select_name); $category_select->setSize('1'); $category_select->setAttribute('onchange', 'this.form.submit();'); $category_select->setSelected($category_id); $select = $category_select->get(); $doc = new DOMDocument(); $doc->loadHTML('<?xml encoding="UTF-8">' . $select); $options = $doc->getElementsByTagName('option'); $droplistContext = new rex_context(['page' => 'structure', 'category_id' => 0]); $button_label = ''; $items = []; foreach ($options as $option) { $value = ''; $item = []; if ($option->hasAttributes()) { foreach ($option->attributes as $attribute) { if ($attribute->name == 'value') { $value = $attribute->value; $droplistContext->setParam('category_id', $value); if ($attribute->value == $category_id) { $button_label = str_replace(" ", '', $option->nodeValue); $item['active'] = true; } } } } $item['title'] = preg_replace('/\\[([0-9]+)\\]$/', '<small class="rex-primary-id">$1</small>', $option->nodeValue); $item['href'] = $droplistContext->getUrl(); $items[] = $item; } $fragment = new rex_fragment(); $fragment->setVar('button_prefix', rex_i18n::msg('be_search_quick_navi')); $fragment->setVar('button_label', $button_label); $fragment->setVar('items', $items, false); $droplist = '<div class="navbar-btn navbar-right">' . $fragment->parse('core/dropdowns/dropdown.php'); $formElements = []; $n = []; $n['field'] = '<input class="form-control" type="text" name="search_article_name" value="' . htmlspecialchars($search_article_name) . '" placeholder="' . htmlspecialchars(rex_i18n::msg('be_search_article_name') . '/' . rex_i18n::msg('be_search_article_id')) . '" />'; $n['right'] = '<button class="btn btn-search" type="submit" name="search_start" value="1">' . rex_i18n::msg('be_search_start') . '</button>'; $formElements[] = $n; $fragment = new rex_fragment(); $fragment->setVar('elements', $formElements, false); $toolbar = $fragment->parse('core/form/input_group.php'); $toolbar = ' <form action="' . rex_url::currentBackendPage() . '" method="post"> ' . $context->getHiddenInputFields() . ' <div class="navbar-form navbar-left"> <div class="form-group"> ' . $toolbar . ' </div> </div> </form>'; $toolbar = rex_view::toolbar($toolbar . $droplist, rex_i18n::msg('be_search_search')); return $toolbar . $search_result; }
foreach (rex_i18n::getLocales() as $locale) { rex_i18n::setLocale($locale, false); // Locale nicht neu setzen $sel_be_sprache->addOption(rex_i18n::msg('lang'), $locale); } rex_i18n::setLocale($saveLocale, false); $userperm_be_sprache = rex_request('userperm_be_sprache', 'string'); // ----- welche startseite $sel_startpage = new rex_select(); $sel_startpage->setSize(1); $sel_startpage->setName('userperm_startpage'); $sel_startpage->setId('rex-user-perm-startpage'); $sel_startpage->setAttribute('class', 'form-control'); $sel_startpage->addOption('default', ''); $startpages = []; foreach (rex_be_controller::getPages() as $page => $pageObj) { /* @var $pageObj rex_be_page */ if ($pageObj->hasNavigation() && !$pageObj->isHidden()) { $startpages[$page] = $pageObj->getTitle(); } } asort($startpages); $sel_startpage->addOptions($startpages); $userperm_startpage = rex_request('userperm_startpage', 'string'); // --------------------------------- Title // --------------------------------- FUNCTIONS $FUNC_UPDATE = ''; $FUNC_APPLY = ''; $FUNC_DELETE = ''; if ($user_id != 0 && (rex::getUser()->isAdmin() || !$sql->getValue('admin'))) { $FUNC_UPDATE = rex_request('FUNC_UPDATE', 'string');
public static function addSlice() { $article_id = rex_request('article_id', 'int'); $function = rex_request('page', 'string'); $cut_slice_id = $slice_id = $_SESSION['slice_ui']['slice_id']; $module_id = $_SESSION['slice_ui']['module_id']; $clang = rex_get('clang'); $ctype = rex_get('ctype'); if (!self::checkPermissions(array('article_id' => $article_id, 'clang' => $clang, 'ctype' => $ctype, 'module_id' => $module_id))) { // Alle OBs schließen while (@ob_end_clean()) { } header("Location: " . rex_url::backendController() . '?article_id=' . $article_id . '&clang=' . $clang . '&page=content/edit&ctype=' . $ctype); exit; } $slice_revision = 0; $template_attributes = []; $newsql = rex_sql::factory(); // $newsql->setDebug(); $sliceTable = rex::getTablePrefix() . 'article_slice'; $newsql->setTable($sliceTable); if (strpos($function, 'content/paste') !== false && !empty($_SESSION['slice_ui'])) { // determine priority value to get the new slice into the right order $priority = '0'; // $prevSlice->setDebug(); if ($function === 'content/paste') { $priority = 1; } else { $prevSlice = rex_sql::factory(); $prevSlice->setQuery('SELECT * FROM ' . $sliceTable . ' WHERE id=' . rex_get('slice_id')); $priority = $prevSlice->getValue('priority') + 1; } $newsql->setValue('article_id', $article_id); $newsql->setValue('module_id', $module_id); $newsql->setValue('clang_id', $clang); $newsql->setValue('ctype_id', $ctype); $newsql->setValue('revision', $slice_revision); $newsql->setValue('priority', $priority); $newsql->addGlobalUpdateFields(); $newsql->addGlobalCreateFields(); try { $newsql->insert(); $info = $action_message . rex_i18n::msg('block_added'); $slice_id = $newsql->getLastId(); if ($slice_id !== 0) { $_SESSION['slice_ui']['slice_id'] = $slice_id; } rex_sql_util::organizePriorities(rex::getTable('article_slice'), 'priority', 'article_id=' . $article_id . ' AND clang_id=' . $clang . ' AND ctype_id=' . $ctype . ' AND revision=' . $slice_revision, 'priority, updatedate DESC'); $function = ''; // ----- EXTENSION POINT rex_extension::registerPoint(new rex_extension_point('SLICE_PASTED', '', ['article_id' => $article_id, 'clang' => $clang, 'function' => $function, 'slice_id' => $slice_id, 'page' => rex_be_controller::getCurrentPage(), 'ctype' => $ctype, 'category_id' => $category_id, 'module_id' => $module_id, 'article_revision' => &$article_revision, 'slice_revision' => &$slice_revision])); if ($_SESSION['slice_ui']['cut'] == 1) { $curr = rex_sql::factory(); $curr->setDebug(); $curr->setTable($sliceTable); $curr->setWhere(array('id' => $cut_slice_id)); $curr->delete(); rex_sql_util::organizePriorities(rex::getTable('article_slice'), 'priority', 'article_id=' . $_SESSION['slice_ui']['article_id'] . ' AND clang_id=' . $clang . ' AND ctype_id=' . $ctype . ' AND revision=' . $slice_revision, 'priority, updatedate DESC'); } } catch (rex_sql_exception $e) { // echo rex_view::warning($e->getMessage()); } // Alle OBs schließen while (@ob_end_clean()) { } header("Location: " . rex_url::backendController() . '?article_id=' . $article_id . '&clang=' . $clang . '&page=content/edit&ctype=' . $ctype); exit; } }
$fragment = new rex_fragment(); $fragment->setVar('pageTitle', rex_be_controller::getPageTitle()); $fragment->setVar('cssFiles', rex_view::getCssFiles()); $fragment->setVar('jsFiles', rex_view::getJsFiles()); $fragment->setVar('jsProperties', json_encode(rex_view::getJsProperties()), false); $fragment->setVar('favicon', rex_view::getFavicon()); $fragment->setVar('pageHeader', rex_extension::registerPoint(new rex_extension_point('PAGE_HEADER', '')), false); $fragment->setVar('bodyAttr', $body, false); echo $fragment->parse('core/top.php'); $fragment = new rex_fragment(); $fragment->setVar('items', $meta_items, false); $meta_navigation = $fragment->parse('core/navigations/meta.php'); $fragment = new rex_fragment(); // $fragment->setVar('pageHeader', rex_extension::registerPoint(new rex_extension_point('PAGE_HEADER', '')), false); $fragment->setVar('meta_navigation', $meta_navigation, false); echo $fragment->parse('core/header.php'); echo '<div id="rex-js-page-container" class="rex-page-container">'; } elseif (rex_request::isPJAXRequest()) { // add title to the page, so pjax can update it. see gh#136 echo '<title>' . htmlspecialchars(rex_be_controller::getPageTitle()) . '</title>'; } $fragment = new rex_fragment(); $fragment->setVar('navigation', $navigation, false); echo $fragment->parse('core/navigation.php'); $pjax = $curPage->allowsPjax() ? ' data-pjax-container="#rex-js-page-main"' : ''; ?> <div class="rex-page-main"><section class="rex-page-main-inner" id="rex-js-page-main"<?php echo $pjax; ?> >
// ----- INCLUDE ADDONS include_once rex_path::core('packages.php'); // ----- Prepare AddOn Pages if (rex::getUser()) { rex_be_controller::appendPackagePages(); } $pages = rex_extension::registerPoint(new rex_extension_point('PAGES_PREPARED', rex_be_controller::getPages())); rex_be_controller::setPages($pages); // Set Startpage if ($user = rex::getUser()) { // --- page pruefen und benoetigte rechte checken rex_be_controller::checkPagePermissions($user); } $page = rex_be_controller::getCurrentPage(); rex_view::setJsProperty('page', $page); // ----- EXTENSION POINT // page variable validated rex_extension::registerPoint(new rex_extension_point('PAGE_CHECKED', $page, ['pages' => $pages], true)); // trigger api functions // If the backend session is timed out, rex_api_function would throw an exception // so only trigger api functions if page != login if ($page != 'login') { rex_api_function::handleCall(); } // include the requested backend page rex_be_controller::includeCurrentPage(); // ----- caching end für output filter $CONTENT = ob_get_contents(); ob_end_clean(); // ----- inhalt ausgeben rex_response::sendPage($CONTENT);
/** * Returns whether the page is active. * * @return bool */ public function isActive() { if ($this->isActive !== null) { return $this->isActive; } $page = rex_be_controller::getCurrentPageObject(); do { if ($page === $this) { return true; } } while ($page = $page->getParent()); return false; }
for(var i = 0; i < files.length; i++) { if (files[i].checked) { option = opener.document.createElement("OPTION"); option.text = files[i].value; option.value = files[i].value; source.options.add(option, sourcelength); sourcelength++; } } opener.writeREXMedialist(' . $id . ');'; } ?> } function openPage(src) { window.opener.location.href = src; self.close(); } //--> </script> <?php // -------------- Include Page rex_be_controller::includeCurrentPageSubPath(compact('opener_input_field', 'opener_link', 'arg_url', 'args', 'arg_fields', 'rex_file_category', 'rex_file_category_name', 'PERMALL', 'file_id', 'error', 'success'));
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')); } } }); }
<?php /** * Cronjob Addon. * * @author gharlan[at]web[dot]de Gregor Harlan * * @package redaxo5 * * @var rex_addon $this */ define('REX_CRONJOB_LOG_FOLDER', $this->getDataPath()); define('REX_CRONJOB_TABLE', rex::getTable('cronjob')); rex_extension::register('PACKAGES_INCLUDED', function () { foreach ($this->getAvailablePlugins() as $plugin) { if (($type = $plugin->getProperty('cronjob_type')) != '') { rex_cronjob_manager::registerType($type); } } }); $nexttime = $this->getConfig('nexttime', 0); if ($nexttime != 0 && time() >= $nexttime) { $EP = rex::isBackend() ? 'PAGE_CHECKED' : 'PACKAGES_INCLUDED'; rex_extension::register($EP, function () { if (!rex::isBackend() || !in_array(rex_be_controller::getCurrentPagePart(1), ['setup', 'login', 'cronjob'])) { rex_cronjob_manager_sql::factory()->check(); } }); }
$fieldContainer->setMultiple(false); $group = 'all'; $fieldContainer->setActive($group); // Check all page permissions and add them to rex_perm if not already registered $registerImplicitePagePermissions = function ($pages) use(&$registerImplicitePagePermissions) { foreach ($pages as $page) { foreach ($page->getRequiredPermissions() as $perm) { // ignore admin perm and complex perms (with "/") if ($perm && !in_array($perm, ['isAdmin', 'admin', 'admin[]']) && strpos($perm, '/') === false && !rex_perm::has($perm)) { rex_perm::register($perm); } } $registerImplicitePagePermissions($page->getSubpages()); } }; $registerImplicitePagePermissions(rex_be_controller::getPages()); foreach ([rex_perm::GENERAL, rex_perm::OPTIONS, rex_perm::EXTRAS] as $permgroup) { $field = $fieldContainer->addGroupedField($group, 'select', $permgroup); $field->setLabel(rex_i18n::msg('user_' . $permgroup)); $select = $field->getSelect(); $select->setMultiple(true); $perms = rex_perm::getAll($permgroup); $select->setSize(min(10, max(3, count($perms)))); $select->addArrayOptions($perms); } rex_extension::register('REX_FORM_INPUT_CLASS', function (rex_extension_point $ep) { return $ep->getParam('inputType') == 'perm_select' ? 'rex_form_perm_select_element' : null; }); $fieldIds = []; foreach (rex_complex_perm::getAll() as $key => $class) { $params = $class::getFieldParams();
$n['right'] = '<button class="btn btn-search" type="submit"><i class="rex-icon rex-icon-search"></i></button>'; //$n['right'] = $dropdown; $formElements[] = $n; $fragment = new rex_fragment(); $fragment->setVar('elements', $formElements, false); $toolbar = $fragment->parse('core/form/input_group.php'); $toolbar = ' <div class="navbar-form navbar-right"> <form action="' . rex_url::currentBackendPage() . '" method="post"> ' . $arg_fields . ' <div class="form-group"> ' . $toolbar . ' </div> </form> </div>'; $context = new rex_context(['page' => rex_be_controller::getCurrentPage()]); /* $view_buttons = []; // symbol view $button = []; $button['url'] = $context->getUrl(['func' => 'media-view-icon']); $button['attributes']['class'][] = 'btn-default'; $button['attributes']['title'] = rex_i18n::msg('mediapool_view_icon'); $button['icon'] = 'view-icon'; $view_buttons[] = $button; // list view $button = []; $button['url'] = $context->getUrl(['func' => 'media-view-list']); $button['attributes']['class'][] = 'btn-default';
/** * @param rex_be_page[] $pages */ public static function setPages(array $pages) { self::$pages = $pages; }
/** * Bindet ggf extensions ein. * * @param rex_extension_point $ep */ function rex_metainfo_extensions_handler(rex_extension_point $ep) { $page = $ep->getSubject(); $mainpage = rex_be_controller::getCurrentPagePart(1); $mypage = 'metainfo'; // additional javascripts if ($mainpage == 'metainfo' || $page == 'content/metainfo' || $page == 'structure') { rex_view::addJsFile(rex_url::addonAssets($mypage, 'metainfo.js')); } // include extensions $curDir = __DIR__ . '/..'; if ($page == 'structure') { require_once $curDir . '/lib/handler/category_handler.php'; } elseif ($mainpage == 'mediapool') { require_once $curDir . '/lib/handler/media_handler.php'; } elseif ($mainpage == 'content') { require_once $curDir . '/extensions/extension_content_sidebar.php'; } elseif ($page == 'backup') { require_once $curDir . '/extensions/extension_cleanup.php'; } }
<?php $curPage = rex_be_controller::getCurrentPageObject(); if (!$curPage->hasLayout()) { if (rex_request::isPJAXRequest()) { echo '</section>'; } return; } ?> </section></div><?php if (rex_request::isPJAXContainer('#rex-js-page-container')) { return; } echo '</div>'; $sidebar = rex_extension::registerPoint(new rex_extension_point('PAGE_SIDEBAR', '')); if ($sidebar != '') { $sidebarfragment = new rex_fragment(); $sidebarfragment->content = $sidebar; echo $sidebarfragment->parse('core/sidebar.php'); unset($sidebarfragment); } unset($fragment); $footerfragment = new rex_fragment(); $footerfragment->setVar('time', rex::getProperty('timer')->getFormattedDelta(rex_timer::SEC)); echo $footerfragment->parse('core/footer.php'); unset($footerfragment); $bottomfragment = new rex_fragment(); echo $bottomfragment->parse('core/bottom.php'); unset($bottomfragment);
/** * Laedt die Konfiguration die noetig ist um rex_form im REDAXO Backend zu verwenden. */ protected function loadBackendConfig() { $func = rex_request('func', 'string'); $this->addParam('page', rex_be_controller::getCurrentPage()); $this->addParam('func', $func); $this->addParam('list', rex_request('list', 'string')); $controlFields = []; $controlFields['save'] = rex_i18n::msg('form_save'); $controlFields['apply'] = $func == 'edit' ? rex_i18n::msg('form_apply') : ''; $controlFields['delete'] = $func == 'edit' ? rex_i18n::msg('form_delete') : ''; $controlFields['reset'] = ''; //rex_i18n::msg('form_reset'); $controlFields['abort'] = rex_i18n::msg('form_abort'); // ----- EXTENSION POINT $controlFields = rex_extension::registerPoint(new rex_extension_point('REX_FORM_CONTROL_FIELDS', $controlFields, ['form' => $this])); $controlElements = []; foreach ($controlFields as $name => $label) { if ($label) { $controlElements[$name] = $this->addField('button', $name, $label, ['type' => 'submit', 'internal::useArraySyntax' => false, 'internal::fieldSeparateEnding' => true], false); } else { $controlElements[$name] = null; } } $this->addControlField($controlElements['save'], $controlElements['apply'], $controlElements['delete'], $controlElements['reset'], $controlElements['abort']); }
private function getModuleSelect($sliceId) { // ----- BLOCKAUSWAHL - SELECT $context = new rex_context(['page' => rex_be_controller::getCurrentPage(), 'article_id' => $this->article_id, 'clang' => $this->clang, 'ctype' => $this->ctype, 'slice_id' => $sliceId, 'function' => 'add']); $items = []; if (isset($this->MODULESELECT[$this->ctype])) { foreach ($this->MODULESELECT[$this->ctype] as $module) { $item = []; $item['title'] = $module['name']; $item['href'] = $context->getUrl(['module_id' => $module['id']]) . '#slice' . $sliceId; $items[] = $item; } } $fragment = new rex_fragment(); $fragment->setVar('block', true); $fragment->setVar('button_label', rex_i18n::msg('add_block')); $fragment->setVar('items', $items, false); return '<li class="rex-slice rex-slice-select">' . $fragment->parse('core/dropdowns/dropdown.php') . '</li>'; }
</div><!-- END .rex-page --> <?php if (rex_be_controller::getCurrentPage() != 'login' && !rex_be_controller::getCurrentPageObject()->isPopup()) { ?> <button type="button" class="navbar-toggle" data-toggle="collapse" data-target=".rex-nav-main > .navbar-collapse"> <span class="sr-only">Toggle navigation</span> <span class="icon-bar"></span> <span class="icon-bar"></span> <span class="icon-bar"></span> </button> <?php } ?> </body> </html>
public static function checkPagePermissions(rex_user $user) { $check = function (rex_be_page $page) use(&$check, $user) { if (!$page->checkPermission($user)) { return false; } $subpages = $page->getSubpages(); foreach ($subpages as $key => $subpage) { if (!$check($subpage)) { unset($subpages[$key]); } } $page->setSubpages($subpages); return true; }; foreach (self::$pages as $key => $page) { if (!$check($page)) { unset(self::$pages[$key]); } } self::$pageObject = null; $page = self::getCurrentPageObject(); // --- page pruefen und benoetigte rechte checken if (!$page) { // --- fallback zur user startpage -> rechte checken $page = self::getPageObject($user->getStartPage()); if (!$page) { // --- fallback zur system startpage -> rechte checken $page = self::getPageObject(rex::getProperty('start_page')); if (!$page) { // --- fallback zur profile page $page = self::getPageObject('profile'); } } rex_response::setStatus(rex_response::HTTP_NOT_FOUND); rex_response::sendRedirect($page->getHref()); } if ($page !== ($leaf = $page->getFirstSubpagesLeaf())) { rex_response::setStatus(rex_response::HTTP_MOVED_PERMANENTLY); $url = $leaf->hasHref() ? $leaf->getHref() : rex_context::restore()->getUrl(['page' => $leaf->getFullKey()], false); rex_response::sendRedirect($url); } }