예제 #1
0
    echo nv_admin_theme($contents);
    include NV_ROOTDIR . "/includes/footer.php";
    exit;
} elseif ($ac == 'weight') {
    $value = $nv_Request->get_int('value', 'post', 0);
    $fieldid = $nv_Request->get_int('fieldid', 'post', 0);
    $data = array();
    if ($fieldid > 0) {
        if (empty($global_array_field[$fieldid])) {
            die('stop!!');
        } else {
            $data = $global_array_field[$fieldid];
        }
    }
    $query = "SELECT fieldid FROM " . NV_PREFIXLANG . "_" . $module_data . "_field WHERE fieldid!=" . $fieldid . " AND parentid=" . $data['parentid'] . " ORDER BY weight ASC";
    $result = $db->query($query);
    $weight = 0;
    while ($row = $result->fetch()) {
        $weight++;
        if ($weight == $value) {
            $weight++;
        }
        $sql = "UPDATE " . NV_PREFIXLANG . "_" . $module_data . "_field SET weight='" . $weight . "' WHERE fieldid='" . intval($row['fieldid']) . "'";
        $db->query($sql);
    }
    $sql = "UPDATE " . NV_PREFIXLANG . "_" . $module_data . "_field SET weight='" . $value . "' WHERE fieldid='" . intval($fieldid) . "'";
    $db->query($sql);
    nv_fix_field_order();
    nv_insert_logs(NV_LANG_DATA, $module_name, 'change weight', $value, $admin_info['userid']);
    die($data['parentid']);
}
function nv_fix_field_order($parentid = 0, $order = 0, $lev = 0)
{
    global $db, $db_config, $lang_module, $lang_global, $module_name, $module_data, $op;
    $query = "SELECT fieldid, parentid FROM " . NV_PREFIXLANG . "_" . $module_data . "_field WHERE parentid='" . $parentid . "' ORDER BY weight ASC";
    $result = $db->query($query);
    $array_field_order = array();
    while ($row = $result->fetch()) {
        $array_field_order[] = $row['fieldid'];
    }
    $db->sqlreset();
    $weight = 0;
    if ($parentid > 0) {
        $lev++;
    } else {
        $lev = 0;
    }
    foreach ($array_field_order as $fieldid_i) {
        $order++;
        $weight++;
        $sql = "UPDATE " . NV_PREFIXLANG . "_" . $module_data . "_field SET weight='" . $weight . "', orders='" . $order . "', lev='" . $lev . "' WHERE fieldid='" . intval($fieldid_i) . "'";
        $db->query($sql);
        $order = nv_fix_field_order($fieldid_i, $order, $lev);
    }
    $numsubfield = $weight;
    if ($parentid > 0) {
        $sql = "UPDATE " . NV_PREFIXLANG . "_" . $module_data . "_field SET numsubfield='" . $numsubfield . "'";
        if ($numsubfield == 0) {
            $sql .= ",subfieldid=''";
        } else {
            $sql .= ",subfieldid='" . implode(",", $array_field_order) . "'";
        }
        $sql .= " WHERE fieldid='" . intval($parentid) . "'";
        $db->query($sql);
    }
    return $order;
}