Пример #1
0
 /**
  * Berechnet die Prios der Kategorien in einer Kategorie neu.
  *
  * @param int $parent_id KategorieId der Kategorie, die erneuert werden soll
  * @param int $clang     ClangId der Kategorie, die erneuert werden soll
  * @param int $new_prio  Neue PrioNr der Kategorie
  * @param int $old_prio  Alte PrioNr der Kategorie
  */
 public static function newCatPrio($parent_id, $clang, $new_prio, $old_prio)
 {
     if ($new_prio != $old_prio) {
         if ($new_prio < $old_prio) {
             $addsql = 'desc';
         } else {
             $addsql = 'asc';
         }
         rex_sql_util::organizePriorities(rex::getTable('article'), 'catpriority', 'clang_id=' . $clang . ' AND parent_id=' . $parent_id . ' AND startarticle=1', 'catpriority,updatedate ' . $addsql);
         rex_article_cache::deleteLists($parent_id);
     }
 }
Пример #2
0
 /**
  * Konvertiert eine Kategorie in einen Artikel.
  *
  * @param int $art_id Artikel ID der Kategorie, die in einen Artikel umgewandelt werden soll
  *
  * @return bool TRUE bei Erfolg, sonst FALSE
  */
 public static function category2article($art_id)
 {
     $sql = rex_sql::factory();
     // Kategorie muss leer sein
     $sql->setQuery('SELECT pid FROM ' . rex::getTablePrefix() . 'article WHERE parent_id=' . $art_id . ' LIMIT 1');
     if ($sql->getRows() != 0) {
         return false;
     }
     // LANG SCHLEIFE
     foreach (rex_clang::getAllIds() as $clang) {
         // artikel
         $sql->setQuery('select parent_id, name from ' . rex::getTablePrefix() . "article where id={$art_id} and startarticle=1 and clang_id={$clang}");
         if (!isset($parent_id)) {
             $parent_id = $sql->getValue('parent_id');
         }
         // artikel updaten
         $sql->setTable(rex::getTablePrefix() . 'article');
         $sql->setWhere(['id' => $art_id, 'clang_id' => $clang]);
         $sql->setValue('startarticle', 0);
         $sql->setValue('priority', 100);
         $sql->update();
         self::newArtPrio($parent_id, $clang, 0, 100);
     }
     rex_article_cache::deleteLists($parent_id);
     rex_article_cache::delete($art_id);
     foreach (rex_clang::getAllIds() as $clang) {
         rex_extension::registerPoint(new rex_extension_point('CAT_TO_ART', '', ['id' => $art_id, 'clang' => $clang]));
     }
     return true;
 }