Compter le nombre d'éléments d'une liste ul / Mise en page CSS

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

  • ghazal
    a répondu
    Re : Compter le nombre d'éléments d'une liste ul / Mise en page CSS

    Bon, bon, bon.
    Je vais réécrire le code.
    Mais je ne vois pas où tu bugges car je ne reproduis pas l'erreur.
    Bref.

    Laisser un commentaire:


  • Jeremylgx
    a répondu
    Re : Compter le nombre d'éléments d'une liste ul / Mise en page CSS

    Exactement. Elle n'apparait pas dans Firebug.

    Laisser un commentaire:


  • ghazal
    a répondu
    Re : Compter le nombre d'éléments d'une liste ul / Mise en page CSS

    Sans résultats
    ?
    C'est à dire que la class supplémentaire qui devrait être ajoutée par le JavaScript n'apparait pas (dans Firebug, par ex) ?
    ie : class "un", "deux", etc...

    Laisser un commentaire:


  • Jeremylgx
    a répondu
    Re : Compter le nombre d'éléments d'une liste ul / Mise en page CSS

    J'ai essayé de changer le nom, de mettre des espaces, des tirets... Sans résultats. Je vois pas du tout ce qui n'irait pas dans ma configuration.

    Laisser un commentaire:


  • ghazal
    a répondu
    Re : Compter le nombre d'éléments d'une liste ul / Mise en page CSS

    euh .. j'ai un peu regardé dans tous les sens, je n'ai pas d'erreur en testcase.
    Reprenons :
    *tu as ajouté mettons "-truc" à Suffixe CSS de menu dans les specs d'un module de type menu
    *tu as donc une class "menu-truc"
    *tu as corrigé mon script :
    var list = $$('.menu-truc');

    * chez moi, script activé, je retrouve
    <ul class="menu-truc four">
    si j'ai 4 li(s)

    Possible aussi avec cette astuce:
    dans le champ de Suffixe CSS de menu, mettre un espace avant truc
    tu récupères donc :
    <ul class="menu truc">
    ...etc ...

    Laisser un commentaire:


  • ghazal
    a répondu
    Re : Compter le nombre d'éléments d'une liste ul / Mise en page CSS

    J'avais déjà bien changé '.monul' par '.menuthematiques' mais toujours aucun résultat dans mon code généré.
    Ah.
    Je vais regarder.

    Laisser un commentaire:


  • Jeremylgx
    a répondu
    Re : Compter le nombre d'éléments d'une liste ul / Mise en page CSS

    J'ai ajouté le code en tout début du fichier index.php. Ca me donne ceci :
    Code:
    <?php defined('_JEXEC') or die('restricted access'); 
    JHtml::_('behavior.framework', true); ?>
    La page se charge comme d'habitude. Sinon, c'est vrai que je vois dans le code généré les appels aux librairies mootools qui ont été inséré par <jdoc:include type="head" /> donc il était inutile de la recharger.

    J'avais déjà bien changé '.monul' par '.menuthematiques' mais toujours aucun résultat dans mon code généré.

    Laisser un commentaire:


  • ghazal
    a répondu
    Re : Compter le nombre d'éléments d'une liste ul / Mise en page CSS

    C'est un template que j'ai créé de zéro. J'avais essayé sans le chargement de ce fichier sans succès et c'est pour ça que j'ai ensuite essayé en le chargeant. Je vais donc l'enlever.
    Oui.
    Pour être sur que Mootools (core.js-la base et more.js-les plugins mootools) charge partout, rajoute :
    JHtml::_('behavior.framework', true);
    dans l'index.php de ton template,
    en-dessous de :
    defined ('_JEXEC') or die ('restricted access');
    Cette classe CSS n'existe pas avant le démarrage du code puisque ce ul est généré par un module menu joomla auquel j'ai ajouté le suffixe de classe thematiques, ce qui engendre une classe menuthematiques au ul.
    OK.
    Alors remplace la classe "monul" dans mon exemple par "menuthematiques":
    var list = $$('.monul');
    var list = $$('.menuthematiques');
    J'ai écrit le code en sorte que cette classe/variable ne soit écrite qu'une fois.

    Laisser un commentaire:


  • Jeremylgx
    a répondu
    Re : Compter le nombre d'éléments d'une liste ul / Mise en page CSS

    C'est un template que j'ai créé de zéro. J'avais essayé sans le chargement de ce fichier sans succès et c'est pour ça que j'ai ensuite essayé en le chargeant. Je vais donc l'enlever.

    J'ai déjà installé ces extensions avec lesquelles j'inspecte le code source généré.

    Cette classe CSS n'existe pas avant le démarrage du code puisque ce ul est généré par un module menu joomla auquel j'ai ajouté le suffixe de classe thematiques, ce qui engendre une classe menuthematiques au ul.
    Dernière édition par Jeremylgx à 13/04/2012, 09h55

    Laisser un commentaire:


  • ghazal
    a répondu
    Re : Compter le nombre d'éléments d'une liste ul / Mise en page CSS

    Bon.
    1- tu n'as pas à recharger la librairie mootools en front-end. A moins que le template que tu utilises aies supprimé son chargement, ce qui est très rare, elle est chargée par défaut, tu n'as pas à t'en occuper.
    NB: pourrais-tu préciser quel est ton template ?
    ----------> Vire ce fichier mootools que tu as rajouté.

    2 - INdispensable quand on travaille avec du JS :
    * installer l'extension Firebug pour Firefox, pour débugger
    * installer l'extension Webdeveloper pour Firefox, pour voir la source (entre autres)
    Web Developer :: Add-ons for Firefox

    https://addons.mozilla.org/en-US/fir...web-developer/

    3 - Code
    var list = $$('.menuthematiques');
    Cette classe CSS doit déjà être affectée/exister au ul AVANT le démarrage de mon code.
    Ce qui est ajouté JavaScriptement (sic) , ce sont les classes "un", "deux', "trois", etc ..., en fonction du nombre de "li" comme tu l'as demandé.
    Elles ne se voient qu'en allant sur l'onglet "View Source" (de l'extension webdeveloper), puis "View Generated Source" et en créant les styles ".un", ".deux', ".trois", pour les UL (cf les CSS dans mon exemple)

    Quand tu auras réglé tout ceci, on verra si tu peux coller ce script directement dans le module menu ou l'intégrer joomlaesquement.

    Laisser un commentaire:


  • Jeremylgx
    a répondu
    Re : Compter le nombre d'éléments d'une liste ul / Mise en page CSS

    Merci de ta réponse ghazal. Je savais qu'il devait y avoir un rapport avec Joomla.
    J'ai mis le script Javascript entre les balises <script></script> juste avant la fermeture de </head> en changeant bien le nom de la classe par la mienne.
    Code:
    <script>
        window.addEvent('domready', function() {
        
    var list = $$('.menuthematiques');
    
    list.getChildren('li').each(function(el, index){
    var count = el.length;
    
        if (count == 1 )
        {
          el.getParent().addClass('un');
          }
        else if (count == 2 )
            {
           el.getParent().addClass('deux');
          }   
        else if (count == 3 )
            {
           el.getParent().addClass('trois');
          }
            else if (count == 4 )
            {
           el.getParent().addClass('quatre');
          }
        else if (count == 5 )
            {
           el.getParent().addClass('cinq');
          }   
        else if (count == 6 )
            {
           el.getParent().addClass('six');
          }
      });
    
    
        });​
    </script>
    J'ai téléchargé le fichier Mootools ici (http://mootools.net/download) et je l'ai mis dans mon répertoire. J'ai ajouté un lien vers le fichier mootools juste après l'ouverture de <head>.
    Code:
    <script type='text/javascript' src='<?php echo
    $this->baseurl ?>/templates/<?php echo $this->template ?>/js/lib/mootools-core-1.4.5-full-nocompat.js'></script>
    Mais il n'ajoute toujours rien à mon nom de classe.

    Laisser un commentaire:


  • ghazal
    a répondu
    Re : Compter le nombre d'éléments d'une liste ul / Mise en page CSS

    Salut,
    ta soluce n'est pas top parce qu'elle est basée sur la librairie jQuery, alors que Joomla utilise la lib Mootools.
    Je te propose l'équivalent en Mootools, tu auras moins de pb.

    http://jsfiddle.net/ghazal/pe79E/

    En revanche, il faut placer ce code (dans <script> et </script>) juste avant la fin de </head> et corriger le nom de la class.
    Cela dit, dans les 2 cas, la solution n'est pas très "dynamique", si tu utilises la mienne, je re-réfléchirai sur la question.

    Laisser un commentaire:


  • Jeremylgx
    a répondu
    Re : Compter le nombre d'éléments d'une liste ul / Mise en page CSS

    J'ai trouvé une solution correspondant à ma première idée (compter le nombre de li et ajouter une classe au parent ul) ici : http://stackoverflow.com/questions/2...s-to-parent-ul
    Le fichier source fonctionne parfaitement mais je n'arrive pas encore à l'appliquer à ma page.
    Je mets cette ligne de code dans le header
    Code:
    <script class="jsbin" src="http://ajax.googleapis.com/ajax/libs/jquery/1/jquery.min.js"></script>
    et ce script en ayant changé le nom de la classe par la mienne avant la fermeture de <body>
    Code:
    <script>jQuery(document).ready(function(){
      $(".taglib-ratings").each(function(){
       
        if ($(this).children('li').size() == 2 )
        {
          $(this).addClass('Two');
           $(this).append('Two');
          }
        else if ($(this).children('li').size() == 1 )
      
            {
          $(this).addClass('one');
           $(this).append('One');
          }
      });
    });</script>
    Je sais pas s'il me manque quelque chose.

    Laisser un commentaire:


  • Jeremylgx
    a répondu
    Re : Compter le nombre d'éléments d'une liste ul / Mise en page CSS

    Pour illustration voilà ce que ça donne avec la solution table et table-row Cliquez sur l'image pour l'afficher en taille normale

Nom : menu.jpg 
Affichages : 1 
Taille : 11,5 Ko 
ID : 1801010

    Laisser un commentaire:


  • Jeremylgx
    a répondu
    Re : Compter le nombre d'éléments d'une liste ul / Mise en page CSS

    J'ai bien regardé le lien mais je n'ai pas encore trouvé de solution totalement satisfaisante.

    Je résume ma problématique : équilibrer des liens en li (tailles, marges entre ceux ci, centrage vertical) à l'intérieur d'un menu en ul à hauteur fixe en fonction du nombre de li, que je ne connais pas à l'avance. Et, comme complication, certains libellés de liens occupent plus d'une ligne.

    Est ce que vous avez une piste ?

    Laisser un 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