Successfully reported this slideshow.
We use your LinkedIn profile and activity data to personalize ads and to show you more relevant ads. You can change your ad preferences anytime.

ImpressCMS Persistable Framework: Rapid Modules Development


Published on

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 (

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!

Published in: Technology
  • Be the first to comment

  • Be the first to like this

ImpressCMS Persistable Framework: Rapid Modules Development

  1. 1. ImpressCMS Persistable Framework: Rapid Modules Development Conférence PHP Québec March 4th 2009 By Marc-André Lanciault INBOX International inc.
  2. 2. Who are we ? <ul><li>INBOX International inc. </li></ul><ul><li>Created early 2003 </li></ul><ul><li>PHP/MySQL Wen Development </li></ul><ul><li>XOOPS / ImpressCMS / LAMP Expertise </li></ul><ul><li>Founders of The SmartFactory ( – more then 1500 members </li></ul><ul><ul><li>XOOPS / ImpressCMS modules development team </li></ul></ul><ul><ul><li>SmartSection, SmartFAQ, SmartPartner, SmartClient, SmartQuiz, SmartCredit, SmartShop, SmartMail, SmartMailLight, SmartObject… </li></ul></ul>
  3. 3. ImpressCMS History <ul><li>In December 2007, 30 well known contributors of XOOPS start a new fork called ImpressCMS </li></ul><ul><li>Focus: development of a “Communiy Management System” </li></ul><ul><li>January 8 th 2008: first release </li></ul><ul><li>Marc 2 nd 2009: release of ImpressCMS 1.1.2 RC 2 which is the 22 nd release sice the first one </li></ul><ul><li>According to </li></ul><ul><ul><li>« Very large, active development team. » </li></ul></ul><ul><ul><li>« Over the past twelve months, 34 developers contributed new code to ImpressCMS. » </li></ul></ul><ul><ul><li>« This is one of the largest open-source teams in the world, and is in the top 2% of all project teams on Ohloh. » </li></ul></ul>
  4. 4. ImpressCMS History <ul><li>October 30 th 2008: ImpressCMS wins 3 rd place in “Most Promising Open Source CMS” Packt Awards </li></ul><ul><li>January 21 st 2008, ImpressCMS development is moved from SourceForge to its very own Trac system which increase efficiently exponentially </li></ul><ul><li>As of March 3 rd 2009, 8198 commits were made in ImpressCMS SVN </li></ul><ul><li>This is more than 500 commits per month </li></ul>
  5. 5. What is ImpressCMS <ul><li>Open Source Community Management System </li></ul><ul><li>Développed with PHP / MySQL </li></ul><ul><li>History </li></ul><ul><ul><li>PHPNuke </li></ul></ul><ul><ul><li>NukeAddons </li></ul></ul><ul><ul><li>myPHPNuke </li></ul></ul><ul><ul><li>myPHPNuke SE </li></ul></ul><ul><ul><li>XOOPS 1.x </li></ul></ul><ul><ul><li>XOOPS 2.0.17 </li></ul></ul><ul><ul><li>ImpressCMS </li></ul></ul>
  6. 6. Important features <ul><li>Easy Installation </li></ul><ul><li>Modular structure </li></ul><ul><li>Very flexible, themable interface </li></ul><ul><li>Smarty Template Engine </li></ul><ul><li>Users management </li></ul><ul><li>Groups and permissions management </li></ul><ul><li>Notification system </li></ul><ul><li>Comments system </li></ul><ul><li>Global search engine </li></ul><ul><li>LDAP / OpenID Authentification </li></ul><ul><li>Modular approach => More then 500 modules available </li></ul>
  7. 7. IPF: ImpressCMS Persistable Framework <ul><li>Derived from the SmartObject Framework </li></ul><ul><li>Natively integrated in ImpressCMS </li></ul><ul><li>Goals </li></ul><ul><ul><li>Addressed 80% of common tasks of most module </li></ul></ul><ul><ul><li>Enable easy and rapid development </li></ul></ul><ul><ul><li>Reuse code wherever possible (centralization, easy maintenance, use less ressources, etc...) </li></ul></ul><ul><li>Main concepts: </li></ul><ul><ul><li>DRY (Dont Repeat Yourself) </li></ul></ul><ul><ul><li>KISS (Keep it Simple and Stupid) </li></ul></ul><ul><ul><li>Convention over Configuration </li></ul></ul>
  8. 8. IPF Main Features <ul><li>Create, edit and delete objects </li></ul><ul><li>List objects </li></ul><ul><li>Sort objects </li></ul><ul><li>Filter objects </li></ul><ul><li>Display a single object </li></ul><ul><li>Support events: beforeInsert, beforeUpdate, afterInsert, beforeDelete, etc… </li></ul><ul><li>Export objects </li></ul><ul><li>Permission management of objects </li></ul>
  9. 9. IPF Main Features (more...) <ul><li>Search </li></ul><ul><li>RSS generation </li></ul><ul><li>Automatic creation and update of database tables </li></ul><ul><li>Objects registry (cache) </li></ul><ul><li>Managment of common fields of an object: </li></ul><ul><ul><li>Meta keywords </li></ul></ul><ul><ul><li>Mata Description </li></ul></ul><ul><ul><li>Short URL </li></ul></ul><ul><ul><li>Counter </li></ul></ul>
  10. 10. imBuilding: Module Generation for IPF <ul><li>ImpressCMS module allowing easy creation of modules </li></ul><ul><li>ImBuilding takes care of: </li></ul><ul><ul><li>Module global information: author, support web site, credits, license, etc... </li></ul></ul><ul><ul><li>Objects definition </li></ul></ul><ul><ul><li>Objects fields definition </li></ul></ul><ul><li>When the module is generated, a Zip file is created containing all files of the module </li></ul><ul><li>The module is then usable “out of the box” </li></ul><ul><li>Developer can then focus on the important aspects: business logic, templates, etc... </li></ul>
  11. 11. imBuilding: Module Creation
  12. 12. imBuilding: Module View
  13. 13. imBuilding: Adding an Object
  14. 14. imBuilding: Viewing an Object
  15. 15. imBuilding: Adding a field
  16. 16. To learn more...
  17. 17. Thank you and have a good conference!