
index.php
[code]<?php
// Sitzug Starten
session_start();
// Erstellung einer Datenbankverbindung
require_once( „files/dbcontroler.php“ );
$db = new dbcontroler( „files/config.php“, $prefix );
define( „THIS_SELF“, „index.php?“ );
// Laden von Dateien
$files = $db->get( $prefix.„admin_files“, „flag_auto_index = 1“, -1, „id ASC“ );
foreach( $files as $file ) eval( " ?>".$file[‚content‘]."<?php " );
// Für leute die es nicht so haben mit sicherheit…
if( !get_magic_quotes_gpc() ) {
array_addslashes( $_POST );
array_addslashes( $_GET );
array_addslashes( $_REQUEST );
array_addslashes( $_COOKIE );
}
// Fehlerfunktion
function page_error( $msg ) {
global $db, $prefix;
$template = $db->id_get( $prefix.„content_templates“, get_short_var( „errortemplate“, 0 ));
return str_replace( „{REASON}“, $msg, $template[‚content‘] );
}
// Sortirfuntion
function order_pgs($a, $b) {
if ( $a[‚order‘] == $b[‚order‘] ) return 0;
return ( $a[‚order‘] > $b[‚order‘] ) ? 1 : -1;
}
function order_panels($a, $b) {
if ( $a['prio'] == $b['prio'] ) return 0;
return ( $a['prio'] > $b['prio'] ) ? 1 : -1;
}
// Sicherheitsfunktion zu Panel includen
function parse_panel( $panel, $options, $db, $prefix, $layer ) {
global $_SESSION, $_POST, $_GET, $_REQUEST, $_COOKIE, $_SERVER;
if( !empty( $panel['template'] ))
if( $temp = $db->id_get( $prefix."content_templates", $panel['template'] )) {
$temp = str_replace( "{TITLE}", $panel['name'], $temp['content'] );
$temp = explode( "{BODY}", $temp );
}
echo $temp[0];
if( $script = $db->id_get( $prefix."admin_scripts", $panel['script'] ))
eval( " ?>$script[content]<?php " );
else die( "Script File missing..." );
echo $temp[1];
}
// Sitzung prüfen
if( !empty( $_SESSION[‚user_id‘] )) {
$userdata = $db->id_get( $prefix.„user_data“, $_SESSION[‚user_id‘] );
if( $_SESSION[‚user_ip‘] != $_SERVER[‚REMOTE_ADDR‘] ) $userdata = false;
elseif( $userdata[‚rank‘] == 0 ) $userdata = false;
}
// Wartungsmodus
if( get_short_var( ‚wartung‘, 0 ) == 1 && !$userdata ) {
echo page_error( get_text_var( ‚wreason‘,0 ));
} else {
// Aktuelle Seite Laden
$page = (int) $_GET['page'];
if( !$layer = $db->get( $prefix."content_layer", "id = '$page' AND status = 0", 1 ))
$layer = $db->id_get( $prefix."content_layer", get_short_var( "defpage" , 0 ));
// Optionen laden
$options = $db->get_assoc( $prefix."data_options", 1, "value", "name" );
// Template ermitteln
if( $layer ) {
$template = $layer['template'];
$parent = $layer;
while( empty( $template ) ) {
if( $parent['parent'] == 0 ) {
$template = get_short_var( "deftemplate", 0 ); break;
} elseif( $parent = $db->id_get( $prefix."content_layer", $parent['parent'] )) {
$template = $parent['template'];
} else {
$db->close(); die( page_error( "Es gibt Unstimmigkeiten in der Datenbank:<br><i>Inkorrekte Referenz im Layersystem!</i>" ));
}
}
define( "LAYER_SELF", THIS_SELF."page=".$layer['id'] );
define( "PAGE_SELF", THIS_SELF."page=".$layer['id'] );
if( $source = $db->id_get( $prefix."content_templates", $template )) {
$panelgroups = $db->get( $prefix."content_groups" );
$parent = $layer;
$panels = array();
$source = $source['content'];
// Optionsn ins Template einbinden
foreach( $options as $key => $opt )
$source = str_replace( "{".strtoupper($key)."}", $opt, $source );
// Panelgroups Sortieren
foreach( $panelgroups as $i => $pg ) {
$panels[$pg['id']] = array();
$panelgroups[$i]['order'] = strpos( $source, "{".strtoupper( $pg['replace'] )."}" );
} usort( $panelgroups, "order_pgs" );
// Panels auslesen
while( $parent ) {
foreach( $db->get( $prefix."content_panels", "layer = '$parent[id]'" ) as $pan )
$panels[$pan['group']][] = $pan;
$parent = $db->id_get( $prefix."content_layer", $parent['parent'] );
}
// Mainlayer Panels auslesen
foreach( $db->get( $prefix."content_panels", "layer = '0'" ) as $pan )
$panels[$pan['group']][] = $pan;
// Ausgabe
foreach( $panelgroups as $pg )
if( $pg['order'] !== false ) {
$ausgabe = explode( "{".strtoupper( $pg['replace'] )."}", $source, 2 );
echo $ausgabe[0]; $source = $ausgabe[1];
usort( $panels[$pg['id']], "order_panels" );
foreach( $panels[$pg['id']] as $panel )
if( $panel['status'] == 0 )
parse_panel( $panel, $options, $db, $prefix, $layer );
}
echo $source;
} else echo page_error( "Es liegt ein interner Fehler vor:<br><i>Das Template '".htmlspecialchars( $template )."' kann nicht geladen werden!</i>" );
} else echo page_error( "Es liegt ein interner Fehler vor:<br><i>Die Startseite kann nicht geladen werden!</i>" );
} $db->close();
?>[/code]


???