Drupal 6 auf Strato

Strato ist ja nicht gerade für seine besten Leistungen bekannt (auf jeden Fall, was ich bis anhin gehört habe) und ich muss zugeben, die Preis sind auch recht happig. Einer meiner Kunden betreibt seine Seite und wollte eine Blogfunktionalität hinzufügen. Um auch für die Zukunft gewappnet zu sein, habe ich kurzum Drupal 6 vorgeschlagen.

Grrrr… funktioniert das auch? Folgendes Packet ist vorhanden: STRATO PowerWeb Basic

Dort ist wenigsten eine MySQL DB dabei.. die sind ja sehr grosszügig ;) Oky. Im Voraus habe ich gehört, dass mod_rewrite nicht aktiviert ist. Naja, damit kann ich (bzw. der Kunde leben), da es lediglich eine Mini Drupal Seite wird.

So, gestern habe ich dann mal Drupal 6 draufgeknallt… oh wunder. Hat alles bestens geklappt! Wirklich ohne irgend welche Zwischenfälle. Einzig der Speicher ist mit 16MB ein bisschen knapp bemessen, aber für die Miniseite klappt das auch.

Wenn man es unter PHP5 laufen lassen will, muss man noch die .htaccess Datei anpassen. überall wo index.php drin steht muss dieses auf index.php5 umgeändert werden.

Fazit: Strato ist gar nicht so übel und Drupal läuft einwandfrei. Ich habe es schlimmer erwartet.

Drupal Artikel im iX

Ich habe soeben den Artikel im aktuellen (Mai 2008) iX Magazin gelesen (danke Boris). Drupal wird in allen Zügen gelobt :) Habe ja eigentlich auch gar nichts anderes erwartet… aber vielleicht werden alle CMS im Magazin gelobt ;)

Besonders die Drag & Drop Funktionen haben es dem Autor schwer angetan ;) . Nein, Drupal 6 ist eine echt gute Sache. Ich werde in den kommenden Tagen mein erstes produktives Drupal 6 Projekt live schalten (es ist lediglich eine kleine Blogseite ohne Schnickschnack). In den kommenden Tagen und Woche werde ich dann jedoch auch an einem grösseren Newsportal mit Drupal 6 arbeiten und freue mich schon darauf :D Hurra.

Patchen mit Windows – Tutorial

Früher oder später wenn man in die Drupalwelt eintaucht wird man mit “patches” konfrontiert. Es kann ein wenig verwirrend sein, besonders für Windowsbenutzer, da sich Dateien nur über die Kommandozeile patchen lassen (auf jeden Fall ist mir nicht anderes bekannt). Daher ein kleines Tutorial:

Was und warum ein Patch?
Eine Patchdatei ist lediglich eine Textdatei, welche die Differenzen zwischen zwei Dateien aufzeigt. Dabei werden jeweils Zeilen, welche entfernt werden mit einem Minus markiert und Zeilen, welche hinzugefügt werden, mit einem Plus markiert. Das Ganze lässt sich natürlich von Hand machen, was jedoch bei vielen Änderungen recht mühsam wird.

Patches werden meinstens von Benutzern geschrieben, welche ein Modul nicht unterhalten und daher den Code nicht direkt ändern können. Der Patch wird in der Issue Queue gepostet und kann so einfach von anderen Benutzern getestet werden und verbessert werden. Patches sind somit da, um Bugs zu beheben oder zusätzliche Funktionen anzubieten.

Patch erstellen
Ein Patch lässt sich sehr leicht erstellen. Es gibt hier diverse Programme (z.B. WinMerge). Dabei gibt es bei Winmerge ein rechte Datei und eine Linke, welche dann verglichen werden. Wenn man einen Patch erstellt, die folgenden Einstellungen beachten:
Tools -> Patch generieren
Beim Style: Unified

Was kommt dabei raus Datei 1:


Hallo welt
hm
ja wohl

Und die zweite Datei sieht wie folgt aus:


hallo Welt
ich bin hier
ja wohl

Das Resultat sieht dann wie folgt aus:


