CSS dynamique selon la catégorie

Réduire
X
 
  • Filtrer
  • Heure
  • Afficher
Tout effacer
nouveaux messages

  • [RÉGLÉ] CSS dynamique selon la catégorie

    Bonjour.
    Je recherche un moyen simple et léger de gérer un affichage de page différent par CSS sans avoir à utiliser plusieurs templates.
    Pour ce, j'aimerai me servir de la variable de la catégorie en cours ou ID de catégorie en cours pour affecter une classe dynamique à mon body, cette classe devrait changer selon cette catégorie en cours. En effet, les changements doivent reconsidérer divers éléments de la page.

    Comment récupérer cet variable et l'écrire en tant que classe de mon body.

    Je souhaite éviter à tous prix la duplication de template ou ajout d'extension.

    Je vous remercie de votre lecture et de vos éventuels conseils.

    Bonne journée.
    --
    Eddy
    Dernière édition par Eddy.vh à 30/04/2012, 13h40
    Cordialement.
    __
    Eddy !!!
    Tutoriels BreezingForms en Français : https://www.breezingforms.eddy-vh.com/

  • #2
    [Résolu] : CSS dynamique selon la catégorie

    Bonsoir.
    Après maints essais, je suis tombé par hasard sur la solution.

    Pour les intéressés. Avant le doctype j'ai placé : <?php $categoryid = JRequest::getCmd('catid'); ?>

    Ensuite une nouvelle div juste sous le body : <div id="<?php echo $categoryid; ?>">

    Ce qui donne en clair <div id="1"> si l'ID de la catégorie est 1.
    Dernière édition par Eddy.vh à 20/03/2012, 21h35
    Cordialement.
    __
    Eddy !!!
    Tutoriels BreezingForms en Français : https://www.breezingforms.eddy-vh.com/

    Commentaire


    • #3
      Re : CSS dynamique selon la catégorie

      Bonjour,
      Merci de nous faire partager votre solution.

      Mais, en ajoutant un nom de classe dans: la configuretion de menu -> Modifier un lien de menu -> Options d'affichage de la page (à droite) -> Classe de la page

      Ca ne serais pas plus simple ?
      Un peu de pub: http://www.aplomb.ch

      Commentaire


      • #4
        Re : CSS dynamique selon la catégorie

        Bonjour.
        Hé oui, si tout était si simple !

        Mais ça ne l'est pas. Notre site fonctionne sous la forme d'un blog (actuellement sous une solution DotClear devenue inadaptée, d'où mon besoin de passer à une solution plus flexible niveau multilingue). Son sujet est l'automatisation des logiciels de PAO Adobe par les scripts.
        On affiche un article non pas par un lien de menu mais par son titre sur la page où est affichés le résumé des derniers articles parus (10 ou 15 p.ex.).
        Leur accès est alors également possible par les archives, par les catégories, et peut-être d'autres possibilités mais pas par liens de menu.

        Je souhaite affecter certains éléments des pages d'une couleur correspondante à celle du logiciel dont traite l'article - bleu pour Photoshop, magenta pour inDesign, orange pour Illustrator, rouge pour Acrobat, etc.. D'où mon besoin de cerner la catégorie de l'article.

        Aussi la gestion est très simple. Ces petits bouts de code dans l'index.php de mon template, et tout se fait dynamiquement sans craindre de perdre ce bénéfice en cas de mise à jour de Joomla.

        Mais, merci de l'idée qui pourrait peut être servir par la suite ! Je suis toujours en cours de créa en local et en apprentissage des différentes fonctionnalités.

        PS : Il y a quelques années, je devais publier un site pour une firme du nord de la France qui avait des activités similaires à aplomb. Le patron a du s'y prendre trop tard, deux mois après sa demande, il fit faillite, le site n'est jamais paru !
        Cordialement.
        __
        Eddy !!!
        Tutoriels BreezingForms en Français : https://www.breezingforms.eddy-vh.com/

        Commentaire


        • #5
          Re : CSS dynamique selon la catégorie

          Salut,
          je me permet d'ajouter mon grain de sel dans cette discussion récurrente.
          La solution d'Eddy est correcte mais un peu J!1.5.
          Je propose celle-là, assez sympa, car elle récupère le nom EXACT de la catégorie dans la CSS class.
          Ex avec les données d'exemple, on a une catégorie Fruit Shop Site
          On aura la class : <div class="Fruit Shop Site">
          On pourra styler sur Fruit par ex (puisque c'est une class).
          ... et tester, tester...

          Code PHP:
          <?php
          $db 
          = &JFactory::getDBO();           
          $id JRequest::getString('id');
          $db->setQuery('SELECT #__categories.title FROM #__content, #__categories WHERE #__content.catid = #__categories.id AND #__content.id = '.$id);   
          $machin $db->loadResult();     
          ?>
          Après même topo, dans le body :
          <div class="<?php echo $machin; ?>">
          Un message d’erreur sur votre site Joomla ... ayez le reflexe de consulter lla base de connaissance : https://kb.joomla.fr

          Ce forum, vous l'aimez ? il vous a sauvé la vie ? Vous y apprenez chaque jour ? Alors adhérez à l'AFUJ https://www.joomla.fr/association/adherer

          Commentaire


          • #6
            Re : CSS dynamique selon la catégorie

            Bonsoir ghazal.
            Hmmm, j'aime assez l'idée de récupérer le nom de catégorie, ça m'éviterai d'avoir à faire des variables (ce que j'ai fait) pour gérer mes classes autrement qu'avec des chiffres.
            Je teste cette solution dès que possible, pour le moment je suis à autre chose et j'éprouve deux nouveaux problèmes dont je discuterai prochainement, dès que j'aurai une version convenable en ligne afin qu'elle soit accessible.
            En tous cas, une chose fonctionne en local mais pas en ligne et une autre pas du tout mais ce n'est pas le sujet de ce post, j'en créerai donc un autre.

            PS : Ce qui me surprends assez, c'est que ce genre de question a déjà été posé à plusieurs reprises sur les fora mais je n'y ai jamais trouvé de réponse suffisamment concrète ou, bien ciblée.

            Je te remercie en tous cas de ton passage et de cette aide !

            À bientôt !
            Dernière édition par Eddy.vh à 04/04/2012, 20h07
            Cordialement.
            __
            Eddy !!!
            Tutoriels BreezingForms en Français : https://www.breezingforms.eddy-vh.com/

            Commentaire


            • #7
              Re : CSS dynamique selon la catégorie

              La solution de ghazal est pas mal. Elle est plus intelligible puisqu'on récupère le nom. Mais elle pose problème dans le cas de noms de catégories comportant des caractères spéciaux, des accents... J'ai essayé sur un site que je suis en train de développer et les éléments CSS utilisant le nom de cette classe ne s'applique pas.

              Edit : Après quelques essais, l'accent ne gênait pas mais c'était l'esperluette & qui posait problème.

              Dans le cas d'une hiérarchisation des catégories, y a t-il possibilité de choisir la catégorie parente ?
              Dernière édition par Jeremylgx à 04/04/2012, 09h04

              Commentaire


              • #8
                Re : CSS dynamique selon la catégorie

                Mais elle pose problème dans le cas de noms de catégories comportant des caractères spéciaux, des accents
                Oui, c'est vrai que c'est une solution dans un contexte anglophone et que ce n'est pas "foolproof".

                *Dans un contexte francophone, il faudrait prévoir une attribution de noms de catégories adaptée ou concaténer la chaine de caractères (string).

                *en frontpage, pas de classe, puisque pas de catégorie associée
                *dans le cas d'un template un peu complexe (type ja_elastica), délicat à manipuler
                Dernière édition par ghazal à 04/04/2012, 09h10
                Un message d’erreur sur votre site Joomla ... ayez le reflexe de consulter lla base de connaissance : https://kb.joomla.fr

                Ce forum, vous l'aimez ? il vous a sauvé la vie ? Vous y apprenez chaque jour ? Alors adhérez à l'AFUJ https://www.joomla.fr/association/adherer

                Commentaire


                • #9
                  Re : CSS dynamique selon la catégorie

                  Bonsoir Messieurs.
                  En effet, les caractères spéciaux peuvent poser problème.
                  Toutefois je ne suis pas concerné puisque mes catégories n'en comportent pas, elles sont du style "JS Photoshop", "JS inDesign", etc. (JS pour javascript) et aucun des logiciels traités sur notre site n'en contient.
                  Une solution plus universelle pourrait aider les gens qui, comme moi, ont des connaissances PHP plus que limitées.
                  J'avoue que ce que j'avais trouvé plus haut était un coup de bol.
                  J'ai toutefois amélioré la solution que j'avais trouvée par des conditions :
                  Code PHP:
                  if ($categoryid==9){
                   
                  $categoryid=' id="cat_ps"';
                  }
                  elseif (
                  $categoryid==10) {
                    
                  $categoryid=' id="cat_ai"';
                  }
                  elseif (

                  }
                  else {
                  $categoryid='';

                  HTML :
                  Code HTML:
                  <body<?php echo $categoryid ?>>
                  J'obtiens donc dans le cas d'une catégorie de javascript photoshop <body id="cat_ps">, en cas de catégorie de javascripts pour Illustrator <body id="cat_ai">, etc.

                  La solution de ghazal étant plus compacte et plus gracieuse, je ne manquerai pas de l'utiliser puisque je ne suis pas dans un cas de caractères spéciaux.

                  Bonne soirée.
                  Dernière édition par Eddy.vh à 04/04/2012, 20h51
                  Cordialement.
                  __
                  Eddy !!!
                  Tutoriels BreezingForms en Français : https://www.breezingforms.eddy-vh.com/

                  Commentaire

                  Annonce

                  Réduire
                  Aucune annonce pour le moment.

                  Partenaire de l'association

                  Réduire

                  Hébergeur Web PlanetHoster
                  Travaille ...
                  X