SlideShare una empresa de Scribd logo
1 de 31
Descargar para leer sin conexión
TITLE:    Field Types API: Field,
              widgets y formatters
PRESENTERS:   Miguel Ordóñez
Quien Soy?

    Nombre: Miguel Ordóñez (mordonez)

    Twitter: http://twitter.com/miguelordonez

    Co-fundador de Ymbra




© 2012_
Agenda
    Algunos conceptos
      Que es un Field
      Field API
    Como crear tu propio field
      Schema
      Widget
      Formatter
      Validation
    Algunas cosas a tener en cuenta
    Drupal 8
    Referencias




© 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
                Field                  Info API
              language
                 API        Field
                          CRUD API
               Field                      Field
            Storage API                 Types API
                           Field API
                           bulk data


© 2012_
Algunos conceptos: Field Type, Widget, Formatter

    Un campo puede tener 3 piezas importantes
          • Field type.




          • Widget.




© 2012_
Algunos conceptos: Field Type, Widget, Formatter

    y el 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
© 2012_
                                de drupal.
Ejemplo, Como crear un campo personalizado




    Creamos el módulo
    “participante”
    Creamos los
    ficheros .info, .install
    i .module




© 2012_
Ejemplo, Como crear un campo personalizado:   .info

    participante.info




© 2012_
Ejemplo, Como crear un campo personalizado:                                          Field Type

    participante.module (hook_field_info)




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



© 2012_
Ejemplo, Como crear un campo personalizado: Field   Type

    participante.install (hook_field_schema)




                                        Schema API:
                                        drupal.org/node/
                                        146843




© 2012_
Ejemplo, Como crear un campo personalizado:   Widget

    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.

© 2012_
Ejemplo, Como crear un campo personalizado:   Widget

    hook_field_widget_info




© 2012_
Ejemplo, Como crear un campo personalizado:   Widget

    participante.module




© 2012_
Ejemplo, Como crear un campo personalizado:    Widget

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




© 2012_
Ejemplo, Como crear un campo personalizado:   Widget

    hook_field_is_empty




© 2012_
Ejemplo, Como crear un campo personalizado:   Formatter
    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.




© 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_
Ejemplo, Como crear un campo personalizado:   Formatter

    Utilizaremos
    hook_field_formatter_settings_summary y
    hook_field_formatter_settings_form para añadir
    elementos configurables del 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_
Ejemplo, Como crear un campo personalizado:   Formatter

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




© 2012_
Algunas cosas a tener en cuenta
    Un Field puede tener más de un formatter o widget a la
    vez.
    Se pueden crear campos personalizados sin crear widgets
    y viceversa.




© 2012_
Drupal 8?
    CMI
    Widget y formatter como plugins en drupal 8
    Field API vs OO




© 2012_
Drupal 8?
          Text
                • text




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

      © 2012_
Referencias
    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

© 2012_
MUCHAS GRACIAS



© 2012_

Más contenido relacionado

Similar a Field Types API: Field, widgets y formatters

Fields en drupal 8
Fields en drupal 8Fields en drupal 8
Fields en drupal 8Biko
 
Presentación Seminario Cleformación HTML5, El lenguaje del futuro
Presentación Seminario Cleformación HTML5, El lenguaje del futuroPresentación Seminario Cleformación HTML5, El lenguaje del futuro
Presentación Seminario Cleformación HTML5, El lenguaje del futuroCLEFormación
 
Patrones estructurados
Patrones estructuradosPatrones estructurados
Patrones estructuradosIsmael Armijos
 
Py Qt Desarrollando Aplicaciones De Escritorio El Co Di Go K
Py Qt Desarrollando Aplicaciones De Escritorio El Co Di Go KPy Qt Desarrollando Aplicaciones De Escritorio El Co Di Go K
Py Qt Desarrollando Aplicaciones De Escritorio El Co Di Go KJuan Carlos Gonzales Vitte.
 
Define y desarrolla tu primera api
Define y desarrolla tu primera apiDefine y desarrolla tu primera api
Define y desarrolla tu primera apiCloudAppi
 
Drupal 7 a través Drupal Commerce
Drupal 7 a través Drupal CommerceDrupal 7 a través Drupal Commerce
Drupal 7 a través Drupal CommercePedro Cambra
 
Zend Framework - MVC - 2008
Zend Framework - MVC - 2008Zend Framework - MVC - 2008
Zend Framework - MVC - 2008Juan Carbajal
 
Tema 4 3_1_interfaces_de_usuario
Tema 4 3_1_interfaces_de_usuarioTema 4 3_1_interfaces_de_usuario
Tema 4 3_1_interfaces_de_usuarioCarlos A. Iglesias
 
