Zum Inhalt springen

ypSlideOutMenu und TYPO3 4.3

Erstellt am 23. Dezember 2009 · 17 Antworten · letzte Antwort am 9. März 2010

Tags: JavaScript & AJAX, Frage

md ·

Das ypSlideOutMenu soll in der Version 1.0.10 für TYPO3 4.3 gefixt sein.
Leider läuft es bei mir trotzdem nicht.

Normalerweise wird das Javascript

<script src="typo3conf/ext/int_ypslideoutmenu/res/ypSlideOutMenus.js" type="text/javascript"><!-- //--></script>

auch immer automatisch eingebunden, was nach der Installation von 1.0.10 nicht der Fall ist. Das habe ich über page.includeJS erledigt.

Hat jemand einen Tipp, ob das Menü in der neuen Version anders integriert werden muss?

Schöne Feiertage
md

dorf ·

Hi,

wie konntest du das per page.includeJS einbinden?

Wennich es mit

page.includeLibs.ypMenu = typo3conf/ext/int_ypslideoutmenu/class.tx_menu_ypslideoutmenu.php

versuche bekomm ich im Kopf der Seite nur den Text: typo3temp/javascript_1ab6ddda6f.js angezeigt. Die script anweisung wird einfach nicht geschrieben, wenn ich per includeJS es versuche wird das JS nicht eingebunden

md ·

HI.

page.includeJS {
    file11 = typo3conf/ext/int_ypslideoutmenu/res/ypSlideOutMenus.js
}

einfach ins Setup der des Navi-Templates.
Stimmt der Pfad zur Extension bei Dir???

md

md ·

Übrigens gibts im TER eine neue version des int_ypslideoutmenu.

Geht aber bei mir leider noch immer nicht in TYPO3 4.3.

md

dorf ·

ok, jetzt bindet er es ein. Aber sobald es eingebunden ist verschwinden die Navigationspunkte

######
#
# Snippets by http://typo3.intervation.de/int-extensionen/int-ypslideoutmenu.html
#
####
#page.includeLibs.ypMenu = typo3conf/ext/int_ypslideoutmenu/class.tx_menu_ypslideoutmenu.php
page.includeJS {
    file1 = typo3conf/ext/int_ypslideoutmenu/res/ypSlideOutMenus.js
} 

lib.menue = HMENU
lib.menue {
  special = directory
  special.value = 15
  stdWrap.dataWrap = <ul>|</ul>
  stdWrap.required = 1
 
  korek_css = padding-bottom:20px;margin-left:1px;text-align:left
  aniLen = 800
  hideDelay = 5
  minCPUResolution = 10
  kore_so_x = -2
  div_id_layer = yymenu

  1 = tx_menu_ypslideoutmenu
  1 {
  
    expAll=1
    NO = 1
    NO {
      linkWrap = <span>|</span>
      ATagBeforeWrap = 1
      allWrap = <li>|</li>
    }
  }
  2 = tx_menu_ypslideoutmenu
  2 {
      moveTo = down
      height = 22
      width = 177
      expAll=1
      NO {
      }
  }
  3 < .2
  3.moveTo = right
  3.width= 177
  
}
dorf ·

Mit der Version 1.0.11 gehts jetzt

Statt:
page.includeJS {
file1 = typo3conf/ext/int_ypslideoutmenu/res/ypSlideOutMenus.js
}

einfach:
page.includeLibs.ypMenu = typo3conf/ext/int_ypslideoutmenu/class.tx_menu_ypslideoutmenu.php

danach liefs bei mir mit in der Version 4.3

md ·

PERFEKT!

Das wars:

page.includeLibs.ypMenu = typo3conf/ext/int_ypslideoutmenu/class.tx_menu_ypslideoutmenu.php

Danke für den Tipp.

md

Fridolin100 ·

Hallo,

