User sollen nur Buch-Inhalte anlegen können
![](http://www.drupalcenter.de/files/noavatar_mini.gif)
am 22.03.2009 - 22:41 Uhr in
Hallo und guten Abend,
ich beiße mir momentan die Zähne daran aus, wie ich registrierten Usern die Rechte vergebe, nur in vorgefertigen Büchern Seiten anlegen zu können.
Ich habe es bisher nur geschafft, dass dann auch generell "book pages" angelegt werden können. Diese werden ja dann aber keinem Buch zugewiesen.
Dazu erlaube ich den Usern die Funktion "create book content" des node-Modules.
Es gibt noch die Funktion "add content to books" im book-Modul, aber ich habe nicht herausgefunden, was die macht.
Kann außerdem irgendwo die Tiefe eines Buchs festgelegt werden? Also z. B. nur eine Ebene des Buchs (untergeordneten Seiten können keine weiteren Seiten untergeordnet werden).
Danke und Gruß!
- Anmelden oder Registrieren um Kommentare zu schreiben
Buchseiten
am 30.03.2009 - 09:24 Uhr
Moin!
Hui, das war doch ein wenig komplizierter, als ich dachte.
Also, nehmen wir mal an, Nutzer in Rolle 1 sollen neue Bücher erstellen dürfen, Nutzer in Rolle 2 jedoch nur Unterseiten.
| Berechtigung | Rolle 1 | Rolle 2 |
+=========================+=========+=========+
| add content to books | x | x |
| create new books | x | o |
+-------------------------+---------+---------+
| create book content | x | x |
| delete own book content | x | x |
| edit own book content | x | x |
+-------------------------+---------+---------+
So, damit wäre erstmal die Grundlage geschaffen.
Jetzt bleibt nur noch das Problem, dass man auch "" als übergeordnetes Buch auswählen kann. Dazu kannst Du Dir ein kleines
Minimodul bauen, das in diesem Formular einfach den Eintrag aus der Selectbox entfernt (wenn denn schon Einträge vorhanden sind).
Also in etwa so:
<?php
function mymodule_form_book_node_form_alter(&$form, &$form_state) {
$options = $form['book']['bid']['#options'];
if (count($options) > 1) {
// Remove first option ("<none>").
array_shift($options);
}
$form['book']['bid']['#options'] = $options;
}
?>
Ungetestet, könnte so aber funktionieren.
hth,
Stefan