Spędziłem dużo czasu na znajdowaniu elementu w tablicy renderowania. Zwykle używam dpm()
do wydrukowania tablicy, a następnie rozwijam opcje, aż znajdę to, czego szukam.
Na większych tablicach jest to uciążliwe. Kiedy używam print_r()
, mogę wyszukiwać tekst, ale wtedy trudno jest zobaczyć strukturę tablicy i znaleźć ścieżkę do elementu.
Jakie inne metody możesz zasugerować?
dpm()
, myślę, że szuka funkcji do znalezienia podelementu w tablicy renderowania o podanej nazwie / kluczu$elements = find_elements_by_key($render_array, 'element_name');
w stylu zwrócenia tablicy wszystkich elementów w tablicy renderowania za pomocą pasującego klucza?Odpowiedzi:
Istnieje moduł rozszerzeń dla Devel: Search Krumo . Używa Javascript, aby znaleźć tekst w wiadomościach Krumo / dpm i otworzyć tablicę w tych miejscach.
Wygląda tak:
Aktualizacja
Po 22 kwietnia 2012 r. Należy użyć
sdpm()
funkcji, aby wyświetlić pole wyszukiwania.źródło
Jednym z poważnych problemów z tablicami renderującymi jest to, że często istnieje zbiór tylko do odczytu kopii informacji, których szukasz. Jeśli chcesz zmienić wyjście renderowania, musisz znaleźć właściwy. Zwykle używam dpm (), a następnie przeglądam źródło strony i przeszukuję tam dane wyjściowe, przewracając tam iz powrotem między dwoma wyświetlaczami, aż znajdę to, czego potrzebuję.
Jeśli chcesz zrzucić zawartość tablicy renderowania dla danej ścieżki do terminala (np. Aby przekazać ją przez grep), możesz zrobić coś takiego:
Możesz także po prostu „wyświetlić źródło strony” w przeglądarce i oczywiście użyć schowka, ale powyższe może być początkiem polecenia Drush, aby wyświetlić tablice renderowania.
Aktualizacja: Znalazłem naprawdę dobry artykuł na ten temat: Scary Render Array - prawdopodobnie najlepsze podejście do renderowania tablic, jakie do tej pory widziałem. Powinienem również wspomnieć o module devel_themer z góry; sprawdza się w „powiększaniu” tej części tablicy renderowania, którą jesteś zainteresowany.
źródło