Schnellnavigation:

Kategorien

« April 2024»
S M T W T F S
  1 2 3 4 5 6
7 8 9 10 11 12 13
14 15 16 17 18 19 20
21 22 23 24 25 26 27
28 29 30        

Letzte Nachrichten

DSGVO
26.05.2018 18:39
Trackingtools und Datenschutzerklärung
14.03.2014 23:07
1:n und n:1 Relationen in Extbase
06.12.2013 12:04
Erste Abmahnungen wegen Google Analytics
04.10.2013 12:11

Kopieren Sie diesen Link in Ihren RSS-Reader

RSS 0.91Nachrichten
RSS 2.0Nachrichten

In eigener Sache

Peter Linzenkirchner, Lisardo EDV Beratung in Augsburg. Freelance und Partner für Design- und Webagenturen in Augsburg und München. Pixelgenaue Templates, valides HTML, barrierearm. TYPO3-Projekte, Extension-Programmierung und mehr ... 

Zur Zeit wird gefiltert nach: Typoscript
Filter zurücksetzen

Im Mailformular soll ein Dropdownmenü angeboten werden, mit dessen Hilfe die Zieladresse ausgewählt werden kann. Umsetzung mit der Extension Mailformplus. 

Im Template:

  1. <select name="to">
  2.     <option value="eins"###checked_to_eins###>Eins</option>
  3.     <option value="zwei"###checked_to_zwei###>Zwei</option>
  4.     <option value="drei"###checked_to_drei###>Drei</option>
  5. </select>

Im TypoScript:

  1. plugin.tx_thmailformplus_pi1.default.contact_to=TEXT
  2. plugin.tx_thmailformplus_pi1.default.contact_to.data=GPvar:to
  3. plugin.tx_thmailformplus_pi1.default.contact_to.wrap= |
  4.  
  5. [globalVar=GP:to=eins]
  6.     plugin.tx_thmailformplus_pi1.default.email_to=eins@e-mail.de
  7. [end]
  8. [globalVar=GP:to=zwei]
  9.     plugin.tx_thmailformplus_pi1.default.email_to=zwei@e-mail.de
  10. [end]
  11. [globalVar=GP:to=drei]
  12.     plugin.tx_thmailformplus_pi1.default.email_to=drei@e-mail.de
  13. [end]

Quelle: Deutschsprachige Mailingliste; Beitrag von Fabian Seltmann.

[Update]

Bei Powermail gibt es einen Eintrag hierzu direkt im Manual

 

01September2010

Custom Tags im RTE

In der Grundkonfiguration entfernt der RTE eine Reihe von nicht erwünschten Tags. Je nach eingestellter Grundkonfiguration erhält er eigene Tags, löscht diese oder wandelt sie in Entities um. Um eigene Tags zu ermöglichen, sollte deshalb der  Konfiguration des RTE einiges hinzugefügt werden. 

  1. RTE.default.proc.allowTags:=addToList(sondertag)
  2. RTE.default.proc.allowTagsOutside:=addToList(sondertag)
  3. RTE.default.proc.entryHTMLparser_db.allowTags<RTE.default.proc.allowTags

Anstatt der Schreibweise := addToList(sondertag) können natürlich auch alle Tags aufgeführt werden, z. B. so:

  1. RTE.default.proc {
  2.         allowTags(
  3.             a,abbr,acronym,b,bdo,blockquote,br,cite,code,col,colgroup,del,dfn,div,em,
  4.             h1,h2,h3,h4,h5,h6,hr,i,img,li,ol,p,span,strike,strong,sub,sup,
  5.             table,thead,tbody,tfoot,td,tr,th,ul,sondertag,
  6.         )
  7. }

Das ist natürlich umständlicher, aber man weiss genau, was man erlaubt hat und was nicht.

Damit der Tag im Frontend ausgegeben wird, muss zusätzlich im TypoScript des Templates noch folgendes hinzugefügt werden:

  1. lib.parseFunc_RTE.allowTags:=addToList(sondertag)

Beziehungsweise für alle Texteingabefelder, die nicht den RTE benutzen:

  1. lib.parseFunc.allowTags:=addToList(sondertag)

In der Regel wird man aber den eigenen Tag nicht im Frontend ausgeben wollen, sondern man möchte ihn auf eine bestimmte – individuelle – Art parsen. Das kann mit Hilfe eines eigenen PHP-Skripts erfolgen oder über eine TypoScript-Konfiguration.

