Elemente mit TypoScript anhand eines gesetzten GET-Parameters verbergen

Ich hatte ja schon vor einem halben Jahr nach einer Möglichkeit gesucht mit TypoScript ein Element bei einer bestimmten Sprache zu verstecken, diesmal aber habe ich nach einem Weg gesucht um bei einem bestimmten via GET übergebenen Parameter egal welchen Wertes ein Element nicht zu rendern – und siehe da, auch hier gibt es einen Weg:

page.10.marks.CONTENT.10.renderObj.stdWrap.if {
  #isTrue.data checks if my-custom-param has a value and is greater zero
  isTrue.data = GP:my-custom-param
  isInList.field = uid
  #select content elements with the following ids
  value = 2793,2797
  #hide them
  negate = 1
}

Das Template rendert den Inhalt in den ###CONTENT### – Marker hinein, unter 10 wird der zu modifizierende Content eingebaut, in meinem Fall wird unter 20 (nicht im Snippet zu sehen) dann weiterer Content eingebaut und dazwischen sitzen 2 Elemente mit der uid 2793 und 2797. Diese Elemente werden jetzt nicht mehr ausgegeben, sobald in der URL der Parameter „my-custom-param“ einen Wert hat, wobei „“ und 0 als FALSE gewertet werden, in meinem Beispiel würden die Elemente also bei example.com/index.php?my-custom-param=0 gerendert werden, bei jedem anderen Beispiel wie example.com/index.php?my-custom-param=customValue wären sie versteckt. Man beachte, dass die Notation hier für GET- und POST-Variablen gilt.
Tipps, Tricks? Verbesserungsvorschläge? Her damit!

Content-Element mit TypoScript für spezielle Sprache nicht rendern

Ist-Situation: Ein Content-Element wird für alle Sprachen ausgegeben

… enthält jedoch Inhalte, die in zwei Sprachen ausgeschlossen werden sollen. Das Content-Element wird immer am Ende jeder Seite gerendert. Folgendes TypoScript lädt den Inhalt:

page.20 = CONTENT
page.20 {
  table = tt_content
  select.orderBy = sorting
  select.languageField = sys_language_uid
  select.where = colPos = 6
  slide = -1
  slide.collect = 0
  collectReverse = 1
}

„colPost = 6“ zeigt, dass hier ein 7-spaltiges Backend-Layout ist und das Content-Element aus der letzten Spalte genommen wird :).

Soll: Der Inhalt des Content-Elements soll für die zwei Sprachen nicht ausgegeben werden

Dazu setze ich die Bedingung für die Sprache und habe mir ein TypoScript-Snippet aus der Doku zunutze gemacht und angepasst:

[globalVar = GP:L = 1] || [globalVar = GP:L = 2]
page.20.renderObj.stdWrap.if {
isInList.field = uid
value = 328
negate = 1
}
[global]

Da für beide Sprachen der Inhalt nicht gerendert werden soll kann man prima mittels einer ODER-Verknüpfung (||) dafür sorgen, dass man das TypoScript nur einmal schreiben muss. Etwas ungewohnt erscheint mir jedoch der Code innerhalb der Bedingung, der soviel sagt wie: Wenn die uid mit dem Value „328“ vorhanden ist, dann nicht (negate = 1) rendern. Das Snippet stammt von hier: http://typo3.org/documentation/snippets/sd/100/.
Alternative Lösungsvorschläge? Her damit!

PS: Die UID des Content-Elements erhält man übrigens recht einfach, wenn man mit der Maus über den Typ des Content-Feldes fährt:
Typo3 Content-UID eines Elements herausfinden per Mouseover

tt_news – Alle Sprachparameter zum Übersetzen

Da ich mich regelmäßig dumm und dusselig suche um alle (über)setzbaren Parameter für eine Extension wie z.B. tt_news zu finden schreib ichs jetzt auf:
Alle möglichen Parameter für Sprachvariablen findet man bei der tt_news-Extension in der Datei „typo3conf/ext/tt_news/pi/locallang.xml“ – nicht zu verwechselt mit der locallang.xml, die im Root-Ordner („typo3conf/ext/tt_news/“) der Extension liegt, welche für die backendseitige Übersetzung zuständig ist.

