SlideShare una empresa de Scribd logo
Arrays renderizables
y Estándares de codificación en Drupal
¿Que es un Array renderizable?

Es una estructura de datos asociativa y
estandarizada que es utilizada en el sistema de
renderizado de temas.
¿Cuál es su finalidad?

Otorgar una salida como texto plano (por lo
general HTML) por medio de sus datos de
entrada.
¿Qué tan compleja puede ser la
estructura?
¿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.
¿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.
¿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.
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.
¿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
¡No reinventes la rueda!

• theme_image

• theme_link

• theme_html_tag

• theme_item_list

• theme_links

• theme_menu_link

• theme_table

• theme_menu_tree

https://api.drupal.org/api/drupal/functions
Estándares de codificación


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


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:


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');


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
Referencias:
•

Render arrays:
•
•

•

Theming:
•
•

•

https://drupal.org/node/930760
https://api.drupal.org/api/drupal/includes%21
common.inc/function/drupal_render/7
https://drupal.org/node/722174
https://api.drupal.org/api/drupal/modules!sys
tem!system.api.php/function/hook_theme/7

Coding standars
•

https://drupal.org/coding-standards
¡Gracias!
Walter Herrera
walt.herrera@gmail.com
walter.h@3chamz.com
Cel.: 5017-0261

Más contenido relacionado

La actualidad más candente

Curso de pl sql básico
Curso de pl sql básicoCurso de pl sql básico
Curso de pl sql básico
Byron Quisquinay
 
Presentacion Sql
Presentacion SqlPresentacion Sql
Presentacion Sqlguest5f0fa0
 
Diapositivas de acceso a datos ado.net
Diapositivas de acceso a datos ado.netDiapositivas de acceso a datos ado.net
Diapositivas de acceso a datos ado.net
TAPIA SILVA EVELINA
 
Yungan geovanny 6_s_ti_2
Yungan geovanny 6_s_ti_2Yungan geovanny 6_s_ti_2
Yungan geovanny 6_s_ti_2
GeovannyYungan
 
Sql DDL Lenguaje de definición de datos
Sql DDL Lenguaje de definición de datosSql DDL Lenguaje de definición de datos
Sql DDL Lenguaje de definición de datosjosecuartas
 
Arquitectura N-Capas y ADo.NET
Arquitectura N-Capas y ADo.NETArquitectura N-Capas y ADo.NET
Arquitectura N-Capas y ADo.NET
Roberto Taborda
 
lenguaje transact
lenguaje transactlenguaje transact
lenguaje transact
bandida123
 
Orm presentación final
Orm presentación finalOrm presentación final
Orm presentación final
Helenio Corvacho
 
Estructura de datos - Unidad 1: Introducción a las estructuras de datos
Estructura de datos - Unidad 1: Introducción a las estructuras de datosEstructura de datos - Unidad 1: Introducción a las estructuras de datos
Estructura de datos - Unidad 1: Introducción a las estructuras de datos
José Antonio Sandoval Acosta
 
Examen Sandra U Israel Oracle
Examen Sandra U Israel OracleExamen Sandra U Israel Oracle
Examen Sandra U Israel Oracle
universidad israel
 
Guia programacionwebbasicophp
Guia programacionwebbasicophpGuia programacionwebbasicophp
Guia programacionwebbasicophp
lissette_torrealba
 
screencast y bases de datos
screencast y bases de datos screencast y bases de datos
screencast y bases de datos
Cecytem Gráfico
 
Hibernate framework
Hibernate frameworkHibernate framework
Hibernate framework
Krlos Silva
 
Intro sql y plsql
Intro sql y plsqlIntro sql y plsql
Intro sql y plsql
olsoftware
 
MVC en CakePHP 2.0
MVC en CakePHP 2.0MVC en CakePHP 2.0
MVC en CakePHP 2.0
Saúl Vázquez
 
Guia herramientas de bd
Guia herramientas de bdGuia herramientas de bd
Guia herramientas de bd
lissette_torrealba
 
Curso de pl sql básico
Curso de pl sql básicoCurso de pl sql básico
Curso de pl sql básico
Byron Quisquinay
 

La actualidad más candente (20)

