SlideShare ist ein Scribd-Unternehmen logo
1 von 9
Downloaden Sie, um offline zu lesen
Building custom field
types
Edi Modrić ( @emodric )
https://github.com/emodric/EzscIpAddressBundle
About me
• Edi Modrić
• Computer engineering masters degree
• Working at Netgen for 6 years
• 5 years of eZ Publish development
• Certified eZ Publish developer
• eZ Tags maintainer
• Collaborated with eZ Systems on eZ Publish 5 kernel
• @emodric
• edi@netgen.hr
Agenda
• A little bit of theory
• Coding a simple field type
• Verifying that it works
The code
$ cd /var/www/ezpublish/src/
$ mkdir Netgen && cd Netgen
$ git clone
git://github.com/emodric/Ezsc
IpAddressBundle.git
Datatype + public API = field type
• Content class = Content type
• Content object = Content
• Content class attribute = Field definition
• Content object attribute = Field
• Object attribute content = Field value
• Datatype = Field type
Field type components
• Main field type implementation
• Field type value
• Per storage converters
Field type storage
• Internal storage
• Stores data to ezcontentobject_attribute DB table
• External storage
• Custom database tables
• Anything else
What about legacy stack?
• Legacy datatypes are not going anywhere
• No admin interface based on Symfony stack
• To actually use your field type, you WILL need legacy
datatype
Field type vs. datatype
• No difference in functionality
• Advantages over datatypes
• Clear separation of concerns
• No POST variables
• No SQL
• No file uploads
• More readable and understandable code

Weitere ähnliche Inhalte

Ă„hnlich wie eZ Publish Summer Camp 2013 - Building custom field types

Build your datatypes
Build your datatypesBuild your datatypes
Build your datatypes
Edi Modrić
 
2012 mct summit presentation final
2012 mct summit presentation final2012 mct summit presentation final
2012 mct summit presentation final
Dmitri Artamonov
 
Cloud App Develop
Cloud App DevelopCloud App Develop
Cloud App Develop
Fin Chen
 
Develop a Quick and Dirty Web interface to your database: for the DBA and oth...
Develop a Quick and Dirty Web interface to your database: for the DBA and oth...Develop a Quick and Dirty Web interface to your database: for the DBA and oth...
Develop a Quick and Dirty Web interface to your database: for the DBA and oth...
Gabriel Villa
 
2012 MCT Summit Presentation
2012 MCT Summit Presentation2012 MCT Summit Presentation
2012 MCT Summit Presentation
Dmitri Artamonov
 

Ă„hnlich wie eZ Publish Summer Camp 2013 - Building custom field types (20)

Build your datatypes
Build your datatypesBuild your datatypes
Build your datatypes
 
Beyond Domino Designer
Beyond Domino DesignerBeyond Domino Designer
Beyond Domino Designer
 
DevOps in the Microsoft world part 1
DevOps in the Microsoft world part 1DevOps in the Microsoft world part 1
DevOps in the Microsoft world part 1
 
The Python in the Apple
The Python in the AppleThe Python in the Apple
The Python in the Apple
 
2012 mct summit presentation final
2012 mct summit presentation final2012 mct summit presentation final
2012 mct summit presentation final
 
Cloud App Develop
Cloud App DevelopCloud App Develop
Cloud App Develop
 
Penny coventry fiddler-spsbe23
Penny coventry fiddler-spsbe23Penny coventry fiddler-spsbe23
Penny coventry fiddler-spsbe23
 
Develop a Quick and Dirty Web interface to your database: for the DBA and oth...
Develop a Quick and Dirty Web interface to your database: for the DBA and oth...Develop a Quick and Dirty Web interface to your database: for the DBA and oth...
Develop a Quick and Dirty Web interface to your database: for the DBA and oth...
 
Components vs Frameworks
Components vs FrameworksComponents vs Frameworks
Components vs Frameworks
 
Presentation on Windows 8 Application at IIT, University of Dhaka
Presentation on Windows 8 Application at IIT, University of DhakaPresentation on Windows 8 Application at IIT, University of Dhaka
Presentation on Windows 8 Application at IIT, University of Dhaka
 
Writing power shell the right tool for the job
Writing power shell   the right tool for the jobWriting power shell   the right tool for the job
Writing power shell the right tool for the job
 
VB.netIDE.pptx
VB.netIDE.pptxVB.netIDE.pptx
VB.netIDE.pptx
 
Node and Azure
Node and AzureNode and Azure
Node and Azure
 
