Kategorie: Uncategorized

  • Ersatz für _phptemplate_variables in Drupal 6

    Ich habe soeben meine ersten Themingversuche mit Drupal 6 gemacht. Da sind schon ein paar Dinge anders. So wollte ich wie gewohnt ein paar neue Variablen über _phptemplate_variables() ins template beamen… ein paar vergebliche Versuche liessen mich zum Schluss kommen, dass hier wohl etwas geändert hat:

    Preprocess Funktionen. Die sind eigentlich ganz super:

    Zum Beispiel:

    Und jetzt kann wie gewohnt Variablen hinzugefügt werden. Damit das ganze aber auch greift, muss zuerst die Registry zurück gesetzt werden. Dazu kann man einfach folgende Funktion aufrufen:

    Diese kann man in diesem Fall einfach irgendwo in template.php reinpacken, dann wird sie ausgeführt. Ich habe mir die ganze Registrysache noch nicht so genau zu Gemüte geführt, aber was ich bis jetzt verstanden habe, war, dass da die ganzen Template Informationen gespeichert werden. Mehr Infos unter: http://drupal.org/node/173880#theme-registry. Muss ich unbedingt mal lesen.

  • Kommentare für Blogposts

    Äh… getze wollte ich dir einen Kommentar zum Blogpost Patchen unter Windows schreiben. Aber keine Kommentare aktiviert 🙁

    Also auf jeden Fall: die Unix Utils kann man nicht runterladen, da kommt immer Access denied oder Forbidden.

    Grüsse Thomas

  • 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 😀 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.