Curso de pl sql básico
Curso de pl sql básicoCurso de pl sql básico
Curso de pl sql básico
 
Presentacion Sql
Presentacion SqlPresentacion Sql
Presentacion Sql
 
Diapositivas de acceso a datos ado.net
Diapositivas de acceso a datos ado.netDiapositivas de acceso a datos ado.net
Diapositivas de acceso a datos ado.net
 
Yungan geovanny 6_s_ti_2
Yungan geovanny 6_s_ti_2Yungan geovanny 6_s_ti_2
Yungan geovanny 6_s_ti_2
 
Sql DDL Lenguaje de definición de datos
Sql DDL Lenguaje de definición de datosSql DDL Lenguaje de definición de datos
Sql DDL Lenguaje de definición de datos
 
Arquitectura N-Capas y ADo.NET
Arquitectura N-Capas y ADo.NETArquitectura N-Capas y ADo.NET
Arquitectura N-Capas y ADo.NET
 
lenguaje transact
lenguaje transactlenguaje transact
lenguaje transact
 
Orm presentación final
Orm presentación finalOrm presentación final
Orm presentación final
 
Estructura de datos - Unidad 1: Introducción a las estructuras de datos
Estructura de datos - Unidad 1: Introducción a las estructuras de datosEstructura de datos - Unidad 1: Introducción a las estructuras de datos
Estructura de datos - Unidad 1: Introducción a las estructuras de datos
 
Examen Sandra U Israel Oracle
Examen Sandra U Israel OracleExamen Sandra U Israel Oracle
Examen Sandra U Israel Oracle
 
Sql
SqlSql
Sql
 
Guia programacionwebbasicophp
Guia programacionwebbasicophpGuia programacionwebbasicophp
Guia programacionwebbasicophp
 
screencast y bases de datos
screencast y bases de datos screencast y bases de datos
screencast y bases de datos
 
Qué es xml
Qué es xmlQué es xml
Qué es xml
 
Hibernate framework
Hibernate frameworkHibernate framework
Hibernate framework
 
Intro sql y plsql
Intro sql y plsqlIntro sql y plsql
Intro sql y plsql
 
CakePHP
CakePHPCakePHP
CakePHP
 
MVC en CakePHP 2.0
MVC en CakePHP 2.0MVC en CakePHP 2.0
MVC en CakePHP 2.0
 
Guia herramientas de bd
Guia herramientas de bdGuia herramientas de bd
Guia herramientas de bd
 
Curso de pl sql básico
Curso de pl sql básicoCurso de pl sql básico
Curso de pl sql básico
 

Similar a Arrays renderizables y Estándares de codificación en Drupal

EXPO PERL UTT
EXPO PERL UTTEXPO PERL UTT
EXPO PERL UTT
Casa Marzam
 
Introduccion A Php
Introduccion A PhpIntroduccion A Php
Introduccion A Phputs
 
Introduccion A Php
Introduccion A PhpIntroduccion A Php
Introduccion A Phputs
 
Introduccion A Php
Introduccion A PhpIntroduccion A Php
Introduccion A Phputs
 
Como desarrollar-un-sistema-en-php-paso-a-paso
Como desarrollar-un-sistema-en-php-paso-a-pasoComo desarrollar-un-sistema-en-php-paso-a-paso
Como desarrollar-un-sistema-en-php-paso-a-pasocampucss
 
Zope Page Templates
Zope Page TemplatesZope Page Templates
Zope Page Templates
CodeSyntax
 
Tutorial de cakePHP itst
Tutorial de cakePHP itstTutorial de cakePHP itst
Tutorial de cakePHP itst
omicx
 
3 d cruz_borges_aime_b1examen
3 d cruz_borges_aime_b1examen3 d cruz_borges_aime_b1examen
3 d cruz_borges_aime_b1examen
michelleortegon2
 
Uso de las clases iostream
Uso de las clases iostreamUso de las clases iostream
Uso de las clases iostream
Tensor
 
Presentacion de la Estructura basica para_c++
Presentacion de la Estructura basica para_c++Presentacion de la Estructura basica para_c++
Presentacion de la Estructura basica para_c++
ValeriaBerrones
 
