So einen Schipsel braucht man um im FE (also im Code einer Extension) auf das Setup einer anderen Extension zuzugreifen (im Beispiel indexed_search):
$GLOBALS[‚TSFE‘]->tmpl->setup[‚plugin.‘][‚tx_indexedsearch.‘]
Beiträge der Kategorie TYPO3
Crawler erweitern um Rekursion und Where-Bedingung
Der Crawlwer ist eine Extension, die für die Suche (indexed_search) Seiten indizieren kann. Wichtig ist dabei die richtige Konfiguration des Crawlers, die besonders interessant ist, wenn man Datesätze als Detailseiten indizieren möchte. Die Crawler-Konfiguration habe ich bereits hier beschrieben:
Crawler Extension Konfiguration
Die Konfiguration des Crawlers ermöglicht es, Datensätze von einer bestimmten Seite zu holen. Es ist jedoch nicht möglich, wenn die Datensätze auf mehrere Ordner verteilt sind. Natürlich kann man dann pro Ordner eine neue Konfigurationsderektive angeben. Aber wenn die Datensätze auf Jahres- oder sogar Monatsordner verteilt sind, müsste in jedem neuen Monat/Jahr die Konfiguration angepasst werden. Eine weitere Einschränkung des Crawlers ist die fehlende Möglichkeit, eine zusätzliche Where-Bedingung anzugeben. Das könnte eine Einschränkung nach Zeit oder einem weitere Kriterium sein.
tt_news Konfiguration Category Menu
Beschreibung nicht als alt- und title- beim a-Tag nehmen:
plugin.tt_news.displayCatMenu.insertDescrAsTitle = 0
CatMenu als Liste (getestet nur auf Ebene 1) formatieren:
plugin.tt_news.displayCatMenu {
mode = nestedWraps
catmenuItem_ACT_stdWrap.wrap =
catmenuItem_NO_stdWrap.wrap =
catmenu_stdWrap.wrap =
catmenuLevel1_stdWrap.wrap >
}
Zielseite für CatMenu definieren:
plugin.tt_news.catSelectorTargetPid = 166
Bug in AOE Linkhandler
Wenn die PHP-Version niedriger ist als 5.2.3, dann wird die folgende Zeile nicht korrekt ausgeführt und produziert einen Fehler:
class.tx_linkhandler_browselinkshooks.php Zeile 181
foreach ($this->allAvailableTabHandlers as $handler) {
$result=call_user_func($handler.‘::getLinkBrowserInfoArray‘,$href,$this->getTabsConfig());
if (count($result)>0 && is_array($result)) {
Wenn man stattdessen folgendes schreibt, dann wird die Funktion korrekt ausgeführt:
$result = call_user_func(array($handler, ‚getLinkBrowserInfoArray‘),$href,$this->getTabsConfig());
Das liegt an der unterschiedlichen Interpretation des ersten Parameters in PHP 5.2.3. und den niedrigeren Versionen.
Konfiguration AOE Linkhandler
Der AOE Linkhandler (Extension key: linkhandler) läßt sich für alle möglichen Datensätze konfigurieren. Die Dokumentation ist ausführlich, hier jedoch noch eine Konfiguration für zwei Datensatztypen mit unterschiedlichen Detailseiten abhängig vom Feld „type“.
Ich habe in den Beispielen den tatsächlichen Namen der Extension maskiert, anstatt tx_ext_[…] ist der Name der Tabelle mit den Datensätzen einzusetzen.
Typolist-Tags in RTE
Bei einer Extension, die etwas älter ist, ist der folgende Fehler aufgetaucht: Wenn in ein RTE-Feld eine Liste eingetragen wurde (mit ul/li), dann wurde diese beim Speichern in typolist-Tags umschlossen und diese wurden dann im FE als Tags angezeigt. Die typolist-Tags standen auch schon in der Datenbank, was die Vermutung nahe legte, dass die Konvertierung beim Parsen und Speichern passiert. Die RTE-Konfiguration in der Extension war wohl etwas älter und der Modus stand auf ts (mode=ts). Wahtscheinlich ist es eine Möglichkeit, die Konfiguration des RTE in der Extension zu ändern. Aber man kann das Problem auch lösen, ohne die Extension zu ändern. Dazu braucht man folgenden Schnipsel, der in die PageTSconfig der Root-Seite eingefügt wird.
RTE.config.[tabellenname].[feldname].proc.overruleMode = ts_css
Wenn es sich um tt_news handelt und das Feld description heißt, dann wäre die Konfiguration folgende:
RTE.config.tt_news.description.proc.overruleMode = ts_css
Danach müssen die betroffenen Datensätze zum Bearbeiten geöffnet werden und gespeichert. Denn der Parsing-Vorgang findet beim Speichern statt.
Page TSconfig: Tabellen in der Listenansicht ausblenden
Es ist möglich in der Listenansicht bestimmte Tabellen auszublenden per Page TSconfig. Das kann sinnvoll sein, wenn man z.B. mit IRRE-Datensätzen arbeitet, diese auf der gleichen Seite abgelegt werden, aber nur durch den übergeordneten Datensatz bearbeitet werden sollen. Dadurch wird die Listenansicht natürlich auch übersichtlicher. Dazu bracht man folgenden Schnipsel (einzugeben in das TSconfig der Seite), man gibt natürlich den Namen der Tabelle an, ich nehme als Beipsiel tt_news:
mod.web_list {
hideTables = tt_news
}
Wenn man nun zwei Tabellen angeben möchte, ist es möglich, man darf dabei kein Leerziechen zwischen Komma und Namen lassen. Ausnahmsweise wird da die trimExplode wohl nicht verwendet, und so klappts:
mod.web_list {
hideTables = tt_news,pages
}
RTE und Firefox Problem
Vor Kurzem ist ein neues Firefox-Update rausgekommen, das zur Folge hat, dass im RTE die Links nicht korrekt gesetzt werden. Eine Beschreibung des Problems findet sich hier:
http://www.typo3-jack.net/typo3-german-lists-netfielders-de/20731-typo3-german-rte-falsche-links.html#td_post_68634
Im Detail sieht es so aus, dass vor alle Links die BaseURL inkl. TYPO3-Backendverzeichnis zusätzlich drangehängt wird. Beispiel:
http://www.domain.de/typo3/http://www.domain.de/seite.html
Das hat zur Folge, dass die Links beim Anklicken zu „Seite nicht gefunden“ Fehlermeldung führen.
Default-Werte per TSconfig setzen
TYPO3 ist sehr gut konfigurierbar und so ist es möglich, Standard-Werte für Datensätze zu definieren. Ohne Erweiterungen ist das allerdings nur über User-TSconfig möglich. Diese Angaben gelten dann für alle Benutzer einer bestimmten Gruppe, sind aber unabhängig von der Seite. Nach kurzer Recherche habe ich was gefunden – einen Hook, der auf Seitenebene Angaben für default-Werte ermöglicht.
Setzen der default-Werte per Page TSconfig
Diese Vorgaben funktionieren in allen Feldern, man muss allerdings beachten, wie die Angaben für Felder mit Relationen gemacht werden müssen. Kleines Beispiel für das Setzen einer Benutzergruppe beim Erstellen eines neuen FE-Benutzers, der dann gleich den Benutzergruppen „Mitglieder“ und „Besondere Mitglieder“ zugeiwesen wird:
TCEFORM.fe_users.usergroup.config.default = 1|Mitglieder,2|Besondere%20Mitglieder
Update: es gibt ein kleines Problem mit Checkboxen. Der Wert der Checkbox ist ja 0 und nicht [leer], daher greift die Bedingung nicht.
Extension als “Neues Content Element” erstellen
Zunächst über den Kickstarter eine neue Extension anlegen. Dabei reicht es auch, wenn man einen Titel angibt, dann ein Frontend Plugin hinzufügt und dort den Typ „New Content Element“ auswählt. Falls man keine weiteren Datenbankfelder benötigt, kann man das Ergebnis schreiben lassen.
Nach der Installation steht der neue Content Element Typ bereits zur Verfügung. Per Default wird nur das Header-Feld angezeigt. Nun gibt es zwei Möglichkeiten: entweder man blendet mehr Felder ein und nutzt die vorhandenen Felder in tt_content (da gibt es viele) oder man nutzt Flexforms für die höhere Flexibilität.
(mehr …)
Neueste Kommentare