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 (9463)
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

  • Dynamische Ansicht von Seiteninhalt (als Tabelle?)
  • Vergabe von Berechtigungen für bestimmte Rollen; mir fehlt der Haken bzw. das „Veröffentlicht“
  • Ich brauche dringen Hilfe zu Updates oder ggf. wwie geht Composer?
  • Medien und andere Daten mit Feeds von Drupal 7 auf Drupal 10 migrieren
  • Rolle erstellen nicht zu finden
  • 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
Weiter

Neue Kommentare

  • Arrrrg. Nix Tabelle :-D /*
    vor 6 Tagen 11 Stunden
  • Textboxen mit Tabelle
    vor 6 Tagen 18 Stunden
  • Du sollst ja auch keine
    vor 6 Tagen 18 Stunden
  • Theme
    vor 6 Tagen 19 Stunden
  • Welches Theme benutzt du
    vor 1 Woche 53 Minuten
  • Mit Responsive Raster hatte
    vor 1 Woche 14 Stunden
  • Hallo Alex,um das Häkchen
    vor 1 Woche 23 Stunden
  • Modul view_unpublished
    vor 1 Woche 2 Tagen
  • Modul "override node options"
    vor 1 Woche 2 Tagen
  • Im Grunde ist dass ein
    vor 1 Woche 5 Tagen

Statistik

Beiträge im Forum: 250270
Registrierte User: 20477

Neue User:

  • Robertnobia
  • AltonRaf
  • JeffreyPaf

» Alle User anzeigen

User nach Punkten sortiert:
wla9463
stBorchert6003
quiptime4972
Tobias Bähr4019
bv3924
ronald3857
md3717
Thoor3678
Alexander Langer3416
Exterior2903
» User nach Punkten
Zur Zeit sind 0 User und 22 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