Estoy usando Views PHP para reescribir campos en Views. Puedo acceder a todas las variables PERO las que tienen un modo de construcción. En mi caso, tengo el campo Contenido: Nodo (que se puede construir de acuerdo con cualquier pantalla), al que debería accederse utilizando la variable $row->nodefield
. Sin embargo, el contenido de esa variable siempre está vacío. He intentado con otras variables, y cada campo con un modo de compilación no se representará en Vistas PHP .
¿Es esto un problema de diseño o me falta algo?
Estoy usando Drupal 7 y Views 3
EDITAR
El uso de dpm () en los valores disponibles devuelve lo siguiente:
dpm ($ fila)
dpm ($ datos)
dpm($data)
en el campo de valor, Views devuelve una "llamada a la función indefinida dpm ()" error "Los
$row
elementos de Variables disponibles en las Vistas son inútiles para obtener valores de campo. Pero no necesita usarnoad_load
para obtener los datos que necesita. Primero, como de costumbre, oculta la salida del campo que deseas reescribir, luego en el campo Código de salida de tu campo PHP puedes usar$data
así:En este caso, estoy eliminando las etiquetas no permitidas y atribuidas al contenido para su uso en una exportación NITF. Si no está seguro de lo que hay dentro
$data
, puede, por supuesto,print_r($data)
echarle un vistazo.fuente
$data->field_field_body[0]['raw']['value']
para obtener el valor bruto.Consejo adicional: la matriz $ data contiene los datos del nodo sin procesar y puede imprimirse. Pero para representarlo correctamente, necesitamos procesar los campos con funciones como field_view_field .
fuente
¿Estás tratando de hacer esto dentro de las vistas? ¿Por qué no simplemente crear un tema de la plantilla de vistas en lugar de usar PHP global? No estoy seguro de si print_r funcionará dentro del campo de vista. Si fuera yo, simplemente haría clic en tema -> información, verá algo como vistas-campo-vista - MyViewName.tpl.php
(editar, aclaración) En la carpeta de temas del módulo de vistas, copie "views-view-field.tpl.php", luego cámbiele el nombre a "views-view-field - MyViewName.tpl.php" y colóquelo en su carpeta / templates en tu sitio ellos. En el archivo, verás algo como
Puede eliminar eso y agregar todos sus campos manualmente como
etc. O envuelva el $ output con lo que quiera.
Además, nunca he tenido mucha suerte con DEVEL, siempre uso:
Luego mirando la fuente de la página para obtener las variables. Tal vez solo estoy usando DEVEL incorrectamente, pero encuentro que puedo obtener las variables para cada fila mucho más fácil con un PHP var_dump viejo y regular.
fuente
Pasé dos días para encontrar la solución. La forma más fácil es actualizar el "Módulo Php de Vistas" a 7.x-2.x-dev. El mantenedor solucionó este problema en su versión 2.x.
Puede descargar desde aquí (asegúrese de descargar 7.x-2.x-dev ): https://www.drupal.org/project/views_php
La esperanza puede ayudar a alguien.
fuente
NUNCA debe almacenar el código PHP en su base de datos (y con View PHP lo hará). Utilice un enlace de Vistas en su lugar para modificar los resultados.
fuente