コード例 #1
0
ファイル: scheme.php プロジェクト: tzfrs/redaxo_yrewrite
 /**
  * @param int                 $clang
  * @param rex_yrewrite_domain $domain
  *
  * @return string
  */
 public function getClang($clang, rex_yrewrite_domain $domain)
 {
     if (count($domain->getClangs()) <= 1) {
         return '';
     }
     return '/' . $this->normalize(rex_clang::get($clang)->getName(), $clang);
 }
コード例 #2
0
ファイル: service.php プロジェクト: VIEWSION/redaxo
 /**
  * Löscht eine Clang.
  *
  * @param int $id Zu löschende ClangId
  *
  * @throws rex_exception
  */
 public static function deleteCLang($id)
 {
     $startClang = rex_clang::getStartId();
     if ($id == $startClang) {
         throw new rex_functional_exception(rex_i18n::msg('clang_error_startidcanotbedeleted', $startClang));
     }
     if (!rex_clang::exists($id)) {
         throw new rex_functional_exception(rex_i18n::msg('clang_error_idcanotbedeleted', $id));
     }
     $clang = rex_clang::get($id);
     $del = rex_sql::factory();
     $del->setQuery('delete from ' . rex::getTablePrefix() . 'clang where id=?', [$id]);
     rex_sql_util::organizePriorities(rex::getTable('clang'), 'priority', '', 'priority');
     rex_delete_cache();
     // ----- EXTENSION POINT
     rex_extension::registerPoint(new rex_extension_point('CLANG_DELETED', '', ['id' => $clang->getId(), 'name' => $clang->getName(), 'clang' => $clang]));
 }
