b'jour
Je souhaite une personnalisation du header de chaque catégorie, se répercutant sur les catégories filles. Soit une douzaine de bannière différentes. Pour celà je peux utiliser NBCThemechanger, mais créer 12 thèmes jumeaux dont seul la bannière changerait, c'est un peu bourrin, non ?
Je peux aussi utiliser le code mis gracieusement à disposition par PLG dans cette astuce, mais cela ne s'applique qu'à une catégorie, pas aux catégories filles.
Vous me conseillez quoi ? Merci d'avance.
Hors ligne
Faire un petit plugin pour la gestion de ton header ;-)
Hors ligne
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 :)
Hors ligne
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
Hors ligne
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..
Dernière modification par makno (2011-02-20 12:11:27)
Hors ligne
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?
Dernière modification par makno (2011-02-20 12:08:59)
Hors ligne
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 . . .
Hors ligne
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
Dernière modification par makno (2011-02-20 17:26:34)
Hors ligne
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 ;-)
Hors ligne
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 :)
Dernière modification par makno (2011-02-20 18:05:45)
Hors ligne
@ Makno :
Contacte l'auteur du plugin pour voir s'il peut t'aider :-)
Ce serait bien que Random Header puisse avoir cette fonctionnalité ;-)
Hors ligne
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...
Hors ligne
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 :)
Hors ligne
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 ?
Hors ligne
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
)
Hors ligne