blog.bartlweb - a technologist's external brain

Thema: Webentwicklung

Funktionsumfang und Stile des RTE-Editors von WordPress anpassen

Der RTE-Editor von WordPress ermöglicht es Redakteuren komfortabel und einfach Beträge zu erstellen und vor allem ohne HTML-Kenntnisse zu formatieren. Doch selten sind die vordefinierten Formatierungsmöglichkeiten ausreichend und noch viel weniger ist es ratsam den geballten Umfang an Funktionen und Möglichkeiten zur Formatierung des integrierten Editors anzubieten.

Mit etwas eigenem Code in der Datei functions.php des geladenen WordPress-Templates lässt sich der Editor an die eigenen Bedürfnisse anpassen.

Eigene Stile definieren

Der erste Schritt ist den Redakteuren sinnvolle Stile anzubieten und daher die standardmäßig angebotenen Stile auf die tatsächlich durch das WordPress-Template bereitgestellten CSS-Stile zu limitieren.

Befehle auf Remote-Systemen mittels SSH-Verbindung über PHP absetzen

"Ein Verwaltungsinterface auf einem Gatewayrechner für interne Systeme", "das Deployen von generierten Konfigurationsdateien", "den Status eines Drittsystems erfassen", ... es gibt unzählige Anwendungsfälle, in denen es notwendig werden kann sich per PHP-Skript und SSH auf ein entferntes System zu verbinden und dort Befehle abzusetzen.

Die Library phpseclib (phpseclib.sourceforge.net) ermöglicht es, aus PHP-Skripten heraus, SSH-Verbindungen aufzubauen und Befehle abzusetzen.

Authentifizierung mit Benutzername und Passwort

Die einfachere Variante ist die Authentifizierung mit Benutzername und Passwort am entfernten System. Hierfür reicht bereits das Einbinden der Library und wenige Zeilen Code aus.

PHP unter Windows kann die Erweiterung cURL nicht laden

Im Regelfall lassen sich sowohl unter Windows als auch Linux PHP-Module durch einfaches Auskommentieren der zugehörigen Zeile in der Konfigurationsdatei php.ini aktivieren. So aktiviert die Zeile extension=php_curl.dll das Modul cURL.

Unter Windows wird in den Logdateien, dann allerdings der folgende Fehler angezeigt:

PHP Warning:  PHP Startup: Unable to load dynamic library 'C:/Program Files (x86)/PHP/ext/php_curl.dll' - Das angegebene Modul wurde nicht gefunden.\r\n in Unknown on line 0

Diese Warnung entsteht, weil PHP die notwendigen Abhängigkeiten nicht finden kann. Um dies zu lösen, müssen Sie die Datei libssh2.dll aus dem PHP-Installationsverzeichnis nach <Installationspfad>\Apache24\bin\ kopieren und eine Pfadvariable auf den PHP-Ordner in der Windows-Systemkonfiguration ergänzen.

Besonderheiten beim Betrieb von TYPO3 auf einem Webhost von DomainFactory

Wer TYPO3 auf einem Webhosting-Paket von DomainFactory per Hand installieren möchte, wird eventuell auf die eine oder andere Hürde stoßen, die ich hier kurz erläutern möchte.

Leeres Fronted - Fehler 500

DomainFactory erlaubt auf seinen Hostingpaketen zwar Symlinks auf Ordner aber nicht auf einzelne Dateien. Wer TYPO3 laut den Empfehlungen so installiert, dass der Ordner typo3 und die Datei index.php per Symlink auf den Ordner typo3_src zeigen, wird mit einem leeren Frontend konfiguriert. Die Server-Logs zeigen dazu ebenfalls nur einen nichtssagenden HTTP 500-Fehler an.

Kopieren Sie die Datei index.php direkt in das Root-Verzeichnis (nicht als Symlink anlegen) um das Problem zu lösen.

Browser mittels JavaScript in den Vollbildmodus versetzen

Das unten stehende JS-Snippet versetzt den Browser in den Vollbildmodus und funktioniert in allen gängigen Browsern (Mozilla Firefox, Google Chrome, Microsoft Internet Explorer, Apple Safari)

Achtung: Apple Safari wird nur unter Mac OS unterstützt, denn unter iOS erlaubt Apple für Websites generell keinen Vollbildmodus.

JavaScript-Code

function fullscreen(){
    elem = document.getElementsByTagName("body")[0];
   
    if (!document.fullscreenElement && !document.mozFullScreenElement && !document.webkitFullscreenElement && !document.msFullscreenElement){
        if(elem.requestFullscreen){
            elem.requestFullscreen();
        } else if(elem.msRequestFullscreen){
            elem.msRequestFullscreen();
        } else if(elem.mozRequestFullScreen){
            elem.mozRequestFullScreen();
        } else if(elem.webkitRequestFullscreen){
            elem.webkitRequestFullscreen(elem.ALLOW_KEYBOARD_INPUT);
        }
    } else {
        if(document.exitFullscreen){
            document.exitFullscreen();
        } else if(document.msExitFullscreen){
            document.msExitFullscreen();
        } else if(document.mozCancelFullScreen){
            document.mozCancelFullScreen();
        } else if(document.webkitExitFullscreen){
            document.webkitExitFullscreen();
        }
    }
}

