field types api: field, widgets y formatters

31
TITLE: PRESENTERS: Field Types API: Field, widgets y formatters Miguel Ordóñez

Upload: ymbra

Post on 14-Dec-2014

684 views

Category:

Documents


1 download

DESCRIPTION

Desarrollar tipos de campos (field types) en Drupal es sencillo una vez se conoce las bases. Crear tu propio field en ocasiones puede ser una mejora de usabilidad y/o rendimiento para tu proyecto. Si quieres aprender a crear tu propio field, conocer mejor Field Types API y ver un poco de código, esta es tu sesión.

TRANSCRIPT

Page 2: Field Types API: Field, widgets y formatters

© 2012_

Nombre: Miguel Ordóñez (mordonez)

Twitter: http://twitter.com/miguelordonez

Co-fundador de Ymbra

Quien Soy?

Page 3: Field Types API: Field, widgets y formatters

© 2012_

Agenda

Algunos conceptosQue es un FieldField API

Como crear tu propio fieldSchemaWidgetFormatterValidation

Algunas cosas a tener en cuentaDrupal 8Referencias

Page 4: Field Types API: Field, widgets y formatters

© 2012_

Algunos conceptos

Page 5: Field Types API: Field, widgets y formatters

© 2012_

Algunos conceptos: Que es un Field

Es una pieza de funcionalidad que se adjunta a una entidad (nodo, taxonomia, usuario, etc...)

Page 7: Field Types API: Field, widgets y formatters

© 2012_

Un campo puede tener 3 piezas importantes

• Field type.

• Widget.

Algunos conceptos: Field Type, Widget, Formatter

Page 8: Field Types API: Field, widgets y formatters

© 2012_

y el Formatter.

Algunos conceptos: Field Type, Widget, Formatter

Page 9: Field Types API: Field, widgets y formatters

© 2012_

Ejemplo, Como crear un campo personalizado

Page 10: Field Types API: Field, widgets y formatters

© 2012_

Ejemplo, Como crear un campo personalizado

Vamos a crear un campo absurdo como ejemplo, lo utilizaremos para añadir participantes de la drupalcamp.

El campo tendrá los campos: nombre, apellidos y el enlace al perfil de drupal.org

Podremos decidir si queremos enlazar el participante a su perfil de drupal.

Page 11: Field Types API: Field, widgets y formatters

© 2012_

Creamos el módulo “participante”

Creamos los ficheros .info, .install i .module

Ejemplo, Como crear un campo personalizado

Page 12: Field Types API: Field, widgets y formatters

© 2012_

participante.info

Ejemplo, Como crear un campo personalizado: .info

Page 13: Field Types API: Field, widgets y formatters

© 2012_

participante.module (hook_field_info)

Ejemplo, Como crear un campo personalizado: Field Type

* los literales mejor en inglés. Pero para el ejemplo se pusieron en español :-P

Page 15: Field Types API: Field, widgets y formatters

© 2012_

Crear el Widget d’entrada.

Definimos la infomación básica del widget por medio hook_field_widget_info

Utilizamos hook_field_widget_form para definir el formulario d’entrada del campo.

Utilizamos hook_field_is_empty para validar que nuestro campo no está vacio.

Ejemplo, Como crear un campo personalizado: Widget

Page 16: Field Types API: Field, widgets y formatters

© 2012_

hook_field_widget_info

Ejemplo, Como crear un campo personalizado: Widget

Page 17: Field Types API: Field, widgets y formatters

© 2012_

participante.module

Ejemplo, Como crear un campo personalizado: Widget

Page 18: Field Types API: Field, widgets y formatters

© 2012_

Para añadir una validación, utilizaremos #element_validate

Ejemplo, Como crear un campo personalizado: Widget

Page 19: Field Types API: Field, widgets y formatters

© 2012_

hook_field_is_empty

Ejemplo, Como crear un campo personalizado: Widget

Page 20: Field Types API: Field, widgets y formatters

© 2012_

Crearemos el formatter para mostrar los valores del campo.

Utilizaremos hook_field_formatter_info para definir el formatter.

Utilizaremos hook_field_formatter_view para definir la lógica de salida.

Ejemplo, Como crear un campo personalizado: Formatter

Page 21: Field Types API: Field, widgets y formatters

© 2012_

Ejemplo, Como crear un campo personalizado: Formatter

hook_field_formatter_info

Page 22: Field Types API: Field, widgets y formatters

© 2012_

Ejemplo, Como crear un campo personalizado: Formatter

hook_field_formatter_view

Page 23: Field Types API: Field, widgets y formatters

© 2012_

Utilizaremos hook_field_formatter_settings_summary y hook_field_formatter_settings_form para añadir elementos configurables del formatter.

Ejemplo, Como crear un campo personalizado: Formatter

Page 24: Field Types API: Field, widgets y formatters

© 2012_

Ejemplo, Como crear un campo personalizado: Formatter

hook_field_formatter_settings_form

Page 25: Field Types API: Field, widgets y formatters

© 2012_

Ejemplo, Como crear un campo personalizado: Formatter

hook_field_formatter_settings_summary

Page 26: Field Types API: Field, widgets y formatters

© 2012_

Algunos ejemplos de formatters: http://customformatters.com

Ejemplo, Como crear un campo personalizado: Formatter

Page 27: Field Types API: Field, widgets y formatters

© 2012_

Un Field puede tener más de un formatter o widget a la vez.

Se pueden crear campos personalizados sin crear widgets y viceversa.

Algunas cosas a tener en cuenta

Page 28: Field Types API: Field, widgets y formatters

© 2012_

CMI

Widget y formatter como plugins en drupal 8

Field API vs OO

Drupal 8?

Page 29: Field Types API: Field, widgets y formatters

© 2012_

Text

• text

Drupal 8?

* Overview of the pluginification of Field API in Drupal 8: http://drupalsun.com/node/32450

Page 30: Field Types API: Field, widgets y formatters

© 2012_

http://api.drupal.org

Field Types API: http://api.drupal.org/api/drupal/modules--field--field.api.php/group/field_types/7

Examples for Developers: http://drupal.org/project/examples

http://customformatters.com

Overview of the pluginification of Field API in Drupal 8, http://drupalsun.com/node/32450

Poutine Maker: An Introduction to the Field API in Drupal 7 (Part 1) http://evolvingweb.ca/story/poutine-maker-introduction-field-api-drupal-7-part-1

Field API - Field UI - Drupal 8

Form API Reference. http://api.drupal.org/api/drupal/developer!topics!forms_api_reference.html/7

Referencias

Page 31: Field Types API: Field, widgets y formatters

© 2012_

MUCHAS GRACIAS