blog.bartlweb - a technologist's external brain

Thema: TYPO3

Link mit Parameter in Typo3-Extension erstellen

Das Typo3 Framwork bietet die möglichkeit einfach Links samt Parameter auf bestimmte Seiten von denen die ID bekannt ist zu generieren.

$referer = $GLOBALS["TSFE"]->id;
$urlparams = array("uid" =>  $row['uid'], "referer" => $referer);        
$marker['###LINK###'] = $this->pi_getPageLink($this->conf['page'] , '',  $urlparams);  

SQL-Abfrage in Typo3-Extension

Das Typo3-Framework bietet eine einfache möglichkeit SQL-Abfrage durchzuführen. Der untere Beispielcode zeigt ein einfaches Select-Statement:

$select = $GLOBALS['TYPO3_DB']->exec_SELECTquery(
  'uid, title',    
  'pages',
  'hidden = 0 AND deleted = 0',
  '',
  'title DESC'
);
            
if($GLOBALS['TYPO3_DB']->sql_num_rows($select)>0) {
  while( $row = $GLOBALS['TYPO3_DB']->sql_fetch_assoc($select) ) {
    ...
  }
}

Einfaches Debuggen in Typo3

Typo3 bietet den Befehl t3lib_div::debug() mit dem ein komfortable Ausgabe von Variablen am Anfang jeder Seite und damit ein einfaches Debuggen möglich ist.

t3lib_div::debug($variable);

Im Zusammenhang mit einer if-Abfrage auf den GET-Parameter debug ist auch ein komfortables Live-Debugging auf eine bereits online gestellten Seite möglich da Debug-Informationen dann nur bei Aufruf der Url im Format: http://www.website.com/index.php?id=4&debug=1 ausgegeben werden.

if($_GET[debug] == 1) {
  t3lib_div::debug($printIds);
}

Anzeigen des DirectMail-Folder-Icons im Typo3-Backend

Bei neueren Versionen der Typo3 Extension DirectMail wird der DirectMail Sysfolder (Sysfolder mit PlugIn DirectMail) nicht mehr mit dem DirectMail-Icon versehen.

Das Ergänzen der Datei ext_tables.php im Installationspfad der Extension um folgende Zeile schafft Abhilfe:

// add folder icon
$ICON_TYPES['dmail'] = array('icon' => t3lib_extMgm::extRelPath($_EXTKEY).'ext_icon.gif');

Typo3-Installation mit UTF-8 Datenbank

Typo3 erstellt Datenbank-Tabellen während der Installation mit dem Assistenten leider nicht mit den Zeichensatz UTF-8 sonder mit LATIN. Die folgende Anleitung beschreibt wie man eine frische Typo3-Installation für den Einsatz mit UTF-8 konfiguriert und die Datenbank entsprechend umstellt. Achtung: Nicht bei einer bestehenden Installation anwenden, da alle Datenbankinhalte gelöscht werden.

Typo3 Installer

Führen Sie die Installation mit dem Installer wie gewohnt aus.

Install Tool

Setzen Sie nun die folgenden Parameter über das Install-Tool in der Sektion "All Configuration".

[SYS][setDBinit] = 'SET NAMES utf8';
[SYS][UTF8filesystem] = 1 (Haken setzen)
[BE][forceCharset] = 'utf-8'

Datenbank

Danach wird die Datenbank umgestellt. Verwenden Sie dazu das Tool "phpMyAdmin". Zunächst muss der Zeichensatz der Datenbank umgestellt werden.

Redirect IE6 via TypoScript

Des öfteren will man ältere Browser von seiner Webseite ausschließen und Benutzern einen netten Update-Hinweis liefern. Das folgende TypoScript leitet alle InternetExplorer Version die kleiner oder gleich 6 sind um (ausgenommen die Mobile Version).

PIDinRootline gibt dabei die ID der obersten Seite unter der sich alle anderen befinden an.

Ändern Sie die Url der Location entsprechend Ihren Bedürfnissen.

Constants

protocol = http
[globalString = IENV:TYPO3_SSL=1]
  protocol = https
[global]
host = www.domain.com
[globalString = IENV:HTTP_HOST=domain.com]
 host = domain.com
[globalString = IENV:HTTP_HOST=192.168.10.100]
  host = 192.168.10.100
[globalString = IENV:HTTP_HOST=domain.local]
  host = domain.local
[global]

Setup

#
# redirect not supported browsers - ie6 and below, but do not redirect iemobile
#
[browser=msie] AND [version= <7] AND [globalVar = TSFE:id=2]
[browser=msie] AND [version= <7] AND [device=pda]
[browser=msie] AND [version= <7]
  page.config.additionalHeaders = Location: {$protocol}://{$host}/index.php?id=2
[global]

Typo3 Backend auf HTTPS umleiten

Gerade bei heiklen Informationen ist es oft erwünscht diese nicht in Klartext durchs Internet zu schicken. Abhilfe schafft in solchen Fällen HTTPS. Um beim Zugriff auf das Typo3-Backend automatisch von http auf https zu wechseln hilft mod_rewrite. Passen Sie dazu die .htaccess-Datei im root-Verzeichnis der Typo3-Installation an.

Für eine Standardinstallation von Typo3, sollte die .htaccess-Datei dann so aussehen.

RewriteEngine On
RewriteCond %{HTTPS} off
RewriteRule ^typo3/(.*)$ https://%{HTTP_HOST}%{REQUEST_URI} [R=301,L]

RewriteRule ^(typo3|typo3temp|typo3conf|t3lib|tslib|fileadmin|uploads|showpic\.php)/ - [L]
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{REQUEST_FILENAME} !-l
RewriteRule .* index.php [L]