Estructura basica para_c_
Estructura basica para_c_Estructura basica para_c_
Estructura basica para_c_
Jesus22barrera
 
Biblioteca
BibliotecaBiblioteca
Biblioteca
Maztherprozh
 
Tutorial en Apache Spark - Clasificando tweets en realtime
Tutorial en Apache Spark - Clasificando tweets en realtimeTutorial en Apache Spark - Clasificando tweets en realtime
Tutorial en Apache Spark - Clasificando tweets en realtime
Socialmetrix
 
Intrucciones basicas para C++
Intrucciones basicas para C++Intrucciones basicas para C++
Intrucciones basicas para C++
ManuelHernandez480
 
INSTRUCCIONES BASICAS C++
INSTRUCCIONES BASICAS C++INSTRUCCIONES BASICAS C++
INSTRUCCIONES BASICAS C++
KatherinBarrios17
 
Trabajo tutorial de visual C++
Trabajo tutorial de visual C++Trabajo tutorial de visual C++
Trabajo tutorial de visual C++
Bryangio2002
 

Similar a Arrays renderizables y Estándares de codificación en Drupal (20)

EXPO PERL UTT
EXPO PERL UTTEXPO PERL UTT
EXPO PERL UTT
 
Tutorial de php
Tutorial de phpTutorial de php
Tutorial de php
 
Introduccion A Php
Introduccion A PhpIntroduccion A Php
Introduccion A Php
 
Introduccion A Php
Introduccion A PhpIntroduccion A Php
Introduccion A Php
 
Introduccion A Php
Introduccion A PhpIntroduccion A Php
Introduccion A Php
 
Como desarrollar-un-sistema-en-php-paso-a-paso
Como desarrollar-un-sistema-en-php-paso-a-pasoComo desarrollar-un-sistema-en-php-paso-a-paso
Como desarrollar-un-sistema-en-php-paso-a-paso
 
Zope Page Templates
Zope Page TemplatesZope Page Templates
Zope Page Templates
 
Curso Bash 3
Curso Bash 3Curso Bash 3
Curso Bash 3
 
Tutorial de cakePHP itst
Tutorial de cakePHP itstTutorial de cakePHP itst
Tutorial de cakePHP itst
 
3 d cruz_borges_aime_b1examen
3 d cruz_borges_aime_b1examen3 d cruz_borges_aime_b1examen
3 d cruz_borges_aime_b1examen
 
Uso de las clases iostream
Uso de las clases iostreamUso de las clases iostream
Uso de las clases iostream
 
Presentacion de la Estructura basica para_c++
Presentacion de la Estructura basica para_c++Presentacion de la Estructura basica para_c++
Presentacion de la Estructura basica para_c++
 
Estructura basica para_c_
Estructura basica para_c_Estructura basica para_c_
Estructura basica para_c_
 
Manual+php+básico
Manual+php+básicoManual+php+básico
Manual+php+básico
 
Biblioteca
BibliotecaBiblioteca
Biblioteca
 
Curso php y_my_sql
Curso php y_my_sqlCurso php y_my_sql
Curso php y_my_sql
 
Tutorial en Apache Spark - Clasificando tweets en realtime
Tutorial en Apache Spark - Clasificando tweets en realtimeTutorial en Apache Spark - Clasificando tweets en realtime
Tutorial en Apache Spark - Clasificando tweets en realtime
 
Intrucciones basicas para C++
Intrucciones basicas para C++Intrucciones basicas para C++
Intrucciones basicas para C++
 
INSTRUCCIONES BASICAS C++
INSTRUCCIONES BASICAS C++INSTRUCCIONES BASICAS C++
INSTRUCCIONES BASICAS C++
 
Trabajo tutorial de visual C++
Trabajo tutorial de visual C++Trabajo tutorial de visual C++
Trabajo tutorial de visual C++
 

Último

Trabajo Coding For kids 1 y 2 grado 9-4.pdf
Trabajo Coding For kids 1 y 2 grado 9-4.pdfTrabajo Coding For kids 1 y 2 grado 9-4.pdf
Trabajo Coding For kids 1 y 2 grado 9-4.pdf
cj3806354
 
