blog->getCategory((integer) $cat_id); if ($c->isEmpty()) { dcPage::addErrorNotice(__('This category does not exist.')); $core->adminurl->redirect("admin.categories"); } $name = $c->cat_title; unset($c); try { # Delete category $core->blog->delCategory($cat_id); dcPage::addSuccessNotice(sprintf(__('The category "%s" has been successfully deleted.'), html::escapeHTML($name))); $core->adminurl->redirect("admin.categories"); } catch (Exception $e) { $core->error->add($e->getMessage()); } } # move post into a category if (!empty($_POST['mov']) && !empty($_POST['mov_cat'])) { try { # Check if category where to move posts exists $keys = array_keys($_POST['mov']); $cat_id = (int) $keys[0]; $mov_cat = (int) $_POST['mov_cat'][$cat_id]; $mov_cat = $mov_cat ?: null; if ($mov_cat !== null) { $c = $core->blog->getCategory($mov_cat); if ($c->isEmpty()) { throw new Exception(__('Category where to move entries does not exist')); } $name = $c->cat_title; unset($c); } # Move posts if ($mov_cat != $cat_id) { $core->blog->changePostsCategory($cat_id, $mov_cat); } dcPage::addSuccessNotice(sprintf(__('The entries have been successfully moved to category "%s"'), html::escapeHTML($name))); $core->adminurl->redirect("admin.categories"); } catch (Exception $e) { $core->error->add($e->getMessage()); } } # Update order if (!empty($_POST['save_order']) && !empty($_POST['categories_order'])) { $categories = json_decode($_POST['categories_order']); foreach ($categories as $category) { if (!empty($category->item_id) && !empty($category->left) && !empty($category->right)) { $core->blog->updCategoryPosition($category->item_id, $category->left, $category->right); } } dcPage::addSuccessNotice(__('Categories have been successfully reordered.')); $core->adminurl->redirect("admin.categories"); } # Reset order if (!empty($_POST['reset'])) { try { $core->blog->resetCategoriesOrder(); dcPage::addSuccessNotice(__('Categories order has been successfully reset.')); $core->adminurl->redirect("admin.categories"); } catch (Exception $e) { $core->error->add($e->getMessage()); } } /* Display -------------------------------------------------------- */ $rs = $core->blog->getCategories(); $starting_script = ""; $core->auth->user_prefs->addWorkspace('accessibility'); if (!$core->auth->user_prefs->accessibility->nodragdrop && $core->auth->check('categories', $core->blog->id) && $rs->count() > 1) { $starting_script .= dcPage::jsLoad('js/jquery/jquery-ui.custom.js'); $starting_script .= dcPage::jsLoad('js/jquery/jquery.ui.touch-punch.js'); $starting_script .= dcPage::jsLoad('js/jquery/jquery.mjs.nestedSortable.js'); } $starting_script .= dcPage::jsConfirmClose('form-categories'); $starting_script .= dcPage::jsLoad('js/_categories.js'); dcPage::open(__('Categories'), $starting_script, dcPage::breadcrumb( array( html::escapeHTML($core->blog->name) => '', __('Categories') => '' )) ); if (!empty($_GET['del'])) { dcPage::success(__('The category has been successfully removed.')); } if (!empty($_GET['reord'])) { dcPage::success(__('Categories have been successfully reordered.')); } if (!empty($_GET['move'])) { dcPage::success(__('Entries have been successfully moved to the category you choose.')); } $categories_combo = dcAdminCombos::getCategoriesCombo($rs); echo '

' . __('New category') . '

'; echo '
'; if ($rs->isEmpty()) { echo '

' . __('No category so far.') . '

'; } else { echo '
' . '
'; $ref_level = $level = $rs->level - 1; while ($rs->fetch()) { $attr = 'id="cat_' . $rs->cat_id . '" class="cat-line clearfix"'; if ($rs->level > $level) { echo str_repeat('
  • ', $rs->level - $level); } elseif ($rs->level < $level) { echo str_repeat('
', -($rs->level - $level)); } if ($rs->level <= $level) { echo '
  • '; } echo '

    ' . '

    ( $rs->cat_id)) . '">' . sprintf(($rs->nb_post > 1 ? __('%d entries') : __('%d entry')), $rs->nb_post) . '' . ', ' . __('total:') . ' ' . $rs->nb_total . ')

    ' . '

    ' . __('URL:') . ' ' . html::escapeHTML($rs->cat_url) . '

    '; echo '

    '; if ($rs->nb_total > 0) { // remove current category echo ' ' . form::combo(array('mov_cat[' . $rs->cat_id . ']', 'mov_cat_' . $rs->cat_id), array_filter($categories_combo, function ($cat) {return $cat->value != $GLOBALS['rs']->cat_id;} ), '', '') . ' '; $attr_disabled = ' disabled="disabled"'; $input_class = 'disabled '; } else { $attr_disabled = ''; $input_class = ''; } echo ' ' . '

    '; $level = $rs->level; } if ($ref_level - $level < 0) { echo str_repeat('
  • ', -($ref_level - $level)); } echo '
    '; echo '
    '; if ($core->auth->check('categories', $core->blog->id) && $rs->count() > 1) { if (!$core->auth->user_prefs->accessibility->nodragdrop) { echo '

    ' . __('To rearrange categories order, move items by drag and drop, then click on “Save categories order” button.') . '

    '; } echo '

    ' . '' . '' . ' '; } else { echo '

    '; } echo '' . $core->formNonce() . '

    ' . '
    '; } echo '
    '; dcPage::helpBlock('core_categories'); dcPage::close();