Wibiya-Toolbars

24. Januar 2010

Seit ein paar Tagen gibt’s hier auf neontrauma.de ja etwas Neues: die Rede ist von dieser Toolbar, die am unteren Rand des Browserfensters klebt und euch verschiedene Features wie Suche auf neontrauma.de, Zufallsartikel anzeigen, meine Tweets verfolgen und einiges mehr anbietet.
Nachdem ich in den letzten Tagen auf einmal auf mehreren Webseiten über dieses Feature gestolpert bin, wollte ich es denn auch mal auf neontrauma.de testen – findet ihr es praktisch?

XDDeni hat sich denn im Wunschbuch erkundigt, wie man diese Toolbar realisiert – here we go!

Es handelt sich dabei um ein Tool namens Wibiya, das man unkompliziert und ohne Codingkenntnisse in alle Arten von Webseiten einbauen kann, seien es Blogs, statische Seiten, Foren oder was auch immer. Welche Funktionen die Leiste haben soll, steuert man einfach über Drag & Drop der angebotenen Applications.

Nachdem ihr euch auf der Seite www.wibiya.com kostenlos registriert habt, könnt ihr euch eure Toolbar nach euren Wünschen zusammenstellen. Auch das Design lässt sich an die Farbgebung eurer Webseite anpassen. Die Bedienung des Ganzen läuft dabei recht einfach ab, weswegen ich es mir an dieser Stelle erspare, auf Details einzugehen.
Am Ende müsst ihr auswählen, auf welcher Art von Webseite eure Toolbar eingebunden werden soll. Für WordPress wird beispielsweise ein Plugin generiert, auch für andere Blogsysteme gibt es etwas Vergleichbares; bei allen anderen Arten von Webseiten muss man eine Zeile JavaScript in den Quellcode einbinden.

Online-Portfolios

21. Januar 2010

Online-Portfolios als Webseiten, auf denen jemand seine Fotografien und/oder sonstigen Werke wie Zeichnungen, Layouts, Fotos von Printprodukten etc. ausstellt, hat vermutlich jeder schon einmal gesehen. Und ebenso vermutlich hat jeder auch schon einmal über ein besonders ästhetisch gestaltetes Portfolio gestaunt oder irritiert vor einem unübersichtlich zu durchsuchenden Portfolio gesessen. Auf was kommt es also bei der Portfolio-Erstellung an? Was macht ein gutes Portfolio aus? Welche Möglichkeiten gibt es überhaupt, um ein Portfolio anzulegen?

In diesem Artikel werde ich auf die verschiedenen Gestaltungs- und Umsetzungsmöglichkeiten für ein solches Portfolio eingehen. Im Anschluss daran seid ihr herzlich eingeladen, euren Senf dazu abzugeben. :o)

das Layout

Zunächst betrachten wir das Layout der Webseite, die das Portfolio beheimatet. Das Bild soll hier ja eindeutig im Vordergrund stehen, präsentiert werden. Da liegt es auf der Hand, dass die Gestaltung der Webseite nicht vom Foto ablenken sollte – schlichte, dezente Layouts sind hier also zu empfehlen. Aufwendig gestaltete Headergrafiken können zwar auch viel über das designerische Können verraten und die Seite individueller wirken lassen, aber sie sollten den Betrachter keinesfalls vom eigentlichen Inhalt ablenken. Dunklere Grautöne eignen sich gut als Farben für das Layout, wie man beispielsweise in der fotocommunity sehen kann.

Gerade bei großen Fotos ist es wichtig, auf die Darstellung bei niedrigeren Auflösungen zu achten. Nicht jeder besitzt einen so großen Monitor wie viele Designer und Fotografen, und auch bei einer Auflösung von 1024×768 sollte das Layout noch stimmig sein. Auch die Dateigröße und somit die Ladezeit sollte man immer im Auge behalten.

Last but not least: dass Werbeeinblendungen ein höchst unprofessionell wirkendes No-Go sind, brauche ich hier wohl nicht eigens zu erwähnen. ;-)

Anzeige der Bilder

Wie sollen die Bilder nun präsentiert werden? Soll auf der Startseite das jeweils neuste Foto großformatig angezeigt werden oder möchte ich den Besuchern mit lauter kleinen Thumbnails (das sind verkleinerte Versionen der Bilder) gleich eine Übersicht über all meine Werke bieten? Sollen die Bilder nach verschiedenen Kategorien sortiert werden, oder nur chronologisch?

