DERNIERE INFO : Mise à jour 3.0.5 disponible !
Inscription Connexion client

API et variables internes

Introduction

Afin d’interagir techniquement avec une instance d’e-cms, une API simple et robuste est disponible et permet d’effectuer une multitude d’opérations ainsi que de récupérer diverses informations sur tout type de systèmes et scripts PHP.

A titre d’exemple, l’API peut être utilisée pour connecter un utilisateur à son compte e-cms en passant par un forum d’une technologie tierce et en récupérer ainsi les valeurs de leurs champs d’utilisateurs.

De plus, il est également possible d’utiliser l’API dans e-cms lui-même y compris dans les fichiers de thèmes !

Après l’API, cette page aborde aussi les variables internes à e-cms qui elles aussi peuvent être utilisés dans les fichiers de thèmes et donnent de nombreuses informations sur le statut du site et de la page courante.

Initialisation de l’API

Avant de pouvoir utiliser toutes les méthodes présentes dans l’API, cette dernière doit être initialisée et afin de préserver un niveau de sécurité conséquent, une clé de sécurité entre en considération et est nécessaire pour toute utilisation de cette même API.

Voici un exemple d’initialisation de l’API en partant du fait que le fichier où se trouve ce code est présent à la racine de votre installation d’e-cms :

include "engine/api.php";
$APIconnect = new ecmsAPI(array(
     'api_key' => 'EXEMPLE',
     'config_path' => 'config/config.php',
));
 

Comme vous pouvez le remarquer, la valeur api_key correspond à la clé d’API qui peut être trouvée dans l’administration de votre site e-cms dans le paragraphe « Informations techniques » de la section « Aide et crédits », cette clé est unique et ne doit pas être divulguée pour des raisons de sécurité.

La seconde valeur à entrer lors de l’initialisation appelée config_path correspond au chemin relatif vers le fichier de configuration config/config.php.

Une fois cette opération effectuée, l’API est initialisée dans la variable où vous avez déclaré son objet.
Cependant, si vous souhaitez utiliser l’API dans un fichier de thème, nous vous conseillions de l’initialiser dans un fichier nommée script_header.php et situé dans le dossier template/.
En effet dû à la complexité de la structure de chargement des fichiers de thèmes, le fichier template/script_header.php (si il est présent) est chargé très tôt dans le traitement des pages sous e-cms garantissant ainsi aucuns problèmes pour pouvoir utiliser l’API par la suite notamment dans les fichiers de thèmes plus traditionnels.

Référence de l’API

Vous trouverez ici une description technique de l’intégralité des méthodes présentes dans l’API, notez également que ces informations sont aussi présentes directement dans le code source de l’API situé dans engine/api.php.

ecmsAPI::GetSettings();
Méthode permettant de récupérer les paramètres principaux d'e-cms
@return array $this->settings_data

ecmsAPI::Login();
Méthode permettant de vérifier les identifiants de connexion ou de connecter un utilisateur via session et/ou cookie. Pour utiliser la connexion via session, une session doit être préalablement démarrée.
@param array $login_parrams: string login, string password, bool session, bool cookie
@return array $this->data_log_user or bool

ecmsAPI::GetUserData();
Méthode permettant d'obtenir les informations concernant un utilisateur particulier ainsi que les champs liées
@param int $id
@return array $this->user_data or bool

ecmsAPI::RegisterUser();
Méthode permettant d'enregistrer/inscrire un utilisateur
@param array $data: string username, string password, string email, int usergroup
@return bool

ecmsAPI::SetUserfield();
Méthode permettant de modifier un champ utilisateur existant
@param int $id, int $user_id, string $value
@return bool

ecmsAPI::ShowMenu();
Méthode permettant d'afficher le menu géré par e-cms
@param int $id = 0, string $menu_specificTag = false
@return void or bool

ecmsAPI::GetThemeVar();
Méthode permettant d'obtenir la valeur d'une variable de thème
@param int $id
@return string $data["value"] or bool

