16
Conférence Confoo.ca 2010 RAD avec IPF pour ImpressCMS 1.2 Par Marc-André Lanciault INBOX International inc.

RAD avec IPF pour ImpressCMS 1.2

Embed Size (px)

DESCRIPTION

Conférence faite à Confoo Montréal 2010 où j'explique comment on peut facilement développer un module pour ImpressCMS 1.2 en utilisant imBuilding

Citation preview

Page 1: RAD avec IPF pour ImpressCMS 1.2

Conférence Confoo.ca 2010

RAD avec IPF pour ImpressCMS 1.2Par Marc-André LanciaultINBOX International inc.

Page 2: RAD avec IPF pour ImpressCMS 1.2

Qui sommes nous ?

• INBOX International inc.• Créé en 2003• Développement Web PHP/MySQL• Expertise XOOPS / ImpressCMS / Wordpress / LAMP• Équipe de 15 personnes de partout dans le monde: États-

Unis, Canada, Brésil, Colombie, Argentine, Angleterre, Espagne

• Clients:– Partout dans le monde– Petites et grandes entreprises: Bell Canada, Rogers

Page 3: RAD avec IPF pour ImpressCMS 1.2

Historique de ImpressCMS

• Janvier 2002: XOOPS 1.0• Décembre 2002: XOOPS 2.0• Mai 2005: Fourche XOOPS Cube• Décembre 2007, 30 contributeurs émérites fondent

ImpressCMS, une fourche de XOOPS• Le focus: création d'un “Communiy Management System”• 8 janvier 2008, première release• 30 octobre 2008: ImpressCMS remporte le 3e prix du

“Most Promising Open Source CMS” au Packt Awards• 11 novembre 2009: ImpressCMS remporte le prix du “Most

Promising Open Source CMS” au Packt Awards

Page 4: RAD avec IPF pour ImpressCMS 1.2

Historique ImpressCMS

• Au 1er décembre 2009, 9625 révisions ont été “commises” sur notre SVN

• Cela représente plus de 500 “commits” par mois• 1er mars 2010: sortie de la 33e release: ImpressCMS 1.2.1RC• Selon 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. »

Page 5: RAD avec IPF pour ImpressCMS 1.2

Qu’est-ce que ImpressCMS

• Community Management System Open Source• Développé en PHP / MySQL• Antécédents

– PHPNuke– NukeAddons– myPHPNuke– myPHPNuke SE– XOOPS 1.x– XOOPS 2.0.17– ImpressCMS

Page 6: RAD avec IPF pour ImpressCMS 1.2

Fonctionnalités principales

• Installation simple et rapide• Structure modulaire• Interface flexible (blocs et thèmes)• Smarty Template Engine• Gestion des membres• Groupes de permissions• Système de notification• Système de commentaires• Recherche globale• Authentification LDAP / OpenID• Approche modulaires => plus de 500 modules disponibles• Module Content pour gérer les pages et le menu du site• Module Profile pour gérer et personnaliser les profils des

utilisateurs

Page 7: RAD avec IPF pour ImpressCMS 1.2

ImpressCMS Persistable Framework

• Acronyme: IPF• Descendant du SmartObject Framework• Intégré de façon native à ImpressCMS• Objectifs

– Adresser le 80% communs à la plupart des modules– Rendre le développement de module facile et rapide– Réutilisation du code (centralisation, facilité de maintenance,

moins de ressources, etc...)

• Concepts prédominants:– DRY (Dont Repeat Yourself)– KISS (Keep it Simple and Stupid)– Convention over Configuration

Page 8: RAD avec IPF pour ImpressCMS 1.2

Principales fonctions IPF

• Créer, modifier, supprimer des objets• Lister des objets• Trier des objets• Filtrer des objets• Affichage d’un objet unique• Evénements : beforeInsert, beforeUpdate, afterInsert,

beforeDelete, etc…• Export d’objets• Gestion des permissions d’un objet

Page 9: RAD avec IPF pour ImpressCMS 1.2

Principales fonctions IPF (suite)

• Recherche• Génération de flux RSS• Création et mise à jour automatiques des tables de la base de

données• Registre d'objets (cache)• Gestion des champs communs d'un object:

– Meta keywords– Mata Description– Short URL– Counter

Page 10: RAD avec IPF pour ImpressCMS 1.2

Module imBuilding

• Module d'ImpressCMS permettant la création de modules utilisant le IPF

• imBuilding gère:– Les informations globales du module: auteur, site de

support, crédits, license, etc...– La définition des différents objets– La définition des champs de ces objets

• À la génération du module, une archive est créé contenant tous les fichiers du module

• Le module ainsi généré est fonctionnel “out of the box”• Le développeur peut ensuite se concentrer sur l'important: la

logique d'affaire, modifier les templates, etc...

Page 11: RAD avec IPF pour ImpressCMS 1.2

imBuilding: Création d'un module

Page 12: RAD avec IPF pour ImpressCMS 1.2

imBuilding: Visualisation du module

Page 13: RAD avec IPF pour ImpressCMS 1.2

imBuilding: Ajout d'un objet

Page 14: RAD avec IPF pour ImpressCMS 1.2

imBuilding: Visualisation d'un objet

Page 15: RAD avec IPF pour ImpressCMS 1.2

imBuilding: Ajout d'un champ

Page 16: RAD avec IPF pour ImpressCMS 1.2

Pour en savoir plus…

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