Standard-Werte für die tt_news-Übersetzung

Hier ein Auszug aus der XML-Datei, typische Key-Value-Pairs:

<languagekey index="default" type="array">
	<label index="latestHeader">Breaking News:</label>
	<label index="textCatLatest">Cat:</label>
	<label index="textCat">Category:</label>
	<label index="textNewsAge">Age:</label>
	<label index="more">[more]</label>
	<label index="preAuthor">By:</label>
	<label index="backToList">&lt;- Back to: %s</label>
	<label index="goToArchive">go to Archive -&gt;</label>
	<label index="archiveHeader">ARCHIVE:</label>
	<label index="archiveItems">items</label>
	<label index="archiveItem">item</label>
	<label index="archiveEmptyMsg">Sorry, Archive contains no items</label>
	<label index="noResultsMsg">nothing found</label>
	<label index="searchEmptyMsg">Please enter a searchword.</label>
	<label index="noNewsToListMsg">no news in this list.</label>
	<label index="versionPreviewMessage">Version preview !</label>
	<label index="versionPreviewMessageLinkToOriginal">(click here to see the public version of this record)</label>
	<label index="nonPlublicVersionMsg">Error! You requested a non-public version of a tt_news article.</label>
	<label index="noNewsIdMsg">no news_id given</label>
	<label index="noTranslMsg">Sorry, there is no translation for this news-article.</label>
	<label index="noNewsForArchPeriod">Sorry, there are no translated news-articles in this Archive period.</label>
	<label index="textRelated">Related News:</label>
	<label index="textLinks">Links:</label>
	<label index="textFiles">Files:</label>
	<label index="textRelatedByCategory">Other news from this category:</label>
	<label index="pi_list_browseresults_prev">&lt; Previous</label>
	<label index="pi_list_browseresults_page">Page</label>
	<label index="pi_list_browseresults_next">Next &gt;</label>
	<label index="pi_list_browseresults_first">&lt;&lt; First</label>
	<label index="pi_list_browseresults_last">Last &gt;&gt;</label>
	<label index="pi_list_browseresults_displays">Displaying results ###SPAN_BEGIN###%s to %s&lt;/span&gt; out of ###SPAN_BEGIN###%s&lt;/span&gt;</label>
	<label index="pi_list_browseresults_displays_advanced">Displaying results ###FROM### to ###TO### out of ###OUT_OF###</label>
	<label index="pi_list_browseresults_to">to</label>
	<label index="searchButtonLabel">Search</label>
	<label index="altTextCatSelector">Display only category:</label>
	<label index="altTextCatShortcut">Go to:</label>
	<label index="catmenuHeader">Select a category:</label>
	<label index="nextArticle">Next article</label>
	<label index="prevArticle">Previous article</label>
</languagekey>

Setzen eigener Sprachwerte im TypoScript

Alle Attribute „index“ des Knotens „label“ entsprechen der TypoScript-Eigenschaft, die gesetzt werden kann. Der Wert des „label“ – Knotens entspricht dem zu übersetzenden Text. Nachfolgend ein Beispiel, wie der Standard-Text für die related News („Weitere News in dieser Kategorie“) und der more-Link im TypoScript geändert werden können:

plugin.tt_news._LOCAL_LANG {
  de{
    more = weiterlesen
    textRelatedByCategory = Das könnte Sie auch interessieren
  }
  es.more = más
  fr.more = plus
  it.more = più
  pl.more = więcej
  cs.more = víc
  nl.more = meer
  ru.more = больше
}

Hier wird jetzt der Text für weitere News aus der gleichen Kategorie in der deutschen Sprache überschrieben. Alle weiteren Parameter lassen sich auf die gleiche Art und Weise überschreiben.

Fragen? Anregungen? Kritik? Über Kommentare freue ich mich stets!