Quote from: heliotrope at May 11, 2006, 10:29 AM
salut,
pour cela il te faudra modifier le snippet dropmenu
en ajoutant un parametre à la liste déjà existante
Après la ligne 133
// $topnavId [ string ]
// CSS ID for the top-level (root) UL
$topnavId = (!isset($topnavId )) ? ' id='.$topnavId .' ' : '';
et change la ligne 216 pour
$output = ($toplevel) ? "$topdivblk<ul$topnavcls$topnavId >$ie" : "$ie$subdivblk<ul$subnavcls>$ie";
J’ai pas testé mais ça devrait marcher
Ensuite dans l’appel de dropmenu
[[DropMenu? & topnavId=`outils` ]]
Merci, c’etais la 1er solutions que j’avais essayer d’adopter mais je m’etais casser les dents dessus, mais j’espere y arriver avec un peu d’aide (merci d’avance !).
Alors, j’ai essayer tes modifs, mais ca ne marche pas
je pensais que c’etais parce que dans :
$output = ($toplevel) ? "$topdivblk<ul$topnavcls$topnavId >$ie" : "$ie$subdivblk<ul$subnavcls>$ie";
$topnavId n’etais par declaré comme l’est $topnavcls
alors j’ai rajouter :
$topnavids = (!empty($topnavId)) ? ' class="'.$topnavId.'"' : '';
et j’ai changer les 2 autres en :
$output = ($toplevel) ? "$topdivblk<ul$topnavcls$topnavids >$ie" : "$ie$subdivblk<ul$subnavcls>$ie";
et
// $topnavId [ string ]
// CSS ID for the top-level (root) UL
$topnavId = (!isset($topnavId )) ? 'topid' : "$topnavId";
mais rien n’y fait !
j’ai regarder à quel autre endroit apparaissait $topnavclass pour pouvoir aussi mettre un $topnavid de la meme facon.
il apparais à la ligne 199 ou j’ai rajouter un topnavId à la suite du du topnavClass :
function MakeMap($modx, $listParent, $listLevel, $description, $titleOfLinks, $maxLevels, $inside, $pre, $post, $selfAsLink, $ie, $activeLinkIDs, $topdiv, $topdivClass, $topnavClass, $topnavId, $subdiv, $subdivClass, $subnavClass, $hereClass, $useCategoryFolders, $categoryClass, $showDescription, $descriptionField, $textOfLinks, $orderBy, $orderDesc, $debugMode) {
et à la ligne 261, ou j’ai rajouter un topnavId à la suite du du topnavClass :
$itm .= MakeMap($modx, $child['id'], $listLevel +1, $description, $titleOfLinks, $maxLevels, true, $pre, $post, $selfAsLink, $ie, $activeLinkIDs, $topdiv, $topdivClass, $topnavClass, $topnavId, $subdiv, $subdivClass, $subnavClass, $hereClass, $useCategoryFolders, $categoryClass, $showDescription, $descriptionField, $textOfLinks, $orderBy, $orderDesc, $debugMode);
et à la ligne 329 ou j’ai rajouter un topnavId à la suite du du topnavClass :
$modx->setPlaceholder($phName, MakeMap($modx, $siteMapRoot, 0, $showDescription, $titleOfLinks, $maxLevels, false, $pre, $post, $selfAsLink, $ie, $activeLinkIDs, $topdiv, $topdivClass, $topnavClass, $topnavId, $subdiv, $subdivClass, $subnavClass, $hereClass, $useCategoryFolders, $categoryClass, $showDescription, $descriptionField, $textOfLinks, $orderBy, $orderDesc, $debugMode));
j’obtiens alors l’errue suivante :
« MODx Parse Error »
MODx encountered the following error while attempting to parse the requested resource:
« PHP Parse Error »
PHP error debug
Error: Missing argument 28 for makemap()
Error type/ Nr.: Warning - 2
File: /data/www/www.arumtec.net/v2/manager/includes/document.parser.class.inc.php(691) : eval()'d code
Line: 199
Parser timing
MySQL: 0.0041 s s (12 Requests)
PHP: 0.0782 s s
Total: 0.0823 s s
j’essaye d’enlever la modif de la ligne 199, mais là rien ne change, je n’ai toujours pas d’attribut id pour l’UL.
j’avoue que je suis un peu beaucoup perdu ...