Exemple #1
0
    }
    $object_ids = implode(',', $object_ids);
    $query = "SELECT t.*, tr.id AS tag_id FROM " . XT_TABLE_CATALOG . " AS t INNER JOIN " . XT_TABLE_SHARE_TAG_CATALOG . " AS tr ON t.id = tr.cid WHERE t.type = 'share' AND tr.id IN ({$object_ids}) ORDER BY t.sort ASC,t.count DESC";
    global $wpdb;
    $terms = $wpdb->get_results($query);
    $_terms = array();
    foreach ($terms as $term) {
        $_term = isset($_terms[$term->tag_id]) ? $_terms[$term->tag_id] : array();
        $_term[] = $term;
        $_terms[$term->tag_id] = $_term;
    }
    foreach ($_terms as $_tag_id => $_term) {
        xt_update_catalog_terms_cache($_tag_id, $_term);
    }
    foreach ($_tags as $tag) {
        xt_row_tag($tag, $_tag_count, $cid);
        $_tag_count++;
    }
}
?>
            </tbody>
        </table>
        <table style="display: none">
            <tbody>
                <tr id="inline-edit" class="inline-edit-row">
                    <td colspan="5" class="colspanchange">
                        <fieldset class="inline-edit-col-left" style="width:40%;">
                            <div class="inline-edit-col">
                                <h4>快速编辑</h4>
                                <label> <span class="title">名称</span> <span class="input-text-wrap"><input type="text" name="title" disabled class="ptitle" value="" /></span></label> 
                                <label> <span class="title">排序</span> <span class="input-text-wrap"><input type="text" name="sort" class="ptitle" value="" />排序数值越小越靠前</span></label>
Exemple #2
0
function xt_admin_ajax_tag_update()
{
    $result = array('code' => 0, 'msg' => '', 'result' => array());
    if (!current_user_can('manage_options')) {
        $result['code'] = 500;
        $result['msg'] = '您无权操作此功能';
    }
    if (!isset($_POST['id']) || empty($_POST['id'])) {
        $result['code'] = 500;
        $result['msg'] = '未指定标签';
    }
    if (!isset($_POST['sort']) || empty($_POST['sort'])) {
        $result['code'] = 500;
        $result['msg'] = '未指定标签排序';
    }
    $id = intval(trim($_POST['id']));
    $sort = intval($_POST['sort']);
    $cids = isset($_POST['cids']) ? $_POST['cids'] : '';
    $currentCid = intval($_POST['cid']);
    if ($result['code'] == 0) {
        global $wpdb;
        if ($currentCid > 0) {
            echo 'update:[' . $wpdb->update(XT_TABLE_SHARE_TAG_CATALOG, array('sort' => $sort), array('id' => $id, 'cid' => $currentCid)) . ']';
        } else {
            $wpdb->update(XT_TABLE_SHARE_TAG, array('sort' => $sort), array('id' => $id));
        }
        $query = "SELECT t.*, tr.id AS tag_id FROM " . XT_TABLE_CATALOG . " AS t INNER JOIN " . XT_TABLE_SHARE_TAG_CATALOG . " AS tr ON t.id = tr.cid WHERE t.type = 'share' AND tr.id =" . $id . " ORDER BY t.sort ASC,t.count DESC";
        $term = $wpdb->get_results($query);
        $old = array();
        if (!empty($term)) {
            foreach ($term as $_term) {
                $old[] = $_term->id;
            }
        }
        $cids = array_map('intval', explode(',', $cids));
        if (empty($cids)) {
            $cids = array();
        }
        $deleteIds = array_diff($old, $cids);
        //delete
        $addIds = array_diff($cids, $old);
        //add
        if (!empty($deleteIds)) {
            foreach ($deleteIds as $del) {
                xt_delete_tag_catalog($del, $id);
            }
        }
        if (!empty($addIds)) {
            foreach ($addIds as $add) {
                xt_new_tag_catalog(array('cid' => $add, 'id' => $id));
            }
        }
        $tag = xt_get_tag($id);
        if (!empty($addIds)) {
            global $wpdb;
            foreach ($addIds as $add) {
                //refresh count
                $count = xt_get_sharecount_bytagandcid($tag->title, $add);
                $wpdb->query("UPDATE " . XT_TABLE_SHARE_TAG_CATALOG . " SET count={$count} WHERE id=" . absint($id) . " AND cid=" . absint($add));
            }
        }
        $term = $wpdb->get_results($query);
        //reload
        xt_update_catalog_terms_cache($id, $term);
        //sort and count
        if ($currentCid > 0) {
            $catalog = xt_get_catalog($currentCid);
            if (!empty($catalog)) {
                global $wpdb;
                $sql = "SELECT " . XT_TABLE_SHARE_TAG_CATALOG . ".cid," . XT_TABLE_SHARE_TAG_CATALOG . ".sort," . XT_TABLE_SHARE_TAG . ".id," . XT_TABLE_SHARE_TAG . ".title," . XT_TABLE_SHARE_TAG . ".is_hot," . XT_TABLE_SHARE_TAG_CATALOG . ".count," . XT_TABLE_SHARE_TAG . ".nums FROM " . XT_TABLE_SHARE_TAG_CATALOG . " INNER JOIN " . XT_TABLE_SHARE_TAG . " ON " . XT_TABLE_SHARE_TAG . ".id=" . XT_TABLE_SHARE_TAG_CATALOG . ".id WHERE " . XT_TABLE_SHARE_TAG_CATALOG . ".id={$id} AND " . XT_TABLE_SHARE_TAG_CATALOG . ".cid={$currentCid}";
                if (isset($catalog->children) && !empty($catalog->children)) {
                    $sql = "SELECT " . XT_TABLE_SHARE_TAG_CATALOG . ".cid," . XT_TABLE_SHARE_TAG_CATALOG . ".sort AS sort,min(" . XT_TABLE_SHARE_TAG_CATALOG . ".sort) AS childSort," . XT_TABLE_SHARE_TAG . ".id," . XT_TABLE_SHARE_TAG . ".title," . XT_TABLE_SHARE_TAG . ".is_hot,max(" . XT_TABLE_SHARE_TAG_CATALOG . ".count) AS count," . XT_TABLE_SHARE_TAG . ".nums FROM " . XT_TABLE_SHARE_TAG_CATALOG . " INNER JOIN " . XT_TABLE_SHARE_TAG . " ON " . XT_TABLE_SHARE_TAG . ".id=" . XT_TABLE_SHARE_TAG_CATALOG . ".id WHERE " . XT_TABLE_SHARE_TAG_CATALOG . ".id={$id} AND " . XT_TABLE_SHARE_TAG_CATALOG . ".cid in(" . $wpdb->escape($catalog->children) . ",{$currentCid}) GROUP BY " . XT_TABLE_SHARE_TAG . ".id ORDER BY sort ASC,childSort ASC," . XT_TABLE_SHARE_TAG_CATALOG . ".count DESC";
                }
                $tag = $wpdb->get_row($sql);
            }
        }
        exit(xt_row_tag($tag, isset($_POST['alternate']) && $_POST['alternate'] ? 0 : 1, $currentCid));
    }
    exit(json_encode($result));
}