Personal tools
User Handbook/Admin Panel/Extensions/User Defined Tags/fr
From CMSMS
Table of Contents
- Documentation en français
- Installation
- Par où commencer
- Le panneau d'administration
- Extensions
- Trucs et astuces
- Glossaire
- Guide du développeur
This page in: English - Deutsch - Français - Svenska - Русский - Norsk - Polski - Nederlands - Español - Lietuvių
Version simplifiée
Les tags personnalisés (appelés tags utilisateurs) sont un moyen très simple d'insérer du code PHP dans votre site. Pour les utiliser, Il suffit de créer un nouveau tag et d'y coller votre code PHP (en retirant "<?php" et "?>"). Vous pouvez alors utiliser les tags smarty en utilisant la syntaxe suivante : {tag_name}
L'installation par défaut permet l'utilisation d'un tag prédéfini et que vous pouvez exploiter en utilisant {user_agent}
Paramètres pour les tags
Vous pouvez passer des paramètres aux tags par exemple
"{image_link src='hedgehog'}"
et le code du tag correspondant :
echo '<a href="' . $params['src'] . '.jpg" target="_blank">'; echo '<img src="t_' . $params['src'] . '.jpg"></a>';
Version détaillée
Comment créer un Tag personnalisé
Comme beaucoup de choses dans un CMS, ajouter un nouveau plugin est simple. Pour ajouter votre propre plugin, suivez ces instructions :
- L'éditeur de plugin est accessible dans la partie administration et vous devez vous authentifier en tant qu'admin, ou bien en tant qu'un utilisateur disposant des permissions adéquates.
- Dans le panneau d'administration, cliquez sur 'Extensions -> tags utilisateurs' en haut du menu déroulant.
- En bas de la page, cliquez sur 'Ajouter un tag utilisateur'.
- Dans le champ 'Nom' saisissez le nom de votre tag (ce champ ne peut contenir que des lettres, des chiffres ou des underscores). C'est ce que vous devrez saisir à l'intérieur des parenthèses pour ajouter un tag dans une page et donc choisissez un nom représentatif mais pas trop long.
- Dans le champ 'Code' saisissez le code PHP qui correspondra au tag quand la page sera appelée. (Voir partie suivante pour plus d'infos)
- Cliquez sur le bouton 'Envoyer'.
Votre premier Tag personnalisé
Au lieu de se focaliser sur chaque détail d'un plugin ou de PHP, un simple exemple devrait vous aider à démarrer. Comme toutes les introductions à la programmation, nous allons suivre pas à pas les étapes pour essayer d'écrire en premier lieu un script permettant d'afficher "hello world".
Suivez les étapes ci-dessus pour créer un nouveau plugin dont le nom est "helloworld" (sans guillemets) et dans le champs 'Code' saisissez ou copier/coller le code ...
echo 'Hello World!';
Cliquez sur envoyer. Pour tester le module, créez une nouvelle page de contenu (voir Add Content), saisissez "{helloworld}" (sans guillemets) quelquepart dans la partie contenu et cliquez sur 'apperçu'. Au lieu de voir afficher {helloworld} vous devriez voir afficher "Hello World!".
La commande echo écrit simplement ce qu'il y à l'intérieur des guillemets et donc nous pouvons aussi utiliser cela pour ajouter du code HTML, ou même du DHTML ou du Javascript.
Essayez maintenant ce code (passez juste le Plugin en edition)
echo '<h4>Hello World!</h4>';
Testez le de la même façon et vous deviez voir apparaître quelque chose qui ressemble à ceci :
Hello World!
"Mais on peut faire cela directement dans une zone de texte riche !" me direz-vous. Bien sûr, mais les Tags sont vraiment très utiles quand vous voulez ajouter des paramètres. Par exemple, si vous essayez de dire bonjour à quelqu'un qui s'appelle Bob, essayez le code suivant :
echo '<h4>Hello ' . $params['name'] . '!</h4>';
Ceci permet d'ajouter le paramètre "name" à ce plugin ; le contenu du paramètre sera placé ici quand le plugin sera appelé grâce au tag correspondant. Testez le de la même façon que précédemment en remplaçant "{helloworld}" par "{helloworld name='Bob'}". Vous devriez voir apparaître quelque chose qui ressemble à ceci :
Hello Bob!
C'est juste pour présenter les bases de l'écriture d'un Plugin mais vous pouvez faire des choses vraiment utiles avec la commande echo, les paramètres et un peu d'imagination alors, pensez à ce que vous pourriez faire si vous appreniez le langage PHP ...
Passer le contenu de la page en paramètre
Vous pouvez accéder au contenu de la page au sein d'un tag personnalisé en l'utilisant comme paramètre: Dans votre template:
{content assign=pagecontent}
{table_of_contents thepagecontent="$pagecontent"}
Dans votre Tag personnalisé nommé "table_of_contents":
echo $params['thepagecontent']; // Affiche la page de contenu.
I use this so I can parse to the page content to automatically create a table of contents.
Comment récupérer l'url d'une page à partir de l'identifiant du contenu (content_id)
Ceci suppose que votre identifiant de contenu (content_id) est dans la variable $page_content_id :
global $gCms; $hm =& $gCms->GetHierarchyManager(); $curnode =& $hm->getNodeById($page_content_id); $curcontent =& $curnode->GetContent(); echo 'Page URL: ' . $curcontent->GetURL();
Comment executer un tag Smarty à partir d'un tags personnalisés
En faisant comme cela :
global $gCms;
$smarty = &$gCms->GetSmarty();
$smarty_data = "{menu}";
$smarty->_compile_source('temporary template', $smarty_data, $_compiled );
@ob_start();
$smarty->_eval('?>' . $_compiled);
$_contents = @ob_get_contents();
@ob_end_clean();
echo $_contents;
Le code suivant devrait vous permettre de gérer plusieurs domaines avec une seule installation de CMSMS :
global $gCms;
$smarty = &$gCms->GetSmarty();
$url = $_SERVER['REQUEST_URI'];
if(eregi('domain1',$url))
{
$smarty_data = "{menu template='cssmenu.tpl'}";
}
else if(eregi('domain2',$url))
{
$smarty_data = "{menu template='cssmenu2.tpl'}";
}
$smarty->_compile_source('temporary template', $smarty_data, $_compiled );
@ob_start();
$smarty->_eval('?>' . $_compiled);
$_contents = @ob_get_contents();
@ob_end_clean();
echo $_contents;
Cette partie consiste à créer des scripts et à les appeler à tous moments.
Créer un tag utilisateur
En bas de la page Tags utilisateurs, cliquer sur Ajouter un Tag utilisateur. Nommer le par exemple "beta" puis saisissez le code Par exemple :
//Vérifie si on a choisit une valeur ici NomImmeuble
if(isset($_POST['NomImmeuble']) and $_POST['NomImmeuble']!="")
{
//Création de la table avec bordure, centré dans la fenêtre
echo "<table border=1 width='10'>";
$valeur = $_POST['NomImmeuble'];
$reqt = "SELECT * FROM agence WHERE NomImmeuble = '$valeur'";
$rest = mysql_query($reqt) or die ("Exécution de la requête impossible");
while ($ligne = mysql_fetch_array($rest))
{
....
Pour terminer, il suffit d'appuyer sur ENVOYER. Maintenant que le tag utilisateur est terminé, il suffit d'insérer {beta} dans une page pour appeler le code correspondant.
Supprimer un tag utilisateur
Dans la page des tags utilisateurs, il suffit de cliquer sur la corbeille du tag en question, pour le supprimer.
This page in: English - Deutsch - Français - Svenska - Русский - Norsk - Polski - Nederlands - Español - Lietuvių
