Typo3 render das xHTML-inkonforme Attribut "border" bei allen Image-Tags automatisch mit in den Code.
Dieses verhalten lässt sich allerdings leicht ber TypoScript beheben:
config.disableImgBorderAttr = 1
Typo3 render das xHTML-inkonforme Attribut "border" bei allen Image-Tags automatisch mit in den Code.
Dieses verhalten lässt sich allerdings leicht ber TypoScript beheben:
config.disableImgBorderAttr = 1
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.
x = TEXT
x.value = test
x.wrap = <span> | </span>
<span>test</span>
x = TEXT
x.value = test
x.noTrimWrap = <span> | </span>
<span> test </span>
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:
Die Menüpunkte werden wiederholend nach dem obigen Muster gewrappt.
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
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.
#
# 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]
#
# set baseurl depending on host - part 2
#
config.baseURL= {$protocol}://{$host}/
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 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
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:
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'];
}
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
}
Standardmäßig ist die Ausgabe von Typo3 über CSS-Styled-Content etwas überladen und oft mit unnötigen Zusätzen versehen. Diese Standardkonfiguration räumt die Ausgabe auf und liefert damit einen sauberen HTML-Code.
#
# configure css_styled_content
#
# remove standard css
plugin.tx_cssstyledcontent._CSS_DEFAULT_STYLE >
# remove class from p-tags
lib.parseFunc_RTE {
nonTypoTagStdWrap.encapsLines {
addAttributes.P.class =
}
}
lib.stdheader {
# remove div-tags around headlines
stdWrap.dataWrap =
# set german date format
5.date = j.n.Y
# remove class from hx-tags
10.1.fontTag = <h1{register:headerStyle}>|</h1>
10.2.fontTag = <h2{register:headerStyle}>|</h2>
10.3.fontTag = <h3{register:headerStyle}>|</h3>
10.4.fontTag = <h4{register:headerStyle}>|</h4>
10.5.fontTag = <h5{register:headerStyle}>|</h5>
}
#
# configure tt_content output
#
tt_content {
# remove clear.gif
stdWrap.space=0
Typo3 generiert standardmäßig automatisch den Seitentitel aus dem Titel der aufgerufenen Seite. Um den Titel seinen eigenen Vorstellungen anzupassen ist ein wenig TypoScript erforderlich.
config {
#disable page title, will be written manually to header
noPageTitle = 1
}
# configure pagetitle
page.headerData {
10 = TEXT
10.field = subtitle // title
10.htmlSpecialChars = 1
10.wrap = <title>| - www.domain.com</title>
}
Es ist möglich eine eigene PHP-Funktion in Typo3 einzubinden die vor der Ausgabe des Contents noch auf diesen angewendet wird, so ist es z.B. möglich eine Plaintext-Version der Webseite für einen Newsletter anzubieten.
includeLibs.convert_script = fileadmin/convert.php
....
10.text.postUserFunc = user_convert->plaintext
<?php
class user_convert {
function plaintext($content,$conf) {
//replace br with newline
$text = preg_replace('/\<br(\s*)?\/?\> /i', "\n", $content);
// replace html tags
$text = preg_replace('@<[\/\!]*?[^<>]*?>@si','', $text);
// replace non-breaking space
$text = str_replace(' ', ' ', $text);
// linebreak after x characters
$text = wordwrap($text, 76);
//remove empty lines or spaces at the beginning of the text
$text = trim($text);