logo

NPDS : Gestion de contenu et de communauté


Content & Community Management System (CCMS) robuste, sécurisé, complet, performant, parlant vraiment français, libre (Open-Source) et gratuit.
24 visiteur(s) et 0 membre(s) en ligne.
Activité du Site

Pages vues depuis 25/05/2001 : 108 450 785

  • Nb. de membres 8 693
  • Nb. d'articles 1 695
  • Nb. de forums 26
  • Nb. de sujets 8
  • Nb. de critiques 92

Top 10  Statistiques

Index du forum »»  Questions »» Menu déroulant

Nouveau sujet
 Menu déroulant#19930Répondre

6Contributeur(s)
killingAnonymePhilGuencanassonTitoconfridin
3 Modérateur(s)
developpeurjpbJireck
Anonyme Anonymeicon_post
Bonjour à tous.

J'ai un petit souci avec npds. Rien de méchant mais ca me trotte dans la tête. Je souhaiterais avoir une sorte de menu déroulant. J'entends par là un bouton sur lequel l'utilisateur cliquerait pour faire dérouler le contenu d'un bloc et vice-versa pour gagner de la place. Il s'avère que le module "marque-page" qui est inclut dans le la dernière version de npds est exactement ce qu'il me faut. Cependant, je ne vois pas comment intégrer cette fonction dans les autres blocs de mon site. Voici deux screens et les codes liés au bloc marque-page.

http://img415.imageshack.us/img415/6102/marquepage013re.jpg

http://img405.imageshack.us/img405/4/marquepage022qs.jpg

!include!#modules/marquetapage/marquetapage.php
function#marquetapage


Merci d'avance pour vos réponses et bon week-end à tous.


PS: Si jamais je ne répond pas vite, c'est que ma connection internet fait parfois des siennes.
Tito Titoicon_post
Tu dois le gérer au niveau du thème. C'est tout à fait réalisable.

1) Tu mets un DIV autour du contenu du bloc:
<div id="<?php echo "block_".md5($title); ?>" class="block_visible">
!B_content!
</div>




2) Tu mets un !onclick! sur le titre de ton bloc:
<span !onclick!="(getElementById('<?php echo "block_".md5($title); ?>').className=='block_hidden')?(getElementById('<?php echo "block_".md5($title); ?>').className='block_visible'):(getElementById('<?php echo "block_".md5($title); ?>').className='block_hidden')">!B_title!</span>




Et tu crées les classes CSS:
.block_visible {

}
.block_hidden {
display: none;
position: absolute;
height: 0;
width: 0;
overflow: hidden;
font-size: 0;
line-height: 0;
}



CODE NON TESTÉ
Pour gérer les cookies, c'est une autre histoire (j'ai le script sur mon ordi, contacte-moi par MSN: tito@webtito.org)
canasson canassonicon_post
Tu peux très certainement aussi réaliser ce menu directement en css.. ;-)
Anonyme Anonymeicon_post
Je ne pensais pas que j'aurais une réponse aussi complète et aussi rapide. Merci beaucoup à vous deux. Je vais aller essayer cela de ce pas.
Tito Titoicon_post
Le pire c'est que je l'ai codé directement en répondant... Je sais, je suis un dieu :b
confridin confridinicon_post
Bonjour.

Je sais que je suis lent mais je vient tout juste de tester le code écris plus haut et il s'avèr que je n'arrive pas à le faire fonctionner.

@Tito: Tu marques dans ton message que tu as un script similaire sur ton ordi mais qui gère en plus les cookies. Est-ce que tu l'aurais encore et pourrais-tu me le transmettre. Merci d'avance.
confridin confridinicon_post
Bonjour à tous.

N'ayant pas eu de réponse, je me permet de faire un up de ce sujet. J'ai déjà envoyé uyn mail à Tito mais sans succès. Merci d'avance pour votre aide.
Anonyme Anonymeicon_post
J'ai besoin du même script, & je n'arrive pas non plus a le faire marcher. Aidez-moi SVP.
PhilGuen PhilGuenicon_post
Si les menus de mon site vous conviennent, je peux vous les passer
Anonyme Anonymeicon_post
Citation : PhilGuen 