Im Falle von Thumbnails kann man zwischen verschiedenen Formaten wählen. Proportionale Verkleinerungen belassen das Bild bei seinem ursprünglichen Seitenverhältnis und verzerren oder beschneiden es dadurch nicht, aber wenn man verschiedenformatige Bilder hat, gerät eine solche Thumbnailgalerie leicht unsymmetrisch und chaotisch. Ästhetischer wirkt es, wenn die Thumbnails alle die gleiche Größe aufweisen, beispielsweise quadratisch. Hierbei bevorzuge ich es, wenn ein Ausschnitt aus dem Originalbild generiert wird – dass bei der Thumbnailansicht ein Stück vom Bildausschnitt fehlt, finde ich erstmal nicht allzu tragisch, es geht ja nur um einen schnellen ersten Eindruck.

Als nächstes muss man sich überlegen, wie man vom Klick auf das Thumbnail zur Anzeige der Originalgröße gelangt. Am einfachsten ist es hierbei, die Originalversion des Bildes in einem neuen Fenster zu verlinken – aber das ist schnöde und ziemlich hässlich. Hier bietet sich vielmehr der Einsatz von etwas JavaScript an – Stichwort Lightbox, Highslide und wie sie alle heißen. Auf diese Weise kann man einen eleganten Effekt realisieren, sodass sich etwa beim Klick auf das Thumbnail der Bildschirm verdunkelt und stattdessen das große Foto eingeblendet wird, ähnlich einer Diashow.

zusätzliche Infos

Zu einem Bild kann man weitaus mehr Informationen bieten als einfach nur die Bilddatei samt Titel und eventuellen Anmerkungen. So lassen sich beispielsweise die EXIF-Daten auslesen, die von der Kamera automatisch mitgespeichert werden und Angaben zum Kameramodell, den verwendeten Einstellungen wie Belichtungsdauer oder Blendenöffnung, dem Aufnahmedatum etc. beinhalten. Schlagworte (Tags) erleichtern das Auffinden von Bildern in umfangreicheren Portfolios.

Was davon nun eher überflüssiger Schnickschnack ist und was ein Portfolio wirklich bereichert, ist meistens eine recht individuell zu treffende Entscheidung.
Ebenso gilt das für die Überlegung, ob man eine Kommentar- und/oder Bewertungsfunktion anbieten möchte.

hinter den Kulissen

Nun stellt sich natürlich die Frage, wie man sein Portfolio auf technischer Seite realisieren will. Das hängt zum Einen vom Umfang der zu präsentierenden Bilder ab, als natürlich auch vom eigenen Kenntnisstand in Sachen Webdesign und den persönlichen Vorlieben. Rein theoretisch spricht natürlich nichts gegen ein statisches Portfolio, in dem jedes Bild manuell ins HTML eingebunden wird. Komfortabler ist da aber natürlich der Einsatz eines Content Managament Systems – gute Erfahrungen habe ich persönlich hierbei mit WordPress gemacht sowie mit Pixelpost, einem eigens für Bilder gedachten Blogsystem. Für WordPress gibt es mittlerweile zahlreiche Themes und Plugins, die sich speziell an Portfolios richten.

Natürlich kann man sich sein Portfolio, anstatt es selber zu entwerfen, ebenso erstellen lassen wie jede andere Webseite auch, etwa von Webdesign-Agenturen.

… und eure Meinung?

Auf was legt ihr beim Betrachten eines Online-Portfolios wert? Welche Portfolios gefallen euch besonders gut?
Besitzt ihr vielleicht selbst ein Portfolio und wenn ja, wie habt ihr es in technischer Hinsicht realisiert?

Auch lange nach dem Erscheinen der Forensoftware WBB3 erfreut sich die Vorgängerversion WBB2 nach wie vor großer Beliebtheit. Ein Grund hierfür dürfte nicht zuletzt die weitaus höhere Verfügbarkeit von Erweiterungen sein.

In diesem Artikel werde ich darauf eingehen, was ihr kostenlos für euer WBB2 in Sachen Suchmaschinenoptimierung tun könnt. :o)

das Archiv

Das WBB2 bietet mit dem Archiv von Hause aus eine wichtige Funktion. Hierbei werden die Foreninhalte in einer suchmaschinenfreundlichen Weise mit Divs und Listen statt mit Tabellen präsentiert.

Damit alle Forenbereiche im Archiv auftauchen, müsst ihr dies im ACP festlegen: Einstellungen -> Sonstiges -> Forenarchiv mit Suchmaschinenunterstützung aktivieren? auf “ja” stellen. Für jeden einzelnen Forenbereich könnt ihr darüber hinaus einstellen, ob er im Archiv angezeigt werden soll (standardmäßig auf “ja”) oder auch nicht: Foren bearbeiten -> Forum im Archiv anzeigen?
Damit die Bots das Archiv auch finden, müsst ihr es auf eurer Startseite oder im Portal verlinken.

robots.txt

