blog.bartlweb - a technologist's external brain

Thema: TYPO3

SQL unter Typo3 debuggen

Um SQL-Fehler komfortabel unter Typo3 zu debuggen muss im Install-Tool unter "All Configuration" die Variable "sqlDebug" gesetzt werden, danach werden die dementsprechenden SQL-Meldungen auf der Webseite ausgegeben.

DirectMail ohne tt_address Extension verwenden

Wird Direct Mail ohne tt_address-Extension verwendet wird zwar die tt_address-Datenbanktabelle angelegt, allerdings nur mit den durch DirectMail ergänzenden Werten. DirectMail tätigt allerdings Abfragen auf diese Tabelle, und dadurch enstehen im Backend Fehlermeldungen. Um diese zu behebden muss der tt_address-Tabelle das Feld “pid” vom typ INT(11) hinzugefügt werden. DirectMail funktioniert dann auch ohne tt_address einwandfrei.

Im Normalfall wird DirectMail aber in Verbindung mit tt_address genutzt und dann muss tt_address vor DirectMail installiert werden.

Caching einer Extension deaktivieren

Viele Extensions liefern dynamische Daten zurück die zur Laufzeit aus der Datenbank generiert werden und von Benutzereingaben abhängig sind. Damit solche PlugIns aber auch wirklich immer die gewünschten Daten zurückliefern muss für diese das Typo3-interne Caching deaktiviert werden. Dies erfolgt an 2 Orten in der Extension:

ext_localconf.php

Ändern Sie die Zeile:

t3lib_extMgm::addPItoST43($_EXTKEY, 'pi1/class.tx_extension_pi1.php', '_pi1', 'list_type', 1);

in:

t3lib_extMgm::addPItoST43($_EXTKEY, 'pi1/class.tx_extension_pi1.php', '_pi1', 'list_type', 0);

pi1/class.tx_extension_pi1

Löschen Sie direkt nach der Klassendefinition folgende Zeile:

var $pi_checkCHash = true;

Fügen Sie zu main-Funktion $this->pi_USER_INT_obj = 1; hinzu:

function main($content, $conf) {
  ...
  $this->pi_USER_INT_obj=1;
  ...
}

ImageMagick 6 Konfiguration für Typo3

Immer noch ist ImageMagick 4.2 für Typo3 die beliebteste Version des Grafikerzeugers, da diese automatisch und ohne Probleme läuft. Doch auch ImageMagick 6 lässt sich mit den richtigen Einstellungen zur Zusammenarbeit mit Typo3 bewegen.

Hier finden Sie die Einstellung der diversen Install-Tool-Parameter für ImageMagick 6:

image_processing = 1
thumbnails = 1
thumbnails_png = 0
nonIconProc = 1
gif_compress = 1
imagefile_ext = gif,jpg,jpeg,tif,bmp,pcx,tga,png,pdf,ai
gdlib = 1
gdlib_png = 0
gdlib_2 = 1
im = 1
path = [serverpfad]
im_path_lzw = [serverpfad]
im_version_5 = im6
im_negate_mask = 0
im_imvMaskState = 1
im_no_effects = 1
im_v5effects = 1
im_mask_temp_ext_gif = 1
im_mask_temp_ext_noloss = miff
im_noScaleUp = 0
im_combine_filename = composite
im_noFramePrepend = 0
jpg_quality = 90
enable_typo3temp_db_tracking = 0
TTFLocalConv =
TTFdpi = 96
png_truecolor = 0

Post- und Get-Parameter in Extension auslesen

Die Verarbeitung von Post- und Get-Parametern ist in den meisten Extension eine Notwendigkeit. Das Typo3-Framework bietet bei Einhaltung einer Konvention eine komfortable Möglichkeit auf diese Parameter in einer Extension zuzugreifen.

Namens-Konvention

extensionname[feldname]

<select id="var" name="tx-extension-pi1[var]">

PHP

Um nun in der Extension den Wert auslesen zu können werden zunächst alle Form-Values in ein Array gespeichert, wodurch dann auf jeden Wert zugegriffen werden kann:

$formValues = t3lib_div::_GP('tx-extension-pi1');
$var = $formValues['var'];

Einträge in der Locallang-Datei einer Extension per TypoScript überschreiben

Extensions beziehen Übersetzungen aus den im Extension-Verzeichnis enthaltenen locallang.xml-Dateien. Die Definitionen lassen sich entweder direkt in diesen Dateien verändern oder aber komfortabel per TypoScript überschreiben:

Syntax

plugin.[name]._LOCAL_LANG.de.[Feldname] = [Wert]

Beispiel

plugin.tx_veguestbook_pi1._LOCAL_LANG.de.form_error = Es ist ein Fehler aufgetreten!

Default-CSS einer Extension löschen

Viele Typo3-Extensions binden standardmäßig eigene CSS-Definitionen ein. Diese sind meist aber überflüssig, da die Templates so und so eigenen Bedürfnissen und Vorstellungen angepasst werden. Das Einbinden dieser Standard CSS-Definitionen kann allerdings einfach per TypoScript unterbunden werden.

Syntax:

plugin.[name]._CSS_DEFAULT_STYLE >

Beispiel:

plugin.tx_veguestbook_pi1._CSS_DEFAULT_STYLE >

Extensions ohne Dokumentation bändigen

Gerade kleinere Extensions kommen oft mit einer schlechten oder komplett ohne Dokumentation. Doch die wichtigsten TypoScript-Parameter lassen sich schnell und einfach beim Blick in 2 Dateien im jeweiligen Extension-Ordner erkennen.

Suchen Sie daher nach folgenden 2 Dateien:

  • ext_typoscript_constants.txt
  • ext_typoscript_setup.txt

Seiten aus IndexedSearch ausnehmen

Standardmäßig werden von IndexedSearch in Typo3 alle Seiten durchsucht, doch gerade Serviceseiten wie Sitemaps oder Danke-Seiten sollten aus der Suche ausgenommen werden. Wichtig auch für Seiten die gerade in der Entwicklung sind, da diese sonst über die Suche abrufbar sind!

Um eine Seite aus der Suche auszunehmen gehen Sie in die Seiteneigenschaften (page properties) und setzen die Checkbox "no search".

Content-Elemente anhand der ID per TypoScript einbinden

Hin und wieder kann es nützlich sein ein Content Element einer Seite per TypoScript vielleicht in das Layout einzubinden oder innerhalb einer Extension anzuzeigen. Das folgende TypoScript-Snippet gibt das ContentElement mit der ID 100 per Marker aus.

temp.contentElement = RECORDS
temp.contentElement {
  tables = tt_content
  #uid of the wanted content element
  source = 100
  dontCheckPid = 1
}

marker = COA
marker.10 < temp.contentElement