/** * Gibt eine Url zu einem Artikel zurück. * * @param int|null $id * @param int|null $clang SprachId des Artikels * @param array $params Array von Parametern * @param string $separator * * @return string * * @package redaxo\structure */ function rex_getUrl($id = null, $clang = null, array $params = [], $separator = '&') { $id = (int) $id; $clang = (int) $clang; // ----- get id if ($id == 0) { $id = rex::getProperty('article_id'); } // ----- get clang // Wenn eine rexExtension vorhanden ist, immer die clang mitgeben! // Die rexExtension muss selbst entscheiden was sie damit macht if (!rex_clang::exists($clang) && (rex_clang::count() > 1 || rex_extension::isRegistered('URL_REWRITE'))) { $clang = rex_clang::getCurrentId(); } // ----- EXTENSION POINT $url = rex_extension::registerPoint(new rex_extension_point('URL_REWRITE', '', ['id' => $id, 'clang' => $clang, 'params' => $params, 'separator' => $separator])); if ($url == '') { if (rex_clang::count() > 1) { $clang = $separator . 'clang=' . $clang; } else { $clang = ''; } $params = rex_string::buildQuery($params, $separator); $params = $params ? $separator . $params : ''; $url = rex_url::frontendController() . '?article_id=' . $id . $clang . $params; } return $url; }
/** * Gibt eine Url zu einem Artikel zurück. * * @param string $_id * @param int|string $_clang SprachId des Artikels * @param array|string $_params Array von Parametern * @param bool $escape Flag whether the argument separator "&" should be escaped (&) * * @return string * * @package redaxo\structure */ function rex_getUrl($_id = '', $_clang = '', $_params = '', $escape = true) { $id = (int) $_id; $clang = (int) $_clang; // ----- get id if ($id == 0) { $id = rex::getProperty('article_id'); } // ----- get clang // Wenn eine rexExtension vorhanden ist, immer die clang mitgeben! // Die rexExtension muss selbst entscheiden was sie damit macht if ($_clang === '' && (rex_clang::count() > 1 || rex_extension::isRegistered('URL_REWRITE'))) { $clang = rex_clang::getCurrentId(); } // ----- get params $param_string = rex_param_string($_params, $escape ? '&' : '&'); $name = 'NoName'; if ($id != 0) { $ooa = rex_article::get($id, $clang); if ($ooa) { $name = rex_parse_article_name($ooa->getName()); } } // ----- EXTENSION POINT $url = rex_extension::registerPoint(new rex_extension_point('URL_REWRITE', '', ['id' => $id, 'name' => $name, 'clang' => $clang, 'params' => $param_string, 'escape' => $escape])); if ($url == '') { $_clang = ''; if (rex_clang::count() > 1) { $_clang .= ($escape ? '&' : '&') . 'clang=' . $clang; } $url = rex_url::frontendController() . '?article_id=' . $id . $_clang . $param_string; } return $url; }
/** * Factory method. * * @param string $host Host name * @param int $port Port number * @param bool $ssl SSL flag * * @return static Socket instance * * @see rex_socket::factoryUrl() */ public static function factory($host, $port = 80, $ssl = false) { if (get_called_class() === __CLASS__ && ($proxy = rex::getProperty('socket_proxy'))) { return rex_socket_proxy::factoryUrl($proxy)->setDestination($host, $port, $ssl); } return new static($host, $port, $ssl); }
public function testGetServer() { $origServer = rex::getProperty('server'); rex::setProperty('server', 'http://www.redaxo.org'); $this->assertEquals('http://www.redaxo.org/', rex::getServer()); $this->assertEquals('https://www.redaxo.org/', rex::getServer('https')); $this->assertEquals('www.redaxo.org/', rex::getServer('')); rex::setProperty('server', $origServer); }
/** * Extends rex_extension::registerPoint() with FirePHP logging. */ public static function registerPoint(rex_extension_point $extensionPoint) { $coreTimer = rex::getProperty('timer'); $absDur = $coreTimer->getFormattedDelta(); // start timer for this extensionPoint $timer = new rex_timer(); $res = parent::registerPoint($extensionPoint); $epDur = $timer->getFormattedDelta(); $memory = rex_formatter::bytes(memory_get_usage(true), [3]); self::$log[] = ['type' => 'EP', 'ep' => $extensionPoint->getName(), 'started' => $absDur, 'duration' => $epDur, 'memory' => $memory, 'subject' => $extensionPoint->getSubject(), 'params' => $extensionPoint->getParams(), 'read_only' => $extensionPoint->isReadonly(), 'result' => $res, 'timer' => $epDur]; return $res; }
public function getField() { $field = new rex_form_select_element(); $field->setAttribute('class', 'form-control'); $field->setLabel(rex_i18n::msg('system_setting_default_template_id')); $select = $field->getSelect(); $select->setSize(1); $select->setSelected(rex::getProperty('default_template_id')); $templates = rex_template::getTemplatesForCategory(0); if (empty($templates)) { $select->addOption(rex_i18n::msg('option_no_template'), 0); } else { $select->addArrayOptions($templates); } return $field; }
/** * Stellt die Verbindung zur Datenbank her. */ protected function selectDB($DBID) { $this->DBID = $DBID; try { if (!isset(self::$pdo[$DBID])) { $dbconfig = rex::getProperty('db'); $conn = self::createConnection($dbconfig[$DBID]['host'], $dbconfig[$DBID]['name'], $dbconfig[$DBID]['login'], $dbconfig[$DBID]['password'], $dbconfig[$DBID]['persistent']); self::$pdo[$DBID] = $conn; // ggf. Strict Mode abschalten $this->setQuery('SET SQL_MODE=""'); // set encoding $this->setQuery('SET NAMES utf8'); } } catch (PDOException $e) { throw new rex_sql_exception('Could not connect to database', $e); } }
*/ rex_perm::register('moveArticle[]', null, rex_perm::OPTIONS); rex_perm::register('moveCategory[]', null, rex_perm::OPTIONS); rex_perm::register('copyArticle[]', null, rex_perm::OPTIONS); rex_perm::register('copyContent[]', null, rex_perm::OPTIONS); rex_perm::register('publishArticle[]', null, rex_perm::OPTIONS); rex_perm::register('publishCategory[]', null, rex_perm::OPTIONS); rex_perm::register('article2startarticle[]', null, rex_perm::OPTIONS); rex_perm::register('article2category[]', null, rex_perm::OPTIONS); rex_complex_perm::register('structure', 'rex_structure_perm'); require_once __DIR__ . '/functions/function_rex_url.php'; if (rex_request('article_id', 'int') == 0) { rex::setProperty('article_id', rex::getProperty('start_article_id')); } else { $article_id = rex_request('article_id', 'int'); $article_id = rex_article::get($article_id) ? $article_id : rex::getProperty('notfound_article_id'); rex::setProperty('article_id', $article_id); } if (rex::isBackend() && rex::getUser()) { rex_view::addJsFile($this->getAssetsUrl('linkmap.js')); rex_extension::register('PAGE_SIDEBAR', function () { $category_id = rex_request('category_id', 'int'); $article_id = rex_request('article_id', 'int'); $clang = rex_request('clang', 'int'); $ctype = rex_request('ctype', 'int'); $category_id = rex_category::get($category_id) ? $category_id : 0; $article_id = rex_article::get($article_id) ? $article_id : 0; $clang = rex_clang::exists($clang) ? $clang : rex_clang::getStartId(); // TODO - CHECK PERM $context = new rex_context(['page' => 'structure', 'category_id' => $category_id, 'article_id' => $article_id, 'clang' => $clang, 'ctype' => $ctype]); // check if a new category was folded
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); } }
/** * Sends content to the client. * * @param string $content Content * @param string $contentType Content type * @param int $lastModified HTTP Last-Modified Timestamp * @param string $etag HTTP Cachekey to identify the cache */ public static function sendContent($content, $contentType = null, $lastModified = null, $etag = null) { if (!self::$sentContentType) { self::sendContentType($contentType); } if (!self::$sentCacheControl) { self::sendCacheControl(); } $environment = rex::isBackend() ? 'backend' : 'frontend'; if (self::$httpStatus == self::HTTP_OK && (false === strpos($_SERVER['HTTP_USER_AGENT'], 'Safari') || false !== strpos($_SERVER['HTTP_USER_AGENT'], 'Chrome'))) { // ----- Last-Modified if (!self::$sentLastModified && (rex::getProperty('use_last_modified') === true || rex::getProperty('use_last_modified') === $environment)) { self::sendLastModified($lastModified); } // ----- ETAG if (!self::$sentEtag && (rex::getProperty('use_etag') === true || rex::getProperty('use_etag') === $environment)) { self::sendEtag($etag ?: self::md5($content)); } } // ----- GZIP if (rex::getProperty('use_gzip') === true || rex::getProperty('use_gzip') === $environment) { $content = self::sendGzip($content); } self::cleanOutputBuffers(); header('HTTP/1.1 ' . self::$httpStatus); // content length schicken, damit der browser einen ladebalken anzeigen kann header('Content-Length: ' . rex_string::size($content)); echo $content; if (function_exists('fastcgi_finish_request')) { fastcgi_finish_request(); } }
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::getProperty('article_id'))) { $content .= $article->getArticleTemplate(); } else { $content .= 'Kein Startartikel selektiert / No starting Article selected. Please click here to enter <a href="' . rex_url::backendController() . '">redaxo</a>'; rex_response::sendPage($content); exit; } $art_id = $article->getArticleId(); if ($art_id == rex::getProperty('notfound_article_id') && $art_id != rex::getProperty('start_article_id')) { rex_response::setStatus(rex_response::HTTP_NOT_FOUND); } // ----- inhalt ausgeben rex_response::sendPage($content, $article->getValue('updatedate')); }); }
/** * Returns true if this Article is the not found article. * * @return bool */ public function isNotFoundArticle() { return $this->id == rex::getProperty('notfound_article_id'); }
private function _setActivePath() { $article_id = rex::getProperty('article_id'); if ($OOArt = rex_article::get($article_id)) { $path = trim($OOArt->getPath(), '|'); $this->path = []; if ($path != '') { $this->path = explode('|', $path); } $this->current_article_id = $article_id; $this->current_category_id = $OOArt->getCategoryId(); return true; } return false; }
require_once rex_path::core('functions/function_rex_other.php'); // ----------------- VERSION rex::setProperty('version', '5.0.0-alpha7'); $cacheFile = rex_path::cache('config.yml.cache'); $configFile = rex_path::data('config.yml'); if (file_exists($cacheFile) && file_exists($configFile) && filemtime($cacheFile) >= filemtime($configFile)) { $config = rex_file::getCache($cacheFile); } else { $config = array_merge(rex_file::getConfig(rex_path::core('default.config.yml')), rex_file::getConfig($configFile)); rex_file::putCache($cacheFile, $config); } foreach ($config as $key => $value) { if (in_array($key, ['fileperm', 'dirperm'])) { $value = octdec($value); } rex::setProperty($key, $value); } date_default_timezone_set(rex::getProperty('timezone', 'Europe/Berlin')); if (!rex::isSetup()) { rex_error_handler::register(); } // ----------------- REX PERMS rex_complex_perm::register('clang', 'rex_clang_perm'); // ----- SET CLANG if (!rex::isSetup()) { rex_clang::setCurrentId(rex_request('clang', 'int', rex_clang::getStartId())); } if (isset($REX['LOAD_PAGE']) && $REX['LOAD_PAGE']) { unset($REX); require rex_path::core(rex::isBackend() ? 'backend.php' : 'frontend.php'); }
protected function setUp() { $this->proxy = rex::getProperty('socket_proxy'); rex::setProperty('socket_proxy', null); }
/** * Gibt den Wert einer Session-Variable zurück. */ public function getSessionVar($varname, $default = '') { if (isset($_SESSION[rex::getProperty('instname')][$this->systemId][$varname])) { return $_SESSION[rex::getProperty('instname')][$this->systemId][$varname]; } return $default; }
echo rex_view::title(rex_i18n::msg('title_templates')); $OUT = true; $function = rex_request('function', 'string'); $template_id = rex_request('template_id', 'int'); $save = rex_request('save', 'string'); $goon = rex_request('goon', 'string'); $success = ''; $error = ''; $content = ''; $message = ''; if ($function == 'delete') { $del = rex_sql::factory(); $del->setQuery('SELECT ' . rex::getTablePrefix() . 'article.id,' . rex::getTablePrefix() . 'template.name FROM ' . rex::getTablePrefix() . 'article LEFT JOIN ' . rex::getTablePrefix() . 'template ON ' . rex::getTablePrefix() . 'article.template_id=' . rex::getTablePrefix() . 'template.id WHERE ' . rex::getTablePrefix() . 'article.template_id="' . $template_id . '" LIMIT 0,10'); if ($del->getRows() > 0 || rex::getProperty('default_template_id') == $template_id) { $error = rex_i18n::msg('cant_delete_template_because_its_in_use', rex_i18n::msg('id') . ' = ' . $template_id); } else { $del->setQuery('DELETE FROM ' . rex::getTablePrefix() . 'template WHERE id = "' . $template_id . '" LIMIT 1'); // max. ein Datensatz darf loeschbar sein rex_file::delete(rex_path::addonCache('templates', $template_id . '.template')); $success = rex_i18n::msg('template_deleted'); } } elseif ($function == 'edit') { $legend = rex_i18n::msg('edit_template') . ' <small class="rex-primary-id">' . rex_i18n::msg('id') . ' = ' . $template_id . '</small>'; $hole = rex_sql::factory(); $hole->setQuery('SELECT * FROM ' . rex::getTablePrefix() . 'template WHERE id = "' . $template_id . '"'); if ($hole->getRows() == 1) { $templatename = $hole->getValue('name'); $template = $hole->getValue('content'); $active = $hole->getValue('active');
/** * Löscht einen Artikel. * * @param int $id ArtikelId des Artikels, der gelöscht werden soll * * @throws rex_api_exception * * @return string Eine Statusmeldung */ public static function _deleteArticle($id) { // artikel loeschen // // kontrolle ob erlaubnis nicht hier.. muss vorher geschehen // // -> startarticle = 0 // --> artikelfiles löschen // ---> article // ---> content // ---> clist // ---> alist // -> startarticle = 1 // --> rekursiv aufrufen if ($id == rex::getProperty('start_article_id')) { throw new rex_api_exception(rex_i18n::msg('cant_delete_sitestartarticle')); } if ($id == rex::getProperty('notfound_article_id')) { throw new rex_api_exception(rex_i18n::msg('cant_delete_notfoundarticle')); } $ART = rex_sql::factory(); $ART->setQuery('select * from ' . rex::getTablePrefix() . 'article where id=? and clang_id=?', [$id, rex_clang::getStartId()]); $message = ''; if ($ART->getRows() > 0) { $parent_id = $ART->getValue('parent_id'); $message = rex_extension::registerPoint(new rex_extension_point('ART_PRE_DELETED', $message, ['id' => $id, 'parent_id' => $parent_id, 'name' => $ART->getValue('name'), 'status' => $ART->getValue('status'), 'priority' => $ART->getValue('priority'), 'path' => $ART->getValue('path'), 'template_id' => $ART->getValue('template_id')])); if ($ART->getValue('startarticle') == 1) { $message = rex_i18n::msg('category_deleted'); $SART = rex_sql::factory(); $SART->setQuery('select * from ' . rex::getTablePrefix() . 'article where parent_id=? and clang_id=?', [$id, rex_clang::getStartId()]); for ($i = 0; $i < $SART->getRows(); ++$i) { self::_deleteArticle($id); $SART->next(); } } else { $message = rex_i18n::msg('article_deleted'); } rex_article_cache::delete($id); $ART->setQuery('delete from ' . rex::getTablePrefix() . 'article where id=' . $id); $ART->setQuery('delete from ' . rex::getTablePrefix() . 'article_slice where article_id=' . $id); // --------------------------------------------------- Listen generieren rex_article_cache::deleteLists($parent_id); return $message; } else { throw new rex_api_exception(rex_i18n::msg('category_doesnt_exist')); } }
$return .= rex_view::error(rex_i18n::msg('version_warning_working_version_to_live')); } elseif (rex::getUser()->hasPerm('version[live_version]')) { rex_article_revision::copyContent($params['article_id'], $params['clang'], rex_article_revision::WORK, rex_article_revision::LIVE); $return .= rex_view::success(rex_i18n::msg('version_info_working_version_to_live')); } break; case 'copy_live_to_work': rex_article_revision::copyContent($params['article_id'], $params['clang'], rex_article_revision::LIVE, rex_article_revision::WORK); $return .= rex_view::success(rex_i18n::msg('version_info_live_version_to_working')); break; } if (!rex::getUser()->hasPerm('version[live_version]')) { $rex_version_article[$params['article_id']] = 1; unset($revisions[0]); } rex::getProperty('login')->setSessionVar('rex_version_article', $rex_version_article); $context = new rex_context(['page' => $params['page'], 'article_id' => $params['article_id'], 'clang' => $params['clang'], 'ctype' => $params['ctype']]); $items = []; $brand = ''; foreach ($revisions as $version => $revision) { $item = []; $item['title'] = $revision; $item['href'] = $context->getUrl(['rex_set_version' => $version]); if ($rex_version_article[$params['article_id']] == $version) { $item['active'] = true; $brand = $revision; } $items[] = $item; } $toolbar = ''; $fragment = new rex_fragment();
public static function hasSession() { self::startSession(); $instname = rex::getProperty('instname'); return isset($_SESSION[$instname][self::SYSTEM_ID]['UID']) && $_SESSION[$instname][self::SYSTEM_ID]['UID'] > 0; }
} } } rex_be_controller::setPages($pages); // ----- Prepare Core Pages if (rex::getUser()) { rex_be_controller::appendLoggedInPages(); rex_be_controller::setCurrentPage(trim(rex_request('page', 'string'))); } rex_view::addJsFile(rex_url::coreAssets('jquery.min.js')); rex_view::addJsFile(rex_url::coreAssets('jquery-ui.custom.min.js')); rex_view::addJsFile(rex_url::coreAssets('jquery-pjax.min.js')); rex_view::addJsFile(rex_url::coreAssets('standard.js')); rex_view::addJsFile(rex_url::coreAssets('sha1.js')); 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);
/** * Gibt den Wert einer Session-Variable zurück. */ public function getSessionVar($varname, $default = '') { static $sessChecked = false; // validate session-id - once per request - to prevent fixation if (!$sessChecked) { $rexSessId = !empty($_SESSION['REX_SESSID']) ? $_SESSION['REX_SESSID'] : ''; if (!empty($rexSessId) && $rexSessId !== session_id()) { // clear redaxo related session properties on a possible attack $_SESSION[rex::getProperty('instname')][$this->systemId] = []; } $sessChecked = true; } if (isset($_SESSION[rex::getProperty('instname')][$this->systemId][$varname])) { return $_SESSION[rex::getProperty('instname')][$this->systemId][$varname]; } return $default; }
/** * Loads all translation defintions. */ private static function loadAll() { self::$msg = []; if (!self::$locale) { self::$locale = rex::getProperty('lang'); } foreach (self::$directories as $dir) { self::loadFile($dir . DIRECTORY_SEPARATOR . self::$locale . '.lang'); } self::$loaded = true; }
<?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);
/** * Initializes all packages. */ public static function initialize($dbExists = true) { if ($dbExists) { $config = rex::getConfig('package-config', []); } else { $config = []; foreach (rex::getProperty('setup_addons') as $addon) { $config[$addon]['install'] = false; } } $addons = self::$addons; self::$addons = []; foreach ($config as $addonName => $addonConfig) { $addon = isset($addons[$addonName]) ? $addons[$addonName] : new self($addonName); $addon->setProperty('install', isset($addonConfig['install']) ? $addonConfig['install'] : false); $addon->setProperty('status', isset($addonConfig['status']) ? $addonConfig['status'] : false); self::$addons[$addonName] = $addon; if (!$dbExists && is_array($plugins = $addon->getProperty('system_plugins'))) { foreach ($plugins as $plugin) { $config[$addonName]['plugins'][$plugin]['install'] = false; } } if (isset($config[$addonName]['plugins']) && is_array($config[$addonName]['plugins'])) { $plugins = $addon->plugins; $addon->plugins = []; foreach ($config[$addonName]['plugins'] as $pluginName => $pluginConfig) { $plugin = isset($plugins[$pluginName]) ? $plugins[$pluginName] : new rex_plugin($pluginName, $addon); $plugin->setProperty('install', isset($pluginConfig['install']) ? $pluginConfig['install'] : false); $plugin->setProperty('status', isset($pluginConfig['status']) ? $pluginConfig['status'] : false); $addon->plugins[$pluginName] = $plugin; } } } }
$tmpl_td = '<td data-title="' . rex_i18n::msg('header_template') . '">' . $template_select->get() . '</td>'; } $echo .= '<tr class="mark"> <td class="rex-table-icon"><i class="rex-icon rex-icon-article"></i></td> <td class="rex-table-id" data-title="' . rex_i18n::msg('header_id') . '">-</td> <td data-title="' . rex_i18n::msg('header_article_name') . '"><input class="form-control" type="text" name="article-name" autofocus /></td> ' . $tmpl_td . ' <td data-title="' . rex_i18n::msg('header_date') . '">' . rex_formatter::strftime(time(), 'date') . '</td> <td class="rex-table-priority" data-title="' . rex_i18n::msg('header_priority') . '"><input class="form-control" type="text" name="article-position" value="' . ($sql->getRows() + 1) . '" /></td> <td class="rex-table-action" colspan="3"><input type="hidden" name="rex-api-call" value="article_add" /><button class="btn btn-save" type="submit" name="artadd_function"' . rex::getAccesskey(rex_i18n::msg('article_add'), 'save') . '>' . rex_i18n::msg('article_add') . '</button></td> </tr> '; } // --------------------- ARTIKEL LIST for ($i = 0; $i < $sql->getRows(); ++$i) { if ($sql->getValue('id') == rex::getProperty('start_article_id')) { $class = ' rex-icon-sitestartarticle'; } elseif ($sql->getValue('startarticle') == 1) { $class = ' rex-icon-startarticle'; } else { $class = ' rex-icon-article'; } $class_startarticle = ''; if ($sql->getValue('startarticle') == 1) { $class_startarticle = ' rex-startarticle'; } // --------------------- ARTIKEL EDIT FORM if ($function == 'edit_art' && $sql->getValue('id') == $article_id && $KATPERM) { $tmpl_td = ''; if ($withTemplates) { $template_select->setSelected($sql->getValue('template_id'));
$sel_lang->setId('rex-id-lang'); $sel_lang->setSize(1); $sel_lang->setSelected(rex::getProperty('lang')); foreach (rex_i18n::getLocales() as $l) { $sel_lang->addOption($l, $l); } if (!empty($error)) { echo rex_view::error(implode('<br />', $error)); } if ($info != '') { echo rex_view::info($info); } if ($success != '') { echo rex_view::success($success); } $dbconfig = rex::getProperty('db'); $version = rex_path::src(); if (strlen($version) > 21) { $version = substr($version, 0, 8) . '..' . substr($version, strlen($version) - 13); } $content = []; $content[] = ' <h3>' . rex_i18n::msg('delete_cache') . '</h3> <p>' . rex_i18n::msg('delete_cache_description') . '</p> <p><a class="btn btn-delete" href="' . rex_url::currentBackendPage(['func' => 'generate']) . '">' . rex_i18n::msg('delete_cache') . '</a></p> <h3>' . rex_i18n::msg('setup') . '</h3> <p>' . rex_i18n::msg('setup_text') . '</p> <p><a class="btn btn-setup" href="' . rex_url::currentBackendPage(['func' => 'setup']) . '" data-confirm="' . rex_i18n::msg('setup_restart') . '?" data-pjax="false">' . rex_i18n::msg('setup') . '</a></p>'; $content[] = ' <h3>' . rex_i18n::msg('version') . '</h3>
} $content .= ' <fieldset> <input type="hidden" name="javascript" value="0" id="rex-js-javascript" /> <input type="hidden" name="subpage" value="" /> <input type="hidden" name="save" value="1" /> ' . $add_hidden; $formElements = []; $n = []; $n['label'] = '<label for="rex-user-login">' . rex_i18n::msg('login_name') . '</label>'; $n['field'] = $add_user_login; $formElements[] = $n; $n = []; $n['label'] = '<label for="rex-js-user-password">' . rex_i18n::msg('password') . '</label>'; $n['field'] = '<input class="form-control" type="password" id="rex-js-user-password" name="userpsw" autocomplete="off" />'; if (rex::getProperty('pswfunc') != '') { $n['note'] = rex_i18n::msg('psw_encrypted'); } $formElements[] = $n; $n = []; $n['label'] = '<label for="rex-user-name">' . rex_i18n::msg('name') . '</label>'; $n['field'] = '<input class="form-control" type="text" id="rex-user-name" name="username" value="' . htmlspecialchars($username) . '" autofocus />'; $formElements[] = $n; $n = []; $n['label'] = '<label for="rex-user-description">' . rex_i18n::msg('description') . '</label>'; $n['field'] = '<input class="form-control" type="text" id="rex-user-description" name="userdesc" value="' . htmlspecialchars($userdesc) . '" />'; $formElements[] = $n; $fragment = new rex_fragment(); $fragment->setVar('flush', true); $fragment->setVar('group', true); $fragment->setVar('elements', $formElements, false);
private static function installAddons($uninstallBefore = false, $installDump = true) { $addonErr = ''; rex_package_manager::synchronizeWithFileSystem(); if ($uninstallBefore) { foreach (array_reverse(rex_package::getSystemPackages()) as $package) { $manager = rex_package_manager::factory($package); $state = $manager->uninstall($installDump); if ($state !== true) { $addonErr .= '<li>' . $package->getPackageId() . '<ul><li>' . $manager->getMessage() . '</li></ul></li>'; } } } foreach (rex::getProperty('system_addons') as $packageRepresentation) { $state = true; $package = rex_package::get($packageRepresentation); $manager = rex_package_manager::factory($package); if ($state === true && !$package->isInstalled()) { $state = $manager->install($installDump); } if ($state !== true) { $addonErr .= '<li>' . $package->getPackageId() . '<ul><li>' . $manager->getMessage() . '</li></ul></li>'; } if ($state === true && !$package->isAvailable()) { $state = $manager->activate(); if ($state !== true) { $addonErr .= '<li>' . $package->getPackageId() . '<ul><li>' . $manager->getMessage() . '</li></ul></li>'; } } } if ($addonErr != '') { $addonErr = '<ul class="rex-ul1"> <li> <h3 class="rex-hl3">' . rex_i18n::msg('setup_513', '<span class="rex-error">', '</span>') . '</h3> <ul>' . $addonErr . '</ul> </li> </ul>'; } return $addonErr; }
public static function checkPage(rex_user $user) { $page = self::getCurrentPageObject(); // --- page pruefen und benoetigte rechte checken if (!$page || !$page->checkPermission($user)) { // --- fallback zur user startpage -> rechte checken $page = self::getPageObject($user->getStartPage()); if (!$page || !$page->checkPermission($user)) { // --- fallback zur system startpage -> rechte checken $page = self::getPageObject(rex::getProperty('start_page')); if (!$page || !$page->checkPermission($user)) { // --- fallback zur profile page $page = self::getPageObject('profile'); } } rex_response::setStatus(rex_response::HTTP_FORBIDDEN); 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); } }