Kategorie: Uncategorized

  • 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 😉

  • Übungsupdate 5.7 auf 6.2

    Ich bin gerade meine Datenbank und das Verzeichnis am Runterladen, damit ich mal lokal einen update machen kann zum schauen, was noch alles funktioniert 😉 … bin schon ein bisschen gespannt… more to come.

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

  • Drupal Views mit dem Theme Wizard themen

    Den Drupal Theme Wizard verwenden Views und CCK sind sehr mächtige Module und erlauben einem viel Freiheit, doch so richtig mächtig werden sie erst, wenn man auch weiss, wie man die Views richtig Themen kann. Es gibt zwar mittlerweilen viele gute Bonus Views (z.B. die Gridview), aber denoch gibt es immer wieder Anforderungen, wo man einfach alles selber in die Hand nehmen muss. Dieses Tutorial soll Schritt für Schritt zeigen, wie es geht: Voraussetzungen:

    • Grundlagen von CCK
    • Wissen, wie man Views erstellen kann

    Dann mal los. Als erstes sollte man sich vergewissern, dass der View Type auf "List View" gesetzt ist. Das führt dazu, dass diese standartmässig einfach als ul-Liste aufgeführt werden. Falls man hier etwas anders hat, so klappt es einfach nicht 😉 (Quelle für Fehler Nummer 1). [inline:1_list.png] Als nächstes geht man auf den Theme Wizard (admin/build/views/wizard). Falls der Pfad nicht erreichbar ist, muss das Modul zuerst noch aktiviert werden. Falls alles klappt, dann sieht es wie folgt aus: [inline:1_wizard_1.png] Im ersten Feld kann man die Views auswählen und im zweiten Feld die Art von Liste. Im Normalfall ist das eigentlich "Simle List". Weiter geht es mit "Select Theme Type". Klict man auf den anderen Knopf, so werden Funktionen aufgezeigt, welche überschrieben werden können (das wird in diesem Tutorial nicht behandelt). Daher auf select Theme Type klicken! Jetzt kommt eine Seite mit drei Textfeldern. Das oberste Textfeld enthält eine Funktion, welche in die Datei template.php reinkommt. Falls Zen als Theme verwendet wird, muss das ganze noch ein wenig verändert werden. Was diese Funktion macht: Wenn die Views geladen wird, wird diese Funktion aufgerufen. Die Funktion geht jetzt jeden Eintrag in der Views durch, filtert die nötigen Views Felder raus und verwendet die datei views-list-myView.tpl.php, um die Daten zu Themen. Die zweite Datei ist die eigentliche View, sprich ein Item der View. Hier kann jetzt beliebig gebaut und gearbeitet werden. In der Datei sind dabei die entsprechenden Variablen im Kommentar beschrieben. Die dritte und letzte Datei wäre dann einfach noch dass CSS File, welches geladen wird. Wichtig: Falls etwas nicht klappt, einfach mal kontrollieren, ob keine Tippfehler gemacht wurden und um die Dateien richtig benannt wurden! Ein paar Tipps: Die phptemplate Funktion übergibt auch eine Variable $count an die tpl.php Datei. Diese kann dazu verwendet werden, dass die CSS Datei nur einmal geladen wird:

    ?> Dadurch kann die Performance verbesser werden und es sieht ein bisschen hübscher aus, wenn man mit dem Firebug rumbrowsd 😉 Die phptemplate Funktion sieht so aus, wenn man sie kopiert:

    field as $id => $field) { $field_name = $field['field'];
    if (isset($taken[$field_name])) {
    $field_name = $field['queryname'];
    }
    $taken[$field_name] = true;
    $field_names[$id] = $field_name;
    }

    // Set up some variables that won't change.
    $base_vars = array(
    'view' => $view,
    'view_type' => $type,
    );

    foreach ($nodes as $i => $node) {
    $vars = $base_vars;
    $vars['node'] = $node;
    $vars['count'] = $i;
    $vars['stripe'] = $i % 2 ? 'even' : 'odd';
    foreach ($view->field as $id => $field) {
    $name = $field_names[$id];
    $vars[$name] = views_theme_field('views_handle_field', $field['queryname'], $fields, $field, $node, $view);
    if (isset($field['label'])) {
    $vars[$name . '_label'] = $field['label'];
    }
    }
    $items[] = _phptemplate_callback('views-list-frontpage', $vars);
    }
    if ($items) {
    return theme('item_list', $items);
    }
    }
    ?>

    Falls man mehr Variablen übergen will, so kann dies relativ einfacht gemacht werden:

    In der tpl.php Datei kann dann folgendes gemacht werden:

    Eine letzte kleine Erklärung:

    Dieser Aufruf befindet sich in der foreach Schlaufe. Sprich, wenn wir gesagt haben, wir wollen in unserer View 10 Elemente anzeigen lassen, dann wird diese Schlaufe 10 Mal durchlaufen. Es wird also 10 Mal die tpl.php Datei aufgerufen. Was zurück kommt ist reiner HTML code, welcher in der Array $items gespeichert wird. Damit das ganze dann auch wieder rauskommt, ist die folgende Zeile notwendig:

    Damit wird die Funktion theme_item_list($items) aufgerufen. Das Array wird durchlaufen und einen Listen HTML Code draus gemacht:

    • $item[1]
    • $item[2]
    • $item[3]
    • $item[10]

    Es ist ja eine Liste. Manchmal will man es jedoch als reinen HTML Code haben, dann kann man einfach eine eigenen Theme Funktion schreiben:

    Natürlich muss dann auch die phptemplate Funktion angepasst werden, was so aussehen würde:

    So, das wäre es dann gewesen. Es ist wirklich recht simpel, wenn man sich einfach mal Zeit nimmt und sich ein wenig dahinter setzt und es einmal durchspielt. Die phptemplate Funktion kann natürlich noch beliebig optimiert und verändert werden… Die Ausgabe ist recht beliebig. Es könnte sogar eine Tabelle ausgegeben werden, wenn man das wollte. Falls Anmerkungen sind… Bitte einfach das Kommentarformular benutzten. Ich bin froh, wenn ich mehr dazu lernen kann und andere Leser sicher auch. Falls das Tutorial hilfreich war -> Bitte auf die Werbung klicken (reich werde ich nicht, aber ist doch ein kleiner Verdienst, damit ich evtl. mal die Hostinggebühren damit bezahlen kann).

  • Drupalcon 2008 in Szegedin, Ungarn

    So, es ist draussen. Die Drupal Association hat bekannt gegeben, dass die Drupalcon 2008 (#2) findet in Szegedin, Ungarn statt und zwar vom 27. – 30. August 2008. Es wurde ja gemunkelt, dass sie in Deutschland stattfinden sollte, doch anscheinend nun doch nicht. Schade. Es wäre natürlich einfacher für mich gewesen.

    Mal schauen, ob ich es nach Ungarn schaffe. Dieser Sommer ist gerade sehr unpassend. 🙁 Man muss ja schon eine ganze Woche einplanen.

  • Gratis PHP Buch

    Es werden mal wieder Bücher verschenkt: http://phpforum.de/?id=874. Scheint sich um ein Buch für eher Fortgeschrittene PHPler zu handeln. Habe ich auf jeden Fall gerade mal bestellt. Die Aktion ist nur für registrierte Benutzer!

  • Joomla vs Drupal – Ein Glaubenskrieg

    Ich glaube auf Drupalcenter kommt alle paar Wochen mal wieder diese Frage auf. Joomla oder Drupal (immer ein bisschen anders formuliert). Es ist wohl oftmals eher eine Glaubensfrage, als dass es auf wahre Facts basiert. Drupal, Joomla, Drupal, Joomla, Drupal, Joomla…?

    Eigentlich ist die Sache ganz klar: Schnell, out-of-the Box: Joomla. Customized, performant, Scalable und cool ;): Drupal.

    Ja, schon klar. Jetzt gibt es Joomla 1.5. Es hat sicher viele coole Features drin und die Templates sehen sicher schöne aus. Ich sage ja, es ist eine Glaubensfrage. In einem Jahr werden wir mit Drupal 7 beglückt, wieder mehr coole Features. Ob es je mals Joomla 2 geben wird?

    Ob es schon mal wegen einem CMS einen Krieg gegeben hat, weil man sich nicht einigen konnte, welches jetzt das bessere System ist? Was will ich mit diesem Post sagen: Beide haben ihre Vor- und Nachteile. Wenn man in der Joomla Community frägt, wird Joomla hochgelobt, fragt man in der Drupal Community dann umgekehrt. Zwischendurch gibt es ein paar neutrale Meinungen von Umsteigern, doch ist die dann wirklich neutral, wenn jemand umgestiegen ist? 😉

    Daher: Ich empfehle Drupal 🙂 weil ich dran glaube und mich wohl fühle. Wer sich bei Joomla wohl fühlt ist auch gut und laut google trends haben wir noch einiges aufzuholen:

    [inline:drupaljoomla_trends.png]

    Hier noch ein interessanter Thread aus dem Joomla Forum 😉

  • Teaser über PHP Funktion erstellen

    Der Drupal Teaser lässt sich leider nicht ganz so flexibel einstellen, wie man das gerne hat. Ich habe eine View, welche den 1. Artikel anders darstellt als den 2. Damit das Layout auch schön aufgeht, muss der Teaser jedoch unterschiedlich lang sein. Drupal kann das meiner Meinung nach nicht lösen.

    Ich habe also meine Views, welche ich mit dem Theme Wizard entsprechend aufbereitet habe. Hier kommt jetzt die Teaser Magic:

    Damit wird jetzt der Text auf 80 Zeichen gekürzt, es wird jedoch nur bei einem Punkt abgeschitten. Falls ein anderes Zeichen gewünscht ist, kann das auch ersetzt werden.

    Einen Hacken hat das ganze leider noch. HTML Tags können zerrissen werden, was am Ende das ganze Layout auseinanderreisst. Es müsste also wohl noch ein bisschen zusätzliche Magic rein, so dass Tags am Ende geschlossen werden… Kommt dann vielleicht noch … oder hat jemand eine Lösung?

    Update 7.4.2008: Um das Problem mit den HTML Tags zu lösen, ist es wohl notwendig, alle Tags zu strippen. Gibt natürlich Probleme, wenn Links drin vorkommen…