Welcome, Guest. Please login or register.
Did you miss your activation email?
May 24, 2012, 09:03:19 PM

Login with username, password and session length
Search:     Advanced search
Interested in joining the WebsiteBaker team?
For more Information read here or on our new website.
155469 Posts in 21707 Topics by 7732 Members
Latest Member: DarrellDD
* Home Help Search Login Register
Pages: [1] 2   Go Down
Print
Author Topic: Menu mit Grafikbuttons  (Read 2788 times)
Abenaa

Offline Offline

Posts: 230


« on: December 03, 2008, 08:13:43 PM »

Ich habe heute mal versucht, ein Menu mit Grafikbuttons wie hier beschrieben:

http://www.websitebaker2.org/forum/index.php/topic,6912.0.html

einzubauen. In diesem Fall zeigt es bei mir gar keine Navigation im Frontend mehr an. Im Quelltext ist der div, in dem  showmenu2 steht, leer. Gibt es noch etwas besonderes zu beachten? Kann mir da bitte jemand helfen?

Vielen Dank im voraus.
Logged
kweitzel
Forum administrator
*****
Offline Offline

Posts: 6975


WWW
« Reply #1 on: December 03, 2008, 08:32:56 PM »

Und der verwendete Code ist?

Gruß

Klaus
Logged

WebsiteBaker Org e.V. - for WebsiteBaker

Abenaa

Offline Offline

Posts: 230


« Reply #2 on: December 03, 2008, 08:36:55 PM »

Der, der in dem oben gepostetem Beitrag von BerndJM geschrieben steht.
Logged
BerndJM

Offline Offline

Posts: 1764



« Reply #3 on: December 03, 2008, 08:45:23 PM »

Hi,

wenn der Navi-Div leer ist, dann streikt SM2 wohl auf Grund irgend eines Syntaxfehlers, also bitte deinen Menüaufruf nochmal genau kontrollieren. Und vielleicht (falls noch nicht geschehen) in den erweiterten Optionen den ErrorlLevel auf E_ALL stellen, ob vielleicht eine Hilfreiche Fehlermeldung erscheint.
Du kannst auch mal deinen Menüaufruf hier posten, vielleicht sieht man ja was "krummes".

Grüßle Bernd
Logged

In theory, there is no difference between theory and practice. But, in practice, there is.
Abenaa

Offline Offline

Posts: 230


« Reply #4 on: December 03, 2008, 09:01:20 PM »

Hier ist der Menüaufruf

Code:
<?php 
$button 
'[if(class==menu-current){<img src="'.TEMPLATE_DIR.'/buttons/a-[menu_title].jpg" border="0" width="135" height="30" alt="[page_title]" />}]';
$button .= '[if(class==menu-sibling){[a]';
$button .= '<img src="'.TEMPLATE_DIR.'/buttons/n-[menu_title].jpg" border="0" width="135" height="30" alt="[page_title]"';
$button .= 'onMouseOver=this.src="'.TEMPLATE_DIR.'/buttons/o-[menu_title].jpg"; ';
$button .= 'onMouseOut=this.src="'.TEMPLATE_DIR.'/buttons/n-[menu_title].jpg"; ';             $button .= '/></a>}]';                    

show_menu2(0SM2_ROOTSM2_STARTSM2_START'[li]'.$button); 
?>


Wenn ich in den Optionen auf E_ALL stelle, passiert ebenfalls nicht. Keine Fehlermeldung. Der div bleibt leer.
Logged
BerndJM

Offline Offline

Posts: 1764



« Reply #5 on: December 03, 2008, 09:19:53 PM »

Hi,
versuche mal als 4. Parameter statt SM2_START SM2_ALL oder SM2_TRIM, also:
Code:
show_menu2(0, SM2_ROOT, SM2_START, SM2_ALL, '[li]'.$button);

Grüßle Bernd
Logged

In theory, there is no difference between theory and practice. But, in practice, there is.
Abenaa

Offline Offline

Posts: 230


« Reply #6 on: December 03, 2008, 09:25:11 PM »

