// wurde der entry geaendert? if ($data["entry"] != $fixed_entry) { // gibt den geaenderten entry bereits? $sql = "SELECT entry\n FROM " . $cfg["menued"]["db"]["menu"]["entries"] . "\n WHERE refid = '" . $HTTP_POST_VARS["refid"] . "'\n AND entry = '" . $fixed_entry . "'"; $result1 = $db->query($sql); $test = $db->fetch_array($result, 1); if ($test["entry"] == $fixed_entry) { $ausgaben["form_error"] .= "#(error_dupe)"; } if ($ausgaben["form_error"] == "") { $new_url = make_ebene($_POST["refid"]); if ($new_url == "/") { $new_url = ""; } $new_url .= "/" . $fixed_entry; update_tname($environment["parameter"][1], $new_url); } } } // menu tabellen aenderungen if ($ausgaben["form_error"] == "") { $kick = array("PHPSESSID", "send", "add", "delete", "image", "image_x", "image_y", "form_referer", "new_lang", "lang", "label", "extend", "exturl", "entry"); foreach ($HTTP_POST_VARS as $name => $value) { if (!in_array($name, $kick) && !strstr($name, ")")) { if ($sqla != "") { $sqla .= ", "; } $sqla .= $name . "='" . $value . "'"; } } // Sql um spezielle Felder erweitern
$old_tname = $crc32 . $data["entry"]; #echo $ebene.":".$old_tname."<br>"; $suchmuster = $ebene . "/" . $data["entry"]; $new_tname = $crc32 . $fixed_entry; #echo $ebene.":".$new_tname."<br>"; $ersatz = $ebene . "/" . $fixed_entry; $sql = "UPDATE " . $cfg["db"]["text"]["entries"] . "\n SET tname = '" . $new_tname . "',\n ebene = '" . $ebene . "',\n kategorie = '" . $fixed_entry . "'\n WHERE tname = '" . $old_tname . "';"; if ($debugging["sql_enable"]) { $debugging["ausgabe"] .= "sql: " . $sql . $debugging["char"]; } $result = $db->query($sql); if (!$result) { $ausgaben["form_error"] .= $db->error("#(error_result)<br />"); } // content der unterpunkte aendern (alle sprachen) update_tname($environment["parameter"][1], $suchmuster, $ersatz); } } } // menu tabellen aenderungen if ($ausgaben["form_error"] == "") { $kick = array("PHPSESSID", "send", "add", "delete", "image", "image_x", "image_y", "form_referer", "new_lang", "lang", "label", "extend", "exturl", "entry"); foreach ($HTTP_POST_VARS as $name => $value) { if (!in_array($name, $kick) && !strstr($name, ")")) { if ($sqla != "") { $sqla .= ", "; } $sqla .= $name . "='" . $value . "'"; } } // Sql um spezielle Felder erweitern
function update_tname($refid, $suchmuster = "", $ersatz = "") { global $db, $cfg, $debugging, $ausgaben; $sql = "SELECT mid, refid, entry FROM " . $cfg["db"]["menu"]["entries"] . " WHERE refid ='" . $refid . "'"; $result = $db->query($sql); while ($data = $db->fetch_array($result, 1)) { // aktuelle ebene suchen $ebene = make_ebene($data["refid"]); // eindeutiges suchmuster erstellen #if ( $suchmuster == "" ) { # $suchmuster = $ebene; # $ersatz = substr($ebene,0,strrpos($ebene,"/"))."/".$new; #} // alter tname if ($ebene != "/") { $extend = eCRC($ebene) . "."; } $old_tname = $extend . $data["entry"]; #echo $ebene.":".$old_tname."<br>"; // neuer tname $ebene = str_replace($suchmuster, $ersatz, $ebene); if ($ebene != "/") { $extend = eCRC($ebene) . "."; } $new_tname = $extend . $data["entry"]; #echo $ebene.":".$new_tname."<br>"; $sql = "UPDATE " . $cfg["db"]["text"]["entries"] . "\n SET tname = '" . $new_tname . "',\n ebene = '" . $ebene . "',\n kategorie = '" . $data["entry"] . "'\n WHERE tname = '" . $old_tname . "'"; if ($debugging["sql_enable"]) { $debugging["ausgabe"] .= "sql: " . $sql . $debugging["char"]; } $subresult = $db->query($sql); if (!$subresult) { $ausgaben["form_error"] .= $db->error("#(menu_error)<br />"); } // und das gleiche fuer alle unterpunkte update_tname($data["mid"], $suchmuster, $ersatz); } }
function update_tname($mid, $new_url) { global $db, $cfg, $debugging, $ausgaben; // Neue Rechte werden beim moven oder umbenennen mitgezogen if ($specialvars["security"]["new"] == -1) { $sql = "SELECT tname FROM " . $cfg["menued"]["db"]["content"]["entries"] . " WHERE tname like '" . make_ebene($mid) . "%'"; $result = $db->query($sql); while ($data = $db->fetch_array($result, 1)) { $new_right = str_replace(make_ebene($mid), $new_url, $data["tname"]); $sql_update = "UPDATE " . $cfg["menued"]["db"]["content"]["entries"] . " SET tname ='" . $new_right . "' WHERE tname = '" . $data["tname"] . "'"; $result = $db->query($sql_update); } } $sql = "SELECT mid, refid, entry\n FROM " . $cfg["menued"]["db"]["menu"]["entries"] . "\n WHERE mid ='" . $mid . "'"; $result = $db->query($sql); $data = $db->fetch_array($result, 1); $extend = ""; $old_level = explode("/", make_ebene($data["mid"])); $old_kategorie = array_pop($old_level); $old_ebene = implode("/", $old_level); if (count($old_level) > 1) { $extend = eCRC($old_ebene) . "."; } $old_tname = $extend . $data["entry"]; // neuer tname $extend = ""; $new_level = explode("/", $new_url); $new_kategorie = array_pop($new_level); $new_ebene = implode("/", $new_level); if (count($new_level) > 1) { $extend = eCRC($new_ebene) . "."; } $new_tname = $extend . $new_kategorie; // aktualisierung der content-rechte $old_rights_url = $old_ebene . "/" . $old_kategorie; $new_rights_url = $new_ebene . "/" . $new_kategorie; $sql_rights = "UPDATE " . $cfg["menued"]["db"]["content"]["entries"] . "\n SET tname = '" . $new_rights_url . "'\n WHERE tname = '" . $old_rights_url . "'"; $result_rights = $db->query($sql_rights); // aktualisierung der content-rechte $sql = "UPDATE " . $cfg["menued"]["db"]["text"]["entries"] . "\n SET tname = '" . $new_tname . "',\n ebene = '" . $new_ebene . "',\n kategorie = '" . $new_kategorie . "'\n WHERE tname = '" . $old_tname . "'"; $subresult = $db->query($sql); // view-check $old_view_ebene = $old_ebene . "/" . $old_kategorie . "/view"; $new_view_ebene = $new_ebene . "/" . $new_kategorie . "/view"; $sql = "SELECT *\n FROM " . $cfg["menued"]["db"]["text"]["entries"] . "\n WHERE tname LIKE '" . eCRC($old_view_ebene) . "%'"; $result = $db->query($sql); while ($data = $db->fetch_array($result, 1)) { $sql = "UPDATE " . $cfg["menued"]["db"]["text"]["entries"] . "\n SET tname='" . str_replace(eCRC($old_view_ebene), eCRC($new_view_ebene), $data["tname"]) . "'\n WHERE tname='" . $data["tname"] . "'"; $subresult = $db->query($sql); } $sql = "SELECT mid, refid, entry\n FROM " . $cfg["menued"]["db"]["menu"]["entries"] . "\n WHERE refid ='" . $mid . "'"; $result = $db->query($sql); while ($data = $db->fetch_array($result, 1)) { $next_item = $new_ebene . "/" . $new_kategorie . "/" . $data["entry"]; update_tname($data["mid"], $next_item); } }