Kategorie: Uncategorized

  • Vom Basteln und so

    Kleine Anekdote von Praegnanz.de:

    • Unter Linux will man basteln.
    • Unter Windows muss man basteln.
    • Unter Mac OS X kann man basteln.

    Ich würde das noch mit Drupal ergänzen:

    • Unter Drupal … man basteln.

    Am Besten würde wohl, lernt oder sollte passen.

    Danke Pierre 😉

  • Body classes vom URL Alias abhängig

    Diese Funktion wird aus der page.tpl.php aufgerufen:

    • <body <?php print phptemplate_body_attributes;?>> zuerst wird er alias angeschaut. falls dieser nur aus einem Element besteht, dann ist es ein Hauptseite Falls der Pfad aus mehreren Elementen besteht, eine Unterseite. Also: test -> das wäre unterseite test/test1 -> das wäre hauptseite. Natürlich umgekehrt:

    test -> das wäre hauptseite

    test/test1 -> das wäre unterseite

    Das macht natürlich nur Sinn, wenn Pathauto entsprechend konfiguriert ist, oder die Aliase von Hand gesetzt werden.

    <!–?php
    function phptemplate_body_attributes() {
    $path_alias = drupal_get_path_alias(arg(0) . '/' . arg(1));

    $ar_path = explode("/", $path_alias);
    $body = '';
    if (count($ar_path) > 1) {
    $body = 'unterseite';
    } else {
    $body = 'hauptseite';
    }
    return 'class="' . $body . '"';
    }
    ?>

    Kleines Scriptli für Pierre 😉

  • Drupal Meeting Switzerland

    Es war doch ein langes aber sehr interessantes Meeting. Was stand auf dem Programm:

    • JDrupal
    • Simple Test

    In JDrupal ging es vor allem darum, Konzepte aus der Drupal Welt in ein Java CMS zu übernehmen. Leider hat dann das Telefon geläutet und ich war für 30 Minuten beschäftigt.

    Die Simpletest Präsentation von Florian war äusserst aufschlussreich und hat mich wieder mehr motiviert, auch an den Tests für meine Module zu arbeiten. Es ist halt wie immer -> die Zeit. Vor allem in grösseren Projekten, mit einem grösseren Zeithorizont wird man jedoch unter dem Strich Zeit gewinnen, daher sollte es sich auf jeden Fall lohnen.

  • Drupal optimieren

    Drupal ist sehr mächtig und sehr schnell hat man zig Module installiert und man fragt sich, warum die Seite soooo langsam ist. Mit wenig Klicks lässt sich die Performance massiv verbessern.

    Unter Admin -> Leistungen:

    • Cache auf normal
    • Block Cache einschalten
    • CSS optimieren -> ja
    • JS optimieren -> ja

    Das wird die Leistung schon mal massiv erhöhen und sollte auch keine ungewünschten Nebeneffekte haben.

    Falls es noch besser sein muss: Devel Modul einschalten und dort mal die Queries anzeigen lassen: "Collect Query info" und "Display Query log" auf ok. Jetzt wird unterhalb der Seite ein riesiger Log mit allen SQL Queries angezeigt… die Liste kann ganz schön lang werden.

    Als ich auf meiner Seite angefangen habe, hatte ich 800 Queries. Der Blockcache brachte es auf ca. 600 runter (irgend ein i18n Modul, was da so viel brauchte). Es wird jeweils die Zeit angezeigt, um den Query auszuführen und wie oft dieser ausgeführt wird. Falls hier eine Zahl rot ist, sollte man sich Gedanken machen… Ich hatte einen Query, welcher immer wieder aufgerufen worden ist und sah auch die Funktion dafür: taxonomy_node_get_terms_by_vocabulary(). Die Funktion wurde insgesamt etwa 100x aufgerufen -> da ist doch etwas faul. Doch wie findet man heraus, wo die Funktion aufgerufen wurde.

     

    Ich habe dann diesen Schnippsel in die fragwürdige Funktion reinkopiert. Drupal spuckte mir dann aus, wo diese Funktion augerufen wird. Super 🙂 … Übeltäter wurde sehr schnell gefunden. Es im hook_preprocess() -> noch ein überbleibsel aus Entwicklungszeit…

    Die Seite läuft jetzt auf jeden Fall merklich schneller.

  • System Information for Windows – Everest

    Sehr praktisches Tool, um den Computer genauer unter die Lupe zu nehmen: http://www.gtopala.com. Everest mag vielleicht dem einen oder anderen ein Begriff sein, kostet aber was. Dieses Tool hier ist gratis und macht eigentlich das Gleiche.

  • Modul, welches Artikel nach Term und Jahr auflistet

    Ich habe ein kleines Modul geschrieben, welches besonders für Blogger sehr interessant sein könnte. Das sieht dann etwa wie folgt aus:


    Term 1
    2008
    2007
    Term 2
    2007
    2006
    Term 3
    2008
    2006

    Ich suche natürlich noch ein paar Tester.

    Und hier noch Projektseite.

  • CVS Checkout mit Eclipse CVS Plugin

    So, endlich läuft es wieder. Eigentlich sind die Einstellungen ganz einfach:

    Neues Projekt in Eclipse erstellen. Dann rechts klick auf das Projekt und auf Team und dann auf share Project. Dort CVS auswählen -> "Create a new repository location". Jetzt folgende Angaben eingeben:

    Passwort ist gleich anonymous. Und dann auf Weiter. Jetzt muss der Name angegeben werden:

    Dann auf Next und das wäre es dann auch schon. Falls jemand einen CVS Account hat, kann er natürlich auch seine eigenen Benutzerangaben benützen.

    Falls die Daten noch nicht runtergeladen worden sind, können diese jetzt via Team -> Update aktualisiert werden.

    Hier ist noch ein kleines Handbuch für TortoiseCVS: http://drupal.org/node/227524

    Und hier wäre noch die entsprechende Seite zu CVS Eclipse im Handbuch [not working anymore].

  • Inline Module und Thickbox Integration

    Diese Code sollte eigentlich schon den ganzen Magic machen 😉 Also inline Tag Filtern und ein Thickbox Effekt drüber legen. -> ich habe es noch nicht ausprobiert.

    title) ? $file->title : $file->filename); $inline_preset = $field == 'teaser' ? 'inline_teaser_preset' : 'inline_full_preset';

    if (module_exists('imagecache') && variable_get($inline_preset, '') != '') {
    $image = theme('imagecache',
    variable_get($inline_preset, ''),
    $file->filepath,
    $title,
    $title,
    array('class' => 'inline')
    );
    }
    else {
    $image = theme('image',
    $file->filepath,
    $title,
    $title,
    array('class' => 'inline')
    );
    }

    if (variable_get('inline_link_img', '1')) {
    $attributes = array(
    'class' => 'inline-image-link thickbox',
    'rel' => 'gallery-' . $file->nid,
    'title' => t("View") .': '. $title,
    );
    $html = l($image, $file->filepath, $attributes, NULL, NULL, FALSE, TRUE);
    }
    else {
    $html = $image;
    }

    return $html;
    }
    ?>

  • Neues Drupal Podcast von Acquia

    Alle hier kennen sicher das lullabot Podcast. Ich finde es extrem unterhaltsam und auch sehr informativ. Daher sicher ein Muss für jeden Drupalianer. Seite heute (oder gestern) gibt es jetzt auch ein Podcast von Acquia, welches ich mir gerade anhöre.

    Ok, ich muss zugeben… es kommt nicht ganz so frisch und frei daher wie das von Lullabot, aber es gibt ja sicher auch Leute, die es schätzen, wenn das Podcast gleich auf den Punkt kommt und nicht noch Minutenlanges Gequatsche dazu ist…

    Mal schauen, wie regelmässig es rauskommt. Als regelmässiger Pendler, freue ich mich natürlich über solche Sachen.

  • Views automatisch in Module integrieren

    Views ist sehr mächtig und lässt sich auch sehr gut in eigene Module integrieren. Vorgehen ist wie folgt:

    1. Modul erstellen
    2. Views dazu basteln
    3. Views exportieren
    4. hook_views_default_views() einsetzen

    That's it. Die Views erscheint jetzt sobald das Modul integriert ist in der Liste aller Views und wird sofort verwendet. So muss man die ganzen SQL Sachen nicht selber für die Pageausgabe schreiben, sondern kann das Views überlassen. Zudem kann der Anwender die Views natürlich auch noch nach belieben verändern/anpassen.