[HOWTO] Wie schreibt man in Drupal ein Modul
am 12.08.2010 - 20:37 Uhr in
Diesmal habe ich mich mit der Frage, wie man ein Modul in Drupal schreibt, befaßt.
Das Tutorial richtet sich an Anfänger und es werden wirklich nur so ein paar Grundlagen erwähnt.
Es werden dabei im wesentlichen folgende Fragen beantwortet:
Wie ist ein Modul aufgebaut ?
Wie erzeugt man mit Drupal eine MySql-Tabelle?
Wie ändert man im Adminbereich das Menü?
Wie erzeugt man im Admin Bereich ein Formular und speichert die Angaben aus dem Formular in der erzeugten MySql-Tabelle ?
Wie ließt man die Daten aus der Mysql-Tabelle wieder aus und läßt sie an einer bestimmten Stelle auf der Seite anzeigen ?
Das ist so ein grober Überblick über die einzelnen Punkte. Das Tutorial besteht aus 3 Teilen. Leider ist es mir nicht so gut gelungen, die einzelnen Programm-Snippets wirklich umfangreich und ausführlich zu kommentieren.
Viel Spaß beim Anschauen :-)
- Anmelden oder Registrieren um Kommentare zu schreiben
Nur eine Vermutung, aber...
am 12.08.2010 - 20:40 Uhr
Nur eine Vermutung, aber... hast du diesmal die Video-Links vergessen? ^^
Da hast du natürlich
am 12.08.2010 - 22:13 Uhr
Da hast du natürlich vollkommen recht....
also hier die URL
http://www.youtube.com/watch?v=G7CWrVomaH0
man kann es aber auch leicht finden, wenn man bei YouTube nach Drupal Modul sucht....
Danke für den Hinweis :-))
Drupal Video-Tutorials
Anmerkungen
am 13.08.2010 - 13:21 Uhr
Hallo.
Ersteinmal vorweg: ich finde es gut, dass Du Dir die Zeit nimmst, diese Videos aufzunehmen und auch soviel Arbeit in die Erstellung der Tutorials steckst.
Jetzt kommt allerdings das "aber".
Leider vermittelst Du im Video nicht die Coding-Standards von Drupal sondern bringst die Zuseher unglücklicherweise auf einen Pfad abseits der Standards.
Das fängt bereits mit der .info Datei an. Dort hinterlegst Du die Beschreibung des Moduls in deutscher Sprache. Das funktioniert zwar, ist so jedoch leider falsch. Texte (auch Modulbeschreibungen) werden generell in englischer Sprache angegeben und dann notfalls per mitgelieferter .po Datei bei der Installation automatisch übersetzt.
Weiter geht das dann mit [api:hook_menu] (eigentlich überall). Auch dort verwendest Du deutsche Texte (Zitat aus der API-Dokumentation: The untranslated title of the menu item).
Viel weiter habe ich mir den Screencast jetzt nicht angeschaut, jedoch sind da so einige Haken drin, die so nicht wirklich korrekt sind und zu Verwirrungen führen können.
Oh, nachdem ich die Screencasts doch noch durchgeschaut habe, ist mir noch etwas aufgefallen ... Du fügst die zu speichernden Werte einfach so ohne jegliche Validierung in die SQL-Query von [api:db_query] ein. Das ist höchstgradig gefährlich und darf so nicht gemacht werden! Damit erzeugst Du eine richtig schöne Sicherheitslücke.
Gerade Anfänger wissen nichts von diesen Gefahren und stolpern so in eine ganz böse Falle.
Auch ist
$node
nicht immer in der page.tpl.php vohanden. Die Variable ist nur da, wenn exakt eine Node angezeigt wird.Wie schon gesagt: es ist schön, dass Du Dir die Mühe machst, diese Tutorials zu erstellen. Aber dann vermittle die Grundlagen bitte auch korrekt und ohne diese Fehler.
Stefan
Tipp: Beachte die Verhaltensregeln des DrupalCenter.
Ich glaube, wir haben uns da
am 13.08.2010 - 14:05 Uhr
Ich glaube, wir haben uns da auch ein wenig falsch verstanden....
aber ich hoffe, ich kann das noch aufklären :-)
du hast natürlich in allem, was du oben schreibst Recht, aber
und nun kommt das ABER :-)
Meiner Meinung nach erwartest du viel zu viel von einem kleinen Tutorial......
es ging bei diesem Tutorial nicht darum, eine Modul zu schreiben, welches Drupal tatsächlich ergänzen könnte, sondern es ging nur darum, zu zeigen, wie man überhaupt mittels Hooks Einfluß auf das Geschehen in Drupal nehmen kann. Ich habe darauf hingewiesen, dass man an der Stelle nicht ohne ein Handbuch auskommt. Natürlich kann man in den Beschreibungen englische Text eintragen und dann auch noch eine Übersetzungsdatei erstellen, um diese wieder ins Deutsche zu übersetzen. Natürlich existiert die Variable $node nicht immer in der page.tpl.php. Ich hatte versucht, dass so zu beschreiben, dass ich gesagt haben, der Text wird auf allen INHALTS-Seiten angezeigt. Ich fand das wesentlich klarer, als wenn ich gesagt hätte: der Text wird auf allen Seiten angezeigt, die eine node sind.
@Grundlagen vermitteln
Meiner Meinung nach kann ein kleines Tutorial von noch nicht mal 30 Minuten keine Grundlagen vermitteln, sondern es kann lediglich "Appetit" auf die Beschäftigung mit Drupal machen. In dieser Art und Weise sind ja die meisten Videos, die man zu diesem Thema bei YouTube finden kann. Grundlagen werden z.B. von der Firma Lullabot (das ist dir sicher ein Begriff) vermittelt, aber da kostet auch das volle Programm so ca. 1000 USD.
@Fehler
Ein Fehler ist es, wenn etwas nicht funktioniert. Ich würde in diesem Zusammenhang höchstens von Warning oder Notice sprechen wollen :-)
Drupal Video-Tutorials
Fehler
am 13.08.2010 - 14:20 Uhr
es ging bei diesem Tutorial nicht darum, eine Modul zu schreiben, welches Drupal tatsächlich ergänzen könnte, sondern es ging nur darum, zu zeigen, wie man überhaupt mittels Hooks Einfluß auf das Geschehen in Drupal nehmen kann.
Schon klar. Jedoch darf man dabei nicht sämtliche Regeln über den Haufen werfen und Anfängern falsche Vorgehensweisen vermitteln.
Ein Fehler ist es, wenn etwas nicht funktioniert. Ich würde in diesem Zusammenhang höchstens von Warning oder Notice sprechen wollen :-)
Sicherheitslücken einzubauen und diese dann per Tutorial als gängige Praxis zu vermitteln (genau das tut man nämlich mit einem Tutorial für Anfänger) halte ich für einen kritischen Fehler. Und mit dieser Meinung stehe ich nicht wirklich alleine da.
Der Smiley macht Deine Aussage übrigens nicht wirklich besser.
Wie soll denn ein Anfänger den korrekten Umgang mit Drupal lernen, wenn er schon in dem kleinsten Howto solche groben Fehler vorgesetzt bekommt? Wenn man bisher noch keine Erfahrung damit gemacht hat, tappt man doch vollkommen ahnungslos in diese Falle und wundert sich später, warum die Seite (im besten Fall) nicht mehr funktioniert.
Also nochmal: bitte vermeide in zukünftigen Tutorials solche groben Fehler. Das schadet nicht nur den Leuten, die danach handeln.
Tipp: Beachte die Verhaltensregeln des DrupalCenter.
Ich denke, wir haben unsere
am 13.08.2010 - 15:08 Uhr
Ich denke, wir haben unsere Standpunkte eindeutig formuliert und es ist alles dazu gesagt.
Ich kann dir aber nicht versprechen, dass es den Inhalt meiner Tutorials, die ich auf YouTube veröffentliche, beeinflussen wird.
btw: mach doch an dieser Stelle etwas zur Validierung von SQL-Abfragen, das würde doch eine prima Ergänzung zu meinem Beitrag sein.
Drupal Video-Tutorials