Kategorie: Uncategorized

  • Glossar mit Views2 erstellen

    Views 2 hat ein paar echt coole Funktionen. Einen Glossar oder Telefonbuch lässt sich extrem einfach erstellen. Oky, hier die Ausgangslage.

    Profile: Das Core Modul wird verwendet, um ein hübsches kleines Profil zu machen. Dazu gehört der Nachname. Es wird jetzt eine normale Liste mit views gemacht, wo unter anderem eben auch der Nachname drin vor kommt.

    Jetzt muss die views einfach noch um ein Argument Nachnamen erweitert werden, was dann wie folgt ausschaut:

    Der Pfad für diese view lautet z.B. userlist/ Wenn man auf diese URL geht, so kommt die komplette Liste. Jetzt wird eben noch das Argument für Nachnamen eingefügt. Die URL würde dann wie folgt aussehen: userlist/B -> das würde alle Einträge, welche mit B beginnen ausspucken.

    Jo, das wäre es dann auch schon. Zuletzt muss dann einfach noch im Header eine Liste mit Links rein, also: A – B – C … usw, welche natürlich alle den Link userlist/A, userlist/B usw. haben.

    Echt simpel für ein doch relativ komplexes Problem. Was meiner Meinung nach noch hübsch wäre, wäre wenn nicht die ganze Seite neu geladen wird, sondern wenn lediglich zur entsprechenden Stelle gescrollt wird.

    Have fun…

  • Drupal – weisser Bildschirm

    Jeder hat sicher schon mal einen weissen Bildschirm erlebt… nicht sehr toll. Oftmals betrifft es nur einzelne Seiten. Das liegt in den allermeisten Fällen daran, dass nicht genügend Memory für einen Prozess zur Verfügung steht.

    Zum Debuggen einfach mal folgende Zielen ganz zuoberst in index.php einbinden:

    Danach sollte eine ähnliche Meldung erscheinen:

    Fatal error: Allowed memory size of 33554432 bytes exhausted (tried to allocate 84 bytes) in /var/www/vhosts/hplbl.ch/subdomains/plattform/httpdocs/includes/database.mysqli.inc on line 162

    Lösung: Eine höhere Memory Limit.

  • Submitknopf durch Bild ersetzen

    Der Submit Button ist ziemlich hässlich. Es kann machmal wünschenswert sein, diesen mit einem Bild zu ersetzen. Ganz einfach in Drupal. Bitte dazu auf keinen Fall den Core Code verändern, sondern wie folgt vorgehen:

    1. Ein neues Modul erstellen.

    2. In dieses Modul folgende Funktion reinkopieren:

    <!–?php
    function hook_form_alter(&$form, $form_state, $form_id){
    switch ( $form_id ) {
    case 'search_block_form':
    $form['submit'] = array (
    '#type' => 'image_button',
    '#value' => t('Search'),
    '#src' => drupal_get_path('theme','newsdrum').'/images/login_search_button.gif',
    );
    break;
    }
    }
    ?>

    Hier ein paar Erklärungen dazu: $form ist das ganze Formular als Array, $form_id, der Name es Formulares. Für jedes Formular, welches auf der Seite vorkommt, wird diese Funktion aufgerufen. Über das Switchstatement wird jetzt das richtige Formular abgepasst. In unserem Fall wird das Suchformular abgepasst. PS: hook muss durch den Modulnamen ersetzt werden.

    Am Besten einfach mal das Develmodul installieren und dann dsm($form) machen. So, all diese Werte können verändert werden. Returnwert ist nicht nötig. Um das Formular zu ändern kann es ganz nützlich sein, wenn man sich mal die Form API anschaut.

    In unserem Fall wird das submit Element verändert und zwar der #type auf image_button und dazu wird noch eine Source (#src) angegeben. Das wäre es dann eigentlich auch bereits schon.

  • Ist Drupal das richtige CMS für mich

    Im Forum im Drupalcenter taucht immer mal wieder die Frage auf, ob Drupal denn das richtige CMS für xyz ist. Daher möchte ich an dieser Stelle dieser Frage ein paar Zeilen widmen.

    Grundsätzlich kann man sagen, dass Drupal eigentlich fast alles kann. Es ist lediglich eine Frage von Zeit und Geld. Drupal ist sehr modular aufgebaut, besitzt eine flexible und gut dokumentierte API. Die Grundlage für ein flexibles System, doch hat diese Flexibilität ihren Preis.

    Zu Beginn sollte man sich die Frage stellen: Was will ich wirklich. Kleine Case Study. Walter möchte ein Blog. Es gibt viele Möglichkeiten ein Blog zu erstellen: WordPress, Drupal, oder Blogger. Jede Lösung hat ihre Vor- und Nachteile und schlussendlich gibt es am Schluss ein Blog. Daher. Was will Walter mit seinem Blog erreichen?

    1. Ich will einfach schreiben und mich um möglichst wenig kümmern.
    2. Ich will schreiben und ein bisschen selber was bestimmen, aussehen und so ändern.
    3. Ich möchte die volle Kontrolle haben, und kleine Features genau meinen Wünschen entsprechend einrichten. Zudem möchte ich mein Blog später in irgend einer noch nicht definierten Form ausbauen.

    Es ist ziemlch offensichtlich. 1 = Blogger, 2 = WordPress , 3 = Drupal.

    Immer wieder sehe ich Leute, welche mal schnell eben mit Drupal ein super cooles Portal zusammenstellen wollen: Buddyliste, chat, Kommentare, Avatar, Forum, Guestbook, Profile, private Messages, Grusskarten und was man alles noch sonst dazu für Module findet. … Die Module sind schnell gefunden und installiert. Auch konfigurieren kann man sie relativ schnell, und jetzt? Jetzt kommen hier und da kleine Details, Sachen die einem nicht gefallen, die man gerne ändern möchte und dann kommt das böse Erwachen. Es fängt schon nur mit dem Themen des Profiles an, views erstellen und themen usw. usw.

    Daher: Bin ich bereit zu lernen? Ansonsten wird die Seite einfach nicht zur vollsten Zufriedenheit aussehen und ist vielleicht besser beraten, ein anderes System zu nutzen. Joomla und WordPress sind vielleicht nicht ganz so flexibel, aber wenn man nicht viel lesen und lernen will, dann hat es hier super out-of-the-box Funktionen und super schöne Themes… ist vielleicht die bessere Wahl?

    Nur so nebenbei ein weiterer Aspekt, den man eigentlich auch nicht vergessen sollte: Die User. Die Module sind ja schnell zusammengeklickt, die User lassen sich leider nicht per Klick einfliegen.

    Ich möchte niemanden abschrecken. Drupal ist das genialste System auf Erden! Ich arbeite eigentlich seit einem knappen Jahr nur noch mit Drupal und setze alle meine Projekte mit Drupal um, ABER: Es scheint, als würden immer wieder Leute frustriert Drupal den Rücken kehren, weil sie nicht zum erhofften Resultat gekommen sind… ohne Fleiss kein Preis.

  • Tipps für das Erstellen einer Drupalseite

    Hier ein paar Tipps für das Erstellen einer Drupalseite, deren man sich vorher bewusst sein sollte.

    • Wer sind meine Benutzer? Woher kommen sie? Was wollen Sie?
    • Wer erstellt den Inhalt? Die Seite ist sehr schnell gemacht, doch woher kommt der Inhalt? Bin ich bereit regelmässig zu schreiben. Falls nicht -> werden auch nie Leute kommen.
    • Klein Anfangen. Features können immer noch hinzugefügt werden.
    • Ist wirklich jedes hinterste und letzte Feature notwendig? Weniger ist manchmal mehr und vor Allem für die Pflege ist es soooo viel einfacher, wenn da wenige Module sind. Weniger Module, weniger Fehler. Ganz einfach. KISS -> Keep It Simple Stupid.
    • Keine Illusionen haben. Mal schnell das Killer-Portal oder den ultimativen Webshop aus dem Boden stampfen? -> Da braucht es mehr als ein paar Klicks. Aus irgend einem Grund sind diese Projekte riesenprojekte und man wird das in den meisten Fällen nicht mal so schnell nachbauen.

    Wahrscheinlich gibt es noch viele weitere Tipps, aber das ist auf jeden Fall mal einen Anfang. Meine Philosophie: Je schlanker desto besser. Vielleicht lohnt es sich in manchen Fällen sogar, ein eigenes Modul zu erstellen, welches Teilfunktionen von anderen Modulen aggregiert. So hat man nicht unnötigen Balast, den man mitschleppen muss, obwohl man ihn gar nicht braucht.

  • Der Google Web Browser

    Google hat sich da mal wieder etwas einfallen lassen. Einen eigenen Browser: Google Chrome. Die Wellen gehen ja ziemlich hoch. Praktisch jeder Blogger und jede Newsseite und Zeitung hat schon was darüber geschrieben und auch in den Foren läuft die Diskussion heiss. Daher hier auch noch mein Senf dazu:

    Technisch gesehen super. Ich finde Seiten sind schneller, der Browser ist schlank. Super. Zudem kann ist jeder Tab in einem eigenen Prozess, sprich wenn ein Fenster "stirbt", dann muss man nicht den ganzen Browser abschiessen. 
    Was sonst noch cool ist, die Rechtschreibeprüfung und dass man Textfenster vergrössern kann.

    Was ich noch vermisse: Eine delicious Integration wäre noch cool. Zudem sollte der Element Inspector auch die Möglichkeit bieten, Elemente zu ändern -> CSS (so wie in Firebug).

    Das Problem sind die ganzen Daten Sachen. Ich bin mir noch nicht sicher, ob mich das stört oder nicht. Ist es lediglich ein ethisches Problem oder könnte es mich wirklich schädigen? Mal im Ernst: Wenn ich in Google eine Suchanfrage eingebe, dann klicke ich immer mal auf einen Werbelink, weil dieser zu meiner Suche passt… warum nicht?

    Wie gesagt, ich mache mir da wohl zu wenig Sorgen und schaue viel zu sehr auf die technischen Features… Zum Glück gibt es noch Datenschützer, welche sich darum kümmern. So hat ja Google bereits die Nutzungsbedingungen ein wenig geändert. Also, sind doch auf dem richtigen Weg.

  • Newsdrum ein Drupal 6 Portal

     Der Name "Newsdrum" ergab sich aus dem Anspruch, eine Länder- und damit Sprachübergreifende Kommunikationsplattform für Gamer aus aller Welt zu schaffen. Die Trommel war das erste, zuverlässig funktionierende Langstrecken-Kommunikationsmedium der Menschheit. Egal ob Hochzeiten, Todesfälle, feindliche Stammesüberfälle oder einfach nur Klatsch und Tratsch – der "Buschfunk" erreichte jeden. Und genau das streben auch wir mit unserem Projekt an. Dabei wollen wir uns bewusst nicht nur auf reine Gamenews beschränken, sondern wir möchten auch verwandte Bereiche aus dem Unterhaltungsbereich abdecken, seien es Filme, Musik oder interessante News aus Kultur und Gesellschaft.

    Der Plan für Newsdrum entstand ursprünglich Anfang 2007 aus dem Wissen heraus, das wir im Laufe der kommenden Jahre stark wachsen werden und das wir unbedingt ein Netzwerk-übergreifendes Newsportal brauchen, um mit der kommerziellen (und auch nicht-kommerziellen) Konkurenz mithalten zu können. Allerdings war uns damals nicht mal ansatzweise klar, wie schwierig sich die Suche nach einem geeigneten CMS gestalten würde. Nach vielen Tests und teilweise auch Pannen landeten wir bei Drupal (www.drupal.org). Drupal hat alles, was man für so ein ambitioniertes Projekt braucht. Ein weiteres Problem war das Layout – im Gegensatz zu den üblichen, überfrachteten Newsportalen mit lauter bunten, blinkenden Fensterchen wollten wir eine möglichst straffe, übersichtliche Aufteilung, um den Kernbereich – die News – in den Vordergrund zu rücken. Daher entstand ein 2 1/2-spaltiges Layout mit einem linksbündigen Hauptbereich nur für News, einem Medienplayer rechts und darunter in einer Doppelspalte Platz für Module. Das ganze wird zentral verwaltet von einer horizontalen Menuleiste, die Lesbarkeit wird dezent unterstützt von Icons und einer Farbkodierung.

    Umsetzung Nachdem das Portal ursprünglich für Drupal 5 geplant war und bereits teilweise umgesetzt war, haben wir uns entschieden, doch auf Drupal 6 zu setzen, welches damals in der Version 6.1 vorlag. Was sprach dafür: Vor allem die stark verbesserte Multisprachfähigkeit. Zudem sollte das Portal damals nicht sofort starten. Dadurch blieb noch ein wenig Zeit für die Module. Die Entscheidung hat sich auf jeden Fall gelohnt und die "Doppelarbeit" war aufgrund der Vereinfachung schnell vergessen. Aus den Erfahrungen von der ersten Version konnte bereits viel gelernt werden. Als Grundlage ist eine globale Taxonomy, welche jeden Artikel kategorisiert. Die Taxonomy wird dann sogleich auch als Navigation verwendet. Für die Bildverwaltung haben wir uns für eine strenge Folderhierarchie entschieden. Die Autoren können somit auf Bilder von anderen Autoren zugreifen. Design und Gerüst sind unabhängig voneinander entstanden. Für das Template in HTML/CSS hatten wir einen Webdesigner, um das Drupal Gerüst habe ich (rapsli) mich gekümmert. Obwohl wir uns nie gesehen haben, ging die Zusammenarbeit ganz gut voran. Koordination war hauptsächlich via ICQ und E-mail. Das ganze Portal-Projekt ist kontinuierlich im Aufbau, weitere Features werden nach und nach eingebaut. Wer sich daran technisch oder redaktionell beteiligen möchte, kann sich gern an mich wenden.

  • Coole Plugins für Eclipse

    Ihr wisst es ja bereits: Ich bin ein ziemlicher Eclipse fan. Ich finde diese IDE einfach genial! Grund dafür mag sein, dass ich Eclipse als JAVA IDE verwende und diese daher ziemlich gut kenne. Zudem gibt es einfach immer wieder mehr und gute Plugins und es lässt sich sehr einfach installieren 😉

    Hier ein paar seeeehr nützliche Plugins für die Verwendung mit Drupal:

    Das wären dann eigentlich auch schon die Wichtigsten. Die Installation ist eigentlich sehr einfach:

    Schritt 1:

    Schritt 2:

    Schritt 3:

    Oky, das wäre es dann auch schon. Dort ein Häckchen setzen, wo man gerne updates suchen möchte, bzw. neu installieren möchte und dann den Anweisungen folgen.

    Alternative:

    Für Target Management habe ich leider nichts entsprechendes gefunden. Da muss man einfach das entsprechende File herunterladen: http://download.eclipse.org/dsdp/tm/downloads/drops/R-3.0-200806202130/ (ich glaube, es müsste etwas wie RSE-SDK-3.0.zip sein).

    Das ist ein zip File. Dort hat es zwei Ordner drin: plugins und features. Diese kann man einfach in den eclipse folder kopieren (dort sollte es bereits diese Ordner geben).

    Alternative 2:

    Wer es lieber noch einfacher möchte, kann auch easyEclipse runterladen. Ich habe das persönlich noch nie verwendet. Dort kann man dann eine Distribution für z.B. PHP runtersaugen, welche halt dann bereits alle wichtigsten Plugins beinhaltet.

  • Erste Adobe AIR Applikation

    Heute habe ich mir endlich kurz die Zeit genommen, um mir mal die Adobe AIR Plattform anzuschauen. ich bin echt begeistert 🙂 Ich sehe eigentlich grosses Potential dahinter und ich denke auch, dass sich Drupal sehr gut integrieren lässt.

    Ich sehe folgendes Anwendungsszenario: Wird Drupal als pures Content Management System verwendet, lässt sich davor ein kleines Air interface bauen. Der Kunde kann dann somit ohne Browser seine Daten sehr leicht Pflegen. Für weniger versierte Nutzer, ist das auf Jeden Fall sehr vorteilhaft. Zudem ist sicher auch die Geschwindigkeit einiges Besser, da alles via AJAX geregelt wird.

    Eine erste kleine Applikation wird bald mal folgen. Ich sehe da ein Feedreader für mein Blog vor…

    Update: Gibt einen Beitrag im Podcast auf Boagworld.

  • Formulare von anderen Module modifzieren

    Manchmal sind die Formulare nicht genau so, wie man sie gerne haben möchte. Das lässt sich jedoch sehr schnell ändern. Beispiel: Ich will den Submit Knopf vom Login Formular mit einem Bild ersetzen. Ich glaube das kann man auch via CSS machen, ist aber nicht so zuverlässig. Hier wie ich es gemacht habe:

    Ich habe ein kleines Hilfsmodul geschrieben, da ich sonst noch immer hie und da ein paar Helfersachen brauche. In diesem Hilfsmodul habe ich folgend funktion: hook_form_alter:

    <!–?php
    function snippets_form_alter(&$form, $form_state, $form_id){
    switch ( $form_id ) {
    case 'user_login_block':
    $form['submit'] = array (
    '#type' => 'image_button',
    '#value' => t('Search'),
    '#src' => 'image/path/img.gif',
    );
    break;
    }
    }
    ?>

    Cache leeren! Diese Funktion wird jetzt immer aufgerufen, wenn ein Formular geladen wird. Im Switch Statement wird dann das Formular user_login_block abgefangen und dann kann gleich direkt die submit-Komponente des Formulars verändert werden. Die Funktion braucht keinen Returnwert, da das ganze als Pointer daherkommt.

    Dazu gibt es einen ausgezeichneten Artikel auf Lullabot.