Framework Joomla - partie 2


III  - Etude de quelques classes du Framework Joomla

III - 1  La classe JFactory
Une dizaine de méthodes sont associées à à la classe JFactory on peut en citer les principales :
getUser() : Retourne les informations d’un utilisateur connecté (Exemple1)
getDBO() : Permet l’accès et la récupération de la base de donnée ( Exemple2)
getEditor() : Permet d’accéder à l’éditeur sélectionné de joomla (par exemple tynimce)(Exemple3)
getConfig() : Permet d’accéder aux différentes configurations du site (Exemple 4)
getURI() : Retourne des information concernant l’url : actuelle, de base…(Exemple5)
getLanguage() : Retourne le langage actuel (Exemple 6)
getDate() : Retourne la date et l’heure actuelle (Exemple7)
getMailer() :Permet d’envoyer un mail (Exemple8)
getDocument() :Manipule les propriétés du document : Title, Metadata, Description…(Exemple9)
getApplication() : Renvoie une information sur l’objet (Exemple 10 )
getTemplate() : Récupère l’objet template (Exemple 11)
getSession() : Permet de créer une session (Exemple 12)
getACL() : Gère les droits d’accès aux objets
getCache() : Renvoie une référence à l'objet cache
getXMLParser() : Renvoie une référence à un objet xml parser( Exemple 13 )

Utilisation de la méthode getUser()

Exemple 1 :

Cet exemple  permet d’afficher les  identifiants d’un utilisateur  :

$user =& JFactory::getUser();
if (!$user->guest) {
  echo 'You are logged in as:
'
;
  echo 'User name: ' . $user->username . '
'
;
  echo 'Real name: ' . $user->name . '
'
;
  echo 'User ID  : ' . $user->id . '
'
;

}

 

 - Nom d’utilisateur

-          Nom

-          - identité

-         

Utilisation de la méthode getDBO()

La méthode getDBO() a pour principal objectif , la connexion et l’extraction des données de la base de donnée de Joomla. Pour se connecter et extraire des donnée de la base de joomla plusieurs autres méthodes sont conjointement utilisées avec cette dernière on peu en citer :

loadObjectList()
loadResult()
loadResultArray()
loadAssoc ()
loadAssocList()
LoadObject
loadRow()
loadRowList()

Utilisation de loadObjectList()

Après avoir établit une connexion à la base de donnée à l’aide de l’instruction :

$db=& JFactory::getDBO();

Et après avoir créer une requete l’avoir envoyé par l’instruction :

$db->setQuery($query);

La méthode loadObjectList() est utilisé à ce niveau pour récupérer les donnée de la table sélectionnée dans la requête sous forme d’un tableau d’objet ( c.a.d un tableau array() dont les éléments qui le constitut sont des objets ) . Cette méthode charge un tableau d'objets ou un tableau associatif d'objets.


Exemple2 (loadObjectList() ):

Voici un exemple permettant d’afficher les 5 derniers articles à l’aide de la méthode getDBO()  et la méthode loadObjectList()

$db=& JFactory::getDBO();
$query = $db->getQuery(true);
$query="SELECT*FROM #__content order by id desc limit 0, 5 ";
$db->setQuery($query);
$result=$db->loadObjectList();
       foreach($result as $res){
 echo"Titre : ".$res->title;
 echo"
Crée le  : "
.$res->created;
 echo"

";

 }

Cet exemple affiche les titres des derniers articles avec la date de leurs création

Remarque :

Si on veut récupérer une seule donnée de la base de joomla on utilise autre méthode que loadObjectList(), On pourra utiliser à cet effet la méthode loadResult() ou loadAssoc()

Utilisation de la méthode loadResult()

Cette méthode appliquée d’une façon native renvoie le premier enregistrement de la table sélectionnée dans la requête. Si nous voulons récupérer un enregistrement spécifique nous devons le spécifier dans la requête de sélection

Exemple 4 ( loadResult() ): Voici un exemple permettant d’afficher le nom de l’article dont l’id=1

$db =& JFactory::getDBO();
$sql = $db->getQuery(true);
$sql = 'SELECT title  FROM #__content where  id=1';
$db->setQuery( $sql );
$result = $db->loadResult();
echo $result;


Utilisation de la méthode loadAssoc()

Cette méthode charge le premier enregistrement dans un tableau associatif en utilisant les noms des colonnes de table comme clés du tableau. Si on veut par exemple obtenir un enregistrement spécifique, on doit le spécifier dans la requête de sélection

Exemple  4 ( loadAssoc() ) Cet exemple permet d’afficher l’article dont l’id =5

$db =& JFactory::getDBO();
$sql = $db->getQuery(true);
$sql = 'SELECT*FROM #__content where id=5 ';
$db->setQuery( $sql );
$result = $db->loadAssoc();
echo $result[title];

  

Leave a Reply