ecmsAPI::SetThemeVar();
Méthode permettant de modifier une variable de thème existante
@param int $id, string $value
@return bool

ecmsAPI::GetBanner();
Méthode permettant d'obtenir la valeur d'une bannière
@param int $id
@return string $data["content"] or bool

ecmsAPI::GetSpecificNews();
Méthode permettant d'obtenir un article ainsi que les diverses informations associés
@param int $id
@return array $this->specificNews_data or bool

ecmsAPI::GetStaticPage();
Méthode permettant d'obtenir une page statique ainsi que les diverses informations associés
@param int $id
@return array $this->staticPage_data or bool

Utilisation de l’API

A partir de la référence de toutes les méthodes décrites ci-dessus, il vous est possible de les utilisés via l’API.

Pour ce faire, et après avoir initialisé l’API comme décrit plus haut, il vous suffit d’utiliser la méthode que vous souhaitez via la variable avec laquelle l’objet de l’API est chargé.
A titre d’exemple, le code ci-dessous affichera le tableau de toutes les valeurs de l’article ayant l’identifiant 1 via l’API d’e-cms.

include "engine/api.php";
$APIconnect = new ecmsAPI(array(
     'api_key' => 'EXEMPLE',
     'config_path' => 'config/config.php',
));
 

if($news_values = $APIconnect->GetSpecificNews(1)){
     print_r($news_values);
} else {
     echo 'article introuveable';
}
 

Variables internes

En dehors de l’API et à l’intérieur d’e-cms lui-même comprenant ainsi le système et ses fichiers de thèmes, une multitude de variables sont disponibles donnant de nombreuses informations sur le statut du site et de la page courante.

La variable la plus important est $currentpage_infos qui contient dans un tableau des informations sur les propriétés même de la page en fonction son type de contenu.

Pour visualiser toutes les valeurs qui y sont présentes, vous pouvez utiliser la fonction print_r(); tel que print_r($currentpage_infos);

Pour finir, e-cms utilise un format unifié pour stoker les informations provenant directement des tables de la base de données. Par exemple sur la page d’affichage d’un article, les données sont stockés dans un tableau de la variable $data_news.
Il en vas de même pour les paramètres généraux  qui sont eux stockés dans $data_site.

Processus de connexion utilisateur

Dans e-cms en tant que système, le moyen le plus simple pour détecter si un utilisateur est connecté est d’utiliser la méthode Auth::isLogged() qui retournera true si l’utilisateur courant est connecté, qu’importe la méthode de connexion utilisée.

Dans un fichier externe au système e-cms, il est possible d’appeler la méthode Auth::isLogged() en incluant le fichier fonctions/authlog.php juste après avoir inclus le fichier config/config.php.
De plus, veuillez vous assurer qu’une session est bien initialisée en utilisant session_start(); par exemple.

Une fois la méthode appelée, cette dernière retournera sous forme de tableau toutes les valeurs de l’utilisateur dans la variable $data_current_user ainsi que toutes les valeurs de son groupe utilisateur dans la variable $data_current_usergroup.

Ci-dessous, vous trouverez un exemple sur comment vérifier si un utilisateur est connecté en utilisant la méthode Auth::isLogged() dans un fichier externe au système : 

<?php
session_start();
include "config/config.php";
include "fonctions/authlog.php";
 

if(Auth::isLogged()){
     echo 'utilisateur '.$data_current_user["login"].' connecté';
} else {
     echo 'utilisateur non-connecté';
}
?>
 

Pour finir, il est aussi possible de connecter un utilisateur via l’API comme décrit un peu plus haut via ecmsAPI::Login(). Cependant, notez qu’il est seulement possible de connecter un utilisateur via l’API et non savoir si un utilisateur est connecté ou non.

Pour contrer cette limitation, le plus simple est de stoker dans une session le fait que l’utilisateur se soit connecté avec succès via l’API et vérifier la valeur de cette même session pour savoir ensuite si l’utilisateur est connecté ou non.

Accueil > Documentation > Technique > API et variables internes