ich würde mich sehr freuen, wenn mir jemand einen Tipp geben könnte: Stehe gerade auf dem Schlauch. Das Update von 4.2.10 auf 4.3.2 ist gut gelaufen, obwohl mehrere Präsenzen auf der Instanz liegen. Nur das Ypslideoutmenü macht Probleme. Mein alter TS-Code scheint nicht mehr zu funktionieren; danach waren alle Menüpunkte weg.

Also habe ich den bei Euch funktionierenden Vorschlag verwendet:

page.includeLibs.ypMenu = typo3conf/ext/int_ypslideoutmenu/class.tx_menu_ypslideoutmenu.php
page.includeJS {file1 = typo3conf/ext/int_ypslideoutmenu/res/ypSlideOutMenus.js
}

lib.menue = HMENU
lib.menue {
  special = directory
  special.value = 15
  stdWrap.dataWrap = <ul>|</ul>
  stdWrap.required = 1
 
  korek_css = padding-bottom:20px;margin-left:1px;text-align:left
  aniLen = 800
  hideDelay = 5
  minCPUResolution = 10
  kore_so_x = -2
  div_id_layer = yymenu

  1 = tx_menu_ypslideoutmenu
  1 {
 
    expAll=1
    NO = 1
    NO {
      linkWrap = <span>|</span>
      ATagBeforeWrap = 1
      allWrap = <li>|</li>
    }
  }
  2 = tx_menu_ypslideoutmenu
  2 {
      moveTo = down
      height = 22
      width = 177
      expAll=1
      NO {
      }
  }
  3 < .2
  3.moveTo = right
  3.width= 177
 
}