Im Hauptverzeichnis eures Forums solltet ihr eine Datei namens robots.txt erstellen, mit deren Hilfe ihr die Suchmaschinenbots von für sie irrelevanten Bereichen aussperren könnt. Um zu verhindern, dass die Bots auf verschiedenen Unterseiten den gleichen Inhalt vorfinden (beispielsweise bei den “Antwort erstellen”-Links oder wenn die Forenbeschreibung sowohl auf der Startseite, als auch innerhalb der einzelnen Foren auftaucht oder wenn die Themen sowohl im Portal, als auch im Board angezeigt werden), sperrt man sie von den meisten Unterseiten aus. Eigentlich müssen sie nur auf das Portal bzw. die Startseite zugreifen können, auf das Archiv sowie auf eventuell vorhandene statische Seiten wie das Impressum. Somit könnte eure robots.txt etwa so aussehen:

User-agent: *
Disallow: /acp/
Disallow: /attachments/
Disallow: /cache/
Disallow: /images/
Disallow: /js/
Disallow: /styles/
Disallow: /templates/
Disallow: /addreply.php
Disallow: /attachment.php
Disallow: /attachmentedit.php
Disallow: /board.php
Disallow: /calendar.php
Disallow: /editor.jar
Disallow: /editpost.php
Disallow: /forgotpw.php
Disallow: /formmail.php
Disallow: /global.php
Disallow: /login.php
Disallow: /logout.php
Disallow: /markread.php
Disallow: /memberslist.php
Disallow: /misc.php
Disallow: /modcp.php
Disallow: /newthread.php
Disallow: /pms.php
Disallow: /polledit.php
Disallow: /pollstart.php
Disallow: /pollvote.php
Disallow: /print.php
Disallow: /profile.php
Disallow: /regimage.php
Disallow: /register.php
Disallow: /report.php
Disallow: /search.php
Disallow: /thread.php
Disallow: /team.php
Disallow: /threadrating.php
Disallow: /usercp.php
Disallow: /usergroups.php
Disallow: /wiw.php

Session-IDs für Gäste verhindern

Sofern keine Cookies verwendet werden, speichert das WBB2 die einzelnen Sitzungen über Session-IDs. Das sind diese langen Ketten aus Zahlen und Buchstaben, die an das Ende der URL gehängt werden.
Für Gäste (und nichts anderes sind Bots ja) macht dies allerdings herzlich wenig Sinn, da bei ihnen ja keinerleo Einstellungen gespeichert werden. Somit würde für nicht-eingeloggte Besucher bei jedem Seitenaufruf eine neue Session-ID (SID) generiert werden – und in den “Augen” der Suchmaschinenbots würde es sich somit jedesmal um eine neue Seite handeln. Dadurch entstünde der unerwünschte Duplicate Content (siehe unten).

Windapple von gm-d.de hat einen kleinen Hack geschrieben, der diese SIDs für Gäste einfach abschaltet:

Öffne:
/acp/lib/session.php

Suche:
if ((isset($_COOKIE[$cookieprefix.'cookiehash']) && !isset($falsecookiehash))

Ersetze mit:
if ((isset($_COOKIE[$cookieprefix.'cookiehash']) && !isset($falsecookiehash)) || (isset($guestsession) && $filename!=”login.php” && $filename!=”logout.php”))

Ein Danke für diese Tipps geht an www.esports24.net.

allgemeine Tipps

Die folgenden Punkte gelten nicht nur für WBB2-Foren, sondern für sämtliche Webseiten:

Duplicate Content unterbinden

Duplicate Content bedeutet übersetzt “doppelter Inhalt” – wenn zwei Seiten oder auch mehrere Unterseiten einer Domain den gleichen Inhalt liefern. Zum Beispiel ist dies der Fall, wenn eure Seite über www.domain.de. und über domain.de erreichbar ist – allerdings ohne Weiterleitung der einen Adresse auf die andere. Für Google handelt es sich also um zwei verschiedene Seiten, die den gleichen Inhalt werten, und da Google Wert auf individuellen Content legt, wirkt sich dies negativ auf die Wertung eurer Webseite aus. Legt also eine der beiden URL-Varianten als Standard fest und leitet die andere URL auf diese Adresse weiter. Dies ist über einige Zeilen in der .htaccess-Datei im Hauptverzeichnis möglich:

RewriteEngine on
RewriteCond %{HTTP_HOST} ^(www\.domain\.de)(:80)? [NC]
RewriteRule ^(.*) http://domain.de/$1 [R=301,L]

(Den Domainnamen müsst ihr natürlich anpassen! :o) )

GZip-Komprimierung

Google hat jüngst angekündigt, nun auch die Ladezeiten einer Webseite in die Bewertung mit einfließen zu lassen. Das macht insofern Sinn, als dass User schnell ladende Webseiten ja auch bevorzugen. Die Ladezeit eurer Seite könnt ihr unter anderem durch die GZip-Komprimierung verbessern. Im WBB2 könnt ihr diese mit einem Klick im ACP unter Einstellungen -> Ausgabeoptionen aktivieren und tut damit auch euren Usern einen Gefallen.

Links, Links, Links…

