Salut et merci à vous !
Effectivement c'était les 2 _ qui posaient problème :s
J'ai voulu éviter le copier-coller pour essayer de bien comprendre ce que je faisais ; du coup je ne suis pas prêt de faire la même erreur. :p
Bien vu ! Elle m'avait échappée celle-là ;-)
Si nicko510 s'est appuyé sur ce que j'ai donné, il devrait avoir résolu son pb.
ce n'est pas _FILE_ mais __FILE__ (2 underscores au debut et 2 a la fin)
Salut.
En premier, tu dois définir le chemin de base de ton plugin pour qu'il s'exécute dans le bon dossier. Par exemple :
define('MonPlugin_DIR' , basename(dirname(__FILE__))); define('MonPlugin_PATH' , PHPWG_PLUGINS_PATH.basename(dirname(__FILE__)).'/');
Ensuite, lorsque tu fais appel à des fichiers dans le dossier du plugin ou lorsque tu initialises les templates (modèles d'affichage), tu utilises les chemins précedemment définis. Exemple avec ton code :
function plugin_admin_menu($menu) { array_push($menu, array( 'NAME' => 'Editeur', 'URL' => get_admin_plugin_menu_link(MonPlugin_PATH.'/admin/editeurplugin_admin.php') ) ); return $menu; }
A adapter lorsque tu appelles ton fichier data.dat.
En aparté, l'entête
/* Plugin Name: Editeur Version:0.1 Description: Permet d'éditer Qui-suis, Tarifs, Liens. Plugin URI:http://www.nicko510.com */
N'est nécessaire que dans le fichier main.inc.php. Inutile de la reproduire dans tous les fichiers php de ton plugin.
*** Je risque de dire une bêtise plus grosse que moi ***
Ce n'est pas une histoire de nom de fichier/dossier ?
Bonjour,
j'essaie de créer un plugin. J'ai suivi la doc, mais lors de l'activation j'ai ces messages qui apparaissent :
Notice: Use of undefined constant _FILE_ - assumed '_FILE_' in /home/plantepa/public_html/piwigo/plugins/editeur/main.inc.php on line 25
Warning: session_start() [function.session-start]: Cannot send session cache limiter - headers already sent (output started at /home/plantepa/public_html/piwigo/plugins/editeur/main.inc.php:25) in /home/plantepa/public_html/piwigo/include/user.inc.php on line 29
Notice: Use of undefined constant _FILE_ - assumed '_FILE_' in /home/plantepa/public_html/piwigo/plugins/editeur/main.inc.php on line 34
Warning: Cannot modify header information - headers already sent by (output started at /home/plantepa/public_html/piwigo/plugins/editeur/main.inc.php:25) in /home/plantepa/public_html/piwigo/include/page_header.php on line 98
Voici mon main.inc.php :
<?php /* Plugin Name: Editeur Version:0.1 Description: Permet d'éditer Qui-suis, Tarifs, Liens. Plugin URI:http://www.nicko510.com */ if (!defined('PHPWG_ROOT_PATH')) die('Hacking attempt ! '); class Editeur { var $my_config; function load_config() { if ( !isset($this->my_config) or empty($this->my_config['Bio']) ) { $this->my_config['Bio'] = 'bio bio'; $this->my_config['Liens'] = 'Liens liens'; $this->my_config['Tarifs'] = 'tarif tarifs'; $this->save_config(); } } function save_config() { $file = fopen(dirname(_FILE_).'/data.dat','w' ); fwrite($file, serialize($this->my_config) ); fclose( $file ); } function plugin_admin_menu($menu) { array_push($menu, array( 'NAME' => 'Editeur', 'URL' => get_admin_plugin_menu_link(dirname(_FILE_).'/admin/editeurplugin_admin.php') ) ); return $menu; } } $obj = new Editeur(); $obj->load_config(); add_event_handler('get_admin_plugin_menu_links', array(&$obj, 'plugin_admin_menu') ); set_plugin_data($plugin['id'],$obj) ?>
et voici mon editeurplugin_admin.php:
<?php /* Plugin Name: Editeur de texte Version:0.1 Description: Permet d'éditer Qui-suis, Tarifs, Liens. Plugin URI:http://www.paulineplante.com */ if (!defined('PHPWG_ROOT_PATH')) die('Hacking attempt ! '); class Editeur { var $my_config; function load_config() { if ( !isset($this->my_config) or empty($this->my_config['Bio']) ) { $this->my_config['Bio'] = 'bio bio'; $this->my_config['Liens'] = 'Liens liens'; $this->my_config['Tarifs'] = 'tarif tarifs'; $this->save_config(); } } function save_config() { $file = fopen(dirname(_FILE_).'/data.dat','w' ); fwrite($file, serialize($this->my_config) ); fclose( $file ); } function plugin_admin_menu($menu) { array_push($menu, array( 'NAME' => 'Editeur', 'URL' => get_admin_plugin_menu_link(dirname(_FILE_).'/admin/editeurplugin_admin.php') ) ); return $menu; } } $obj = new Editeur(); $obj->load_config(); add_event_handler('get_admin_plugin_menu_links', array(&$obj, 'plugin_admin_menu') ); set_plugin_data($plugin['id'],$obj) ?>
Si j'essaie de supprimer _FILE_, j'obtiens des messages me disant que je n'ai pas les droits requis ...
Une idée ?
Merci.