public function getField()
 {
     $field = new rex_form_select_element();
     $field->setAttribute('class', 'form-control');
     $field->setLabel(rex_i18n::msg('system_setting_default_template_id'));
     $select = $field->getSelect();
     $select->setSize(1);
     $select->setSelected(rex_template::getDefaultId());
     $templates = rex_template::getTemplatesForCategory(0);
     if (empty($templates)) {
         $select->addOption(rex_i18n::msg('option_no_template'), 0);
     } else {
         $select->addArrayOptions($templates);
     }
     return $field;
 }
Esempio n. 2
0
 /**
  * Erstellt eine neue Kategorie.
  *
  * @param int   $category_id KategorieId in der die neue Kategorie erstellt werden soll
  * @param array $data        Array mit den Daten der Kategorie
  *
  * @throws rex_api_exception
  *
  * @return string Eine Statusmeldung
  */
 public static function addCategory($category_id, array $data)
 {
     $message = '';
     if (!is_array($data)) {
         throw new rex_api_exception('Expecting $data to be an array!');
     }
     self::reqKey($data, 'catpriority');
     self::reqKey($data, 'catname');
     // parent may be null, when adding in the root cat
     $parent = rex_category::get($category_id);
     if ($parent) {
         $path = $parent->getPath();
         $path .= $parent->getId() . '|';
     } else {
         $path = '|';
     }
     if ($data['catpriority'] <= 0) {
         $data['catpriority'] = 1;
     }
     if (!isset($data['name'])) {
         $data['name'] = $data['catname'];
     }
     if (!isset($data['status'])) {
         $data['status'] = 0;
     }
     $contentAvailable = rex_plugin::get('structure', 'content')->isAvailable();
     if ($contentAvailable) {
         $startpageTemplates = [];
         if ($category_id != '') {
             // TemplateId vom Startartikel der jeweiligen Sprache vererben
             $sql = rex_sql::factory();
             // $sql->setDebug();
             $sql->setQuery('select clang_id,template_id from ' . rex::getTablePrefix() . "article where id={$category_id} and startarticle=1");
             for ($i = 0; $i < $sql->getRows(); $i++, $sql->next()) {
                 $startpageTemplates[$sql->getValue('clang_id')] = $sql->getValue('template_id');
             }
         }
         // Alle Templates der Kategorie
         $templates = rex_template::getTemplatesForCategory($category_id);
     }
     $user = rex::isBackend() ? null : 'frontend';
     // Kategorie in allen Sprachen anlegen
     $AART = rex_sql::factory();
     foreach (rex_clang::getAllIds() as $key) {
         if ($contentAvailable) {
             $template_id = rex_template::getDefaultId();
             if (isset($startpageTemplates[$key]) && $startpageTemplates[$key] != '') {
                 $template_id = $startpageTemplates[$key];
             }
             // Wenn Template nicht vorhanden, dann entweder erlaubtes nehmen
             // oder leer setzen.
             if (!isset($templates[$template_id])) {
                 $template_id = 0;
                 if (count($templates) > 0) {
                     $template_id = key($templates);
                 }
             }
         }
         $AART->setTable(rex::getTablePrefix() . 'article');
         if (!isset($id)) {
             $id = $AART->setNewId('id');
         } else {
             $AART->setValue('id', $id);
         }
         $AART->setValue('clang_id', $key);
         $AART->setValue('template_id', $template_id);
         $AART->setValue('name', $data['name']);
         $AART->setValue('catname', $data['catname']);
         $AART->setValue('catpriority', $data['catpriority']);
         $AART->setValue('parent_id', $category_id);
         $AART->setValue('priority', 1);
         $AART->setValue('path', $path);
         $AART->setValue('startarticle', 1);
         $AART->setValue('status', $data['status']);
         $AART->addGlobalUpdateFields($user);
         $AART->addGlobalCreateFields($user);
         try {
             $AART->insert();
             // ----- PRIOR
             if (isset($data['catpriority'])) {
                 self::newCatPrio($category_id, $key, 0, $data['catpriority']);
             }
             $message = rex_i18n::msg('category_added_and_startarticle_created');
             rex_article_cache::delete($id, $key);
             // ----- EXTENSION POINT
             // Objekte clonen, damit diese nicht von der extension veraendert werden koennen
             $message = rex_extension::registerPoint(new rex_extension_point('CAT_ADDED', $message, ['category' => clone $AART, 'id' => $id, 'parent_id' => $category_id, 'clang' => $key, 'name' => $data['catname'], 'priority' => $data['catpriority'], 'path' => $path, 'status' => $data['status'], 'article' => clone $AART, 'data' => $data]));
         } catch (rex_sql_exception $e) {
             throw new rex_api_exception($e);
         }
     }
     return $message;
 }
