/** * Ändert den Status der Kategorie * * @param int $category_id Id der Kategorie die gelöscht werden soll * @param int $clang Id der Sprache * @param int|null $status Status auf den die Kategorie gesetzt werden soll, oder NULL wenn zum nächsten Status weitergeschaltet werden soll * * @return array Ein Array welches den status sowie eine Fehlermeldung beinhaltet */ function rex_categoryStatus($category_id, $clang, $status = null) { global $REX, $I18N; $success = false; $message = ''; $catStatusTypes = rex_categoryStatusTypes(); $KAT = rex_sql::factory(); $KAT->setQuery('select * from ' . $REX['TABLE_PREFIX'] . "article where id='{$category_id}' and clang={$clang} and startpage=1"); if ($KAT->getRows() == 1) { // Status wurde nicht von außen vorgegeben, // => zyklisch auf den nächsten Weiterschalten if (!$status) { $newstatus = ($KAT->getValue('status') + 1) % count($catStatusTypes); } else { $newstatus = $status; } $EKAT = rex_sql::factory(); $EKAT->setTable($REX['TABLE_PREFIX'] . 'article'); $EKAT->setWhere("id='{$category_id}' and clang={$clang} and startpage=1"); $EKAT->setValue('status', $newstatus); $EKAT->addGlobalCreateFields(); if ($EKAT->update()) { $message = $I18N->msg('category_status_updated'); rex_deleteCacheArticle($category_id, $clang); // ----- EXTENSION POINT $message = rex_register_extension_point('CAT_STATUS', $message, array('id' => $category_id, 'clang' => $clang, 'status' => $newstatus)); $success = true; } else { $message = $EKAT->getError(); } } else { $message = $I18N->msg('no_such_category'); } return array($success, $message); }
$warning = ''; // --------------------------------------------- Mountpoints $mountpoints = $REX['USER']->getMountpoints(); if (count($mountpoints) == 1 && $category_id == 0) { // Nur ein Mointpoint -> Sprung in die Kategory $category_id = current($mountpoints); } // --------------------------------------------- Rechte prŸfen require $REX['INCLUDE_PATH'] . '/functions/function_rex_category.inc.php'; require $REX['INCLUDE_PATH'] . '/functions/function_rex_content.inc.php'; // --------------------------------------------- TITLE rex_title($I18N->msg('title_structure'), $KATout); $sprachen_add = '&category_id=' . $category_id; require $REX['INCLUDE_PATH'] . '/functions/function_rex_languages.inc.php'; // -------------- STATUS_TYPE Map $catStatusTypes = rex_categoryStatusTypes(); $artStatusTypes = rex_articleStatusTypes(); // --------------------------------------------- KATEGORIE FUNKTIONEN if (rex_post('catedit_function', 'boolean') && $edit_id != '' && $KATPERM) { // --------------------- KATEGORIE EDIT $data = array(); $data['catprior'] = rex_post('Position_Category', 'int'); $data['catname'] = rex_post('kat_name', 'string'); $data['path'] = $KATPATH; list($success, $message) = rex_editCategory($edit_id, $clang, $data); if ($success) { $info = $message; } else { $warning = $message; } } elseif ($function == 'catdelete_function' && $edit_id != '' && $KATPERM && !$REX['USER']->hasPerm('editContentOnly[]')) {