… sind das A und O, wenn es darum geht, eine Webseite im WWW bekannt zu machen. Je mehr Backlinks auf eure Seite verweisen, desto öfter wird sie von Bots gefunden, was sich positiv auf das Ranking auswirkt. Tragt eure Seite in Webkataloge ein, allem voran DMOZ, tauscht Links vor allem mit Webseiten zu ähnlichen Themen wie eure Seite, … seid kreativ. ;-)

das Coding

Achtet darauf, eure Seite semantisch korrekt auszuzeichnen – also Tags wie h1, h2, .. und Konsorten zu nutzen, wichtige Inhalte durch strong und/oder em hervorzuheben und so weiter. Und: Suchmaschinen bevorzugen es, viel Content zu finden und wenig Code. Ein Tabellenlayout verursacht somit nicht nur unnötige Ladezeiten, die auch euren Usern auf den Nerv gehen können, sondern bläht den Quellcode wahnsinnig auf. Steigt stattdessen auf Divs und valides Coding um, das geht übrigens auch mit dem WBB2, wobei das in der Tat Einiges an Nerven kosten kann. :-)

Aus aktuellem Anlass – es wurde heute erst ins Leben gerufen und meinereiner musste sich natürlich gleich mal registrieren ;-) – stelle ich euch heute zur Abwechslung mal ein Forum vor: den Admintreff.

admintreff.net - das Forum für Admins und Moderatoren

Hier könnt ihr euch über alles austauschen, was mit der Leitung eines Forums zu tun hat, ganz egal ob ihr Administratoren seid oder auch Moderatoren.

Ich bin dort übrigens unter dem altbekannten Nick neontrauma zu finden. ;-)

Themes in FlatPress

7. Oktober 2009

Wer auf der Suche nach einem einfachen Bloggingtool ist, das ohne Datenbank läuft und wer keine spezielleren Features wie Mehrbenutzerverwaltung benötigt, für den ist das schlanke FlatPress eine gute Wahl. Trotz der Ähnlichkeit im Namen hat FlatPress jedoch nichts mit WordPress zu tun, von daher funktioniert es etwas anders und man kann auch nicht die für WordPress entwickelten Plugins und Themes  verwenden.

Susa hat sich im Wunschbuch erkundigt, wie man das Layout (Theme) eines FlatPress-Blogs ändern kann – das erkläre ich in diesem Tutorial.
Wie fast immer hat man auch bei FlatPress die Wahl zwischen einem vorgefertigten oder aber einem komplett selber geschriebenen Theme. Mit Letzterem kann man natürlich all seine Sonderwünsche umsetzen, dies erfordert aber eine gewisse Einarbeitungszeit, um zu verstehen, wie Themes in FlatPress funktionieren. Das genau zu erklären, würde den Umfang dieses Tutorials sprengen, weswegen ich ausführlicher auf den Punkt “ein fertiges Layout installieren” eingehen werde.

ein vorgefertigtes Layout installieren

Zunächst einmal sucht ihr euch ein Theme heraus, das euch gefällt. Stöbern könnt ihr da beispielsweise in der FlatPress-Wiki.
Das heruntergeladene Archiv entpackt ihr auf eurer Festplatte und ladet es ins Verzeichnis /fp-interface/themes auf euren Webspace. Wenn ihr dann im Adminbereich eures Blogs oben in der waagerechten Navigationsleiste auf “Themes” klickt, taucht eurer eben hochgeladenes Theme dort mitsamt einer Vorschaugrafik auf. Über einen Klick könnt ihr es ganz einfach aktivieren.

ein Layout verändern

Wenn ihr einen Blick in das Verzeichnis eures Themes werft, seht ihr dort jede Menge Template-Dateien (mit der Endung *.tpl), eine PHP-Datei sowie die Verzeichnis /res und /images. Letzteres beinhaltet die im Theme verwendeten Bilder und kann auch anders heißen, etwa /imgs, oder vielleicht auch ganz fehlen. Der res-Ordner beinhaltet die Stylesheets (*.css), wobei deren Anzahl unterschiedlich ausfallen kann. Die style.css ist in der Regel für das Layout eures Blogs zuständig und die admin.css für das Aussehen des Adminbereichs. Zusätzliche Stylesheets können beispielsweise spezielle Formatierungen für die Ausgabe im Druck liefern, die interessieren hier aber erst einmal nicht.

Wir werfen jetzt einen Blick auf die Template-Dateien. Deren Namen sollten weitestgehend selbsterklärend sein; die header.tpl wird zu Beginn jeder Seite eingebunden, die footer.tpl am Ende, die index.tpl stellt die Blogeinträge dar, statische Seiten werden über die statics.tpl ausgegeben, den Adminbereich steuert die admin.tpl, und so weiter.

