Relaunch 2014

Sie betrachten gerade meine neu gestaltete Webseite. Nach einigen Jahren mit Habari als Blog-Software bin ich nun doch auf WordPress umgestiegen. Man kann von der Code-Basis ja halten was man will, die Bedienung ist extrem komfortabel und das Angebot an Erweiterungen riesig. Außerdem gibt es kaum eine Möglichkeit, schneller eine ansprechende Webseite nach dem Stand der Technik in Sachen HTML+CSS fertigzustellen.

Alle Beiträge aus dem Blog habe ich übernommen und mit dem Simple 301 Redirects Plugin dafür gesorgt, dass die alten URLs noch funktionieren. Die Kommentare sind dabei allerdings leider auf der Strecke geblieben.

Das Blog wird sich weiterhin mit technischen Themen befassen, vor allen Dingen rund um PHP und Magento-Entwicklung. Außerdem habe ich die Formatvolagen “Kurzmitteilung” und “Link” für mich entdeckt, die werde ich wohl noch öfter nutzen; genau das richtige für schreibfaule Menschen wie mich. So wird hoffentlich trotzdem einiges an interessantem Inhalt zustandekommen.

Nach dem “weiterlesen”-Link gibt es ein paar technische Details für die, die es interessiert:

Technische Details

W

  • Das Theme basiert auf dem Standard-Theme “Twenty Thirteen”, mit wenigen Änderungen: ein zusätzlicher Seitentyp “Startseite” und unterschiedliche Widget-Bereiche für Blog und übrige Seiten.
  • Mehrsprachigkeit mit QTranslate – ich habe in der Vergangenheit einige Blog Posts auf Englisch geschrieben und die Sprache somit bunt gemischt gehabt. Jetzt kann ich jeden Beitrag in mehreren Sprachen verfassen (oder auch nur in jeweils einer) und sehe alle englischen Versionen unter /en/blog/
  • Versioniert mit Git. Änderungen wie z.B. neue Plugins werden im Entwicklungssystem getestet, dann zu einem zentralen Repository gepusht und letztendlich vom Web Server aus gepullt. Ein post-merge-Hook (.git/hooks/post-merge) sorgt dafür, dass die Dateien anschließend die richtigen Berechtigungen bekommen. Da ich unter Windows entwickle und da das Executable Bit nicht gesetzt wird, kann ich diese nicht ohne weiteres von vorneherein in Git übernehmen:
    #!/bin/sh
    cd ..
    GIT_DIR='.git'
    echo "**** chmod: set execute permissions for everything and write permissions for uploads directoy [post-receive hook on live system]"
    chmod -R 0755 html/*
    chmod -R 0777 html/wp-content/uploads
    chown -R 10000:10000 *
    git commit -a -m "*** Automatic commit: set file permissions"
    git push
    
  • Unterschiedliche Konfigurationsdateien für Test- und Livesystem mit Host-basiertem Switch in wp-config.php:
    /*
     * Load additional config files based on host name. Override constants there
     * and only define them below if they are not defined yet:
     *   defined('WP_FOO') or define('WP_FOO', 'BAR');
     */
    call_user_func(function() { // Create local scope
    	$hosts = array(
    		'#\.dev$#'                     => 'dev',
    		'#^(www\.)?schmengler-se.de$#' => 'live'
    	);
    	foreach ($hosts as $pattern => $environment) {
    		if (preg_match($pattern, $_SERVER['HTTP_HOST'])) {
    			$configFile = __DIR__ . '/wp-config-' . $environment . '.php';
    			if (file_exists($configFile)) {
    				include_once $configFile;
    			}
    		}
    	}
    });

    Hier konnte ich übrigens die Local Scope Technik anwenden, die ich bereits in dem Beitrag Anonyme Funktionsaufrufe in PHP beschrieben habe. Man will ja den Global Scope nicht unnötig mit Variablen vollmüllen.

  • 2 Click Social Media Buttons: So lassen sich Buttons für Facebook, Twitter & Co. einbinden ohne dass bei jedem Aufruf Daten über den Besucher an diese Seiten gesendet werden. Erst nach Klick auf den grauen Schieberegler wird der jeweilige Button geladen. So kann ich sie ohne schlechtes Gewissen unter jedem Beitrag einblenden.