/** * nv_fix_fam_order() * * @param integer $parentid * @param integer $order * @param integer $lev * @return */ function nv_fix_fam_order($parentid = 0, $order = 0, $lev = 0) { global $db, $module_data; $sql = 'SELECT fid, parentid FROM ' . NV_PREFIXLANG . '_' . $module_data . '_family WHERE parentid=' . $parentid . ' ORDER BY weight ASC'; $result = $db->query($sql); $array_fam_order = array(); while ($row = $result->fetch()) { $array_fam_order[] = $row['fid']; } $result->closeCursor(); $weight = 0; if ($parentid > 0) { ++$lev; } else { $lev = 0; } foreach ($array_fam_order as $fid_i) { ++$order; ++$weight; $sql = 'UPDATE ' . NV_PREFIXLANG . '_' . $module_data . '_family SET weight=' . $weight . ', sort=' . $order . ', lev=' . $lev . ' WHERE fid=' . intval($fid_i); $db->query($sql); $order = nv_fix_fam_order($fid_i, $order, $lev); } $numsubfam = $weight; if ($parentid > 0) { $sql = 'UPDATE ' . NV_PREFIXLANG . '_' . $module_data . '_family SET numsubfam=' . $numsubfam; if ($numsubfam == 0) { $sql .= ",subfid='', viewfam='viewfam_page_new'"; } else { $sql .= ",subfid='" . implode(',', $array_fam_order) . "'"; } $sql .= ' WHERE fid=' . intval($parentid); $db->query($sql); } return $order; }
if ($fid > 0) { if ($mod == 'weight' and $new_vid > 0 and (defined('NV_IS_ADMIN_MODULE') or $parentid > 0 and isset($array_fam_admin[$admin_id][$parentid]) and $array_fam_admin[$admin_id][$parentid]['admin'] == 1)) { $sql = 'SELECT fid FROM ' . NV_PREFIXLANG . '_' . $module_data . '_family WHERE fid!=' . $fid . ' 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 ' . NV_PREFIXLANG . '_' . $module_data . '_family SET weight=' . $weight . ' WHERE fid=' . $row['fid']; $db->query($sql); } $sql = 'UPDATE ' . NV_PREFIXLANG . '_' . $module_data . '_family SET weight=' . $new_vid . ' WHERE fid=' . $fid; $db->query($sql); nv_fix_fam_order(); $content = 'OK_' . $parentid; } elseif (defined('NV_IS_ADMIN_MODULE') or isset($array_fam_admin[$admin_id][$fid]) and $array_fam_admin[$admin_id][$fid]['add_content'] == 1) { if ($mod == 'inhome' and ($new_vid == 0 or $new_vid == 1)) { $sql = 'UPDATE ' . NV_PREFIXLANG . '_' . $module_data . '_family SET inhome=' . $new_vid . ' WHERE fid=' . $fid; $db->query($sql); $content = 'OK_' . $parentid; } elseif ($mod == 'numlinks' and $new_vid >= 0 and $new_vid <= 20) { $sql = 'UPDATE ' . NV_PREFIXLANG . '_' . $module_data . '_family SET numlinks=' . $new_vid . ' WHERE fid=' . $fid; $db->query($sql); $content = 'OK_' . $parentid; } elseif ($mod == 'newday' and $new_vid >= 0 and $new_vid <= 10) { $sql = 'UPDATE ' . NV_PREFIXLANG . '_' . $module_data . '_family SET newday=' . $new_vid . ' WHERE fid=' . $fid; $db->query($sql); $content = 'OK_' . $parentid; } elseif ($mod == 'viewfam' and $nv_Request->isset_request('new_vid', 'post')) {