Annonce

  •  » Plugins
  •  » [Résolu] Plugin personnel inserer un css en fonction de l'album

#1 2016-11-25 15:00:25

bvl
Membre
2009-03-23
24

[Résolu] Plugin personnel inserer un css en fonction de l'album

Bonjour

J'utilisais jusqu'à présent themechanger, mais beaucoup trop lourd à gérer pour mon véritable besoin.

- j'ai un theme enfant à partir de défaut (avec un theme.css et des theme_voyages.css, theme_vacances.css, ...)

je tente donc, en fonction de l'album sélectionner d'insérer dans ce style un autre css complémentaire (définition des images des background Body-The_page-theHeader..essentiellement)

Fortement inspiré de l'exemple de flop25, j'ai ajouté cette partie à mon plungin personnel

add_event_handler('loc_after_page_header', 'MyCss');
function  MyCss() {
  global $page, $template;
  $cat_name=array('Voyages','Vacances','Fetes','Personnel','Vietnam');
  if (isset($page['category'])) {         
    if (isset($page['category']['name'])) {
       $upper_names=array();
         foreach ($page['category']['upper_names'] as $upper) {
           $upper_names[]=$upper['name'];       
         } 
        foreach ($cat_name as $Albums) {         
          if (in_array($Albums, $upper_names )) {
            $template->assign('cat_name', $Albums);
            //print_r($Albums);
           }
         
        }
    }
    else
    {
      $template->assign('cat_name', $Albums['category']['name']);
    }
  }
}

j'ai ajouté cela à une copie de header.tpl ...

.....
{if $load_css}
    {if ($cat_name == 'Voyages') }
      {combine_css path="themes/...../theme_voyages.css" order=-10}
    {/if}
    {if ($Albums.themeStyle == 'Vacances') }
      {combine_css path="themes/..../theme_vacances.css" order=-10}
    {else}
      {combine_css path="themes/...../theme.css" order=-10}
    {/if}
{/if}

Mais cela ne marche pas.....(et pas d'erreurs)
le forum, la doc de long en large....je ne comprends pas ce qu'il faut faire.

Si vous pouvez me donner un petit coup de pouce ?

un grand Merci




Version de Piwigo:    2.8.3
Version de PHP:       7.0.2
Version de MySQL:   5.5
URL Piwigo: http://

Hors ligne

#2 2016-11-25 15:42:14

flop25
Équipe Piwigo
2006-07-06
6544

Re: [Résolu] Plugin personnel inserer un css en fonction de l'album

Bonjour
je veux bien le lien de où j'ai écris cela (juste pour me rafraichir)

ce qu'il faut faire dans ces cas là c'est étape par étape voir ce qui ne va pas "en remontant", cad en regardant si d'abord le tpl marche en affichant du texte "visible facilement dans le code"
{if $load_css}
    {if ($cat_name == 'Voyages') }
      FUCKcat_nameMarchePas
    {/if}
    {if ($Albums.themeStyle == 'Vacances') }
      FUCKthemeStyle MarchePas
    {else}
      {combine_css path="themes/...../theme.css" order=-10}
FUCKlePHPmarchePas
    {/if}
{/if}
FUCKcestLaFin
de même après pour le code php etc
d'ailleurs vu que vous avez un thème enfant autant mettre le code php dans le theme config

Hors ligne

#3 2016-11-25 19:13:15

bvl
Membre
2009-03-23
24

Re: [Résolu] Plugin personnel inserer un css en fonction de l'album

Bonsoir Flop25,
Bonsoir à tous,

le lien de mon "inspiration" : http://fr.piwigo.org/forum/viewtopic.php?id=21474

J'ai donc supprimé le header.tpl local
et modifié le theneconf.inc.php ainsi

<?php
/*
Theme Name: Sphere91
Version: 1
Description: Fond noir et niveau de gris. Poteau argent extensible sur la gauche.
Author: Philippe basé sur differents autres thèmes (Dark, Sakura, ...)
*/
global $conf, $user, $Albums;

if ($load_css){
    if ($cat_name == 'Voyages'){
     print_r('cat_name MarchePas');
    }
        if ($Albums.themeStyle == 'Vacances') {
           print_r('themeStyle MarchePas');
        }
    else {
        //combine_css path='themes/Sphere91/theme_Sphere91.css' order=-10;
       print_r('PHP marchePas');
    }
print_r('CestLaFin');
}

$themeconf = array(
  'name'         => 'sphere91',
  'parent'        => 'default',
  'icon_dir'      => 'themes/sphere91/icon',
  'mime_icon_dir' => 'themes/sphere91/icon/mimetypes/',
);

?>

et de ce fait les erreurs suivantes .

Notice: Undefined variable: load_css in /..../themes/sphere91/themeconf.inc.php on line 11

et

Warning: Cannot modify header information - headers already sent by (output started at /......./themes/sphere91/themeconf.inc.php:11) in ......../include/page_header.php on line 101

Merci de votre aide

Hors ligne

#4 2016-11-25 22:15:08

flop25
Équipe Piwigo
2006-07-06
6544

Re: [Résolu] Plugin personnel inserer un css en fonction de l'album

ha oui mais le add_event_handler etc faut le remettre :)

