/** * 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; }
$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();