it-swarm-es.com

Anular un diseño de tabla de vista en el módulo

Estoy tratando de anular una tabla de vista desde mi módulo. No puedo localizar cuáles son los argumentos y en qué orden (para mi función hook_theme). Copié el archivo de tema de vistas/temas y no hice modificaciones. ¿Alguien sabe qué va mal y cuáles deberían ser los valores de los argumentos a continuación?

La configuración de mi tema es actualmente:

'views_view_table__opportunities_mentions' => array(
  'arguments' => array(
    'view' => NULL, 
    'title' => NULL, 
    'header' => NULL, 
    'fields' => null, 
    'class' => null, 
    'row_classes' => null, 
    'rows' => null
  ),
  'template' => 'views-view-table--opportunities-mentions',
  'original hook' => 'views_view_table',
  'path' => drupal_get_path('module', 'smd') . '/theme',
),
4
lordg

La forma más fácil de ver los temas es editar la vista particular en cuestión y desplazarse hacia abajo para encontrar el enlace 'información del tema'. Esta pantalla le dirá exactamente qué vistas de plantillas de temas está usando actualmente y qué plantillas puede hacer en su tema para anular esta salida.

Esencialmente, todas las vistas son: anular el marcado predeterminado con algo que se adapte a sus diseños.

@see http://www.group42.ca/theming_views_2_the_basics para un excelente tutorial sobre temas de vistas

[~ # ~] editar [~ # ~]

Si desea un control total sobre el marcado producido, y para que esto sea portátil en todos los temas, la única opción que tiene es crear un módulo personalizado. Este módulo personalizado también podría tener componentes temáticos e incluso podría usar una vista para realizar cualquier SQL pesado (o simplemente podría escribir a mano el SQL)

Eche un vistazo a un módulo similar para comenzar, y lea hook_theme

3
wiifm

Es mucho mejor procesar previamente la vista.

Si desea anular solo una pantalla en particular, debe ser específico. Primero debe crear un archivo tpl.php para la vista. Puede averiguar cuál desea mirando la información del tema para su vista particular. Aquí hay un ejemplo:

enter image description here Luego, desea encontrar las sugerencias de plantilla de estilo de fila, que actualmente es 'Tabla':

enter image description here

views-view-table.tpl.php anulará every vista que tiene un estilo de tabla. Si desea ser específico solo para esta vista, querrá (en este caso) vistas-vista-tabla - frontpage.tpl.php - reemplaza 'frontpage' con cualquier sugerencia que tu vista te esté dando.

Realmente necesitas crear este archivo en tu directorio de temas. ¿Pero qué pones en este archivo? Bueno, simplemente haga clic en el enlace 'Salida de estilo' y se le presentará un código que simplemente puede copiar y pegar directamente en ese archivo.

Después de guardar este archivo, abra su template.php y cree un preprocesador para él. Tenga en cuenta que los preprocesadores no funcionan sin que el archivo esté presente en D6. Aquí hay un código auxiliar, de acuerdo con nuestro ejemplo:

function [theme-name]_preprocess_views_view_table__frontpage(&$vars) {
  // manipulate the $vars here
  ...
}

$ vars se pasa por referencia, por lo que solo tiene que manipular las teclas apropiadas para hacer lo que quiera.

0
sirkitree

En realidad, me parece correcto, utilicé el mismo código en mi módulo. Quería empaquetar mi archivo de plantilla con mi vista en el módulo. Como el sitio usa el tema de bartik regular para el administrador y no quería editar ese tema para agregar mi CSS.

Lo que creo que está mal es lo siguiente:

'views_view_table__opportunities_mentions' => array(
  'arguments' => array(
  'view' => NULL, 
  'title' => NULL, 
  'header' => NULL, 
  'fields' => null, 
  'class' => null, 
  'row_classes' => null, 
  'rows' => null
),
'template' => 'views-view-table--opportunities-mentions',
'base hook' => 'views_view_table',
'path' => drupal_get_path('module', 'smd') . '/theme',
),

Tenga en cuenta que en lugar de original hook, debería ser base hook. Esto es necesario para que la vista tenga sus propias funciones de preproceso para conectarse correctamente a su tpl. Si no lo configura correctamente, recogerá su tpl personalizado de todos modos, pero obtendrá todo tipo de errores sobre las variables faltantes o nulas en el tpl porque la función de preproceso no configuró ninguna de las variables que utiliza el tpl .

0
stockli

La función de tema que desea anular es una función de tema con plantilla. Esto significa que se llama a una función de preproceso, y las variables se pasan a la plantilla. Las funciones de preproceso son un poco diferentes, ya que solo se le pasa una sola variable: una matriz que contiene todas las variables, por lo que el orden de las variables es irrelevante.

Ver:

0
googletorp