sinon j aime bien ton idee de sous fonction install
la class te permet de definir des chose qui seront propre qu a cette class et donc evite les redeclaration !
pour notre probleme ce n est pas particulierement la solution mais vu qu on reparle de la maniere correcte de faire un plugin autant en parler
ça c'est mieux que ton pansement !
ça je suis d'acc : les class restant tout de même une solution, chacun ses préférences ^^
Je ne vois pas qui peut etre ce petit gars... ;-)
Mais je ne comprends toujours pas l'interet de la class puisqu'il faudra de toute facon redefinir une fonction identique à la fonction plugin_install dans la class, non?
Donc à ce moment la, autant créer directement une fonction identique à la fonction plugin_install dans un fichier functions.inc.php... Ou alors, créer une fonction spécifique pour l'installation de chaque plugin, et qui sera appelée au debut du main.inc.php si la config est incorrecte, ET par la fameuse fonction plugin_install... la encore, la class est inutile.
Exemple pour ComOnIndex:
Dans un fichier functions.inc.php
function comonindex_install ()
{
--- code d'installation ---
}
Dans le fichier maintain.inc.php
include_once( dirname(__FILE__) . '/functions.inc.php' );
function plugin_install ()
{
comonindex_install ();
}
Dans le fichier main.inc.php
if ((!isset($conf['comonindex'])) or (substr_count($conf['comonindex'] , ',') != 7)) {
$conf['comonindex'] = '5,on,,,20,norm,default,';
include_once( dirname(__FILE__) . '/functions.inc.php');
comonindex_install();
}
Dites-moi si je me trompe, car les class, c'est pas (encore!) mon truc...
je confirme ... c est l utilisation de class qu il faut ...
d ailleurs je me souvient des premieres verisons de mais plugins etaitent avec des class ... et un petit gars m a dit :
bahhh pourquoi tu mets dans des class c est bien trop lourd ... et moi hopp j ai retiré les classes ;o)
Hum... ayant appris le php il y a à peine 2 mois, je ne maitrise pas encore bien les class...
Va quand meme falloir que je m'y mette un de ces 4.
Mais ca me parait quand meme bien lourd pour ca...
Je vais garder ma première solution pour mes plugins ComOnIndex et MostCommented
l'utilisation de class :
dans main.inc
include_once(dirname(__FILE__).'/class.inc.php');
add_event_handler([...]
$[nom_du_plug] = new[nom_de_la_class_du_plug]($plugin_name, [toute les var nécessaire au plug...]
set_plugin_data($[nom_du_plug]->plugin_name, [remplissage de toute les var nécessaire au plug...]
dans class.inc.php
class [nom_de_la_class_du_plug]
{
var $plugin_name, [reprise de toute les var nécessaire au plug...]
function init()
{
[reprise de l'install]
}
function bidon()
{
$this->init();//appel de la function init()
}
}
Hum... ca me parait bien lourd de devoir redéfinir la fonction install...
Je préfère perso le pensement, vu que de toute facon, l'appel à la fonction plugin_install est déjà un pensement qui est la vraiment au cas ou... et pour que 2 plugins l'appellent, c'est vraiment extrement rare....
Tu proposerais quoi exactement comme code flop?
ça peut certainement marché, mais c'est du pansement : la class et la copie de la fonction install dans cette class est plus propre
Ah oui, je n'avais pas prévu ca...
On peut éventuellement rajouter un !function_exists pour le cas ou 2 plugins necessitent un rappel à la fonction install...
Ainsi, le 2e plugin se réinstallera au 2e chargement, c'est pas bien grave.... puisque dans le code de vérification, j'avais rajouté justement un $conf['plugin'] = xxx
Exemple pour ComOnindex:
// Vérification de la config, si pas bon -> reinstallation if ((!isset($conf['comonindex'])) or (substr_count($conf['comonindex'] , ',') != 7)) { $conf['comonindex'] = '5,on,,,20,norm,default,'; if (!function_exists('plugin_install')) { include_once( COMONINDEX_PATH . 'maintain.inc.php'); plugin_install(); } }
Ca vous va?
flop25 a écrit:
moi pas de problème : sinon comme solution, il vaudrait mieux faire une copie de la fonction install et la renommer.
Mieux !! utiliser les class comme préconisé dans le wiki et utiliser par certain (notamment moi-même ds adult_content)
ha ouais ^^ la jolie page blanche !!
Ps : et pourtant ça désactive bien ?!
c'est bien parce que c'est toi ^^
flop, installe smilies support et essai de désactiver ComOnIndex ...
moi pas de problème : sinon comme solution, il vaudrait mieux faire une copie de la fonction install et la renommer.