In den Templates selber findet ihr normales HTML bzw. XHTML – und dann eine Art Platzhalter für den eigentlichen Inhalt wie etwa den Blogeintrag. In WordPress werden diese Informationen über die Template Tags abgerufen, FlatPress verwendet Smarty. Beides sind letzlich PHP-Schnipsel, die den eigentlichen PHP-Code vereinfachen, um ihn bequemer im Theme verwenden zu können. Eine Erläuterung, wie Smarty und Themes in FlatPress funktionieren, findet ihr hier.

An dieser Stelle soll es aber lediglich darum gehen, wie ihr ein Theme ändern könnt. Und das geht eigentlich genauso wie bei WordPress-Themes oder selbstgeschriebenen Layouts: Divs und sonstiges MarkUp fügt ihr in die Template-Dateien ein, verseht es nach Herzenslust mit Klassen oder IDs, und formatiert diese anschließend über die Stylesheets. :o)

Auf eine Frage hin folgt hier ein Tutorial zum Installieren eines phpBB-Forums, in dem auch auf das Anlegen von Kategorien und Forenbereichen eingegangen wird.

Herunterladen könnt ihr euch das aktuelle Paket hier – in diesem Tutorial verwenden wir die Version 3.

die Installation

Entpackt das Archiv und ladet die Dateien auf euren Server, beispielsweise ins Verzeichnis /phpbb. Anschließend ruft im Browser das Installationsskript über http://domain.de/phpbb auf.
Über den Reiter “Installation” gelangt ihr zur eigentlichen Installation. Hier seht ihr eine Auflistung der Voraussetzungen für phpBB und ob diese erfüllt werden. Einige Verzeichnissen benötigen die CHMOD-Rechte 777: cache, files, store, images/avatars/upload sowie die Datei config.php.
Im nächsten Schritt werdet ihr nach euren Datenbank-Zugangsdaten gefragt. Wenn diese stimmen, gelangt ihr zum Anlegen eures Administratoraccounts sowie zu einigen allgemeinen Foreneinstellungen. Diese könnt ihr in der Regel bei den voreingestellten Werten belassen – und schon seit ihr fertig! Vergesst nicht, aus Sicherheitsgründen das install-Verzeichnis zu löschen oder zumindest umzubenennen, damit niemand damit Unfug treiben kann.

Einrichten der Forenbereiche

Links im Adminbereich befindet sich die Navigation, wo ihr relativ weit oben den Punkt “Foren verwalten” findet.

phpBB unterscheidet, im Gegensatz zu anderen Forensystemen, nicht zwischen Kategorien (“Userbereich”) und Foren (“vorstellen”, “Geburtstagsgrüße”, “Userfotos”). In unserem Beispiel legen wir eine Kategorie namens “Userbereich” an und erstellen darin die gerade genannten Forenbereiche.

Dazu klickt ihr auf “neues Forum erstellen” und wählt als Typ “Kategorie” aus. Die Felder für den Namen und die Beschreibung dürften ebenso selbsterklärend sein wie die übrigen Einstellungen, die ihr aber ruhig erst einmal so lassen könnt. Als nächstes müssen die Zugriffsrechte eingestellt werden – hier kann man sehr genau festlegen, wer welche Bereiche sehen/betreten darf. Auf unseren Userbereich sollen alle registrierten User Zugriff haben dürfen – also wählt ihr unten rechts bei “Gruppen hinzufügen” die Zeile “Registrierte Benutzer” aus und klickt auf “Berechtigungen hinzufügen”. Es öffnet sich ein neues Fenster, in dem ich dieser Benutzergruppe durch das Dropdownmenü die “Standard + Umfrage”-Rechte verleihe. Nun haben alle registierten User im Userbereich die Möglichkeit, Threads zu lesen, zu starten, zu beantworten und auch Umfragen zu erstellen.

Analog dazu könnt ihr weitere Kategorien und Foren einrichten. Um ein Forum zu erstellen, wählt als Typ statt “Kategorie” einfach “Forum” aus. Foren können verschachtelt sein und somit Unterforen enthalten – das legt ihr über den Punkt “übergeordnetes Forum” fest.
Wenn ihr links in der Navigation wieder auf “Foren verwalten” klickt, seht ihr eure Kategorien aufgelistet. Klickt einen Kategorienamen an, um die darin enthaltenen Foren zu sehen, und einen Forennamen, um zu den Unterforen zu gelangen. Über das grüne Rädchen kommt ihr zum Bearbeitungsmodus, wo ihr die Einstellungen auch später wieder ändern könnt.

Was noch wichtig ist: über “kopiere Berechtigung von” könnt ihr die eben gemachten Forenrechte für andere Foren übernehmen und müsst diese nicht jedesmal neu anlegen.

geekige Signaturen gesucht

27. September 2009

Geekige Sprüche gibt es jede Menge, und vor allen in Forensignaturen oder auf Shirts findet man immer mal wieder welche.

