blog.bartlweb - a technologist's external brain

Alle Artikel

eigene Textkonvertierungsfunktion in die Typo3-Ausgabe einbauen

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.

TypoScript

includeLibs.convert_script = fileadmin/convert.php
....
10.text.postUserFunc = user_convert->plaintext

PHP

<?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('&nbsp;', ' ', $text);
        
    // linebreak after x characters
    $text = wordwrap($text, 76);
        
    //remove empty lines or spaces at the beginning of the text
    $text = trim($text);

Bilder nicht direkt in HTML-Mails integrieren

Werden Bilder direkt in die HTML-Mails integriert, könne diese von Mailservern leichter als Spam identifiziert werden.

Daher Bilder nicht in HTML-Mails einbetten sondern auf einen Server legen und mit absoluten Urls im Mail auf diese verweisen.

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
}

PHP Shorttags aktivieren

Standardmäßig führt PHP nur Code zwischen den Tags <?php ... ?> aus. Es gibt jedoch auch die Möglichkeit diese Tags in der Kurzform <? ... ?> , den Shorttags, zu schreiben. Generell sollten Shorttags jedoch vermieden werden.

Um Shorttags dennoch zu aktivieren editiern Sie die PHP-Konfiguriationsdatei "php.ini" und starten den Webserver neu.

short_open_tag = On

PHP Error Level

Es ist in PHP möglich den Error-Level (also die Ausgabe von Fehlermeldungen) global in der "php.ini" oder lokal in jedem File zu definieren. Um die Fehlerausgabe für eine PHP-Datei  zu ändern fügen Sie am Anfang dieser einen der folgenden Befehle ein:

error_reporting(E_ERROR); error_reporting(E_ALL);

Mailfunktion einer PHP-Installation testen

Um schnell die Mailfunktionalität einer PHP-Installation zu testen, verwenden Sie den unteren PHP-Code. Kopieren Sie diesen in eine Datei mit der Endung php, ändern Sie die Mail-Adresse "$mail" und legen Sie die Datei auf den Webserver, die Sie dann im Browser aufrufen.

<?php
  $mail = "webmaster@domain.com";
  $subject = "Mailtest";
  $content = "You have tested your webserver successfully in sending mails.";

  echo "<h1>Mailtest</h1>";
  echo "=====================================================</br>";
  echo "Recipient: ".$mail."</br>";
  echo "Subject: ".$subject."</br>";
  echo "Content: ".$content."</br>";
  echo "=====================================================</br></br>";

  mail($mail, $subject, $content);

  echo "Mail-Command was executed, please check your Inbox for success ...</br>";
?>

Alias nur für einen virtuellen Host definieren

Prinzipiell ist es in Apache möglich Alias nur für einen virtuellen Host zu definieren. Dazu muss die Definition lediglich innerhalb des virtuellen Hosts definiert werden. Alle Alias-Definition außerhalb einer virtuellen Host-Definition sind global und damit in allen virtuellen Hosts gültig.

Apache als Proxy für Webseiten verwenden

Apache lässt sich nicht nur als Webserver sondern auch als Proxy verwenden. In Zusammenhang mit VirtualHosts kann das Proxy Modul dazu verwendet werden, mehrer interne Server über einen Port von Außen erreichbar zu machen.

Angenommen unser Webserver ist unter www.example.com Port 80 erreichbar und unser Testserver intern läuft auf einer zweiten Maschine so müsste dieser nach Außen hin einen anderen Port, z.B. 81, bekommen um erreichbar zu sein.

Die Lösung dafür bietet das Apache Proxy-Modul. Dieses kann anfragen an den eigenen Webserver mittels Proxy an einen anderen weiterleiten.

TinyMCE in Alfresco Share 3.1 integrieren

Diese Anleitung beschreibt alle notwendigen Schritte um den YUI-Editor zum bearbeiten Wiki-Seiten und zum Erstellen bzw Editieren von Blogeinträgen gegen TinyMCE zu tauschen. Alle weiteren Editoren zum Anlegen von Kommentaren werden dadurch nicht getauscht.

Vorteile

  • Überschriften definierbar
  • mehr Möglichkeiten
  • bessere Benutzbarkeit

Einschränkungen

  • Alfresco entfernt beim Abspeichern leider diverse Tags (pre, code) -> um dies zu umgehen können aber benutzerdefinierte Styles definiert werden die dann auf p oder span-Tags angewendet werden können.

Umsetzung

1) TinyMCE Sources kopieren

Laden Sie die aktuelle Version von TinyMCE herunter und kopieren sie den Ordner “/jscripts/tiny_mce” nach “/opt/Alfresco/tomcat/webapps/share/js”

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