Archiv für die Kategorie 'TYPO3'

TYPO3: Spamschutz bei Emails abschalten

Manch Kunde wünscht sich, dass die Email-Adressen ganz normal ausgegeben werden und einfach kopiert werden können. So wird der Schutz wieder abgeschaltet. Im setup Bereich des Templates folgendes eintragen:

config.spamProtectEmailAddresses = 0
config.spamProtectEmailAddresses_atSubst = @
config.spamProtectEmailAddresses_dotSubst = .

TYPO3: Weiße Seite

Sollte man mal nach einem Update des Kerns oder einer Extension vor dem Problem stehen, dass nur noch eine weiße Seite erscheint, dann IMMER in die log-Dateien des Servers schauen. Das gilt auch grundsätzlich für jedes PHP Programm. Immer wieder fragen Leute in Foren, was sie machen sollen. Nun, da Raten nun mal wenig Spaß macht, weil es unnötig Zeit benötigt ist es wesentlich effizienter einfach in die PHP Error Log zu schauen. Ihr Hoster hilft Ihnen da sicherlich weiter, wo diese zu finden ist.

Unter TYPO3 können Sie auch die Fehlerausgabe einschalten. Folgendes einfach in die typo3conf/localconf.php eintragen:

$TYPO3_CONF_VARS['SYS']['displayErrors'] = '1';

Oder ab TYPO3 Version 6.0 in der typo3conf/LocalConfiguration.php im SYS Bereich:

'displayErrors' => '1',

TYPO3 Formhandler: Vorname und Nachname zu einem Wert in der Email zusammenfügen

Werte von mehreren Feldern kann man bei der formhandler Extension mit den saveInterceptors. In meinem Beispiel gibt es zwei Felder mit den Keys “name” und “prename”. Folgenden Code auf die Ebene des validators einfügen:

saveInterceptors.1 {
  class = Interceptor_CombineFields
  config {
    combineFields {
      fullname {
        fields.1 = prename
        fields.2 = name
      }
    }
  }
}

Dann kann man auf das virtuelle Feld “fullname” zugreifen:

1.class = Finisher_Mail
1.config {
  checkBinaryCrLf = message
  admin {
    templateFile = TEXT
    templateFile.value = {$.....rootPath}/html/email-admin.html
    sender_email = ..........
    sender_name = fullname
    to_email = ........
    subject = TEXT
    subject.value = Kontakt via Website
  }
}

Bootstrap Template für TYPO3

Unter http://t3bootstraptv.de habe ich eine frühe Version meines TYPO3 Bootstrap Templates veröffentlicht. Ähnlich wie das YAML Template passt es die Ausgabe an die anzeigenden Geräte an wodurch die Website auf Desktop-PCs, Tablets und Smartphones optimal dargestellt werden kann. Es unterscheidet sich jedoch darin, dass es mit Stufen in der Breite des Inhaltbereiches implementiert wurde, auf die es je nach zur Verfügung stehenden Breite springt. Das YAML Template hingegen reagiert flüssig auf Änderungen in der Breite.  Desweiteren gibt es noch mehr Unterschiede:

  • Die Elemente im Bootstrap CSS Framework haben die margin-bottom definiert, bei YAML besitzen die Elemente einen oberen Abstand. Letzteres führt zu Komplikationen bei Bild-/Textelemente, da die Überschrift standardmäßig einen größeren Abstand hat, als gewöhnliche Absätze. In Fällen, in denen ein Bild und Text nebeneinander angeordnet sind, weiß man nicht, welchen oberen Rand man dem Bild geben soll, da man nicht weiß, ob im Text ein gewöhnlicher Absatz oder eine Überschrift steht. Das würde zu einem unschönen Sprung führen. Das Problem ist auf Seiten von Bootstrap nicht existent.

Zum jetzigen Zeitpunkt gefällt mir beim Bootstrap Template noch nicht, dass das Dropdown-Menü kein MouseOver kennt und nur angeklickt werden kann. So können die Seiten, welche Unterseiten besitzen, nicht angeklickt werden.

In TYPO3 fluid einen TCA Wizard Link rendern

Da ich selbst keine Lust habe, aufwändig den Link mit Conditions zu prüfen, ob dieser eine Page ID, Datei oder externen Link enthält, kann man sich mit einem ViewHelper helfen. Beispiel:

https://github.com/andyhausmann/TYPO3_Extension_FlexSlider/blob/master/Classes/ViewHelpers/DynLinkViewHelper.php

Nutzung:

<fs:DynLink arguments="{link: slide.link}">
<span>HTML Content</span>
</fs:DynLink>

Allerdings musste ich eine Anpassung vornehmen:

public function initializeArguments() {
  $this->registerUniversalTagAttributes();
  $this->registerArgument('arguments', 'array', 'Given arguments by Fluid call as an array.');
  $this->registerArgument('href', 'string', 'Link href.');		
}

public function initialize() {
  parent::initialize();
  $this->paramLabels = array('href', 'target', 'class', 'title');	
}

TYPO3 cal Extension: Archiv Einstellung

Folgender Code kann in das Element eingetragen werden:

view.list.endtime = -1 day
view.list.starttime = -3 months

TYPO3: tt_news: Lightbox in der List-Ansicht

Folgender Code ermöglicht das Vergrößern von Bildern in der tt_news Listen-Ansicht. Kompatibel ist dieser mit meiner jQuery Fancybox Extension.

plugin.tt_news.displayList.image.imageLinkWrap {
 enable = 1
 JSwindow = 0
 directImageLink = 1
 linkParams.ATagParams.dataWrap = class="{$styles.content.imgtext.linkWrap.lightboxCssClass}" data-fancybox-group="lightbox{field:uid}"
 width = {$styles.content.imgtext.linkWrap.width}
 height = {$styles.content.imgtext.linkWrap.height}
}

Google Chrome: Resource interpreted as script but transferred with MIME type text/plain

Wenn Chrome meckert, dass die JavaScript-Datei falsch übertragen wurde, dann muss das Folgende in die .htaccess eingetragen werden:

AddType application/x-javascript .js

Kommendes Update des YAML 4 TYPO3 Templates

Im kommenden Update des Templates sind folgende Änderungen dabei:

  • tt_news, flexslider und indexed_search werden direkt unterstützt
  • Ein JavaScript Menü für die Hauptnavigation direkt aktivierbar. Da ich kein Skript gefunden hatte, das den Anforderungen genügt, musste ich eines programmieren. Dieses wird bis zur Veröffentlichung ausgereift sein.
  • Änderung von Klassennamen um sich an die YAML Namenskonvention anzupassen.
  • Icons für FCEs und Layouts
  • und weitere..

Um schneller die Ergebnisse veröffentlichen zu können, möchte ich in den nächsten Tagen ein ant-Skript bauen, das das komplette TYPO3 Web auf den Server überträgt.

TYPO3: Lösung für: Es können keine neuen Elemente angelegt werden

Unter TYPO3 4.7.2 können mit TemplaVoila unter Umständen keine neuen Elemente angelegt werden. Es erscheint die Fehlermeldung “Sie haben nicht die nötigen Rechte, um diese Änderung durchzuführen.” Dies liegt an einer nicht mehr vorhandenen Spalte t3ver_swapmode in der pages-Tabelle in der Datenbank. Diese kann man einfach wieder hinzufügen. Sie muss vom Typ tinyint sein und standardmäßig den Wert 0 haben.