php

Postfix/Dovecot Mailserver unter Debian einrichten und mit MySQL und phpMyAdmin verwalten

Einen sicheren Mailserver unter Debian einzurichten ist eine einfache Sache und geht sehr zügig. Das ist nicht nur nützlich um seine E-Mails zu verwalten, sondern auch praktisch für Anwendungen die in der Lage sein sollen E-Mails zu versenden (z.B. PHP Skripte über die mail() Funktion).

Drupal Daten als CSV exportieren (am Beispiel "Google Merchant Center Export für Drupal Commerce")

Wer seinen Drupal Commerce Shop an Google Merchant Center anbinden möchte, kann dafür einfach das bestehende Modul nutzen. Allerdings ist das Modul ziemlich fest an die vorgegebene Struktur und den Aufbau von Drupal Commerce gebunden.

Drupal Commerce: Afterbuy Shop Schnittstelle manuell einrichten und nutzen

Afterbuy ist eines dieser Tools, die man ernsthaft in Betracht ziehen sollte, auch wenns einem beim ersten Kontakt kalt den Rücken runterläuft. Denn kaum eine Anwendung ist so hässlich und grausam unintuitiv wie Afterbuy. Ich würde jetzt sagen das Preis-Leistungs-Verhältnis ist gut, aber wem es bei Leistung nicht nur auf Funktionen, sondern auch auf Bedienbarkeit ankommt, dem sei geraten weiterzusuchen. Da ich kürzlich in den zweifelhaften Genuss kam, die Afterbuy Schnittstelle in eine Drupal-Commerce-Instanz einzubauen, schreibe ich hier einen kleinen Leitfaden, wie's funktioniert.

Drupal 7 Datenbank-Abfragen mit EntityFieldQuery

Eine wertvolle Neuerung aus Drupal 7 ist die EntityFieldQuery API. Hiermit können programmatische Inhalts-Abfragen über jede definierte Entität getätigt werden. Wollte man in Drupal 6 programmatisch eine Datenbankabfrage über bestimmte CCK-Felder machen, empfahl es sich aus Kompatibilitätsgründen mit Views eine Abfrage zu erstellen, diesen dann im Code zu laden und auszuführen. So war sichergestellt, dass kein Update am CCK Modul oder Veränderungen an der Datenstruktur zu Kompatibilitätsproblemen mit dem eigenen db_query()-Call führten. EntityFieldQuery ist eine alternative und deutlich bessere Abstraktionsschicht für diesen Anwendungsfall, denn es ist eine Drupal 7 Core Funktionalität und kein Modul in dessen Abhängigkeit man sich begibt, es arbeitet für simple Calls deutlich performanter als Views und es kann extrem flexibel eingesetzt und sogar um eigene Methoden erweitert werden. Die Fähigkeiten und Performance dieser API gehen soweit, dass es zu einer Grundüberlegung gemacht werden sollte, ob man für eine Darstellung von Inhalt das Views Modul oder doch lieber ein eigenes Modul mit EntityFieldQuery nutzen sollte.

Drupal Standard-Menütiefe (MAX_MENU_DEPTH) anpassen

Die maximale Menütiefe in Drupal ist auf 9 gesetzt. Das kann schnell zuwenig sein, denn z.B. auch das Book-Module/Buch-Modul entleiht viel Code aus dem Menü-Modul. Die Menütiefe auf kleinere Werte zu beschränken ist ganz einfach mit

define(MAX_MENU_DEPTH, 9);

anzupassen. Schwieriger wird es, wenn man einen höheren Wert benötigt, um z.B. tiefer verschachtelte Bücher oder Dokumente mit dem Book-Modul zu erstellen. Hier kommt man um einen Core-Patch nicht herum.

Drupal Module programmieren - Autotag Teil 3 (Das Modul)

Was wir zuerst brauchen ist ein Taxonomie-Vokabular, in dem unsere Tags gespeichert werden können. Also einfach eins anlegen unter admin/content/taxonomy. Name, Beschreibung, Inhaltstypen sind alle egal. Stellt es so ein, wie ihr es braucht. Unter Einstellungen macht einen Haken bei Tags und Mehrfachauswahl und lasst Erforderlich frei. Wir wollen den Benutzer ja nicht zwingen etwas einzugeben, sondern wollen automatisch Tags hinzufügen, wenn er es nicht tun will oder vergisst.

Drupal Module programmieren - Autotag Teil 1 (Dateistruktur)

Module sind das Herzstück des Content Management Systems Drupal. Nach der reinen Installation ist das CMS erstmal leer und langweilig. Es sind die Module, die Leben in die Sache bringen. Auch wenn die Drupal Community unzählige extrem nützliche Module zur Verfügung stellt, kommt es schonmal vor, dass man vergeblich sucht, aber nicht das richtige findet. In dem Fall kommt man nicht darum herum, ein eigenes Modul zu programmieren. Zum Glück ist das einfacher als man denkt. Wer Kenntnisse in PHP und SQL hat, sollte keine Probleme damit haben. Eigentlich muss man nur lernen, sich eine handvoll von Drupal zu Verfügung gestellter Funktionen zu nutze zu machen, und ein paar Grundregeln zu beachten. Die erste davon betrifft die Dateistruktur.