Php Zen with Zend
Php Zen with ZendPhp Zen with Zend
Php Zen with Zend
 
Nimrod: MongoDB Shell in NodeJS (JSConfUY 2015)
Nimrod: MongoDB Shell in NodeJS (JSConfUY 2015)Nimrod: MongoDB Shell in NodeJS (JSConfUY 2015)
Nimrod: MongoDB Shell in NodeJS (JSConfUY 2015)
 
Super tools to boost productivity in React dev env!
Super tools to boost productivity in React dev env!Super tools to boost productivity in React dev env!
Super tools to boost productivity in React dev env!
 
Tech IT Easy x DevTalk : "Secure Your Coding with OWASP"
Tech IT Easy x DevTalk : "Secure Your Coding with OWASP"Tech IT Easy x DevTalk : "Secure Your Coding with OWASP"
Tech IT Easy x DevTalk : "Secure Your Coding with OWASP"
 
MongoDB Basics
MongoDB BasicsMongoDB Basics
MongoDB Basics
 
2012 MCT Summit Presentation
2012 MCT Summit Presentation2012 MCT Summit Presentation
2012 MCT Summit Presentation
 
Dojo and Zend Framework
Dojo and Zend  FrameworkDojo and Zend  Framework
Dojo and Zend Framework
 

KĂĽrzlich hochgeladen

Cloud Frontiers: A Deep Dive into Serverless Spatial Data and FME
Cloud Frontiers:  A Deep Dive into Serverless Spatial Data and FMECloud Frontiers:  A Deep Dive into Serverless Spatial Data and FME
Cloud Frontiers: A Deep Dive into Serverless Spatial Data and FME
Safe Software
 

KĂĽrzlich hochgeladen (20)

Cloud Frontiers: A Deep Dive into Serverless Spatial Data and FME
Cloud Frontiers:  A Deep Dive into Serverless Spatial Data and FMECloud Frontiers:  A Deep Dive into Serverless Spatial Data and FME
Cloud Frontiers: A Deep Dive into Serverless Spatial Data and FME
 
Rising Above_ Dubai Floods and the Fortitude of Dubai International Airport.pdf
Rising Above_ Dubai Floods and the Fortitude of Dubai International Airport.pdfRising Above_ Dubai Floods and the Fortitude of Dubai International Airport.pdf
Rising Above_ Dubai Floods and the Fortitude of Dubai International Airport.pdf
 
Mcleodganj Call Girls 🥰 8617370543 Service Offer VIP Hot Model
Mcleodganj Call Girls 🥰 8617370543 Service Offer VIP Hot ModelMcleodganj Call Girls 🥰 8617370543 Service Offer VIP Hot Model
Mcleodganj Call Girls 🥰 8617370543 Service Offer VIP Hot Model
 
Polkadot JAM Slides - Token2049 - By Dr. Gavin Wood
Polkadot JAM Slides - Token2049 - By Dr. Gavin WoodPolkadot JAM Slides - Token2049 - By Dr. Gavin Wood
Polkadot JAM Slides - Token2049 - By Dr. Gavin Wood
 
ProductAnonymous-April2024-WinProductDiscovery-MelissaKlemke
ProductAnonymous-April2024-WinProductDiscovery-MelissaKlemkeProductAnonymous-April2024-WinProductDiscovery-MelissaKlemke
ProductAnonymous-April2024-WinProductDiscovery-MelissaKlemke
 
DBX First Quarter 2024 Investor Presentation
DBX First Quarter 2024 Investor PresentationDBX First Quarter 2024 Investor Presentation
DBX First Quarter 2024 Investor Presentation
 
Elevate Developer Efficiency & build GenAI Application with Amazon Q​
Elevate Developer Efficiency & build GenAI Application with Amazon Q​Elevate Developer Efficiency & build GenAI Application with Amazon Q​
Elevate Developer Efficiency & build GenAI Application with Amazon Q​
 
How to Troubleshoot Apps for the Modern Connected Worker
How to Troubleshoot Apps for the Modern Connected WorkerHow to Troubleshoot Apps for the Modern Connected Worker
How to Troubleshoot Apps for the Modern Connected Worker
 
Repurposing LNG terminals for Hydrogen Ammonia: Feasibility and Cost Saving
Repurposing LNG terminals for Hydrogen Ammonia: Feasibility and Cost SavingRepurposing LNG terminals for Hydrogen Ammonia: Feasibility and Cost Saving
Repurposing LNG terminals for Hydrogen Ammonia: Feasibility and Cost Saving
 