Hors ligne

#5 2016-11-29 11:02:25

bvl
Membre
2009-03-23
24

Re: [Résolu] Plugin personnel inserer un css en fonction de l'album

bonjour,

Après des essais dans tous les sens...
revenu à la version plugin perso

add_event_handler('loc_after_page_header', 'MyCss');
function  MyCss() {
  global $page, $template, $ban, $cat_name ;
  $cat_name=array('Voyages','Vacances','Fetes','x Personnel');
   if (isset($page['category'])) {   
   
    if (isset($page['category']['name'])) {                                     
      $upper_names=array();                                                    
          foreach ($page['category']['upper_names'] as $upper) {       
            $upper_names[]=$upper['name'];                                 
          }
     
        foreach ($cat_name as $ban) {
          if (in_array($ban, $upper_names )) {
            $template->assign('cat_name', $ban);
            print_r($ban);
          }                                                                        
        }                                                              
      }                                                            
    else {
      $template->assign('cat_name', 'sphere');     
      }
    }       
}

en ajoutant le smaty {debug} sur header.tpl,
la variable cat_name ne passe pas....
le print_r() l'affiche pourtant bien.

merci de votre aide

Hors ligne

#6 2016-11-29 22:50:54

ddtddt
Équipe Piwigo
Quetigny (21) - France
2007-07-27
16800

Re: [Résolu] Plugin personnel inserer un css en fonction de l'album

Bonjour,

remarques : je me baserais sur ID e l'album pour faire cela ;-)
le nom peux varier dans le temps, plusieurs album peuvent avoir le même nom


Vous aimez Piwigo alors n'hésitez pas à participer avec nous, plus d'infos sur la page "Contribuer à Piwigo". Si vous n'avez pas beaucoup de temps et que vous souhaitez nous soutenir vous pouvez aussi le faire par un don.

Hors ligne

#7 2016-11-30 08:07:39

bvl
Membre
2009-03-23
24

Re: [Résolu] Plugin personnel inserer un css en fonction de l'album

Bonjour,

Oui, mais ou et comment ?

Merci

Hors ligne

#8 2016-11-30 10:44:38

ddtddt
Équipe Piwigo
Quetigny (21) - France
2007-07-27
16800

Re: [Résolu] Plugin personnel inserer un css en fonction de l'album

Bonjour,

Je dirais que pour regarder comment choisir un album par son id regarder le plugin meta

pour regarder comment ajouter du code dans le header regarder le plugin Add < head > Element


Vous aimez Piwigo alors n'hésitez pas à participer avec nous, plus d'infos sur la page "Contribuer à Piwigo". Si vous n'avez pas beaucoup de temps et que vous souhaitez nous soutenir vous pouvez aussi le faire par un don.

Hors ligne

  •  » Plugins
  •  » [Résolu] Plugin personnel inserer un css en fonction de l'album

Pied de page des forums

Propulsé par FluxBB

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