(PROYECTO) Límites entre el Arte, los Medios de Comunicación y la Informática
(PROYECTO) Límites entre el Arte, los Medios de Comunicación y la Informática(PROYECTO) Límites entre el Arte, los Medios de Comunicación y la Informática
(PROYECTO) Límites entre el Arte, los Medios de Comunicación y la Informática
vazquezgarciajesusma
 
Conceptos Básicos de Programación Proyecto
Conceptos Básicos de Programación ProyectoConceptos Básicos de Programación Proyecto
Conceptos Básicos de Programación Proyecto
cofferub
 
Diagrama de flujo basada en la reparacion de automoviles.pdf
Diagrama de flujo basada en la reparacion de automoviles.pdfDiagrama de flujo basada en la reparacion de automoviles.pdf
Diagrama de flujo basada en la reparacion de automoviles.pdf
ManuelCampos464987
 
Estructuras básicas_ conceptos básicos de programación.pdf
Estructuras básicas_  conceptos básicos de programación.pdfEstructuras básicas_  conceptos básicos de programación.pdf
Estructuras básicas_ conceptos básicos de programación.pdf
ItsSofi
 
Conceptos Básicos de Programación L.D 10-5
Conceptos Básicos de Programación L.D 10-5Conceptos Básicos de Programación L.D 10-5
Conceptos Básicos de Programación L.D 10-5
JulyMuoz18
 
ACTIVIDAD DE TECNOLOGÍA AÑO LECTIVO 2024
ACTIVIDAD DE TECNOLOGÍA AÑO LECTIVO 2024ACTIVIDAD DE TECNOLOGÍA AÑO LECTIVO 2024
ACTIVIDAD DE TECNOLOGÍA AÑO LECTIVO 2024
DanielErazoMedina
 
Posnarrativas en la era de la IA generativa
Posnarrativas en la era de la IA generativaPosnarrativas en la era de la IA generativa
Posnarrativas en la era de la IA generativa
Fernando Villares
 
Las lámparas de alta intensidad de descarga o lámparas de descarga de alta in...
Las lámparas de alta intensidad de descarga o lámparas de descarga de alta in...Las lámparas de alta intensidad de descarga o lámparas de descarga de alta in...
Las lámparas de alta intensidad de descarga o lámparas de descarga de alta in...
espinozaernesto427
 
Estructuras Básicas_ Conceptos Basicos De Programacion.pdf
Estructuras Básicas_ Conceptos Basicos De Programacion.pdfEstructuras Básicas_ Conceptos Basicos De Programacion.pdf
Estructuras Básicas_ Conceptos Basicos De Programacion.pdf
IsabellaRubio6
 
DESARROLO DE HABILIDADES DE PENSAMIENTO.pdf
DESARROLO DE HABILIDADES DE PENSAMIENTO.pdfDESARROLO DE HABILIDADES DE PENSAMIENTO.pdf
DESARROLO DE HABILIDADES DE PENSAMIENTO.pdf
marianabz2403
 
(PROYECTO) Límites entre el Arte, los Medios de Comunicación y la Informática
(PROYECTO) Límites entre el Arte, los Medios de Comunicación y la Informática(PROYECTO) Límites entre el Arte, los Medios de Comunicación y la Informática
(PROYECTO) Límites entre el Arte, los Medios de Comunicación y la Informática
vazquezgarciajesusma
 
INFORME DE LAS FICHAS.docx.pdf LICEO DEPARTAMENTAL
INFORME DE LAS FICHAS.docx.pdf LICEO DEPARTAMENTALINFORME DE LAS FICHAS.docx.pdf LICEO DEPARTAMENTAL
INFORME DE LAS FICHAS.docx.pdf LICEO DEPARTAMENTAL
CrystalRomero18
 
EduFlex, una educación accesible para quienes no entienden en clases
EduFlex, una educación accesible para quienes no entienden en clasesEduFlex, una educación accesible para quienes no entienden en clases
EduFlex, una educación accesible para quienes no entienden en clases
PABLOCESARGARZONBENI
 
