Download - Joomla! Platform - Pourquoi l’API Joomla!
Présenter par : SAM Bilel
Joomla! Platform Pourquoi l’API Joomla!
18/04/2012 Joomla! Day Alger 1
Joomla! Day Alger 2
I’m?• Master IA • Membre fondateur de la JUG-algeria• Co-founder de
• imaginical inc • Voxel Solution
• Modérateur sur le forum JUG-algeria depuis Janvier 2012.
18/04/2012
Joomla! Day Alger 3
SommaireIntroductionDéfinitions The PlatformjFactoryQ & R
18/04/2012
Joomla! Day Alger 4
Introduction
18/04/2012
Joomla! Day Alger 5
Joomla! CMS
Joomla! 1.7 Avec la séparation du framework Joomla! ... du CMS Joomla!
• Joomla! CMS est désormais juste une application qui utilise la Joomla! Platform
Joomla! =• Joomla! CMS, pour le CMS Joomla! tel que les utilisateurs
l'utilisent depuis ses débuts,• Joomla! Platform, pour la partie Framework de Joomla! qui
devient désormais un framework autonome.
18/04/2012
Joomla! Day Alger 6
Définitions
18/04/2012
Joomla! Day Alger 7
Framework (1)
• Un framework est un kit de composants logiciels structurels, qui définissent les fondations ainsi que les grandes lignes de l’organisation de tout ou d’une partie d'un logiciel (architecture).
• Il se distingue d'une simple bibliothèque logicielle principalement par :
• Son caractère générique, faiblement spécialisé, contrairement à certaines bibliothèques.
• Peut à ce titre être constitué de plusieurs bibliothèques chacune spécialisée dans un domaine.
• Peut néanmoins être spécialisé, sur un langage particulier, une plateforme spécifique, un domaine particulier (Reporting, mapping, etc).
18/04/2012
Joomla! Day Alger 8
Framework (2)
• Il impose par sa construction une certaine architecture logicielle voire conduisant le développeur à respecter certains patterns; Les bibliothèques le constituant sont alors organisées selon le même paradigme
• Les frameworks sont donc conçus et utilisés pour modeler l'architecture des logiciels applicatifs, des applications web, des middleware et des composants logiciels.
18/04/2012
Joomla! Day Alger 9
Api (1)
• Application Programming Interface • Une interface de programmation fournie par
un programme informatique. • Elle permet l'interaction des programmes les
uns avec les autres, de manière analogue à une interface homme-machine.
18/04/2012
Joomla! Day Alger 10
Api (2)
• Du point de vue technique une API est un ensemble de fonctions, procédures ou classes mises à disposition par une bibliothèque logicielle, un système d'exploitation ou un service.
• La connaissance des API est indispensable à l'interopérabilité entre les composants logiciels.
18/04/2012
Joomla! Day Alger 11
Api || FrameworkUn framework peut inclure des programmes de soutien, des bibliothèques de code , un langage de script du logiciel, ou d'autres pour aider à développer et coller ensemble les différents composants d'un projet de logiciel.
Diverses parties du cadre peut être exposée à travers une interface de programmation d'application (API).
18/04/2012
Joomla! Day Alger 12
The Platform
18/04/2012
Joomla! Day Alger 13
Joomla! le framework ?
• la dernière version de Joomla! Platform est sortie le 4 janvier 2012.
• Un élément important de l'architecture Joomla. Il est basé sur les designs patterns (Modèle de concept OO) qui rendent le noyau Joomla très maintenable et facilement extensible.
• 1/3 des développeurs tiers bénéfices de la richesse et des fonctionnalités facilement accessibles de ce Framework.
18/04/2012
Joomla! Day Alger 14
Joomla! le framework ?Le projet dans sa version 11.4 est constitué de :
• Classes : 270 (231 dans platform 11.3)• Méthodes : 2000 (1946 dans platform 11.3)• Lignes de code : 25970 (24717 dans platform 11.3)• Commentaires : 62155 (62154 dans platform 11.3)• Lignes vides : 11877 (11800 dans platform 11.3)
• Joomla! Platform 11.4 Stable (4 Janvier 2012)Le dépot • git://github.com/joomla/joomla-platform.git
18/04/2012
Joomla! Day Alger 15
jFactory
18/04/2012
Joomla! Day Alger 16
La classe jFactory (1)• Une dizaine de méthodes sont associées à à la classe Jfactory
• getUser() : Retourne les informations d’un utilisateur connecté• getDBO() : Permet l’accès et la récupération de la base de donnée • getEditor() : Permet d’accéder à l’éditeur sélectionné de joomla (par exemple TinyMCE)• getConfig() : Permet d’accéder aux différentes configurations du site • getURI() : Retourne des information concernant l’url : actuelle, de base…• getLanguage() : Retourne le langage actuel • getDate() : Retourne la date et l’heure actuelle • getDocument() :Manipule les propriétés du document : Title, Metadata, Description…• getApplication() : Renvoie une information sur l’objet • getTemplate() : Récupère l’objet template • getSession() : Permet de créer une session • getACL() : Gère les droits d’accès aux objets • getMailer() , getCache() , getXMLParser() : …
18/04/2012
Joomla! Day Alger 17
La classe jFactory (2)
• getUser() : Retourne les informations d’un utilisateur connecté.
• getDBO() : Permet l’accès et la récupération des données à partie de la BD.
18/04/2012
Joomla! Day Alger 18
getDBO(1)?Se connecter à la base de données• $database = &JFactory::getDBO();
On insère dans la table users et dans le champ username, le pseudo Joomla. • $database->setQuery("INSERT INTO #__users
(`username`) VALUES ('Joomla')");
Exécution de la requête :• $database->query();
18/04/2012
Joomla! Day Alger 19
getDBO(2)?Pour sélectionner le pseudo où le id = 1• $query = "SELECT username FROM #__user
WHERE id=1";
Exécution de la requête :• $database->setQuery($query);
Ce qui suit écrira Joomla si l'utilisateur avec l'id 1 dans ma base s'appelle Joomla • echo $database->LoadResult();
<!– pour une requête qui renvoie un résultat sur une ligne -->18/04/2012
Joomla! Day Alger 20
getDBO(3)?Pour une requête qui renvoie plusieurs résultats on utilise loadObjectList :
• $query = "SELECT * FROM #__categories"; • $database->setQuery($query);
On charge les résultats de la requête dans l'objet $rows
• $rows = $database->loadObjectList();
foreach ($rows as $row) { echo $row->title ." : ". $row->description."<br />"; }
<!– On affiche le titre et la description de chaque tuple -->18/04/2012
Joomla! Day Alger 21
getDBO(4) ?
• Pour afficher le prefix des tables
• $db =& JFactory::getDBO(); • echo "Database prefix is : " . $db->getPrefix();
18/04/2012
Joomla! Day Alger 22
getUser() ?• $UserInfo =& JFactory::getUser();
Pour affichera l'id de l'utilisateur • $UserInfo->id; Le nom de l'utilisateur • $UserInfo->name;
• username, email, password , usertype, registerDate , lastvisitDate , block , guest, gid, …
18/04/2012
Joomla! Day Alger 23
The Question ?
• Pourquoi choisir Joomla! Platform ?
• Peut-on utiliser l’API Joomla! en externe de Joomla! ?
18/04/2012
Joomla! Day Alger 24
Liens utiles ?• http://api.joomla.org• http://docs.joomla.org• http://code-joomla.blogspot.com/2011/05/la-classe-
jfactory.html• http://blog.netassopro.com/compte-rendu-du-joomladay-
2010• http://developer.joomla.org/news/380-version-11-4-of-the-
joomla-platform-released.html
18/04/2012
Joomla! Day Alger 25
QR ?
18/04/2012