blog.bartlweb - a technologist's external brain

Thema: Webentwicklung

Subtitel anstatt des Titels in einem mit TypoScript generierten Menü ausgeben

Gerade bei unkonventionellen oder sehr langen Seitentiteln ist es oft erwünscht im Menü andere Titel darzustellen. Typo3 bietet dazu das Feld "Subtitle" an, damit dieses jedoch falls ausgefüllt anstatt des Titels im Menü aufscheint muss dort die Zeile:

NO.stdWrap.field = title

in folgendes geändert werden:

NO.stdWrap.field = subtitle // title

RTE Content in Extension ausgeben

Datenbankfelder in einer eigenen Extension ausgeben ist keine Hexerei, um jedoch RichTextEditor-Felder sammt Formatierung auszugeben, müssen dieses Felder an eine spezielle Funktion übergeben werden, die als Rückgabe den richtig formatierten Quelltext zurückliefert.

$this->pi_RTEcssText($text)

Größe von Bildern in einer Typo3 Extension ändern

Um in einer Typo3-Extension die Größe einer Grafik zu verändern (resize) kann man sich des Typo3-Framworks und ImageMagick zu nutze machen. Dazu erstellt man ein Konfigurationsarray, das die selben Möglichkeiten wie aus TypoScript bekannt, bietet und erstellt dann ein Typo3-Objekt vom Typ "IMG_RESOURCE". Als Rückgabe erhält man den Pfad auf das neu generierte Bild.

$imgsrc = 'uploads/pics/'.$image;
 
$img = array();
$img['file'] = $imgsrc;
$img['file.']['maxW'] = $this->conf['maxWidth'];
$img['file.']['maxH'] = $this->conf['maxHeight'];
 
$imagepath = $this->cObj->IMG_RESOURCE($img);

Der folgende Code verändert nicht nur die Größe des Bildes, sondern passt dieses auch an eine vorgegebene Größe an (crop).

$imgsrc = 'uploads/pics/'.$image;
 
$img = array();
$img['file'] = 'GIFBUILDER';
$img['file.']['XY'] = $this->conf['imgWidth'] . ',' . $this->conf['imgHeight'];
$img['file.']['10'] = 'IMAGE';                  
$img['file.']['10.']['file'] = $imgsrc;
$img['file.']['10.']['file.']['width'] = $this->conf['imgWidth'] . 'c';
$img['file.']['10.']['file.']['height'] = $this->conf['imgHeight'] . 'c';
 
$imagepath = $this->cObj->IMG_RESOURCE($img);

Typo3-interner Spamschutz für E-Mailadressen

Typo3 bietet bereits eine integrierte auf JavaScript basierte Lösung um E-Mailadressen auf der Webseite vor Spamrobots und Crawlern zu schützen.

Dazu muss dem TypoScript-Setup nur folgendes Codesnippet hinzugefügt werden:

config.spamProtectEmailAddresses = 2
config.spamProtectEmailAddresses_atSubst = (a)

spamProtectEmailAddresses kann einen Wert zwischen -5 und 5 haben und gibt dabei die ASCII-Zeichenverschiebung an.

Achtung: removeDefaultJS darf nicht auf 1 stehen (external oder 0), da ansonsten das benötigte JavaScript nicht eingebunde wird

DirectMail und tt_address Empfängerlisten manuell importieren

Beim manuellen importieren von Adressdaten in die Datenbanktabelle von tt_address für die Verwendung in Zusammenhang mit DirectMail muss umbedingt das Feld module_sys_dmail_html auf den Wert 1 gesetzt werden, da DirectMail ansonsten keine HTML-E-Mails an diese Empfänger schickt.

TemplaVoila Content von einer Seite auf allen anderen anzeigen lassen

Gerade bei Webseites mit Informationsboxen gibt es oft das Verlangen diese Boxen so lange auf einer Seite nicht anders definiert auf allen Seiten gleich darzustellen. Diesem Problem schafft die Extension "KB TV Content Slide" Abhilfe. Dazu muss lediglich die Extension installiert werden und die Datenstruktur des TemplaVoila-Templates angepasst werden.

Grundsätzlich wird der auf der Startseite (Root-Seite des Baumes) definierte Content der konfigurierten Spalte nach unten hin weitervererbt und auf jeder Unterseite angezeigt. Soll jetzt auf einer Seite ein anderer Content angezeigt werden, so muss dort nur anderer Content angelegt werden, denn sobald Content erkannt wird, wird dieser anstelle der von der Root-Seite verwendet.

TypoScript Conditions für die Seitenauswahl

Per Conditions lässt sich in TypoScript so etwas wie if-else realisieren. Dabei gibt es z.B. das Szenario das Typoscript nur auf bestimmten Seiten ausgeführt werden soll um z.b.: eine Navigation nur auf bestimmten Seiten anzeigen zu lassen.

TypoScript für die Seite mit UID x und den darunter liegenden

[PIDinRootline = x]
  ...
[global]

TypoScript nur für die Seite x

[globalVar = TSFE:id=x]
  ...
[global]

aktuelles Datum per TypoScript einbinden

Gerade für Copyright Informationen oder das Versanddatum eines Newsletters ist es komfortabel sich das aktuelle Datum per TypoScript ausgeben zu lassen.

Datum

date = TEXT
date.data = date:U
# date like 10.12.2008
date.strftime = %d.%m.%Y

Copyright

copyright = TEXT
copyright.data = date:U
copyright.strftime = %Y
copyright.noTrimWrap = |(c) | www.domain.com|

strftime

Die Parametrisierung von strftime entspricht den Konvertierungen der PHP-strftime()-Funktion: http://de.php.net/strftime

Link auf eine interne Seite per TypoScript erstellen

Typo3 bietet per TypoScript die Möglichkeit Links auf interne Seiten zu erstellen die dann auch automatisch in RealUrls konvertiert werden oder bei ausblenden oder löschen der betreffenden Seite deaktiviert werden.

einfacher Link

link = HTML
link {
  value = Link
  value.typolink.parameter = 1
  value.typolink.ATagParams = title="mein Link"
  stdWrap.wrap = <div id="link"> | </div>
}

parameter: Geben Sie hier die ID der Zielseite an
ATagParams: hier können Sie dem a-Tag html-Attribute hinzufügen

Link mit Parameter

link = HTML
link{
  value = Link with referer
  value.typolink.parameter = 64
  value.typolink.ATagParams = title="interner Link"
 
  #add parameter referer to link, with link to the current page
  value.typolink.additionalParams.data = getIndpEnv: TYPO3_REQUEST_URL
  value.typolink.additionalParams.wrap = &referer=|
  value.typolink.additionalParams.rawUrlEncode = 1
 
  stdWrap.wrap = <div id="link">|</div>
}