|
Anonyme 19853
| Posté : 06-05-2006 16:17
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. | Citation
|
|
Tito 7758
| Posté : 06-05-2006 19:32
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) |  Profil E-mail www Citation
|
|
canasson 873
| Posté : 06-05-2006 23:03
Tu peux très certainement aussi réaliser ce menu directement en css.. |  Profil E-mail www Citation
|
|
Anonyme 19853
| Posté : 08-05-2006 14:43
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. | Citation
|
|
Tito 7758
| Posté : 09-05-2006 20:26
Le pire c'est que je l'ai codé directement en répondant... Je sais, je suis un dieu |  Profil E-mail www Citation
|
|
confridin 16
| Posté : 28-06-2006 17:39
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. |  Profil Citation
|
|
confridin 16
| Posté : 27-07-2006 18:09
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. |  Profil Citation
|
|
Anonyme 19853
| Posté : 12-06-2008 15:05
J'ai besoin du même script, & je n'arrive pas non plus a le faire marcher. Aidez-moi SVP. | Citation
|
|
PhilGuen 995
| Posté : 13-06-2008 12:03
Si les menus de mon site vous conviennent, je peux vous les passer |  Profil E-mail www Citation
|
|
Anonyme 19853
| |
PhilGuen 995
| Posté : 07-08-2008 09:08
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.it em(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.childNo des.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>
< br />   ; <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>
< br />   ; <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>
< br />   ; <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 |  Profil E-mail www Citation
|
|
killing 1140
| Posté : 07-08-2008 10:13
Bonjour,
Si j'ai bonne mémoire, le code d'un menu déroulant est dispo dans le forum "Le coin des codeurs"
|  Profil Citation
|
|