コード例 #1
0
ファイル: error_handler.php プロジェクト: DECAF/redaxo
 /**
  * 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;
 }
コード例 #2
0
ファイル: api_package_download.php プロジェクト: eaCe/redaxo
 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);
 }
コード例 #3
0
ファイル: system.settings.php プロジェクト: staabm/redaxo
    $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');
コード例 #4
0
ファイル: media_handler.php プロジェクト: skerbis/redaxo
 /**
  * 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;
 }
コード例 #5
0
ファイル: index.php プロジェクト: staabm/redaxo
}
$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">
<!--
コード例 #6
0
/**
 * @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;
}
コード例 #7
0
ファイル: view.php プロジェクト: DECAF/redaxo
 /**
  * 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');
 }
コード例 #8
0
ファイル: footer.php プロジェクト: skerbis/redaxo
    <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>
コード例 #9
0
ファイル: modules.modules.php プロジェクト: DECAF/redaxo
 $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>
コード例 #10
0
ファイル: page.php プロジェクト: staabm/redaxo
 /**
  * Returns the page href.
  *
  * @return string
  */
 public function getHref()
 {
     if ($this->href) {
         return $this->href;
     }
     return rex_url::backendPage($this->getFirstSubpagesLeaf()->getFullKey(), [], false);
 }
コード例 #11
0
ファイル: upload.php プロジェクト: staabm/redaxo
                        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);
コード例 #12
0
ファイル: top.php プロジェクト: eaCe/redaxo
}
/* 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;
    }
コード例 #13
0
ファイル: footer.php プロジェクト: staabm/redaxo
    <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>
コード例 #14
0
$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;
コード例 #15
0
// 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(' ', '&nbsp;', 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);
コード例 #16
0
ファイル: credits.php プロジェクト: staabm/redaxo
            <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);
コード例 #17
0
ファイル: modules.actions.php プロジェクト: DECAF/redaxo
                        ' . 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');
コード例 #18
0
ファイル: setup.php プロジェクト: alsahh/redaxo
    $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();
                }
コード例 #19
0
ファイル: log.php プロジェクト: staabm/redaxo
                        <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);
コード例 #20
0
<?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;