Einschränkungen

Bei der Entwicklung von Websites, die im Vollbildmodus angezeigt werden sollen, sind die folgenden beiden Dinge zu beachten:

HTML-Emails mit Plaintext-Alternative aus TYPO3-Extensions verschicken

TYPO3 setzt seit geraumer Zeit beim E-Mail-Versand auf die mächtige Library Swift Mailer, die es sehr komfortabel erlaubt Multipart-E-Mails zu erstellen. Der folgende Code erlaubt es, aus einer TYPO3-Extension heraus HTML-Mails mit einer Nur-Text-Variante als Fallback zu versenden.

$html enthält dabei den kompletten HTML-Quelltext inclusive html-Tag, header und body. $text enthält die durch \n mit Zeilenumbrüchen versehene Textvariante.

$mail = t3lib_div::makeInstance('t3lib_mail_Message');
$mail->setFrom(array('absender@bartlweb.net' => 'angezeigter Absendername'));
$mail->setTo(array('empfänger@mail.com' => 'empfänger@mail.com'));
$mail->setSubject('Betreff der E-Mail');
$mail->setBody($html, 'text/html');
$mail->addPart($text, 'text/plain');
$mail->send();

Mehr Optionen und Möglichkeiten (z.B. für Anhänge) finden Sie in der Dokumentation von Swift Mailer unter http://swiftmailer.org/docs/introduction.html.

interne und externe Links automatisch in WordPress auszeichnen

Wer sich beim Erstellen der Blogposts noch keine Gedanken über die korrekten CSS-Klassen für interne und externe Links machen will, kann diese auch automatisch ergänzen lassen. Dafür sorgt die unten angegebene Funktionen, die als Filter auf den Inhalt gelegt wird. Ergänzen Sie den unteren Code in der Datei functions.php ihres Themes.
 

WordPress RSS-Feed mit Icon versehen

Wer den von WordPress automatisch generierten RSS-Feed um ein eigenes Icon (Favicon) ergänzen will, kann den XML-Header über die unten angeführte Funktion selbst erzeugen. Ergänzen Sie den Code in der Datei functions.php ihres Themes.

function addRssFavicon() {
  echo "<image>
            <title>blog.bartlweb</title>
            <url>" . get_site_url() . "/favicon.png</url>
            <link>" . get_site_url() ."</link>
            <width>16</width>
            <height>16</height>
            <description>die neuesten Posts von blog.bartlweb</description>
        </image>";
}
add_action('rss2_head', 'addRssFavicon');

 

eigene prev/next-Navigation für die Singleansicht von WordPress erstellen

Wer in der Post-Ansicht von WordPress eine eigene Navigation zum nächsten bzw. vorhergehenden Artikel anzeigen möchte kann den unteren Code nutzen um die Ausgabe in der Datei single.php des eigenen Themes entsprechend zu ergänzen.

<?php if(get_adjacent_post(false,'',true)) {?>                            
    <a href="<?php echo get_permalink(get_adjacent_post(false,'',true)); ?>" class="navigation_next" title="<?php echo get_the_title(get_adjacent_post(false,'',true)); ?>">n&auml;chster Artikel</a>
<?php } ?>
 
<?php if(get_adjacent_post(false,'',false)) {?>
    <a href="<?php echo get_permalink(get_adjacent_post(false,'',false)); ?>" class="navigation_prev" title="<?php echo get_the_title(get_adjacent_post(false,'',false)); ?>">vorheriger Artikel</a>
<?php } else { ?>
    <a href="<?php bloginfo('url'); ?>" class="navigation_prev" title="zur Startseite von <?php bloginfo('name'); ?>">zur Startseite</a>
<?php } ?>

Favicon für Internet Explorer 10 und Windows 8 aufbereiten

Internet Explorer 10 bietet unter Windows 7 und Windows 8 die Möglichkeit Websites zur Startleiste hinzuzufügen und unter Windows 8 ist es des Weiteren möglich eine Website direkt als Kachel zur Startansicht hinzuzufügen. Das klassische Favicon mit einer Auflösung von 16x16 px ist dafür ungeeignet, da die Icons größer dargestellt werden. Die folgenden HTML-Snippets erlauben die Einbindung von größeren Favicons und die Optimierung der Darstellung für die Windows 8 Startansicht.

Favicon

Favicons können durch aus auch in einer höheren Auflösung als 16x16 px vorliegen und werden von allen modernen Browsern passend skaliert. Der Internet Explorer unterstützt weiterhin nur ICO-Dateien und daher sieht eine optimale Einbindung des Favicons im Moment wie folgt aus.