Zum Inhalt springen

dropdown_list_menu und Mehrsprachigkeit

Erstellt am 22. November 2006 · 9 Antworten · letzte Antwort am 10. November 2011

Tags: Frage

Danii ·

Hallo zusammen,

hat von euch schon mal jemand die dropdown_list_menu / Drop-down list menu auf Mehrsprachigkeit aufgebohrt? Bzw. ist sie sogar auf Mehrsprachigkeit ausgelegt und ich hab was verkehrt gemacht? Eigentlich hab ich die Ext ganz normal eingebunden.

Vielleicht hat jemand nen Tipp

key cee ·

Hallo,

hast du denn auch englische Seiten
bzw. englische Seitentitel?
Denn ohne englische Seitentitel
können nur deutsche Seitentitel ausgegeben werden.

lg key cee

key cee ·

Oh, falsch ausgedrückt... #paralyzed#

Naja egal hat damit sowieso nix zu tun,
ich habe es ausprobiert und die Variante "Dropdown Menu Unterseiten Listbox"
zeigt auch bei mir nicht die englischen Titel an.

im Template Analyzer steht das hier:

Constant

plugin.dropdown_list_menu {

  field=title

  popup=0


  popupParams=width=600,height=300,left=10,location=no,menubar=no,resizable=no,scrollbars=no,status=0,toolbar=no,top=10

  classList=

  firstLabel=

  recursionLevel=0

  separatorChar=-

}

Setup

includeLibs.tx_dropdownlistmenu_pi1 = typo3conf/ext/dropdown_list_menu/class.tx_dropdownlistmenu_pi1.php

plugin.tx_dropdownlistmenu_pi1 >
plugin.tx_dropdownlistmenu_pi1 = USER_INT
plugin.tx_dropdownlistmenu_pi1 {

  userFunc = tx_dropdownlistmenu_pi1->getSelectorBox
  
  pid_list.field = pages
  menuName = dropDownListMenu
  popup = {$plugin.dropdown_list_menu.popup}
  popupParams = {$plugin.dropdown_list_menu.popupParams}
  field = {$plugin.dropdown_list_menu.field}
  firstLabel = {$plugin.dropdown_list_menu.firstLabel}
  formTagParams = style="margin:0;"
  selectTagParams = class="{$plugin.dropdown_list_menu.classList}"
  recursionLevel = {$plugin.dropdown_list_menu.recursionLevel}
  separatorChar = {$plugin.dropdown_list_menu.separatorChar}
  
  general_stdWrap.wrap = <table border="0" cellspacing="0" cellpadding="0"><tr><td>|</td></tr></table><BR>

}

vielleicht extra einmal für englische Seiten anlegen...

Ich bin heute ziemlich Ideenlos und unkonzentriert. 😢

lg key cee

Cybersmog ·

Ich stehe gerade vor dem gleichen Problem. Gibts dazu schon was Neues? Sonst werde ich mich wohl hinsetzen müssen und selber versuchen, das Problem zu beheben.

Gruß
Peter

Danii ·

Leider keine Lösung. Ich hab zwar noch getestet, hab's aber dann wegen Zeitmangel mit ner normalen Subnavi gelöst.

Also wenn du Zeit hast... vielleicht kannst du das Prob ja lösen und hier posten.

Cybersmog ·

So, ich habe eine Lösung. Keine Ahnung, ob es die eleganteste ist, aber es funktioniert. In dem Zug habe ich gleich auch noch den Fehler behoben, dass im Menü versteckte Seiten trotzdem angezeigt wurden.

