$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';
/** * 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); }
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; } }
rex_view::setJsProperty('backend', true); rex_view::setJsProperty('accesskeys', rex::getProperty('use_accesskeys')); // ----- 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();
* * For the full copyright and license information, please view the LICENSE * file that was distributed with this source code. */ use Sprog\Wildcard; class_alias('\\Sprog\\Wildcard', 'Wildcard'); rex_perm::register('sprog[wildcard]', null, rex_perm::OPTIONS); 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)); }
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>'; }
protected function loadBackendConfig() { $this->addParam('page', rex_be_controller::getCurrentPage()); }
/** * Layout Kopf des Backends. * * @package redaxo5 */ $curPage = rex_be_controller::getCurrentPageObject(); if (!$curPage->hasLayout()) { if (rex_request::isPJAXRequest()) { // add title to the page, so pjax can update it. see gh#136 echo '<title>' . htmlspecialchars(rex_be_controller::getPageTitle()) . '</title>'; } return; } $body_attr = []; $body_id = rex_string::normalize(rex_be_controller::getCurrentPage(), '-', ' '); $body_attr['id'] = ['rex-page-' . $body_id]; $body_attr['onunload'] = ['closeAll();']; $body_attr['class'] = ['rex-is-logged-out']; if (rex::getUser()) { $body_attr['class'] = ['rex-is-logged-in']; } if ($curPage->isPopup()) { $body_attr['class'][] = 'rex-is-popup'; } // ----- EXTENSION POINT $body_attr = rex_extension::registerPoint(new rex_extension_point('PAGE_BODY_ATTR', $body_attr)); $body = ''; foreach ($body_attr as $k => $v) { $body .= ' ' . $k . '="'; if (is_array($v)) {
<?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);
// ------------------------------------------ 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'); } }
<?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')); } }
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']); $position = ++$this->sliceAddPosition; $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-add-pos-' . $position; $items[] = $item; } } $fragment = new rex_fragment(); $fragment->setVar('block', true); $fragment->setVar('button_label', rex_i18n::msg('add_block')); $fragment->setVar('items', $items, false); $select = $fragment->parse('core/dropdowns/dropdown.php'); $select = rex_extension::registerPoint(new rex_extension_point('STRUCTURE_CONTENT_MODULE_SELECT', $select, ['page' => rex_be_controller::getCurrentPage(), 'article_id' => $this->article_id, 'clang' => $this->clang, 'ctype' => $this->ctype, 'slice_id' => $sliceId])); return '<li class="rex-slice rex-slice-select" id="slice-add-pos-' . $position . '">' . $select . '</li>'; }
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'); $category_id = rex_get('category_id'); 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'])) { $priority = '0'; // $prevSlice->setDebug(); if ($function === 'content/paste') { $priority = 1; } else { $prevSlice = rex_sql::factory(); $prevSlice->setTable($sliceTable); $prevSlice->setWhere(array('id' => rex_get('slice_id'))); $prevSlice->select(); $priority = $prevSlice->getValue('priority') + 1; } $copiedSlice = rex_sql::factory(); $copiedSlice->setTable($sliceTable); $copiedSlice->setWhere(array('id' => $cut_slice_id)); $copiedSlice->select(); $exclude = array('id', 'createdate', 'updatedate', 'createuser', 'updateuser', 'priority'); // print_r($copiedSlice->getRow()); foreach ($copiedSlice->getRow() as $key => $value) { if (empty($value)) { continue; } $field = end(explode('.', $key)); if (in_array($field, $exclude)) { continue; } $newsql->setValue($field, $value); } $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(); $slice_id = $newsql->getLastId(); if ($slice_id !== 0) { $_SESSION['slice_ui']['new_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' => 0, 'slice_revision' => 0])); 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()); } // die(); // 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; } }
/** * 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']); }
/** * Layout Kopf des Backends. * * @package redaxo5 */ $curPage = rex_be_controller::getCurrentPageObject(); if (!$curPage->hasLayout()) { if (rex_request::isPJAXRequest()) { // add title to the page, so pjax can update it. see gh#136 echo '<title>' . htmlspecialchars(rex_be_controller::getPageTitle()) . '</title>'; } return; } $body_attr = []; $body_id = str_replace('_', '-', rex_be_controller::getCurrentPage()); $body_attr['id'] = ['rex-page-' . $body_id]; $body_attr['onunload'] = ['closeAll();']; $body_attr['class'] = ['rex-is-logged-out']; if (rex::getUser()) { $body_attr['class'] = ['rex-is-logged-in']; } if ($curPage->isPopup()) { $body_attr['class'][] = 'rex-is-popup'; } // ----- EXTENSION POINT $body_attr = rex_extension::registerPoint(new rex_extension_point('PAGE_BODY_ATTR', $body_attr)); $body = ''; foreach ($body_attr as $k => $v) { $body .= ' ' . $k . '="'; if (is_array($v)) {
</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>
<?php if (rex::isBackend()) { if ($this->getConfig('status') != 'deaktiviert') { if (rex_be_controller::getCurrentPage() == 'structure') { rex_extension::register('OUTPUT_FILTER', function (rex_extension_point $ep) { // settings // - - - - - - - - - - - - - - - - - - // separator $sepp = $this->getConfig('sepp'); // color $cssColor = $this->getConfig('cssColor'); // background $cssBackground = $this->getConfig('cssBackground'); // - - - - - - - - - - - - - - - - - - // settings end $seppClass = preg_replace('/\\W+/', '', $sepp); $html = $ep->getSubject(); $put = ' <script> var $sepp = "' . $sepp . '"; var $seppClass = "' . $seppClass . '"; $(document).on("rex:ready", function (event, container) { container.find(\'tr:contains("\' + $sepp + \'")\').each(function () { $(this).addClass($seppClass); var $td = $(this).find(\'td:contains("\' + $sepp + \'")\').addClass($seppClass); var $regex = new RegExp($sepp, "g"); $td.html($td.html().replace($regex, "")).find("a").contents().unwrap(); }); }); </script> <style>