Pregunta:
Tengo un tipo de contenido llamado 'Ping'. Tiene varios campos y uno de ellos es una URL con el nombre 'nombre de archivo'. Quiero que la Vista de todos esos pings, nombres 'user-pings' no muestre la URL en sí, sino un enlace a ella. ¿Cómo puedo hacer eso?
He intentado lo siguiente, pero no funciona:
function feedback_views_pre_render(&$view)
{
if( $view->name === 'user_pings' )
{
foreach( $view->result as $key => $val )
{
$lang = $view->result[$key]->_field_data['nid']['entity']->language;
$field = $view->result[$key]->_field_data['nid']['entity']->field_filename[$lang][0];
$filename = $field['value'];
$link = "<a href='$filename'>(download)</a>";
$view->result[$key]->_field_data['nid']['entity']->field_filename[$lang][0]['value'] = $link;
$view->result[$key]->_field_data['nid']['entity']->field_filename[$lang][0]['safe_value'] = $link;
}
}
}
Además, si este código es un intento en la dirección correcta, me gustaría mucho aprender a hacer lo mismo en menos código.
Saludos y gracias de antemano, Alan.
Respuesta:
Puede hacerlo en la interfaz de vistas, sin necesidad de procesamiento previo o posterior en el nivel de tema (como sugiere su fragmento de script).
Supongo que está utilizando Drupal 7.xy Views 7.x-3.x.
Vaya a la interfaz de usuario de la vista que desea cambiar:
http://example.com/admin/structure/views/view/yourviewname/edit
or Home » Administration » Structure » Views » Yourview
Asegúrese de estar en la pantalla que desea cambiar (hacia la parte superior: la pantalla tiene pestañas "Página", "Agregar" y tal vez otras como "Bloquear" o similar)
En "Formato", muestra "Formato" y "Mostrar". "Mostrar" debe establecerse en "Campos".
Haga clic en el campo con su URL, como:
Content: URL (URL)
Se abrirá una ventana emergente con:
Configure field: Content: URL
Haga clic en "Reescribir resultados" – hay varias opciones abiertas, verifique:
Rewrite the output of this field
Ahora se abren un par de campos adicionales.
Haga clic en "Patrones de reemplazo" e identifique su campo de URL, por ejemplo:
[field_url]
Ahora, ingrese el texto que desea mostrar en el campo "TEXTO" (pueden ser etiquetas html como una etiqueta de imagen):
An image tag
Some text
Marque "Enviar este campo como un vínculo" e ingrese el patrón de reemplazo en el campo "Ruta del vínculo" [field_url].
Si desea utilizar otro campo de su tipo de contenido para mostrar en lugar de algo genérico, ese campo debe estar en la lista "Campos" ANTES del campo field_url, pero se puede marcar como "invisible" si no desea mostrar de lo contrario.