Die Funktion walkPages() hiermit austauschen:

	function walkPages($pidList, $enableFields, $local_cObj, $level)
	{
    	$tempString = "";
            $level ++;

        // Making tag string
        if ($GLOBALS["TSFE"]->sys_language_uid == 0) {
        	// old code for default language
        	$table_p = " pages ";
        	$where .= " doktype in (1,2,3,4)";
        	$where .= " AND pid in (".$pidList.")";
        	$where .= " ".$enableFields;
        	// patch to respect pages which are not in menu
        	$where .= " AND nav_hide != 1";
        	$order_by = " sorting;" ;
        	$res = $GLOBALS["TYPO3_DB"]->exec_SELECTquery( ' * ', $table_p, $where, '', $order_by );
        }
        else {
        	// patch for other languages
        	$table_p = " pages, pages_language_overlay";
        	$where .= " pages.doktype in (1,2,3,4)";
        	$where .= " AND pages.pid in (".$pidList.")";
        	$where .= " AND pages_language_overlay.sys_language_uid = ".$GLOBALS['TSFE']->sys_language_uid;
        	$where .= " AND pages.uid = pages_language_overlay.pid";
        	$where .= " ".$enableFields;
        	$where .= " ".$this->cObj->enableFields(pages_language_overlay);
        	$where .= " AND pages.nav_hide != 1";
        	$order_by = " pages.sorting;" ;
        	$res = $GLOBALS["TYPO3_DB"]->exec_SELECTquery( ' pages.uid, pages_language_overlay.title ', $table_p, $where, '', $order_by );
        }

        while($row=$GLOBALS["TYPO3_DB"]->sql_fetch_assoc($res))
        {
        	$tempString .= $this->getTypolink ($local_cObj, intval($row["uid"]), $row[$this->field], $row["title"], $level);

        	// If recursion is selected and recursionLevel not yet reached
        	if (($this->conf["recursionLevel"] == -1) OR ($level < $this->conf["recursionLevel"]))
        	$tempString .= $this->walkPages($row["uid"], $enableFields, $local_cObj, $level);
        }

        return $tempString;
    }

Außerdem habe ich noch einen Fehler im Zusammenspiel mit RealURL behoben:

	function getHref ($linkTag)	{
		// modified pattern to work with RealURL
		return preg_replace(array ( '/.*<(A|a) (HREF|href)="/','/" >/' ), '$3', $linkTag);
	}

Feedback ist jederzeit willkommen.

Ich werde auch nochmal versuchen, Bertrand Mure, den Entwickler der Extension, zu erreichen und ihn dazu zu bringen, einen neue Version herauszugeben. Ich hatte es Ende November schonmal versucht, ihn anzumailen, aber da hab ich keine Antwort bekommen.

Gruß
Peter

henben ·

Hallo Cybersmog,

habe Deinen Code ausprobiert, zeigt nun auch die Englischen Titel an, nur hört er nach dem zweiten Unterpunkt auf die Enlischen Titel aufzulisten.

In der default Sprache (deutsch) zeigt das Menü alle 16 Menüpunkte mit Unterseiten an.

Hier mein Setup:
Constants:

plugin.dropdown_list_menu {
	field = title
	popup = 0
	popupParams = width=600,height=300,left=10,location=no,menubar=no,resizable=no,scrollbars=no,status=0,toolbar=no,top=10
	classList =
	# Level of recursion.
	recursionLevel = 1
	separatorChar = ++
	firstLabel= 
}

und mein TS:

temp.jsmenu_express = USER_INT

temp.jsmenu_express < plugin.tx_dropdownlistmenu_pi1
plugin.tx_dropdownlistmenu_pi1 >
temp.jsmenu_express {
	general_stdWrap.wrap = <div class="expresswahl">|</div>
	# You can define the starting point directly in TS
	#pid_list.override = 14
	pid_list.override = {$dropDownListPid}
	field=title
	
	pid_list.field = pages
  	menuName = dropDownListMenu1
  	#formTagParams = style="margin:0;"
  	formTagParams =
  	#selectTagParams = style="color: red;"
  	selectTagParams =
}

Liegt es den Einstellungen oder ist irgenwo im Code der Haken?

Danke für die Hilfe!

crossl ·
Cybersmog schrieb

So, ich habe eine Lösung. Keine Ahnung, ob es die eleganteste ist, aber es funktioniert. In dem Zug habe ich gleich auch noch den Fehler behoben, dass im Menü versteckte Seiten trotzdem angezeigt wurden.

Die Funktion walkPages() hiermit austauschen:

	function walkPages($pidList, $enableFields, $local_cObj, $level)
	{
    	$tempString = "";
            $level ++;

...

bei mir funktioniert das nicht - da ist dann das dropdown menü plötzlich leer...
Typo3 4.4x