/**
 * nv_fix_order()
 *
 * @param integer $parentid
 * @param integer $order
 * @param integer $lev
 * @return
 */
function nv_fix_order($table_name, $parentid = 0, $sort = 0, $lev = 0)
{
    global $db, $db_config, $module_data;
    $sql = 'SELECT id, parentid FROM ' . $table_name . ' WHERE parentid=' . $parentid . ' ORDER BY weight ASC';
    $result = $db->query($sql);
    $array_order = array();
    while ($row = $result->fetch()) {
        $array_order[] = $row['id'];
    }
    $result->closeCursor();
    $weight = 0;
    if ($parentid > 0) {
        ++$lev;
    } else {
        $lev = 0;
    }
    foreach ($array_order as $order_i) {
        ++$sort;
        ++$weight;
        $sql = 'UPDATE ' . $table_name . ' SET weight=' . $weight . ', sort=' . $sort . ', lev=' . $lev . ' WHERE id=' . $order_i;
        $db->query($sql);
        $sort = nv_fix_order($table_name, $order_i, $sort, $lev);
    }
    $numsub = $weight;
    if ($parentid > 0) {
        $sql = "UPDATE " . $table_name . " SET numsub=" . $numsub;
        if ($numsub == 0) {
            $sql .= ",subid=''";
        } else {
            $sql .= ",subid='" . implode(",", $array_order) . "'";
        }
        $sql .= " WHERE id=" . intval($parentid);
        $db->query($sql);
    }
    return $sort;
}
Esempio n. 2
0
                $stmt->bindParam(':weight', $weight, PDO::PARAM_INT);
                $stmt->bindValue(':status', 1, PDO::PARAM_INT);
            } else {
                $stmt = $db->prepare('UPDATE ' . NV_PREFIXLANG . '_' . $module_data . '_cat SET parentid=:parentid, title = :title, alias = :alias, keywords = :keywords, description = :description, descriptionhtml = :descriptionhtml, groups_view = :groups_view WHERE id=' . $row['id']);
            }
            $stmt->bindParam(':parentid', $row['parentid'], PDO::PARAM_INT);
            $stmt->bindParam(':title', $row['title'], PDO::PARAM_STR);
            $stmt->bindParam(':alias', $row['alias'], PDO::PARAM_STR);
            $stmt->bindParam(':keywords', $row['keywords'], PDO::PARAM_STR);
            $stmt->bindParam(':description', $row['description'], PDO::PARAM_STR, strlen($row['description']));
            $stmt->bindParam(':descriptionhtml', $row['descriptionhtml'], PDO::PARAM_STR, strlen($row['descriptionhtml']));
            $stmt->bindParam(':groups_view', $row['groups_view'], PDO::PARAM_STR, strlen($row['groups_view']));
            $exc = $stmt->execute();
            if ($exc) {
                $table_name = NV_PREFIXLANG . '_' . $module_data . '_cat';
                nv_fix_order($table_name);
                nv_del_moduleCache($module_name);
                Header('Location: ' . NV_BASE_ADMINURL . 'index.php?' . NV_LANG_VARIABLE . '=' . NV_LANG_DATA . '&' . NV_NAME_VARIABLE . '=' . $module_name . '&' . NV_OP_VARIABLE . '=' . $op . '&parentid=' . $row['parentid']);
                die;
            }
        } catch (PDOException $e) {
            var_dump($e);
            die;
            trigger_error($e->getMessage());
            die($e->getMessage());
            //Remove this line after checks finished
        }
    }
} elseif ($row['id'] > 0) {
    $lang_module['cat_add'] = $lang_module['cat_edit'];
    $row = $db->query('SELECT * FROM ' . NV_PREFIXLANG . '_' . $module_data . '_cat WHERE id=' . $row['id'])->fetch();