예제 #1
0
     if ($forum->forum_parent) {
         $siblings = bb_get_forums($forum->forum_parent);
         $last_sibling = array_pop($siblings);
         if ($last_sibling->forum_id == $forum_id) {
             $last_sibling = array_pop($siblings);
         }
         if ($last_sibling) {
             $position = "forum-{$last_sibling->forum_id}";
         } else {
             $position = "+forum-{$forum->forum_parent}";
             $data = "<ul id='forum-root-{$forum->forum_parent}' class='list-block holder'>{$data}</ul>";
         }
     } else {
         $position = 1;
     }
     $x = new nxt_Ajax_Response(array('what' => 'forum', 'id' => $forum_id, 'data' => $data, 'position' => $position, 'supplemental' => array('name' => $forum->forum_name)));
     $x->send();
     break;
 case 'order-forums':
     if (!bb_current_user_can('manage_forums')) {
         die('-1');
     }
     bb_check_ajax_referer($action);
     if (!is_array($_POST['order'])) {
         die('0');
     }
     global $bbdb;
     $forums = array();
     bb_get_forums();
     // cache
     foreach ($_POST['order'] as $pos => $forum_id) {
예제 #2
0
function _nxt_ajax_add_hierarchical_term()
{
    $action = $_POST['action'];
    $taxonomy = get_taxonomy(substr($action, 4));
    check_ajax_referer($action, '_ajax_nonce-add-' . $taxonomy->name);
    if (!current_user_can($taxonomy->cap->edit_terms)) {
        die('-1');
    }
    $names = explode(',', $_POST['new' . $taxonomy->name]);
    $parent = isset($_POST['new' . $taxonomy->name . '_parent']) ? (int) $_POST['new' . $taxonomy->name . '_parent'] : 0;
    if (0 > $parent) {
        $parent = 0;
    }
    if ($taxonomy->name == 'category') {
        $post_category = isset($_POST['post_category']) ? (array) $_POST['post_category'] : array();
    } else {
        $post_category = isset($_POST['tax_input']) && isset($_POST['tax_input'][$taxonomy->name]) ? (array) $_POST['tax_input'][$taxonomy->name] : array();
    }
    $checked_categories = array_map('absint', (array) $post_category);
    $popular_ids = nxt_popular_terms_checklist($taxonomy->name, 0, 10, false);
    foreach ($names as $cat_name) {
        $cat_name = trim($cat_name);
        $category_nicename = sanitize_title($cat_name);
        if ('' === $category_nicename) {
            continue;
        }
        if (!($cat_id = term_exists($cat_name, $taxonomy->name, $parent))) {
            $new_term = nxt_insert_term($cat_name, $taxonomy->name, array('parent' => $parent));
            $cat_id = $new_term['term_id'];
        }
        $checked_categories[] = $cat_id;
        if ($parent) {
            // Do these all at once in a second
            continue;
        }
        $category = get_term($cat_id, $taxonomy->name);
        ob_start();
        nxt_terms_checklist(0, array('taxonomy' => $taxonomy->name, 'descendants_and_self' => $cat_id, 'selected_cats' => $checked_categories, 'popular_cats' => $popular_ids));
        $data = ob_get_contents();
        ob_end_clean();
        $add = array('what' => $taxonomy->name, 'id' => $cat_id, 'data' => str_replace(array("\n", "\t"), '', $data), 'position' => -1);
    }
    if ($parent) {
        // Foncy - replace the parent and all its children
        $parent = get_term($parent, $taxonomy->name);
        $term_id = $parent->term_id;
        while ($parent->parent) {
            // get the top parent
            $parent =& get_term($parent->parent, $taxonomy->name);
            if (is_nxt_error($parent)) {
                break;
            }
            $term_id = $parent->term_id;
        }
        ob_start();
        nxt_terms_checklist(0, array('taxonomy' => $taxonomy->name, 'descendants_and_self' => $term_id, 'selected_cats' => $checked_categories, 'popular_cats' => $popular_ids));
        $data = ob_get_contents();
        ob_end_clean();
        $add = array('what' => $taxonomy->name, 'id' => $term_id, 'data' => str_replace(array("\n", "\t"), '', $data), 'position' => -1);
    }
    ob_start();
    nxt_dropdown_categories(array('taxonomy' => $taxonomy->name, 'hide_empty' => 0, 'name' => 'new' . $taxonomy->name . '_parent', 'orderby' => 'name', 'hierarchical' => 1, 'show_option_none' => '&mdash; ' . $taxonomy->labels->parent_item . ' &mdash;'));
    $sup = ob_get_contents();
    ob_end_clean();
    $add['supplemental'] = array('newcat_parent' => $sup);
    $x = new nxt_Ajax_Response($add);
    $x->send();
}