Merci Repié pour ton intervention, et pas de soucis, ça avancera au rythme que ça pourra...
Bon, comme ça m'agaçait, j'ai remis réinstallé le plugin de test tel que proposé dans le wiki .Ça fonctionne.
1) Donc, à partir de la base de ce plugin "test", je crois que la première étape est de le renommer et que ça fonctionne. Je n'ai pas de fichier admin_sh.php, pas évoqué dans ce tuto. Que dois-je mettre dedans et ou dois-je le placer ?
2) Puis, intégrer le code que tu me passes dedans
3) Puis, coder pour que dans la fenêtre d'administration, on puisse choisir une image dans une catégorie (ou choisir une catégorie créée pour la circonstance dans laquelle je ne met qu'une imga) et l'attribuer en header à une catégorie et ses catégories filles.
ddtddt, ce découpage est juste ? Si oui on pourra procéder par étape..
pour recup la liste des galeries/albums :
dans admin.php
display_select_cat_wrapper( 'SELECT id,name,uppercats,global_rank FROM '.CATEGORIES_TABLE, array(), 'categories' );
dans admin.tpl
<select class="categoryDropDown" name="{$i.CURRENT_THEME_ID}selected_cat"> {html_options options=$categories selected=$i.CATSELECTED} </select>
(à réadapter bien sur ... pour s'inspirer voir :
http://piwigo.org/dev/browser/extension … e_conf.tpl
http://piwigo.org/dev/browser/extension … _admin.php
)
j'ai bien eu le message de notification ;)
je n'ai pas vraiment de temps a accorder desolé, mais pour aider en vite fait :
-n'y a t'il pas d'autres erreurs affichées avant le message que tu as copié ? (meme caché dans la page, regarde la source pour etre sur) ?
-le fichier admin/sh_admin.php exist t'il ?
Un petit up sur ce message...toujours bloqué, je ne sais pas pourquoi...
makno a écrit:
ok, alors j'ai commencé. J'ai modifié le nom du plugin "test" et dans main.inc.php, le nom de la class, dans
function plugin_admin_menu($menu) l'url vers le fichier admin.php, etc...
Lorsque j'installe le plugin j'obtiens :Code:
Warning: session_start() [function.session-start]: Cannot send session cache limiter - headers already sent (output started at /var/www/virtual/instants-de-scenes.com/htdocs/piwigo21/plugins/Static_Header/main.inc.php:1) in /var/www/virtual/instants-de-scenes.com/htdocs/piwigo21/include/user.inc.php on line 29 Warning: Cannot modify header information - headers already sent by (output started at /var/www/virtual/instants-de-scenes.com/htdocs/piwigo21/plugins/Static_Header/main.inc.php:1) in /var/www/virtual/instants-de-scenes.com/htdocs/piwigo21/include/page_header.php on line 98Peux-tu me dire d'où cela vient dans mon main.inc ? Je te le livre :
Code:
<?php /* Plugin Name: Static Header Version: 0.1 Description: Static Header allow you to show in the header a static picture from the choosen categorie, as a normal image, or as a background Plugin URI: Author: makno */ if (!defined('PHPWG_ROOT_PATH')) die('Hacking attempt!'); class StaticHeader { var $my_config; function load_config() { $x = @file_get_contents( dirname(__FILE__).'/data.dat' ); if ($x!==false) { $c = unserialize($x); // do some more tests here $this->my_config = $c; } if ( !isset($this->my_config) or empty($this->my_config['TestPlugin1']) ) { $this->my_config['TestPlugin1'] = 'blabla'; $this->my_config['TestPlugin2'] = 'ma deuxieme variable'; $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' => 'Static Header', 'URL' => get_admin_plugin_menu_link(dirname(__FILE__).'/admin/sh_admin.php') ) ); return $menu; } } $obj = new StaticHeader(); $obj->load_config(); add_event_handler('get_admin_plugin_menu_links', array(&$obj, 'plugin_admin_menu') ); set_plugin_data($plugin['id'], $obj) ?>pendant ce temps, je vais essayer de comprendre comment récupérer la liste des galeries pour l'afficher dans ma première liste de choix dans la fenêtre :)
Oui Gotcha, je vais faire ça en //
Je vais continuer aussi sur ce plugin à titre pédagogique, je crois qu'il est temps que je m'y mette...
@ Makno :
Contacte l'auteur du plugin pour voir s'il peut t'aider :-)
Ce serait bien que Random Header puisse avoir cette fonctionnalité ;-)
ok, alors j'ai commencé. J'ai modifié le nom du plugin "test" et dans main.inc.php, le nom de la class, dans
function plugin_admin_menu($menu) l'url vers le fichier admin.php, etc...
Lorsque j'installe le plugin j'obtiens :
Warning: session_start() [function.session-start]: Cannot send session cache limiter - headers already sent (output started at /var/www/virtual/instants-de-scenes.com/htdocs/piwigo21/plugins/Static_Header/main.inc.php:1) in /var/www/virtual/instants-de-scenes.com/htdocs/piwigo21/include/user.inc.php on line 29 Warning: Cannot modify header information - headers already sent by (output started at /var/www/virtual/instants-de-scenes.com/htdocs/piwigo21/plugins/Static_Header/main.inc.php:1) in /var/www/virtual/instants-de-scenes.com/htdocs/piwigo21/include/page_header.php on line 98
Peux-tu me dire d'où cela vient dans mon main.inc ? Je te le livre :
<?php /* Plugin Name: Static Header Version: 0.1 Description: Static Header allow you to show in the header a static picture from the choosen categorie, as a normal image, or as a background Plugin URI: Author: makno */ if (!defined('PHPWG_ROOT_PATH')) die('Hacking attempt!'); class StaticHeader { var $my_config; function load_config() { $x = @file_get_contents( dirname(__FILE__).'/data.dat' ); if ($x!==false) { $c = unserialize($x); // do some more tests here $this->my_config = $c; } if ( !isset($this->my_config) or empty($this->my_config['TestPlugin1']) ) { $this->my_config['TestPlugin1'] = 'blabla'; $this->my_config['TestPlugin2'] = 'ma deuxieme variable'; $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' => 'Static Header', 'URL' => get_admin_plugin_menu_link(dirname(__FILE__).'/admin/sh_admin.php') ) ); return $menu; } } $obj = new StaticHeader(); $obj->load_config(); add_event_handler('get_admin_plugin_menu_links', array(&$obj, 'plugin_admin_menu') ); set_plugin_data($plugin['id'], $obj) ?>
pendant ce temps, je vais essayer de comprendre comment récupérer la liste des galeries pour l'afficher dans ma première liste de choix dans la fenêtre :)
makno a écrit:
mais l'appétit venant en mangeant, figure toi que j'ai d'autres ambitions.
Un jolie plugin rapidement dans le gestionnaire ;-)
Ah ça c'est le cas du plugin "event cats" évoqué dans le wiki
mais l'appétit venant en mangeant, figure toi que j'ai d'autres ambitions. En installant le plugin de test, je suis en mesure (qu'est-ce que je suis balèze) d'activer la fenêtre jointe en photo.
Pourquoi ne pas faire comme Random header ? en variable 1, on choisit une galerie dédiée, en varaible 2 on choisit l'imag e de la galerie, En variable 3 on décide les catégories ou elle est affectée...
Qu'est-ce qui serait le plus simple pour un nouveau plugin, rependre Random Header et supprimer la fonction aléatoire, ou reconstruire ?
Je vais voir de plus près RH, merci de ta réponse
non $conf['page_banner'] est un élément de Piwigo si tu le modifie il ne sera pas pris en compte
je dirais plutôt un genre
add_event_handler('loc_begin_index', 'banner');
function banner()
{
global $page;
$banner1 = array(1, 6, 2);
$banner2 = array(3, 4);
if (isset($page['category']['id']) and in_array($page['category']['id'], $banner1))
{
global $conf;
$conf['page_banner'] = '<a href="adresse de la page concernée"'
. '<img src="adresse de l'image la banner1" border=0</a>';
}
if (isset($page['category']['id']) and in_array($page['category']['id'], $banner2))
{
global $conf;
$conf['page_banner'] = '<a href="adresse de la page concernée"'
. '<img src="adresse de l'image de la banner2" border=0</a>';
}
else
{
global $conf;
$conf['page_banner'] = '<a href="adresse de la page concernée"'
. '<img src="adresse de l'image de la banner par defaut" border=0</a>';
}
}
Mais je n'ai pas testé
dans l'exemple si dessus les albums 1, 6, 2 aurais la banière 1 . . .
bon j'en déduis que :
global $conf; $conf['page_banner'] = '<a href="adresse de la page concernée"' . '<img src="adresse de l'image à appliquer" border=0</a>';
Et que pour chaque bannière différente je fais $conf['page_banner1']...$conf['page_banner2']..correct ?
Et je met ça dans le main.inc.php de mon plugin ? Si oui, ou?
Bon me revoilà. j'ai suivi le wiki pas à pas, cette page
J'ai compris quelques trucs (pas tout), enfin ça fonctionne. j'ai un plugin de test qui s'affiche dans mon menu de plugin, et quand je clique dessus j'ai une fenêtre qui s'ouvre ou je peux paramétrer..
makno a écrit:
Ah bah oui...je me doutais bien qu'un jour je n'allais pas y couper...alors étape 1 le wiki, je crois qu'il y a une page "le plugin pour les nuls"....et je reviens ici avant de me mettre à pleurer quand je comprendrais plus rien :)
Dans le Wiki je regarderais surtout ceci
Methode 3 ;-)
Tu tests l'album dans le quel tu est et tu imposes le paramètre de conf
c'est la première idée qui me viens à l'esprit, il y a peux être mieu
Ah bah oui...je me doutais bien qu'un jour je n'allais pas y couper...alors étape 1 le wiki, je crois qu'il y a une page "le plugin pour les nuls"....et je reviens ici avant de me mettre à pleurer quand je comprendrais plus rien :)
Faire un petit plugin pour la gestion de ton header ;-)