Hier würde ich gerne mal eine kleine Sammlung davon starten – wenn ihr noch einen anderen Spruch kennt, seid ihr herzlich eingeladen, ihn im Kommentar zu posten. :o)

There are only 10 types of people in the world – those who understand binary and those who don’t.

In God we trust – others we verify with GPG.

There’s no place like 127.0.0.1

Seinen Namen tanzen kann jeder, ich kann PHP tanzen!

Sex, drugs & RGB – Das Leben der Mediengestalter

In space, no one can hear you tweet.

rtfstvo (gefunden als Heckscheibenaufkleber *g*)

Welche fallen euch noch ein?

Vor rund anderthalb Jahren hatte ich ein kurzes Tutorial geschrieben, wie man die Blogfunktion von WordPress in eine “normale” Seite einbinden kann. Damals hätte ich nicht damit gerechnet, dass der Artikel so viele Leser und Kommentatoren findet, und angesichts von über fünfzig Kommentaren und Rückfragen folgt hier nun die angekündigte überarbeitete Version des Tutorials. :o)

Ausgangsposition

Du hast eine “normale” Webseite – sprich, ohne WordPress, geschrieben in HTML. Nun möchtest du deine Homepage um eine Blogfunktion erweitern und dafür WordPress nutzen – aber deine bisherigen Inhalte möchtest du aus irgendwelchen Gründen nicht über die Seitenfunktion in WordPress einpflegen, sondern weiterhin direkt als HTML-Dateien verwalten.

Damit du WordPress verwenden kannst, benötigst du eine MySQL-Datenbank und einen PHP-fähigen Server. WordPress hast du bereits installiert – eine Anleitung zur Installation von WordPress findest du hier.

unser Vorgehen

Anders als in der ersten Version dieses Tutorials werden wir das Pferd nun quasi von hinten aufzäumen: anstatt uns die Dateien der bisherigen Webseite zu schnappen und dort mühsam den WordPress-Code hineinzufrickeln (was gerne für kunterbunte Fehlermeldungen sorgt), nehmen wir eine saubere WordPress-Installation als Grundlage und bauen dort unsere bisherigen Inhalte hinein. Somit sparen wir uns jede Menge Arbeit und Fehlerquellen.

Exkurs: WordPress-Themes verstehen

Das Aussehen einer WordPress-Seite und die Ausgabe des Inhalts wird von den Theme-Dateien bestimmt. Diese enthalten das HTML-Gerüst, in das via PHP die Blogeinträge usw. eingebaut werden. Die Dateien der einzelnen Themes befinden sich im Verzeichnis wp-content/themes/deinthemename – in diesem Tutorial gehen wir davon aus, dass du noch kein eigenes WordPress-Theme angelegt hast. Also schnappen wir uns das mitgelieferte classic-Theme, aktivieren es über das Dashboard und werfen einen Blick in das Verzeichnis und die darin enthaltenen Dateien.

Du siehst hier diverse PHP-Dateien und ein Stylesheet (style.css). Das Stylesheet enthält die Formatierungsangaben wie Farbe, Schriftgröße usw. In der Datei header.php steht alles, was vor dem eigentlichen Inhalt kommt und sich auf jeder Unterseite gleicht (also den head-Bereich des HTML, die Headergrafik, …). Analog dazu enthält die footer.php alles, was nach dem Inhalt kommt. Beide werden mit <?php get_header(); ?> bzw. <?php get_footer(); ?> in diejenigen Dateien eingebunden, die den eigentlichen Inhalt – also etwa die Blogeinträge – ausgeben. Die Datei index.php ist für die Ausgabe der Blogeinträge zuständig. Die anderen Dateien interessieren uns erst einmal nicht.

den Blog stylen

Als erstes kümmern wir uns darum, dass der Blog so aussieht wie auch die “normale” Webseite.
Dafür ersetzt du die Datei style.css im Theme-Verzeichnis mit dem Stylesheet deiner normalen Seite – ich gehe einfach mal davon aus, dass du vorbildlich mit Stylesheets arbeitest und nicht all deine Formatierungsangaben direkt im HTML machst. ;-) Andernfalls musst du das eben von Hand in die Blogdateien eintragen.

Neben dem CSS ist natürlich auch das HTML für das Aussehen der Seite verantwortlich. Du musst nun also deine Div-Container oder Tabellen – je nachdem, wie dein Layout aufgebaut ist – in die Blogseiten übertragen. Keine Angst, das ist nicht schwer.

Öffne die Datei wp-content/themes/classic/header.php und ersetze den folgenden letzten Teil dieser Datei:

<body <?php body_class(); ?>>
<div id="rap">
<h1 id="header"><a href="<?php bloginfo('url'); ?>/"><?php bloginfo('name'); ?></a></h1>

<div id="content">
<!-- end header -->

einfach durch <body>

