blog.bartlweb - a technologist's external brain

Thema: Webentwicklung

in Extension ID des aktuellen Content-Elements auslesen

Das Typo3-Framework bietet die Möglichkeit in einer Extension mittels PHP die ID des aktuellen Content-Elements (Content-Elemnt der Extension) auszulesen.

$this->cObj->data['uid']

eigenen Kommentar in den Typo3-Header einfügen

Eine hübsche Variante sich im HTML-Code einer Typo3-Umgebung zu verewigen, ist die Erweiterung des Standardkommentars im HTML-Header.

page.config {
  headerComment (
*********************************************************************************

                    Website by xxxxx - www.domain.com

*********************************************************************************
  )
}

TypoScript-Beispiele für diverse Menüs

Hier finden Sie Beispiele für verschiedene mit Typo3 realisierte Menüs.

Breadcrumb Menü

lib.breadcrumb = HMENU
lib.breadcrumb.special = rootline lib.breadcrumb.1 = TMENU
 
lib.breadcrumb.1.NO {
  ATagParams = class="internal_link"
  ATagTitle.field = abstract // description // subtitle
  stdWrap.htmlSpecialChars = 1
  linkWrap = | <span>&nbsp;&gt;&nbsp;</span>
}
 
lib.breadcrumb.1.CUR = 1
lib.breadcrumb.1.CUR {
  doNotLinkIt = 1
  linkWrap = <span>|</span>
  stdWrap.htmlSpecialChars = 1
}

vertikales Menü - Metanavigation

lib.meta = HMENU
lib.meta.special = list
lib.meta.special.value = 35, 38, 40, 36
lib.meta.1 = TMENU
lib.meta.1.noBlur = 1
lib.meta.1.NO {
  ATagParams =
  linkWrap = |<span>&nbsp;&#124;&nbsp;</span> |*| |<span>&nbsp;&#124;&nbsp;</span> |*| |
}
lib.meta.stdWrap.wrap = <div class="metanavigation">|</div>

horizontales Menü 1

lib.subnavigation = COA
lib.subnavigation.wrap=<div>|</div>
 
lib.subnavigation.5 = HTML
lib.subnavigation.5.value=<div></div>
 
lib.subnavigation.10 = TEXT
lib.subnavigation.10 {
  data = leveltitle : 1
  wrap = <h2>|</h2>
  htmlSpecialChars = 1
}
 
lib.subnavigation.20 = HMENU
lib.subnavigation.20.entryLevel = 1
lib.subnavigation.20.1 = TMENU
lib.subnavigation.20.1.noBlur = 1
lib.subnavigation.20.1 {
  noBlur = 1
  expAll = 1
  wrap = <ul id="subnavigation">|</ul>
 
  NO = 1
  NO {
    ATagTitle.field = abstract // description // subtitle
    allWrap = <li>|</li>
    stdWrap.htmlSpecialChars = 1
  }
 
  ACT = 1
  ACT < .NO
  ACT {
    ATagParams =
    stdWrap.htmlSpecialChars = 1
  }
  
  IFSUB = 1
  IFSUB < .NO
  IFSUB {
    allWrap = <li>|
    stdWrap.htmlSpecialChars = 1
  }
  
  ACTIFSUB = 1
  ACTIFSUB < .ACT
  ACTIFSUB {
    allWrap = <li>|
    stdWrap.htmlSpecialChars = 1
  }
}
 
lib.subnavigation.20.2 = TMENU
lib.subnavigation.20.2.noBlur = 1
lib.subnavigation.20.2 {
  wrap = <ul>|</ul></li>
  
  NO = 1
  NO {
    ATagTitle.field = abstract // description // subtitle
    allWrap = <li>|</li>
    stdWrap.htmlSpecialChars = 1
  }
  
  ACT = 1
  ACT < .NO
  ACT {
      ATagParams =
  }
}
 
lib.subnavigation.25 = HTML
lib.subnavigation.25.value=<div></div>

horizontales Menü 2

lib.mainnavigation = HMENU
lib.mainnavigation.special = list
lib.mainnavigation.special.value = 8,7,6,5,4,3,94
 
lib.mainnavigation.1 = TMENU
lib.mainnavigation.1.noBlur = 1
lib.mainnavigation.1.wrap = <ul>|</ul>
lib.mainnavigation.1 {
  expAll = 1
  
  NO = 1
  NO {
    linkWrap = <li>| || <li>| || <li>| || <li>| || <li>|
    ATagTitle.field = abstract // description // subtitle
    stdWrap.htmlSpecialChars = 1
    stdWrap.wrap= <span>|</span>
  }
  
  ACT < .NO
  ACT = 1
  ACT {
   linkWrap = <li id="current">| || <li id="current">| || <li id="current">| || <li id="current">| || <li id="current">|
  }
}
 
lib.mainnavigation.2 = TMENU
lib.mainnavigation.2.noBlur = 1
lib.mainnavigation.2.wrap = <ul>|</ul></li>
lib.mainnavigation.2 {
  expAll = 1
 
  NO = 1
  NO {
    ATagTitle.field = abstract // description // subtitle
    linkWrap = <li>|</li>
    stdWrap.htmlSpecialChars = 1
  }
}

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 >