Semana 10_MATRIZ IPER_UPN_ADM_03.06.2024
Semana 10_MATRIZ IPER_UPN_ADM_03.06.2024Semana 10_MATRIZ IPER_UPN_ADM_03.06.2024
Semana 10_MATRIZ IPER_UPN_ADM_03.06.2024
CesarPazosQuispe
 
Conceptos Básicos de Programación. Tecnología
Conceptos Básicos de Programación. TecnologíaConceptos Básicos de Programación. Tecnología
Conceptos Básicos de Programación. Tecnología
coloradxmaria
 
Desarrollo de Habilidades de Pensamiento.docx (3).pdf
Desarrollo de Habilidades de Pensamiento.docx (3).pdfDesarrollo de Habilidades de Pensamiento.docx (3).pdf
Desarrollo de Habilidades de Pensamiento.docx (3).pdf
AlejandraCasallas7
 
Desarrollo de Habilidades de Pensamiento.
Desarrollo de Habilidades de Pensamiento.Desarrollo de Habilidades de Pensamiento.
Desarrollo de Habilidades de Pensamiento.
AlejandraCasallas7
 
TRABAJO DESARROLLO DE HABILIDADES DE PENSAMIENTO.pdf
TRABAJO DESARROLLO DE HABILIDADES DE PENSAMIENTO.pdfTRABAJO DESARROLLO DE HABILIDADES DE PENSAMIENTO.pdf
TRABAJO DESARROLLO DE HABILIDADES DE PENSAMIENTO.pdf
thomasdcroz38
 
Diagrama de flujo - ingenieria de sistemas 5to semestre
Diagrama de flujo - ingenieria de sistemas 5to semestreDiagrama de flujo - ingenieria de sistemas 5to semestre
Diagrama de flujo - ingenieria de sistemas 5to semestre
DiegoCampos433849
 

Último (20)

Trabajo Coding For kids 1 y 2 grado 9-4.pdf
Trabajo Coding For kids 1 y 2 grado 9-4.pdfTrabajo Coding For kids 1 y 2 grado 9-4.pdf
Trabajo Coding For kids 1 y 2 grado 9-4.pdf
 
(PROYECTO) Límites entre el Arte, los Medios de Comunicación y la Informática
(PROYECTO) Límites entre el Arte, los Medios de Comunicación y la Informática(PROYECTO) Límites entre el Arte, los Medios de Comunicación y la Informática
(PROYECTO) Límites entre el Arte, los Medios de Comunicación y la Informática
 
Conceptos Básicos de Programación Proyecto
Conceptos Básicos de Programación ProyectoConceptos Básicos de Programación Proyecto
Conceptos Básicos de Programación Proyecto
 
Diagrama de flujo basada en la reparacion de automoviles.pdf
Diagrama de flujo basada en la reparacion de automoviles.pdfDiagrama de flujo basada en la reparacion de automoviles.pdf
Diagrama de flujo basada en la reparacion de automoviles.pdf
 
Estructuras básicas_ conceptos básicos de programación.pdf
Estructuras básicas_  conceptos básicos de programación.pdfEstructuras básicas_  conceptos básicos de programación.pdf
Estructuras básicas_ conceptos básicos de programación.pdf
 
Conceptos Básicos de Programación L.D 10-5
Conceptos Básicos de Programación L.D 10-5Conceptos Básicos de Programación L.D 10-5
Conceptos Básicos de Programación L.D 10-5
 
ACTIVIDAD DE TECNOLOGÍA AÑO LECTIVO 2024
ACTIVIDAD DE TECNOLOGÍA AÑO LECTIVO 2024ACTIVIDAD DE TECNOLOGÍA AÑO LECTIVO 2024
ACTIVIDAD DE TECNOLOGÍA AÑO LECTIVO 2024
 
Posnarrativas en la era de la IA generativa
Posnarrativas en la era de la IA generativaPosnarrativas en la era de la IA generativa
Posnarrativas en la era de la IA generativa
 
Las lámparas de alta intensidad de descarga o lámparas de descarga de alta in...
Las lámparas de alta intensidad de descarga o lámparas de descarga de alta in...Las lámparas de alta intensidad de descarga o lámparas de descarga de alta in...
Las lámparas de alta intensidad de descarga o lámparas de descarga de alta in...
 
