Startseite
  • » Home
  • » Handbuch & FAQ
  • » Forum
  • » Übersetzungsserver
  • » Suche
Startseite › Forum › Drupalcenter.de › Module › Modul-Entwicklung ›

[gelöst] in ersten Schritten steckengeblieben

Eingetragen von ronald (3857)
am 28.04.2012 - 20:30 Uhr in
  • Modul-Entwicklung
  • Drupal 7.x

Da ich wohl doch nicht mehr ganz ohne eigene Module herumkomme, habe ich mich mit der Modulprogrammierung befasst.
Ich habe das Buch "Das Drupal Entwicklerbuch" von John K. VanDyke herangezogen, und dort das erste Beispiel versucht.
Sicher, das Buch ist für 6.x, aber dennoch sollte es doch generell funktionieren.

Das Modul:

<?php
// $ld$
/**
* @file
* lässt Benutzer persönliche Anmerkungen speichern
*
* Fügt ein Textfeld hinzu, wenn ein Node angezeigt wird,
* so dass authentifizierte Benutzer Anmerkungen machen können.
*/

/**
* Implementierung von hook_menue()
*/

function annotate_menue(){

$items[admin/settings/annotate] = array(
'title' => 'Anmerkungen',
'description' => 'Konfigurieren Sie hier die Anmerkungen',
'page_callback' => 'drupal_get_form',
'page_arguments' => array('annotate_admin_settings'),
'access_arguments' => array ('administer site configuration'),
'type' => MENUE_NORMAL_ITEM,
'file' => 'annotate.admin.inc',
);
return $items;
}

Und die Inc-Datei annotate.admin.inc:

<?php
// $tld$
/**
* @file
* callbacks der Administrationsseite für das Annotate-Modul.
*/

/**
* Formularerstellung, Anmerkungen werden konfiguriert.
*
* @ingroup forms
* @see system_settings_form().
*/