Ui, das funzt!!! Ich danke Dir!!!
Logged
BerndJM

Offline Offline

Posts: 1764



« Reply #7 on: December 03, 2008, 09:26:52 PM »

Hi,

SM2_START ist an der Stelle eigentlich gar nicht zulässig, anscheinend haben sich aber ältere SM2-Versionen daran nicht gestört huh
Naja ist ja auch schon wieder anderthalb Jahre her ...

Grüßle Bernd
Logged

In theory, there is no difference between theory and practice. But, in practice, there is.
Abenaa

Offline Offline

Posts: 230


« Reply #8 on: December 03, 2008, 09:29:25 PM »

Hm, jetzt hab ich nur noch das Problem, dass over und aktiv nicht funktionieren..
Logged
BerndJM

Offline Offline

Posts: 1764



« Reply #9 on: December 03, 2008, 09:36:50 PM »

Die Dateinamen der Grafiken stimmen?
Also a- für aktiv und o- für over.
Javascript ist aktiviert?
Logged

In theory, there is no difference between theory and practice. But, in practice, there is.
Abenaa

Offline Offline

Posts: 230


« Reply #10 on: December 03, 2008, 09:40:20 PM »

Ja, sie heißen z.B.

a-Startseite.jpg
o-Startseite.jpg
n-Startseite.jpg

Es wird also nur das n-Startseite.jpg angezeigt.

Javascript ist aktiviert. Müsste ich denn sonst noch irgendwas im Code bezüglich javascript hinzufügen?
Logged
Abenaa

Offline Offline

Posts: 230


« Reply #11 on: December 03, 2008, 09:44:17 PM »

Oh Entschuldigung! Ich habe gerade gesehen, dass es in dem Browser, mit dem ich die ganze Zeit getestet hatte, wohl nicht aktiviert war. Im Firefox und im Opera funktionieren over und aktiv.

Nochmals vielen Dank. Hat mir wirklich sehr weiter geholfen.
Logged
Abenaa

Offline Offline

Posts: 230


« Reply #12 on: December 03, 2008, 10:18:35 PM »

Und wie lasse ich mir jetzt noch die nächste Ebene anzeigen? Und ohne, dass die obere Ebene verschwindet?
Logged
BerndJM

Offline Offline

Posts: 1764



« Reply #13 on: December 03, 2008, 10:26:09 PM »

Bitte mal die Doku von SM2 bemühen, da findest du z.B. sowas:
Quote
$aMaxLevel   
    Die maximale Anzahl der Ebenen die angezeigt werden, die Anzeige
    beginnt ab der in $aStart festgelegten Ebene bis hin zu der hier
    festgelegten Ebene.
       
    SM2_ALL      Keine Beschränkung, alle Ebenen werden angezeigt

        SM2_CURR+N   Zeigt immer die aktuelle Seite + N Ebenen.
                        SM2_CURR      Aktuelle Ebene (keine Unterebene)
                        SM2_CURR+3    Alle übergeordneten + aktuelle + 3 Unterebenen

        SM2_START+N  Beginnt immer auf der Startebene + N Ebenen.
                     Die Ebenen werden unabhängig davon angezeigt
                     auf welcher Ebene sich die aktuelle Seite befindet.
                SM2_START     Eine einzelne Ebene ab der Startebene
                        SM2_START+1   Startebene + eine Ebene darunter

        SM2_MAX+N    Zeigt höchstens N Ebenen ab der Startebene.
                     Ebenen unterhalb der aktuellen Ebene werden nicht angezeigt.
            SM2_MAX       Starting level only (same as SM2_START)
                        SM2_MAX+1     Maximum of starting level and 1 level.

Grüßle Bernd
Logged

In theory, there is no difference between theory and practice. But, in practice, there is.
Abenaa

Offline Offline

Posts: 230


« Reply #14 on: December 03, 2008, 10:47:01 PM »

Hm... Hab schon einige durchprobiert, wenn ich z.B.

Code:
show_menu2(0, SM2_ROOT, SM2_ALL, SM2_ALL, '[li]'.$button);

