impresscms persistable framework: rapid modules development
DESCRIPTION
The ImpressCMS Framework (IPF) is a native framework for ImpressCMS allowing easy and rapid development of module for ImpressCMS, an open source Community Management System under GPL license (http://www.impresscms.org).This session demonstrates key concepts off the framework: Using imBuilding module to create a new module in 2 minutes, main features of the framework, which are creation, edition and deletion of objects, listing objects in a loist view fully sortable, with filters, CSV obbjects exports, permissions management, notification, comments, etc...Using the ImpressCMS Persistable Framework, a developer can create a secure and robust module very quckly. IPF takes care of 80% of the most common features of any modules, and allow the developer to focus on what really matters!TRANSCRIPT
www.inboxinternational .com
ImpressCMS Persistable Framework: Rapid Modules Development
Conférence PHP QuébecMarch 4th 2009
By Marc-André LanciaultINBOX International inc.
www.inboxinternational .com
Who are we ?
• INBOX International inc.• Created early 2003• PHP/MySQL Wen Development• XOOPS / ImpressCMS / LAMP Expertise• Founders of The SmartFactory (smartfactory.ca) – more then
1500 members– XOOPS / ImpressCMS modules development team– SmartSection, SmartFAQ, SmartPartner, SmartClient,
SmartQuiz, SmartCredit, SmartShop, SmartMail, SmartMailLight, SmartObject…
www.inboxinternational .com
ImpressCMS History
• In 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• Marc 2nd 2009: release of ImpressCMS 1.1.2 RC 2 which is the
22nd release sice the first one• 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. »
www.inboxinternational .com
ImpressCMS History
• October 30th 2008: ImpressCMS wins 3rd place in“Most Promising Open Source CMS” Packt Awards
• January 21st 2008, ImpressCMS development is moved from SourceForge to its very own Trac system which increase efficiently exponentially
• As of March 3rd 2009, 8198 commits were made in ImpressCMS SVN
• This is more than 500 commits per month
www.inboxinternational .com
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
www.inboxinternational .com
Important 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
www.inboxinternational .com
IPF: ImpressCMS Persistable Framework
• 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
www.inboxinternational .com
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
www.inboxinternational .com
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
www.inboxinternational .com
imBuilding: Module Generation for IPF
• 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...
www.inboxinternational .com
imBuilding: Module Creation
www.inboxinternational .com
imBuilding: Module View
www.inboxinternational .com
imBuilding: Adding an Object
www.inboxinternational .com
imBuilding: Viewing an Object
www.inboxinternational .com
imBuilding: Adding a field
www.inboxinternational .com
To learn more...
http://inboxinternational.comhttp://www.impresscms.org
http://twitter.com/marcanhttp://twitter.com/INBOXintl
www.inboxinternational .com
Thank you and have a good conference!