Falls du eine Headergrafik oder Ähnliches verwendest, was auf jeder Seite oberhalb des Contents angezeigt wird, kannst du den dafür zuständigen Code hier in die header.php enfügen.

Öffne die Datei index.php und baue das HTML so um, wie es deinem Layoutgerüst entspricht. Da, wo sonst dein Inhaltstext steht und wo die Blogeinträge hingeladen werden sollen, befindet sich hier der sogenannte Loop – das ist alles zwischen <?php if (have_posts()) : ?> und  <?php endif; ?>. Das lässt du einfach so stehen.

Damit die Div-Verschachtelung stimmt, musst du dir jetzt noch die footer.php schnappen und an dein Layout anpassen. Das heißt, es bleibt entweder nur das hier stehen:

<?php wp_footer(); ?>
</body>
</html>

… oder eben auch noch der Footer-Bereich deiner Webseite, etwa ein Div mit einem Copyright-Hinweis.

deine Inhalte einbauen

Jetzt kommen wir zu deinen Inhalten.
Kopiere die Datei index.php aus deinem Theme-Verzeichnis und benenne sie in ueber-mich.php um (oder wie auch immer diese Unterseite heißen soll). Öffne deine entsprechende “normale” Unterseite und kopiere den Codeteil, der zwischen den beiden <body>-Tags  steht (ggf. natürlich ohne die Headergrafik, sofern du das bereits in die header.php eingebaut hast), in die ueber-mich.php zwischen das <?php get_header(); ?> und das <?php get_sidebar(); ?>.

Ganz zu Beginn dieser Datei, vor das <?php get_header(); ?>, fügst du noch ein:
<?php require('../../../wp-blog-header.php'); ?>

Deine Navigation werden wir später noch genauer betrachten – die wird nämlich in die Datei sidebar.php ausgelagert und über das <?php get_sidebar(); ?> eingebunden. Wenn in deinem Layout die Navigation also vor dem Inhalt steht, musst du das <?php get_sidebar(); ?> entsprechend unterhalb des <?php get_header(); ?> einfügen. Den Code deiner Navigation fügst du also nicht hier ein, um den kümmern wir uns später!

Du hast also:
<?php require('../../../wp-blog-header.php'); ?>
<?php get_header(); ?>

<!-- ab hier kommt dein Inhalt -->
<div id="content">
<h2>ueber mich</h2>
<p>blah...</p>
</div>
<!-- Ende deines Inhalts -->

<?php get_sidebar(); ?>
<?php get_footer(); ?>

So verfährst du mit all deinen “alten” Unterseiten: Du bettest sie in das WordPress-Layout ein und ersetzt den Teil, wo WordPress normalerweise den Inhalt aus der Datenbank abruft, einfach direkt mit deinem HTML-Inhalt.

Wenn du jetzt http://deineseite.de/wp-content/themes/classic/ueber-mich.php aufrufst – siehst du deine entsprechende Unterseite. :-)

die Navigation

Ganz fertig sind wir noch nicht. Denn was wäre eine Webseite ohne Menü?
Wie gesagt, steht die Navigation in der sidebar.php und wird über <?php get_sidebar(); ?> eingebunden. Öffne also die sidebar.php und lass dich nicht von dem ganzen Code dort erschlagen. ;-) Der Einfachheit halber ersetzen wir ihn mit einer abgespeckten Version:

<div id="sidebar">
<ul>
<?php     /* Widget-Sidebar  */ if ( !function_exists('dynamic_sidebar') || !dynamic_sidebar() ) : ?>
<?php endif; ?>
</ul>

<ul>
<li><h2><?php _e('Blog-Archiv'); ?></h2>
<ul><?php wp_get_archives('type=monthly'); ?></ul>
</li>

<?php wp_list_categories('show_count=1&title_li=<h2>' . __('Blog-Kategorien') . '</h2>'); ?>
</ul>
</div>

Hier wird zunächst ein Platzhalter für die Widgets gelassen. Widgets sind Inhalte der Sidebar, die du im Dashboard von WordPress ganz einfach per Drag&Drop einfügen oder verändern kannst – mehr dazu habe ich hier erklärt.
Darunter wird das Archiv deiner Blogeinträge angezeigt, gruppiert nach Monaten. Als nächstes wird dann eine Liste deiner Blogkategorien generiert, in die du deine Einträge eingeordnet hast. Wenn du beispielweise das Archiv nicht haben möchtest, kannst du den Codeteil natürlich einfach löschen. Weitere Elemente, wie etwa die Tagcloud, kannst du als Widget einfügen.

So. Das ist der Menüteil, der dein Blog betrifft – jetzt wollen aber natürlich auch die eben eingebauten Unterseiten verlinkt werden. Das machen wir als “normales” HTML hier in der sidebar.php. Dein Code könnte beispielsweise so aussehen:

