Erreur dans Guide du Dév PluXml 5.1.x
Hello,
alors je viens de finir mon plugin d'import des images des produits d'une boutique Prestashop,
et ça marche nickel :P ... sauf que je bug grave sur les Hook.
Et la doc. du développeur m'embrouille un peu, car il y a justement des erreurs
page 6: "A partir des fichiers thèmes"
page 11:
Et même en retournant les valeurs dans tous les sens pour cet exemple, ça ne marche pô :O
Je n'arrive donc pas à rajouter simplement la feuille de style du plugin dans le header admin
Voici le code
Le pire c'est que j'ai réussi avant-hier (très) tard dans la nuit mais qu'une maudite maladresse m'a tout fait perdre ! Je m'étais rendu compte qu'il y avait une erreur quelque part, mais là, mon cerveau ne marche plus.
Si on peut m'aider, help !
Merci.
_____
D.San
alors je viens de finir mon plugin d'import des images des produits d'une boutique Prestashop,
et ça marche nickel :P ... sauf que je bug grave sur les Hook.
Et la doc. du développeur m'embrouille un peu, car il y a justement des erreurs
page 6: "A partir des fichiers thèmes"
<?php $plxShow->callHook('PluginTest')) ?>
> la parenthèse de fin est en doublepage 11:
<?php
class test extends plxPlugin {
public function __construct($default_lang) {
# Appel du constructeur de la classe plxPlugin (obligatoire)
parent::__construct($default_lang);
# Déclaration des hooks
$this->addHook('AdminTopEndHead', 'AdminTopEndHead');
}
public function AdminTopHead() {
echo '<script type="text/javascript" src="'.PLX_PLUGINS.'test/test.js"></script>';
}
}
?>
> le nom du hook ne correspond pas à sa fonction ou vice versaEt même en retournant les valeurs dans tous les sens pour cet exemple, ça ne marche pô :O
Je n'arrive donc pas à rajouter simplement la feuille de style du plugin dans le header admin
Voici le code
<?php
class i2p2 extends plxPlugin {
public function __construct($default_lang) {
# Appel du constructeur de la classe plxPlugin (obligatoire)
parent::__construct($default_lang);
# limite l'accè a l'écran d'administration du plugin
$this->setConfigProfil(PROFIL_ADMIN);
# Déclaration des hooks
$this->addHook('AdminTopEndHead', 'AdminTopEndHead');
}
public function AdminTopEndHead(){
echo "\n".'<link rel="stylesheet" type="text/css" href="'.PLX_PLUGINS.'i2p2/style.css" media="screen" />';
}
}
?>
Le bug viendrait-il du nom du plugin ?Le pire c'est que j'ai réussi avant-hier (très) tard dans la nuit mais qu'une maudite maladresse m'a tout fait perdre ! Je m'étais rendu compte qu'il y avait une erreur quelque part, mais là, mon cerveau ne marche plus.
Si on peut m'aider, help !
Merci.
_____
D.San
Connectez-vous ou Inscrivez-vous pour répondre.
Réponses
Je ne doute pas qu'il y ait des erreurs de typo ou de rédaction dans la doc. Elle demande également a être mise à jour: faute de temps je n'ai pas pu encore le faire.
concernant l'instruction
Il n'est pas obligatoire que la fonction appelée (2ieme paramètre) porte le même nom que le hook (1er paramètre). Cela permet par exemple d'appeler la même fonction par plusieurs hooks.
si le nom de ta classe est i2p2, le fichier du plugin doit s'appeler i2p2.php et être stocké dans le dossier /plugins/i2p2/
Consultant PluXml
Ancien responsable et développeur de PluXml (2010 à 2018)
i2p2.php
> déclare bien les droits d'accès
> devrait insérer /plugins/i2p2/style.css dans le header de l'admin mais ne marche pas
> devra créer un hook et sa fonction d'affichage de la liste des images des produits créée par config.php
son code actuel: icon.png > l'icône s'affiche bien dans la liste des plugins
infos.xml > les données sont bien reprises dans la liste des plugins
parameters.xml > bien récupérés et traités dans config.php ( et même réécrits par la suite )
config.php > affiche très bien ce qu'on lui demande dans la page config du plugin
> récupération de parameters.xml
> connexion à la base SQL de Prestashop
> récupération des ID_image, ID_produit, etc...
> écriture de cette base dans i2p2_bdd.txt
> sélection des images à afficher dans PluXml
> rajout de ces données dans i2p2_bdd.txt
i2p2_bdd.txt > bdd des ID_img, nom des produits, etc... ( valeurs séparées par des tab, 1 ligne/image :P )
> bien géré par config.php
> sera traité par i2p2.php pour le hook
( de cette manière, on n'envoie qu'une seule requête, lorsqu'on configure le Plugin :cool:
on ne va pas quand même pas envoyer des requêtes à chaque fois qu'on charge une page pluXml quand-même ?! )
style.css
> gère le style de config.php mais je n'arrive pas à l'inclure via i2p2.php
> fonctionne bien quand il est appelé dans le dure de top.php de l'admin
dossier /lang avec:
en.php, en-help.php, fr.php, fr-help.php qui sont bien appelés dans config.php
Me manque le fichier admin.php et je les aurais tous fait
Mais y'en a pas l'utilité là
Donc voilà, le pb doit certainement provenir de ce fichier i2p2.php ci-dessus, mais où ?
grrrr
Je m'y replonge dès demain,
si entre-temps quelqu'un voit un truc louche dans ce code,
marki beaucoup !
____
D.San
quand tu visualises le code source de l'admin, est-ce que la ligne censée charger le css est présente ?
Consultant PluXml
Ancien responsable et développeur de PluXml (2010 à 2018)
Je m'étais dit que comme je ne crée pas de function OnActivate(),
ça ne servait à rien d'activer le plugin ...
Par contre,
la CSS n'est appelée que lorsque le plugin est activé ...
Et si je veux configurer le plugin avant de l'activer,
ben elle n'est donc pas appelée et c'est pas bô.
comment faire pour l'avoir sans activation ?
Dois-je ancrer l'appel dans un autre hook ?
Ou d'une autre manière ?
Une ptite dernière pour la route:
lorsque je crée un fichier admin.php,
où est-il utilisé et affiché dans le BO du site ?
Merci
_____
D.San
ps:
bon, j'crois que le titre de ce topic ne convient plus ...
c'est possible de le changer et de le glisser vers la section "Plugins" ?
On pourrait créer un topic "Doc. du Dév." histoire de recenser les coquilles et autres trucs ?
Si le plugin n'est pas activé, les hooks ne sont pas interprétés. (c'est un choix fonctionnel)
lorsque un fichier admin.php est présent dans le dossier du plugin, tu auras un menu supplémentaire dans la sidebar de l'administration (en bas). tu peux régler les droits utilisateurs pour restreindre l'accès à l'écran d'admin du plugin. Dans le constructeur de la classe du plugin tu peux mettre (ou pas), les lignes suivantes
En précisant les droits PROFIL_ADMIN, PROFIL_MANAGER, PROFIL_MODERATOR, PROFIL_EDITOR, PROFIL_WRITER
Plusieurs profils peuvent être spécifiés en les séparant par des virgules voir dans la doc le chapitre "Créer un écran d’administration"
ps: ce fil ne sera pas déplacé dans la partie "Plugins" du forum qui est réservé aux publications de plugins et pas aux discussions sur les plugins.
N'hésite pas, si tu as d'autres questions.
Consultant PluXml
Ancien responsable et développeur de PluXml (2010 à 2018)
Je t'envoie en MP l'adresse du blog en prod' avec un id et mdp pour que tu vois par toi-même.