Introduction to Multilingual Retrieval Augmented Generation (RAG)
Introduction to Multilingual Retrieval Augmented Generation (RAG)Introduction to Multilingual Retrieval Augmented Generation (RAG)
Introduction to Multilingual Retrieval Augmented Generation (RAG)
 
Apidays New York 2024 - The value of a flexible API Management solution for O...
Apidays New York 2024 - The value of a flexible API Management solution for O...Apidays New York 2024 - The value of a flexible API Management solution for O...
Apidays New York 2024 - The value of a flexible API Management solution for O...
 
DEV meet-up UiPath Document Understanding May 7 2024 Amsterdam
DEV meet-up UiPath Document Understanding May 7 2024 AmsterdamDEV meet-up UiPath Document Understanding May 7 2024 Amsterdam
DEV meet-up UiPath Document Understanding May 7 2024 Amsterdam
 
WSO2's API Vision: Unifying Control, Empowering Developers
WSO2's API Vision: Unifying Control, Empowering DevelopersWSO2's API Vision: Unifying Control, Empowering Developers
WSO2's API Vision: Unifying Control, Empowering Developers
 
Artificial Intelligence Chap.5 : Uncertainty
Artificial Intelligence Chap.5 : UncertaintyArtificial Intelligence Chap.5 : Uncertainty
Artificial Intelligence Chap.5 : Uncertainty
 
Platformless Horizons for Digital Adaptability
Platformless Horizons for Digital AdaptabilityPlatformless Horizons for Digital Adaptability
Platformless Horizons for Digital Adaptability
 
Apidays New York 2024 - The Good, the Bad and the Governed by David O'Neill, ...
Apidays New York 2024 - The Good, the Bad and the Governed by David O'Neill, ...Apidays New York 2024 - The Good, the Bad and the Governed by David O'Neill, ...
Apidays New York 2024 - The Good, the Bad and the Governed by David O'Neill, ...
 
Boost Fertility New Invention Ups Success Rates.pdf
Boost Fertility New Invention Ups Success Rates.pdfBoost Fertility New Invention Ups Success Rates.pdf
Boost Fertility New Invention Ups Success Rates.pdf
 
Strategize a Smooth Tenant-to-tenant Migration and Copilot Takeoff
Strategize a Smooth Tenant-to-tenant Migration and Copilot TakeoffStrategize a Smooth Tenant-to-tenant Migration and Copilot Takeoff
Strategize a Smooth Tenant-to-tenant Migration and Copilot Takeoff
 
Strategies for Landing an Oracle DBA Job as a Fresher
Strategies for Landing an Oracle DBA Job as a FresherStrategies for Landing an Oracle DBA Job as a Fresher
Strategies for Landing an Oracle DBA Job as a Fresher
 
[BuildWithAI] Introduction to Gemini.pdf
[BuildWithAI] Introduction to Gemini.pdf[BuildWithAI] Introduction to Gemini.pdf
[BuildWithAI] Introduction to Gemini.pdf
 

eZ Publish Summer Camp 2013 - Building custom field types

  • 1. Building custom field types Edi Modrić ( @emodric ) https://github.com/emodric/EzscIpAddressBundle
  • 2. About me • Edi Modrić • Computer engineering masters degree • Working at Netgen for 6 years • 5 years of eZ Publish development • Certified eZ Publish developer • eZ Tags maintainer • Collaborated with eZ Systems on eZ Publish 5 kernel • @emodric • edi@netgen.hr
  • 3. Agenda • A little bit of theory • Coding a simple field type • Verifying that it works
  • 4. The code $ cd /var/www/ezpublish/src/ $ mkdir Netgen && cd Netgen $ git clone git://github.com/emodric/Ezsc IpAddressBundle.git
  • 5. Datatype + public API = field type • Content class = Content type • Content object = Content • Content class attribute = Field definition • Content object attribute = Field • Object attribute content = Field value • Datatype = Field type
  • 6. Field type components • Main field type implementation • Field type value • Per storage converters
  • 7. Field type storage • Internal storage • Stores data to ezcontentobject_attribute DB table • External storage • Custom database tables • Anything else
  • 8. What about legacy stack? • Legacy datatypes are not going anywhere • No admin interface based on Symfony stack • To actually use your field type, you WILL need legacy datatype
  • 9. Field type vs. datatype • No difference in functionality • Advantages over datatypes • Clear separation of concerns • No POST variables • No SQL • No file uploads • More readable and understandable code