function content($line, $tname) { global $db, $debugging, $pathvars, $specialvars, $environment, $defaults, $ausgaben, $rechte; if ($specialvars["crc32"] == -1) { if ($environment["ebene"] != "" && $tname == $environment["kategorie"]) { $tname = crc32($environment["ebene"]) . "." . $tname; if ($debugging["html_enable"]) { $debugging["ausgabe"] .= "crc32 tname \"" . $tname . "\" forced!!!" . $debugging["char"]; } } } else { // ist das eine sub kategorie ? if ($environment["subkatid"] != "" && $tname == $environment["katid"]) { $tname = $tname . "." . $environment["subkatid"]; if ($debugging["html_enable"]) { $debugging["ausgabe"] .= "sub tname \"" . $tname . "\" forced!!!" . $debugging["char"]; } #$dbtname = $tname; } } while (strpos($line, "#(") !== false || strpos($line, "g(") !== false) { // wo beginnt die marke $labelbeg = strpos($line, "#("); $art = "#("; $bez = "# ("; $dbtname = $tname; if ($labelbeg === false) { $labelbeg = strpos($line, "g("); $art = "g("; $bez = "g ("; $dbtname = "global"; } // wo endet die marke (wichtig der offset!) $labelend = strpos($line, ")", $labelbeg); // wie lang ist die marke $labellen = $labelend - $labelbeg; // token name extrahieren $label = substr($line, $labelbeg + 2, $labellen - 2); if (strpos($label, ",") !== false) { break; } // javascript fix $sql = "SELECT html, content FROM " . SITETEXT . " WHERE tname='" . $dbtname . "' AND lang='" . $environment["language"] . "' AND label='{$label}'"; #if ( $debugging["html_enable"] ) $debugging["ausgabe"] .= "sql: ".$sql.$debugging["char"]; $result = $db->query($sql); $row = $db->fetch_row($result); if (!is_array($row)) { // wenn "aktuelle sprache" = "default sprache" ueberfluessige fehlermeldung nicht anzeigen! if ($environment["language"] != $specialvars["default_language"]) { if ($debugging["html_enable"]) { $debugging["ausgabe"] .= "Language: \"" . $environment["language"] . "\" for #(" . $label . ") in template \"" . $dbtname . "\" not found using default: \"" . $specialvars["default_language"] . "\"" . $debugging["char"]; } } $sql = "SELECT html, content FROM " . SITETEXT . " WHERE tname='{$dbtname}' AND lang='" . $specialvars["default_language"] . "' AND label='{$label}'"; $result = $db->query($sql); $row = $db->fetch_row($result); } if ($row[1] == "") { if ($debugging["html_enable"]) { $debugging["ausgabe"] .= "Language: Uuuuups no default language \"" . $specialvars["default_language"] . "\" for #(" . $label . ") in template \"" . $dbtname . "\" found. Giving up!" . $debugging["char"]; } } $database = $db->getDb(); if (is_array($_SESSION["dbzugriff"])) { // admin darf alles in seiner db !! if (in_array($database, $_SESSION["dbzugriff"]) && $rechte[$specialvars["security"]["overwrite"]] == -1) { $dbzugriff = -1; $katzugriff = -1; // sperre fuer bestimmte templates } elseif (in_array($tname, (array) $specialvars["security"]["nochk"])) { $katzugriff = FALSE; $dbzugriff = FALSE; // hier erfolgt der check wenn man kein admin ist und bei nicht gesperrten templates } else { if (right_check("-1", $environment["ebene"], $environment["kategorie"], $database) != "") { $dbzugriff = -1; $katzugriff = -1; } else { $katzugriff = FALSE; $dbzugriff = FALSE; } } } else { $dbzugriff = -1; // admin darf alles if ($rechte[$specialvars["security"]["overwrite"]] == -1) { $katzugriff = -1; // sperre fuer bestimmte templates } elseif (in_array($tname, (array) $specialvars["security"]["nochk"])) { $katzugriff = FALSE; // hier erfolgt der check wenn man kein admin ist und bei nicht gesperrten templates } else { if (right_check("-1", $environment["ebene"], $environment["kategorie"], $database) != "") { $katzugriff = -1; } else { $katzugriff = FALSE; } } } $replace = $row[1]; // wenn content nicht in html ist und deaktiviert wurde if ($row[0] != -1 && $specialvars["denyhtml"] == -1) { // html killer :) $pattern = "<[\\!\\/a-zA-Z].{0,}>"; while (preg_match("/" . $pattern . "/", $replace, $tag)) { $replace = str_replace($tag[0], " - html gelöscht! -", $replace); } } // cms edit link einblenden if ($specialvars["editlock"] == False) { // erlaubt wenn content_right nicht gesetzt und cms_edit = -1 if ($rechte["cms_edit"] == -1 && $specialvars["security"]["enable"] != -1 || $specialvars["security"]["enable"] == -1 && $katzugriff == -1 && $dbzugriff == -1) { // konvertieren ? if ($specialvars["wysiwyg"] == "" && $row[0] == -1) { $convert = ",,tag"; $signal = "c"; } elseif ($specialvars["wysiwyg"] != "" && $row[0] != -1) { $convert = ",,html"; $signal = "c"; } else { $convert = ""; $signal = "e"; } $editurl = $pathvars["virtual"] . "/cms/edit," . $db->getDb() . "," . $dbtname . "," . $label; if ($defaults["cms-tag"]["signal"] == "") { $defaults["cms-tag"]["signal"] = "<img src=\"/images/default/cms-tag-"; $defaults["cms-tag"]["/signal"] = ".png\" width=\"4\" height=\"4\" border=\"0\" alt=\"Bearbeiten\" />"; } // wenn es kein value, alt, title und status in der zeile gibt $vorher = substr($line, $labelbeg - 20, 20); if (!strpos($vorher, "value=\"") && !strpos($vorher, "alt=\"") && !strpos($vorher, "title=\"") && !strpos($vorher, "status='")) { $replace .= " <a target=\"_top\" href=\"" . $editurl . $convert . ".html\">" . $defaults["cms-tag"]["signal"] . $signal . $defaults["cms-tag"]["/signal"] . "</a>"; } else { #$line = $line."# (".$label.") <a target=\"_top\" href=\"".$editurl.$convert.".html\">".$defaults["cms-tag"]["signal"].$signal.$defaults["cms-tag"]["/signal"]."</a><br />\n"; #$ausgaben["inaccessible"] .= "# (".$label.") #(".$label.")<a target=\"_top\" href=\"".$editurl.$convert.".html\">".$defaults["cms-tag"]["signal"].$signal.$defaults["cms-tag"]["/signal"]."</a><br />\n"; $ausgaben["inaccessible"] .= $bez . $label . ") " . $art . $label . ")<br />\n"; } } } // wenn content nicht in html ist if ($row[0] != -1) { // intelligenten link tag bearbeiten $replace = intelilink($replace); // neues generelles tagreplace $replace = tagreplace($replace); // newlines nach br wandeln (muss zuletzt gemacht werden) $replace = nlreplace($replace); } // marke ersetzen if (strpos($line, $art) !== false) { $line = str_replace($art . $label . ")", $replace, $line); } } return $line; }
function sitemap($refid, $script_name, $art = "", $modify = "", $self = "") { global $hidedata, $design, $opentree, $treelink, $ausgaben, $cfg, $environment, $db, $pathvars, $specialvars, $rechte, $buffer, $positionArray; if (!$ausgaben["path"]) { $ausgaben["path"] = ""; } $where = ""; switch ($art) { case menued: $flapmenu = -1; $aktionlinks = -1; $hidestatus = -1; $sortinfo = -1; break; case select: $flapmenu = -1; $radiorefid = -1; $hidestatus = -1; break; case wizard: $flapmenu = -1; $aktionlinks = -1; $where = "AND (" . $cfg[$script_name]["db"]["menu"]["entries"] . ".hide IS NULL OR " . $cfg[$script_name]["db"]["menu"]["entries"] . ".hide IN ('','0'))"; break; case sitemap: $sitemap = -1; $where = "AND (" . $cfg[$script_name]["db"]["menu"]["entries"] . ".hide IS NULL OR " . $cfg[$script_name]["db"]["menu"]["entries"] . ".hide IN ('','0'))"; break; default: } $sql = "SELECT " . $cfg[$script_name]["db"]["menu"]["entries"] . ".mid,\n " . $cfg[$script_name]["db"]["menu"]["entries"] . ".entry,\n " . $cfg[$script_name]["db"]["menu"]["entries"] . ".refid,\n " . $cfg[$script_name]["db"]["menu"]["entries"] . ".level,\n " . $cfg[$script_name]["db"]["menu"]["entries"] . ".sort,\n " . $cfg[$script_name]["db"]["menu"]["entries"] . ".hide,\n " . $cfg[$script_name]["db"]["lang"]["entries"] . ".lang,\n " . $cfg[$script_name]["db"]["lang"]["entries"] . ".label,\n " . $cfg[$script_name]["db"]["lang"]["entries"] . ".exturl\n FROM " . $cfg[$script_name]["db"]["menu"]["entries"] . "\n INNER JOIN " . $cfg[$script_name]["db"]["lang"]["entries"] . "\n ON " . $cfg[$script_name]["db"]["menu"]["entries"] . ".mid = " . $cfg[$script_name]["db"]["lang"]["entries"] . ".mid\n WHERE (" . $cfg[$script_name]["db"]["menu"]["entries"] . ".refid=" . $refid . ")\n AND (" . $cfg[$script_name]["db"]["lang"]["entries"] . ".lang='" . $environment["language"] . "')\n " . $where . "\n ORDER BY " . $cfg[$script_name]["db"]["menu"]["order"] . ";"; $result = $db->query($sql); $count = $db->num_rows($result); while ($array = $db->fetch_array($result, 1)) { // aufbau des pfads if ($refid == 0 || in_array($refid, $positionArray) || $sitemap == -1) { $buffer["pfad"] .= "/" . $array["entry"]; $buffer["pfad_label"] .= "/" . $array["label"]; } // hide-status signalisieren $class_hide = "\"\""; if ($hidestatus == -1) { if ($array["hide"] == -1) { $class_hide = "\"red\""; } } // menu-aufbau ala konqueror oder zum klappen if ($flapmenu == -1) { // zweiten parameter mitziehen wenn er gesetzt ist if ($environment["parameter"][2] != "") { $move_parameter = "," . $environment["parameter"][2]; } else { $move_parameter = ""; } // alle punkte die nicht im array sind nicht anzeigen if ($refid != 0 && !in_array($refid, $positionArray)) { continue; } else { // menu auf werner-art, hier auch noch den gesamten ast ausblenden ! // nur noch die mit der refid laut $_SESSION if ($design == "modern") { if ($array["refid"] != $_SESSION["menued_id"]) { if ($_SESSION["menued_id"] != "" || $array["refid"] != 0) { $buffer[$refid]["display"] = "none"; } } // back-link bauen if ($array["mid"] == $_SESSION["menued_id"]) { $ausgaben["path"] = $buffer["pfad_label"]; if ($array["refid"] == 0) { $hidedata["back"]["link"] = $cfg[$script_name]["basis"] . "/" . $environment["parameter"][0] . "," . $array["refid"] . $move_parameter . ".html\""; } else { $hidedata["back"]["link"] = $cfg[$script_name]["basis"] . "/" . $environment["parameter"][0] . "," . $array["refid"] . $move_parameter . ".html\""; } } } } // schauen ob unterpunkte vorhanden ! $sql = "SELECT * FROM " . $cfg[$script_name]["db"]["menu"]["entries"] . " WHERE refid=" . $array["mid"]; $result_in = $db->query($sql); $count_in = $db->num_rows($result_in); // sind unterpunkte vorhanden + oder - einblenden if ($count_in > 0 && $array["mid"] != $environment["parameter"][2]) { $copy = $positionArray; array_shift($copy); is_array($opentree) && in_array($array["mid"], $opentree) ? $sign = "-" : ($sign = "+"); $href = "<a class=" . $class_hide . " href=\"" . $cfg[$script_name]["basis"] . "/" . $environment["parameter"][0] . "," . $array["mid"] . $move_parameter . ".html\">" . $array["label"] . "+</a>"; } else { $href = "<span class=" . $class_hide . ">" . $array["label"] . "</span>"; } // hier wird komplett geoeffnet } elseif ($sitemap == -1) { $href = "<a href=\"" . $pathvars["virtual"] . $buffer["pfad"] . ".html\">" . $array["label"] . "</a>"; } else { $href = $array["label"]; } // schaltflaechen erstellen if ($aktionlinks == -1) { // hier der alte rechte-check ! fällt weg ! if ($specialvars["security"]["enable"] == -1) { // kategorie u. ebene herausfinden $kategorie2check = substr($buffer["pfad"], 0, strpos($buffer["pfad"], "/")); $ebene2check = substr($buffer["pfad"], strpos($buffer["pfad"], "/")); // hier findet der rechte-check statt if (right_check("-1", $ebene2check, $kategorie2check != "") || $rechte[$cfg[$script_name]["right_admin"]] == -1) { $right = -1; } else { $right = ""; } } $aktion = ""; if (is_array($modify)) { foreach ($modify as $name => $value) { if ($specialvars["security"]["new"] == -1) { if (!priv_check(make_ebene($array["mid"]), $value[2], $specialvars["dyndb"]) && !priv_check(make_ebene($array["mid"]), $value[2])) { continue; } } else { if (!$rechte[$cfg[$script_name]["right_admin"]] == -1 && $right != "-1") { continue; } } if ($name == "up" || $name == "down") { if ($specialvars["security"]["new"] == -1) { if (!priv_check(make_ebene($array["refid"]), $value[2], $specialvars["dyndb"]) && !priv_check(make_ebene($array["mid"]), $value[2])) { continue; } } else { $kategorie2check = substr(make_ebene($array["refid"]), 0, strpos(make_ebene($array["refid"]), "/")); $ebene2check = substr(make_ebene($array["refid"]), strpos(make_ebene($array["refid"]), "/")); if (!$rechte[$cfg[$script_name]["right_admin"]] == -1 && !right_check("-1", $ebene2check, $kategorie2check != "")) { continue; } } } if ($name == "rights") { if ($specialvars["security"]["new"] == -1) { $aktion .= "<a href=\"" . $pathvars["virtual"] . "/" . $cfg[$script_name]["subdir"] . "/righted/edit," . $array["mid"] . ".html\"><img style=\"float:right\" src=\"" . $cfg[$script_name]["iconpath"] . $name . ".png\" alt=\"" . $value[1] . "\" title=\"" . $value[1] . "\" width=\"24\" height=\"18\"></img></a>"; } elseif ($specialvars["security"]["enable"] == -1) { $aktion .= "<a href=\"" . $cfg[$script_name]["basis"] . "/" . $value[0] . $name . "," . $array["mid"] . "," . $array["refid"] . ".html\"><img style=\"float:right\" src=\"" . $cfg[$script_name]["iconpath"] . $name . ".png\" alt=\"" . $value[1] . "\" title=\"" . $value[1] . "\" width=\"24\" height=\"18\"></img></a>"; } continue; } // anzeige der sortierung if ($sortinfo != "") { if ($name == "sort") { $aktion .= "<span title=\"" . $value[1] . "\" style=\"float:right\">(" . $array["sort"] . ")</span>"; continue; } } // anzeige des icons zur content-seite if ($name == "jump") { $aktion .= "<a href=\"" . $pathvars["virtual"] . $buffer["pfad"] . ".html" . $ankerlnk . "\"><img style=\"float:right\" src=\"" . $cfg[$script_name]["iconpath"] . $name . ".png\" alt=\"" . $value[1] . "\" title=\"" . $value[1] . "\" width=\"24\" height=\"18\"></img></a>"; continue; } // beim move ausnahme! if ($name == "move") { $aktion .= "<a href=\"" . $cfg[$script_name]["basis"] . "/" . $value[0] . $name . ",0," . $array["mid"] . ".html\"><img style=\"float:right\" src=\"" . $cfg[$script_name]["iconpath"] . $name . ".png\" alt=\"" . $value[1] . "\" title=\"" . $value[1] . "\" width=\"24\" height=\"18\"></img></a>"; } else { $aktion .= "<a href=\"" . $cfg[$script_name]["basis"] . "/" . $value[0] . $name . "," . $array["mid"] . "," . $array["refid"] . ".html\"><img style=\"float:right\" src=\"" . $cfg[$script_name]["iconpath"] . $name . ".png\" alt=\"" . $value[1] . "\" title=\"" . $value[1] . "\" width=\"24\" height=\"18\"></img></a>"; } } } } // wo geht der href hin? if ($array["exturl"] != "") { $href = "<a class=" . $class_hide . " href=" . $array["exturl"] . ">" . $array["label"] . "</a>"; } // in den buffer schreiben wieviel unterpunkte fuer jeweiligen überpunkt vorhanden sind ! if (!isset($buffer[$refid]["zaehler"])) { $buffer[$refid]["zaehler"] = $count; if ($buffer[$refid]["display"] != "none") { // beim ersten aufruf eine class menued setzen if ($self == "") { $tree .= "<ul class=\"menued\">\n"; if ($art == "select" && priv_check(make_ebene(0), $cfg["menued"]["modify"]["move"][2], $specialvars["dyndb"])) { $tree .= "<li><input type=\"radio\" name=\"refid\" value=\"" . $refid . "\" />#(root)</li>"; } } else { if ($design == "modern") { $tree .= "<ul class=\"menued\">\n"; } else { $tree .= "<ul>\n"; } } } } // refid radio button if ($radiorefid != "") { if ($array["mid"] == $environment["parameter"][2] || $specialvars["security"]["new"] == -1 && !priv_check(make_ebene($array["mid"]), $cfg["menued"]["modify"]["move"][2])) { $radio_disabled = " disabled"; } else { $radio_disabled = ""; } $radiobutton = "<input type=\"radio\" name=\"refid\" " . $radio_disabled . " value=\"" . $array["mid"] . "\" />"; } // listenpunkt schreiben if ($buffer[$refid]["display"] != "none") { $tree .= "<li>" . $aktion . $radiobutton . $href; } // funktionsaufruf $tree .= sitemap($array["mid"], $script_name, $art, $modify, -1); // abschliessendes li anbringen if ($buffer[$refid]["display"] != "none") { $tree .= "</li>\n"; } // abschliessendes ul anbringen u. pfad kuerzen if (isset($buffer[$refid]["zaehler"])) { // pfad kürzen $buffer["pfad"] = substr($buffer["pfad"], 0, strrpos($buffer["pfad"], "/")); $buffer["pfad_label"] = substr($buffer["pfad_label"], 0, strrpos($buffer["pfad_label"], "/")); // zaehler 1 zurücksetzen $buffer[$refid]["zaehler"] = $buffer[$refid]["zaehler"] - 1; // ul anbringen wenn zaehler bei 0 if ($buffer[$refid]["zaehler"] == 0 && ($art == "sitemap" || $refid == $_SESSION["menued_id"])) { $tree .= "</ul>\n"; } } } return $tree; }