<div id="sidebar">
<ul>
<?php     /* Widget-Sidebar  */ if ( !function_exists('dynamic_sidebar') || !dynamic_sidebar() ) : ?>
<?php endif; ?>
</ul>

<ul>
<li><h2><?php _e('Blog-Archiv'); ?></h2>
<ul><?php wp_get_archives('type=monthly'); ?></ul>
</li>

<?php wp_list_categories('show_count=1&title_li=<h2>' . __('Blog-Kategorien') . '</h2>'); ?>
</ul>


<h2>Seiten</h2>
<ul>
<li><a href="<?php bloginfo('
template_directory'); ?>/ueber-mich.php" title="&uuml;ber mich">&uuml;ber mich</a></li>
<li><a href="<?php bloginfo('template_directory'); ?>/meine-haustiere.php" title="meine Haustiere">meine Haustiere</a></li>
<li><a href="<?php bloginfo('template_directory'); ?>/impressum.php" title="Impressum">Impressum</a></li>
</ul>
</div>

… okay, das war ein langes Tutorial, aber ich hoffe, ich habe alles verständlich erklärt! :-)
Wenn ihr noch Fragen habt, könnt ihr sie hier natürlich wie immer gerne stellen.

Einsteigertutorial: MySQL

23. September 2009

In der Shoutbox kam vor kurzem die Frage auf, was es eigentlich mit MySQL auf sich hat – was ist das, wie geht das, wofür brauche ich das, kann man das essen?

MySQL ist ein Datenbankmanagementsystem. Klingt erstmal kompliziert, ist es aber nicht.

In einer Datenbank speichert man – logisch – Daten. Stellt euch eine Tabelle vor, wie ihr sie etwa aus Excel kennt: hier hat man zum Beispiel eine Tabelle namens user, in der man alle registrierten Benutzer eines Forums speichert. Jeder User stellt eine Zeile dieser Tabelle dar. Die einzelnen Angaben wie Name, Registrierungsdatum, Emailadresse oder Avatar werden in den Spalten gespeichert.
Auch alle anderen Daten des Forums werden in dieser Datenbank abgelegt, wenn auch in mehreren unterschiedlichen Tabellen: die einzelnen Threads und Beiträge mitsamt Erstellungsdatum, die verschiedenen Forenbereiche, Benutzergruppen, private Nachrichten, …

Die Daten werden also mit MySQL in der Datenbank gespeichert und PHP sorgt dann in der Regel für die Kommunikation mit der Webseite, sodass die Daten dort als HTML ausgegeben oder von dort durch ein Formular an die Datenbank gesendet werden können.

Datenbanken werden bei sehr vielen Webseiten verwendet: nicht nur bei Foren, sondern auch für Blogs, SocialNetworks, Wikis und so weiter. MySQL kommt dabei am häufigsten um Einsatz, weil es kostenlos und eine Open Source-Software ist und daher von den meisten Hostern angeboten wird.

Aber wie genau sieht MySQL denn nun aus?

Die MySQL-Befehle kann man von Hand eintippen, man kann sie in PHP-Dateien einbetten und darüber ausführen lassen – oder man wählt den komfortablen Weg über eine grafische Oberfläche. Hier seht ihr die Tabellen direkt vor euch und könnt sie bequem  verwalten. Genau dazu dient das Tool PHPMyAdmin, das ebenfalls bei den meisten Hostern zum Standardangebot zählt. So sieht eine Datenabnk – hier mal am Beispiel von neontrauma.de in PHPMyAdmin aus:

Screenshot PHPMyAdmin

In den PHP-Dateien finden Datenbankabfragen statt wie zum Beispiel “gib alle registrierten User aus, die in Bonn wohnen und sortiere diese aufsteigend anhand ihres Registrierungsdatums”. Vorausgesetzt, dass wir eine Tabelle namens user haben und darin die Spalten id (nummeriert die User bei der Registrierung automatisch durch – so eine ID sollte man immer verwenden), name und wohnort, sieht der entsprechende MySQL-Code so aus:

SELECT name FROM user WHERE wohnort='Bonn' ORDER BY id ASC

deutsche Umlaute in URLs

19. September 2009

Das Problem dürfte jedem deutschsprachigen WordPress-Blogger begegnet sein: von Hause kann WordPress nicht mit Umlauten (ä, ö, ü) in den Permalinks umgehen. Aus einem Artikel namens “Braunbär” wird dann blog.de/braunbar.php – doof, weil Suchmaschinen wie Google schließlich die Wörter in URLs berücksichtigen.

Abhilfe schafft da das Plugin o42-clean-umlauts – einfach ins Plugin-Verzeichnis kopieren, aktivieren, fertig.

Aber es geht auch cleverer und ohne Plugin, wie codestyling in seinem Artikel zeigt. :-)
Auf diese Lösung bin ich übrigens durch ein Posting von Robert gestoßen – danke dafür!