Mi módulo proporciona un bloque simple que debe contener una lista desordenada con algunas imágenes. Desde una función de bloque, estoy devolviendo una matriz renderizable:
$block['content'] = array(
'list' => array(
'#theme' => 'item_list',
'#type' => 'ul',
'#attributes' => array('class' => 'foo1'),
'#items' => array(
/* ... what should go here? */
),
),
);
Me gustaría tener algunas matrices renderizables como elementos en la lista de elementos, pero parece que no puedo insertar ninguna matriz en la #items
matriz.
La documentación de la API theme_item_list de Drupal 7 dice:
elementos: una matriz de elementos que se mostrarán en la lista. Si un elemento es una cadena, se usa tal cual. Si un elemento es una matriz, entonces el elemento "datos" de la matriz se usa como el contenido del elemento de la lista. Si un elemento es una matriz con un elemento "hijos", esos hijos se muestran en una lista anidada. Todos los demás elementos se tratan como atributos del elemento del elemento de la lista.
Intenté usar los elementos "datos" y "hijos", pero obtengo vacíos <li>
o hay una palabra Array
dentro de ellos.
¿Cuál es la forma apropiada de hacer esto? ¿Theme_item_list es la solución correcta / actualizada?
'#items' => array('data' => 'my data')
no parece hacer nada más que'#items' => 'my data'
(mira el código para theme_item_list ).'children'
se usa específicamente para crear una lista anidada. No estoy seguro de por qué está configurado de esta manera.