/** * 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); } }
/** * 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; }