public static function handleCall() { $apiFunc = self::factory(); if ($apiFunc != null) { $firephp = FirePHP::getInstance(true); $firephp->group(__CLASS__); $firephp->log('called api function "' . get_class(self::factory()) . '"'); $firephp->groupEnd(); } return parent::handleCall(); }
/** * Returns the api function instance which is bound to the current request, or null if no api function was bound. * * @throws rex_exception * * @return self */ public static function factory() { if (self::$instance) { return self::$instance; } $api = rex_request(self::REQ_CALL_PARAM, 'string'); if ($api) { $apiClass = 'rex_api_' . $api; if (class_exists($apiClass)) { $apiImpl = new $apiClass(); if ($apiImpl instanceof self) { self::$instance = $apiImpl; return $apiImpl; } else { throw new rex_exception('$apiClass is expected to define a subclass of rex_api_function, "' . $apiClass . '" given!'); } } else { throw new rex_exception('$apiClass "' . $apiClass . '" not found!'); } } return null; }
<?php /** @var rex_addon $this */ $addonkey = rex_request('addonkey', 'string'); $addons = []; echo rex_api_function::getMessage(); try { $addons = rex_install_packages::getAddPackages(); } catch (rex_functional_exception $e) { echo rex_view::warning($e->getMessage()); $addonkey = ''; } if ($addonkey && isset($addons[$addonkey]) && !rex_addon::exists($addonkey)) { $addon = $addons[$addonkey]; $content = ' <table class="table"> <tbody> <tr> <th class="rex-table-width-5">' . $this->i18n('name') . '</th> <td data-title="' . $this->i18n('name') . '">' . $addon['name'] . '</td> </tr> <tr> <th>' . $this->i18n('author') . '</th> <td data-title="' . $this->i18n('author') . '">' . $addon['author'] . '</td> </tr> <tr> <th>' . $this->i18n('shortdescription') . '</th> <td data-title="' . $this->i18n('shortdescription') . '">' . nl2br($addon['shortdescription']) . '</td> </tr> <tr> <th>' . $this->i18n('description') . '</th>
// ----- 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);
$content_navi_right[] = ['title' => '<a href="' . rex_getUrl($article_id, $clang) . '" onclick="window.open(this.href); return false;"><i class="rex-icon rex-icon-view"></i> ' . rex_i18n::msg('article') . ' ' . rex_i18n::msg('show') . '</a>']; $fragment = new rex_fragment(); $fragment->setVar('id', 'rex-js-structure-content-nav', false); $fragment->setVar('left', $content_navi_left, false); $fragment->setVar('right', $content_navi_right, false); $contentMain = $fragment->parse('core/navigations/content.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]));
<?php /** @var rex_addon $this */ $core = rex_request('core', 'boolean'); $addonkey = rex_request('addonkey', 'string'); $coreVersions = []; $addons = []; $message = rex_api_function::getMessage(); try { $coreVersions = rex_api_install_core_update::getVersions(); $addons = rex_install_packages::getUpdatePackages(); } catch (rex_functional_exception $e) { $message .= rex_view::warning($e->getMessage()); $addonkey = ''; } if ($core && !empty($coreVersions)) { $panel = ' <table class="table table-striped table-hover"> <thead> <tr> <th class="rex-table-icon"> </th> <th>' . $this->i18n('version') . '</th> <th>' . $this->i18n('description') . '</th> <th class="rex-table-action"></th> </tr> </thead> <tbody>'; foreach ($coreVersions as $id => $version) { $panel .= ' <tr> <td class="rex-table-icon"><i class="rex-icon rex-icon-package"></i></td>
$class .= ' rex-package-is-activated'; } elseif ($package->isInstalled()) { $status = $getLink($package, 'activate', 'rex-icon-package-not-activated'); $class .= ' rex-package-is-installed'; } else { $class .= ' rex-package-not-installed'; } $name = '<span class="rex-' . $type . '-name">' . htmlspecialchars($package->getName()) . '</span>'; $class .= $package->isSystemPackage() ? ' rex-system-' . $type : ''; // --------------------------------------------- API MESSAGES $message = ''; if ($package->getPackageId() == rex_get('package', 'string') && rex_api_function::hasMessage()) { $message = ' <tr class="rex-package-message"> <td colspan="8"> ' . rex_api_function::getMessage() . ' </td> </tr>'; $class = ' mark'; } $version = trim($package->getVersion()) != '' ? ' <span class="rex-' . $type . '-version">' . trim($package->getVersion()) . '</span>' : ''; return $message . ' <tr class="rex-package-is-' . $type . $class . '"> <td class="rex-table-icon"><i class="rex-icon rex-icon-package-' . $type . '"></i></td> <td data-title="' . rex_i18n::msg('package_hname') . '">' . $name . '</td> <td data-title="' . rex_i18n::msg('package_hversion') . '">' . $version . '</td> <td class="rex-table-slim" data-title="' . rex_i18n::msg('package_hhelp') . '"><a href="' . rex_url::currentBackendPage(['subpage' => 'help', 'package' => $packageId]) . '" title="' . rex_i18n::msg('package_help') . ' ' . htmlspecialchars($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 class="rex-table-action" data-pjax-container="#rex-js-page-container">' . $install . '</td> <td class="rex-table-action" data-pjax-container="#rex-js-page-container">' . $status . '</td> <td class="rex-table-action" data-pjax-container="#rex-js-page-container">' . $uninstall . '</td> <td class="rex-table-action" data-pjax-container="#rex-js-page-container">' . $delete . '</td>
<?php require 'vendor/FirePHPCore/fb.php'; rex_sql::setFactoryClass('rex_sql_debug'); rex_extension::setFactoryClass('rex_extension_debug'); rex_logger::setFactoryClass('rex_logger_debug'); rex_api_function::setFactoryClass('rex_api_function_debug');
<?php $apiFunc = rex_api_function::factory(); if ($apiFunc && ($result = $apiFunc->getResult())) { if ($result->isSuccessfull()) { $info = $result->getMessage(); } else { $warning = $result->getMessage(); } } $CONT = new rex_article_content_editor(); $CONT->getContentAsQuery(); $CONT->info = $info; $CONT->warning = $warning; $CONT->template_attributes = $template_attributes; $CONT->setArticleId($article_id); $CONT->setSliceId($slice_id); $CONT->setMode('edit'); $CONT->setCLang($clang); $CONT->setEval(true); $CONT->setSliceRevision($slice_revision); $CONT->setFunction($function); $content .= $CONT->getArticle($ctype); return $content != '' ? '<ul class="rex-slices">' . $content . '</ul>' : '';