Je viens de passer beaucoup de temps à trouver un élément dans un tableau de rendu. J'utilise généralement dpm()
pour imprimer le tableau, puis étendre les options jusqu'à ce que je trouve ce que je recherche.
Sur des tableaux plus grands, c'est encombrant. Lorsque j'utilise print_r()
, je peux faire une recherche de texte, mais il est difficile de voir la structure du tableau et de trouver le chemin d'accès à l'élément.
Quelles autres méthodes pouvez-vous suggérer?
dpm()
, je pense qu'il cherche une fonction pour trouver un sous-élément dans un tableau de rendu par un nom / clé donné$elements = find_elements_by_key($render_array, 'element_name');
retourner un tableau de tous les éléments du tableau de rendu avec une clé correspondante?Réponses:
Il existe un module d'extension pour Devel: Search Krumo . Il utilise Javascript pour trouver du texte dans les messages Krumo / dpm et ouvrir un tableau à ces endroits.
Ressemble à ça:
Mise à jour
Après le 22 avril 2012, vous devriez utiliser la
sdpm()
fonction pour voir le champ de recherche.la source
L'un des gros problèmes des tableaux de rendu est qu'il existe souvent un tas de copies en lecture seule des informations que vous recherchez. Si vous voulez réellement changer la sortie de rendu, vous devez trouver la bonne. J'utilise généralement dpm (), puis j'affiche la source de la page et je recherche dans la sortie là-bas, en faisant des allers-retours entre les deux écrans jusqu'à ce que je trouve ce dont j'ai besoin.
Si vous voulez vider le contenu d'un tableau de rendu pour un chemin donné vers le terminal (par exemple pour le passer par grep), vous pouvez faire quelque chose comme ceci:
Vous pouvez également simplement «afficher la source de la page» dans votre navigateur et utiliser le presse-papiers, bien sûr, mais ce qui précède peut être le début d'une commande Drush pour afficher les tableaux de rendu.
Mise à jour: J'ai trouvé un très bon article sur ce sujet: The Scary Render Array - probablement le meilleur traitement des tableaux de rendu que j'ai vu jusqu'à présent. J'aurais également dû mentionner le module devel_themer dès le départ; il fait un bon travail de "zoom avant" sur la section du tableau de rendu qui vous intéresse.
la source