Für ein eigenes PHP-Skript kann man eine eine Extension anlegen und das hier ins Setup des TypoScript-Templates schreiben:

  1. # eigenes PHP-Script:
  2. lib.parseFunc.tags.sondertag= <plugin.tx_eigenExtension_pi1

Man kann aber auch im Kickstarter eine Extension anlegen, die sich im das Parsen eines einzigen Tags kümmert. In der Auswahl der Frontendplugins gibt es am Ende der Liste die Option, einen Custom Tag zu verarbeiten. In diesem Fall muss nichts mehr ins Setup geschrieben werden, da die Einbindung das localconf der neuen Extension übernimmt.

Oder man geht komplett über TypoScript, zum Beispiel so:

  1. # über TS
  2. lib.parseFunc_RTE.tags.myTag=TEXT
  3. lib.parseFunc_RTE.tags.myTag {
  4.     # mit current=1 enthält man den aktuellen Inhalt des Tags
  5.     current=1
  6.     # eigenes wrap, z. B. für Boxen
  7.     wrap(
  8.         <divclass="box">
  9.             <divclass="top"></div>
  10.                 <divclass="center">|</div>
  11.             <divclass="bottom"></div>
  12.         </div>
  13.     )
  14.     # Leerzeilen vor und nach dem Inhalt des Tags entfernen
  15.     stripNL=1
  16. }

Einfügen über User-Elemente

Eigene HTML-Tags zu erlauben ist natürlich nur der erste Schritt – wir müssen es den Redakteuren noch ermöglichen, diese auch einzugeben. Normalerweise werden diese Tags nämlich bei der Eingabe bereits in Entities umgewandelt. Man könnte natürlich auf die HTML-Eingabe umschalten oder den RTE vorübergehen deaktivieren, aber das ist eigentlich nicht zumutbar.

Wir können es aber über eine eigene Bibliothek mit User-Elementen ermöglichen.

Zuerst muss das »user«-Werkzeug erlaubt werden. Dazu muss es entweder unter »showButtons« hinzugefügt oder bei »hideButtons« ausgelassen werden. Je nachdem, wie man prinzipiell den RTE konfiguriert hat. Ich gehe über hideButtons und lösche dort »user« aus der Liste:

  1. RTE.default{
  2.     hideButtons(
  3.         lefttoright,righttoleft,formattext,bidioverride,big,
  4.         citation,definition,insertedtext,italic,keyboard, 
  5.         monospaced,sample,small,span,strikethrough,
  6.         variable,bold,underline,fontstyle,fontsize,
  7.         blockquote,insertparagraphbefore,insertparagraphafter,inserthorizontalrule,
  8.         spellcheck,emoticon,inserttag,copy,cut,paste,
  9.         justifyfull,textcolor,bgcolor,
  10.     )
  11. }

Danach sollte im RTE ein Werkzeug auftauchen mit dem Tooltipp »Insert custom element«. Bei Klick öffnet sich ein Dialog, mit dem die neuen Elemente eingefügt werden können. Damit die Elemente zur Vefügung stehen, müssen diese noch konfiguriert werden:

  1. RTE.default{
  2.     userElements {
  3.         10=Eigene Sondertags
  4.         10 {
  5.             1=Sondertag
  6.             1.description=Der ausgewählte Text wird umschlossen von<sondertag></sondertag>
  7.             1.mode=wrap
  8.             1.content= <sondertag>|</sondertag>
  9.         }
  10.     }
  11. }

Dabei bildet »10« eine Kategorie mit der Bezeichnung »Eigene Sondertags« und »1» ist das erste Element. Die folgenden Elemente dieser Kategorie beginnen mit »2«, »3« und so weiter. Wichtig ist die Angabe des Modus – damit wird erreicht, dass der markierte Text vom Content umgeben wird.

Mit dieser Technik können nicht nur Tags ermöglicht werden, sondern es können Bilder oder Textbausteine zur Verfügung gestellt werden oder auch weiterführende Formatierungen mit <div>-Containern. Es können sogarPHP-Skript darüber aufgerufen werden, die markierte Inhalte vor der Übergabe verarbeiten.

Fehler / Probleme

