Przejdź do głównej zawartości

"Waga" modułów w Drupal 7

Problem:
Potrzebujesz aby Twój  moduł wywoływał hook_form_alter jako ostatni - ma operować na formularzu już gotowym, przetworzonym przez wszystkie inne moduły.

Rozwiązaniem jest ustawienie kolejności wywołań danego hooka.
w D6 dało się to zrobić edytując bazę danych, co nie było zbyt elastycznym i eleganckim rozwiązaniem. Na szczęście w D7 stworzono hook_module_implements_alter który pozwala na kontrolę kolejności wywołań danego hooka przez określone przez programistę  moduły.
W najprostszej wersji wystarczy podać tylko nasz moduł i będzie on wtedy ustawiony na końcu kolejki.

Ponieważ sama dokumentacja hooka nie jest zbyt bogata polecam świetny tutorial na ten temat.

Rozwiązanie to działa w moim przypadku, gdzie musiałem wywołać hook_form_alter()  swojego modułu  po tym jak  Profile2 dodał swoje pola do formularza rejestracji użytkownika.


/**
* Implements hook_module_implements_alter()
*/
function alter_register_worker_module_implements_alter(&$implementations, $hook) {
  //Any change here requires Caches to be cleared.
//dpm($implementations);
  switch ($hook) {
    case 'form_alter':
      $m1 = $implementations['mojmodul'];
      unset($implementations['mojmodul']);

      $implementations['mojmodul'] = $m1;
      break;
  }
//dpm($implementations);
}



Jeśli odkomentujesz funkcje dpm() wyswietli się kolejność modułów - przed i po naszej implementacji.

Komentarze

Popularne posty z tego bloga

Świat IT: Pszczoły i motyle

Ciepły i pogodny koniec wakacji sprzyja spacerom na łonie natury i obserwowaniu tego mistycznego świata dziejącego się poza naszymi monitorami. Chyba właśnie przez to podczas rozmowy o specyfice pracy w zespołach rozproszonych i ludzi, którzy do tego modelu pasują bądź też nie, przyszła mi do głowy metafora ze świata przyrody. Usiądzmy wygodnie i wyobraźmy sobiepachnącą słońcem łąkę pełną polnych kwiatów pośród których lata mnóstwo owadów. Skoncentrujmy swój wzrok na pszczołach i motylach. Oba gatunki owadów fruwają. Oba zapylają kwiaty pozwalając im się rozmnażać. Oba są pożyteczne. Oba budzą ogólną sympatię, a jednak możemy dostrzec sporo różnic. Motyle są kolorowe, wydają się radosne, frywolne. Są włóczęgami, niespokojnymi duchami. Kojarzą mi się z kreatywnością, niezależnością i swobodą. Pszczoły są pracowite, działają zespołowo, poświęcają się dla królowej. Kojarzą mi się z pracowitością, posłuszeństwem, przywiązaniem do miejsca. Powyższe charakterystyki całkiem nieźl

Nieregularne, klikalne kształty w HTML i CSS - szybkie studium przypadku

Mamy do wyboru trzy drogi: W zasadzie każda jest dobra i  wszystko zależy od naszych nawyków i tego, jaki mamy cel. 1. Imagemap Przykład: http://www.w3schools.com/tags/tag_area.asp   Jest to pierwszy i najszybszy sposób jeśli mamy w miarę nieskomplikowane kształty. Technika ta polega na - jak sama nazwa wskazuje - na nakładaniu na obrazek (<img>) interaktywnych obszarów <area>. Znacznik <area> przyjmuje do parametru shape  trzy opcje: rect , circle , lub poly . Najciekawszy jest ten ostatni, ponieważ pozwala na stworzenie dowolnego kształtu. Wymaga "jedynie" policzenia sobie współrzędnych  punktów, ale to przestaje być problemem, jeśli skorzystamy z generatora takiego, jak np  http://www.maschek.hu/imagemap/imgmap , który przy okazji generuje nam cały kod html. Zalety: Szybkość i prostota tworzenia klikalnych obszarów. Wady: Przede wszystkim brak możliwości dodania efektu typu zmiana koloru do stanu mouseover (jest to osiągalne dopiero przy

Zbuduj sobie zespół. Z klocków Lego.

Najlepsze architektury, wymagania i projekty powstają w samoorganizujących się zespołach.