function rss_walk_path($refid) { global $db, $environment, $dataloop, $cfg; // content dieser ebene suchen $ebene = make_ebene($refid); if (preg_match("/^\\/aktuell/", $ebene)) { rss_get_content($ebene, -1); } else { rss_get_content($ebene); } // das menue durchgehen $sql = "SELECT *\n FROM " . $cfg["rss"]["db"]["menu"]["entries"] . "\n JOIN " . $cfg["rss"]["db"]["lang"]["entries"] . "\n ON (" . $cfg["rss"]["db"]["menu"]["entries"] . "." . $cfg["rss"]["db"]["menu"]["key"] . "=" . $cfg["rss"]["db"]["lang"]["entries"] . "." . $cfg["rss"]["db"]["menu"]["key"] . ")\n WHERE " . $cfg["rss"]["db"]["menu"]["ref"] . "=" . $refid . "\n AND " . $cfg["rss"]["db"]["lang"]["lang"] . "='" . $environment["language"] . "'\n AND (" . $cfg["rss"]["db"]["menu"]["hide"] . "='0'\n OR " . $cfg["rss"]["db"]["menu"]["hide"] . " IS NULL)"; $result = $db->query($sql); while ($data = $db->fetch_array($result, 1)) { $ebene = make_ebene($data["mid"]); rss_walk_path($data["mid"]); } }
function rss_walk_path($refid, $hide = 0, $sub = 0) { global $db, $environment, $dataloop, $cfg; // content dieser ebene suchen $ebene = make_ebene($refid); // das menue durchgehen $sql = "SELECT *\n FROM " . $cfg["xml-sm"]["db"]["menu"]["entries"] . "\n JOIN " . $cfg["xml-sm"]["db"]["lang"]["entries"] . "\n ON (" . $cfg["xml-sm"]["db"]["menu"]["entries"] . "." . $cfg["xml-sm"]["db"]["menu"]["key"] . "=" . $cfg["xml-sm"]["db"]["lang"]["entries"] . "." . $cfg["xml-sm"]["db"]["menu"]["key"] . ")\n WHERE " . $cfg["xml-sm"]["db"]["menu"]["ref"] . "=" . $refid . "\n AND " . $cfg["xml-sm"]["db"]["lang"]["lang"] . "='" . $environment["language"] . "'\n ORDER BY sort"; // echo "<pre>".$sql."</pre>"; $result = $db->query($sql); while ($data = $db->fetch_array($result, 1)) { if ($hide == 0 && $data["hide"] == -1) { continue; } $ebene = make_ebene($data["mid"]); if (preg_match("/\\/\$/", $ebene)) { $url = $ebene . "index.html"; } else { $url = $ebene . ".html"; } // aus content aenderungsdatum holen $array = explode("/", $ebene); $kategorie = array_pop($array); if (count($array) > 1) { $ebene = implode("/", $array); $tname = eCRC($ebene) . "." . $kategorie; } else { $ebene = ""; $tname = $kategorie; } $sql = "SELECT *\n FROM " . $cfg["xml-sm"]["db"]["text"]["entries"] . "\n WHERE tname='" . $tname . "'\n AND label='" . $cfg["xml-sm"]["def_label"] . "'\n AND lang='" . $environment["language"] . "'\n AND status=1"; $res_content = $db->query($sql); $data_content = $db->fetch_array($res_content, 1); $date = $data_content["changed"]; preg_match("/[0-9]{4}-[0-9]{2}-[0-9]{2}/", $data_content["changed"], $match); if (trim($match[0]) != "") { $date = $match[0]; } if (trim((string) $date) == "") { $date = date("Y-m-d", time() - 60 * 60 * 24); } // <changefreq> if (preg_match("/^\\/aktuell/", $url) || preg_match("/^\\/index/", $url)) { $changefreq = "daily"; $priority = "1.0"; } else { $changefreq = "monthly"; $priority = "0.5"; } // $ebene = make_ebene($data["mid"]); $dataloop["urls"][$url] = array("url" => $url, "pubDate" => $date, "changefreq" => $changefreq, "priority" => $priority); if (preg_match("/^\\/aktuell/", $url)) { $sql = "SELECT *\n FROM " . $cfg["xml-sm"]["db"]["text"]["entries"] . "\n WHERE tname LIKE '" . eCRC(str_replace(".html", "", $url)) . "%'\n AND label='" . $cfg["xml-sm"]["def_label"] . "'\n AND lang='" . $environment["language"] . "'\n AND status=1\n ORDER BY changed DESC"; $res_content = $db->query($sql); while ($data_content = $db->fetch_array($res_content, 1)) { if (!is_numeric($data_content["kategorie"])) { continue; } if (preg_match("#\\[SORT\\](.*)\\[/SORT\\]#U", $data["content"], $match)) { $date_start = $match[1]; if (preg_match("/^([0-9]{4})-([0-9]{2})-([0-9]{2})/", $date_start, $date_match)) { $timestamp_start = mktime("0", "0", "0", $date_match[2], $date_match[3], $date_match[1]); } else { // falls nicht angegeben, ganz frueher annehmen $timestamp_start = mktime(0, 0, 0, 1, 1, 1971); } if ($timestamp_start > mktime()) { continue; } } $changefreq = "never"; $priority = "0.7"; $url_sub = str_replace(".html", "", $url) . "/" . $data_content["kategorie"] . ".html"; $date = $data_content["changed"]; preg_match("/[0-9]{4}-[0-9]{2}-[0-9]{2}/", $data_content["changed"], $match); if (trim($match[0]) != "") { $date = $match[0]; } if (trim((string) $date) == "") { $date = date("Y-m-d", time() - 60 * 60 * 24); } $dataloop["urls"][$url_sub] = array("url" => $url_sub, "pubDate" => $date, "changefreq" => $changefreq, "priority" => $priority); } } rss_walk_path($data["mid"]); } }