Menü

Login

Aktuelle Version

Forum > eigene menübox *

DOTLAN Intranet / Portal >> Probleme und Fehler > eigene menübox
Antwort erstellen
Autor Thema: eigene menübox
jeffwer
25.10.2008 um 15:54 QuoteProfileSend PM
NEW

Clan: Kein Clan
Postings: 50

hallo, hab da mal ne frage:

hab ne eigene menübox eingebaut, und funktionioeren tut die eigentlich auch, aber jedesmal wen ich einen link aktiviere klappt sich die neue box wieder zu...
Code:
// Stylenamen
// nicht editeren
$style = str_replace('.php','',basename(__FILE__));
$styles[$style]['name'] = $style;

# include(dirname(__FILE__)."/mod_rewrite.php");

// Beschreibung
$styles[$style]['description'] = "DOTLAN Theme";

// File für die StyleSheets
$styles[$style]['cssfile'] = "dotlan-net3.css";

// VerzeichnisName der Bilder
// /de/styles/$ST->dir/bilder.gif
$styles[$style]['dir'] = $style;

// Colors für MouseOver Tabellen (z.B. Kasse)
$styles[$style]['msgrow1'] = "#EFEFEF";
$styles[$style]['msgrow2'] = "#F7F7F7";
$styles[$style]['msg_over'] = "#D5DF3D";



// Content Box
///////////////////////////////////////////////////////////////////////////////////////
// Hier steht der "Default" Wert für die Darstellung der Boxen bei Verwendung der
// Möglichkeiten die Content Boxen auf und zu zu klappen. Dies hängt auch vom Design
// ab. Nicht jedes Theme bietet die Möglichkeit. bzw. Eignet sich für dies Art.
// Bei nichtverwendung ist anzuraten, die option $global['modules']['box_visible'] auf
// FALSE zu setzen um Fehler zu verweiden.
//
// Der hier gechriebene Status ist nur der Defaultwert. Er kann duch die persönlichen
// Vorlieben der Benutzer oder durch "events" geändert werden. z.B. bei neuen Umfragen,
// neuen Messages oder neuen Parties.
$global_user['box_visible']['login'] = TRUE;
$global_user['box_visible']['suchen'] = TRUE;
$global_user['box_visible']['news'] = TRUE;
$global_user['box_visible']['party'] = TRUE;
$global_user['box_visible']['forum'] = TRUE;
$global_user['box_visible']['vote'] = FALSE;
$global_user['box_visible']['messagebox'] = FALSE;
$global_user['box_visible']['buddylist'] = FALSE;
$global_user['box_visible']['online'] = FALSE;
$global_user['box_visible']['menu_menu'] = TRUE;
$global_user['box_visible']['menu_party'] = FALSE;
$global_user['box_visible']['menu_user'] = FALSE;



// Merge / Zusammenführen beider config arrays
// global und global_user
if(is_array($global_user))
foreach($global_user AS $gkey => $gpart)
foreach($gpart AS $gpkey => $gpvalue)
if(!isset($global[$gkey][$gpkey]))
$global[$gkey][$gpkey] = $gpvalue;

///////////////////////////////////////////////////////////
///////////////////////////////////////////////////////////
// Es gibt ein fertiges Content Box Modul um Menus darzustellen
// dieses bietet auch die Option Punkte bei einem nicht registrierten
// Benutzer auszublenden, bzw. Punkte nur für Admins zu zeigen.
//
// Hier erfolgt die Definition der Menupunkte und Inhalte.
// Die Darstellung erfolgt dann bei der Konfiguration der Content Boxen

// MENÜS
// array("internal name","Title","box visible","only user","only admin");

$menus['menu'] = array("menu", _("Menü"), &$global['box_visible']['menu_menu'],FALSE,FALSE);
$menus['party'] = array("party", _("LAN-Party"), &$global['box_visible']['menu_party'],FALSE,FALSE);
$menus['material'] = array("material", _("Material"), &$global['box_visible'][/b]['menu_material'],TRUE,FALSE);[/b]
$menus['login'] = array("login", _("Login"), TRUE,FALSE,FALSE);
$menus['user'] = array("user", htmlentities($CURRENT_USER->nick), &$global['box_visible']['menu_user'],FALSE,FALSE);

// MENUITEM
// array("Name","Link","Session","only User","only Admin");
// /de/ == $global[htmlroot]
// bitte kein ' verwenden

$menu['menu'][] = array(_("News"), "/de/news/", TRUE,FALSE,FALSE);
$menu['menu'][] = array(_("Artikel"), "/de/artikel/", TRUE,FALSE,FALSE);
$menu['menu'][] = array(_("Forum"), "/de/forum/", TRUE,FALSE,FALSE);
$menu['menu'][] = array(_("Bilder"), "/de/gallery/", TRUE,FALSE,FALSE);
$menu['menu'][] = array(_("Downloads"), "/de/media/", TRUE,FALSE,FALSE);
$menu['menu'][] = array(_("Umfragen"), "/de/vote/", TRUE,FALSE,FALSE);
$menu['menu'][] = array(_("das Team"), "/de/team/", TRUE,FALSE,FALSE);