function annotate_admin_settings(){
// Ruft ein Array der NodeTypen mit internen Namen als Schlüssel
// und benutzerfreundlichen Namen als Wert ab.
// Die Werte in t() sind bewußt in englisch gehalten,
// Sie werden über das Lokalisierungssystem übersetzt.

$options = node_get_types('names');
$form['annotate_node_types']=array(
'#type' => 'checkboxes',
'#title' => t('Users may annotate these content types'),
'#options'=>$options,
'#default_value'=> variable_get('annotate_node_types',array('story')),
'#description'=> t('A text field will be available on these content types to

make user specific notes.')
);
return system_settings_form($form);
}

Nun dazu ein paar Fragen:

1. warum wird nach dem letzten Element im Array noch ein Komma notiert?
2. wo auf der Konfigurationsseite finde ich das Formular?

Der im Buch angegebene Link funktioniert nicht.

‹ Modul mit Basic Page node/add form validieren ›
  • Anmelden oder Registrieren um Kommentare zu schreiben

Zitat: wo auf der

Eingetragen von torfnase (1525)
am 29.04.2012 - 00:19 Uhr
Zitat:

wo auf der Konfigurationsseite finde ich das Formular?

am besten, du blätterst mal eine Seite weiter und schaust dir an, wie man so ein Formular einfügt.

lieben Gruß
Berthold Lausch

  • Anmelden oder Registrieren um Kommentare zu schreiben

im Buch steht wörtlich:

Eingetragen von ronald (3857)
am 29.04.2012 - 07:47 Uhr

Da das Modul annotate jetzt aktiviert ist, begeben Sie sich zu VERWALTEN > EINSTELLUNGEN > ANMERKUNGEN.

Das Modul war in der Modulliste, ließ sich aktivieren. Anschließend habe ich sicherheitshalber mehrfach die Caches gelöscht.

Der angegebene Pfad existiert jedoch nicht und auf der Konfiguration - Seite taucht es auch nicht auf.

Nun frage ich anders - was hat sich an dieser Stelle vielleicht gegenüber der D6 geändert?

Die Konfigurationsseite hat ja auch Gruppen. Wie bekomme ich eine neue Gruppe angelegt? Wie bekomme ich ein neues Modul in eine Gruppe?

Das ist doch sicher nur ein Eintrag im items-array, oder?

  • Anmelden oder Registrieren um Kommentare zu schreiben

Danke Bertold, für deine Nachricht

Eingetragen von ronald (3857)
am 29.04.2012 - 14:04 Uhr

Soweit habe ich es verstanden.
Ich hoffe, dass der menue_hook sich nicht verändert hat.

Dein Video bezieht sich auch auf D6.

Hier nochmal mein item:

$items['admin/settings/annotate'] = array(
'title' => 'Anmerkungen',
'description' => 'Konfigurieren Sie hier die Anmerkungen',
'page_callback' => 'drupal_get_form',
'page_arguments' => array('annotate_admin_settings'),
'access_arguments' => array ('administer site configuration'),
'type' => MENU_NORMAL_ITEM,
'file' => 'annotate.admin.inc'
);

Das letzte Komma, das mit seltsam vorkam, habe ich entfernt, aber auch keinen Erfolg verbuchen können.
Das Modul wird angesprochen.
Baue ich einen Sytaxfehler ein, wird dieser gemeldet.

Was hat es mit dem Type auf sich? Laut Buch ist die Konstante MENU_NORMAL_ITEM einzutragen. Passt das?
Ich habe auch versucht, einen Tippfehler zu finden. Ich vermute es, finde aber keinen.

  • Anmelden oder Registrieren um Kommentare zu schreiben

Das Komma in der letzten

Eingetragen von wla (9461)
am 29.04.2012 - 16:05 Uhr

Das Komma in der letzten Zeile beim Array ist wegen der Bequemlichkeit. Du kannst ohne nachzudenken Zeilen einfügen oder Löschen. Damit vermeidet man unter Umständen blöde Fehler, weil man vergessen hat das Komma wieder einzufügen.
Ein grundsätzlicher Fehler: es heißt hook_menu (nicht hook_menue!!!)
Dann verwendest Du in der Form-Funktion$options = node_get_types('names');
node_get_types ist bei Drupal 7 nicht mehr vorhanden und Du mußt Dir die Options anders basteln etwa über

  $types = node_type_get_types();
  $options = array();
  foreach ($types as $type) {
    $options[$type->type] = $type->name;
  }

Irgendwo ist noch ein Fehler, den ich nicht gefunden habe: Ich habe auch als User 1 keine Berechtigung, diesen Link aufzurufen. Keine Ahnung wieso.
Es hat sich von Drupal 6 nach Drupal 7 vieles erheblich verändert und Du wirst wohl nicht umhin kommen, Dich mit aktueller Dokumentation zu befassen.

Edit:
Es hat mir doch keine Ruhe gelassen und ich habe den Fehler gefunden:

'description' => 'Konfigurieren Sie hier die Anmerkungen',
'page_callback' => 'drupal_get_form',
'page_arguments' => array('annotate_admin_settings'),
'access_arguments' => array ('administer site configuration'),

Du darfst bei Drupal 7 keine _ einsetzen. Es muß heißen 'page callback', 'page arguments' und 'access arguments' (siehe hier). Außerdem hat sich bei Drupal 7 das Konfigurations-Menu geändert. Statt admin/settings/annotate muß es jetzt admin/config/annotate heißen. Kaum macht man's richtig funktioniert es auch: Unter Konfiguration gibt es jetzt im Admin-Menü auch den Punkt Anmerkungen :-)

Beste Grüße
Werner

  • Anmelden oder Registrieren um Kommentare zu schreiben

Danke Werner

Eingetragen von ronald (3857)
am 30.04.2012 - 08:09 Uhr

ich hatte zwar noch keine Gelegenheit es neu zu testen, gehe aber davon aus, dass es funktioniert.
Du hast es offenbar probiert.
Morgen ist Feiertag, da nehme ich mir etwas Zeit dafür.

  • Anmelden oder Registrieren um Kommentare zu schreiben

Benutzeranmeldung

  • Registrieren
  • Neues Passwort anfordern

Aktive Forenthemen

  • für drupal11 ein Slider Modul
  • [gelöst] W3CSS Paragraphs Views
  • Drupal 11 neu aufsetzen und Bereiche aus 10 importieren
  • Wie erlaubt man neuen Benutzern auf die Resetseite zugreifen zu dürfen.
  • [gelöst] Anzeigeformat Text mit Bild in einem Artikel, Drupal 11
  • Social Media Buttons um Insteragram erweitern
  • Nach Installation der neuesten D10-Version kein Zugriff auf Website
  • Composer nach Umzug
  • [gelöst] Taxonomie Begriffe zeigt nicht alle Nodes an
  • Drupal 11 + Experience Builder (Canvas) + Layout Builder
  • Welche KI verwendet ihr?
  • Update Manger läst sich nicht Installieren
Weiter

Neue Kommentare

  • melde mich mal wieder, da ich
    vor 2 Tagen 15 Stunden
  • Hey danke
    vor 3 Tagen 9 Stunden
  • Update: jetzt gibt's ein
    vor 4 Tagen 4 Stunden
  • Hallo, im Prinzip habe ich
    vor 1 Woche 1 Tag
  • Da scheint die Terminologie
    vor 1 Woche 1 Tag
  • Kannst doch auch alles direkt
    vor 1 Woche 5 Tagen
  • In der entsprechenden View
    vor 1 Woche 5 Tagen
  • Dazu müsstest Du vermutlich
    vor 1 Woche 5 Tagen
  • gelöst
    vor 4 Wochen 2 Tagen
  • Ja natürlich. Dass ist etwas,
    vor 4 Wochen 3 Tagen

Statistik

Beiträge im Forum: 250233
Registrierte User: 20449

Neue User:

  • Mroppoofpaync
  • 4aficiona2
  • AppBuilder

» Alle User anzeigen

User nach Punkten sortiert:
wla9461
stBorchert6003
quiptime4972
Tobias Bähr4019
bv3924
ronald3857
md3717
Thoor3678
Alexander Langer3416
Exterior2903
» User nach Punkten
Zur Zeit sind 0 User und 16 Gäste online.

Hauptmenü

  • » Home
  • » Handbuch & FAQ
  • » Forum
  • » Übersetzungsserver
  • » Suche

Quicklinks I

  • Infos
  • Drupal Showcase
  • Installation
  • Update
  • Forum
  • Team
  • Verhaltensregeln

Quicklinks II

  • Drupal Jobs
  • FAQ
  • Drupal-Kochbuch
  • Best Practice - Drupal Sites - Guidelines
  • Drupal How To's

Quicklinks III

  • Tipps & Tricks
  • Drupal Theme System
  • Theme Handbuch
  • Leitfaden zur Entwicklung von Modulen

RSS & Twitter

  • Drupal Planet deutsch
  • RSS Feed News
  • RSS Feed Planet
  • Twitter Drupalcenter
Drupalcenter Team | Impressum & Datenschutz | Kontakt
Angetrieben von Drupal | Drupal is a registered trademark of Dries Buytaert.
Drupal Initiative - Drupal Association