show_menu2(0, SM2_ROOT, SM2_START+1, SM2_ALL, '[li]'.$button);

show_menu2(0, SM2_ROOT, SM2_MAX+1 , SM2_ALL, '[li]'.$button);

show_menu2(0, SM2_ROOT, SM2_CURR+1 , SM2_ALL, '[li]'.$button);

ausprobiert habe und ich auf eine Unterebene gelange, zeigt es mir bei keinem der oben aufgeführten Parameter in der Navi die Oberebene an. Nur noch die Unterebene  sad
Logged
BerndJM

Offline Offline

Posts: 1764



« Reply #15 on: December 03, 2008, 11:12:08 PM »

Was auch korrekt ist, so blöd es klingt, da ja dann der Überpunkt die Klasse menu-current verliert, die wir aber dazu hernehmen um ihn von den siblings zu unterscheiden.

Da müßte man bischen mit dem ersten if rumbasteln, momentan keine Peilung ob das zum Erfolg führt. da ich das ganze damals nur für 1 Ebene benötigte und es auch gar nicht weiterverfolgt habe.
Logged

In theory, there is no difference between theory and practice. But, in practice, there is.
Abenaa

Offline Offline

Posts: 230


« Reply #16 on: December 04, 2008, 02:05:34 PM »

Tja, ich und mit if rumbasteln. Das funktioniert nicht wirklich  shocked  smiley
Logged
BerndJM

Offline Offline

Posts: 1764



« Reply #17 on: December 04, 2008, 02:48:38 PM »

Moin,

jetzt mal auf die Schnelle ungetestet:
die zweite Zeile mal so abändern:
Code:
$button .= '[if(class==menu-sibling || class==menu-parent){[a]';

Wenn's klappt gut, wenn nicht muß ich mal in 'ner ruhigen Minute ran.

Grüßle Bernd
Logged

In theory, there is no difference between theory and practice. But, in practice, there is.
Abenaa

Offline Offline

Posts: 230


« Reply #18 on: December 04, 2008, 05:52:54 PM »

Ein kleiner Fortschritt ist schon mal erzielt. Es zeigt jetzt die unteren Ebenen an, aber von der oberen Ebene nur den jeweils übergeordneten Link. Die anderen Links der oberen Ebene sind nicht da. Code ist jetzt so eingegeben:

Code:
<?php 
$button 
'[if(class==menu-current){<img src="'.TEMPLATE_DIR.'/buttons/a-[menu_title].jpg" border="0" width="32" height="34" alt="[page_title]" />}]';
$button .= '[if(class==menu-sibling || class==menu-parent){[a]';
$button .= '<img src="'.TEMPLATE_DIR.'/buttons/n-[menu_title].jpg" border="0" width="32" height="34" alt="[page_title]"';
$button .= 'onMouseOver=this.src="'.TEMPLATE_DIR.'/buttons/o-[menu_title].jpg"; ';
$button .= 'onMouseOut=this.src="'.TEMPLATE_DIR.'/buttons/n-[menu_title].jpg"; ';             $button .= '/></a>}]';                    

show_menu2(0SM2_ROOTSM2_START+1SM2_ALL'[li]'.$button);
?>

Logged
Malexel

Offline Offline

Posts: 20


« Reply #19 on: March 29, 2009, 01:16:59 PM »

Hallo Miteinander,

wenn ich das Script so anwende, dann fehlt beim anklicken des Untermenüs das Hauptmenü,

habe jetzt das Bildertausch Script vom Dreamweaver eingebunden, das Funktioniert gut aber ich hätte gerne
das der Button der aktiven Seite auf "hover" ist (also das ich sehe welche seite aktiv ist). Habt ihr eine andere Möglichkeit oder ein anderes Script.

Das Untermenü will ich wie gehabt automatisch erzeugen lassen über Showmenu2


Gruesse und Danke im Vorraus

Malexel
Logged
Peg

Offline Offline

Posts: 16


« Reply #20 on: April 04, 2009, 09:36:27 PM »

Moin,