Bei uns tauchte gelegentlich das Problem auf, dass bei <div>-Containern, die auf diese Art in den RTE eingefügt wurden, bei der Ausgabe ins Frontend der äusserste Container in einen p-Tag umgewandelt wurde. Da in einen p-Tag kein <div> geschachtelt werden darf, hat das unangenehme Konsequenzen – unter Umständen auf das Rendering der gesamten Seite. Dieser Fehler ist ein Feature und kann abgeschaltet werden durch diesen Eintrag ins TypoScript Setup:

  1. ### das hier verursacht den Fehler:
  2. lib.parseFunc_RTE.nonTypoTagStdWrap.encapsLines.remapTag.DIV=P
  3. ### so abschalten:
  4. lib.parseFunc_RTE.nonTypoTagStdWrap.encapsLines.remapTag.DIV>

Dieser Eintrag soll eigentlich dafür sorgen, dass versehentlich eingefügte <div>-Tags durch Absätze ersetzt werden. Bei einigermaßen guter Konfiguration des RTE ist dieses Feature aber überflüssig und kann abgeschaltet werden.

Weiterführende Links

  • Manual auf Typo3.org Hinweis: das Manual ist nicht auf dem üblichen Weg zu finden; die Extension gehört zwar mittlerweile zur Standardinstallation, aber sie wird in der Core-Dokumentation gelistet. Es gibt deshalb eine eigene Extension nur für das Manual von htmlArea RTE. Interessant sind hier vor allem die Abschnitte »userCategory« und »userElements«
  • Tags Der Abschnitt über eigene Tags in TSref. 
Kategorien: Backend/Typoscript  Kommentare 0
Tags: rte, tag

Es gibt mehrere Möglichkeiten, den Cache von Typo3 durch Redakteure manuell oder automatisch löschen zu lassen. Damit ein Benutzer oder eine Benutzergruppe den Seitencache oder gar den kompletten Frontend-Cache löschen darf, müssen ins User TSConfig die folgenden Zeilen geschrieben werden:

  1. # Eintrag im User TSConfig
  2. options.clearCache.pages = 1
  3. options.clearCache.all = 1

Damit kann der Redakteur den Seitencache sowohl im Seiten- wie auch im Listenmodul löschen. Den Frontend-Cache kann er nur über das Pulldownmenü im Seitenmenü löschen.

Als Alternative kann man über einen Eintrag in das Page TSConfig erreichen, dass entweder der gesamte Cache oder der von bestimmten Seiten automatisch gelöscht wird, sobald die Seite, auf der sich der Eintrag befindet, geändert wird.

  1. # Eintrag im Page TSConfig:
  2. TCEMAIN.clearCacheCmd=all

Wenn dieser Eintrag in das Page TSConfig des News-Archivs eingefügt wird, wird der gesamte Frontend-Cache automatisch gelöscht, wenn eine neue News erstellt wird.

Das führt unter Umständen zu Problemen mit der Performance. Wenn sich die News nicht auf allen Seiten befinden, ist es u. U. besser auf folgende Möglichkeiten auszuweichen:

  1. # Eintrag im Page TSConfig:
  2.  
  3. # Cache nur bei bestimmten Seiten löschen
  4. TCEMAIN.clearCacheCmd = 1,2,45,46
  5.  
  6. # Cache löschen von allen Unterseiten und Geschwisterseiten der Seite,
  7. # in der Eintrag steht
  8. TCEMAIN.clearCache_pageSiblingChildren = 1
  9.  
  10. # nur die Caches der Geschwisterseiten löschen
  11. TCEMAIN.clearCache_pageSiblingChildren = 0
  12.  
  13. # den Cache der Überseite der übergeordneten Seite löschen
  14. TCEMAIN.clearCache_pageGrandParent = 1
  15.  
  16. # damit kann das automatische Löschen verhindert werden:
  17. TCEMAIN.clearCache_disable = 1

Weiterführende Links

Es gibt eine Reihe von Maßnahmen, die TYPO3 für Suchmaschinen optimieren können.

Titelzeile des Browsers

Eine sinnvolle Titelzeile des Browserfensters kann durch verschiedene Maßnahmen erreicht werden:

Verwendung des Feldes »Navigationstitel«.

Im Feld »Seitentitel« steht der Text, der in den Menüs auftaucht, im Feld »Navigationstitel« steht der aussführliche Titel des Browserfensters, der letztlich auch die URL bildet. Nachteil: Der Navigationstitel bildet auch den Titel des Seitenbaums im Backend, man kennt sich anschließend im Backend nicht mehr aus.

