[gelöst] Front- und Backend eines Moduls
am 15.08.2015 - 19:07 Uhr in
Ich habe eine spezialfrage an die erfahrenen Modulentwickler:
für eine spezielle Funktion brauche ich eine Maske für Administratoren, wo bestimmte Kerndaten erfasst werden, und eine andere Eingabemaske für Benutzer, wo die erfassten Daten in Verbindung mit einer Eingabe verarbeitet, und ein Ergebnis angezeigt werden soll.
Wenn ich das recht sehe, brauche ich dafür zwei Module?
Packe ich diese dann in gegenseitige dependancy und in ein Package?
Oder ein Modul mit abhängigem require? (require in einer Entscheidungslogik)
Wie würdet ihr das anpacken?
- Anmelden oder Registrieren um Kommentare zu schreiben

ich formuliere um
am 16.08.2015 - 11:22 Uhr
auch weil ich keine vernünftige Antwort in den Dokus finden konnte.
Ist es möglich und sinnvoll, zwei verschiedene Menü-Hooks in einem Modul zu halten?
Die nächste Folge wären eben auch zwei Forms.
Oder müssen zwei Sichten (User/Admin) in unterschiedliche Module gepackt werden?
Wie packe ich sicher diese beiden Module zusammen, dass niemals das eine ohne das andere in-/deinstalliert werden kann?
Ja, das geht. Ging auch schon
am 16.08.2015 - 12:30 Uhr
Ja, das geht. Ging auch schon in Drupal 6. Du hast halt bei Formularen mit den Validate und Submit Routinen bestimmte Namenskonventionen einzuhalten, aber es steht nirgendwo, daß der Modulname nicht immer der gleiche sein kann. Bei D6 habe ich z.B. mal ein Modul gehabt, daß drei neue Inhaltstypen angelegt hat. Ich hatte auch gedacht, das dazu verschiedene Module gebraucht würden, aber war kein Problem. Leider ist die Doku für solche Fälle nicht ausreichend und auch in den Büchern findet man dazu nichts.
also werde ich noch ein bisschen basteln müssen
am 16.08.2015 - 13:36 Uhr
immerhin bekomme ich einen Menüpunkt angezeigt.
Beim Admin-Menü gibt es wohl noch ein Pfadproblem, weshalb zwar in der Modulliste ein Config-Link angezeigt wird, aber das eigentliche Menü nicht öffnet.
Es wird auch in der Admin-Seite nicht angezeigt.
der Pfad muss doch einfach "admin/config" sein, darafu folgt ein frei zu vergebender Gruppenname, und dann der Menüpunkt - oder habe ich da etwas vergessen?
Examples-Modul
am 17.08.2015 - 11:47 Uhr
moin.
Schau Dir mal das Modul [do:examples Examples] an, dort sind sehr viele Entwicklungskonzepte ausführlich erklärt.
Unter anderem wird darin auch gezeigt, wie Du eine eigene Menükategorie anlegen kannst.
hth,
Stefan
ich stelle gerade fest
am 19.08.2015 - 18:26 Uhr
dass dieses Menü nicht angezeigt wird, bzw. nur die automatisch angelegten hidden fields erstellt werden.
Habe ich da etwas verpasst (außer dass der submitbutton natürlich noch fehlt)
function whois_form($form, &$form_state) {
$form['domainname'] = array(
'#type' => 'textfield',
'#title' => t('domain name'),
'#default_value' => '',
'#size' => 15,
'#maxlength' => 20,
'#description' => t('Please enter the complete domain name of your interest, including the dot and TLD, but not subdomains'),
'#required' => TRUE
);
return whois_form($form); // diese Zeile kommt mir komisch vor, habe ich aber aus einem Beispiel übernommen, und nur den Namen ausgetauscht.
}
Das sollte heißen return
am 19.08.2015 - 19:21 Uhr
Das sollte heißen return $form;
es sah' sehr nach recursivaufruf aus ;-)
am 19.08.2015 - 19:44 Uhr
dennoch kommt das Formularfeld nicht.
Caches habe ich natürlich gelöscht.
Ich bin im Moment nicht mehr sehr konzentrationsfähig. Wahrscheinlich ist irgendwo ein Tippfehler.
Der Pfad zum config, das ist das andere Ende des Systems, funktionier leider auch nicht.
$items['admin/config/content/internet/server_settings'] = array('title' => 'Server registration',
'description' => 'Registration for servers to be requested',
'page callback' => 'drupal_get_form',
'page arguments' => array('whois_server_form'),
'access arguments' => array('access administration pages'),
'type' => MENU_NORMAL_ITEM
);
ist unsichtbar.
Hallo Roland,das sieht für
am 20.08.2015 - 10:39 Uhr
Hallo Roland,
das sieht für mich so aus, dass Du die Form Rekursiv aufrufst:
function whois_form($form, &$form_state) {
$form['domainname'] = array(
'#type' => 'textfield',
'#title' => t('domain name'),
'#default_value' => '',
'#size' => 15,
'#maxlength' => 20,
'#description' => t('Please enter the complete domain name of your interest, including the dot and TLD, but not subdomains'),
'#required' => TRUE
);
return whois_form($form); // diese Zeile kommt mir komisch vor, habe ich aber aus einem Beispiel übernommen, und nur den Namen ausgetauscht.
}
mach dort einfach:
return $form; // diese Zeile kommt mir komisch vor, habe ich aber aus einem Beispiel übernommen, und nur den Namen ausgetauscht.Lieber Gruss
Robert
sah für mich auch komisch aus
am 20.08.2015 - 13:07 Uhr
hatte ich aber von einer Vorlage übernommen.
Aber die Änderung hat es nicht gebracht.
Ich war aber auch verflixt müde gestern, und jetzt sitze ich wieder hinter einem Proxy, der mir keine Zugriffe erlaubt.
Heute Abend bin ich wieder zu Hause. Hoffentlich nicht so geschafft wie gestern.
so, ich bin einen Schritt weiter
am 22.08.2015 - 11:06 Uhr
der Userteil funktioniert prinzipiell (es fehlen noch Funktionen. Das ist aber nicht das Problem).
Jetzt geht es darum, was ich ursprünglich fragte:
ich habe ein Modul, das habe ich whois getauft, dieses hat ein Usermenue und ein User-Formular.
Es hat aber auch ein config_menue und ein config_formular.
Wie muss ich nun diese benennen, dass sie dann auch in der config seite auftauchen?
function whois_server_menu() {
$items = array();
$items['admin/config/content/internet/server_settings'] = array(
'title' => 'Server registration',
'description' => 'Registration for servers to be requested',
'page callback' => 'drupal_get_form',
'page arguments' => array('whois_server_form'),
'access arguments' => array('access administration pages'),
'type' => MENU_NORMAL_ITEM
);
return $items;
}
funktionier leider nicht.
ich finde leider nichts passendes
am 24.08.2015 - 09:49 Uhr
wie sind die naming conventions, wenn ich mehr als einen Menüpunkt für ein Modul möchte, und jedes dieser Menues ein eigenes Form aufrufen soll.
Hier geht es um zwei - ein Userform, das vom Usermenue aufgerufen werden kann, und ein settings-Form, das aus der Admin/settings aufgerufen werden soll.
Hallo Ronald,Du musst eine
am 24.08.2015 - 15:56 Uhr
Hallo Ronald,
Du musst eine System Settings Form machen, damit diese in den Settings auftaucht.
Guckst Du hier:
https://www.drupal.org/node/206761
Liebe Grüsse
Robert
auf einen admin-hook wäre ich nicht gekommen
am 25.08.2015 - 07:43 Uhr
Probiere ich aus, wenn ich wieder zeit für meine eigenen Projekte habe.
Wird wahrscheinlich wieder Wochenende werden.
Ich möchte nichts versprechen, aber ich werden versuchen, dieses kleine Projekt zu einem Tutorial zusammen zu fassen.
Ich glaube, das ist ganz gut geeignet, weil es ein paar Aspekte in Kombination berücksichtigt.
Abgesehen davon, dass dieses Modul, an dem ich gerade bastle, auch schon des öfteren angefragt wurde.
Schaumamal
ich habe es angesehen - umsetzen kann ich es gerade nicht
am 25.08.2015 - 09:31 Uhr
aber ich sehe, dass ein ganz normaler menue-hook darin ist.
Da ich aber bereits modulename_menue vergeben habe für den Userzugang, kann ich dies ja nicht nochmal verwenden.
Du kannst Mit einem Aufruf
am 25.08.2015 - 09:52 Uhr
Du kannst Mit einem Aufruf von hook_menu viele Pfade setzen. Items ist schließlich ein Array und Du gibst den gesamten Array zurück.
das heißt
am 25.08.2015 - 10:34 Uhr
ich kann das Array schachteln, und mehrere Menues definieren - klingt hervorragend - muss ich unbedingt ausprobieren.
Gibt es übrigens irgendwo eine Liste der Begriffe, die bei "access rights" verwendet werden können?
und wieder habe ich einen neuen Teil der Struktur kennen gelernt
am 27.08.2015 - 07:28 Uhr
Es ist recht einfach, wenn man es weiß.
Einfach mehrere Einträge in der Menuestruktur basteln, der Rest ergibt sich von selbst.
Jetzt gibt es noch ein bisschen Detailarbeit, dann kann es laufen.