コード例 #3
0
ファイル: modules.modules.php プロジェクト: DECAF/redaxo
if ($function == 'delete') {
    $del = rex_sql::factory();
    $del->setQuery('SELECT ' . rex::getTablePrefix() . 'article_slice.article_id, ' . rex::getTablePrefix() . 'article_slice.clang_id, ' . rex::getTablePrefix() . 'article_slice.ctype_id, ' . rex::getTablePrefix() . 'module.name FROM ' . rex::getTablePrefix() . 'article_slice
            LEFT JOIN ' . rex::getTablePrefix() . 'module ON ' . rex::getTablePrefix() . 'article_slice.module_id=' . rex::getTablePrefix() . 'module.id
            WHERE ' . rex::getTablePrefix() . "article_slice.module_id='{$module_id}' GROUP BY " . rex::getTablePrefix() . 'article_slice.article_id');
    if ($del->getRows() > 0) {
        $module_in_use_message = '';
        $modulname = htmlspecialchars($del->getValue(rex::getTablePrefix() . 'module.name'));
        for ($i = 0; $i < $del->getRows(); ++$i) {
            $aid = $del->getValue(rex::getTablePrefix() . 'article_slice.article_id');
            $clang_id = $del->getValue(rex::getTablePrefix() . 'article_slice.clang_id');
            $ctype = $del->getValue(rex::getTablePrefix() . 'article_slice.ctype_id');
            $OOArt = rex_article::get($aid, $clang_id);
            $label = $OOArt->getName() . ' [' . $aid . ']';
            if (rex_clang::count() > 1) {
                $label = '(' . rex_i18n::translate(rex_clang::get($clang_id)->getName()) . ') ' . $label;
            }
            $module_in_use_message .= '<li><a href="' . rex_url::backendPage('content', ['article_id' => $aid, 'clang' => $clang_id, 'ctype' => $ctype]) . '">' . htmlspecialchars($label) . '</a></li>';
            $del->next();
        }
        $error = rex_i18n::msg('module_cannot_be_deleted', $modulname);
        if ($module_in_use_message != '') {
            $error .= '<ul>' . $module_in_use_message . '</ul>';
        }
    } else {
        $del->setQuery('DELETE FROM ' . rex::getTablePrefix() . "module WHERE id='{$module_id}'");
        if ($del->getRows() > 0) {
            $del->setQuery('DELETE FROM ' . rex::getTablePrefix() . "module_action WHERE module_id='{$module_id}'");
            $success = rex_i18n::msg('module_deleted');
        } else {
            $error = rex_i18n::msg('module_not_found');
コード例 #4
0
ファイル: content.functions.php プロジェクト: skerbis/redaxo
 $lang_a = new rex_select();
 $lang_a->setId('clang_a');
 $lang_a->setName('clang_a');
 $lang_a->setSize('1');
 $lang_a->setAttribute('class', 'form-control');
 foreach ($clang_perm as $key) {
     $val = rex_i18n::translate(rex_clang::get($key)->getName());
     $lang_a->addOption($val, $key);
 }
 $lang_b = new rex_select();
 $lang_b->setId('clang_b');
 $lang_b->setName('clang_b');
 $lang_b->setSize('1');
 $lang_b->setAttribute('class', 'form-control');
 foreach ($clang_perm as $key) {
     $val = rex_i18n::translate(rex_clang::get($key)->getName());
     $lang_b->addOption($val, $key);
 }
 $lang_a->setSelected(rex_request('clang_a', 'int', null));
 $lang_b->setSelected(rex_request('clang_b', 'int', null));
 $panel = '<fieldset>';
 $grid = [];
 $formElements = [];
 $n = [];
 $n['label'] = '<label for="clang_a">' . rex_i18n::msg('content_contentoflang') . '</label>';
 $n['field'] = $lang_a->get();
 $formElements[] = $n;
 $fragment = new rex_fragment();
 $fragment->setVar('group', true);
 $fragment->setVar('elements', $formElements, false);
 $grid[] = $fragment->parse('core/form/form.php');
コード例 #5
0
ファイル: domains.php プロジェクト: VIEWSION/redaxo_yrewrite
 $list->setColumnLabel('mount_id', $this->i18n('mount_id'));
 $list->setColumnLabel('start_id', $this->i18n('start_id'));
 $list->setColumnLabel('notfound_id', $this->i18n('notfound_id'));
 if (rex_clang::count() > 0) {
     $list->setColumnLabel('clangs', $this->i18n('clangs'));
     $list->setColumnFormat('clangs', 'custom', function ($params) {
         $clangs = $params['subject'];
         if ($clangs == '') {
             $return = $this->i18n('alllangs');
         } else {
             $return = [];
             foreach (explode(',', $clangs) as $clang) {
                 $return[] = rex_clang::get($clang)->getName();
             }
             if (count($return) > 1) {
                 $return = implode(',', $return) . '<br />' . $this->i18n('clang_start') . ': ' . rex_clang::get($params['list']->getValue('clang_start'))->getName();
             } else {
                 $return = implode(',', $return);
             }
         }
         return $return;
     });
     $list->removeColumn('clang_start');
 }
 $list->addColumn(rex_i18n::msg('function'), '<i class="rex-icon rex-icon-edit"></i> ' . rex_i18n::msg('edit'));
 $list->setColumnLayout(rex_i18n::msg('function'), ['<th class="rex-table-action" colspan="2">###VALUE###</th>', '<td class="rex-table-action">###VALUE###</td>']);
 $list->setColumnParams(rex_i18n::msg('function'), ['data_id' => '###id###', 'func' => 'edit', 'start' => rex_request('start', 'string')]);
 $list->addColumn(rex_i18n::msg('delete'), '<i class="rex-icon rex-icon-delete"></i> ' . rex_i18n::msg('delete'));
 $list->setColumnLayout(rex_i18n::msg('delete'), ['', '<td class="rex-table-action">###VALUE###</td>']);
 $list->setColumnParams(rex_i18n::msg('delete'), ['data_id' => '###id###', 'func' => 'delete']);
 $list->addLinkAttribute(rex_i18n::msg('delete'), 'onclick', 'return confirm(\' id=###id### ' . rex_i18n::msg('delete') . ' ?\')');
コード例 #6
0
ファイル: system.clangs.php プロジェクト: DECAF/redaxo
$success = '';
// ----- delete clang
if ($func == 'deleteclang' && $clang_id != '') {
    try {
        if (rex_clang::exists($clang_id)) {
            rex_clang_service::deleteCLang($clang_id);
            $success = rex_i18n::msg('clang_deleted');
            $func = '';
            unset($clang_id);
        }
    } catch (rex_functional_exception $e) {
        echo rex_view::error($e->getMessage());
    }
}
if ('editstatus' === $func && rex_clang::exists($clang_id)) {
    $clang = rex_clang::get($clang_id);
    rex_clang_service::editCLang($clang_id, $clang->getCode(), $clang->getName(), $clang->getPriority(), $clang_status);
    $success = rex_i18n::msg('clang_edited');
    $func = '';
    unset($clang_id);
}
// ----- add clang
if ($add_clang_save || $edit_clang_save) {
    if ($clang_code == '') {
        $error = rex_i18n::msg('enter_code');
        $func = $add_clang_save ? 'addclang' : 'editclang';
    } elseif ($clang_name == '') {
        $error = rex_i18n::msg('enter_name');
        $func = $add_clang_save ? 'addclang' : 'editclang';
    } elseif ($add_clang_save) {
        $success = rex_i18n::msg('clang_created');
コード例 #7
0
                $clang_id = (int) trim($lang_name, 'id');
                $td .= '<td data-title="' . rex_clang::get($clang_id)->getName() . '"><textarea class="form-control" name="wildcard_replaces[' . $clang_id . ']" rows="6">' . htmlspecialchars($replace) . '</textarea></td>';
            }
            $content .= '
                        <tr class="mark">
                            <td class="rex-table-icon"><i class="rex-icon rex-icon-refresh"></i></td>
                            <td class="rex-table-id" data-title="' . $this->i18n('id') . '">' . $entry_id . '</td>
                            <td data-title="' . $this->i18n('wildcard') . '"><input class="form-control" type="text" name="wildcard_name" value="' . htmlspecialchars($edit_wildcard_save ? $wildcard_name : $entry_wildcard) . '" /></td>
                            ' . $td . '
                            <td class="rex-table-action" colspan="2"><button class="btn btn-save" type="submit" name="edit_wildcard_save"' . rex::getAccesskey($this->i18n('update'), 'save') . ' value="1">' . $this->i18n('update') . '</button></td>
                        </tr>';
        } else {
            $td = '';
            foreach ($entry as $lang_name => $replace) {
                $clang_id = (int) trim($lang_name, 'id');
                $td .= '<td data-title="' . rex_clang::get($clang_id)->getName() . '">' . $replace . '</td>';
            }
            $content .= '
                        <tr>
                            <td class="rex-table-icon"><a href="' . rex_url::currentBackendPage(['func' => 'edit', 'wildcard_id' => $entry_id]) . '"><i class="rex-icon rex-icon-refresh"></i></a></td>
                            <td class="rex-table-id" data-title="' . $this->i18n('id') . '">' . $entry_id . '</td>
                            <td data-title="' . $this->i18n('wildcard') . '">' . $entry_wildcard . '</td>
                            ' . $td . '
                            <td class="rex-table-action"><a href="' . rex_url::currentBackendPage(['func' => 'edit', 'wildcard_id' => $entry_id]) . '"><i class="rex-icon rex-icon-edit"></i> ' . $this->i18n('function_edit') . '</a></td>
                            <td class="rex-table-action"><a href="' . rex_url::currentBackendPage(['func' => 'delete', 'wildcard_id' => $entry_id]) . '" data-confirm="' . $this->i18n('delete') . ' ?"><i class="rex-icon rex-icon-delete"></i> ' . $this->i18n('delete') . '</a></td>
                        </tr>';
        }
    }
}
$content .= '
        </tbody>
コード例 #8
0
ファイル: seo.php プロジェクト: VIEWSION/redaxo_yrewrite
 public function getHreflangTags()
 {
     $return = '';
     $current_mount_id = $this->domain->getMountId();
     $lang_domains = [];
     foreach (rex_yrewrite::getDomains() as $domain) {
         if ($current_mount_id == $domain->getMountId()) {
             foreach ($domain->getClangs() as $clang) {
                 if ($lang = rex_clang::get($clang)) {
                     $lang_domains[$lang->getCode()] = rex_yrewrite::getFullUrlByArticleId($domain->getStartId(), $lang->getId());
                 }
             }
         }
     }
     foreach ($lang_domains as $code => $url) {
         $return .= '<link rel="alternate" hreflang="' . $code . '" href="' . $url . '" />';
     }
     return $return;
 }