aaaaaaaaaaah mon copain p@t ... PF pour les intime HAHAHA
Hors ligne
Et voila le bout de code, avec en rouge le nom du tag voulu, et un peu plus loin la couleur de fond voulue.
function get_personal_color_tags()
{
global $template, $personal_color_tags;
$personal_color_tags = array();
$query = '
SELECT itt.image_id
FROM '.IMAGE_TAG_TABLE.' AS itt
INNER JOIN '.TAGS_TABLE.' as tt
ON tt.name = "Mon Tag" AND itt.tag_id = tt.id;';
$result = pwg_query($query);
while($row = mysql_fetch_assoc($result))
{
$personal_color_tags[] = $row['image_id'];
}
$tpl_code = '
<!-- BEGIN color_tags -->
style="background-color:#FF0000;"
<!-- END color_tags -->
';
$template->loadfile('thumbnails');
$template->uncompiled_code['thumbnails'] =
str_replace('"wrap2"',
'"wrap2"' . $tpl_code,
$template->uncompiled_code['thumbnails']);
}
function personal_color_tags($row)
{
global $template, $personal_color_tags;
if (in_array($row['id'], $personal_color_tags))
{
$template->assign_block_vars('thumbnails.line.thumbnail.color_tags', array());
}
}
add_event_handler('loc_begin_index_thumbnails', 'get_personal_color_tags');
add_event_handler('loc_index_thumbnail' , 'personal_color_tags');
Dernière modification par P@t (2008-02-15 16:31:52)
Hors ligne
KOIIIIIIIIIIIIIIIII il y a pas de plugin complet avec une belle interface d'admin etc
arfarfar je rigole bien sur
Hors ligne
P@t a écrit:
Oui oui, c'est tout à fait faisable en plugin perso...
Je te donnerai le code cet après midi ;-)
Salut P@t,
Eh bien que dire de plus qu'un grand merci !!!!!!!!!!!!!!!!!!!!!!!!!!!
C'est exactement ce que je souhaitais, bravo mille fois donc !!!
Rapide et efficace comme toujours
Quand a un vrai plugin comme dit Nicco, pas sûr que cette demande spécifique à ma galerie soit d'une grand utilité dans le cadre d'une galerie normale...
Donc je suis très heureux avec ça !!! Bravo
Hors ligne
Bon, j'ai une solution bien plus élégante...
Qui permet de définir plusieurs associations de tags/Couleurs.
Code en plugin perso:
function get_personal_color_tags() { global $template, $conf, $selection, $personal_color_tags; if (isset($conf['personal_color_tags']) and is_array($conf['personal_color_tags'])) { foreach($conf['personal_color_tags'] as $tag => $value) { $array[] = '"' . $tag . '"'; } $query = ' SELECT itt.image_id, tt.name FROM '.IMAGE_TAG_TABLE.' AS itt INNER JOIN '.TAGS_TABLE.' as tt ON itt.tag_id = tt.id WHERE tt.name IN ('. implode(',', $array) .') AND itt.image_id IN ('. implode(',', $selection) .');'; $result = pwg_query($query); while($row = mysql_fetch_assoc($result)) { $personal_color_tags[$row['image_id']] = $conf['personal_color_tags'][$row['name']]; } if (!empty($personal_color_tags)) { $tpl_code = ' <!-- BEGIN color_tags --> {thumbnails.line.thumbnail.color_tags.COLOR} <!-- END color_tags --> '; $template->loadfile('thumbnails'); $template->uncompiled_code['thumbnails'] = str_replace('"wrap2"', '"wrap2"' . $tpl_code, $template->uncompiled_code['thumbnails']); add_event_handler('loc_index_thumbnail' , 'personal_color_tags'); } } } function personal_color_tags($row) { global $template, $personal_color_tags; if (isset($personal_color_tags[$row['id']])) { $template->assign_block_vars('thumbnails.line.thumbnail.color_tags', array('COLOR' => 'style="background-color:' . $personal_color_tags[$row['id']] . '"')); } } add_event_handler('loc_begin_index_thumbnails', 'get_personal_color_tags');
Ensuite, dans le config_local.inc.php, il faut rentrer les associations Tag/couleur souhaitées:
$conf['personal_color_tags'] = array(
'Mon Tag 1' => '#FF0000',
'Mon Tag 2' => '#00FF00',
'Mon Tag 3' => '#0000FF',
);
C'est-y pas beau tout ca? ;-)
Dernière modification par P@t (2008-02-16 20:54:35)
Hors ligne
P@t a écrit:
Bon, j'ai une solution bien plus élégante...
...
C'est-y pas beau tout ca? ;-)
Que demande le peuple !!!
Je vais pouvoir signaler les échanges et les recherches
Chapeau !!!
Tiens ça me fait penser que j'ai une autre question (dans un nouveau post oeuf corse...;-)
Hors ligne
P@t a écrit:
Bon, j'ai une solution bien plus élégante...
...
C'est-y pas beau tout ca? ;-)
Euh... j'ai pas tout compris sur cette 2ème solution ou bien ça ne marche plus
J'ai remplacé ton 1er code (1 tag) par le deuxième (3 tags) dans Plugin perso
Puis j'ai copié le code dans conf local comme indiqué
J'ai renommé 'Mon Tag 1' par le nom du Tag désiré (il existe) 'Recherche'
Et là plus de vignette en fond rouge...
Problème ??
Hors ligne
P@t a écrit:
J'avais oublié le s dans $conf['personal_color_tags'] du config_local.inc.php...
C'est corrigé dans le post...
Comme quoi je suis nul en code !!!
J'aurais du le voir un truc comme ça par rapport au 1er code !!!
Merci à toi, ça marche
Hors ligne
blake35 a écrit:
P@t a écrit:
J'avais oublié le s dans $conf['personal_color_tags'] du config_local.inc.php...
C'est corrigé dans le post...Comme quoi je suis nul en code !!!
J'aurais du le voir un truc comme ça par rapport au 1er code !!!
Merci à toi, ça marche
Juste une erreur quand je vais sur certaines catégories...
J'ai cela qui s'affiche en Header :
Notice: Undefined variable: personal_color_tags in /home.38/c/a/r/cartespu/www/plugins/PersonalPlugin/main.inc.php on line 113
Warning: Cannot modify header information - headers already sent by (output started at /home.38/c/a/r/cartespu/www/plugins/PersonalPlugin/main.inc.php:113) in /home.38/c/a/r/cartespu/www/include/page_header.php on line 103
Hors ligne
P@t a écrit:
J'ai modifié le code dans le post précédent.
Attention, efface bien tout l'ancien code (add_event_handler compris!)
J'ai refais le copier/coller, ça a l'air bon
Merci
Hors ligne
Arg... tu l'as copié pile quand je faisais un changement...
Du coup... boulette...
$tpl_code = '
<!-- BEGIN color_tags -->
{thumbnails.line.thumbnail.color_tags.COLOR};"
<!-- END color_tags -->
';
Il faut supprimer le ;"
C'est pas grave, mais du coup la syntaxe HTML est incorrecte ;-)
Hors ligne