Der Einsatz von Webtechnologien wie Wikis oder Blogs in Unternehmen setzt sich zur Zeit immer mehr durch (siehe z.B. im CIO Weblog, bei bueltge oder bei basicthinking).
Und da wir in unserem Unternehmen bereits ein umfangreiches Intranet und auch ein Wiki pflegen, war der nächste Schritt für mich die Umsetzung einer Blog-Plattform. Daher habe ich bereits vor einiger Zeit eine Software zur Umsetzung einer Blog-Plattform gesucht. Mittlerweile ist diese Blog-Plattform umgesetzt und läuft seit einigen Monaten produktiv. Und zwar unter WordPress.
Was ich dabei für Plugins verwendet habe und was ich sonst so tun musste, beschreibe ich in diesem Artikel.
Einleitung
Zunächst einmal möchte ich meine Anforderungen an die zu erstellende Plattform vorstellen:
- Mehrbenutzerfähigkeit
- Mehrere Benutzer mit unterschiedlichen Rollen (Admin, Editor etc.)
- (RSS-)Feeds je Autor
- Einfach zu benutzen
- WYSIWYG-Editor
- Keine Anmeldung durch die Benutzer erforderlich (bzw. automatische Anmeldung)
- Aufgeräumte, auf das Wesentliche reduzierte Editor-Oberfläche
- Einfach zu erweitern/anzupassen
- Gute Dokumentation
- Viele Plugins verfügbar
- An das Corporate Design anpassbar
- Stabilität
- Ausgereifte Software
- Auch unter Last fehlerfrei lauffähig
Alle Blog-Systeme, die ich mir angeschaut habe (u.a. LifeType nach einem Tipp aus dem webdesignblog, Drupal und WordPress MU) erfüllten diese Anforderungen teilweise nicht. Am Häufigsten scheiterte es jedoch an der automatischen Anmeldung der Benutzer. Um die Einstiegshürden möglichst niedrig zu legen, wollte ich nämlich ein automatisches Login via IP-Adresse implementieren, wie ich es auch für unsere anderen Intranet-Systeme (TYPO3, MyBB) umgesetzt habe. Doch dazu später mehr…
Die logische Konsequenz aus der Anforderung “Mehrbenutzerfähigkeit” wäre gewesen, WordPress MU einzusetzen, das extra zu diesem Zweck entwickelt wurde. Live-Tests zeigten jedoch (zumindest damals) derbe Schnitzer beim Design der Anwendung. So wurden z.B. für jeden Benutzer eigene Tabellen in der Datenbank angelegt. Ein absolutes Ausschlusskriterium für mich. Letztlich landete ich bei LifeType, dass eigentlich alles bot, was ich brauchte. Sehr nett fand ich z.B. die Möglichkeit, je Benutzer unterschiedliche Layouts zu verwenden. Nur ein zentraler Punkt klappte nicht: das IP-Auto-Login. Ich versuchte zwar selbst ein entsprechendes Plugin zu schreiben, aber leider gab es augerechnet für die Benutzeranmeldung keinen passenden Ansatzpunkt (vielleicht hat sich das inzwischen geändert!?).
Lange Rede, kurzer Sinn: Ich habe das Ganze nun mit WordPress umgesetzt 🙂
Mehrbenutzerfähigkeit
WordPress bietet von Haus aus bereits eine sehr gute Unterstützung für mehrere Benutzer und verschiedene Benutzerrollen. Hier musste ich also letztlich nichts ändern oder hinzufügen. Lediglich im Frontend wollte ich separate Seiten bzw. Feeds für jeden Benutzer anbieten, wie man es auch von”großen” Plattformen kennt, damit die Leser nicht ständig die Beiträge aller Autoren angezeigt bekommen, sondern gezielt auswählen können.
Diese Funktion bietet WordPress von Haus aus. An die URL des Blogs kann man einfach /author/name-des-autors anhängen und man bekommt eine Liste mit den Artikeln des Autors (hier z.B. der Link für mein Blog, obwohl es hier natürlich nur einen Benutzer gibt: http://blog.stefan-macke.de/author/stefan).
Eine recht einfache Lösung zum Erstellen einer Liste aller Autoren bietet die WordPress-Funktion wp_list_authors(), die sogar lediglich die aktiven Autoren (also die mit veröffentlichten Beiträgen) auflistet. Diese Funktion habe ich dann in ein Seiten-Template eingebunden und dieses als Grundlage für eine statische Seite verwendet und schon hatte ich die Möglichkeit, alle Beiträge eines Autors gezielt anzeigen zu lassen und auch als Feed abonnieren zu können. Dieses Template sieht (gekürzt um Kopf und Fuß etc.) so aus: <?php
if(get_query_var('author_name'))
{
$curauth = get_userdatabylogin(get_query_var('author_name'));
echo '<h1>Alle Beiträge von ' . $curauth->display_name . ' <a href="feed" title="RSS-Feed"><img src="/wp-content/themes/default/images/feed-icon.png" alt="RSS-Feed" /></a></h1>';
if (have_posts())
{
while (have_posts())
{
the_post();
echo '<h2><a href="';
the_permalink();
echo '">';
the_title();
echo '</a></h2>';
echo '<small>';
the_time('d. F Y, H:i');
echo ' Uhr</small>';
the_content('Den kompletten Beitrag lesen »');
echo '<p class="postmetadata">';
comments_popup_link('Keine Kommentare »', '1 Kommentar »', '% Kommentare »');
echo '</p>';
}
}
else
{
echo ' <p>Bisher keine Beiträge von diesem Autor.</p>';
}
}
else
{
?>
<h1>Liste aller aktiven Autoren</h1>
<ul>
<?php wp_list_authors('show_fullname=true&feed=Feed&feed_image=/wp-content/themes/default/images/feed-icon.png'); ?>
</ul>
<?php
}
?>
Das erzeugt dann eine Seite wie in folgendem Screenshot zu sehen, bzw. listet halt die Beiträge des gegebenen Autors auf (hier muss natürlich jeder selbst wissen, wie er diese darstellen will). Durch das simple hinzufügen von /feed/ zur URL einer solchen Autoren-Seite, kann man auch direkt den zugehörigen Feed verlinken (z.B. http://blog-url/authors/macke/feed/).
IP-Auto-Login
Um die Benutzer anhand ihrer IP-Adresse anzumelden, ist es zunächst einmal erforderlich, diese in die WordPress-Datenbank zu schreiben. Wie gut, dass es hierfür bereits eine geeignete Tabelle gibt: wp_usermeta. Ich mache das Ganze während der Windows-Anmeldung im Startskript des Benutzers und trage einfach die aktuelle IP-Adresse zur User-ID des Benutzers mit ipaddress für das Feld meta_key ein. Das Ganze wird mittels eines eigens entwickelten Webservices erledigt.
Um den Benutzer nun automatisch anzumelden, sobald er die Seite besucht, ist das entsprechende Plugin erforderlich. Dieses gibt es inkl. (englischer) Beschreibung hier: WordPress-Login via IP-address.
Noch kurz ein Satz zum Login via IP: Über die Sicherheit des Ganzen lässt sich sicherlich streiten. Für kritische Informationen sollte man dieses Verfahren nicht einsetzen. Allerdings lag mein Schwerpunkt wie gesagt auf der weitestgehenden Vereinfachung für die Benutzer und es werden auch keine sensiblen Daten veröffentlicht.
Eingesetzte Plugins
Ich habe lediglich die folgenden Plugins eingesetzt. Wahrscheinlich gibt es aber noch eine Reihe weiterer Funktionen, die für Unternehmens-Blogs eingesetzt werden können. Für Anregungen habe ich immer ein offenes Ohr 😉
- Ultimate Tag Warrior für das Tagging der Beiträge
- Link-Indication zur Auszeichnung von externen Links etc.
- Post-Readers zur Kennzeichnung von beliebten Beiträgen
Anpassung des Editor-Bereichs
Wie gesagt: Der Benutzer soll einen aufgeräumten, übersichtlichen Editor-Bereich vorfinden. Daher habe ich zunächst die RSS-Feeds aus dem “Tellerrand” entfernt und des Weiteren nur die Links zum Schreiben und Verwalten der eigenen Beiträge übriggelassen. WordPress bietet ja von Haus aus WYSIWYG, sodass ich mich weiter um nichts kümmern musste…
Anpassung des Themes
Das Theme habe ich natürlich an die Corporate Identity angepasst, was aber nicht weiter schwer sein dürfte. Es gibt im Netz genug Tutorials, wie man seine eigene WordPress-Oberfläche erstellt, sodass ich darauf hier nicht näher eingehen werde.
Finden von Informationen
Die Blog-Plattform dient bei uns vorerst nur der zeitnahen Information der Mitarbeiter über interessante Themen (vorrangig aus dem EDV-Bereich), aber es werden durchaus auch längere Artikel verfasst, deren Inhalte auch später einmal relevant sein werden. Daher ist die Möglichkeit des Wiederauffindens von Informationen ein wichtiger Punkt. Zwar bietet WordPress auch eine interne Suche an, aber diese habe ich durch unsere Intranet-Suchmaschine ersetzt (was recht einfach als kleine Änderung im Theme möglich ist). Somit kann ich die Vorteile der eingesetzen Suchmaschinen-Software mnoGoSearch direkt aus der Blog-Oberfläche heraus nutzen.
Auslagerung der Benutzerverwaltung nach TYPO3
Als einen letzten Schritt habe ich die Benutzerverwaltung von WordPress komplett nach TYPO3 ausgelagert. Hierzu habe ich eine Erweiterung für TYPO3 programmiert, die die dort erstellten/geänderten Benutzer mit WordPress synchronisiert. Dadurch haben die Administratoren lediglich eine Oberfläche zum Bearbeiten der Benutzer. Dies ist natürlich nur für mein Unternehmen praktikabel, da wir TYPO3 für den Hauptteil des Intranets einsetzen und dies unsere zentrale Plattform ist, auf der alle wichtigen Änderungen gemacht werden. Vielleicht schreibe ich in einem späteren Beitrag noch einmal genau, wie ich die Synchronisation umgesetzt habe…
Fazit
Zum Abschluss kann ich sagen, dass man mit WordPress durchaus eine Blog-Plattform für ein Unternehmen aufsetzen kann, die sämtliche Anforderungen an eine leicht zu bedienende Oberfläche und gut integrierte und flexible Struktur umsetzt.
Ob die Mitarbeiter die Plattform dann letztlich nutzen, steht natürlich auf einem ganz anderen Blatt… Ich bin jedenfalls bislang sehr gut mit meiner Umsetzung zurechtgekommen und die übrigen Benutzer haben sich bislang auch nicht beschwert 😀