Menü

Login

Aktuelle Version

Forum > Dynamische Boxkonfiguration *

DOTLAN Intranet / Portal >> Konfiguration, Erweiterungen, Addons > Dynamische Boxkonfiguration
Antwort erstellen
Autor Thema: Dynamische Boxkonfiguration
Griffon
17.05.2005 um 18:51 QuoteProfileSend PM

NEW

Clan: dotlan.net
Postings: 1252

Wie versprochen. Hier ist ein Beispiel wie man eine dynamische Boxkonfiguration ermöglicht.

Gedanke: Es gibt verschiedene Bereiche auf einer Seite. Und je nach Bereich soll sich die Menüstruktur ändern.

Realisiert wird das in dem man z.b. die URL überprüft und je nach URL die Boxen neu definiert.

Im Anhang liegt als Beispiel die StyleConfig der Freakdays2 Party die demnächst online geht. www/html/styles/<stylename>.php

Viel Spaß beim ausprobieren
 

Dateianhang:    freakdays.php    10 KB
MDK
18.05.2005 um 14:48 QuoteProfileSend PM
NEW

Clan: Kein Clan
Postings: 30

Und wo bekommt man die mod_rewrite.php ?

Hab schon gefunden, die war in dem addons ordner in der zip datei.

[Editiert von TX|Julian am 18.May.2005 um 14:56]
 
MDK
18.05.2005 um 17:55 QuoteProfileSend PM
NEW

Clan: Kein Clan
Postings: 30

So noch eine Frage, wie bekommt man es hin das z.B. die Homebox und die Communitybox angezeigt werden?

So hab ichs:
Code:

