¡Hola muy buenas a todos!
Tengo un pequeño problema con el módulo views, así que os lo voy a comentar por si alguno puede aconsejarme para solucionarlo.
Me he creado una vista para realizar búsquedas avanzadas por determinados campos. A la hora de mostrar el resultado de la tabla lo he configurado en views de forma que muestre el teaser del tipo de contenido sobre el que realizo la búsqueda y todo eso me funciona de 10.
Mi problema es darle un estilo determinado a los campos que componen el formulario de búsqueda avanzada. La verdad que no se si existe alguna forma de hacerlo como con el módulo contentTemplate. Antes de preguntar he estado mirando en foros porque considero que es una duda que a alguien se le habrá planteado alguna vez... pero no he tenido mucha suerte.
He estado intentando crear un ".tpl" en la carpeta del tema, con los nombres que me da la opción de views, y dandole a actualizar. La verdad que eso si funciona bien. El problema me viene cuando quiero saber el nombre de los campos para ponerlos en determinadas ubicaciones. He usado:
<?php print print_r(array_keys(get_defined_vars()), 1); ?>Luego he mirado los elementos que muestra y como he leído en varios sitios intento escribir los de "rows", pero no hace nada
<?php print '' . htmlentities(print_r($rows, 1)) . '';?>¿Es por este camino?O voy muy desencaminado... ¿Existe un módulo que lo haga?
Muchas gracias por adelantado, cualquier consejo o referencia es bienvenido ;).
Comments
Aclarando el panorama.
Lo que intentas hacer es que ciertos campos darles estilos directos. Pero antes vamos a ver como esta el septup del views.
Explica un poco mas que tiene el view, si es block o una page, attachment ....
Después por lo general el view siempre tiene una nomenclatura de dar clases e ids lo que tienes que hacer es seguirla declarar en tú hoja de estilos con el DOM correcto para apuntar a los elementos que views imprime un ejemplo, si creo un page (página) mas o menos me quedara el html así:
<div id="view-id-home-page_1" class="view view-home view-id-home view-display-id-page_1 view-dom-id-1 "><div class="inner content">
<div class="view-content">
<div class="views-row views-row-1 views-row-odd views-row-first">
Entonces lo que tienes que hacer es apuntar en tú css el DOM.
Puedes directamente atacar el id
#view-id-home-page_1 . view-row {...}También puedes editar los TPL del views directamente, hay una opción llamada theme en la columna en donde seleccionas el uso de grid, tablas, ... al final del todo. Te dice como llamar a los tpl, esos tpl están ubicados en ....../modules/views/themes Copias los tpl generales, los pegas en tú raíz del theme que uses y renombras esos tpl como te sugiere views.
Espero que esta sea tú duda porque si no .... no me aclaro de lo que deseas xD.
[at]killua99 ~~
Lo que tengo...
!Hola killua99!
Lo primero darte las gracias por contestarme ;).
La vista que tengo es una página con la configuración básica:
Nombre: Defaults
Título: Ninguno
Cambiar opciones para este estiloEstilo: Sin formato
Cambiar opciones para este estiloEstilo de fila: Nodo
Usar AJAX: No
Usar paginador: Sí
Elementos por página: 10
Enlace 'más...': No
Único(s): No
Acceso: Sin restricciones
Caché: Ninguno
Formulario expuesto en bloque: No
Encabezado: Ninguno
Pie de página: PHP code
Texto vacío: Ninguno
Clase CSS: Ninguno
Tema: Información
Los campos que he expuesto en la vista son varios: algunos de texto y otros checkbox y me salen todos uno de tras de otros, incluso a veces hay un salto de linea. Lo que yo quiero es que en lugar de que los campos de filtrado (los que he expuesto) de la vista se muestren así, que yo pueda organizarlos de la forma que quieray poner cabeceras.
Lo que quiero hacer:
Información básica:
Nombre: _________________ Dirección:________________
Código Postal:_____________
Características
Aquí quiero poner tres checkbox por fila
Y cambiar el nombre de aplicar que me sale en la vista por Buscar.
Lo que me sale por defecto
Nombre:______________ Direccion__________________ Codigo Postal checkbox1 checkbox2 checkbox3
Muchas gracias por adelantado :).
template
Vamos a ver para cambiar la palabra aplicar a buscar puedes hacerlo por la siguiente vía.
En el template.php de tú tema de drupal editas lo siguiente
<?php
function MYTHEME_preprocess_views_exposed_form(&$vars, $hook) {
// Solo alterar el formulario que deseas
if ($vars['form']['#id'] == 'views-exposed-form-<el id de tu form>-search-page-1') {
// Cambiar el texto
$vars['form']['submit']['#value'] = t('Search'); // Para el internationalitation module
// Aquí borras el drupal_render automático
unset($vars['form']['submit']['#printed']);
$vars['button'] = drupal_render($vars['form']['submit']);
}
}
?>
Ok ya cambiamos el texto (el texto deberías escribirlo en ingles y luego lo traduces con la opción de internationalitation module el i18n) Lo siguiente de los estilo como te dije. Usa los css para ordenarlos según como quieras. No conozco de un module que trabaje lo que deseas yo lo haría por esa vía.
[at]killua99 ~~