Esempio n. 3
0
echo rex_view::title(rex_i18n::msg('title_templates'));
$OUT = true;
$function = rex_request('function', 'string');
$template_id = rex_request('template_id', 'int');
$save = rex_request('save', 'string');
$goon = rex_request('goon', 'string');
$success = '';
$error = '';
$content = '';
$message = '';
if ($function == 'delete') {
    $del = rex_sql::factory();
    $del->setQuery('SELECT ' . rex::getTablePrefix() . 'article.id,' . rex::getTablePrefix() . 'template.name FROM ' . rex::getTablePrefix() . 'article
        LEFT JOIN ' . rex::getTablePrefix() . 'template ON ' . rex::getTablePrefix() . 'article.template_id=' . rex::getTablePrefix() . 'template.id
        WHERE ' . rex::getTablePrefix() . 'article.template_id="' . $template_id . '" LIMIT 0,10');
    if ($del->getRows() > 0 || rex_template::getDefaultId() == $template_id) {
        $error = rex_i18n::msg('cant_delete_template_because_its_in_use', rex_i18n::msg('id') . ' = ' . $template_id);
    } else {
        $del->setQuery('DELETE FROM ' . rex::getTablePrefix() . 'template WHERE id = "' . $template_id . '" LIMIT 1');
        // max. ein Datensatz darf loeschbar sein
        rex_file::delete(rex_path::addonCache('templates', $template_id . '.template'));
        $success = rex_i18n::msg('template_deleted');
    }
} elseif ($function == 'edit') {
    $legend = rex_i18n::msg('edit_template') . ' <small class="rex-primary-id">' . rex_i18n::msg('id') . ' = ' . $template_id . '</small>';
    $hole = rex_sql::factory();
    $hole->setQuery('SELECT * FROM ' . rex::getTablePrefix() . 'template WHERE id = "' . $template_id . '"');
    if ($hole->getRows() == 1) {
        $templatename = $hole->getValue('name');
        $template = $hole->getValue('content');
        $active = $hole->getValue('active');
Esempio n. 4
0
 }
 // --------------------- ARTIKEL ADD FORM
 if ($function == 'add_art' && $KATPERM) {
     $tmpl_td = '';
     if ($withTemplates) {
         $selectedTemplate = 0;
         if ($category_id) {
             // template_id vom Startartikel erben
             $sql2 = rex_sql::factory();
             $sql2->setQuery('SELECT template_id FROM ' . rex::getTablePrefix() . 'article WHERE id=' . $category_id . ' AND clang_id=' . $clang . ' AND startarticle=1');
             if ($sql2->getRows() == 1) {
                 $selectedTemplate = $sql2->getValue('template_id');
             }
         }
         if (!$selectedTemplate || !isset($TEMPLATE_NAME[$selectedTemplate])) {
             $selectedTemplate = rex_template::getDefaultId();
         }
         if ($selectedTemplate && isset($TEMPLATE_NAME[$selectedTemplate])) {
             $template_select->setSelected($selectedTemplate);
         }
         $tmpl_td = '<td data-title="' . rex_i18n::msg('header_template') . '">' . $template_select->get() . '</td>';
     }
     $echo .= '<tr class="mark">
                 <td class="rex-table-icon"><i class="rex-icon rex-icon-article"></i></td>
                 <td class="rex-table-id" data-title="' . rex_i18n::msg('header_id') . '">-</td>
                 <td data-title="' . rex_i18n::msg('header_article_name') . '"><input class="form-control" type="text" name="article-name" autofocus /></td>
                 ' . $tmpl_td . '
                 <td data-title="' . rex_i18n::msg('header_date') . '">' . rex_formatter::strftime(time(), 'date') . '</td>
                 <td class="rex-table-priority" data-title="' . rex_i18n::msg('header_priority') . '"><input class="form-control" type="text" name="article-position" value="' . ($artPager->getRowCount() + 1) . '" /></td>
                 <td class="rex-table-action" colspan="3"><input type="hidden" name="rex-api-call" value="article_add" /><button class="btn btn-save" type="submit" name="artadd_function"' . rex::getAccesskey(rex_i18n::msg('article_add'), 'save') . '>' . rex_i18n::msg('article_add') . '</button></td>
             </tr>