He creado una vista con varios filtros expuestos, pero tiene un aspecto bastante feo.
Me gustaría mejorar la temática, incluyendo envolver todo en un conjunto de campos, así como agrupar algunos de los otros elementos (como emparejar las entradas publicadas y actualizadas), pero no estoy seguro de cómo hacerlo.
Traté de var_dump el formulario, pero parece que continúa para siempre y mi navegador se bloquea, por lo que no puedo aprender nada sobre el formulario de esa manera.
También intenté poner el formulario como un elemento secundario del conjunto de campos en otro formulario, pero obtener toda la información de ID del formulario, etc., resultó problemático (aunque sí obtuve el estilo del conjunto de campos).
¿Alguien tiene alguna sugerencia?
Actualizar:
Copié la plantilla del módulo al directorio de temas de mi sitio y comencé.
<fieldset>
<legend>Filters</legend>
<div class="views-exposed-form">
<div class="views-exposed-widgets clear-block">
<?php foreach($widgets as $id => $widget): ?>
<div class="views-exposed-widget">
<?php if (!empty($widget->label)): ?>
<label for="<?php print $widget->id; ?>">
<?php print $widget->label; ?>
</label>
<?php endif; ?>
<?php if (!empty($widget->operator)): ?>
<div class="views-operator">
<?php print $widget->operator; ?>
</div>
<?php endif; ?>
<div class="views-widget">
<?php print $widget->widget; ?>
</div>
</div>
<?php endforeach; ?>
<div class="views-exposed-widget">
<?php print $button ?>
</div>
</div>
</div>
</fieldset>
Me parece que no puede encontrar la manera de emparejar los campos de fecha - tengo que modificar de alguna manera las propiedades del widget para que pueda envolver en HTML (usando hook_form_alter no funciona debido a que el #prefix y #suffix se añaden a $widget->widget
lo que romper la salida)
views-exposed-form--view_id.tpl.php
oviews-exposed-form--view_id--display_id.tpl.php
, más informaciónTambién eche un vistazo al módulo de Mejores filtros expuestos . Necesitará la versión -dev para obtener la opción de filtros plegables, aunque espero obtener pronto una versión 1.1 adecuada ...
fuente
Deberías mirar lo que hay en el
form['#theme']
artículo. Una mejor manera de hacer esto (mejor quevar_dump()
) sería usardsm($form)
o inclusokpr($form)
, estas funciones estarán disponibles después de instalar el módulo de desarrollo ( http://drupal.org/project/devel ).form['#theme']
debe ser una matriz de aproximadamente 7 elementos. Estos elementos son nombres de ganchos de tema a los que se llama cuando se representa este formulario. puede usarlos para implementar su propia forma de crear un formulario.Se llamará a uno de los artículos
views_exposed_form__VIEW_NAME__DISPLAY_ID
.En su módulo (si tiene uno) debe haber una implementación de hook_theme ()
fuente
En situaciones anteriores, he usado Hook_form_alter () para agregar prefijo y sufijo para formar elementos para envolverlos en div que luego se pueden diseñar. Sin embargo, no estoy seguro de envolver en conjuntos de campos.
p.ej.
fuente
Use hook_form_FORM_ID_alter de Drupal para modificar el formulario. Esto es lo que resolvió mi problema de prefijar un carácter £ en mi campo de precio (poner esto en su módulo personalizado):
fuente
El módulo de diseño de formulario expuesto de vistas (D7) lo ayudará con las vistas del tema de formulario expuesto.
fuente
En la página de edición de una vista podemos verificar la información del tema (esquina inferior derecha). Proporciona información sobre los archivos de plantilla utilizados por Drupal para representar las diferentes partes de la vista en pantalla. De manera predeterminada, se utilizan los archivos de plantilla proporcionados por el módulo de vistas (dentro de su carpeta de temas), pero en el caso de que queramos modificar la forma en que se muestra una vista, podemos anular esos archivos de plantilla con archivos de plantilla personalizados que podemos poner dentro de nuestro propia carpeta de tema personalizada (o el tema que se utilizará para mostrar esta vista)
Esta información del tema nos muestra cómo nombrar un archivo de acuerdo con la jerarquía (o el alcance del efecto del archivo de plantilla que va a anular las plantillas propias de las vistas).
Ahora, esta información del tema puede no mostrar todos los archivos de plantilla que la vista usa para representar esta vista específica.
así que vaya a sites / all / modules / views / theme y copie el archivo views -posed-form.tpl.php (porque en este caso queremos anular el valor predeterminado para los filtros de representación) y péguelo dentro de su propia carpeta de temas, ahora tiene que seguir el mismo método para controlar el efecto de este archivo de plantilla sobresaliente que ha colocado dentro de su propia carpeta de temas renombrándolo en consecuencia. por ejemplo, vistas-expuestas-forma: su nombre de panel de nombre de vista.tpl.php (comprenderá la nomenclatura al ver el tema: información en la página de edición de la vista)
ahora puede agregar css a widgets individuales (generados por controladores de filtro) en este archivo de plantilla y esa configuración se aplicará a los filtros.
visite http://eureka.ykyuen.info/2011/07/25/drupal-theme-the-exposed-filter-in-views/
fuente