--- C:/Dokumente und Einstellungen/Administrator/Desktop/tmp/rechts.txt Tue Apr 29 10:50:32 2008
+++ C:/Dokumente und Einstellungen/Administrator/Desktop/tmp/links.txt Tue Apr 29 10:50:38 2008
@@ -1,3 +1,3 @@
-Hallo welt
-hm
+hallo Welt
+ich bin hier
ja wohl
No newline at end of file

Patch anwenden

Die Meisten werden jedoch wohl eher weniger oft einen Patch erstellen, dafür lieber mal einen Patch benutzen. Das ist eigentlich auch ganz simpel, wenn man weiss wie ;) , daher ein kleines Tutorial, mit ein paar Bildern.

  1. UnixTools runterladen
  2. Unix Tools irgendwohin entpacken, z.B. c:unixtools
  3. Klassenpfad von Windows entsprechend einrichten (Systemsteuerungen -> System -> Erweitert -> Umgebungsvariablen -> Bearbeiten)
  4. Hier sollte bereits einigen drin stehen. Es wird jetzt einfach noch der Pfad zur Datei Patch.exe hinzugefügt. Könnte dann z.B. so aussehen: C:unixtoolsusrlocalwbinpatch.exe
  5. Kommandozeile öffnen (Start -> Ausführen -> CMD -> ok)

[inline:classpath.jpg]

Jetzt ist eigentlich alles soweit vorbereitet. Bevor es weitergeht, muss jetzt sichergestellt werden, dass die meine_datei.patch im gleichen Verzeichnis wie die zu patchende Datei liegt. … machen wir weiter.

  1. In der Kommandozeile in das Verzeichnis wechseln, wo der Patch und die zu patchende Datei liegt.
  2. Folgenden Befehl eingeben: patch -p0 < patch_file.patch

[inline:patch.jpg]

Das sollte es eigentlich schon gewesen sein. Hier noch ein paar Erklärungen zu möglichen Fehlern:

  1. Es kann vorkommen, dass die zu patchende Datei nicht gefunden wird. Dann muss diese noch von Hand angegeben werden. -> Siehe Punkt 3
  2. Weiss ich auch nicht genau, was das soll…
  3. -p0 entfernt die anzahl von Linien am Beginn des Files.

Hilfe kann man wie folgt erlangen:


patch --help

Oft wird es vorkommen, dass eine Meldung kommt “Junked Failed” oder so ähnlich. Das kommt wohl in den meisten Fällen daher, dass die zu patchende Datei nicht mit dem Patch übereinstimmt. Daher im sicherstellen, dass man die richtige Datei zum Patchen hat -> Das kann manchmal gar nicht so einfach sein…

So, das wars… viel Erfolg

Mein Erstes Linux :)

so, seit gestern habe ich jetzt hier auch ein Linux System drauf und zwar das xUbuntu. Schien mir für meinen alten Rechner das Beste. Ich muss sagen, ich bin eigentlich noch recht begeistert. Vor allem dass auch meine Auflösung von Haus aus unterstützt fand ich super.

Eigentlich ist das einzige was ich vermisse das Office 2007. Ich muss sagen, da hat der Bill was feines gemacht. ich bin wirklich davon begeistert. Für den ganzen Rest bin ich eigentlich absolut nicht Windows abhängig und habe eh schon sehr viel Open Source Software verwendet.

Die Surfgeschwindigkeit scheint mir auch recht gut zu sein, eigentlich sogar besser als unter Windows. Ist schön. Xampp läuft auch schon und jetzt fehlt eigentlich nur noch die IDE und dann muss ich mir noch überlegen, wie ich die Daten zwischen Windows und Linux hin und her schieben kann…?

Ach ja, das Wlan scheint noch nicht ganz zu klappen. Weiss auch nicht wieso, aber das wird wohl auch noch werden… irgendwie bekomme ich einfach keine IP (kann auch an den falschen WPA Einstellungen liegen.

Fazit: Positiv überrascht. Geschwindigkeit ist besser als bei Windows. Sonst ist noch alles ein bisschen Gewöhnungsbedürftig… braucht man hier eigentlich keinen Virenscanner?

 

PS: Der Titel ist wohl nicht ganz korrekt. Es sollte eher heissen: Mein erstes Linux, welches Chancen hat zu bleiben ;)

