TYPO3 Tipps & Tricks
Alle Kategorien
Alle anzeigen / Alle verbergen
-
In der Printansicht Backlink zur Normalansicht per Typoscript erzeugen
-
Wer die Druckversion im selben Fenster öffnet und ohne Javascript auskommen möchte (history.back();), kann einen "Zurück zur Normalansicht" Link auch so generieren:
# Link zur Normalansicht: aktuelle Seite mit allen Parametern ausser type=98 (=> Printansicht)
10 = TEXT
10.value = Zurück zur Normalansicht
10.typolink.parameter.data = TSFE:id
10.typolink.addQueryString = 1
10.typolink.addQueryString.exclude = type
10.wrap = |Kategorie: Typoscript -
Shell Command um Javascriptdateien in typo3temp zu löschen
-
find . -name "*.js" -print | xargs rm -f
-
Breadcrumb Menü: Seiten, die auf "Im Menü unsichtbar" gestellt sind, sollen im Breadcrumb-Menü angezeigt werden
-
Mit includeNotInMenu = 1 im Typoscript des Breadcrumb-Menüs werden Seiten angezeigt, bei denen die Option "Im Menü unsichtbar" aktiviert ist
temp.breadcrumb = HMENU
temp.breadcrumb {
special = rootline
special.range = 0|-1
includeNotInMenu = 1
1 = TMENU
1.NO = 1
1.NO.allWrap = | ⇒
1.CUR = 1
1.CUR.allWrap = |
1.CUR.doNotLinkIt = 1
}Kategorie: Typoscript, Frontend -
Newsplugin: HTML Tags im Text der Listenansicht
-
//um HTML-Tags auch in der Listenansicht von tt_news zu ermöglichen
// folgendes ins Setup eintragen
plugin.tt_news.displayList.subheader_stdWrap.stripHtml = 0
Kategorie: Typoscript, Erweiterungen -
Index-Suche auf zwei Seitenbäume (Mehrsprachig) aufteilen
-
Bei zweisprachigen Seiten, die über zwei verschiedene Seitenbäume realisiert werden, muss auch die Suchfunktion entsprechend angepasst werden, damit nicht beide Seitenbäume durchsucht werden.
Mit
plugin.tx_indexedsearch.search.rootPidList = Rootseite-der-jeweiligen Sprache
im jeweiligen Template werden gar keine Suchergebnisse ausgegeben.Die Lösung liefert die Option "sections" (im Setup des Typoscript-Templates jedes Sprachbaums)
plugin.tx_indexedsearch._DEFAULT_PI_VARS.sections = rl1_2rl(Ebene)_(Rootseite-der-jeweiligen Sprache)
Kategorie: Typoscript, Erweiterungen -
Datei Upload Option auch im RTE (Element Browser) aktivieren
-
Im Userdatensatz bzw. Datensatz der Benutzergruppe unter Optionen folgendes einfügen:
options.uploadFieldsInTopOfEB = 1 -
Eigene 404 Fehlerseite bei alten PDF-Links in fileadmin-Ordner
-
Beim Relaunch einer TYPO3-Website kann es Probleme mit alten von Google indizierten PDF-Dateien geben, die sich unterhalb des fileadmin-Ordners befinden.
Hier funktioniert das Redirect zur eigens eingerichteten 404-Fehlerseite nicht. Es wird nur die 404-Serverseite angezeigt.Lösung: eine .htaccess Datei im Ordner fileadmin anlegen
Inhalt der .htaccess ist ein simpler Redirect zu einer beliebig gewählten Seite sobald ein 404 Error auftritt:
ErrorDocument 404 www.yourdomain.com/404.html
Kategorie: REALURL -
Copyright mit aktuellem Jahr
-
Mit etwas TypoScript bleibt die Jahreszahl im Copyright immer up-to-date:
temp.copyright = TEXT
temp.copyright.data = date:U
temp.copyright.strftime = %Y
temp.copyright.wrap = © <span style="padding:0 1px;">|</span> rochelt.info
Kategorie: Typoscript -
Multilevel Textmenu als ungeordnete Liste
-
temp.navigation = HMENU
temp.navigation.entryLevel = 0temp.navigation.1 = TMENU
temp.navigation.1.noBlur = 1
temp.navigation.1 {
expAll = 1
wrap = <ul>|</ul>
NO.wrapItemAndSub = <li>|</li>
IFSUB = 1
IFSUB.wrapItemAndSub = <li class="hasSubpages">|</li>
}temp.navigation.2 < temp.navigation.1
temp.navigation.3 < temp.navigation.1Kategorie: Typoscript -
Letztes/erstes Menüelement anders formatieren: optionSplit
-
#z.B. letztes Element erhält eine eigene CSS-Klasse
1.NO.allWrap = |*| <li>|</li> |*| <li class="last">|</li>
Kategorie: Typoscript -
Meldung auf der TYPO3-Backend Loginseite ausgeben
-
Folgende Zeile in die Datei /typo3conf/extTables.php eintragen:
$GLOBALS['TYPO3_CONF_VARS']['BE']['loginNews'][]= array (
'header' => 'Ihre Überschrift',
'content' => 'Ihr Meldungstext'
);Sie können natürlich auch mehrere Meldungen bzw. News für TYPO3-User ausgeben und das loginNews-Array erweitern:
$GLOBALS['TYPO3_CONF_VARS']['BE']['loginNews'][]= array (
'date' => '2.1.2010',
'header' => 'Überschrift 2',
'content' => 'Newstext 2'
);$GLOBALS['TYPO3_CONF_VARS']['BE']['loginNews'][]= array (
'date' => '1.1.2010',
'header' => 'Überschrift 1',
'content' => 'Newstext 1'
);Kategorie: Backend -
Indexed Search indiziiert metatags
-
indexed_search so konfigurieren, dass Meta_tags nicht durchsucht werden:
Ab der TYPO3-Version 4.2 geht's über Typoscript
Folgendes ins TS-Setup eintragen:
config.index_metatags =
page.config.index_metatags =Für alle Versionen darunter ist's leider etwas komplizierter. Hier muss die PHP-Funktion splitHTMLContent($content) adaptiert werden. Ein Anleitung dazu findet ihr hier.
Kategorie: Typoscript, Erweiterungen -
TYPO3 barrierfrei?
-
Praktische Tipps zum Thema TYPO3 und Barrierefreiheit:
Einfach für alle
Alles zum Thema BarrierefreiheitBarrierefreiheit in der Praxis
Wie der Name schon verrät, ein sehr praxisbezogener Artikel, t3n-MagazinKein Kinderspiel. TYPO 3 und Barrierefreiheit
Allgemeines zum Thema, t3n-MagazinVideo zum Vortrag "Standardkonforme Webseiten mit TYPO3"
Kai Laborenz spricht auf dem Multimediatreff in Köln über barrierefreie Websites mit TYPO3; sehr praxisbezogenBuchtipp "TYPO3 4.0 Das Handbuch für Entwickler"
Kai Laborenz, Thomas Wendt, Andrea Ertel, Prakash Dussoye, Elmar Hinz, Verlag: Galileo Computing
Empfehlenswert ist vor allem der Part "Barrierefreie und standardkonforme Websites mit TYPO3"YAML-Template für TYPO3
(X)HTML/CSS Framework, ausgerichtet auf Webstandards und BarrierefreiheitKategorie: Frontend -
Mehrsprachige News per SELECT-Abfrage ausgeben
-
Eine eigene Typoscript-Abfrage ist wesentlich schneller als LIST or LATEST.
Brauchbar bei einer grossen Anzahl von Datensätzen.Erzeuge eine Liste mit Newstiteln (inkl. Link zur Singleansicht):
#wenn keine Übersetzung vorhanden, zeige die Newseinträge der Default-Sprache
config.sys_language_overlay = 1
temp.mynewslist = CONTENT
temp.mynewslist {
table = tt_news
select {
pidInList = 123 # Sysfolder-ID mit Newsdatensätzen
languageField = sys_language_uid
where = deleted=0
andWhere = t3ver_state<=0
andWhere = hidden=0
orderBy = datetime DESC
}
renderObj = COA
renderObj {
wrap = |
10 = TEXT
10.field = title
10.typolink {
parameter = 777 # Seiten-ID der Seite mit News-Singleansicht
additionalParams=&tx_ttnews[tt_news]={field:uid}&tx_ttnews[backPid]={TSFE:id}
additionalParams.insertData=1
useCacheHash=1
}
}
}Kategorie: Typoscript -
GET-Variable per TYPOSCRIPT auslesen
-
z.B. Link auf www.rochelt.info/index.php&deinParameter=deinWert
Folgender Code auf der Seite mit der PageID 31 gibt den Wert "deinWert" aus:
10 = COA
10 {
10 = TEXT
10.data = GPvar : deinParameter
}Kategorie: Typoscript -
IP-Adresse des Clients per TYPOSCRIPT ausgeben
-
10 = COA
10 {
10 = TEXT
10.data = getIndpEnv : REMOTE_ADDR
}Kategorie: Typoscript -
<body> -Tag ändern
-
Um den Standard <body>-Tag zu ersetzen und z.B. einen Javascriptaufruf hinzuzufügen im Setup des Templates folgendes eingeben:
page.bodyTag = <body onload="onLoad();>
Kategorie: Typoscript -
Spamprotection
-
Folgendes ins SETUP der Root-Seite:
config.spamProtectEmailAddresses = 2
config.spamProtectEmailAddresses_atSubst = (at)Kategorie: Frontend -
Dateiverweise (Filelist): Icon für jeweiligen MIMETYPE
-
Neue Dateiendungen + entsprechendes Icon hinzufügen:
Icon mit dem Namen der Dateiendung (z.B. docx.gif) in folgendem Ordner speichern:
typo3/sysext/cms/tslib/media/fileicons/
Kategorie: Frontend -
Dateiverweise (Filelist): Beschränkung auf 10 Dateien aufheben
-
Folgenden Eintrag in typo3conf/extTables.php eingeben:
$GLOBALS['TCA']['tt_content']['columns']['media']['config']['maxitems']=100 -
In TYPOSCRIPT ein Logo verlinken
-
temp.logo = IMAGE
temp.logo.file = fileadmin/template/main/interface/logo.gif
temp.logo.altText = Alternativtext für Logo
temp.logo.stdWrap.typolink.parameter=http://www.einfach-ist-schön.at/ODER suchmaschinenotpimiert und schöner mit CSS Image Replacement:
temp.logo = HTML
temp.logo.value = <a href="http://www.einfach-ist-schön.at/ "><h1>Einfach ist schön</h1></a>Im CSS-File:
#logo {position:relative; float:left; width:172px; height:38px;}
#logo h1 {width:172px; height:38px; background:url(../interface/logo.gif); text-indent: -9999px;padding:0; margin:0; border:0;}
#logo a {outline: none;}Kategorie: Typoscript -
Backend Frame für Seitenbaum vergrößerbar machen
-
In der User TS-Config:
setup.override.navFrameResizable = true
setup.override.navFrameWidth = 290
#Länge des Seitentitels begrenzen
setup.override.titleLen = 28Kategorie: Backend -
(Kopie 1) Beim Kopieren von Seiteninhalten unterdrücken
-
Folgende Zeile in das PageTS Ihrer Root Seite:
TCEMAIN.table.tt_content.disablePrependAtCopy = 1Kategorie: Backend -
Backend Sprache auf Deutsch einstellen
-
Ab Typo3, Version 4.0 im Extension Manager:
"Extension Manager" -> "Translation handling" -> "German"
"Save Selection"
"Update from online repository"Kategorie: Backend -
Submit Button fehlt in der Backend- Benutzerverwaltung
-
TYPO3 Version 4.2.10, BUG 0009738
In der Backend User Administration fehlt der Submit-Button in "Group and Compare Users".
LÖSUNG: Gewünschte Checkbox aktivieren und auf ENTER-Taste drücken
Kategorie: Backend -
Seitencache löschen auch für NichtAdmin-User
-
In die User TSconfig
options.clearCache.pages = 1
Kategorie: Backend -
Page-ID im Seitenbaum anzeigen
-
In der User TS-Config:
options.pageTree.showPageIdWithTitle = 1
Kategorie: Backend -
Kontextmenü: Bestimmte Optionen für einzelne Benutzer/Gruppen ausblenden
-
z.B.:
options.contextMenu {
pageTree.disableItems = info,history,perms,hide,edit_access
}typo3.org/documentation/document-library/core-documentation/doc_core_tsconfig/4.2.0/view/1/2/
options.contextMenu.[key].disableItems
Kategorie: Backend -
Patch einspielen per SSH
-
1.) Auf der Website bugs.typo3.org findet man aktuelle Patches für TYPO3-Bugs.
2.) Das Patch-File per FTP in den TYPO3-Ordner hochladen.
3.) Über SSH verbinden und in das entsprechende Verzeichnis wechseln.4.) Patch mit folgendem Befehl installieren:
patch -p0 < [Pfad-zum-Patch]/Name-des-Patches.patch
5.) Die Änderungen werden automatisch eingespielt.Kategorie: Backend -
Bei Server-Crash
-
Dateien temp_CACHED_..... im typo3conf Verzeichnis löschen!
Kategorie: Backend -
Mehrsprachiger Link für Druckansicht
-
temp.druckansicht = COA
[globalVar = GP:L = 2]
temp.druckansicht .wrap = Print Version
[else]
temp.druckansicht .20.data = 0
temp.druckansicht .wrap = Druckansicht
[end]temp.druckansicht.10 = TEXT
temp.druckansicht.10.data = TSFE:id
temp.druckansicht.10.wrap = index.php?id=|temp.druckansicht.20 = TEXT
temp.druckansicht.20.data = TSFE:sys_language_uid
temp.druckansicht.20.wrap = &L=|&type=98Kategorie: Typoscript -
Globale Variable aus Setup-Template in PHP-Datei abfragen
-
Für Extension-Entwicklung:
z.B. Domain wird im Setup des Website-Templates definiert
config.baseURL = www.einfach-ist-schoen.at
In der php-Datei der Extensionkann die Typoscript-Variable so abgefragt werden:
$theDomain = $GLOBALS["TSFE"]->config["config"]["baseURL"];Kategorie: Typoscript, Erweiterungen -
Mehrere Stylesheets einbinden
-
seite.includeCSS {
file1 = fileadmin/Internet/css/screen.css
file1.media = screen,projection
file2 = fileadmin/Internet/css/print.css
file2.media = print
}Kategorie: Typoscript -
Überschriften H1, H2, H3 aus RTE entfernen
-
#Entfernt H1, H2, H3 aus dem RTE
RTE.default.hidePStyleItems = h1,h2,h3Kategorie: RTE -
RTE: Kein P-tag wrap in TABELLEN
-
Folgendes ins TS SETUP eintragen:
#P Tag Ummantelung in Tabellen verhindern:
lib.parseFunc_RTE.externalBlocks = ul,ol,table
#nochmaliges parsen von tabellenzellen auschalten
lib.parseFunc_RTE.externalBlocks.table.HTMLtableCells.default.
callRecursive = 0
#nachträgliches ermöglichen von Links in Tabellenzellen
lib.parseFunc_RTE.externalBlocks.table.HTMLtableCells.default.
stdWrap.parseFunc {
makelinks = 1
makelinks.http.keep = scheme,path,query
makelinks.mailto.keep = path
tags {
link = TEXT
link {
current = 1
typolink.parameter.data = parameters : allParams
}
}
}Kategorie: RTE -
RTE: Default Alt/Title-Text bei Links entfernen
-
RTE.classesAnchor {
internalLink {
altText =
titleText =
}
externalLink {
altText =
titleText =
}
externalLinkInNewWindow {
altText =
titleText =
}
internalLinkInNewWindow {
altText =
titleText =
}
download {
altText =
titleText =
}
mail {
altText =
titleText =
}
}Kategorie: RTE -
Zeilenumbruch statt Absatz einfügen
-
Mit ENTER wird ein Absatz eingefügt.
Taste "SHIFT" (Großschreibungstaste) gedrückt halten und ENTER:
fügt einen einfachen Zeilenumbruch einKategorie: RTE -
News: Cache automatisch leeren
-
Unter "Seiteneigenschaften > Optionen > TSconfig" des News-Sysfolders, der die Newsdatensätze enthält folgendes einfügen:
TCEMAIN.clearCacheCmd = 1,2,31,2,3 steht für die Seiten ID's der Seiten auf denen sich ein News-Plugin befindet.
Kategorie: Erweiterungen -
Wenn keine News vorhanden, soll Message "Keine News in dieser Ansicht." NICHT erscheinen
-
#wenn keine News vorhanden soll Text "Keine News in dieser Ansicht." nicht erscheinen
plugin.tt_news {
_LOCAL_LANG.de.noNewsToListMsg = <div style="display: none"></div>"
_LOCAL_LANG.en.noNewsToListMsg = "<span style="display: none"></span>"
_LOCAL_LANG.default.noNewsToListMsg =
}Kategorie: Erweiterungen -
Printlink + RealUrl + News Detail
-
In localconf.php:
...
'preVars' => array (
array (
'GETvar' => 'no_cache',
'valueMap' => array (
'no_cache' => '1',
),
'noMatch' => 'bypass',
),
array (
'GETvar' => 'type',
'valueMap' => array (
'print' => '98',
),
'noMatch' => 'bypass'
),
array (
'GETvar' => 'L',
'valueMap' => array(
'de' => 0,
'en' => 2,
),
'noMatch' => 'bypass',
),
),
....UND
....
'fileName' => array (
// add .html suffix to the end of the path generated
'defaultToHTMLsuffixOnPrev' => 1,'index' => array (
'print.html' => array(
'keyValues' => array (
'type' => '98',
),
),
),
),
...Als Printlink Erweiterung as_printlink (die funktioniert auch mit REALURL problemlos)
Kategorie: REALURL, Erweiterungen -
damit class-Attribut für table im RTE erhalten bleibt
-
RTE table class fix: damit class-Attribut für table im RTE erhalten bleibt und nicht durch contenttable ersetzt wird, folgende Zeile ins TS template Setup:
lib.parseFunc_RTE.externalBlocks.table.stdWrap.HTMLparser.tags.table.fixAttrib.class.list >Kategorie: RTE -
Suche auf bestimmten Bereich des Seitenbaums einschränken
-
#123 ist die Page ID des Bereichs der durchsucht werden soll
plugin.tx_indexedsearch._DEFAULT_PI_VARS.sections = rl1_123Kategorie: Erweiterungen -
Powermail: doppelte Einträge verhindern
-
Doppelte Einträge entstehen, wenn das Powermail-Formular irrtümlicherweise zweimal hintereinander gesendet wird (Doppelklick oder Seitenaktualisierung)
LÖSUNG:
Folgende Zeile in den CONSTANTS hinzufügen
plugin.powermail.enable.unique = uid1
(uid1 steht für den Wert des Emailfeldes. Nummer im Formular nachsehen!)Kategorie: Erweiterungen -
Powermail: Absendername und Absenderadresse im Bestätigungsemail überschreiben
-
Name und Adresse des Absenders im Bestätigungsemail überschreiben:
ins SETUP der Formularseite:
plugin.tx_powermail_pi1 {
email {
sender_mail {
sender.name = TEXT
sender.name.value = Ihr Name
sender.email = TEXT
sender.email.value = email@einfach-ist-schön.at
}
}
}Kategorie: Erweiterungen -
Powermail: Anmeldungsdaten als .csv oder .xls exportieren
-
1.) Zeitfilter in TSCONFIG der Startseite eintragen:
tx_powermail_mod1.config {
list.filterstart = 2010-01-01 00:00
}2.) Powermail im Menü WEB links auswählen
3.) Im Seitenbaum Formularseite auswählen
4.) Oben rechts stehen die Daten als CSV, XLS oder Tabelle zum Download bereit.
Kategorie: Erweiterungen
