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; }