示例#1
0
if ($groupid > 0) {
    if ($mod == 'weight' and $new_vid > 0) {
        $sql = 'SELECT groupid FROM ' . $db_config['prefix'] . '_' . $module_data . '_group WHERE groupid!=' . $groupid . ' AND parentid=' . $parentid . ' ORDER BY weight ASC';
        $result = $db->query($sql);
        $weight = 0;
        while ($row = $result->fetch()) {
            ++$weight;
            if ($weight == $new_vid) {
                ++$weight;
            }
            $sql = 'UPDATE ' . $db_config['prefix'] . '_' . $module_data . '_group SET weight=' . $weight . ' WHERE groupid=' . $row['groupid'];
            $db->query($sql);
        }
        $sql = 'UPDATE ' . $db_config['prefix'] . '_' . $module_data . '_group SET weight=' . $new_vid . ' WHERE groupid=' . $groupid;
        $db->query($sql);
        nv_fix_group_order();
        $content = 'OK_' . $parentid;
    } elseif ($mod == 'inhome' and ($new_vid == 0 or $new_vid == 1)) {
        $sql = 'UPDATE ' . $db_config['prefix'] . '_' . $module_data . '_group SET inhome=' . $new_vid . ' WHERE groupid=' . $groupid;
        $db->query($sql);
        $content = 'OK_' . $parentid;
    } elseif ($mod == 'indetail' and ($new_vid == 0 or $new_vid == 1)) {
        $sql = 'UPDATE ' . $db_config['prefix'] . '_' . $module_data . '_group SET indetail=' . $new_vid . ' WHERE groupid=' . $groupid;
        $db->query($sql);
        $content = 'OK_' . $parentid;
    } elseif ($mod == 'numlinks' and $new_vid >= 0 and $new_vid <= 10) {
        $sql = 'UPDATE ' . $db_config['prefix'] . '_' . $module_data . '_group SET numlinks=' . $new_vid . ' WHERE groupid=' . $groupid;
        $db->query($sql);
        $content = 'OK_' . $parentid;
    } elseif ($mod == 'viewgroup' and $nv_Request->isset_request('new_vid', 'post')) {
        $viewgroup = $nv_Request->get_title('new_vid', 'post');
/**
 * nv_fix_group_order()
 *
 * @param integer $parentid
 * @param integer $order
 * @param integer $lev
 * @return
 */
function nv_fix_group_order($parentid = 0, $sort = 0, $lev = 0)
{
    global $db, $db_config, $module_data;
    $sql = 'SELECT groupid, parentid FROM ' . $db_config['prefix'] . '_' . $module_data . '_group WHERE parentid=' . $parentid . ' ORDER BY weight ASC';
    $result = $db->query($sql);
    $array_group_order = array();
    while ($row = $result->fetch()) {
        $array_group_order[] = $row['groupid'];
    }
    $result->closeCursor();
    $weight = 0;
    if ($parentid > 0) {
        ++$lev;
    } else {
        $lev = 0;
    }
    foreach ($array_group_order as $groupid_i) {
        ++$sort;
        ++$weight;
        $sql = 'UPDATE ' . $db_config['prefix'] . '_' . $module_data . '_group SET weight=' . $weight . ', sort=' . $sort . ', lev=' . $lev . ' WHERE groupid=' . $groupid_i;
        $db->query($sql);
        $sort = nv_fix_group_order($groupid_i, $sort, $lev);
    }
    $numsubgroup = $weight;
    if ($parentid > 0) {
        $sql = "UPDATE " . $db_config['prefix'] . "_" . $module_data . "_group SET numsubgroup=" . $numsubgroup;
        if ($numsubgroup == 0) {
            $sql .= ",subgroupid='', viewgroup='viewcat_page_list'";
        } else {
            $sql .= ",subgroupid='" . implode(",", $array_group_order) . "'";
        }
        $sql .= " WHERE groupid=" . intval($parentid);
        $db->query($sql);
    }
    return $sort;
}