Los arrays renderizables son estructuras de datos estandarizadas utilizadas en el sistema de renderizado de temas en Drupal para proporcionar una salida de texto (generalmente HTML) a partir de datos de entrada. Esto permite separar el contenido de la presentación y facilita el desarrollo ágil. Los arrays renderizables siguen convenciones como el uso de propiedades que comienzan con "#" para influir en el renderizado y elementos hijos procesados recursivamente. También existen estándares de codificación para Drupal que promueven la legibilidad y mantenibilidad del
9. ¿Porqué lo hicieron de esta forma?
Antes de drupal 7 se podían alterar algunas cosas como por
ejemplo, los formularios (con hook_form_alter()); pero
muchas otras cosas que necesitaban ser alteradas por un
modulo o tema ya se encontraban renderizados como HTML,
antes de poder hacer cualquier cosa racional con ellos.
En drupal 7 y posteriores, un modulo o tema, puede hacer
uso del hook_page_alter (existen otros hooks) que permite
alterar precisamente en el ultimo momento, la disposición o
contenido de la página.
10.
11. ¿De que otra forma nos puede
ayudar?
Programadores
Concentrarnos más en la lógica de la
aplicación.
Lograr separar de mejor forma el
contenido o datos de la
presentación.
Proveerles a los frontends solo lo
que necesitan.
•
•
Frontends
Concentrarse más en la
presentación.
No hay necesidad de hacer una
manipulación exhaustiva de los
datos para obtener mas datos.
Código HTML más limpio.
Procesos más ágiles de desarrollo
Facilidad al momento del mantenimiento o corrección de errores.
12. ¿Cómo esta estandarizado el
array renderizable?
El array renderizable esta conformado por dos tipos de
pares llave/valor:
•
•
Propiedades: se identifican por el símbolo # y sus
valores influyen en como el array es renderizado.
Hijos: son elementos cuyas llaves no empiezan con
el símbolo # y sus valores a su vez, pueden ser
arrays renderizables por si mismos y estos serán
procesados durante el renderizado del array padre.
13.
14. Algunas propiedades comunes
#type – Si el array es un elemento, este cargara las propiedades por defecto del
elemento.
#markup – Indica que su valor es un markup (HTML).
#prefix/#suffix – Texto o etiqueta HTML que se va a colocar como prefijo o sufijo.
#pre_render – Su valor es un array de funciones que serán llamadas para alterar el
presente array antes de ser renderizado.
#post_render – Su valor es un array de funciones que serán llamadas después de
ser rederizado el array (estas reciben como parámetros el HTML renderizado y el
mismo array a ser rederizado).
#theme – El hook (función) responsable de renderizar el array, incluyendo a los hijos.
#theme_wrappers – Un array de hooks de temas, que se encargaran de envolver el
HTML renderizado dentro de otro código HTML.
#cache – Marca el array para permanecer en cache y su tiempo de expiración.
15. ¿Podemos crear nuestros propios
themes?
hook_theme($existing, $type, $theme, $path)
Devuelve un array asociativo con información del theme
hook, las llaves externas son los nombres de los hooks y
sus valores son arrays conteniendo información sobre el
hook.
• variables
• render element
• file
• path
• template
• function
• base hook
• pattern
• preprocess fuctions
• override preprocess function
• type
• theme path
19.
Sangrías y espacios en blanco:
Usar sangría con 2 espacios en blanco sin usar tabuladores.
Los archivos deben finalizar con el símbolo de nueva línea “n” (Unix) y
no “rn” (Windows)
Operadores:
Todos los operadores binarios deben de contener un espacio en blanco
antes y después de sus operadores.
Ejemplo:
$foo = $bar Si
$fo=$bar
No
Casting
Colocar un espacio en blanco entre el tipo y la variable a aplicar el
casting.
Ejemplo:
(int) $var
20.
Estructuras de control:
Usar siempre llave inclusive en los casos que sea opcional.
Colocar un espacio en blanco entre el nombre de la estructura de
control y el paréntesis que abre, esto con la finalidad de distinguirlas
de las llamadas a funciones.
En el caso de la estructura control “IF” usar siempre “ELSEIF” en vez
de “ELSE IF”
Estructuras de control alternativas para
templates:
21.
Llamadas a funciones:
Estas deben llamarse sin espacios entre el nombre de la función, el
paréntesis que abre y el primer parámetro.
$var = foo($bar, $baz, $quux);
Declaraciones de funciones:
Argumentos con valores por default deben de ir al final de la lista.
Arrays
Los elementos de un array deben de ir separados por un espacio en
blanco después de la coma y un espacio antes y después del operador
de asociación “=>”
$some_array = array('hello', 'world', 'foo' => 'bar');
22.
Si la declaración de un array supera los 80 caracteres, cada elemento
del array debe de estar en su propia línea e identado en un nivel.
$form['title'] = array(
'#type' => 'textfield',
'#title' => t('Title'),
'#size' => 60,
'#maxlength' => 128,
'#description' => t('The title of your node.'),
);
https://drupal.org/coding-standards