rad with ipf on impresscms 1.2
DESCRIPTION
Talk I made at Montreal's Confoo 2010 about how you can easily create modules for ImpressCMS using imBuilding and ImpressCMS 1.2TRANSCRIPT
2010 Confoo.ca Conference
RAD with IPF on ImpressCMS 1.2By Marc-André LanciaultINBOX International inc.
Who are we ?
• INBOX International inc.• Founded in 2003• PHP/MySQL Web Development• XOOPS / ImpressCMS Wordpress / LAMP Expertise• Team of 15 people all around the world: USA, Canada, Brazil,
Colombia, Argentina, England, Spain• Clients:
– All around the world– Small and large companies (Bell Canada, Rogers)
ImpressCMS History
• January 2002: XOOPS 1.0• December 2002: XOOPS 2.0• May 2005: XOOPS Cube fork• December 2007, 30 well known contributors of XOOPS start a
new fork called ImpressCMS• Focus: development of a “Communiy Management System”• January 8th 2008: first release• October 30th 2008: ImpressCMS wins 3rd place in
“Most Promising Open Source CMS” Packt Awards• Novembre 11th 2009: ImpressCMS wins “Most Promising Open
Source CMS” Packt Awards
ImpressCMS History
• As of Decembre 1st 2009, 9625 commits were made in the ImpressCMS SVN
• This is more than 500 commits per month• March 1st 2010: publication of the 33rd release of
ImpressCMS: ImpressCMS 1.2.1 RC• According to Ohloh.net:
– « Very large, active development team. »– « Over the past twelve months, 34 developers contributed new
code to ImpressCMS. »– « This is one of the largest open-source teams in the world, and
is in the top 2% of all project teams on Ohloh. »
What is ImpressCMS
• Open Source Community Management System• Développed with PHP / MySQL• History
– PHPNuke– NukeAddons– MyPHPNuke– myPHPNuke SE– XOOPS 1.x– XOOPS 2.0.17– ImpressCMS
Main features
• Easy Installation• Modular structure• Very flexible, themable interface• Smarty Template Engine• Users management• Groups and permissions management• Notification system• Comments system• Global search engine• LDAP / OpenID Authentification • Modular approach => More then 500 modules available• Content module to manage pages and menu• Profile module to manage and customize users profiles
ImpressCMS Persistable Framework
• Acronyme: IPF• Derived from the SmartObject Framework• Natively integrated in ImpressCMS• Goals
– Addressed 80% of common tasks of most module– Enable easy and rapid development– Reuse code wherever possible (centralization, easy
maintenance, use less ressources, etc...)
• Main concepts:– DRY (Dont Repeat Yourself)– KISS (Keep it Simple and Stupid)– Convention over Configuration
IPF Main features
• Create, edit and delete objects• List objects• Sort objects• Filter objects• Display a single object• Support events: beforeInsert, beforeUpdate, afterInsert,
beforeDelete, etc…• Export objects• Permission management of objects
IPF Main Features (more...)
• Search• RSS generation• Automatic creation and update of database tables• Objects registry (cache)• Managment of common fields of an object:
– Meta keywords– Mata Description– Short URL– Counter
ImBuilding module
• ImpressCMS module allowing easy creation of modules• ImBuilding takes care of:
– Module global information: author, support web site, credits, license, etc...
– Objects definition– Objects fields definition
• When the module is generated, a Zip file is created containing all files of the module
• The module is then usable “out of the box”• Developer can then focus on the important aspects: business
logic, templates, etc...
imBuilding: Module Creation
imBuilding: Module View
imBuilding: Adding an Object
imBuilding: Viewing an Object
imBuilding: Adding a field
To learn more...
INBOX International inchttp://inboxinternational.comhttp://twitter.com/INBOXintl
http://facebook.com/INBOXIntl
ImpressCMShttp://www.impresscms.org
http://twitter.com/impresscms
Marc-André Lanciaulthttp://twitter.com/marcan
http://facebook.com/malanciaulthttp://www.linkedin.com/in/marcan