$menu['party'][] = array(_("Event Infos"), "/de/party/?do=event", TRUE,FALSE,FALSE);
$menu['party'][] = array(_("Anmelden/Status"), "/de/party/?do=status", TRUE,FALSE,FALSE);
$menu['party'][] = array(_("Teilnehmer"), "/de/party/?do=teilnehmer",TRUE,FALSE,FALSE);
$menu['party'][] = array(_("Sitzplan"), "/de/party/?do=sitzplan", TRUE,FALSE,FALSE);
$menu['party'][] = array(_("Location"), "/de/party/?do=location", TRUE,FALSE,FALSE);
$menu['party'][] = array(_("Karte"), "/de/party/?do=map", TRUE,FALSE,FALSE);
$menu['party'][] = array(_("Server"), "/de/party/?do=server", TRUE,FALSE,FALSE);
$menu['party'][] = array(_("AGB"), "/de/agb/", TRUE,FALSE,FALSE);
$menu['party'][] = array(_("Sponsoren"), "/de/sponsoren/", TRUE,FALSE,FALSE);
$menu['party'][] = array(_("Archiv"), "/de/party/?type=archive", TRUE,FALSE,FALSE);
$menu['party'][] = array(_("Catering"), "/de/catering/", TRUE,FALSE,FALSE);
$menu['party'][] = array(_("Turnier"), "/de/turnier/", TRUE,FALSE,FALSE);

$menu['material'][] = array(_("Stroum_240V"), "/de/material/240V/", TRUE,FALSE,FALSE);
$menu['material'][] = array(_("Stroum_400V"), "/de/material/400V/", TRUE,FALSE,FALSE);


$menu['login'][] = array(_("Login"), "/de/user/?do=login", TRUE,FALSE,FALSE);
$menu['login'][] = array(_("Registrieren"), "/de/user/?do=register", TRUE,FALSE,FALSE);

$menu['user'][] = array(_("Benutzer Daten"), "/de/user/?do=myaccount", TRUE,TRUE,FALSE);
$menu['user'][] = array(_("Priv. Messaging"), "/de/user/?do=message", TRUE,TRUE,FALSE);
$menu['user'][] = array(_("Groupware"), "/de/groupware/", TRUE,TRUE,TRUE);
$menu['user'][] = array(_("Administration"), "/de/admin/", TRUE,TRUE,TRUE);
$menu['user'][] = array(_("Logout"), "/de/?do=logout", TRUE,FALSE,FALSE);



///////////////////////////////////////////////////////////
///////////////////////////////////////////////////////////
// Bestückung/ Möglichkeiten der Content Boxen
// -------------------------------------------
// Beispiel:
// dynamisch: = array(TRUE,'methodname','value','param2','param3','param4');
// => function cbox::methodname($value) { return array("title","content","visible"); }
// statisch: = array(FALSE,"title","content","visible");
//
// Zur Verfügung stehende Methoden
// -------------------------------
// cbox == Content Box - Funktionen
// cbox::menu($menus['bla'],$menu['bla'])
// cbox::login('title')
// cbox::news('title',$count)
// cbox::party(['title'],[partyid]) // title == FALSE => title == EventName
// cbox::forum('title')
// cbox::messagebox('title [%s/%s]')
// cbox::online('title [%s]')
// cbox::template('title''templatename')
// cbox::template('title','url/path_to_rdf','internal_name')
// cbox::call('externelfunction',
//
// Beispiel für einen RDF Import
// -----------------------------
// $rightbox['rdf1'] = array(TRUE,'rdf',"LANparty.de","http://www.lanparty.de/news/backend.phtml","lpde");
// Der Interne Name (lpde) dient dazu, die Box dynamisch einstellbar zu machen für den User
// hierfür müsste dann noch ein Eintrag in dem großen Settings Array gemacht werden, sowie
// ein Eintrag im Array $global['box_visible']['lpde'] = TRUE.
// Für Leute die die Box-Aufklappfunktion nicht nutzten ist dieser interne Name uninteressant
//
// aufruf von externen Funktionen
// ------------------------------
// = array(TRUE,"call","<functionname>","param");
// die Funktion muss dann ein Array zurückliefern
// mit den Werten array("Titel","Content","Visible(true|false)")
//
// Andere Box Templates auswählen
// -------------------------------
// Soll ein anderes Template genommen werden anstatt page_box_right/page_box_left dann
// kann dies angegeben werden mit 'template' => 'name'
// z.B. $rightbox = array(TRUE,'news',"Aktuelle News",'template' => 'page_box_news');

