Tout savoir pour devenir un pro de PluXml, mais pas seulement...

Plugin plxMyProtectEmails


Rédigé par jack le Aucun commentairee

plxMyProtectEmails permet de protéger l'affichage des adresses emails dans les articles et les pages statiques de PluXml en utilisant un système d'encodage javascript.

Ainsi une simple adresse email du genre


webmaster@monsite.com

sera remplacée par


<script>eval(unescape('%64%6f%63%75%6d%65%6e%74%2e%77%72%69%74%65%28%27%3c%61%20%68%72%65%66%3d%22%6d%61%69%6c%74%6f%3a%77%65%62%6d%61%73%74%65%72%40%6d%6f%6e%73%69%74%65%2e%63%6f%6d%22%3e%77%65%62%6d%61%73%74%65%72%40%6d%6f%6e%73%69%74%65%2e%63%6f%6d%3c%2f%61%3e%27%29'))</script>

 

Visuellement rien ne changera pour vos visiteurs (ils verront toujours l'adresse email en clair), mais en revanche si vous éditez le contenu de la page, vous constaterez que c'est bien la partie encodée qui est utilisée dans le code source.

Cet encodage évitera que les robots spammeurs viennent récupérer les adresses emails. Même si on peut penser que cette solution n'est pas fiable à 100%, cela restera un bon premier niveau de protection.

Le plugin est disponible dans la partie Plugins du site ou il peut être téléchargé directement à partir du plugin MyPluginDownloader s'il est installé sur votre site.

Installez et activez le plugin.
Aucune configuration n'est requise.

DClassé dans : Plugin ,Mots clés : Plugins, Documentation, Sécurité, Email

Tester l'existence d'un plugin à partir d'un plugin


Rédigé par jack le Aucun commentairee

Pour tester l'existence d'un plugin, ajoutez le code suivant dans la classe de votre plugin:

public static function isPluginExists($plugname) {

	if(defined('PLX_ADMIN'))
		$plxObj = plxAdmin::getInstance();
	else
		$plxObj = plxMotor::getInstance();
			
	return isset($plxObj->plxPlugins->aPlugins[$plugname]);
}
A partir de votre plugin vous pouvez maintenant tester l'existence d'un autre plugin en utilisant ce type de code:

if(plxMyPlugin::isPluginExists('plxPlugin_a_Tester') {
	// si le plugin existe
} else {
	// si le plugin n'existe pas
}
Ici plxMyPlugin est le nom de la classe de votre plugin et plxPlugin_a_Tester est le nom de la classe du plugin à tester.

DClassé dans : PluXml, Bout de code ,Mots clés : Plugins, Snippet

Page de plugins sur Pluxopolis


Rédigé par jack le 4 commentairese

Depuis que Google a décidé début 2014 de ne plus permettre de mettre à jour la zone de téléchargement sur nos sites Google Code, j'ai complètement basculer tous les codes source de mes plugins pour PluXml sur github. Un mal pour un bien on peut dire car github offre de nombreuses fonctionnalités et beaucoup plus de souplesse dans la gestion des dépôts git que Google Code, devenu complètement dépassé et obsolète face à la concurrence.

J'en ai donc profiter pour créer une nouvelle page sur Pluxopolis pour lister la totalité de mes plugins et vous faciliter ainsi leur téléchargement.

Ça se passe donc ici, sur la nouvelle page des Plugins.

DClassé dans : Actualité ,Mots clés : Plugins, github, git

Bonne pratique pour déclarer jQuery dans un plugin


Rédigé par jack le 2 commentairese

Pour tester si jQuery est déjà présent en mémoire et éviter de le charger inutilement plusieurs fois, voici la déclaration à utiliser dans un plugin de PluXml.

<script type="text/javascript">
/* <![CDATA[ */
   if(typeof(jQuery) === "undefined") document.write(\'<script  type="text/javascript" src="https://pluxopolis.net/<?php echo PLX_PLUGINS; ?>monPlugin/jquery-x.xx.x.min.js"><\/script>\');
/* !]]> */
</script>
Si vous le pouvez, n'hésiter pas à déclarer jQuery en fin de page en utilisant le hook ThemeEndBody pour la partie visiteur ou le hook AdminFootEndBody pour la partie administration.

Exemple avec le hook ThemeEndBody:

<?php

class monPlugin extends plxPlugin {

	public function __construct($default_lang) {

        # appel du constructeur de la classe plxPlugin (obligatoire)
        parent::__construct($default_lang);

		$this->addHook('ThemeEndBody', 'ThemeEndBody');

    }
	
	public function ThemeEndBody() {?>

<script type="text/javascript">
/* <![CDATA[ */
   if(typeof(jQuery) === "undefined") document.write(\'<script  type="text/javascript" src="https://pluxopolis.net/<?php echo PLX_PLUGINS; ?>monPlugin/jquery-x.xx.x.min.js"><\/script>\');
/* !]]> */
</script>	
	
	<?php
	}
}
?>

Adaptez avec le nom de votre plugin (monPlugin) et compléter le numéro de version utilisé de jQuery dans le nom du fichier (jquery-x.xx.x.min.js).

src="https://pluxopolis.net/monPlugin/jquery-x.xx.x.min.js"

Merci à Jerry Wham pour avoir partagé cette bonne pratique sur le forum de PluXml.

DClassé dans : PluXml ,Mots clés : PluXml, Programmation, Plugins, jQuery

un nouvel écran de gestion des plugins ?


Rédigé par jack le 5 commentairese

Pour la prochaine version de PluXml (la version actuelle est la 5.1.7), des petits changements seront visibles sur l'écran de gestion des plugins.

Vous étiez plusieurs à signaler sur le forum de PluXml qu'il était difficile de distinguer visuellement les plugins actifs de ceux inactifs. Voilà qui va être résolu avec deux menus distincts: un menu "Plugins actifs" et "Plugins inactifs". Une case à cocher est également prévue pour sélectionner en une fois tous les plugins de la page, ce qui permettra de tout activer ou désactiver rapidement.
Comme vous pouvez le voir ces modifications ne sont pas une révolution en soi, mais cela fait partie de ces petits détails qui améliorent l'ergonomie et rend l'outil plus compréhensible et accessible.



A noter également qu'une partie du moteur des plugins a été réécrite pour optimiser le temps de chargement et l'occupation mémoire. En contrepartie il pourra y avoir un impact sur le fonctionnement de certains plugins qu'il faudra corriger pour qu'ils (re)deviennent compatibles. Rien de bien méchant mais si vous avez utilisez le type d'instruction comme ci-dessous, attendez-vous à déployer un correctif pour vos plugins.

$this->plxMotor->plxPlugins->aPlugins['monPlugin']['instance']
sera à remplacer tout simplement par:

$this->plxMotor->plxPlugins->aPlugins['monPlugin']
Bien entendu tout sera précisé plus en détails quand il le faudra...

DClassé dans : PluXml ,Mots clés : PluXml, Plugins

Top