•  » Plugins
  •  » [Plugin] erreur lors de l'activation

#1 2009-12-10 17:44:59

nicko510
Invité

[Plugin] erreur lors de l'activation

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 :

Code:

<?php
/*
Plugin Name: Editeur
Version:0.1
Description: Permet d'&eacute;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:

Code:

<?php
/*
Plugin Name: Editeur de texte
Version:0.1
Description: Permet d'&eacute;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.

#2 2009-12-10 18:11:58

Gotcha
Ex Equipe Piwigo
Pierrelatte (26)
2007-03-14
13331

Re: [Plugin] erreur lors de l'activation

*** Je risque de dire une bêtise plus grosse que moi ***

Ce n'est pas une histoire de nom de fichier/dossier ?


Ayez comme premier réflexe de consulter le wiki.
Ensuite, veuillez effectuer une recherche sur le forum avant de poser votre question.

LE FAIRE EST LE REVELATEUR DE L'ETRE

Hors ligne

#3 2009-12-10 18:35:56

Eric
Former Piwigo Team
VALENCE (FR)
2005-03-25
4579

Re: [Plugin] erreur lors de l'activation

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 :

Code:

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 :

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

Code:

/*
Plugin Name: Editeur
Version:0.1
Description: Permet d'&eacute;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.

Hors ligne

#4 2009-12-10 21:19:05

rvelices
Équipe Piwigo
2005-12-29
1417

Re: [Plugin] erreur lors de l'activation

ce n'est pas _FILE_ mais __FILE__ (2 underscores au debut et 2 a la fin)

Hors ligne

#5 2009-12-10 21:30:59

Eric
Former Piwigo Team
VALENCE (FR)
2005-03-25
4579

Re: [Plugin] erreur lors de l'activation

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.

Hors ligne

#6 2009-12-11 09:45:48

nicko510
Invité

Re: [Plugin] erreur lors de l'activation

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

  •  » Plugins
  •  » [Plugin] erreur lors de l'activation

Pied de page des forums

Propulsé par FluxBB

github twitter newsletter Faire un don Piwigo.org © 2002-2025 · Contact