/** * Handles the given Exception. * * @param Throwable|Exception $exception The Exception to handle * @param bool $showTrace */ public static function handleException($exception, $showTrace = true) { rex_logger::logException($exception); while (ob_get_level()) { ob_end_clean(); } $status = rex_response::HTTP_INTERNAL_ERROR; if ($exception instanceof rex_http_exception && $exception->getHttpCode()) { $status = $exception->getHttpCode(); } rex_response::setStatus($status); if (rex::isSetup() || rex::isDebugMode() || ($user = rex_backend_login::createUser()) && $user->isAdmin()) { // TODO add a beautiful error page with usefull debugging info $buf = ''; $buf .= '<pre>'; $buf .= '"' . get_class($exception) . '" thrown in ' . $exception->getFile() . ' on line ' . $exception->getLine() . "\n"; if ($exception->getMessage()) { $buf .= '<b>' . ($exception instanceof ErrorException ? self::getErrorType($exception->getSeverity()) . ': ' : '') . $exception->getMessage() . "</b>\n"; } $cause = $exception->getPrevious(); while ($cause) { $buf .= "\n"; $buf .= 'caused by ' . get_class($cause) . ' in ' . $cause->getFile() . ' on line ' . $cause->getLine() . "\n"; if ($cause->getMessage()) { $buf .= '<b>' . ($cause instanceof ErrorException ? self::getErrorType($cause->getSeverity()) . ': ' : '') . $cause->getMessage() . "</b>\n"; } $cause = $cause->getPrevious(); } if ($showTrace) { $buf .= "\n"; $buf .= $exception->getTraceAsString(); } if (!rex::isSetup() && rex::isBackend() && !rex::isSafeMode()) { $buf .= "\n\n"; $buf .= '<a href="' . rex_url::backendPage('packages', ['safemode' => 1]) . '">activate safe mode</a>'; } $buf .= '</pre>'; } else { // TODO small error page, without debug infos $buf = 'Oooops, an internal error occured!'; } rex_response::sendContent($buf); exit; }
public function execute() { if (!rex::getUser()->isAdmin()) { throw new rex_api_exception('You do not have the permission!'); } $this->addonkey = rex_request('addonkey', 'string'); $function = static::GET_PACKAGES_FUNCTION; $packages = rex_install_packages::$function(); $this->fileId = rex_request('file', 'int'); if (!isset($packages[$this->addonkey]['files'][$this->fileId])) { return null; } $this->file = $packages[$this->addonkey]['files'][$this->fileId]; $this->checkPreConditions(); try { $archivefile = rex_install_webservice::getArchive($this->file['path']); } catch (rex_functional_exception $e) { throw new rex_api_exception($e->getMessage()); } $message = ''; $this->archive = $archivefile; if ($this->file['checksum'] != md5_file($archivefile)) { $message = rex_i18n::msg('install_warning_zip_wrong_checksum'); } elseif (!$this->isCorrectFormat($archivefile)) { $message = rex_i18n::msg('install_warning_zip_wrong_format'); } elseif (is_string($msg = $this->doAction())) { $message = $msg; } rex_file::delete($archivefile); if ($message) { $message = rex_i18n::msg('install_warning_addon_not_' . static::VERB, $this->addonkey) . '<br />' . $message; $success = false; } else { $message = rex_i18n::msg('install_info_addon_' . static::VERB, $this->addonkey) . (static::SHOW_LINK ? ' <a href="' . rex_url::backendPage('packages') . '">' . rex_i18n::msg('install_to_addon_page') . '</a>' : ''); $success = true; unset($_REQUEST['addonkey']); } return new rex_api_result($success, $message); }
$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> <dl class="dl-horizontal"> <dt>REDAXO</dt><dd>' . rex::getVersion() . '</dd> <dt>PHP</dt><dd>' . phpversion() . ' <a href="' . rex_url::backendPage('system/phpinfo') . '" title="phpinfo" onclick="newWindow(\'phpinfo\', this.href, 800,600,\',status=yes,resizable=yes\');return false;"><i class="rex-icon rex-icon-phpinfo"></i></a></dd> </dl> <h3>' . rex_i18n::msg('database') . '</h3> <dl class="dl-horizontal"> <dt>MySQL</dt><dd>' . rex_sql::getServerVersion() . '</dd> <dt>' . rex_i18n::msg('name') . '</dt><dd>' . $dbconfig[1]['name'] . '</dd> <dt>' . rex_i18n::msg('host') . '</dt><dd>' . $dbconfig[1]['host'] . '</dd> </dl>'; $fragment = new rex_fragment(); $fragment->setVar('content', $content, false); $content = $fragment->parse('core/page/grid.php'); $fragment = new rex_fragment(); $fragment->setVar('title', rex_i18n::msg('system_features')); $fragment->setVar('body', $content, false); echo $fragment->parse('core/page/section.php');
/** * Extension to check whether the given media is still in use. * * @param rex_extension_point $ep * * @throws rex_exception * * @return string */ public static function isMediaInUse(rex_extension_point $ep) { $params = $ep->getParams(); $warning = $ep->getSubject(); $sql = rex_sql::factory(); $sql->setQuery('SELECT `name`, `type_id` FROM `' . rex::getTablePrefix() . 'metainfo_field` WHERE `type_id` IN(6,7)'); $rows = $sql->getRows(); if ($rows == 0) { return $warning; } $where = ['articles' => [], 'media' => []]; $filename = addslashes($params['filename']); for ($i = 0; $i < $rows; ++$i) { $name = $sql->getValue('name'); if (rex_metainfo_meta_prefix($name) == self::PREFIX) { $key = 'media'; } else { $key = 'articles'; } switch ($sql->getValue('type_id')) { case '6': $where[$key][] = $name . '="' . $filename . '"'; break; case '7': $where[$key][] = 'FIND_IN_SET("' . $filename . '", ' . $name . ')'; break; default: throw new rex_exception('Unexpected fieldtype "' . $sql->getValue('type_id') . '"!'); } $sql->next(); } $articles = ''; $categories = ''; if (!empty($where['articles'])) { $sql->setQuery('SELECT id, clang_id, parent_id, name, catname, startarticle FROM ' . rex::getTablePrefix() . 'article WHERE ' . implode(' OR ', $where['articles'])); if ($sql->getRows() > 0) { foreach ($sql->getArray() as $art_arr) { $aid = $art_arr['id']; $clang = $art_arr['clang_id']; $parent_id = $art_arr['parent_id']; if ($art_arr['startarticle']) { $categories .= '<li><a href="javascript:openPage(\'' . rex_url::backendPage('structure', ['edit_id' => $aid, 'function' => 'edit_cat', 'category_id' => $parent_id, 'clang' => $clang]) . '\')">' . $art_arr['catname'] . '</a></li>'; } else { $articles .= '<li><a href="javascript:openPage(\'' . rex_url::backendPage('content', ['article_id' => $aid, 'mode' => 'meta', 'clang' => $clang]) . '\')">' . $art_arr['name'] . '</a></li>'; } } if ($articles != '') { $warning[] = rex_i18n::msg('minfo_media_in_use_art') . '<br /><ul>' . $articles . '</ul>'; } if ($categories != '') { $warning[] = rex_i18n::msg('minfo_media_in_use_cat') . '<br /><ul>' . $categories . '</ul>'; } } } $media = ''; if (!empty($where['media'])) { $sql->setQuery('SELECT id, filename, category_id FROM ' . rex::getTablePrefix() . 'media WHERE ' . implode(' OR ', $where['media'])); if ($sql->getRows() > 0) { foreach ($sql->getArray() as $med_arr) { $id = $med_arr['id']; $filename = $med_arr['filename']; $cat_id = $med_arr['category_id']; $media .= '<li><a href="' . rex_url::backendPage('mediapool/detail', ['file_id' => $id, 'rex_file_category' => $cat_id]) . '">' . $filename . '</a></li>'; } if ($media != '') { $warning[] = rex_i18n::msg('minfo_media_in_use_med') . '<br /><ul>' . $media . '</ul>'; } } } return $warning; }
} $gc = rex_sql::factory(); $gc->setQuery('SELECT * FROM ' . rex::getTablePrefix() . 'media_category WHERE id=' . $rex_file_category); if ($gc->getRows() != 1) { $rex_file_category = 0; $rex_file_category_name = rex_i18n::msg('pool_kats_no'); } else { $rex_file_category_name = $gc->getValue('name'); } rex_set_session('media[rex_file_category]', $rex_file_category); // -------------- PERMS $PERMALL = rex::getUser()->getComplexPerm('media')->hasCategoryPerm(0); // -------------- Header $subline = rex_be_controller::getPageObject('mediapool')->getSubpages(); foreach ($subline as $sp) { $sp->setHref(rex_url::backendPage($sp->getFullKey(), $arg_url, false)); } echo rex_view::title(rex_i18n::msg('pool_media'), $subline); // -------------- Messages if ($success != '') { echo rex_view::info($success); $success = ''; } if ($error != '') { echo rex_view::error($error); $error = ''; } // -------------- Javascripts ?> <script type="text/javascript"> <!--
/** * @param $filename * * @return bool|string */ function rex_mediapool_mediaIsInUse($filename) { $sql = rex_sql::factory(); $filename = addslashes($filename); // FIXME move structure stuff into structure addon $values = []; for ($i = 1; $i < 21; ++$i) { $values[] = 'value' . $i . ' REGEXP "(^|[^[:alnum:]+_-])' . $filename . '"'; } $files = []; $filelists = []; for ($i = 1; $i < 11; ++$i) { $files[] = 'media' . $i . '="' . $filename . '"'; $filelists[] = 'FIND_IN_SET("' . $filename . '",medialist' . $i . ')'; } $where = ''; $where .= implode(' OR ', $files) . ' OR '; $where .= implode(' OR ', $filelists) . ' OR '; $where .= implode(' OR ', $values); $query = 'SELECT DISTINCT article_id, clang_id FROM ' . rex::getTablePrefix() . 'article_slice WHERE ' . $where; $warning = []; $res = $sql->getArray($query); if ($sql->getRows() > 0) { $warning[0] = rex_i18n::msg('pool_file_in_use_articles') . '<br /><ul>'; foreach ($res as $art_arr) { $aid = $art_arr['article_id']; $clang = $art_arr['clang_id']; $ooa = rex_article::get($aid, $clang); $name = $ooa->getName(); $warning[0] .= '<li><a href="javascript:openPage(\'' . rex_url::backendPage('content', ['article_id' => $aid, 'mode' => 'edit', 'clang' => $clang]) . '\')">' . $name . '</a></li>'; } $warning[0] .= '</ul>'; } // ----- EXTENSION POINT $warning = rex_extension::registerPoint(new rex_extension_point('MEDIA_IS_IN_USE', $warning, ['filename' => $filename])); if (!empty($warning)) { return implode('<br />', $warning); } return false; }
/** * Returns a clang switch. * * @param rex_context $context * * @return string */ public static function clangSwitchAsDropdown(rex_context $context) { if (rex_clang::count() == 1) { return ''; } $button_label = ''; $items = []; foreach (rex_clang::getAll() as $id => $clang) { if (rex::getUser()->getComplexPerm('clang')->hasPerm($id)) { $item = []; $item['title'] = rex_i18n::translate($clang->getName()); $item['href'] = $context->getUrl(['clang' => $id]); if ($id == $context->getParam('clang')) { $item['active'] = true; $button_label = rex_i18n::translate($clang->getName()); } $items[] = $item; } } $fragment = new rex_fragment(); $fragment->setVar('class', 'rex-language'); $fragment->setVar('button_prefix', rex_i18n::msg('language')); $fragment->setVar('button_label', $button_label); $fragment->setVar('header', rex_i18n::msg('clang_select')); $fragment->setVar('items', $items, false); if (rex::getUser()->isAdmin()) { $fragment->setVar('footer', '<a href="' . rex_url::backendPage('system/lang') . '"><i class="fa fa-flag"></i> ' . rex_i18n::msg('languages_edit') . '</a>', false); } return $fragment->parse('core/dropdowns/dropdown.php'); }
<footer class="rex-global-footer"> <nav class="rex-nav-footer"> <ul class="list-inline"> <li><a href="#rex-start-of-page"><i class="fa fa-arrow-up"></i></a></li> <li><a href="http://www.yakamara.de">yakamara.de</a></li> <li><a href="http://www.redaxo.org">redaxo.org</a></li> <li><a href="http://www.redaxo.org/de/forum/"><?php echo rex_i18n::msg('footer_joinforum'); ?> </a></li> <li><a href="<?php echo rex::isSetup() ? 'http://www.redaxo.org/' : rex_url::backendPage('credits'); ?> "><?php echo rex_i18n::msg('footer_credits'); ?> </a></li> <li><?php echo rex_i18n::msg('footer_datetime', rex_formatter::strftime(time(), 'date')); ?> </li> <li><!--DYN--><?php echo rex_i18n::msg('footer_scripttime', $this->time); ?> <!--/DYN--></li> </ul> </nav> </footer>
$fragment->setVar('title', $legend, false); $fragment->setVar('body', $panel, false); $fragment->setVar('buttons', $buttons, false); $content .= $fragment->parse('core/page/section.php'); if ($function == 'edit') { // Im Edit Mode Aktionen bearbeiten $gaa = rex_sql::factory(); $gaa->setQuery('SELECT * FROM ' . rex::getTablePrefix() . 'action ORDER BY name'); if ($gaa->getRows() > 0) { $gma = rex_sql::factory(); $gma->setQuery('SELECT * FROM ' . rex::getTablePrefix() . 'module_action, ' . rex::getTablePrefix() . 'action WHERE ' . rex::getTablePrefix() . 'module_action.action_id=' . rex::getTablePrefix() . 'action.id and ' . rex::getTablePrefix() . "module_action.module_id='{$module_id}'"); $actions = ''; for ($i = 0; $i < $gma->getRows(); ++$i) { $iaction_id = $gma->getValue(rex::getTablePrefix() . 'module_action.id'); $action_id = $gma->getValue(rex::getTablePrefix() . 'module_action.action_id'); $action_edit_url = rex_url::backendPage('modules/actions', ['action_id' => $action_id, 'function' => 'edit']); $action_name = rex_i18n::translate($gma->getValue('name')); $actions .= '<tr> <td class="rex-table-icon"><a href="' . $action_edit_url . '" title="' . htmlspecialchars($action_name) . '"><i class="rex-icon rex-icon-action"></i></a></td> <td class="rex-table-id" data-title="' . rex_i18n::msg('id') . '">' . $gma->getValue('id') . '</td> <td data-title="' . rex_i18n::msg('action_name') . '"><a href="' . $action_edit_url . '">' . $action_name . '</a></td> <td class="rex-table-action"><a href="' . $action_edit_url . '"><i class="rex-icon rex-icon-edit"></i> ' . rex_i18n::msg('edit') . '</a></td> <td class="rex-table-action"><a href="' . rex_url::currentBackendPage(['module_id' => $module_id, 'function_action' => 'delete', 'function' => 'edit', 'iaction_id' => $iaction_id]) . '" data-confirm="' . rex_i18n::msg('confirm_delete_action') . '"><i class="rex-icon rex-icon-delete"></i> ' . rex_i18n::msg('delete') . '</a></td> </tr>'; $gma->next(); } if ($actions != '') { $panel = ' <table class="table table-striped table-hover"> <thead> <tr>
/** * Returns the page href. * * @return string */ public function getHref() { if ($this->href) { return $this->href; } return rex_url::backendPage($this->getFirstSubpagesLeaf()->getFullKey(), [], false); }
if (rex_media::isImageType(rex_file::extension($file_name))) { $js = "insertImage('{$file_name}','{$title}');"; } } elseif ($opener_input_field == 'TINY') { $js = "insertLink('" . $file_name . "');"; } elseif ($opener_input_field != '') { if (substr($opener_input_field, 0, 14) == 'REX_MEDIALIST_') { $js = "selectMedialist('" . $file_name . "');"; $js .= 'location.href = "' . rex_url::backendPage('mediapool', ['info' => rex_i18n::msg('pool_file_added'), 'opener_input_field' => $opener_input_field], false) . '";'; } else { $js = "selectMedia('" . $file_name . "');"; } } echo "<script language=javascript>\n"; echo $js; // echo "\nself.close();\n"; echo '</script>'; exit; } elseif ($return['ok'] == 1) { rex_response::sendRedirect(rex_url::backendPage('mediapool', ['info' => $info, 'opener_input_field' => $opener_input_field], false)); } else { $warning = rex_i18n::msg('pool_file_movefailed'); } } } else { $warning = rex_i18n::msg('pool_file_not_found'); } } } // ----- METHOD ADD FORM echo rex_mediapool_Uploadform($rex_file_category);
} /* Setup Navigation ***********************************************************/ if (rex_be_controller::getCurrentPagePart(1) == 'setup') { $step = rex_request('step', 'float'); $lang = rex_request('lang', 'string', ''); $navi = []; $end = $lang ? 7 : 1; for ($i = 1; $i <= $end; ++$i) { $n = []; if ($i == $step) { $n['active'] = true; } $n['href'] = 'javascript:void(0)'; if ($i < $step) { $n['itemAttr']['class'][] = 'bg-success'; $n['href'] = rex_url::backendPage('setup', ['step' => $i, 'lang' => $lang]); if ($step == 7) { $n['href'] = 'javascript:void(0)'; } } $name = ''; if (isset($n['href']) && $lang != '') { $name = rex_i18n::msg('setup_' . $i . '99'); } elseif ($lang != '') { $name = '<span>' . rex_i18n::msg('setup_' . $i . '99') . '</span>'; } elseif ($i == 1) { $name = '<span>Step 1 / Language</span>'; } $n['title'] = $name; $navi[] = $n; }
<footer class="rex-global-footer"> <nav class="rex-nav-footer"> <ul class="list-inline"> <li><a href="#rex-start-of-page"><i class="fa fa-arrow-up"></i></a></li> <li><a href="http://www.yakamara.de" target="_blank">yakamara.de</a></li> <li><a href="http://www.redaxo.org" target="_blank">redaxo.org</a></li> <li><a href="http://www.redaxo.org/de/forum/" target="_blank"><?php echo rex_i18n::msg('footer_joinforum'); ?> </a></li> <li><a href="<?php echo rex::getUser() ? rex_url::backendPage('credits') : 'http://www.redaxo.org/" target="_blank'; ?> "><?php echo rex_i18n::msg('footer_credits'); ?> </a></li> <li><?php echo rex_i18n::msg('footer_datetime', rex_formatter::strftime(time(), 'date')); ?> </li> <li><!--DYN--><?php echo rex_i18n::msg('footer_scripttime', $this->time); ?> <!--/DYN--></li> </ul> </nav> </footer>
$n = []; $n['label'] = '<label for="autoload_css">' . $this->i18n('config_assets_css') . '</label>'; $n['field'] = '<input type="checkbox" id="autoload_css" name="config[autoload_css]" value="1" ' . ($this->getConfig('autoload_css') ? ' checked="checked"' : '') . '>'; $formElements[] = $n; $n = []; $n['label'] = '<label for="autoload_js">' . $this->i18n('config_assets_js') . '</label>'; $n['field'] = '<input type="checkbox" id="autoload_js" name="config[autoload_js]" value="1" ' . ($this->getConfig('autoload_js') ? ' checked="checked"' : '') . '>'; $formElements[] = $n; $fragment = new rex_fragment(); $fragment->setVar('elements', $formElements, false); $assets = $fragment->parse('core/form/checkbox.php'); $formElements = []; $n = []; $n['label'] = $this->i18n('config_load_assets'); $n['field'] = $assets; $n['note'] = rex_i18n::rawMsg('emailobfuscator_config_assets_note', rex_url::backendPage('packages', ['subpage' => 'help', 'package' => $this->getPackageId()])); $formElements[] = $n; $fragment = new rex_fragment(); $fragment->setVar('elements', $formElements, false); $content .= $fragment->parse('core/form/form.php'); $content .= ' </fieldset>'; /* whitelist */ $content .= ' <fieldset> <legend>' . $this->i18n('config_whitelist') . '</legend>'; $formElements = []; $n = []; $n['label'] = '<label for="emailobfuscator-config-articles">' . $this->i18n('config_articles') . '</label>'; $n['field'] = rex_var_linklist::getWidget(1, 'config[articles]', $this->getConfig('articles')); $formElements[] = $n;
// Variable definiert und vorbelegt wenn nicht existent $KAToutARR = []; // Variable definiert und vorbelegt wenn nicht existent $navigation = []; $object_id = $article_id > 0 ? $article_id : $category_id; $object = rex_article::get($object_id, $clang); if ($object) { $tree = $object->getParentTree(); if (!$object->isStartarticle()) { $tree[] = $object; } foreach ($tree as $parent) { $id = $parent->getId(); if (rex::getUser()->getComplexPerm('structure')->hasCategoryPerm($id)) { $n = []; $n['title'] = str_replace(' ', ' ', htmlspecialchars($parent->getName())); if ($parent->isStartarticle()) { $n['href'] = rex_url::backendPage('structure', ['category_id' => $id, 'clang' => $clang]); } $navigation[] = $n; } } } $title = '<a href="' . rex_url::backendPage('structure', ['category_id' => 0, 'clang' => $clang]) . '"><i class="rex-icon rex-icon-sitestartarticle"></i> ' . rex_i18n::msg('homepage') . '</a>'; $fragment = new rex_fragment(); $fragment->setVar('id', 'rex-js-structure-breadcrumb', false); $fragment->setVar('title', $title, false); $fragment->setVar('items', $navigation, false); echo $fragment->parse('core/navigations/breadcrumb.php'); unset($fragment); unset($navigation);
<th>' . rex_i18n::msg('credits_name') . '</th> <th>' . rex_i18n::msg('credits_version') . '</th> <th class="rex-table-slim">' . rex_i18n::msg('credits_help') . '</th> <th>' . rex_i18n::msg('credits_author') . '</th> <th>' . rex_i18n::msg('credits_supportpage') . '</th> </tr> </thead> <tbody>'; foreach (rex_package::getAvailablePackages() as $package) { $content .= ' <tr class="rex-package-is-' . $package->getType() . '"> <td class="rex-table-icon"><i class="rex-icon rex-icon-package-' . $package->getType() . '"></i></td> <td data-title="' . rex_i18n::msg('credits_name') . '">' . $package->getName() . ' </td> <td data-title="' . rex_i18n::msg('credits_version') . '">' . $package->getVersion() . '</td> <td class="rex-table-slim" data-title="' . rex_i18n::msg('credits_help') . '"><a href="' . rex_url::backendPage('packages', ['subpage' => 'help', 'package' => $package->getPackageId()]) . '" title="' . rex_i18n::msg('credits_open_help_file') . ' ' . $package->getName() . '"><i class="rex-icon rex-icon-help"></i> <span class="sr-only">' . rex_i18n::msg('package_help') . ' ' . htmlspecialchars($package->getName()) . '</span></a></td> <td data-title="' . rex_i18n::msg('credits_author') . '">' . $package->getAuthor() . '</td> <td data-title="' . rex_i18n::msg('credits_supportpage') . '">'; if ($supportpage = $package->getSupportPage()) { $content .= '<a href="http://' . $supportpage . '" onclick="window.open(this.href); return false;"><i class="rex-icon rex-icon-external-link"></i> ' . $supportpage . '</a>'; } $content .= ' </td> </tr>'; } $content .= ' </tbody> </table>'; $fragment = new rex_fragment(); $fragment->setVar('title', rex_i18n::msg('credits_caption'), false); $fragment->setVar('content', $content, false);
' . rex::getTablePrefix() . 'action a, ' . rex::getTablePrefix() . 'module_action ma LEFT JOIN ' . rex::getTablePrefix() . 'module m ON ma.module_id = m.id WHERE ma.action_id = a.id AND ma.action_id=' . $action_id; $del->setQuery($qry); // module mit dieser aktion vorhanden ? if ($del->getRows() > 0) { $action_in_use_msg = ''; $action_name = htmlspecialchars($del->getValue('a.name')); for ($i = 0; $i < $del->getRows(); ++$i) { $action_in_use_msg .= '<li><a href="' . rex_url::backendPage('modules', ['function' => 'edit', 'module_id' => $del->getValue('ma.module_id')]) . '">' . htmlspecialchars($del->getValue('m.name')) . ' [' . $del->getValue('ma.module_id') . ']</a></li>'; $del->next(); } if ($action_in_use_msg != '') { $action_in_use_msg = '<ul>' . $action_in_use_msg . '</ul>'; } $error = rex_i18n::msg('action_cannot_be_deleted', $action_name) . $action_in_use_msg; } else { $del->setQuery('DELETE FROM ' . rex::getTablePrefix() . "action WHERE id='{$action_id}' LIMIT 1"); $success = rex_i18n::msg('action_deleted'); } } if ($function == 'add' || $function == 'edit') { $name = rex_post('name', 'string'); $previewaction = rex_post('previewaction', 'string'); $presaveaction = rex_post('presaveaction', 'string');
$step = 3; } if ($step == 3) { $content = ''; if (count($success_array) > 0) { $content .= '<ul><li>' . implode('</li><li>', $success_array) . '</li></ul>'; } $buttons = ''; $class = ''; if (count($error_array) > 0) { $class = 'error'; $content .= implode('', $error_array); $buttons = '<a class="btn btn-setup" href="' . rex_url::backendPage('setup', ['step' => 4, 'lang' => $lang]) . '">' . rex_i18n::msg('setup_312') . '</a>'; } else { $class = 'success'; $buttons = '<a class="btn btn-setup" href="' . rex_url::backendPage('setup', ['step' => 4, 'lang' => $lang]) . '">' . rex_i18n::msg('setup_310') . '</a>'; } $security = '<div class="rex-js-setup-security-message" style="display:none">' . rex_view::error(rex_i18n::msg('setup_security_msg') . '<br />' . rex_i18n::msg('setup_no_js_security_msg')) . '</div>'; $security .= '<noscript>' . rex_view::error(rex_i18n::msg('setup_no_js_security_msg')) . '</noscript>'; $security .= '<script> jQuery(function($){ $.each(["' . rex_url::backend('data/.redaxo') . '", "' . rex_url::backend('src/core/boot.php') . '", "' . rex_url::backend('cache/.redaxo') . '"], function (i, url) { $.ajax({ url: url, cache: false, success: function(data) { $(".rex-js-setup-security-message").show(); $(".rex-js-setup-section").hide(); }
<th class="rex-table-icon"></th> <th>' . rex_i18n::msg('cronjob_log_date') . '</th> <th>' . rex_i18n::msg('cronjob_name') . '</th> <th>' . rex_i18n::msg('cronjob_log_message') . '</th> </tr> </thead> <tbody>'; if ($file = new rex_log_file($this->getDataPath('cronjob.log'))) { foreach (new LimitIterator($file, 0, 30) as $entry) { /* @var rex_log_entry $entry */ $data = $entry->getData(); $class = trim($data[0]) == 'ERROR' ? 'rex-state-error' : 'rex-state-success'; if ($data[1] == '--') { $icon = '<i class="rex-icon rex-icon-cronjob" title="' . rex_i18n::msg('cronjob_not_editable') . '"></i>'; } else { $icon = '<a href="' . rex_url::backendPage('cronjob', ['list' => 'cronjobs', 'func' => 'edit', 'oid' => $data[1]]) . '" title="' . rex_i18n::msg('cronjob_edit') . '"><i class="rex-icon rex-icon-cronjob"></i></a>'; } $content .= ' <tr class="' . $class . '"> <td class="rex-table-icon">' . $icon . '</td> <td data-title="' . rex_i18n::msg('cronjob_log_date') . '">' . $entry->getTimestamp('%d.%m.%Y %H:%M:%S') . '</td> <td data-title="' . rex_i18n::msg('cronjob_name') . '">' . htmlspecialchars($data[2]) . '</td> <td data-title="' . rex_i18n::msg('cronjob_log_message') . '">' . $data[3] . '</td> </tr>'; } } $content .= ' </tbody> </table>'; $fragment = new rex_fragment(); $fragment->setVar('content', $content, false);
<?php /** @var rex_addon $this */ $content = ''; $fragment = new \rex_fragment(); $fragment->setVar('title', $this->i18n('demo_base_description_install_heading'), false); $fragment->setVar('body', rex_i18n::rawMsg('demo_base_description_install_body', rex_url::backendPage('backup/import/server')), false); $content = $fragment->parse('core/page/section.php'); echo $content;