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
                  1 sur 2 < >

                  C'est [Réglé] et on n'en parle plus ?

                  A quoi ça sert ?
                  La mention [Réglé] permet aux visiteurs d'identifier rapidement les messages qui ont trouvé une solution.

                  Merci donc d'utiliser cette fonctionnalité afin de faciliter la navigation et la recherche d'informations de tous sur le forum.

                  Si vous deviez oublier de porter cette mention, nous nous permettrons de le faire à votre place... mais seulement une fois
                  Comment ajouter la mention [Réglé] à votre discussion ?
                  1 - Aller sur votre discussion et éditer votre premier message :


                  2 - Cliquer sur la liste déroulante Préfixe.

                  3 - Choisir le préfixe [Réglé].


                  4 - Et voilà… votre discussion est désormais identifiée comme réglée.

                  2 sur 2 < >

                  Assistance au forum - Outil de publication d'infos de votre site

                  Compatibilité: PHP 4.1,PHP4, 5, 6DEV MySQL 3.2 - 5.5 MySQLi from 4.1 ( @ >=PHP 4.4.9)

                  Support Version de Joomla! : | J!3.0 | J!2.5.xx | J!1.7.xx | J!1.6.xx | J1.5.xx | J!1.0.xx |

                  Version française (FR) D'autres versions sont disponibles depuis la version originale de FPA

                  UTILISER À VOS PROPRES RISQUES :
                  L'exactitude et l'exhaustivité de ce script ainsi que la documentation ne sont pas garanties et aucune responsabilité ne sera acceptée pour tout dommage, questions ou confusion provoquée par l'utilisation de ce script.

                  Problèmes connus :
                  FPA n'est actuellement pas compatible avec des sites Joomla qui ont eu leur fichier configuration.php déplacé en dehors du répertoire public_html.

                  Installation :

                  1. Téléchargez l'archive souhaitée : http://afuj.github.io/FPA/

                  Archive zip : https://github.com/AFUJ/FPA/zipball/master

                  2. Décompressez le fichier de package téléchargé sur votre propre ordinateur (à l'aide de WinZip ou d'un outil de décompression natif).

                  3. Lisez le fichier LISEZMOI inclus pour toutes les notes de versions spécifiques.

                  4. LIRE le fichier de documentation inclus pour obtenir des instructions d'utilisation détaillées.

                  5. Téléchargez le script fpa-fr.php à la racine de votre site Joomla!. C'est l'endroit que vous avez installé Joomla et ce n'est pas la racine principale de votre serveur. Voir les exemples ci-dessous.

                  6. Exécutez le script via votre navigateur en tapant: http:// www. votresite .com/ fpa-fr.php
                  et remplacer www. votresite .com par votre nom de domaine


                  Exemples:
                  Joomla! est installé dans votre répertoire web et vous avez installé la version française du fichier FPA:
                  Télécharger le script fpa-fr.php dans: /public_html/
                  Pour executer le script: http://www..com/fpa-fr.php

                  Joomla! est installé dans un sous-répertoire nommé "cms" et vous avez installé la version française du fichier FPA:
                  Télécharger le script fpa-fr.php dans: /public_html/cms/
                  Pour executer le script: http://www..com/cms/fpa-fr.php

                  En raison de la nature très sensible de l'information affichée par le script FPA, il doit être retiré immédiatement du serveur après son utilisation.

                  Pour supprimer le script de votre site, utilisez le lien de script de suppression fourni en haut de la page du script. Si le lien de suppression échoue pour supprimer le script, utilisez votre programme FTP pour le supprimer manuellement ou changer le nom une fois que le script a généré les données du site et le message publié sur le forum. Si le script est toujours présent sur le site, il peut être utilisé pour recueillir suffisamment d'informations pour pirater votre site. Le retrait du script empêche des étrangers de l'utiliser pour jeter un oeil à la façon dont votre site est structuré et de détecter les défauts qui peuvent être utilisé à vos dépends.
                  Voir plus
                  Voir moins

                  Partenaire de l'association

                  Réduire

                  Hébergeur Web PlanetHoster
                  Travaille ...
                  X