// URL passt auf einen der Community Bereich
} elseif(eregi($global['htmlroot']."(forum|gallery|community)/",$_SERVER['REQUEST_URI'])) {
$styles[$style]['cssfile'] = "technicx.css";
$leftbox['community'] = array(TRUE,'menu',"home","community");

Und so wars:
Code:

// URL passt auf einen der Community Bereich
} elseif(eregi($global['htmlroot']."(forum|gallery|community)/",$_SERVER['REQUEST_URI'])) {
$styles[$style]['cssfile'] = "technicx.css";
$leftbox['community'] = array(TRUE,'menu',"home");


Ich habe nicht so die große ahnung von php, deswegen die frage.
 
Griffon
21.05.2005 um 05:27 QuoteProfileSend PM

NEW

Clan: dotlan.net
Postings: 1252

in dem man einfach beide nacheinander aufruft

Code:
// URL passt auf einen der Community Bereich
} elseif(eregi($global['htmlroot']."(forum|gallery|community)/",$_SERVER['REQUEST_URI'])) {
$leftbox['home'] = array(TRUE,'menu',"home");
$leftbox['community'] = array(TRUE,'menu',"home");


Die Angabe vom CSS ist nicht wichtig. Wir haben nur in dem Fall je nach unterseite ein paar Farben/Bilder geändert. Daher das Beispiel mit der CSS angabe.
 
MDK
21.05.2005 um 11:50 QuoteProfileSend PM
NEW

Clan: Kein Clan
Postings: 30

Ja danke, ich hatte das zwar ausprobiert aber hatte nicht so geklappt, jetzt gehts. Und das mit dem Stylsheet find ich auch super

[Editiert von TX|Julian am 21.May.2005 um 11:51]
 
MDK
23.05.2005 um 14:49 QuoteProfileSend PM
NEW

Clan: Kein Clan
Postings: 30

Hallo,

geht das, das man für jeden Bereich auch eigene Templates festlegt? Also ich will für den Bereich community z.B. das das template page_topbanner mit page_topbanner_community ersetzt wird.

Wäre dankbar für eine Lösung.
 
MDK
23.05.2005 um 16:37 QuoteProfileSend PM
NEW

Clan: Kein Clan
Postings: 30

Ich habs sogar selber gefunden

Hier der Code
Code:

if(eregi($global['htmlroot']."(forum|gallery|community)/",$_SERVER['REQUEST_URI'])) {
$styles[$style]['cssfile'] = "technicx_com.css";
$PAGE->templates['page_topbanner'] = "page_topbanner_community";
$leftbox['community'] = array(TRUE,'menu',"community");
}

 
Griffon
30.05.2005 um 00:54 QuoteProfileSend PM

NEW

Clan: dotlan.net
Postings: 1252

Julian: richtig. Genau so. Allerdings läßt sich nicht jede Klasse so bearbeiten. Das klappt nur bei $PAGE, $NEWS, $ARTIKEL und $HTML

einfach mal ein var_dump($PAGE->templates); machen. Dann siehst du die Templates die du ändern kannst.
 
Funstar
15.07.2005 um 19:24 QuoteProfileSend PM
NEW

Clan: Freaknet
Postings: 124

Funstar
Wenn ich diese Datei benutze, stehen die Boxen nicht so wie erwartet. Sieht jemand einen Fehler?

Code:
<?

global $styles, $global, $global_user, $menu, $menus, $leftbox, $rightbox, $boxes, $CURRENT_USER;

// Common Style Settings
////////////////////////////////////////////////////////////////////////
$style = "freaknet";
$styles[$style]['name'] = $style;
$styles[$style]['dir'] = $style;
$styles[$style]['description'] = "Freaknet Theme";
$styles[$style]['cssfile'] = "freaknet.css";
$styles[$style]['menu_over'] = "#F5D300";
$styles[$style]['menu_out'] = "#000000";
$styles[$style]['msgrow1'] = "#DDDDDD";
$styles[$style]['msgrow2'] = "#EEEEEE";
$styles[$style]['msg_over'] = "#F0F0AA";


// setup modules
////////////////////////////////////////////////////////////////////////
$global['modules']['box_visible'] = FALSE;


// setup menu
////////////////////////////////////////////////////////////////////////

// reset menu configuration
$menus = array();
$menu = array();

// define all available menu sections (only define, not activate)
$menus['home'] = array("home", "fn.home", TRUE,FALSE,FALSE);
$menu['home'][] = array("Newsarchiv", "/news/archiv/", TRUE,FALSE,FALSE);
$menu['home'][] = array("Bilder", "/gallery/", TRUE,FALSE,FALSE);
$menu['home'][] = array("Downloads", "/media/", TRUE,FALSE,FALSE);
$menu['home'][] = array("Suchen", "/search/", TRUE,FALSE,FALSE);
$menu['home'][] = array("Impressum", "/impressum/", TRUE,FALSE,FALSE);


$menus['logged_in'] = array("logged_in", "fn.user", TRUE,FALSE,FALSE);
$menu['logged_in'][] = array("Benutzer Daten", "/user/myaccount/", TRUE,TRUE,FALSE);
$menu['logged_in'][] = array("Priv. Messaging", "/messages/", TRUE,TRUE,FALSE);
$menu['logged_in'][] = array("Logout", "/?do=logout", TRUE,TRUE,FALSE);


$menus['ext_logged_in'] = array("ext_logged_in", "fn.user", TRUE,FALSE,FALSE);
$menu['ext_logged_in'][] = array("Benutzer Daten", "/user/myaccount/", TRUE,TRUE,FALSE);
$menu['ext_logged_in'][] = array("Einstellungen", "/user/settings/", TRUE,TRUE,FALSE);
$menu['ext_logged_in'][] = array("Avatar", "/user/avatar/", TRUE,TRUE,FALSE);
$menu['ext_logged_in'][] = array("Priv. Messaging", "/messages/", TRUE,TRUE,FALSE);
$menu['ext_logged_in'][] = array("Passwort", "/user/password", TRUE,TRUE,FALSE);
$menu['ext_logged_in'][] = array("Logout", "/?do=logout", TRUE,TRUE,FALSE);


$menus['inside'] = array("inside", "fn.inside", TRUE,FALSE,FALSE);
$menu['inside'][] = array("Anmelden/Status", "/party/status/", TRUE,FALSE,FALSE);
$menu['inside'][] = array("Teilnehmer", "/party/teilnehmer/", TRUE,FALSE,FALSE);
$menu['inside'][] = array("Sitzplan", "/party/sitzplan/", TRUE,FALSE,FALSE);
$menu['inside'][] = array("Turniere", "/turnier/", TRUE,FALSE,FALSE);
$menu['inside'][] = array("GästeServer", "/party/server/", TRUE,FALSE,FALSE);
$menu['inside'][] = array("g33k-Radar", "/party/radar/", TRUE,FALSE,FALSE);
$menu['inside'][] = array("Ticketbörse", "/party/lpde/tickets/", TRUE,FALSE,FALSE);
$menu['inside'][] = array("Mitfahrzentrale", "/party/lpde/mfz/", TRUE,FALSE,FALSE);

$menus['admin'] = array("admin", "fn.verwaltung", TRUE,TRUE,TRUE);
$menu['admin'][] = array("adminmenu", "/admin/", TRUE,TRUE,TRUE);
$menu['admin'][] = array("news", "/admin/?do=news", TRUE,TRUE,TRUE);
$menu['admin'][] = array("artikel", "/admin/?do=article", TRUE,TRUE,TRUE);
$menu['admin'][] = array("forum", "/admin/?do=forum", TRUE,TRUE,TRUE);
$menu['admin'][] = array("galerie", "/admin/?do=gallery", TRUE,TRUE,TRUE);
$menu['admin'][] = array("media", "/admin/?do=media", TRUE,TRUE,TRUE);
$menu['admin'][] = array("eventverwaltung", "/admin/?do=event", TRUE,TRUE,TRUE);
$menu['admin'][] = array("locations", "/admin/?do=location", TRUE,TRUE,TRUE);
$menu['admin'][] = array("sitzplan", "/admin/?do=sitzplan", TRUE,TRUE,TRUE);
$menu['admin'][] = array("gästeserver", "/admin/?do=server", TRUE,TRUE,TRUE);
$menu['admin'][] = array("sponsoren", "/admin/?do=sponsoren", TRUE,TRUE,TRUE);
$menu['admin'][] = array("userverwaltung", "/admin/?do=user", TRUE,TRUE,TRUE);
$menu['admin'][] = array("usergroups", "/admin/?do=usergroup", TRUE,TRUE,TRUE);
$menu['admin'][] = array("admin logs", "/admin/?do=log", TRUE,TRUE,TRUE);
$menu['admin'][] = array("newsletter", "/admin/?do=mails", TRUE,TRUE,TRUE);
$menu['admin'][] = array("teamverw.", "/admin/?do=team", TRUE,TRUE,TRUE);
$menu['admin'][] = array("telefonliste", "/admin/?do=team_telefon", TRUE,TRUE,TRUE);
$menu['admin'][] = array("kasse window", "/admin/kasse/", TRUE,TRUE,TRUE);
$menu['admin'][] = array("kasse fullscreen", "/admin/?do=article", TRUE,TRUE,TRUE);
$menu['admin'][] = array("turniere", "/admin/?do=turnier", TRUE,TRUE,TRUE);
$menu['admin'][] = array("catering", "/admin/?do=catering", TRUE,TRUE,TRUE);
$menu['admin'][] = array("beamer", "/admin/?do=beamer", TRUE,TRUE,TRUE);


// setup menu boxes
////////////////////////////////////////////////////////////////////////

// reset boxes
$leftbox = array();
$rightbox = array();


// setup left boxes
////////////////////////////////////////////////////////////////////////

$leftbox['news'] = array(TRUE,'news',"fn.headlines");
$leftbox['forum'] = array(TRUE,'forum',"fn.forumthreads");
$leftbox['party'] = array(TRUE,'party',"fn.partystats");
$leftbox['online'] = array(TRUE,'online',"fn.onlineuser");


// setup right boxes
////////////////////////////////////////////////////////////////////////


// Zeige immer die Loginbox an wenn kein User eingeloggt ist
if(!$CURRENT_USER->id)
$rightbox['login'] = array(TRUE,'login',"fn.login");

// URL passt auf /news/, /faq/, /forum/
if(eregi($global['htmlroot']."(news|faq|forum|admin)",$_SERVER['REQUEST_URI'])) {
$styles[$style]['cssfile'] = "freaknet.css";
$rightbox['home'] = array(TRUE,'menu',"home");
$rightbox['logged_in'] = array(TRUE,'menu',"logged_in");
$rightbox['buddylist'] = array(TRUE,'buddylist',"fn.buddylist");
}

// URL passt auf /party/, /team/
if(eregi($global['htmlroot']."(party|team)",$_SERVER['REQUEST_URI'])) {
$styles[$style]['cssfile'] = "freaknet.css";
$rightbox['info'] = array(TRUE,'menu',"info");
$rightbox['logged_in'] = array(TRUE,'menu',"logged_in");
$rightbox['buddylist'] = array(TRUE,'buddylist',"buddylist");
}

// URL passt auf /party/status
if(eregi($global['htmlroot']."(party/status|turnier)",$_SERVER['REQUEST_URI'])) {
$styles[$style]['cssfile'] = "freaknet.css";
$rightbox['inside'] = array(TRUE,'menu',"inside");
$rightbox['ext_logged_in'] = array(TRUE,'menu',"ext_logged_in");
$rightbox['buddylist'] = array(TRUE,'buddylist',"buddylist");
}

// Sonstiges, Startseite
else {
$styles[$style]['cssfile'] = "freaknet.css";
$rightbox['home'] = array(TRUE,'menu',"home");
$rightbox['logged_in'] = array(TRUE,'menu',"logged_in");
$rightbox['buddylist'] = array(TRUE,'menu',"buddylist");
}


// include mod_rewrite support
////////////////////////////////////////////////////////////////////////

if($GLOBALS['global']['debug']) debug_info("GLOBAL::include -> mod_rewrite.php");
include_once(dirname(__FILE__)."/mod_rewrite.php");

?>

__________________
https://www.freaknet.de/
 
Griffon
16.07.2005 um 12:05 QuoteProfileSend PM

NEW

Clan: dotlan.net
Postings: 1252

Hier die fehlerbereinigte Version

Code:
// URL passt auf /news/, /faq/, /forum/
if(eregi($global['htmlroot']."(news|faq|forum|admin)",$_SERVER['REQUEST_URI'])) {
$styles[$style]['cssfile'] = "freaknet.css";
$rightbox['home'] = array(TRUE,'menu',"home");
$rightbox['logged_in'] = array(TRUE,'menu',"logged_in");
$rightbox['buddylist'] = array(TRUE,'buddylist',"fn.buddylist");
}

// URL passt auf /party/status
// Reihenfolge von party/status nach oben gesetzt, damit er darauf matched
// sonst würde er zuerst auf /party/ matchen. dann passt das nicht mit den
// Menüs nicht

elseif(eregi($global['htmlroot']."(party/status|party/[0-9]+/status|turnier)",$_SERVER['REQUEST_URI'])) {
$styles[$style]['cssfile'] = "freaknet.css";
$rightbox['inside'] = array(TRUE,'menu',"inside");
$rightbox['ext_logged_in'] = array(TRUE,'menu',"ext_logged_in");
$rightbox['buddylist'] = array(TRUE,'buddylist',"buddylist");
}

// URL passt auf /party/, /team/
elseif(eregi($global['htmlroot']."(party|team)",$_SERVER['REQUEST_URI'])) {
$styles[$style]['cssfile'] = "freaknet.css";
$rightbox['info'] = array(TRUE,'menu',"info");
$rightbox['logged_in'] = array(TRUE,'menu',"logged_in");
$rightbox['buddylist'] = array(TRUE,'buddylist',"buddylist");
}

// Sonstiges, Startseite
else {
$styles[$style]['cssfile'] = "freaknet.css";
$rightbox['home'] = array(TRUE,'menu',"home");
$rightbox['logged_in'] = array(TRUE,'menu',"logged_in");
// die buddyliste sollte sicherlich kein Menü sein oder?
$rightbox['buddylist'] = array(TRUE,'menu',"buddylist");
// richtig wäre
$rightbox['buddylist'] = array(TRUE,'buddylist',"buddylist");

}

 
[ Antwort erstellen ]