jetzt mal auf die Schnelle ungetestet:
die zweite Zeile mal so abändern:
Code:
$button .= '[if(class==menu-sibling || class==menu-parent){[a]';

Wenn's klappt gut, wenn nicht muß ich mal in 'ner ruhigen Minute ran.

Grüßle Bernd


Hallo an alle,

bin noch ziemlich neu auf dem Gebiet, habe aber meine Seite schon fast fertig smiley. Jedoch nur fast. Ich habe bisher mein Menu so aufgebaut, wie es Bernd bereits beschrieben hat. Das hat mir schon sehr geholfen. Bei mir sieht das so aus:

Code:
<?php 
$button 
'[if(class==menu-current){<img src="'.TEMPLATE_DIR.'/bilder/a-buttons/[menu_title].png" border="0" width="168" height="36" alt="[page_title]" />}]';
$button .= '[if(class==menu-sibling || class==menu-parent){[a]';
$button .= '<img src="'.TEMPLATE_DIR.'/bilder/buttons/[menu_title].png" border="0" width="168" height="36" alt="[page_title]"';
$button .= 'onMouseOver=this.src="'.TEMPLATE_DIR.'/bilder/a-buttons/[menu_title].png"; ';
$button .= 'onMouseOut=this.src="'.TEMPLATE_DIR.'/bilder/buttons/[menu_title].png"; ';             
$button .= '/></a>}]';                    

show_menu2(1SM2_ROOTSM2_STARTSM2_ALL'[li]'.$button); 
?>

Der Ordner "a-buttons" steht für die aktiven Menupunkte. Die normalen inativen Menupunkte befinden sich im Ordner "buttons".
Funktioniert alles in der Hauptnavigation, nur wenn ich auf einen Unterpunkt klicke, zeigt es nur den dazugehörigen Hauptnavipunkt an. Dieser ist auch inaktiv dargestellt - soll aber aktiv sein und weiterhin sollen die anderen Menupunkte (also die inaktiven im Ordner "buttons") angezeigt werden.

Ich weiß absolut nicht weiter, kenne mich leider auch nicht mit php und javascipt aus.

Könntet ihr mir in dem Zusammenhang auch den Code zum Vorladen, der Bilder zeigen?

Habe bisher das - ist das korrekt und ausreichend? - ich merke da nicht viel Unterschied:

Code:
<script language="JavaScript">
<!--
function BilderVorladen()
{
    document.Vorladen = new Array();

    if(document.images)
    {
        for(var i = 0; i < BilderVorladen.arguments.length; i++)
        {
            document.Vorladen[i] = new Image();
            document.Vorladen[i].src = BilderVorladen.arguments[i];
        }
    }
}
//-->
</script>-->

Im body steht dann das:

