Kategorie: Uncategorized

  • template.php sauber halten – Code Snippets

    Das Newsportal an dem ich im Moment gerade arbeite braucht einiges an Code in der template.php, um alles genau so hinzubekommen, wie es auch sein soll. Ich stand vor der Wahl: Code in die tpl.php Dateien zu schreiben oder die kleinen Snippets in die template.php schreiben.

    Damit Logik und Darstellung getrennt bleibt, habe ich mich für zweiteres Entschieden und dann die entsprechenden Funktionen aus der tpl.php Datei aufgerufen. Doch, es kommen immer mehr kleine Helferfunktionen hinzu und ich will eigentlich meine template.php Datei nicht mit sovielen Funktionen belasten, da ich der Meinung bin, dass die template.php Datei dazu da ist, theme Funktionen zu überschreiben. Die kleinen Helferlein Funktionen sind jedoch keine Theme Funktionen.

    Ich habe mich jetzt entschlossen ein kleines Modul "Snippets" zu schreiben, in dem ich alle meine Hilfsfunktionen ablegen kann und diese dann an beliebigen Stellen verwenden kann. Dadurch ist die template.php schlanker und ich kann auch sonstwo darauf zugreifen.

    Mal schauen, wie es wird…

  • imagefield für Drupal 6

    Ein wichtiges Projekt wartet nur noch darauf, dass imagecache und imagefield endlich für Drupal 6 bereit ist. Die Portierungsarbeiten haben bereits vor einigen Monaten angefangen, doch ist es nach wie vor nicht bereit. Ich habe heute mal ins Imagefield reingeschaut und war eigentlich positiv überrascht. In meinen Augen ist nur noch ein Bug … jedoch ein ziemlich gravierender, welcher behoben werden muss: http://drupal.org/node/271017 und http://drupal.org/node/268971. Ich habe heute den ganzen Morgen damit verbracht, den Bug aufzuspüren und zu beheben leider ohne Erfolg… wenn ich nur den Debugger für Formulare zum Laufen bringen würde, wäre das ganze schon mal ein bisschen einfacher.

    Von Imagecache habe ich mal die Head Version ausprobiert und die scheint eigentlich bereits zu funktionieren… weiss zwar nicht wie Buggy, aber der Crashtest hat es auf jeden Fall bestanden. Ich hoffe doch mal, dass bis Ende Woche hier noch ein bisschen etwas passiert, denn ich finde diese beiden Module sind seeeeehr wichtig und kommen auf zig Seiten zum Einsatz.

  • Einführung in Views 2

    Mastering Drupal hat ein excellentes Screencast für Views 2 veröffentlicht. Alle, welche bisher noch ein bisschen Mühe mit Views 2 hatten, oder nicht genau wissen wie sie Views brauchen sollen, sollten sich dieses halbstündige Tutorial anschauen.

    Masteringdrupal

  • Drupal 6 Themen – Ein Kinderspiel

    Themen ist in Drupal 6 echt ein Kinderspiel. Voraussetzungen: Man kennt ein kleines bisschen PHP.

    Themen und Drupal kennt verschiedene Stufen:

    1. Stufe: die tpl Dateien. Dazu gehören page.tpl.php und node.tpl.php. Hier kann man relativ einfach Veränderungen zustande bringen, ohne sich mit PHP abmühen zu müssen. Ein wenig HTML und viel CSS und schon hat man die Seite seinen eigenen Bedürnissen entsprechend angepasst.

    Doch was ist, wenn kleinere Elemente nicht ins Design passen? Was, wenn man z.B. für die primary Links einen bestimmten Markup benötigt, um gewisse Dinge vollbringen zu können?

    2. Stufe: Theme Funktionen überschreiben. In den Modulen wird (sollte) jegliche HTML Ausgabe über eine Theme funktion augerufen werden, welche in etwa wie folgt ausschaut:

    Die Funktion, welche sich dann im Module meistens auch finden lässt würde wie folgt aussehen:

    <?php function theme_myModule_foo($arg){
    //hier wird irgend etwas mit dem Argument gemacht
    //damit es so aussieht, wie man will.
    return '

    '.$arg.'

    ';
    }
    ?>

    Diese Funktion lässt sich jetzt sehr einfach überschreiben. In der Datei Template.php würde das dann wie folgt aussehen:

    <?php
    myTheme_myModule_foo($arg){
    return '

    '.$arg.'

    ';
    }?>

    So, jetzt wird nicht die Original Theme Funktion aufgerufen, sondern die eigene.

    Vorteil von Drupal 6: In Drupal 5 musste man diese Funktionen bisher mühsam zusammen suchen, bzw. diese einfach kennen. Der Theme Developer ist genial. Einmal aktiviert kann man lediglich ein Element anklicken und sieht sogleich wie die dazugehörige Theme Funktion heisst und welche Theme Funktionen man benutzen kann, um diese zu überschreiben. Bei den Core Funktionen hat man zudem noch einen Link zur Original Theme Funktion. Oftmals ist es nämlich einfach diese entsprechend abzuändern als diese von Grund auf neu zu schreiben.

    Einfach mal ein wenig damit spielen… die Resultate sind sehr überzeugend. Der Theme Developer gibt zudem auch noch die möglichen Variablen aus, falls es sich um eine tpl. Datei handelt…

    Das Tutorial war zwar nicht sehr ausführlich und ohne Screenshots, aber wenn man die Logik begriffen hat, dann muss man einfach mal ein wenig rumspielen und dann hat man es raus und dann macht Themen erst richtig Spass!

  • Language Switcher ein wenig verändern

    Der Language Switcher Block muss manchmal ein wenig verändert werden. Der folgende Code Schnippsel macht folgendes:

    • Die Sprache wird als Kurzform (D,F,E usw.) ausgegeben.
    • Es wird nicht nur die Sprache gewechselt, sondern auch gleich noch zur Übersetzung des Nodes gewechselt (dies setzt glaube ich voraus, dass das Translations Modul aktiviert ist).

    Hier der Schnippsel. Unschön ist, dass der Link fix reincodiert ist -> aber ging irgendwie nicht anders.

    <!–?php
    function phptemplate_i18n_link($text, $target, $lang, $separator = ' ') {

    $nid = arg(1);

    $output = '';

    $attributes = ($lang == i18n_get_lang()) ? array (

    'class' => 'active'

    ) : NULL;

    $text = '';

    if ($lang == 'de') {

    $text = 'D';

    }

    elseif ($lang == 'fr') {

    $text = 'F';

    }

    elseif ($lang == 'it') {

    $text = 'I';

    }

    elseif ($lang == 'en') {

    $text = 'E';

    }

    $newTarget = translation_url($target,$lang);

    $output .= ''.$text.'';

    $output .= '';

    return $output;

    }

    ?>

  • Node Layout verändern – Diverse

    Hier gibt es extreme viele Snippets zu finden! http://drupal.org/node/46012

  • Taxonomie Terme nach Vokabular aufteilen

    Im Theme in der Datei node.tpl.php wird man irgendwo folgendem Snippet begegnen:

    Dadurch werden alle Terme, welche mit dem Node verbunden sind aufgelistet (unabhängig vom Vokabular)! Wenn man also z.B.  verschiedene Vokabulare hat, so werden die ganzen Terms einfach in einer Liste aufgelistet und man kann nicht wissen, zu welchem Vokabular der jeweilige Term gehört. In vielen Fällen mag das ok sein, aber in vielen Fällen auch nicht.

    Der folgende Snippet muss in die template.php rein:

    nid; $vocabularies = taxonomy_get_vocabularies();
    $output = '

      ';
      foreach($vocabularies as $vocabulary) {
      if ($vocabularies) {
      $terms = taxonomy_node_get_terms_by_vocabulary($node, $vocabulary->vid);
      if ($terms) {
      $links = array();
      $output .= '

    • ' . $vocabulary->name . ': ';
      foreach ($terms as $term) {
      $links[] = l($term->name, taxonomy_term_path($term), array('rel' => 'tag', 'title' => strip_tags($term->description)));
      }
      $output .= implode(', ', $links);
      $output .= '
    • ';
      }
      }
      }
      $output .= '

    ';
    return $output;
    }
    ?>

    Und das wäre es dann auch schon… 😉 Einfach myTheme durch das jeweilige Theme ersetzen. Zudem muss der Cache nochmals neu geleert werden (unter Performance ganz zuunterst). Wenn man sich jetzt den Node nochmals anschauen, wird man erfreut sein 😉

  • Drupal Job Finden/Suchen

    Vor einigen Tagen ist eine neue Plattform gestartet, welche zum Ziel hat, Drupal Jobs zu vermitteln: drupal-jobs.de. Die Plattform funktioniert relativ einfach: Ein Auftraggeber gibt einen Job aus, worauf sich Drupalianer bewerben können. Ähnliche Konzepte sind wohl bereits aus diversen Freelancer-Plattformen bekannt.

    Das Ganze ist im Moment noch in Betaversion, soll jedoch auch nachher weiterhin kostenlos betrieben werden.

    Falls also jemand Mitarbeiter sucht -> eintragen. Gleiches gilt natürlich auch für Jobsuchende 😉

  • Hopp Schwiz

    Ich bin ja nun nicht wirklich der richtige Fussball Fan, aber ein wenig aufgeregt bin ich trotzdem. Mein Tipp für heute Abend:

    Schweiz – Tschechien: 2:1

    Portugal – Türkei: 2:0

    … keine Angst, über Fussbal werde ich nicht viel Bloggen -> es ist ja schliesslich Rapsli Drupal World 😉

  • Woopra – Besucher Live verfolgen

    Unter woopra kann sich wohl niemand so recht etwas vorstellen. Woopra ist ein Counter, jedoch nicht einen, den man online verfolgt sondern als Desktopapplikation. Mag vielleicht ein bisschen unkonventionell klingen, aber woopra hat ein paar echt coole Features:

    • Man kann live mitverfolgen, wer gerade online ist, und welche Seite angeschaut wird. Man kann seine eigenen Besucher stalken 😉
    • Man kann den Besucher via Popup ansprechen und mit ihm chatten. Ich habe immer mal jemanden hier auf rapsli.ch angesprochen, aber bisher hat mir nur jemand geantwortet… ich glaube die anderen hatten wahrscheinlich Angst 🙂 Ich bin mir auch noch nicht ganz sicher, wozu das nützlich gebraucht werden kann -> evtl um die Usability und Co. zu überprüfen, bzw. Verbesserungsvorchläge vom Benutzer einzuholen.
    • Hübsche Statistiken und ein echt cooles GUI.

    Im Moment läuft Woopra noch als closed Beta. Sprich man muss sich einfach mal anmelden und sich dann 1-2 Wochen gedulden. Danach kann man sogleich loslegen. Ist wirklich interessant so zu verfolgen, was alles los geht 😉

    Und: Nicht erschrecken, falls ich euch mal anspreche -> Big Brother is watching you.