Update 29.5.08: Es ist zwar geblieben wird aber nicht gebraucht. Irgendwie sehe ich einfach den Vorteil dahinter (noch) nicht.

Anzahl Benutzer pro Rolle ausgeben

Das könnte vielleicht noch ein nützlicher Code Schnippsel sein. Problemstellung:

um meinen verwirrenden Titel kurz zusammen zu fassen: Ich bin auf der Suche nach einem PHP-Code, mit dem ich die Mitglieder einer Rolle summieren kann, und dann das Ganze ausgebe, quasi aus der DB heraus. Der PHP-Code soll direkt in eine Seite mit eigenem Template.

Die Ausgabe soll am Ende so aussehen, als Beispiel:

Moderatoren: 5
Mitglieder: 12

Leider bin ich ein kompletter Noob was PHP angeht, und fühle mich da leicht überfordert. Wäre wirklich dankabr wenn mir da jemand helfen könnte. :)

Lösung:

<?php
$res = db_query("select COUNT(u.rid),name FROM {users_roles} AS u, {role} AS r WHERE r.rid = u.rid GROUP by u.rid");
while($row = db_fetch_array($res)){
print $row['name'].': '.$row['COUNT(u.rid)'].'
‘;
}
?>

Quelle: Drupalcenter

Das bringt wieder die Idee hervor ein kleines Modul zu machen, welches solche Codeschnippsel beinhaltet. Ich wollte das schon mal umsetzen als es um Besucherstatistiken ging. Irgendwie ist das dann im Sand verlaufen. Das hier wäre auf jeden Fall wieder einen Schnippsel mehr. Vielleicht sollte ich mich mal wieder dran setzen, oder gibt es mittlerweile bereits ein entsprechendes Modul?

Drupal gewinnt und kommt in die Öffentlichkeit

In den vergangenen Tagen gab es ein paar Interessante Meldungen rund um Drupal:

  1. Drupal gewinnt den Webware 100 Award.
  2. Das Computermagazin iX veröffentlicht einen Artikel über Drupal 6. iX hat immerhin eine Auflage von 75’000 Stück pro Monat.
  3. Und nicht zu letzt wird Drupal im kommenden Sommer im Rahmen des Sommer of Codes Projektes von Google unterstützt.

