Niektórzy użytkownicy mogą mieć możliwość edycji tylko jednego zestawu pól wyświetlanego w pionowych kartach w formularzu edycji węzła. W takim przypadku używanie gabarytów pionowych wydaje się głupie, ponieważ do wyboru jest tylko jedna karta pionowa. Zobacz zrzut ekranu:
Czy można wyłączyć pionowe karty według roli użytkownika? A może wyłączając je całkowicie dla niektórych typów treści? W moim przypadku chcę po prostu, aby Lokalizacja nie była wyświetlana w pionowych kartach.
Próbowałem Renderable Fields i Field Group razem, ale źle zarządzały formularzem (chyba buggy). Rozmieść pola nie mogą oddzielić pionowych tabulatorów.
Odpowiedzi:
Można to zrobić na kilka sposobów:
Możesz użyć modułu Renderable Elements (jak wspomniano powyżej). Umożliwia zarejestrowanie dowolnego kompilacji instalacji i zarządzanie wyświetlaniem za pomocą interfejsu użytkownika. Udostępni (dodatkowe) elementy istniejących podmiotów na formularzach do zarządzania formularzami / wyświetlaczami lub możesz na przykład zarejestrować formularz kontaktowy i zmienić układ pól za pomocą interfejsu pola. Obecnie działa dobrze na formularzach, obsługa innych nadchodzi w drugiej iteracji.
Lub dodaj następujące elementy do niestandardowego modułu:
Moduł obszaru izolowanego że wyłącza pionowe zakładki
Oto ten podstawowy problem, który się do tego odnosi.
źródło
Możesz także użyć testu #access, aby ludzie nie widzieli pionowych kart.
Po prostu dodaj to do formularza haka, zmieniając lub pomiędzy ładowaniem a renderowaniem formularza. Następnie możesz wywołać render ($ form), aby uzyskać znaczniki.
źródło
Napisałem proste możliwe rozwiązanie we wspomnianym już wątku: https://drupal.org/node/1048644#comment-7822687 . Dla wygody wkleję go tutaj.
Istnieje prosty sposób, aby wyłączyć tabulatory pionowe w formularzu, zmieniając po prostu wartość
$form['additional_settings']['#type']
zmiennej'fieldset'
w implementacji hook_form_alter () lub hook_form_FORM_ID_alter () , jeśli jest ona równa'vertical_tabs'
.Nie musisz zmieniać ustawień dostępu ani
$form
rekurencyjnie chodzić po całej tablicy, ta ostatnia zużywa niepotrzebnie zbyt dużo zasobów.(Testowane w Drupal 7.23 .)
To wszystko oczywiście zastępuje
MYMODULEORTHEMENAME
nazwę własnego modułu lub motywu (ten ostatni wtemplate.php
pliku) imy_form_id
identyfikator formularza.Możesz także wyłączyć pola pionowe tylko dla użytkowników, którzy NIE mają roli administratora :
W przypadku, ktoś jest zainteresowany, ja załączeniu patcha (który robi to samo jak wyżej) do Dripman modułu piaskownicy „s # 2080739: Uproszczona metoda wyłączenia z zakładki pionowe prostu zmieniając
$form['additional_settings']['#type']
się'fieldset'
.źródło
Elementy zdolne do renderowania nie są obecnie obsługiwane i potwierdza na stronie projektu, że koliduje z innymi modułami, dzięki czemu nie polegam na nich w witrynach produkcyjnych.
W tym wątku poruszono kwestię całkowitego wyłączenia pionowych zakładek .
Dripman stworzył prosty moduł piaskownicy do całkowitego wyłączenia pionowych zakładek.
W zależności od pożądanego poziomu zaangażowania w kodowanie, moduł Dripmana powinien być łatwo konfigurowalny, aby był selektywny na podstawie pól / ról.
Przepraszamy za zwięzłą odpowiedź udzieloną przez @nicoz
źródło
Możesz użyć modułu Widoczność zakładek pionowych .
Obecnie moduł znajduje się w piaskownicy
źródło
W moim przypadku próbowałem wyłączyć pionowe zakładki stosowane w sekcji Opcje publikowania w formularzu edycji węzła (ponieważ był to jedyny zestaw pól, do którego ma dostęp określony zestaw użytkowników):
Dla wyjaśnienia, nie tylko musisz ustawić wartość
additional_settings
#collapsible
FAŁSZ, wszystkie elementy muszą również zawierać element #kolumbaWalne opcjeset to
FAŁSZ, in my case that was the
.źródło