Upload
ymbra
View
687
Download
1
Embed Size (px)
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.
Citation preview
TITLE:
PRESENTERS:
Field Types API: Field, widgets y formattersMiguel Ordóñez
© 2012_
Nombre: Miguel Ordóñez (mordonez)
Twitter: http://twitter.com/miguelordonez
Co-fundador de Ymbra
Quien Soy?
© 2012_
Agenda
Algunos conceptosQue es un FieldField API
Como crear tu propio fieldSchemaWidgetFormatterValidation
Algunas cosas a tener en cuentaDrupal 8Referencias
© 2012_
Algunos conceptos
© 2012_
Algunos conceptos: Que es un Field
Es una pieza de funcionalidad que se adjunta a una entidad (nodo, taxonomia, usuario, etc...)
© 2012_
Algunos conceptos: Field API
“The Field API allows custom data fields to be attached to Drupal entities and takes care of storing, loading, editing, and rendering field data” (http://api.drupal.org)
Field Attach API Field
Info API
Field Storage API
Field API bulk data
Field CRUD API
Field language
API
Field Types API
© 2012_
Un campo puede tener 3 piezas importantes
• Field type.
• Widget.
Algunos conceptos: Field Type, Widget, Formatter
© 2012_
y el Formatter.
Algunos conceptos: Field Type, Widget, Formatter
© 2012_
Ejemplo, Como crear un campo personalizado
© 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.
© 2012_
Creamos el módulo “participante”
Creamos los ficheros .info, .install i .module
Ejemplo, Como crear un campo personalizado
© 2012_
participante.info
Ejemplo, Como crear un campo personalizado: .info
© 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
© 2012_
participante.install (hook_field_schema)
Ejemplo, Como crear un campo personalizado: Field Type
Schema API: drupal.org/node/146843
© 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
© 2012_
hook_field_widget_info
Ejemplo, Como crear un campo personalizado: Widget
© 2012_
participante.module
Ejemplo, Como crear un campo personalizado: Widget
© 2012_
Para añadir una validación, utilizaremos #element_validate
Ejemplo, Como crear un campo personalizado: Widget
© 2012_
hook_field_is_empty
Ejemplo, Como crear un campo personalizado: Widget
© 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
© 2012_
Ejemplo, Como crear un campo personalizado: Formatter
hook_field_formatter_info
© 2012_
Ejemplo, Como crear un campo personalizado: Formatter
hook_field_formatter_view
© 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
© 2012_
Ejemplo, Como crear un campo personalizado: Formatter
hook_field_formatter_settings_form
© 2012_
Ejemplo, Como crear un campo personalizado: Formatter
hook_field_formatter_settings_summary
© 2012_
Algunos ejemplos de formatters: http://customformatters.com
Ejemplo, Como crear un campo personalizado: Formatter
© 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
© 2012_
CMI
Widget y formatter como plugins en drupal 8
Field API vs OO
Drupal 8?
© 2012_
Text
• text
Drupal 8?
* Overview of the pluginification of Field API in Drupal 8: http://drupalsun.com/node/32450
© 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
© 2012_
MUCHAS GRACIAS