PluXml.org

Blog ou CMS à l'Xml

Vous n'êtes pas identifié(e).

#1 06/05/2014 23:56:50

Francis
Membre
Inscription : 19/11/2011
Messages : 422
Site Web

[plugin] Plugin de test, pour apprendre ou pour des essais

J'avais besoin d'un petit plugin tout simple et qui ne pose pas de problème, juste pour tester l'accès au plugin et la prise en compte des paramètres.
J'ai donc écrit un petit plugin appelé "test", à télécharger ici pour qui serait intéressé.

Il pourra servir à l'occasion :
- pour apprendre à créer un plugin, à partir d'un exemple simple
- ou pour faire des tests, comme le nom du plugin l'indique  smile

Ce plugin renvoie ou affiche un texte, suivi des valeurs de 4 paramètres : param_a, param_b, param1 et param2.

Un autre paramètre indique s'il faut afficher le résultat ou renvoyer la chaîne de texte :
- paramètre "action"=>"echo" pour afficher le texte
- absence de ce paramètre "action" (ou n'importe quelle autre valeur pour ce paramètre) si le plugin doit simplement renvoyer la chaîne de caractères.

- Les deux paramètres param_a et param_b sont enregistrés dans data/configuration/plugins/test.xml.
Ils sont initialisés par le plugin lors de son activation et peuvent ensuite être modifiés dans la configuration du plugin.

- Les deux paramètres param1 et param2, ainsi que le paramètre facultatif "action", sont transmis au plugin par le callHook, dans le tableau de paramètres.

Pour appeler ce plugin et afficher le texte généré :
- soit :

[== PHP ==]
$texte = eval($plxShow->callHook('test', array('param1'=>'valeur1', 'param2'=>'valeur2')));
echo $texte;

- soit :

[== PHP ==]
eval($plxShow->callHook('test', array('action'=>'echo', 'param1'=>'valeur1', 'param2'=>'valeur2')));

Comme ça il y a les bases d'un plugin, avec :
- des paramètres enregistrés et générés lors l'activation (et modifiables dans la configuration)
- d'autres paramètres transmis au moment de l'appel du plugin
- et aussi les deux cas de figure de base : renvoi d'une chaîne de caractères ou affichage direct d'un contenu.

Depuis la version 1.1, possibilité d'appeler ce plugin de test avec un shortcode, à l'intérieur d'un article ou d'une page statique (le plugin shortcodes doit être installé et activé) :

[test param1="valeur1" param2="valeur2]

Téléchargement
Lien de téléchargement de la dernière version

Historique des versions

## Version 1.1 (30/10/2017) ##
[+] Ajout du shortcode associé, intégré dans le plugin (modification du fichier test.php et ajout du dossier spxshortcodes)

## Version 1.0 (06/05/2014) ##
Version initiale

Dernière modification par Francis (26/11/2017 00:08:48)

Hors ligne

#2 09/05/2014 14:53:43

Jerry Wham
Membre
Inscription : 13/07/2011
Messages : 2 554
Site Web

Re : [plugin] Plugin de test, pour apprendre ou pour des essais

Merci Francis. Bonne idée.
Je n'ai pas regardé le code, mais il serait peut-être intéressant de mettre un lien dans la doc du développeur ?

Dernière modification par Jerry Wham (09/05/2014 14:54:39)


Mangez un castor, vous sauverez un arbre !

J'ai la tête dans le  ...code

Hors ligne

#3 30/10/2017 14:09:08

Francis
Membre
Inscription : 19/11/2011
Messages : 422
Site Web

Re : [plugin] Plugin de test, pour apprendre ou pour des essais

Version 1.1 avec shortcode inclus, pour pouvoir appeler ce plugin dans un article ou une page statique.

Cela suppose d'avoir installé et activé le plugin shortcodes.

Lien et historique dans le premier message.

Dernière modification par Francis (30/10/2017 14:10:58)

Hors ligne

#4 05/01/2018 18:54:13

SieurVLD
Membre
Inscription : 23/01/2016
Messages : 17

Re : [plugin] Plugin de test, pour apprendre ou pour des essais

Bonjour,

Merci pour ce plugin qui facilite la prise en main.

Dans les commentaires de test.php et du shortcode, il y a une erreur :
$texte = eval($plxShow->callHook('test', array('param1'=>'valeur1', 'param2'=>'valeur2')));
c'est plutôt  :
$texte = eval('return '.$plxShow->callHook('test', array('param1'=>'valeur1', 'param2'=>'valeur2')).';');
et s'il y a des espaces :
$texte = eval('return \''.$plxShow->callHook('test', array('param1'=>'valeur1', 'param2'=>'valeur2')).'\';');

Et peut être ajouter un config.php dans le plugin :

[== PHP ==]
<?php
/**
 * Plugin test
 **/
 
	if(!defined('PLX_ROOT')) exit; 
	
	# Control du token du formulaire
	plxToken::validateFormToken($_POST);
	
	function setv($var) {
		global $plxPlugin;
		if (!empty($_POST[$var]))
			$plxPlugin->setParam($var, $_POST[$var], 'cdata');
	}
	
	if(!empty($_POST)) {
		setv('testRight');
		setv('testName');
		setv('testPos');
		setv('testCaption');
		$plxPlugin->saveParams();
		header('Location: parametres_plugin.php?p=test');
		exit;
	}
?>

<h2><?php $plxPlugin->lang('L_CONFIG_MENU_DESCRIPTION') ?></h2>

<form action="parametres_plugin.php?p=test" method="post">
	<fieldset>
	
		<p>
			<label for="id_testRight"><?php echo $plxPlugin->getLang('L_CONFIG_TEST_RIGHTS') ?></label>
			<?php $rights = array('PROFIL_ADMIN' => $plxPlugin->getLang('L_PROFIL_ADMIN'), 'PROFIL_MANAGER' => $plxPlugin->getLang('L_PROFIL_MANAGER'), 'PROFIL_MODERATOR' => $plxPlugin->getLang('L_PROFIL_MODERATOR'), 'PROFIL_EDITOR' => $plxPlugin->getLang('L_PROFIL_EDITOR'), 'PROFIL_WRITER' => $plxPlugin->getLang('L_PROFIL_WRITER'));
			plxUtils::printSelect ( 'testRight', $rights, $selected = plxUtils::strCheck($plxPlugin->getParam('testRight'))) ?>
		</p>
		
		<p>
			<label for="id_testName"><?php echo $plxPlugin->getLang('L_CONFIG_TEST_NAME') ?></label>
			<?php plxUtils::printInput('testName',plxUtils::strCheck($plxPlugin->getParam('testName')),'text','15-15') ?>
		</p>
    
		<p>
			<label for="id_testPos"><?php echo $plxPlugin->getLang('L_CONFIG_TEST_POSITION') ?></label>
			<?php plxUtils::printInput('testPos',plxUtils::strCheck($plxPlugin->getParam('testPos')),'text','2-2') ?>
		</p>
    
		<p>
			<label for="id_testCaption"><?php echo $plxPlugin->getLang('L_CONFIG_TEST_CAPTION') ?></label>
			<?php plxUtils::printInput('testCaption',plxUtils::strCheck($plxPlugin->getParam('testCaption')),'text','15-20') ?>
		</p>
	</fieldset>
	<br />
	<?php echo plxToken::getTokenPostMethod() ?>
	<input type="submit" name="submit" value="<?php echo $plxPlugin->getLang('L_CONFIG_SAVE') ?>" />
</form>

et ajouter ceci dans test.php :

[== PHP ==]
# limite l'accès à l'écran d'administration du plugin
$rights = array();
for($i = 0; $i <= constant($this->getParam('testRight')); $i++) {
	$rights[] = $i;
}
call_user_func_array(array($this,"setAdminProfil"), $rights);

# Personnalisation de l'administration de test
$this->setAdminMenu($this->getParam('testName'), $this->getParam('testPos'), $this->getParam('testCaption'));

Hors ligne

#5 05/01/2018 22:44:49

Francis
Membre
Inscription : 19/11/2011
Messages : 422
Site Web

Re : [plugin] Plugin de test, pour apprendre ou pour des essais

Bonjour SieurVLD,

Je suis heureux que ce petit plugin continue à rendre service, de mon côté je m'en suis resservi il y a quelque temps pour faire des essais.

En tout cas, merci bien pour ces rectifications et pour ces propositions intéressantes.
Je vais regarder tout ça en détail dès que je pourrai.

Hors ligne

Pied de page des forums

A propos Nous soutenir Contact Twitter Google+
Copyright © 2006-2018 PluXml.org, tous droits réservés