Si les menus de mon site vous conviennent, je peux vous les passer 


Oui, j'en voudrai bien moi ! stp
PhilGuen PhilGuenicon_post
Je ne suis pas l'auteur initial du code trouvé il y a plusieurs années sur le web, mais je l'ai pas mal modifié. J'ai également codé pour alimenter les lignes du menu à partir d'une table sql.Si ca intéresse, je peux donner un exemple.
entre les balises "head"


  <SCRIPT Language=\"!javascript!\">
   var DateMaintenant = new Date();
   var DateExpire = new Date();
   DateExpire.setFullYear(DateMaintenant.getFullYear()+1);

     function toggle(node,cat_menu) {
        var nextDIV = node.nextSibling;

        // find the next DIV
        while(nextDIV.nodeName != \"DIV\") {
           nextDIV = nextDIV.nextSibling;
        }

        // Unfold the branch if it isn't visible
        if (nextDIV.style.display == 'none') {
             // Change the image (if there is an image)
             if (node.childNodes.length > 0) {
                  if (node.childNodes.item(0).nodeName == \"IMG\") {
                       node.childNodes.item(0).src = \"images/minus.gif\";
                  }
              }
              nextDIV.style.display = 'block';
              flag_expand_menu = 1;
        } else {
              // Collapse the branch if it IS visible
              // Change the image (if there is an image)
              if (node.childNodes.length > 0) {
                   if (node.childNodes.item(0).nodeName == \"IMG\") {
                        node.childNodes.item(0).src = \"images/plus.gif\";
                   }
              }
              nextDIV.style.display = 'none';
              flag_expand_menu = 0;
        }
     !document.cookie!=cat_menu+'='+flag_expand_menu+';expires='+DateExpire.toGMTString();
     <!-- alert(!document.cookie!); -->
    }
  </SCRIPT>



entre les balises "body"



<table border = \"0\" cellspacing = \"0\" cellpadding = \"0\">
      <tr>
          <td>
              ";
              $flag_expand = $_COOKIE[101];
              if ($flag_expand == 1){
                       $imagefolder = "images/minus.gif";
                    }else{
                       $imagefolder = "images/plus.gif";
                    }
              $content.="
              <a !onclick! = \"{toggle(this,101);}\" class = \"folder\" style = \"cursor:hand\">
                    <img src = ".$imagefolder.">
                    <b>Ma première ligne de menu</b>
              </a>
                   ";
                    if ($flag_expand == 1){
                       $content .= "<div style = \"display:yes;\">";
                    }else{
                       $content .= "<div style = \"display:none;\">";
                    }
                    $content .="
                    <table border = \"0\" cellspacing = \"0\" cellpadding = \"0\">
                        <tr>
                            <td width = \"15\"></td>
                            <td>
                                  
                                <img src = 'images/blocks/som_module.gif' width = '15' height = '10' hspace = '2'>
                                 <a href = 'monlien1'>
                                    Mon premier sous-menu
                                 </a>
                            </td>
                          </tr>
                    </table>
                    <table border = \"0\" cellspacing = \"0\" cellpadding = \"0\">
                        <tr>
                            <td width = \"15\"></td>
                            <td>
                                  
                                <img src = 'images/blocks/som_module.gif' width = '15' height = '10' hspace = '2'>
                                 <a href = 'monlien2'>
                                    Mon deuxième sous-menu
                                 </a>
                            </td>
                          </tr>
                    </table>
                    <table border = \"0\" cellspacing = \"0\" cellpadding = \"0\">
                        <tr>
                            <td width = \"15\"></td>
                            <td>
                                  
                                <img src = 'images/blocks/som_module.gif' width = '15' height = '10' hspace = '2'>
                                 <a href = 'monlien3>
                                    Mon troisième sous-menu
                                 </a>
                            </td>
                          </tr>
                    </table>
                    </div>
          </td>
      </tr>
      </table><br>



(enlever les ! entourant !document.cookie! générés lors de la création de ce message)
à renouveler pour chaque ligne de menu
killing killingicon_post


Bonjour,

Si j'ai bonne mémoire, le code d'un menu déroulant est dispo dans le forum "Le coin des codeurs"

;-)