Upewnij się, że masz print $messages;w page.tpl.phppliku szablonu. Domyślnie program devel (dpm) jest skonfigurowany do drukowania jego zawartości w obszarze komunikatów witryny. Więc jeśli szablon z jakiegoś powodu nie wyświetla zawartości $messages, nic nie zobaczysz.
Gorąco polecam devel_debug_log . Wymaga modułu devel i daje funkcję ddl (). ddl dodaje stronę do raportów w konfiguracji, więc jest to podobne do drukowania w trybie watchdog, ale masz ładną czystą stronę, na której możesz wysyłać wiadomości debugowania, i nie martw się o warunki rasowe, w których twoje wiadomości mogą zostać usunięte, zanim szansę ich zobaczenia - lub, jak w twoim przypadku, problemów z motywem.
(Jest to również niezwykle przydatne narzędzie, jeśli próbujesz zbudować dowolny interfejs API, ponieważ wszystkie te żądania nigdy nie pokazywałyby żadnych komunikatów dpm ()).
Drukuje zmienną w obszarze wiadomości na stronie za pomocą drupal_set_message (). Możesz użyć tej funkcji do śledzenia jednej lub więcej zmiennych podczas pracy nad kodem prowadzącym witrynę. Ponieważ moduł Devel jest teraz wyposażony w Krumo, dane wyjściowe są niewielkie i nie rzucają się w oczy.
dpm($input, $name = NULL)
Jeśli z jakiegoś powodu nie używasz Krumo, możesz użyć parametru $ name, aby rozróżnić różne wywołania dpm ().
Pozostaje to samo. Zainstalowałem i włączyłem moduł deweloperski, wyczyściłem wszystkie pamięci podręczne, uruchomiłem crona i nadal dpm (func_get_args ()) nic nie pokazuje.
Jeśli drugie polecenie zalecane przez Chapabu niczego nie zmienia, oznacza to po prostu, że kod nie jest wywoływany i ten sam problem nie dotyczy ciebie.
Czasami jest to wynikiem zasobu na stronie zwracającego 404.
Drupal renderuje stronę 404 iw ten sposób pobiera (i usuwa) wiadomości z sesji i umieszcza je na stronie 404, której nie widzisz. Gdy strona główna pobiera wiadomości, nie ma już żadnych.
Możesz otworzyć kartę sieci i sprawdzić, czy jakieś zasoby mają status 404.
Łatwym rozwiązaniem jest tutaj włączenie szybkiego 404 poprzez odkomentowanie tej linii w settings.php:
# drupal_fast_404();
Innym dobrym rozwiązaniem tutaj jest użycie devel_debug_log, jak sugeruje SlakeFistcrunch.
Jeśli tylko niektóre dpm()połączenia nie działają, może to być spowodowane dpm()awarią. Widziałem, jak to się dzieje w następującym scenariuszu w niestandardowym module obsługi przesyłania formularza:
function mymodule_formid_submit($form,&$form_state){
dpm($form_state);}
Uważam, że warunek błędu został przechwycony przez procedurę obsługi wyjątku dpm(), ponieważ strona wyświetlała się dobrze, brak WSOD lub coś, po prostu brak dpm()wiadomości. Błąd jest prawdopodobnie niewykrytą rekurencją, ponieważ używaddl($form_state) zamiast tego spowodowało, że przeglądarka wyczerpała pamięć podczas oglądania odpowiedniego obiektu w raporcie wygenerowanym przez moduł Devel Debug Log.
Aby obejść ten problem, spróbuj wydrukować tylko (odpowiednią) część obiektu, na przykład dpm($form_state['values'])lub dpm(array_keys($form_state)).
Używamy plików cookie i innych technologii śledzenia w celu poprawy komfortu przeglądania naszej witryny, aby wyświetlać spersonalizowane treści i ukierunkowane reklamy, analizować ruch w naszej witrynie, i zrozumieć, skąd pochodzą nasi goście.
Kontynuując, wyrażasz zgodę na korzystanie z plików cookie i innych technologii śledzenia oraz potwierdzasz, że masz co najmniej 16 lat lub zgodę rodzica lub opiekuna.