blog.bartlweb - a technologist's external brain

Thema: TYPO3

Automatisch Seitencaches bei Änderungen im Typo3-Backend löschen

Bei vielen Erweiterungen wie z.B. tt_news werden die Content-Elemente in einem Sysfolder angelegt und damit diese dann auf der Webseite erscheinen muss zunächst der Cache jener Seite die das PlugIn enthält gelöscht werden.

Mit folgenden Snippet, dass im TSconfig des Sysfolder angelegt wird, wird bei Änderungen im Sysfolder automatisch der Cache einer der angegebenen Seiten gelöscht.

TCEMAIN {
  clearCacheCmd = 1,43,44,45
}

TemplaVoila speichert Mappings nicht

Sollte TemplaVoila das Mapping nicht speichern hängt dies oft mit unterschiedlichen Codierungen zusammen. Gerade wenn Typo3 im UTF-8 Modus läuft sind einige Punkte zu beachten.

  • stellen Sie sicher, dass das Templates UTF-8 codiert sind
  • stellen Sie sicher, dass die Datenbank UTF-8 codiert ist
  • stellen Sie sicher, dass das Backend auf UTF-8 läuft

Typo3 Backend Felder deaktivieren oder vorbelegen

Viele Extensions oder auch der Typo3-Core bieten oft viel mehr Felder in den Backend-Dialogen diverser Content-Elemente an als für viele Einsatzwecke notwendig. Die meisten können über die Benuzterverwaltung und die Zugriffsregeln deaktiviert werden. Scheint ein Feld dort jedoch nicht auf gibt es die Möglichkeit dieses per TypoScript im TS-Config-Feld der aktuellen Seite zu deaktiveren. Im gleichen Zuge gibt es aber auch die Möglichkeit Felder mit Default-Werten vorzubelegen.

Ersetzen Sie DBTabelle und DBField durch den Datenbanknahme und den Namen des Datenbankfelds, jeder beliebigen Extension.

Feld ausblenden

TCEFORM.DBTabelle.DBField.disabled = 1

Feld vorbelegeben

TCAdefaults.DBTabelle.DBField= 1

DirectMail Cronjob auf Mittwald Servern einrichten

Nicht immer lässt sich der DirectMail-Cronjob auf Mittwald-Servern einwandfrei einrichten. Um das Script dennoch zum laufen zu bekommen, muss dieses leicht angepasst werden.

1. Schritt

Zeile 46 des Skriptes typo3conf/direct_mail/res/scripts/dmailderd.:

if (!defined('PATH_site')) define('PATH_site', dirname(dirname(dirname(dirname(dirname(dirname(PATH_thisScript)))))).'/');

wie folgt abändern:

if (!defined('PATH_site')) define('PATH_site', '/html/');

2. Schritt

die Rechte des Serververzeichnis typo3temp (Pfad: /html/typo3temp) von 755 auf 775 ändern.

3. Schritt

Das Cronjob-Intervall in den Einstellungen der Extension (über Extensionmanager) auf die richtige Zeit setzen um Fehl-Fehlermeldungen im Backend zu vermeiden. (Funktion ist aber auch bei falsch eingestellter Zeit gewährleistet.)

Erklärung

1.Schritt: Das Skript benötigt eine absolute Pfadangabe.

RTE Beispielkonfiguration

Gerade das Konfigurieren des RichText-Editors (RTE) von Typo3 benötigt etwas Fingerspitzengefühl, die unten angeführte Beispielkonfiguration soll dabei als Vorlage dienen. Das TypoScript wird dabei in das TSConfig-Feld der entsprechenden Seite kopiert (Einstellungen werden im Baum nach unten weitervererbt).

#
# RTE config
#

# define classes for link-types
RTE.classesAnchor {
    
  externalLink {
    class = link_external
    type = url
    image >
    titleText =
  }

  internalLink {
    class = link_internal
    type = page
    image >
    titleText =
  }

  download {
    class = link_file
    type = file
    image >
    titleText =
  }

  mail {
    class = link_mail
    type = mail
    image >
    titleText =
  }
}

Typo3 Installation auf UTF-8 umstellen

Achtung: Immer vor der Dateneingabe umstellen, da ansonsten Umlaute umkodiert werden müssen.

frische Typo3-Installation anpassen

Typo3

Passen Sie folgende Werte im Install-Tool an um Typo3 auf UTF-8 umzustellen.

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

Datenbank

Erstellen Sie die Datenbank als UTF8 und kontrollieren Sie folgendes:

  • Zeichensatz/Kollation der MySQL-Verbindung: utf8_unicode_ci
  • neue Datenbank mit Kollation: utf8_general_ci
  • Kollation der einzelnen Datenbank-Tabellen: utf8_general_ci

existierende Datenbank konviertieren (the simplest way)

Typo3

passen Sie die Parameter wie oben beschrieben an.

Datenbank

  • Datenbank mit MySQLDumper exportieren
  • SQL-File downloaden und aus gz-Datei extrahieren

Meta-Tags mit Typo3 generieren

Typo3 bietet die Möglichkeit Description und Keywords für jede Seite individuell in den Seiteneigenschaften festzulegen. (Bei Typo3 Versionen < 4.2 muss auf den Seitentyp "Advanced" umgestellt werden um die Eingabefelder zu bekommen)

Das folgende TypoScript schreibt dabei die auf der Seite definierten Keywords und Description in den Header. Sollten auf der aktuellen Seite diese Informationen nicht gefunden werden, werden diese automatisch von der Seite mit der ID 1 (1 durch eine beliebige ID ersetzbar) verwendet.

page.meta {
  keywords = TEXT
  keywords.data = DB:pages:1:keywords
  keywords.override {
    required = 1
    data = field:keywords
  }
  description = TEXT
  description.data = DB:pages:1:description
  description.override {
    required = 1
    data = field:description
  }
  
  language = de
  revisit-after = 10 days
  robots = index, follow
}

Aktuelle User-ID in Typo3-Extension auslesen

Wie viele Infos ist auch die ID des aktuell im Frontend angemeldeten Benutzers im globalen TSFE-Array gespeichert.

$GLOBALS['TSFE']->fe_user->user[uid]

Link auf die aktuelle Seite in einer Typo3-Extension ausgeben

Um einen vollständigen Link (falls RealUrl aktiv ist, auch sofort in eine lesbaren Form) auf die aktuelle Seite zu erhalten wird folgender Funktionsaufruf benötigt:

$this->pi_getPageLink($GLOBALS["TSFE"]->id , '',  '')

Typo3-Content in Extension ausgeben

Um ein spezialles Content-Element, dessen ID bekannt ist, in einer Typo3-Extension auszugeben ist folgender Code notwending:

$tt_content_conf = array('tables' => 'tt_content','source' => $this->conf['contentID'],'dontCheckPid' => 1);
$markerArray['###TEXT###'] = $this->cObj->RECORDS($tt_content_conf);