Code:
<body onload="BilderVorladen('<?php echo TEMPLATE_DIR;?>/bilder/amt_entwurf3_headerbild_stand.jpg','<?php echo TEMPLATE_DIR;?>/bilder/Home.png','<?php echo TEMPLATE_DIR;?>/bilder/a-buttons/Home.png','<?php echo TEMPLATE_DIR;?>/bilder/buttons/Leistungen.png','<?php echo TEMPLATE_DIR;?>/bilder/a-buttons/Leistungen.png','<?php echo TEMPLATE_DIR;?>/bilder/buttons/Produkte.png','<?php echo TEMPLATE_DIR;?>/bilder/a-buttons/Produkte.png','<?php echo TEMPLATE_DIR;?>/bilder/buttons/amt-parts!.gif', '<?php echo TEMPLATE_DIR;?>/bilder/schatten.png');">
--> also alle Bilder im Template (sind jetzt noch nicht alle dabei - möcht nur wissen, ob es überhaupt richtig ist

Ich weiß, dass ist jetzt vielleicht etwas viel auf einmal, aber das ist alles was mir noch fehlt, um die Seite fertig zu stellen. Der Rest funktioniert mit WebsiteBaker wunderbar - super Sache smiley

Ich würde mich sehr freuen, wenn mir jemand weiterhelfen kann und bedanke mich schon jetzt.

Grüßle Peg
Logged
isd

Offline Offline

Posts: 33


« Reply #21 on: April 22, 2009, 04:57:42 PM »

Also ich bin heute auch kläglich gescheitert, das Menü so anzupassen, dass auch Untermenüpunkte als Grafikbutton angezeigt werden. Es wird einfach gar nichts angezeigt.

@Bernd: Kannst du vielleicht nochmal helfend einschreiten? Das wäre super!
Logged
BlackTiger

Offline Offline

Posts: 166


« Reply #22 on: April 22, 2009, 05:15:02 PM »

Bei dem Ansatz von Peg war die if-Abfrage nicht ganz passend - eine Lösung dafür hab ich in diesem Thread gepostet.

Gruß
Michael
Logged
gottfried

Offline Offline

Posts: 980


« Reply #23 on: April 22, 2009, 07:47:04 PM »

Pardon !

ganz blöde Frage vielleicht ? Warum macht ihr das nicht über css ? alle diese showmenu2 phrasen kann man doch als css definieren ?
Logged
isd

Offline Offline

Posts: 33


« Reply #24 on: April 22, 2009, 08:13:07 PM »

@Black Tiger: Danke für die schnelle Antwort, leider bekomm ich es nicht hin.

In der index.php des Templates steht:
Code:
   $button = '[if(class==menu-current || class==menu-parent){<img src="'.TEMPLATE_DIR.'/buttons/a-[menu_title].jpg" border="0" width="234" height="23" alt="[page_title]" />}else{[a]';


//        $button .= '[if(class==menu-sibling){[a]';
        $button .= '<img src="'.TEMPLATE_DIR.'/buttons/n-[menu_title].jpg" border="0" width="234" height="23" alt="[page_title]"';
        $button .= 'onMouseOver=this.src="'.TEMPLATE_DIR.'/buttons/o-[menu_title].jpg"; ';
        $button .= 'onMouseOut=this.src="'.TEMPLATE_DIR.'/buttons/n-[menu_title].jpg"; ';
        $button .= '</a>}]';                    
       
        show_menu2(1, SM2_ROOT, SM2_START, SM2_ALL, '[li]'.$button);
        ?>


Im CSS steht:
Code:

ul.menu-top{
    padding:0;
    margin:5px;
    font-family:Times;
    font-weight:normal;
    }    
   
li.menu-expand, li.menu-current, li.menu-first, li.menu-last, li.menu-sibling, li.menu-child, li.menu-parent {
    list-style: none;
    border-bottom: 1px solid #cfcfcf;
    }

li.menu-expand a, li.menu-current a, li.menu-first a, li.menu-last a, li.menu-sibling a, li.menu-child a, li.menu-parent a {
    list-style:none;

        color:#fff;
    }
   
li.menu-expand a:hover, li.menu-current a:hover, li.menu-first a:hover, li.menu-last a:hover, li.menu-sibling a:hover, li.menu-child a:hover, li.menu-parent a:hover {
    list-style:none;
    color:#fff;
}


ul li.menu-expand, ul li.menu-current, ul li.menu-first, ul li.menu-last, ul li.menu-sibling, li.menu-child, li.menu-parent {
    list-style: none;
    border-bottom: 1px solid #cfcfcf;
    }

Die Demo was nicht funktioniert gibt es hier:
http://www.kf-jeweldesign.com
Benutzer: kfschmuck / Passwort: schmuck8


Die Bilder sind benannt mit n-[Seitentitel].jpg, o-[Seitentitel].jpg und a-[Seitentitel].jpg
Sie liegen im Template Ordner buttons.

Wenn man auf Schmuckkollektionen klickt müsste da eigentlich ein Untermenüpunkt Test kommen. Der ist aber nicht sichtbar.


@Gottfried: Weil man keine speziellen Schriften für die Buttons einsetzen kann. Oder doch?
Logged
Pages: [1] 2   Go Up
Print
Jump to:  

Powered by MySQL Powered by PHP Powered by SMF 1.1.16 | SMF © 2011, Simple Machines Valid XHTML 1.0! Valid CSS!