Appcircus Academy: Integración de Social Media en Android
Appcircus Academy: Integración de Social Media en AndroidAppcircus Academy: Integración de Social Media en Android
Appcircus Academy: Integración de Social Media en AndroidAlberto Ruibal
 
Versión inicial presentación Android Studio y Gradle. .
Versión inicial presentación Android Studio y Gradle. . Versión inicial presentación Android Studio y Gradle. .
Versión inicial presentación Android Studio y Gradle. . Kamil Zabdyr
 
Google cloud endpoints
Google cloud endpointsGoogle cloud endpoints
Google cloud endpointsGDG Lima
 

Similar a Field Types API: Field, widgets y formatters (20)

Campos Personalizados Joomla!
Campos Personalizados Joomla!Campos Personalizados Joomla!
Campos Personalizados Joomla!
 
API Flickr
API FlickrAPI Flickr
API Flickr
 
Fields en drupal 8
Fields en drupal 8Fields en drupal 8
Fields en drupal 8
 
Flickr
FlickrFlickr
Flickr
 
Presentación Seminario Cleformación HTML5, El lenguaje del futuro
Presentación Seminario Cleformación HTML5, El lenguaje del futuroPresentación Seminario Cleformación HTML5, El lenguaje del futuro
Presentación Seminario Cleformación HTML5, El lenguaje del futuro
 
Patrones estructurados
Patrones estructuradosPatrones estructurados
Patrones estructurados
 
Py Qt Desarrollando Aplicaciones De Escritorio El Co Di Go K
Py Qt Desarrollando Aplicaciones De Escritorio El Co Di Go KPy Qt Desarrollando Aplicaciones De Escritorio El Co Di Go K
Py Qt Desarrollando Aplicaciones De Escritorio El Co Di Go K
 
Cuestionario android
Cuestionario androidCuestionario android
Cuestionario android
 
Define y desarrolla tu primera api
Define y desarrolla tu primera apiDefine y desarrolla tu primera api
Define y desarrolla tu primera api
 
Drupal 7 a través Drupal Commerce
Drupal 7 a través Drupal CommerceDrupal 7 a través Drupal Commerce
Drupal 7 a través Drupal Commerce
 
Herencia
HerenciaHerencia
Herencia
 
Html4
Html4Html4
Html4
 
Zend Framework - MVC - 2008
Zend Framework - MVC - 2008Zend Framework - MVC - 2008
Zend Framework - MVC - 2008
 
Tema 4 3_1_interfaces_de_usuario
Tema 4 3_1_interfaces_de_usuarioTema 4 3_1_interfaces_de_usuario
Tema 4 3_1_interfaces_de_usuario
 
Android Pres3
Android Pres3Android Pres3
Android Pres3
 
Mvc
MvcMvc
Mvc
 
Appcircus Academy: Integración de Social Media en Android
Appcircus Academy: Integración de Social Media en AndroidAppcircus Academy: Integración de Social Media en Android
Appcircus Academy: Integración de Social Media en Android
 
Versión inicial presentación Android Studio y Gradle. .
Versión inicial presentación Android Studio y Gradle. . Versión inicial presentación Android Studio y Gradle. .
Versión inicial presentación Android Studio y Gradle. .
 
Google cloud endpoints
Google cloud endpointsGoogle cloud endpoints
Google cloud endpoints
 
Funciones
FuncionesFunciones
Funciones
 

Más de Ymbra

Desarrollo y arquitectura de proyectos con Features
Desarrollo y arquitectura de proyectos con FeaturesDesarrollo y arquitectura de proyectos con Features
Desarrollo y arquitectura de proyectos con FeaturesYmbra
 
Distribuciones en Drupal
Distribuciones en DrupalDistribuciones en Drupal
Distribuciones en DrupalYmbra
 
Introducció al Git
Introducció al GitIntroducció al Git
Introducció al GitYmbra
 
Views 3: Qué hay de nuevo
Views 3: Qué hay de nuevoViews 3: Qué hay de nuevo
Views 3: Qué hay de nuevoYmbra
 
ELISAVA Beta. Cas d'èxit desenvolupat per Ymbra
ELISAVA Beta. Cas d'èxit desenvolupat per YmbraELISAVA Beta. Cas d'èxit desenvolupat per Ymbra
ELISAVA Beta. Cas d'èxit desenvolupat per YmbraYmbra
 
Drupal 7: mucho más que una nueva versión
Drupal 7: mucho más que una nueva versiónDrupal 7: mucho más que una nueva versión
Drupal 7: mucho más que una nueva versiónYmbra
 

Más de Ymbra (6)

Desarrollo y arquitectura de proyectos con Features
Desarrollo y arquitectura de proyectos con FeaturesDesarrollo y arquitectura de proyectos con Features
Desarrollo y arquitectura de proyectos con Features
 
