예제 #1
0
 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();
 }
예제 #2
0
 /**
  * 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;
 }
예제 #3
0
<?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>
예제 #4
0
파일: backend.php 프로젝트: VIEWSION/redaxo
// ----- 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);
예제 #5
0
파일: content.php 프로젝트: alsahh/redaxo
 $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]));
예제 #6
0
<?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">&nbsp;</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>
예제 #7
0
파일: packages.php 프로젝트: eaCe/redaxo
     $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>
예제 #8
0
파일: boot.php 프로젝트: staabm/redaxo
<?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');
예제 #9
0
<?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>' : '';