blog.bartlweb - a technologist's external brain

Thema: Webentwicklung

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

die Wrap-Option von Typo3

Typo3 kennt mehrere Arten von Wrap (z.b. stdWrap, linkWrap, usw.) die je nach Object-Typ verfügbar sind.

Allen liegt allerdings die Funktionsweise des wrappens mittels Pipe-Symbol (|) und den Split Options zu Grunde.

einfacher Wrap

x = TEXT
x.value = test
x.wrap = <span> | </span>
<span>test</span>

Wrappen ohne Leerzeichen zu verlieren

x = TEXT
x.value = test
x.noTrimWrap = <span> | </span>
<span> test </span>

Splitoptions

Splitoptions sind vor allem für Menüs geeignet um die verschiedenen Menüpunkte unterschiedlich zu wrappen.

6 Menüpunkte werden bei folgenden Beispielen wie angegeben gewrappt:

<span> | </span> || <p> | </p>

Die Menüpunkte werden wiederholend nach dem obigen Muster gewrappt.

“Toggle HTML Source” im RTE einblenden oder ausblenden

Der Typo3-RichText-Editor bietet standardmäßig die Möglichkeit zwischen Standardansicht und HTML-Code zu wechseln.

Um den so genannten "Toggle HTML Source"-Button ein bzw. auszublenden muss in der RTE-Konfiguration das Schlüsselwort "chMode" von der Konfiguration "showButton" nach "hideButton" verschoben werden.

showButton = chMode
hideButton = chMode

BaseURL per TypoScript dynamisch setzen

Gerade in Zusammenhang mit RealUrl muss in Typo3 per "config.baseURL" die BaseURL für die aktuelle Seite gesetzt werden. Jetzt kommt es aber des öfteren vor, dass eine Seite über verschiedene Domains oder auch per HTTPS erreichbar sein soll und hier greift das untere TypoScript-Snipplet das dann automatisch für die jeweilige Domain und das jeweilige Protokoll die richtige BaseURL setzt.

Constants

#
# set baseurl depending on host - part 1
#
 
protocol = http
[globalString = IENV:TYPO3_SSL=1]
  protocol = https
[global]
 
host = domain.com
[globalString = IENV:HTTP_HOST=www.domain.com]
  host = www.domain.com
[globalString = IENV:HTTP_HOST=seconddomain.com]
  host = seconddomain.com
[globalString = IENV:HTTP_HOST=www.seconddomain.com]
  host = www.seconddomain.com
[global]

Setup

#
# set baseurl depending on host - part 2
#
 
config.baseURL= {$protocol}://{$host}/

internes Linkmanagement von Typo3

Der Vorteil von Typo3 und diversen CMS im Allgemeinen ist, dass gerade bei internen Verlinkungen viel Arbeit erspart bleibt.

Deaktiviert oder löscht man eine Seite so werden auch automatisch alle Links die per TypoScript oder im RTE gesetzt wurden deaktiviert.

Links in von Typo3 generierten E-Mails verkürzen

Links in von Typo3 generierten E-Mails können in Typo3 global formatiert werden. Dabei können lange Links in der Datenbank gespeichert und der Anwender sieht im E-Mail anstatt eines langen Links nur einen kurzen Link inkl. md5-Hash.

config.notification_email_urlmode = all

Parameter

  • leer = Links werden nicht verändert
  • 76 = Links, die länger als 76 Zeichen sind, werden verkürzt und in der Datenbank gespeichert
  • all = Alle Links werden verkürzt un in der Datenbank gespeichert

Indexed Search um eine Fehlermeldung erweitern

Werden bei Indexed Search weniger als 2 Zeichen eingegeben, gibt die Extension keine Fehlermeldung zurück, sondern liefert einfach keine Suchergebnisse. Um dies abzufangen ist eine kleine Änderung in der Extension notwendig:

Extension bearbeiten

Dazu die Datei typo3/sysext/indexed_search/pi/class.tx_indexedsearch.php bearbeiten und ab Zeile 180 den Code in folgendes abändern:

// Do search:
// If there were any search words entered...
if (is_array($this->sWArr)) {
  $content = $this->doSearch($this->sWArr);
  if($content == '')
  {
    $content = $this->conf['errormsg'];
  }
}
else
{
  $content = $this->conf['errormsg'];
}

TypoScript-Konfiguration

Die Konfiguration dann um den Wert "errormsg" erweitern und z.B. wie folgt konfigurieren um keinen Link auf die erweiterte Suche und keine Regeln auszugeben:

plugin.tx_indexedsearch {
  _CSS_DEFAULT_STYLE >
 
  templateFile = fileadmin/indexed_search_template.htm
  errormsg = <h1>Fehler</h1><p>Bitte geben Sie nur Begriffe mit mindestens zwei Zeichen ein.</div>
 
  show.advancedSearchLink = 0
  show.rules = 0
}