Distribuciones en Drupal
Distribuciones en DrupalDistribuciones en Drupal
Distribuciones en Drupal
 
Introducció al Git
Introducció al GitIntroducció al Git
Introducció al Git
 
Views 3: Qué hay de nuevo
Views 3: Qué hay de nuevoViews 3: Qué hay de nuevo
Views 3: Qué hay de nuevo
 
ELISAVA Beta. Cas d'èxit desenvolupat per Ymbra
ELISAVA Beta. Cas d'èxit desenvolupat per YmbraELISAVA Beta. Cas d'èxit desenvolupat per Ymbra
ELISAVA Beta. Cas d'èxit desenvolupat per Ymbra
 
Drupal 7: mucho más que una nueva versión
Drupal 7: mucho más que una nueva versiónDrupal 7: mucho más que una nueva versión
Drupal 7: mucho más que una nueva versión
 

Field Types API: Field, widgets y formatters

  • 1. TITLE: Field Types API: Field, widgets y formatters PRESENTERS: Miguel Ordóñez
  • 2. Quien Soy? Nombre: Miguel Ordóñez (mordonez) Twitter: http://twitter.com/miguelordonez Co-fundador de Ymbra © 2012_
  • 3. Agenda Algunos conceptos Que es un Field Field API Como crear tu propio field Schema Widget Formatter Validation Algunas cosas a tener en cuenta Drupal 8 Referencias © 2012_
  • 5. Algunos conceptos: Que es un Field Es una pieza de funcionalidad que se adjunta a una entidad (nodo, taxonomia, usuario, etc...) © 2012_
  • 6. 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 Field Info API language API Field CRUD API Field Field Storage API Types API Field API bulk data © 2012_
  • 7. Algunos conceptos: Field Type, Widget, Formatter Un campo puede tener 3 piezas importantes • Field type. • Widget. © 2012_
  • 8. Algunos conceptos: Field Type, Widget, Formatter y el Formatter. © 2012_
  • 9. Ejemplo, Como crear un campo personalizado © 2012_
  • 10. 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 © 2012_ de drupal.
  • 11. Ejemplo, Como crear un campo personalizado Creamos el módulo “participante” Creamos los ficheros .info, .install i .module © 2012_
  • 12. Ejemplo, Como crear un campo personalizado: .info participante.info © 2012_
  • 13. Ejemplo, Como crear un campo personalizado: Field Type participante.module (hook_field_info) * los literales mejor en inglés. Pero para el ejemplo se pusieron en español :-P © 2012_
  • 14. Ejemplo, Como crear un campo personalizado: Field Type participante.install (hook_field_schema) Schema API: drupal.org/node/ 146843 © 2012_
  • 15. Ejemplo, Como crear un campo personalizado: Widget 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. © 2012_
  • 16. Ejemplo, Como crear un campo personalizado: Widget hook_field_widget_info © 2012_
  • 17. Ejemplo, Como crear un campo personalizado: Widget participante.module © 2012_
  • 18. Ejemplo, Como crear un campo personalizado: Widget Para añadir una validación, utilizaremos #element_validate © 2012_
  • 19. Ejemplo, Como crear un campo personalizado: Widget hook_field_is_empty © 2012_
  • 20. Ejemplo, Como crear un campo personalizado: Formatter 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. © 2012_
  • 21. Ejemplo, Como crear un campo personalizado: Formatter hook_field_formatter_info © 2012_
  • 22. Ejemplo, Como crear un campo personalizado: Formatter hook_field_formatter_view © 2012_
  • 23. Ejemplo, Como crear un campo personalizado: Formatter Utilizaremos hook_field_formatter_settings_summary y hook_field_formatter_settings_form para añadir elementos configurables del formatter. © 2012_
  • 24. Ejemplo, Como crear un campo personalizado: Formatter hook_field_formatter_settings_form © 2012_
  • 25. Ejemplo, Como crear un campo personalizado: Formatter hook_field_formatter_settings_summary © 2012_
  • 26. Ejemplo, Como crear un campo personalizado: Formatter Algunos ejemplos de formatters: http:// customformatters.com © 2012_
  • 27. Algunas cosas a tener en cuenta Un Field puede tener más de un formatter o widget a la vez. Se pueden crear campos personalizados sin crear widgets y viceversa. © 2012_
  • 28. Drupal 8? CMI Widget y formatter como plugins en drupal 8 Field API vs OO © 2012_
  • 29. Drupal 8? Text • text * Overview of the pluginification of Field API in Drupal 8: http://drupalsun.com/node/32450 © 2012_
  • 30. Referencias 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 © 2012_