J'utilise Views PHP pour réécrire les champs dans Views. Je peux accéder à toutes les variables MAIS celles qui ont un mode de construction. Dans mon cas, j'ai un champ Content: Node (qui peut être construit en fonction de n'importe quel affichage), qui devrait être accessible en utilisant la variable $row->nodefield
. Cependant, le contenu de cette variable est toujours vide. J'ai essayé avec d'autres variables, et chaque champ avec un mode de construction ne sera pas rendu en PHP vues .
Est-ce un problème de conception ou manque-t-il quelque chose?
J'utilise Drupal 7 et Views 3
ÉDITER
L'utilisation de dpm () sur les valeurs disponibles renvoie les informations suivantes:
dpm ($ ligne)
dpm (données $)
dpm($data)
dans le champ de valeur, Views renvoie un "appel à la fonction non définie dpm ()" error "Les
$row
éléments Variables disponibles dans les vues sont en quelque sorte inutiles pour obtenir des valeurs de champ. Mais vous n'avez pas besoin d'utilisernoad_load
pour obtenir les données dont vous avez besoin. Tout d'abord, comme d'habitude, cachez la sortie du champ que vous souhaitez réécrire, puis dans le champ Code de sortie de votre champ PHP, vous pouvez utiliser$data
comme ceci:Dans ce cas, je supprime les balises non autorisées et attribuées au contenu pour une utilisation dans une exportation NITF. Si vous n'êtes pas sûr de ce qu'il contient
$data
, vous pouvez bien sûrprint_r($data)
y jeter un œil.la source
$data->field_field_body[0]['raw']['value']
pour obtenir la valeur brute.Conseil supplémentaire: le tableau $ data contient en effet les données brutes du nœud et peut être imprimé. Mais pour le rendre correctement, nous devons traiter les champs avec des fonctions comme field_view_field .
la source
Essayez-vous de faire cela à l'intérieur des vues? Pourquoi ne pas simplement thématiser le modèle de vues lui-même au lieu d'utiliser le PHP global? Je ne sais pas si print_r fonctionnera à l'intérieur du champ d'affichage. Si c'était moi, je cliquerais simplement sur le thème -> informations, vous verrez quelque chose comme views-view-field - MyViewName.tpl.php
(modifier, clarification) Sous le dossier du thème du module de vues, copiez "views-view-field.tpl.php" puis renommez-le en "views-view-field - MyViewName.tpl.php" et placez-le dans votre dossier / templates dans votre site eux. Dans le fichier, vous verrez quelque chose comme
Vous pouvez supprimer cela et ajouter manuellement tous vos champs comme
etc. Ou enveloppez la sortie $ avec ce que vous voulez.
De plus, je n'ai jamais eu beaucoup de chance avec DEVEL, j'utilise toujours:
Ensuite, en regardant la source de la page pour obtenir les variables. Peut-être que j'utilise mal DEVEL, mais je trouve que je peux obtenir les variables pour chaque ligne beaucoup plus facilement avec un ancien var_dump PHP classique.
la source
J'ai passé deux jours pour trouver la solution. La manière la plus simple est de mettre à jour le "Module Php Views" en 7.x-2.x-dev. Le responsable a résolu ce problème dans leur version 2.x.
Vous pouvez télécharger ici (assurez-vous de télécharger 7.x-2.x-dev ): https://www.drupal.org/project/views_php
L'espoir peut aider quelqu'un.
la source
Vous ne devez JAMAIS stocker de code PHP dans votre base de données (et avec View PHP vous le ferez). Utilisez plutôt un crochet Vues pour modifier les résultats.
la source