Zum Inhalt springen

ypMenu vertikal

Erstellt am 2. Oktober 2005 · 36 Antworten · letzte Antwort am 16. März 2007 · Seite 1 von 2

Tags: Frage

woida ·

Ich habe mal das ypmenu von meade.de (#15065) umgeschrieben, damit es anstatt horizontal nun vertikal dargestellt wird.

Achtung: Dieses Menü ist nicht für Anfänger geeignet. Arbeitet euch erstmal mit Typo3 ein, bevor ihr es einsetzt.

Nebenbei ist das Menü XHTML 1.0 Transitional valide.

Unter http://213.239.197.144/ypmenu/ypmenu.zip könnt ihr euch das komplette Paket runterladen.

Folgendes ist zu tun:

1. Die ganzen Datein innerhalb fileadmin ablegen. Wenn ihr die Verzeichnistruktur im zip verwendet, braucht ihr weniger anzupassen.

2. In der Inhalt der Datei TS.txt kommt ins Setup des Root-Templates.
Ich poste hier nur einen Ausschnitt.
Angepaßt werden muß:
Zeile 17: hier der Pfad zu der menu.css (wenn ihr nicht meinen Pfad verwendet)
Zeile 24: auch hier die Pfade anpassen, wenn ihr andere habt
Zeile 28: hier kommt die ID eurer Root-Seite hin.

page = PAGE
page.typeNum = 0


page {
	config.doctype = xhtml_trans 
	config.xhtml_cleaning = all
	config.xmlprologue=none
	config.prefixLocalAnchors = 1
	config.locale_all = de_DE.ISO8859-1 
	config.language = de 
}



page.includeCSS {
	file1 = fileadmin/menu.css
}


page.includeLibs.ypMenu = fileadmin/ypmenu.php

page.headerData.11 = TEXT
page.headerData.11.value = <script type="text/javascript" src="fileadmin/res/ypSlideOutMenus.js" language="JavaScript"></script><script type="text/javascript" src="fileadmin/res/jslib.js" language="JavaScript"></script>

temp.ypMenu.special = directory
temp.ypMenu = HMENU
temp.ypMenu.special.value = 1 # hier die ID der root-page eintragen
temp.entryLevel=1

page.10 < temp.ypMenu
page.80 < temp.user_menu

3. Habt ihr die Pfade verändert, solltet ihr noch in die menu.css schaun, damit der Pfad zu den Bildern stimmt.

4. Um die Position der ypmenus zu verändert, schaut in die ypmenu.php.
Hier wieder nur ein Ausschnitt:

class user_menu {
   var $offsetY = 1; // inital offset values for the first level elements
   var $offsetX = 120;
   var $sublevelWidth = 177; // width and height values for sublevel items
   var $sublevelHeight = 22;
   
   var $padding = 5;
   var $fontSize = 12;
   var $breakpoint = 28; // recalculate width of text after x characters
   var $secPadding = 12; // 12 padding inc. border
   
   var $fontFile = '/home/typo38/dummy/fileadmin/fonts/verdana.ttf'; // font file needed to calculate linebreaks

In Zeile 4 und 5 wird die Position des Menüs verändert.
Zeile 12 gibt den Pfad zu TTF-Datei an. Hier muß übrigends der vollständige Pfad stehen!

So nun viel Spaß damit und Danke an die Macher von meade.de für das tolle Skript!

ms70 ·

das ZIP ist leider fehlerhaft - zumindest kann ich's nicht oeffnen ......

! Apps\TYPO3\ypMenu\ypmenu.zip: Unexpected end of archive

mastersolo ·

hallo woida,
ich habe versucht dein menu bei mir einzubinden,
mit den entsprechenden anpassungen die du beschrieben hast.
leider bekomme ich keine anzeige.
Frage: die platzhalter die du mit temp bezeichnet hast, müßen die auch angepasst werden, und wenn ja wie?
Ich möchte das menue auf den platzhalter ###MENU_LINKS### eingebunden haben und bin schon seit 2 Tagen damit beschäftigt.
Wer kann mir helfen ?

MfG
Mastersolo

woida ·

Wenn du dein Menü in Marker ###MENU_LINKS### haben willst, reicht ein

marks.MENU_LINKS < temp.ypMenu

Eine Änderung hab ich noch vergessen:

temp.ypMenu {
	1 = GMENU
	1 {
		IProcFunc = user_menu->firstLevel
		expAll = 1
		wrap = |
		NO = 1
		NO {
			wrap = |<br />
			XY = 120, 23
			30 = IMAGE
			30.file = fileadmin/trans.png

			50 = TEXT
			50 {
				text.field = title
				fontSize = 12
				fontFile = fileadmin/fonts/verdanab.ttf
				fontColor = #000000
				offset = 5,17
				antiAlias=0
			}
			90 = BOX
			90 {
				dimensions = 0,22,120,2
				color=black
			}
			
		}

evtl. mußt du die Pfade in Zeile 12 und 18 anpassen.

mastersolo ·

WOIDA 😃 Danke für deine Antwort.
Ich komme leider nicht weiter, hier mal meinen ganzen test script, was mache ich da falsch ?

# Die Webseite darstellen
page = PAGE
page {
        config.doctype = xhtml_trans 
        config.xhtml_cleaning = all
        config.xmlprologue=none
        config.prefixLocalAnchors = 1
        config.locale_all = de_DE.ISO8859-1 
        config.language = de
        typeNum = 0
        # Allgemeine Seiteneigenschaften setzen
        bodyTag = <body bgcolor="#FEFEFE">
        meta{
                   AUTHOR = Name
                   DESCRIPTION = Seitenbeschreibung
                  }
### Stylesheet datei einbinden
        stylesheet = fileadmin/templ/style.css
# Die Designvorlage integrieren
           10 = TEMPLATE
           10.template = FILE
           10.template.file = fileadmin/templ/VORLAGE.HTML
           10.workOnSubpart = DOKUMENT
#Body-Bereich wurde übernommen
  
page.includeCSS {
        file1 = fileadmin/menu.css
                         } 
page.includeLibs.ypMenu = fileadmin/ypmenu.php
page.headerData.11 = TEXT
page.headerData.11.value = <script type="text/javascript" src="fileadmin/res/ypSlideOutMenus.js" language="JavaScript"></script><script type="text/javascript" src="fileadmin/res/jslib.js" language="JavaScript"></script>
 
page.20 < temp.ypMenu
page.80 < temp.user_menu
 
10.marks.MENU_LINKS < temp.ypMenu      
10.marks {
# Textmenue oben erstellen
                             MENU_OBEN = TEXT
                             MENU_OBEN.value = test
#MENU_LINKS                             
#                             MENU_LINKS = TEXT
#                             MENU_LINKS.value = test

MENU_LINKS < temp.ypMenu

temp.ypMenu.special = directory
temp.ypMenu = HMENU
temp.ypMenu.special.value = 215 # hier die ID der root-page eintragen
temp.entryLevel=1
temp.ypMenu {
        1 = GMENU
        1 {
                IProcFunc = user_menu->firstLevel
                expAll = 1
                wrap = |
                NO = 1
                NO {
                        wrap = |
                        XY = 120, 23
                        30 = IMAGE
                        30.file = fileadmin/trans.png
 
                        50 = TEXT
                        50 {
                                text.field = title
                                fontSize = 12
                                fontFile = fileadmin/fonts/verdanab.ttf
                                fontColor = #000000
                                offset = 5,17
                                antiAlias=0
                        }
                        90 = BOX
                        90 {
                                dimensions = 0,22,120,2
                                color=black
                        }
                        
                }  
		IFSUB < temp.ypMenu.1.NO
		IFSUB = 1
		RO < temp.ypMenu.1.NO
		RO = 1
		RO {

		}

		IFSUBRO < temp.ypMenu.1.NO
		IFSUBRO = 1
		IFSUBRO {

		}
	}    

	2 = TMENU
	2 {
		IProcFunc = user_menu->secondLevel
		expAll = 1
		NO.linkWrap = <li>|</li>
	}

	3 = TMENU
	3 {
		IProcFunc = user_menu->thirdLevel
		expAll = 1
		NO.linkWrap = <li>|</li>
	}

	4 = TMENU
	4 {
		IProcFunc = user_menu->fourthLevel
		expAll = 1
		NO.linkWrap = <li>|</li>
	}
}
temp.user_menu = USER
temp.user_menu.userFunc = user_menu->menuEnd
}

Ich habe nämlich immer noch keine Anzeige. :o
Und meine Verzeichnisse stimmen. #angry#

Bebbi ·

Hi

habe deinen Code nur ganz kurz überflogen und nicht getestet. Beim Durchzählen habe ich das Gefühl, das was mit den Klammern nicht stimmt. Die Klammer bei Zeile 3 wird nicht geschlossen. Die Marker um Zeile 36 werden wahrscheinlich aus diesem Grund auch nicht korrekt angezeigt.

Gruss

Bebbi

woida ·

Lösch in Zeile 118 die Klammer raus und ersetz die Zeile 33-45 durch

page.20 < temp.ypMenu
page.80 < temp.user_menu
 
10.marks {
# Textmenue oben erstellen
                             MENU_OBEN = TEXT
                             MENU_OBEN.value = test
                             MENU_LINKS < temp.ypMenu
}

Die Zeilen waren bei dir definitv falsch.

mastersolo ·

Danke für die Antworten. Aber bei mir will er einfach den copier operator 😢 nicht annehmen.
Ich gebe für heute mal typo3 offen für hilfsstellungen.
http://theworld-webdesign.com/testtypo3/typo3/
benutzer = test
passwort = test

Rootpage experimental
Woida es wäre echt nett wenn du da mal nen blick draufwerfen könntest.Hättest dann auch einen bei mir gut.
MfG
Mastersolo

mastersolo ·

Super Danke. :p
Das ist wirklich sehr nett von dir.
Ich hätte da wohl noch ewig gesucht.
Hey Woida wenn Du mal in Bremen bist gebe ich dir gerne nen Bier aus. 😃
MfG
Mastersolo

mastersolo ·

Hi Woida
sag mal ich möchte gerade das menue zum horizontalen zurück ändern.
habe aber große probleme damit.
hast du da mal nen tip ?
ich habe versuch die ypmenu.php abzuändern ohne den erfolg den ich da gerne hätte.

            $GLOBALS['TSFE']->applicationData['ypMenus'][$I['uid']]['level'] = $level;
            $GLOBALS['TSFE']->applicationData['ypMenus'][$I['uid']]['uid'] = $I['uid'];
            $GLOBALS['TSFE']->applicationData['ypMenus'][$I['uid']]['imgwidth'] = $I['val']['output_w'];
            $GLOBALS['TSFE']->applicationData['ypMenus'][$I['uid']]['imgheight'] = $I['val']['output_h'];
            $GLOBALS['TSFE']->applicationData['ypMenus'][$I['uid']]['width'] = $this->sublevelWidth;
            $GLOBALS['TSFE']->applicationData['ypMenus'][$I['uid']]['height'] = $this->sublevelHeight;
            $GLOBALS['TSFE']->applicationData['ypMenus'][$I['uid']]['dir'] = 'down';


###############
#$GLOBALS['TSFE']->applicationData['ypMenus'][$I['uid']]['top'] = $GLOBALS['TSFE']->applicationData['ypTemp']['y'] + $this->offsetY;
$GLOBALS['TSFE']->applicationData['ypMenus'][$I['uid']]['top'] = $this->offsetY;
$GLOBALS['TSFE']->applicationData['ypMenus'][$I['uid']]['left'] = $this->offsetX;         
#$GLOBALS['TSFE']->applicationData['ypMenus'][$I['uid']]['left'] = $GLOBALS['TSFE']->applicationData['ypTemp']['x'] + $this->sublevelWidth; 
##############

und

#####################		   
		    // move down habe ich mit move right ausgetaucht                                       #
         #$GLOBALS['TSFE']->applicationData['ypTemp']['y'] += $I['val']['output_h'];               #
                                                                                                   #
           // move right                                                                           #
         $GLOBALS['TSFE']->applicationData['ypTemp']['x'] += $I['val']['output_w'];               #
############

hast du nen Tip ?
Oder wer kann mir da helfen ?

woida ·

Wenn du dir den Ursprungsthread raussuchst, bist du wahrscheinlich schneller am Ziel. Da war das Menü nämlich horizontal angeordnet.

Liberation ·

Hi woida,
danke das Du mein namen im php & css gelassen hast.

Habe das PHP mitlerweile so um gebaut das es auch mit 1 ebene als Tmenu funktioniert.
Wen das intressiert soll sich bei mir melden.

Gruss & happy work.

einpraegsam.​net ·

Ich habe da ständig eine Fehlermeldung im Internetexplorer, sobald ich das erste Menu "überfahre":
Fehler auf Seite

Kann es sein das da was mit dem JS nicht stimmt?

Bei allen anderen Menüpunkten fährt er richtig aus, nur beim ersten nicht!?