Allerdings ist der Platzhalter (bei mir ###TOP-MENU###) so nicht eingebunden. Daher steht an der Stelle des Menüs nun ###TOP-MENU###. Mein vorheriger Ansatz mit

      TOP-MENU = HMENU
   TOP-MENU {

führt leider auch nur dazu, dass das Menü ganz verschwindet. Ich fürchte, es ist nur eine ganz blöde Sache, bei der ich gerade völlig auf dem Schlauch stehe?

Grüße
Frido

md ·

Hallo,

also erst einmal kannst Du folgende Zeile weglassen:

page.includeJS { file1 = typo3conf/ext/int_ypslideoutmenu/res/ypSlideOutMenus.js }

Wenn Du dann den Marker ###TOP-MENU### verwendest, müsstest Du diesen eigentlich nur im Template einbinden.

marks.TOP-MENU < lib.menue

Grüße

md

Fridolin100 ·

Hallo MD,

Danke für die schnelle Antwort. Ich habe das eben probiert, doch dann erscheint auch nur der Marker-Titel ###TOP-MENU### an Stelle des Menues. Komisch, normalerweise weist man doch dem Marker einfach per "=" die Funktion zu, also TOP-MENU = HMENU

Als HMENU müsste ich doch das ypslideoutmenu definieren können? Gibt es vielleicht noch eine andere Stelle, wo ein Pfad oder ähnliches fehlerhaft sein könnte? Ich bin gerade sehr verwirrt...

Danke und Grüße
Frido

md ·

Hallo Fridolin100,

vielleicht wäre es das einfachste, wenn Du Dein komplettes TYPOScript Template mal hier postest - oder per PM schickst.

md

Fridolin100 ·

Hallo MD,

Danke für die Bereitschaft, Dir das mal anzusehen. Mir ist das schon peinlich, dass ich da nicht weiterkomme...

Das TS sieht so aus:

# RealURL-Konfiguration
	config.simulateStaticDocuments = 0
	config.baseURL = 1
	config.tx_realurl_enable = 1
		config.prefixLocalAnchors = all
config.baseURL = http://www.domain.de/

# spamschutz E-Mail
   config.spamProtectEmailAddresses = 3 
   config.spamProtectEmailAddresses_atSubst = (at)
   

# XHTML
   config.doctype = xhtml_trans
   config.xhtml_cleaning = all

# cache period
   config.cache_period = 3600

# language
   config.htmlTag_langKey = de
   config.metaCharset = utf-8
   config.language = de
   config.locale_all = de_DE
   
# Piwik Webanalyse
	config.tx_piwika2 {
  	idsite = 1
  	host   = http://www.domain.de/webanalyse
}
   
# Mailformular
	plugin.tx_thmailformplus_pi1.stylesheetFile = fileadmin/templates/main/formular/domainform_css.css
	plugin.tx_thmailformplus_pi1.default.required_marker = *
	plugin.tx_thmailformplus_pi1.default.email_sendtouser = email


# Mailverifizierung
bgmformhandling{
	alpha {
		ereg=alpha
		name = alpha
		description = The value is restricted to alphabetic chars (a-z)
		description.de = Bitte geben Sie nur Buchstaben ein.
	}
	alphanum {
		ereg=alphanum
		name = alphanum
		description= The value is restricted to alphanumeric characters only (a-z;0-9)
		description.de = Bitte geben Sie nur Buchstaben und Zahlen, keine Sonderzeichen ein
	}
	nodigit {
		ereg=nodigit
		name = nodigit
		description = The field doesn’t accept digit chars
		description.de = Bitte geben Sie hier keine Zahlen ein
	}	
}
   

page = PAGE
page {
   typeNum = 0
   stylesheet = fileadmin/templates/main/css/columns3.css
   shortcutIcon = fileadmin/templates/main/favicon.ico
   meta.AUTHOR = AUTOR
   meta.COPYRIGHT = COPYRIGHT
   meta.DESCRIPTION = DESCRIPTION
   meta.KEYWORDS = KEYWORDS
   meta.TITLE = TITLE

   10 = TEMPLATE
   10.template = FILE
   10.template.file = fileadmin/templates/main/index.html
   10.workOnSubpart = DOCUMENT_BODY
   10.marks {
   
   
   
   ### Menü ###
   
   
  marks.TOP-MENU < lib.menue 
  
lib.menu = HMENU
lib.menu{
  special = directory
  special.value = 4
  stdWrap.dataWrap = <ul>|</ul>
  stdWrap.required = 1
   
 
  cssfile = 1
  korek_css = padding-bottom:20px;margin-left:2px;text-align:left
  aniLen = 800
  hideDelay = 5
  minCPUResolution = 10 
  kore_so_x = -2
  div_id_layer = yymenu

  1 = tx_menu_ypslideoutmenu
  1 {
 
    expAll=1
    NO = 1
    NO {
      linkWrap = <span>|</span>
      ATagBeforeWrap = 1
      allWrap = <li>|</li>
    }
  }
  2 = tx_menu_ypslideoutmenu
  2 {
      moveTo = down
      height = 22
      width = 177
      expAll=1
      NO {
      }
  }
  3 < .2
  3.moveTo = down
  3.width= 177
 
}

  

 
   HEADER-IMG = IMAGE
   HEADER-IMG {
      file = fileadmin/templates/main/img/img_header.gif
      stdWrap.typolink.parameter = 1
      alttext = Startseite
   }

   LEFT-MARKER = CONTENT
   LEFT-MARKER {
      table = tt_content
      select.orderBy = sorting
      select.where = colPos = 1
   }

   MIDDLE-MARKER = CONTENT
   MIDDLE-MARKER {
      table = tt_content
      select.orderBy = sorting
      select.where = colPos = 0
   }

   RIGHT-MARKER = CONTENT
   RIGHT-MARKER {
      table = tt_content
      select.orderBy = sorting
      select.where = colPos = 2
   }
   }
}


# Sonderzeichen
	lib.stdheader.10.setCurrent.htmlSpecialChars = 0
	tt_content.header.10.htmlSpecialChars = 0
	
	 tt_content.menu.20.1.1.NO.stdWrap.htmlSpecialChars = 0
	 tt_content.menu.20.1.2.NO.stdWrap.htmlSpecialChars = 0
	 tt_content.menu.20.1.3.NO.stdWrap.htmlSpecialChars = 0
	 tt_content.menu.20.1.4.NO.stdWrap.htmlSpecialChars = 0
	 tt_content.menu.20.typ.level.NO.stdWrap.htmlSpecialChars = 0



# Login-Feld

[usergroup=*]
   page.10.subparts.LOGIN = TEXT
   page.10.subparts.LOGIN.value(
      <form action="index.php?id=1" method="post">
      Projekt-Login: <span><!--###USERNAME###--></span>
      <br />
      <input class="submit logout" type="submit" name="submit" value="Abmelden" />
      <input type="hidden" name="logintype" value="logout"/>
      <input type="hidden" name="pid" value="127" />
      </form>
   )
[else]
   page.10.subparts.LOGIN = TEXT
   page.10.subparts.LOGIN.value (
      <form action="index.php?id=1" method="post" onsubmit="superchallenge_pass(this); return true;">
      <input class="input" type="text" id="user" name="user" value="Login" onfocus="if (this.value == 'Benutzername') this.value = '';"/>
      <br/>
      <input class="input" type="password" id="pass" name="pass" value="password" onfocus="if (this.value == 'password') this.value = '';"/>
      <br/>
      <input class="submit" type="submit" name="submit" value="Anmelden"/>
      <input type="hidden" name="logintype" value="login"/>
      <input type="hidden" name="pid" value="127" />
      <input type="hidden" name="redirect_url" value="index.php?id=1" />
      </form>
   )
[GLOBAL]
md ·

Versuchs mal so:

den lib.menu Abschnitt aus dem PAGE-Bereich rausnehmen und bei ### Menü ### wieder TOP-MENU < lib.menue schreiben.

So sollte es gehen.

# RealURL-Konfiguration
        config.simulateStaticDocuments = 0
        config.baseURL = 1
        config.tx_realurl_enable = 1
                config.prefixLocalAnchors = all
config.baseURL = http://www.domain.de/

# spamschutz E-Mail
   config.spamProtectEmailAddresses = 3
   config.spamProtectEmailAddresses_atSubst = (at)
   

# XHTML
   config.doctype = xhtml_trans
   config.xhtml_cleaning = all

# cache period
   config.cache_period = 3600

# language
   config.htmlTag_langKey = de
   config.metaCharset = utf-8
   config.language = de
   config.locale_all = de_DE
   
# Piwik Webanalyse
        config.tx_piwika2 {
        idsite = 1
        host   = http://www.domain.de/webanalyse
}
   
# Mailformular
        plugin.tx_thmailformplus_pi1.stylesheetFile = fileadmin/templates/main/formular/domainform_css.css
        plugin.tx_thmailformplus_pi1.default.required_marker = *
        plugin.tx_thmailformplus_pi1.default.email_sendtouser = email


# Mailverifizierung
bgmformhandling{
        alpha {
                ereg=alpha
                name = alpha
                description = The value is restricted to alphabetic chars (a-z)
                description.de = Bitte geben Sie nur Buchstaben ein.
        }
        alphanum {
                ereg=alphanum
                name = alphanum
                description= The value is restricted to alphanumeric characters only (a-z;0-9)
                description.de = Bitte geben Sie nur Buchstaben und Zahlen, keine Sonderzeichen ein
        }
        nodigit {
                ereg=nodigit
                name = nodigit
                description = The field doesn’t accept digit chars
                description.de = Bitte geben Sie hier keine Zahlen ein
        }       
}
   
lib.menu = HMENU
lib.menu{
  special = directory
  special.value = 4
  stdWrap.dataWrap = <ul>|</ul>
  stdWrap.required = 1
   
 
  cssfile = 1
  korek_css = padding-bottom:20px;margin-left:2px;text-align:left
  aniLen = 800
  hideDelay = 5
  minCPUResolution = 10
  kore_so_x = -2
  div_id_layer = yymenu

  1 = tx_menu_ypslideoutmenu
  1 {
 
    expAll=1
    NO = 1
    NO {
      linkWrap = <span>|</span>
      ATagBeforeWrap = 1
      allWrap = <li>|</li>
    }
  }
  2 = tx_menu_ypslideoutmenu
  2 {
      moveTo = down
      height = 22
      width = 177
      expAll=1
      NO {
      }
  }
  3 < .2
  3.moveTo = down
  3.width= 177
 
}

page = PAGE
page {
   typeNum = 0
   stylesheet = fileadmin/templates/main/css/columns3.css
   shortcutIcon = fileadmin/templates/main/favicon.ico
   meta.AUTHOR = AUTOR
   meta.COPYRIGHT = COPYRIGHT
   meta.DESCRIPTION = DESCRIPTION
   meta.KEYWORDS = KEYWORDS
   meta.TITLE = TITLE

   10 = TEMPLATE
   10.template = FILE
   10.template.file = fileadmin/templates/main/index.html
   10.workOnSubpart = DOCUMENT_BODY
   10.marks {
   
   ### Menü ###
   TOP-MENU < lib.menue


   HEADER-IMG = IMAGE
   HEADER-IMG {
      file = fileadmin/templates/main/img/img_header.gif
      stdWrap.typolink.parameter = 1
      alttext = Startseite
   }

   LEFT-MARKER = CONTENT
   LEFT-MARKER {
      table = tt_content
      select.orderBy = sorting
      select.where = colPos = 1
   }

   MIDDLE-MARKER = CONTENT
   MIDDLE-MARKER {
      table = tt_content
      select.orderBy = sorting
      select.where = colPos = 0
   }

   RIGHT-MARKER = CONTENT
   RIGHT-MARKER {
      table = tt_content
      select.orderBy = sorting
      select.where = colPos = 2
   }
   }
}


# Sonderzeichen
        lib.stdheader.10.setCurrent.htmlSpecialChars = 0
        tt_content.header.10.htmlSpecialChars = 0
       
         tt_content.menu.20.1.1.NO.stdWrap.htmlSpecialChars = 0
         tt_content.menu.20.1.2.NO.stdWrap.htmlSpecialChars = 0
         tt_content.menu.20.1.3.NO.stdWrap.htmlSpecialChars = 0
         tt_content.menu.20.1.4.NO.stdWrap.htmlSpecialChars = 0
         tt_content.menu.20.typ.level.NO.stdWrap.htmlSpecialChars = 0



# Login-Feld

[usergroup=*]
   page.10.subparts.LOGIN = TEXT
   page.10.subparts.LOGIN.value(
      <form action="index.php?id=1" method="post">
      Projekt-Login: <span><!--###USERNAME###--></span>
     
      <input class="submit logout" type="submit" name="submit" value="Abmelden" />
      <input type="hidden" name="logintype" value="logout"/>
      <input type="hidden" name="pid" value="127" />
      </form>
   )
[else]
   page.10.subparts.LOGIN = TEXT
   page.10.subparts.LOGIN.value (
      <form action="index.php?id=1" method="post" onsubmit="superchallenge_pass(this); return true;">
      <input class="input" type="text" id="user" name="user" value="Login" onfocus="if (this.value == 'Benutzername') this.value = '';"/>
      <br/>
      <input class="input" type="password" id="pass" name="pass" value="password" onfocus="if (this.value == 'password') this.value = '';"/>
      <br/>
      <input class="submit" type="submit" name="submit" value="Anmelden"/>
      <input type="hidden" name="logintype" value="login"/>
      <input type="hidden" name="pid" value="127" />
      <input type="hidden" name="redirect_url" value="index.php?id=1" />
      </form>
   )
[GLOBAL]
Fridolin100 ·

Hallo md,

habe nun den Menü-Konfigurationsbereich nach oben gezogen, vor den PAGE-Bereich. Das sieht dann so aus:

# Menueinstellungen   

lib.menu = HMENU
lib.menu{
  special = directory
  special.value = 4
  stdWrap.dataWrap = <ul>|</ul>
  stdWrap.required = 1
   
 
  cssfile = 1
  korek_css = padding-bottom:20px;margin-left:2px;text-align:left
  aniLen = 800
  hideDelay = 5
  minCPUResolution = 10
  kore_so_x = -2
  div_id_layer = yymenu

  1 = tx_menu_ypslideoutmenu
  1 {
 
    expAll=1
    NO = 1
    NO {
      linkWrap = <span>|</span>
      ATagBeforeWrap = 1
      allWrap = <li>|</li>
    }
  }
  2 = tx_menu_ypslideoutmenu
  2 {
      moveTo = down
      height = 22
      width = 177
      expAll=1
      NO {
      }
  }
  3 < .2
  3.moveTo = down
  3.width= 177
 
}

Danach folgt dann der PAGE-Bereich:

page = PAGE
page {
   typeNum = 0
   stylesheet = fileadmin/templates/main/css/columns3.css
   shortcutIcon = fileadmin/templates/main/favicon.ico

   10 = TEMPLATE
   10.template = FILE
   10.template.file = fileadmin/templates/main/index.html
   10.workOnSubpart = DOCUMENT_BODY
   10.marks {
   
### TOP-MENU ###
    TOP-MENU < lib.menue

Ich glaube, so meintest Du das? Das klingt auch logisch, denn ich hatte den PAGE-Bereich ja ein wenig zusammengewürfelt. Allerdings sehe ich auch nach Cache-Löschung nur das "###TOP-MENU###" in der Menüzeile. Vielleicht habe ich auch etwas falsch verstanden?

Frido

md ·
page.includeLibs.ypMenu = typo3conf/ext/int_ypslideoutmenu/class.tx_menu_ypslideoutmenu.php

hast du im TYPOScript (Konfiguration) drin???

Die Extension (ypslideoutmenu) ist installiert??? 😉

ansonsten sehe ich jetzt den Fehler auch nicht...

md

Fridolin100 ·

Hallo md,

noch mal Danke für Deine Hilfe. Ich bin mir nicht sicher, was Du mit der Konfiguration im TS meinst, eventuell dies:

page.includeLibs.ypMenu = typo3conf/ext/int_ypslideoutmenu/class.tx_menu_ypslideoutmenu.php

Dies habe ich oberhalb des "lib.menu" eingebaut. Vielleicht meinst Du auch etwas anderes? Muss für die Extension doch noch was in den Konstanten geändert werden?

Die Extension ist installiert und auf dem aktuellen Stand, laut Extensions-Manager. Das ist 1.0.10.

Grüße
Frido

Fridolin100 ·

Trotzdem Danke für die Unterstützung!

Eben habe ich noch mal die Reihenfolge im Typoscript geändert und zumindest erscheint statt ###TOP-MENU### gar kein Menü mehr. Dann habe ich ein klassisches TMENU eingebaut, das auch funktioniert. Hilft das bei der Fehlersuche?

Ansonsten werde ich, auch weil mein Provider mir mitgeteilt hat, dass ohne erhebliche monatliche Zusatzkosten keine Möglichkeit für InnoDB statt myIsam (bei mySQL) besteht wohl oder übel auf ein anderes CMS umsteigen müssen. Weil Multisite eine zwingende Anforderung ist, kommen wohl Typolight und Drupal in Frage, mal sehen. Ich hoffe, dass die Systeme sonst den Anforderungen genügen. Typo3 ist für mein Shared Hosting einfach unpraktikabel, da kann man nichts machen. Man trickst immer nur herum (ohne Shell, ohne innoDB, Uploadbeschränkungen...), und vergeudet damit viel Zeit. Sonst bin ich aber von Typo3 restlos begeistert. Dennoch werde ich den - ebenfalls zeitaufwändigen - Umzug auf ein anderes CMS wohl angehen müssen, will ich keinen eigenen Server mieten.

Grüße
Frido