Hallo David.

Ich stoße auch regelmäßig an diese Stelle und ärgere mich ein wenig.

Die einzige Stelle im TYPO3-Core die die von dir angesprochenen Checkboxen 
berücksichtigt ist das Menü, genauer gesagt das AbstractMenuContentObject. Es 
gibt keinen ViewHelper dafür, keine Overlayfunktion und keinen stdWrap.

Um grundsätzlich den Wert der Checkbox auszulesen muss die Property "l18n_cfg" 
einer Seite in GeneralUtility::hideIfNotTranslated() geworfen werden, raus 
kommt dann TRUE oder FALSE und gibt an, wie sich verhalten werden soll wenn 
keine Übersetzung existiert.

"Das Menü" bedeutet aber in diesem Fall: Sowohl das Seitenmenü, das ab einer 
anzugebenden Startseite eine anzugebende Zahl an Treelevels rendert als auch 
(Trommelwirbel) das Sprachmenü, also das Menü mit "special = language" und 
"special.value = {$uidsOfAllowedLanguages}". Und natürlich auch alle anderen 
specials, wie rootline oder update.

Ich bin bei Menüs, auch bei Sprachmenüs, bisher immer der Einfachheit halber 
beim TypoScript-Menüobjekt geblieben. Gerade solche Feinheiten wie "Seite im 
Menü verbergen" oder "Nur Seiten anzeigen die in dieser Übersetzung vorhanden 
sind" sind leider bislang nicht anderweitig implementiert.

Als Implementierungsidee könnte ich mir vorstellen, "irgend ein" Menü als 
Standard-HierarchicalMenu-Objekt innerhalb eines MenuViewHelpers (den es noch 
nicht gibt) zu erzeugen (unabhängig davon ob das jetzt ein Seitenmenü ist, ein 
Sprachmenü oder eines der anderen "special"-Varianten), das sich ergebende HTML 
dann durch einen XML-Parser (das DOMDocument bietet sich hier an) zu schieben 
und so den Coreoutput in ein eigenes "Menu" DomainObject zu verwandeln. Das 
lässt sich dann im ViewHelper in den den templateVariableContainer übergeben 
und kann man durch Partials und Nesting ein ganz hervorragendes Menü bauen, 
ohne dabei auf die unzähligen Mächtigkeiten des Coremenüs verzichten oder die 
nachbauen zu müssen.

Das ist jetzt zwar keine wahnsinnig elegante Variante. Sie hat aber den 
Vorteil, dass die gefühlten 1000 Eigenheiten des Menüs alle erhalten bleiben. 
Checkbox "Seite im Menü verbergen" zum Beispiel oder die diversen 
"special"-Möglichkeiten (directory, list, update, rootline, browse, keywords, 
categories, language), alles das was das bisherige Menü schon kann will man 
eben einfach nicht nachbauen sondern möglichst die Features aus dem Core nutzen.

Wer eine bessere Idee hat: Immer raus damit. Allerdings führt "einfach alle 
Seiten selbst abfragen" erfahrungsgemäß von einem fehlenden Feature ins nächste.

Gruß,


Stephan Schuler
Web-Entwickler

Telefon: +49 (911) 539909 - 0
E-Mail: stephan.schu...@netlogix.de
Website: media.netlogix.de



------------------------------------

E-Mail-Archivierung – Rechtssicher, wirtschaftlich, clever
Jetzt anmelden zum kostenlosen Webinar am 29.07.:
http://it-training.netlogix.de/angebote/webinare/mailstore



--
netlogix GmbH & Co. KG
IT-Services | IT-Training | Media
Neuwieder Straße 10 | 90411 Nürnberg
Telefon: +49 (911) 539909 - 0 | Fax: +49 (911) 539909 - 99
E-Mail: i...@netlogix.de | Internet: http://www.netlogix.de

netlogix GmbH & Co. KG ist eingetragen am Amtsgericht Nürnberg (HRA 13338)
Persönlich haftende Gesellschafterin: netlogix Verwaltungs GmbH (HRB 20634)
Umsatzsteuer-Identifikationsnummer: DE 233472254
Geschäftsführer: Stefan Buchta, Matthias Schmidt



-----Ursprüngliche Nachricht-----
Von: typo3-german-boun...@lists.typo3.org 
[mailto:typo3-german-boun...@lists.typo3.org] Im Auftrag von David Greiner
Gesendet: Mittwoch, 23. Juli 2014 09:50
An: typo3-german@lists.typo3.org
Betreff: [TYPO3-german] f:link.page auf versteckte Übersetzung

Hallo Liste!

In einem Projekt habe ich ein Language-Menu mittels Extbase/Fluid selbst 
zusammengeschraubt.
Da es einige Sprachen gibt, die noch nicht im System integriert sind, es aber 
eine entsprechende Webseite unter einer anderen Domain gibt, habe ich 
sys_language um ein Feld "Link zu externer Seite" erweitert.

In meinem Sprachmenü wird nun über die angelegten Webseiten-Sprachen iteriert 
und das Menü ausgeben. Entweder landet man auf der externen Seite oder - so 
vorhanden - auf einer entsprechenden übersetzten Seite des TYPO3-Systems.

Nun passiert folgendes:

In der Default-Sprache sollen einige Seiten nicht angezeigt werden (Hide 
default translation of page). Dies berücksichtigt mein Sprachmenü nicht, da es 
dem QueryString der aktuell aufgerufenen Seite lediglich den L-Parameter 
anhängt.
Nun habe ich auf der deutschen Seite Links zu Übersetzungen in der 
Default-Sprache die eigentlich gar nicht angezeigt werden sollen.

Hat jemand eine Idee, wie ich das clever berücksichtigen kann?
Jeden Link durch einen extra Viewhelper zu jagen um die uid herauszufinden und 
zu überprüfen ob die Seite in der Default-Sprache angezeigt werden soll oder 
nicht, halte ich für ziemlich unperformant. Was anderes Fällt mir aber auch 
nicht ein.


Gruß, David.
_______________________________________________
TYPO3-german mailing list
TYPO3-german@lists.typo3.org
http://lists.typo3.org/cgi-bin/mailman/listinfo/typo3-german
_______________________________________________
TYPO3-german mailing list
TYPO3-german@lists.typo3.org
http://lists.typo3.org/cgi-bin/mailman/listinfo/typo3-german

Antwort per Email an