Die Verwendung der Extension browser_page_title

  1. <p>Diese Extension erlaubt die Definition einer Voreinstellung für den title-Tag:</p><p>################### Angaben im Seitentitel ###################
  2.  
  3. includeLibs.tx_browserpagetitle=typo3conf/ext/browser_page_title/class.tx_browserpagetitle.php
  4. config.titleTagFunction=tx_browserpagetitle->getTitle
  5.  
  6. # Default language parameters
  7. plugin.browser_page_title {
  8.     defaultTitle=ClubK:Sprachen für Kinder-{title}
  9.     currentTitle={tx_browserpagetitle_browser_title}
  10. }</p>
  11.  

In der Seitendefinition kann diese Voreinstellung mit Hilfe des neuen Feldes »Browsertitel« überschrieben werden. Achtung: Dieses Feld muss für die Redakteure auch freigeschalten werden.

Die Verwendung der Extension Basic SEO Features 

Title-Tag in der Navigation anzeigen:

http://www.lisardo.de/wiki/Basic-SEO-Features/

http://www.lisardo.de/wiki/Basic-SEO-Features/

http://www.lisardo.de/wiki/Basic-SEO-Features/

  1. lib.menu.1=TMENU
  2. lib.menu.1.NO.wrapItemAndSub= <li> | </li>
  3. <p>lib.menu.1.NO.ATagTitle.field=title// nav_title</p>
  4.  

Alt-Texte für TYPO3-Bilder automatisch befüllen

  1. tt_content.image.20.1.altText>
  2. tt_content.image.20.1.altText=TEXT
  3. tt_content.image.20.1.altText.field=image
  4. tt_content.image.20.1.altText.split {
  5.       token.char=95
  6.   cObjNum=1|*|1|*|2
  7.   1.current=1
  8.     1.noTrimWrap= || |
  9.     2.cObject=TEXT
  10.   2.cObject.current=2
  11.     2.cObject.split {
  12.         token.char=46
  13.           cObjNum=1|*|2
  14.         1.current=1
  15.     }
  16. }

Quelle

Weiterführende Literatur:

01September2010

Sprachmenü

Als Sprachumschalter wird sinnvollerweise das Sprachmenü von Typoscript benutzt. Hier ein Beispiel, das einen Sprachumschalter einbaut, der zwischen zwei Sprachen wechselt und dazu keine Fahnen benutzt, sondern Text.

  1. temp.nav_top_intern {
  2.     20=HMENU
  3.     20 {
  4.         special=language
  5.         special.value=1,0
  6.         1=TMENU
  7.         1 {
  8.             NO=1
  9.             NO.linkWrap= |&nbsp;&#124;&nbsp;
  10.             NO.stdWrap.cObject=TEXT
  11.             NO.stdWrap.cObject {
  12.                 value=Englisch||German
  13.             }
  14.             USERDEF1< .NO
  15.             USERDEF1 {
  16.                 doNotLinkIt=1
  17.                 stdWrap.typolink.parameter=399
  18.                 stdWrap.typolink.additionalParams= &L=1
  19.             }
  20.         }
  21.     }
  22. }

Dieses Menü hat den Vorteil, dass bei einer fehlenden Übersetzung einer Seite auf eine selbst zu definierende Startseite gesprungen werden kann.

Man kann es auch so aufbauen, dass ein Wechsel zwischen den Textausgabe erfolgt, also in den deutschen Seiten wird nur Englisch als Link ausgegeben und umgekehrt.

  1. temp.nav_top_intern {
  2.     20=HMENU
  3.     20 {
  4.         special=language
  5.         special.value=1
  6.         1=TMENU
  7.         1 {
  8.             NO=1
  9.             NO.linkWrap= |&nbsp;&#124;&nbsp;
  10.             NO.stdWrap.cObject=TEXT
  11.             NO.stdWrap.cObject {
  12.                 value=English
  13.             }
  14.             USERDEF1< .NO
  15.             USERDEF1 {
  16.                 doNotLinkIt=1
  17.                 stdWrap.typolink.parameter=399
  18.                 stdWrap.typolink.additionalParams= &L=0
  19.             }
  20.         }
  21.     }
  22. }
  23.  
  24. [globalVar=GP:L=1]
  25.  
  26. # Kopfmenü mit Sprachumschaltung.
  27. temp.nav_top_intern {
  28.     20.special.value=0
  29.     20.1.NO.stdWrap.cObject.value=Deutsch
  30.     20.1.USERDEF1.stdWrap.typolink.additionalParams= &L=0
  31. }
  32.  

Weiterführende Links

 

 

 

 

Kategorien: Typoscript  Kommentare 0
Tags: menü, sprachen