Alles in Allem geht es doch vorwärts. Auch hier in der Schweiz geht es langsam voran. Immerhin gibt es heute wieder mal ein Meetup (ich kann schon wieder nicht dabei sein :( ). Also, alles in allem sieht es doch gut aus für Drupal.

OpenExpo in der Schweiz

Soeben habe ich eine Mail (Call for Participation) für die Open Expo in der Schweiz bekommen. Ob Drupal da wohl beteiligt ist? Ich bin mir am Überlegen, ob ich da vielleicht eine kleine Präsentation vorbereiten sollte?!? Sind meine Drupal Kenntnisse so gut? Im Core und so kenne ich mich leider nicht so gut aus :( Muss man überhaupt eine absoluter Guru sein, um so etwas machen zu können? … mal in Ruhe (gibt es die überhaupt im Moment?) durchlesen.

Sonst jemand Interesse?

PDFs mit PHP erstellen

Sorry, für die lange Durststrecke… ich war gerade ein wenig unter Druck mit diversen anderen Sachen…

Für einen Kunden bin ich gerade dran ein komplexes Buchsystem zu entwickeln. Eine Anforderung dafür ist auch, dass das Buch als PDF exportiert werden kann.

Mein erster Ansatzpunkt war: Latex. Dies schien der einfachste Weg zu sein, da es lediglich darum ging, den HTML Markup in entsprechenden Latex markup umzuwandeln. Latex nimmt einem dann den ganzen Rest der Darstellung ab und bietet noch diverse zusatzfeatures wie Inhaltsverzeichnisse erzeugen, Literaturverzeichnis aus BibTex erzeugen usw. Leider funktioniert das nur gut, wenn man auch eine gute Vorlage hat. Zudem gab es Probleme mit Sonderzeichen, und für viele Dinge war Latex einfach bereits zu Fortgeschritten, da es Dinge automatisch macht, über welche ich lieber die Kontrolle hätte.

So habe ich mich dann schweren Herzens von Latex abgewandt und auf FPDF zugegriffen. Die Trauer war jedoch nicht von langer Dauer. Mit FPDF hat man die volle Kontrolle über die Seitengestaltung. Für meinen Fall ein Vorteil, da ich eh alles von Hand machen muss (oky, die Fussnoten waren mit Latex echt praktisch).

Auch in Drupal lässt es sich sehr gut integrieren, da es lediglich ein kleines Script von ein paar KBs ist. Die Qualität ist meiner Meinung nach sehr gut und sehr zuverlässig. Ich habe nicht mehr mit Verschiebungen zu kämpfen usw.

Das ganze ist OO programmiert und lässt sich sehr gut über Vererbung erweitern. Sprich, eigene Methoden usw. können einfach über Vererbung hinzugefügt werden. Die API ist schön definiert, also wirklich sehr angenehm -> Wie man es von Drupal kennt.

Daher kann ich also das FPDF sehr empfehlen -> natürlich kann man das nicht nur für Drupal verwenden, sondern eigentlich überall, wo man etwas mit PHP und PDF machen will. Kleiner Wehrmutstropfen: UTF-8 und FPDF sind leider nich kompatibel :( Dafür gibt es aber einen Fork: FPDFU.

Updatefähigkeit erhalten

Ich habe heute noch mit einer zweiten Seite ein wenig rumgepröbelt, was passiert, wenn man sie auf Drupal 6 aktualisiert. Auch hier kam es mehr oder weniger ähnlich heraus… eher noch schlimmer.

Meine Lehre aus dem heutigen Tag:

Eine Seite so einfach wie möglich halten. Es gibt zwar viele echt coole Module, die ein paar coole Features zuordnen, aber sind sie in der nächsten Version auch noch da? Kann man zur Not drauf verzichten? Falls die Antwort nein lautet, sollte man sich den Einsatz überlegen, oder sich im Klaren sein, dass man unter Umständen nicht aktualisieren kann.

Was gibt es für Lösungsmöglichkeiten: Funktionalität zurückschreiben, Inhalt hervorheben. Oftmals kann man den Modulen entnehmen, wie gut sie gepflegt werden. Ein Modul, welches seit einem Jahr nicht mehr aktualisiert worden ist, wird wohl auch in Zukunft nicht mehr aktualisiert (oder man nimmt es selber in die Hände).

Zudem gibt es Modulmaintainer, welche eine Roadmap hinschreiben, sprich, was sie noch alles mit dem Modul vorhaben. Das kann ein guter Anhaltspunkt sein.

Da ich erst vor einem Jahr hinzugekommen bin, ist dieser ganze Wechsel neu für mich. Ich konnte gerade mit der 5er Version anfangen und mir so einige Mühen ersparen. Nicht so jetzt. Ich habe aber auf jeden Fall draus gelernt und würde zum heutigen Zeitpunkt nicht mehr jedes kleine "Mistmodul" installieren. Sieht zwar cool aus, aber bringt keinen wirklichen Nutzen.

Wenn ich schon davon spreche… meine eigenen Modulen könnten auch eine Roadmap vertragen ;)

Update vorerst auf Eis gelegt

So, nachdem ich jetzt 3 Stunden dran gesessen bin, breche ich die Übung ab. Es fehlen einfach noch einige wichtige Module und dazu gehört unter anderem Imagecache und Imagefield :(

Aber sonst, war es echt super. Ein paar coole Sachen. Kleines Beispiel: Ich verwende das Modul Inline. Leider gibt es dieses noch nicht für D6. Ich könnte also einfach ein anderes nehmen (z.B. Imageassist oder so), aber dann werden ja die bestehenden inline Bilder nicht mehr angezeigt und bleiben auf ewig als [inline...] drin :(

Simple Filter schafft Abhilfe. Genial. Damit kann man eigene Filter definieren und so die Inline Sachen rausfiltern.

Wie gesagt… ich werde jetzt mal einen Monate pausieren und dann schauen, ob das Blog bereit ist für den Umzug -> das ist ja eigentlich schon bereit, aber ob die Module (wenigstens die wichtigen) bereit sind.