[gelöst] Gruppen-Einstellung bei Erstellung bestimmter Nodes ausblenden
Eingetragen von nicki (188)
am 13.03.2017 - 16:16 Uhr in
am 13.03.2017 - 16:16 Uhr in
Hallo zusammen,
gibt es eine Möglichkeit, die Gruppen-Einstellungen bei der Erstellungen von bestimmten Node-Typen auszublenden. Es soll Nodes geben, die immer öffentlich sind. Kann mir jemand eventuell einen Tipp geben, wie ich das aus dem Formular raus bekomme?
Liebe Grüße
- Anmelden oder Registrieren um Kommentare zu schreiben
Falls das nicht über die
am 13.03.2017 - 17:16 Uhr
Falls das nicht über die Einstellungen der jeweiligen Inhaltstypen möglich ist, könntest du es hiermit probieren: https://www.drupal.org/project/rules_forms
Das muss sich im content_type einstellen lassen
am 13.03.2017 - 17:18 Uhr
.
Grüße
Ronald
content_type
am 14.03.2017 - 00:06 Uhr
Hallo Ronald,
das dachte ich auch. Ich habe sämtliche Einstellungen hoch und runter nachgeschaut. Diese Einstellung ist nicht am content_type. Ich weiß mir leider keinen Rat. Bleibt also doch nur ein Mini-Modul?
bv schrieb Falls das nicht
am 14.03.2017 - 22:47 Uhr
Falls das nicht über die Einstellungen der jeweiligen Inhaltstypen möglich ist, könntest du es hiermit probieren: https://www.drupal.org/project/rules_forms
Habe das Modul installiert. So wie ich es verstehe, ist das aber nur für die validierung der Nodes, oder? Eine Möglichkeit zum Ausblenden von Elementen habe ich nicht gefunden.
Ich glaube das ist die beste
am 16.03.2017 - 22:29 Uhr
Ich glaube das ist die beste Möglichkeit.
https://www.drupal.org/node/2709761
Ich habe das jetzt einmal
am 02.04.2017 - 01:42 Uhr
Ich habe das jetzt einmal versucht umzusetzen. Leider greift der Code nicht bei der Erstellung einer Node. Hat jemand eine Idee was ich falsch mache? Trotz Mini-Modul wird das Feld immer noch angezeigt.
<?php
function group_off_form_alter(&$form, $form_state, $form_id) {
$node = $form['#node'];
// Form alters per content type.
switch ($node->type) {
case 'anruf':
global $user;
// Hide group settings for all except community managers
if (!(user_has_role(5, $user))) {
$form['group_settings']['#access'] = FALSE;
}
break;
}
}
?>
Da ist erst mal ein
am 02.04.2017 - 08:43 Uhr
Da ist erst mal ein grundsätzlicher Fehler: hook_form_alter greift bei jeder Form!
Also muß die erste Abfrage immer der Check der Form sein. Dazu kommt, daß die Node-Forms immer nach dem Muster [nodename]_node_form aufgebaut sind. damit erübrigt sich die Abfrage noch dem Typ. Ich weiß jetzt nicht, ob $form['group_settings'] richtig ist, das solltest Du bitte prüfen. Dann ergibt sich für mich folgender Code:
<?php
function group_off_form_alter(&$form, $form_state, $form_id) {
global $user;
switch ($form_id) {
case 'anruf_node_form':
if (!(user_has_role(5, $user))) {
unset ($form['group_settings']);
}
break;
}
}
?>
.
Werner
drupal-training.de
Moderator und Drupal Trainer
* - - - - - - - - - - - - - - - - - - - - - - - - - - - *
Hallo Werner, so hatte ich es
am 02.04.2017 - 09:11 Uhr
Hallo Werner,
so hatte ich es auch erst versucht. Leider hatte das aber auch nicht funktioniert. Bei meiner Suche bin ich dann auf die Dokumentation auf drupal.org gestoßen. Dieser Code scheint aber nur beim Editieren der Node zu greifen. Ich glaub ich muss die Node noch einmal untersuchen und prüfen ob es sich wirklich um $form['group_settings'] handelt.
Liebe Grüße und schon einmal DANKE
Der Code greift beim
am 02.04.2017 - 10:46 Uhr
Der Code greift beim Erstellen und Ändern einer Node, denn in beiden Fällen wird dieselbe Node-Form angezogen.
.
Werner
drupal-training.de
Moderator und Drupal Trainer
* - - - - - - - - - - - - - - - - - - - - - - - - - - - *
Da ging ich eigentlich auch
am 02.04.2017 - 11:02 Uhr
Da ging ich eigentlich auch von aus und das macht die ganze Geschichte noch seltsamer. Der Code funktioniert beim edit-form. Da werden die Gruppeneinstellungen nicht angezeigt. Langsam verstehe ich gar nichts mehr.
Noch eine blöde Frage. Wie
am 02.04.2017 - 22:09 Uhr
Noch eine blöde Frage. Wie bekomme ich die Elemente der Form am einfachsten angezeigt?
Ich benutze dazu PhpStorm und
am 02.04.2017 - 22:21 Uhr
Ich benutze dazu PhpStorm und dann den Debugger, damit geht es am schnellsten. Du kannst aber auch das Devel-Modul benutzen und dann die Funktion dpm($form) aufrufen. Damit wird die Struktur der Variablen auf der Webseite ausgegeben und Du kannst darin navigieren.
.
Werner
drupal-training.de
Moderator und Drupal Trainer
* - - - - - - - - - - - - - - - - - - - - - - - - - - - *
Ich habe es mit dem Modul
am 08.06.2017 - 13:23 Uhr
Ich habe es mit dem Modul "Rules Forms Support" hinbekommen. Vielen Dank für den Tipp. Das ist echt ein tolles Modul!