//// left
$leftbox['menu_main'] = array(TRUE,'menu',"menu");
$leftbox['menu_party'] = array(TRUE,'menu',"party");
$leftbox['menu_material']= array(TRUE,'menu',"material");
$leftbox['menu_user'] = ($CURRENT_USER->id>0) ? array(TRUE,'menu',"user") : array(TRUE,'menu',"login");
$leftbox['search'] = array(TRUE,'template',array(_("Suchen"),"box_suchen",&$global['box_visible']['suchen']));
//
//// right
$rightbox['news'] = array(TRUE,'news',_("Aktuelle News"));
$rightbox['party'] = array(TRUE,'party',_("LAN-Party"));
$rightbox['forum'] = array(TRUE,'forum',_("Forum"));
$rightbox['vote'] = array(TRUE,'vote',_("Umfragen"));
$rightbox['buddylist'] = array(TRUE,'buddylist',_("Buddyliste [%s/%s]"));
$rightbox['online'] = array(TRUE,'online',_("User Online"));


///////////////////////////////////////////////////////////////
// Dynamisch Boxen aufklappen
///////////////////////////////////////////////////////////////

// Admin -> Catering: Bestellungen+Barverkauf
if(eregi($global['htmlroot']."admin/",$_SERVER['REQUEST_URI']) && ($_GET['do'] == "catering_konto" || $_GET['do'] == "display_sales")) {
$rightbox = array();
}
// Detaillierte UserOnline Anzeige
if(eregi($global['htmlroot']."online/",$_SERVER['REQUEST_URI']) && $_GET['do'] == "admin") {
$rightbox = array();
}
// Partymenü aufklappen im Partybereich
if(eregi($global['htmlroot']."(catering|party|turnier|sponsoren|agb)/",$_SERVER['REQUEST_URI']) ||
eregi($global['htmlroot']."admin/",$_SERVER['REQUEST_URI']) && eregi("(turnier|event|catering|server)",$_GET['do']) ) {
$global['box_visible']['menu_party'] = TRUE;
}
// Partymenü aufklappen im Partybereich
if(eregi($global['htmlroot']."(user|messages|admin)/",$_SERVER['REQUEST_URI'])) {
$global['box_visible']['menu_user'] = TRUE;
}


was hab ich vergessen?
 
Griffon
26.10.2008 um 20:40 QuoteProfileSend PM

NEW

Clan: dotlan.net
Postings: 1252

Nö. sieht sauber aus.
 
dbh
23.01.2009 um 23:14 QuoteProfileSend PM
NEW

Clan: [team.zero]
Postings: 1

ich hab das gleiche problem, sowohl bei neuen boxen (die gehen zwar, aber man muss sie ständig neu aufklappen), als auch bei vorhandenen boxen, bei denen ich neue links eingefügt habe. wo muss ich denn da was einstellen, damit die offen bleiben?
 
Outi
31.01.2009 um 22:41 QuoteProfileSend PM
NEW

Clan: LANrena
Postings: 6

eine möglichkeit wäre:

$global['box_visible']['<Dein Menu Name>'] = TRUE;

 
[BKL]SirNox
09.02.2009 um 23:01 QuoteProfileSend PM
NEW

Clan: BKL
Postings: 12

Also das Problem kenne ich auch die Lösung von Outi habe ich schon selber angwendet. Du kannst auch dein Profil zurücksetzen, http://www.dotlan.net/de/user/settings/ und dann und auf Zurücksetzen oder Profil komplett zurücksetzen. Aber dies hilft ja nur dir und nicht den anderen Usern...

Aber eins hab ich noch gefunden, du solltest oben noch folgendes definieren :

$global_user['box_visible']['menu_material'] = TRUE;

Damit ist für neue Benutzer auf jeden Fall die Box aufgeklappt. Und vielleicht funktioniert es dann bei den angmeldeten Leuten die noch nicht deine Seite besucht haben. Da die vielleicht noch nicht die neu Box geladen hatten und deswegen noch keine Std. Einstellung gespeichert haben.


 
Griffon
13.02.2009 um 17:32 QuoteProfileSend PM

NEW

Clan: dotlan.net
Postings: 1252

// MENÜS
// array("internal name","Title","box visible","only user","only admin");
$menus['material'] = array("material", _("Material"), &$global['box_visible']['menu_material'],TRUE,FALSE);

Wenn du hier den Wert nimmst aus der Variable um den Zustand zu steuern, solltest du diese Variable auch vorher in der config.php anlegen.

# Wenn der User sie NICHT verändern darf (via Settings)
$global['box_visible']['menu_material'] = TRUE;

# Wenn der User sie verändern darf
$global_user['box_visible']['menu_material'] = TRUE;

Eine Alternativ darin besteht einfach das Variablen Konstrukt wegzulassen.
$menus['material'] = array("material", _("Material"), TRUE,TRUE,FALSE);


 
[ Antwort erstellen ]