Seite 1 von 2
Menu in Javascript
Verfasst: 26.08.2007 19:36
von phillip
Hallo
Ich habe ein kleines Problem mit einem Menu:
Hier
Und zwar mein ich dieses Menu oben links.
Was ich erreichen will, ist dass dieses rote rechteck je nach dem was angeklickt wird, verschoben wird.
Und da dieses Menu per overall_header reingeholt wird, ist dies nicht so einfach.
Ich habe irgendiwe an JavaScript gedacht oder so.
Was hättet ihr für eine Idee?
Verfasst: 26.08.2007 20:02
von S2B
Im Moment kommt auf der Seite nur diese Fehlermeldung:
Fatal error: Call to a member function lang() on a non-object in /home/httpd/vhosts/phillip.ch/httpdocs/orion/includes/class_calendar_api.php on line 63

Verfasst: 26.08.2007 20:05
von phillip
ja habs behoben

Verfasst: 26.08.2007 20:22
von S2B
Selbst wenn es mit JavaScript gehen würde, würde ich es nicht so lösen, da es ja dann nur für die Benutzer funktionieren würde, die JavaScript aktiviert haben.
Ich würde das ganze so angehen: Du definierst in jeder Datei, die in dem Menü verlinkt wird, vor der Einbindung der page_header.php eine Konstante, z.B. MENU:
In der page_header.php packst du das Menü in ein Array:
Code: Alles auswählen
$menu = array(
'portal' => array("portal.$phpEx", $lang['Portal']),
'index' => array("index.$phpEx", $lang['Index']),
// und so weiter...
);
Danach gehst du das Menü-Array per foreach durch und vergleichst dabei die Keys mit dem Wert, der in der Konstante gespeichert ist. Wenn die Werte übereinstimmen, muss der aktuelle Eintrag einen Rand bekommen. Die ganzen Daten schickst du per
ans Template und gibst sie dort wie ein gewöhnlicher Block aus.

Verfasst: 26.08.2007 21:10
von phillip
ja an sowas hab ich auch gedacht, wusste nur nicht genau wie...
Kannst du mir vielleicht noch bei der foreach helfen?
?
Verfasst: 26.08.2007 23:17
von S2B
Verfasst: 27.08.2007 17:15
von phillip
ok, ich habs jetzt ein bisschen vereinfacht... deins war mir zu kompliziert ^^
Code: Alles auswählen
$menu = array(
'portal',
'index',
'chat',
'album',
'games',
'mitgliederliste',
'profilbilder'
);
foreach ($menu as $menuname)
{
if ($menuname = defined('MENU'))
{
$ramen = 'fstLevelActive';
}
else
{
$ramen = 'fstLevel';
}
}
$template->assign_block_vars('menu', array(
'RAMEN' => $ramen)
);
im overall_header:
Code: Alles auswählen
<div class="corner_top"></div>
<h3>Community</h3>
<!-- BEGIN menu -->
<div class="bg_top" id="reactions">
<div class="{menu.RAMEN}"><a href="events.php">Events</a></div>
<div class="{menu.RAMEN}"><a href="index.php">Forum</a></div>
<!-- BEGIN switch_user_logged_in -->
<div class="{menu.RAMEN}"><a href="javascript:void(0);" onClick="window.open('chat/flashchat.php','2_ChatBox','scrollbars=no,width=800,height=550')" onMouseover="ddrivetip('Chat','white', 30)";
onMouseout="hideddrivetip()">Chat</a></div>
<!-- END switch_user_logged_in -->
<div class="{menu.RAMEN}"><a href="album.php">Album</a></div>
<div class="{menu.RAMEN}"><a href="activity.php?mode=cat&cat_id=0">Games</a></div>
<div class="{menu.RAMEN}"><a href="search_member.php">Mitgliederliste</a></div>
<div class="{menu.RAMEN}"><a href="avatarlist.php">Profilbilder</a></div>
</div>
<!-- END menu -->
<div class="corner_bottom"></div>
Aber leider werden jetzt alle umramt, obwohl ich nur in der events.php
ist...
Verfasst: 27.08.2007 17:39
von Dr.Death
Hi,
vielleicht klappt es ja so:
?
Verfasst: 27.08.2007 17:42
von phillip
Dr.Death hat geschrieben:
nein, leider auch nicht...
Verfasst: 27.08.2007 18:22
von Pyramide
Lies dir mal KB:template_syntax und dort insbesondere den Abschnitt über Schleifen durch.