Code: Alles auswählen
<?
ob_start();
include("config.php");
include($ContenidoPath."inc/config.php");
include($ContenidoPath.$cfgPathInc."cfg_sql.inc.php");
include($ContenidoPath.$cfgPathInc."cfg_language_".$language.".inc.php");
include($ContenidoPath.$cfgPathInc."fnc_general.inc.php");
require_once ("Cache/Output.php");
//Ein neues Cacheobjekt instantiieren.
//Optionen wie üblich
$outputcache=new Cache_Output("file",array("cache_dir"=>"cache/"));
//Eine eindeutige ID für diese Seite generieren.
//Wenn unsere Seite von Post-Variablen oder Cookies abhängig ist einfach hier mit angeben
//generateID() nimmt beliebige Variablen, also ginge ein Array hier auch.
$id=$outputcache->generateID(array("file" => $PHP_SELF,
"get" => $HTTP_GET_VARS,
"post" => $HTTP_POST_VARS,
"cookie" => $HTP_COOKIE_VARS));
//Seiteninhalt aus dem Cache holen oder Outputcache starten
if($output=$outputcache->start($id)){
//Die Seite ist schon im Cache.
//$content ausgeben und Script beenden.
echo $output;
die();
}
page_open(
array("sess" => "Contenido_Frontend_Session",
"auth" => "Contenido_Frontend_Challenge_Crypt_Auth",
"perm" => "Contenido_Perm"));
error_reporting (E_ALL-E_NOTICE);
$db = new DB_Contenido;
if (!$client) die ("Es wurde kein client angegeben.");
if (!$lang) {$sql = "SELECT A.idlang FROM $cfgTab_clients_lang AS A, $cfgTab_lang AS B WHERE idclient='$client' AND A.idlang=B.idlang AND B.active='1' LIMIT 0,1";
$db->query($sql);
if ($db->next_record()) {$lang = $db->f("idlang");}
else die ("Es ist keine Sprache vorhanden oder aktiv.");}
// --------------------------------------------------------------------- //
// Gruppen einlesen //
$sql = "SELECT A.idcat, A.parentid, A.preid, A.postid, B.name, B.public, C.level FROM $cfgTab_cat AS A, $cfgTab_cat_lang AS B, $cfgTab_cat_tree AS C WHERE A.idcat=B.idcat AND B.idcat=C.idcat AND A.idclient='$client' AND B.idlang='$lang' AND B.visible='1'";
$db->query($sql);
while($db->next_record()){
$con_tree[$db->f("idcat")][parent] = $db->f("parentid");
$con_tree[$db->f("idcat")][preid] = $db->f("preid");
$con_tree[$db->f("idcat")][postid] = $db->f("postid");
$con_tree[$db->f("idcat")][titel] = $db->f("name");
$con_tree[$db->f("idcat")][public] = $db->f("public");
$con_tree[$db->f("idcat")][level] = $db->f("level");
$con_tree[$db->f("idcat")][link] = $sess->url("front_content.php?client=".$client."&lang=".$lang."&parent=".$db->f("parentid")."&idcat=".$db->f("idcat")."");
if($db->f("idcat") > $con_tree_max){$con_tree_max = $db->f("idcat");}
};
// Seiten einlesen //
$sql = "SELECT A.idcat, A.idside, A.is_start, B.title, B.summary, C.public FROM $cfgTab_cat_side AS A, $cfgTab_side_lang AS B, $cfgTab_cat_lang AS C, $cfgTab_cat AS D WHERE A.idside=B.idside AND A.idcat=C.idcat AND C.idcat=D.idcat AND B.online='1' AND C.visible='1' AND D.idclient='$client'";
$db->query($sql);
while($db->next_record()){
$con_side[$db->f("idcat")][$db->f("idside")][idcat] = $db->f("idcat");
$con_side[$db->f("idcat")][$db->f("idside")][idside] = $db->f("idside");
$con_side[$db->f("idcat")][$db->f("idside")][is_start] = $db->f("is_start");
$con_side[$db->f("idcat")][$db->f("idside")][titel] = $db->f("title");
$con_side[$db->f("idcat")][$db->f("idside")][summary] = $db->f("summary");
$con_side[$db->f("idcat")][$db->f("idside")][public] = $db->f("public");
$con_side[$db->f("idcat")][$db->f("idside")][link] = $sess->url("front_content.php?client=".$client."&lang=".$lang."&idcat=".$db->f("idcat")."&idside=".$db->f("idside")."");
};
// --------------------------------------------------------------------- //
if (!$idcatside) {
if (!$idside) {
if (!$idcat) {
$sql = "SELECT idside, B.idcat FROM $cfgTab_cat_side AS A, $cfgTab_cat_tree AS B, $cfgTab_cat AS C WHERE A.idcat=B.idcat AND B.idcat=C.idcat AND is_start='1' AND idclient='$client' ORDER BY idtree";
$db->query($sql);
if ($db->next_record()) {
$idside = $db->f("idside");
$idcat = $db->f("idcat");
} else {
die ("Keine Startseite in dieser Kategorie vorhanden.");
}
} else {
$sql = "SELECT idside FROM $cfgTab_cat_side WHERE idcat='$idcat' AND is_start='1'";
$db->query($sql);
if ($db->next_record()) {
$idside = $db->f("idside");
} else {
die ("Keine Startseite in dieser Kategorie vorhanden.");
}
}
}
} else {
$sql = "SELECT idcat, idside FROM $cfgTab_cat_side WHERE idcatside='$idcatside'";
$db->query($sql);
$db->next_record();
$idcat = $db->f("idcat");
$idside = $db->f("idside");
}
$sql = "SELECT * FROM $cfgTab_code AS A, $cfgTab_cat_side AS B WHERE A.idcatside=B.idcatside AND B.idcat='$idcat' AND B.idside='$idside' AND A.idlang='$lang'";
$db->query($sql);
if ($db->next_record()) {
$code = $db->f("code");
} else {
$code = "echo \"No code available.\";";
}
$idcatside = $db->f("idcatside");
//************ check for public ****************
$sql = "SELECT public FROM $cfgTab_cat_lang WHERE idcat='$idcat' AND idlang='$lang' ";
$db->query($sql);
$db->next_record();
$public = $db->f("public");
if ($public == 0) {
// echo "Diese Kategorie ist <b>geschützt</b> .....";
$auth->login_if($auth->auth["uid"] == "nobody");
} else {
// echo "Diese Kategorie ist <b>öffentlich</b>";
}
//************ update 'stat'-table ****************
$sql = "SELECT visited FROM $cfgTab_stat WHERE idcatside='$idcatside' AND idlang='$lang' ";
$db->query($sql);
$db->next_record();
$new_visited = $db->f("visited") + 1;
$sql = "UPDATE $cfgTab_stat SET visited='$new_visited' WHERE idcatside='$idcatside' AND idlang='$lang' ";
$db->query($sql);
$sql = "SELECT online, redirect, redirect_url FROM $cfgTab_side_lang WHERE idside='$idside' AND idlang=$lang";
$db->query($sql);
$db->next_record();
$online = $db->f("online");
$redirect = $db->f("redirect");
$redirect_url = $db->f("redirect_url");
if ($online) {
//Redirect, if User had chose this opinion in the sideproperties
if($redirect == '1' && $redirect_url != ''){
header ("Location: $redirect_url");
exit;
}
else{
eval($code);
}
} else {
echo "Seite ist nicht online.";
}
page_close();
//$output = ob_get_contents();
//Die Cache-Klasse laden. Die Basisklasse wird automatisch hinzugeladen
$outputcache->endPrint();
$output = ob_get_contents();
ob_end_clean();
echo $output;
?>
Macht einen benchmarktest und seht selbst.
Viel Spass
Gruss ekke
PS, nach Anregung von idea-tec editiert:
Übersicht und dann Download Latest klicken.
http://pear.php.net/package-info.php?pacid=40