Aide au projet spx : plugins pour pluxml - Forums pluxml
Vous n'êtes pas identifié(e).
Je me permets de déposer le premier shortcode (créé par francis)
Ce shortcode permet d'appeler n'importe quel plugin actif à l'intérieur d'une page, en écrivant un code du type :
[== Indéfini ==]
[plxplugin plugin="nom_du_plugin" param1="..." param2="..." param3="..."]
Code a insérer dans config.php du thème :
[== PHP ==]
<?php
/* ---------------------------- FONCTION SHORTCODE plxplugin ---------------------------------*/
// Ce shortcode permet d'appeler n'importe quel plugin actif à l'intérieur d'une page,
// en écrivant un code du type :
// [plxplugin plugin="nom_du_plugin" param1="..." param2="..." param3="..."]
//
// Si le plugin affiche un contenu avec echo, celui-ci est récupéré et retourné par le shortcode
// Sinon, si le plugin renvoie une valeur, celle-ci est retournée directement
// => pour différencier ce dernier cas (moins courant), écrire plugin="val-nomduplugin" au lieu de plugin="nomduplugin"
function plxplugin_func($tab_atts) {
$atts = shortcode_atts(array("plugin" =>"", "txtdebut"=>"", "txtfin"=>""), $tab_atts);
extract($atts, EXTR_OVERWRITE);
unset($tab_atts["plugin"], $tab_atts["txtdebut"], $tab_atts["txtfin"]); // attributs inutiles à transmettre au plugin
$plxShow = plxShow::getInstance(); // pour appeler les fonctions de la classe plxShow
// Si le nom du plugin est précédé de "val-", c'est qu'il renvoie une valeur qui sera retournée directement
// Sinon, le plugin affiche lui-même le contenu, qu'il faut intercepter pour pouvoir la retourner
if (substr($plugin, 0, 4)=="val-") {
$plugin_retourne_valeur = true;
$plugin = substr($plugin, 4); // suppression des 4 premiers caractères "val-" qui précèdent le nom du plugin
}
else { $plugin_retourne_valeur = false; }
// Vérification de l'existence du plugin, avant de l'appeler, pour éviter tout message d'erreur
if ( ! empty($plxShow->plxMotor->plxPlugins->aPlugins[$plugin]) ) {
// Appel de la fonction du plugin par son nom $plugin avec transfert du tableau de paramètres $tab_atts
if ($plugin_retourne_valeur) { // Si le plugin renvoie le contenu sous forme de variable
$resultplugin = $plxShow->plxMotor->plxPlugins->aPlugins[$plugin]->$plugin($tab_atts);
return $txtdebut . $resultplugin . $txtfin;
}
else { // Si le plugin affiche directement le contenu avec "echo"
ob_start();
$plxShow->plxMotor->plxPlugins->aPlugins[$plugin]->$plugin($tab_atts);
$resultplugin = ob_get_clean();
return $txtdebut . $resultplugin . $txtfin;
}
}
else { return ""; } // Fin du if ... else ... testant l'existence ou non du plugin
}
add_shortcode( 'plxplugin', 'plxplugin_func' );
/*
Exemple d'utilisation :
[plxplugin plugin="monplugin" param1="..." param2="..."]
Les noms des paramètres param1, param2, ... sont à remplacer par ceux utlisés dans le plugin.
Il est possible de fournir un texte à afficher, avant et après : paramètres txtdebut="..." et txtfin="..."
Si le plugin renvoie un contenu au lieu de l'afficher, il est possible d'afficher ce contenu avec echo,
en ajoutant "echo-" avant le nom du plugin, comme par exemple pour le plugin "test" :
[plxplugin plugin="echo-test" param1="..." param2="..."]
/* -----------------------------------------------------------------------------------------------*/
?>
Pour le tester depuis n'importe quelle page :
Exemple d'utilisation :
[== Indéfini ==]
[plxplugin plugin="monplugin" param1="..." param2="..."]
Les noms des paramètres param1, param2, ... sont à remplacer par ceux utlisés dans le plugin.
Il est possible de fournir un texte à afficher, avant et après : paramètres txtdebut="..." et txtfin="..."
Si le plugin renvoie un contenu au lieu de l'afficher, il est possible d'afficher ce contenu avec echo,
en ajoutant "val-" avant le nom du plugin, comme par exemple pour le plugin "test" :
[plxplugin plugin="val-test" param1="..." param2="..."]
Petit à petit l'oiseau fait son nid.
creation de site web : http://secretsitebox.fr/ - création artistique : http://art.je-evrard.net
Hors ligne