Estructuras Básicas_ Conceptos Basicos De Programacion.pdf
Estructuras Básicas_ Conceptos Basicos De Programacion.pdfEstructuras Básicas_ Conceptos Basicos De Programacion.pdf
Estructuras Básicas_ Conceptos Basicos De Programacion.pdf
 
DESARROLO DE HABILIDADES DE PENSAMIENTO.pdf
DESARROLO DE HABILIDADES DE PENSAMIENTO.pdfDESARROLO DE HABILIDADES DE PENSAMIENTO.pdf
DESARROLO DE HABILIDADES DE PENSAMIENTO.pdf
 
(PROYECTO) Límites entre el Arte, los Medios de Comunicación y la Informática
(PROYECTO) Límites entre el Arte, los Medios de Comunicación y la Informática(PROYECTO) Límites entre el Arte, los Medios de Comunicación y la Informática
(PROYECTO) Límites entre el Arte, los Medios de Comunicación y la Informática
 
INFORME DE LAS FICHAS.docx.pdf LICEO DEPARTAMENTAL
INFORME DE LAS FICHAS.docx.pdf LICEO DEPARTAMENTALINFORME DE LAS FICHAS.docx.pdf LICEO DEPARTAMENTAL
INFORME DE LAS FICHAS.docx.pdf LICEO DEPARTAMENTAL
 
EduFlex, una educación accesible para quienes no entienden en clases
EduFlex, una educación accesible para quienes no entienden en clasesEduFlex, una educación accesible para quienes no entienden en clases
EduFlex, una educación accesible para quienes no entienden en clases
 
Semana 10_MATRIZ IPER_UPN_ADM_03.06.2024
Semana 10_MATRIZ IPER_UPN_ADM_03.06.2024Semana 10_MATRIZ IPER_UPN_ADM_03.06.2024
Semana 10_MATRIZ IPER_UPN_ADM_03.06.2024
 
Conceptos Básicos de Programación. Tecnología
Conceptos Básicos de Programación. TecnologíaConceptos Básicos de Programación. Tecnología
Conceptos Básicos de Programación. Tecnología
 
Desarrollo de Habilidades de Pensamiento.docx (3).pdf
Desarrollo de Habilidades de Pensamiento.docx (3).pdfDesarrollo de Habilidades de Pensamiento.docx (3).pdf
Desarrollo de Habilidades de Pensamiento.docx (3).pdf
 
Desarrollo de Habilidades de Pensamiento.
Desarrollo de Habilidades de Pensamiento.Desarrollo de Habilidades de Pensamiento.
Desarrollo de Habilidades de Pensamiento.
 
TRABAJO DESARROLLO DE HABILIDADES DE PENSAMIENTO.pdf
TRABAJO DESARROLLO DE HABILIDADES DE PENSAMIENTO.pdfTRABAJO DESARROLLO DE HABILIDADES DE PENSAMIENTO.pdf
TRABAJO DESARROLLO DE HABILIDADES DE PENSAMIENTO.pdf
 
Diagrama de flujo - ingenieria de sistemas 5to semestre
Diagrama de flujo - ingenieria de sistemas 5to semestreDiagrama de flujo - ingenieria de sistemas 5to semestre
Diagrama de flujo - ingenieria de sistemas 5to semestre
 

Arrays renderizables y Estándares de codificación en Drupal

  • 1. Arrays renderizables y Estándares de codificación en Drupal
  • 2. ¿Que es un Array renderizable? Es una estructura de datos asociativa y estandarizada que es utilizada en el sistema de renderizado de temas.
  • 3. ¿Cuál es su finalidad? Otorgar una salida como texto plano (por lo general HTML) por medio de sus datos de entrada.
  • 4.
  • 5. ¿Qué tan compleja puede ser la estructura?
  • 6.
  • 7.
  • 8.
  • 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
  • 16.
  • 17. ¡No reinventes la rueda! • theme_image • theme_link • theme_html_tag • theme_item_list • theme_links • theme_menu_link • theme_table • theme_menu_tree https://api.drupal.org/api/drupal/functions
  • 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