blog->getCategory($mov_cat); if ($c->isEmpty()) { throw new Exception(__('Category where to move posts does not exist')); } unset($c); if (in_array($mov_cat, $_POST['categories'])) { throw new Exception(__('The entries cannot be moved to the category you choose to delete.')); } } foreach ($_POST['categories'] as $cat_id) { # Check if category to delete exists $c = $core->blog->getCategory((integer) $cat_id); if ($c->isEmpty()) { continue; } unset($c); # Move posts if ($mov_cat != $cat_id) { $core->blog->changePostsCategory($cat_id,$mov_cat); } # Delete category $core->blog->delCategory($cat_id); } http::redirect('categories.php?del='.count($_POST['categories'])); } catch (Exception $e) { $core->error->add($e->getMessage()); } } # Update order if (!empty($_POST['categories_order'])) { $categories = json_decode($_POST['categories_order']); foreach ($categories as $category) { if (!empty($category->item_id)) { $core->blog->updCategoryPosition($category->item_id, $category->left, $category->right); } } http::redirect('categories.php?reord=1'); } # Reset order if (!empty($_POST['reset'])) { try { $core->blog->resetCategoriesOrder(); http::redirect('categories.php?reord=1'); } catch (Exception $e) { $core->error->add($e->getMessage()); } } # Actions combo box $combo_action = array(); if ($core->auth->check('categories',$core->blog->id)) { $combo_action[__('Delete')] = 'delete'; } /* Display -------------------------------------------------------- */ $rs = $core->blog->getCategories(array('post_type'=>'post')); $starting_script = dcPage::jsToolMan()."\n"; 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.mjs.nestedSortable.js'); } $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::message(__('The category has been successfully removed.', 'The categories have been successfully removed.', (int) $_GET['del'] ) ); } if (!empty($_GET['reord'])) { dcPage::message(__('Categories have been successfully reordered.')); } $categories_combo = array(); if (!$rs->isEmpty()) { while ($rs->fetch()) { $catparents_combo[] = $categories_combo[] = new formSelectOption( str_repeat('  ',$rs->level-1).($rs->level-1 == 0 ? '' : '• ').html::escapeHTML($rs->cat_title), $rs->cat_id ); } } echo '

'.__('New category').'

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

'.__('No category yet.').'

'; } else { echo '
'. '

'.__('Categories list').'

'. '
'; $ref_level = $level = $rs->level-1; while ($rs->fetch()) { $attr = 'id="cat_'.$rs->cat_id.'"'; if ($rs->nb_total == 0) { $attr .= ' class="deletable"'; } 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 '

    '. form::checkbox(array('categories[]'),$rs->cat_id). ''.html::escapeHTML($rs->cat_title).''. ' ('. sprintf(($rs->nb_post > 1 ? __('%d entries') : __('%d entry') ),$rs->nb_post).''. ', '.__('total:').' '.$rs->nb_total.')

    '. '

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

    '; $level = $rs->level; } if ($ref_level - $level < 0) { echo str_repeat('
  • ',-($ref_level - $level)); } echo '
    '; if (count($combo_action)>0) { echo '
    '. '

    '. '

    '. form::combo('mov_cat',array_merge(array(__('(No cat)') => ''),$categories_combo),'','maximal').'

    '. '

    '. form::combo('action',$combo_action). $core->formNonce(). '

    '. '
    '. '
    '; } echo '
    '. '
    '. '

    '.__('Reorder categories').'

    '. '

    '.__('This will relocate all categories on the top level').'

    '. '

    '. form::hidden(array('reset'),1). $core->formNonce().'

    '. '
    '. '
    '; if (!$core->auth->user_prefs->accessibility->nodragdrop && $core->auth->check('categories',$core->blog->id) && $rs->count()>1) { echo '
    '. '
    '. '

    '. ''. ''. $core->formNonce().'

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