Forum CMS Made Simple FR

Version complète : [RESOLU] {menu template='minimal_menu.tpl'}
Vous consultez actuellement la version basse qualité d’un document. Voir la version complète avec le bon formatage.

britanicus

Bonjour j'utilise minimal_menu.tpl, lorsque je passe ma page au validateur il y a un li et ul en trop. Est-ce que vous savez ce que je dois supprimer ou déplacer dans le template minimal_menu.tpl.

Voici le code source de ma page avec les balises en trop :

Code :
<ul class="clearfix">
<ul>
<li><a href="http://24x15degres.com/cms/" class="currentpage"> Accueil </a></li>
<li><a href="http://24x15degres.com/cms/index.php?page=projets"> Projets </a></li>
<li><a href="http://24x15degres.com/cms/index.php?page=informationpourlacheteur"> Information pour l'acheteur </a></li>
<li><a href="http://24x15degres.com/cms/index.php?page=a-propos-de-nous"> À propos de nous </a></li>
<li><a href="http://24x15degres.com/cms/index.php?page=publications"> Information & Publications </a></li>
<li><a href="http://24x15degres.com/cms/index.php?page=partenaires"> Partenaires </a></li>
<li><a href="http://24x15degres.com/cms/index.php?page=contactez-nous"> Contactez-nous </a></li>
</ul></li>
</ul>
J'aimerais modifier le fichier qui se trouve dans le répertoire suivant :
modules/MenuManager/templates/minimal_menu.tpl afin d'y corriger ma page et de pouvoir passer au validateur w3c.

Code :
{* CSS classes used in this template:
.currentpage - The active/current page
.bullet_sectionheader - To style section header
hr.separator - To style the ruler for the separator *}
{if $count > 0}
<ul class="clearfix">
{foreach from=$nodelist item=node}
{if $node->depth > $node->prevdepth}
{repeat string="<ul>" times=$node->depth-$node->prevdepth}
{elseif $node->depth < $node->prevdepth}
{repeat string="</li></ul>" times=$node->prevdepth-$node->depth}
</li>
{elseif $node->index > 0}</li>
{/if}

{if $node->current == true}
<li><a href="{$node->url}" class="currentpage"{if $node->target ne ""} target="{$node->target}"{/if}> {$node->menutext} </a>

{elseif $node->parent == true && $node->depth == 1 and $node->type != 'sectionheader' and $node->type != 'separator'}
<li class="activeparent"> <a href="{$node->url}" class="activeparent"{if $node->target ne ""} target="{$node->target}"{/if}> {$node->menutext} </a>

{elseif $node->type == 'sectionheader'}
<li class="sectionheader">{$node->menutext}

{elseif $node->type == 'separator'}
<li style="list-style-type: none;"> <hr class="separator" />

{else}
<li><a href="{$node->url}"{if $node->target ne ""} target="{$node->target}"{/if}> {$node->menutext} </a>

{/if}

{/foreach}

{repeat string="</li></ul>" times=$node->depth-1}</li>
</ul>
{/if}
merci


Citation :#~~~~~ NE PAS SUPPRIMER CE BLOC ~~~~~
#~ Version du CMS: 1.7.0
#~ Nom de l'hébergeur : non
#~ Informations Système :
#~ ----------------------------------------------
#~ Cms Version: 1.7
#~ Installed Modules:
#~ * CMSMailer: 1.73.14
#~ * FileManager: 1.0.2
#~ * MenuManager: 1.6.2
#~ * ModuleManager: 1.3.3
#~ * News: 2.10.4
#~ * nuSOAP: 1.0.1
#~ * Printing: 1.0.4
#~ * Search: 1.6.2
#~ * ThemeManager: 1.1.1
#~ * TinyMCE: 2.6.5
#~ * Album: 0.9.3
#~ * FormBuilder: 0.6.1
#~ Config Information:
#~ * php_memory_limit:
#~ * process_whole_template: false
#~ * max_upload_size: 7000000
#~ * default_upload_permission: 664
#~ * assume_mod_rewrite: false
#~ * page_extension:
#~ * internal_pretty_urls: false
#~ * use_hierarchy: true
#~ Php Information:
#~ * phpversion: 5.2.13
#~ * md5_function: On (Vrai)
#~ * gd_version: 2
#~ * tempnam_function: On (Vrai)
#~ * magic_quotes_runtime: Off (Faux)
#~ * E_STRICT: 0
#~ * memory_limit: 90M
#~ * max_execution_time: 30
#~ * safe_mode: Off (Faux)
#~ * session_save_path: /tmp (1777)
#~ * session_use_cookies: On (Vrai)
#~ Server Information:
#~ * Server Api: cgi-fcgi
#~ * Server Db Type: MySQL (mysql)
#~ * Server Db Version: 5.1.39
#~ ----------------------------------------------
#~~~~~ NE PAS SUPPRIMER CE BLOC ~~~~~
re


minimal_menu.tpl est valide W3C, ce le code de ta page qui est NON valide
Regarde le le code source ta page pour voir ?

#~ Cms Version: 1.7
Mettre à 1.7.1

britanicus

J'aimerais savoir pourquoi mon menu à trop de balise? As-tu regardé le code source généré par le menu?
re,

ce n'est pas le menu qui a des balises en trop c'est TA page !!
Regarde le le code source de ta page sans éditeur de texte dans l'administration
Contenu » Pages » Éditer la page:

britanicus

Bonjour,

Il y a 2 choses. 1 je ne comprend pas pourquoi des fois, le validateur m'indique que j'ai un problème de UTF-8 alors que j'ai bien mon tag.

Voici la page que je passe au validateur. Je ne sais pas si c'est la même que l'on regardait JCE.
http://24x15degres.com/cms/index.php

Code :
#  Error  Line 48, Column 4: document type does not allow element "ul" here; assuming missing "li" start-tag
<ul>

# Error Line 84, Column 15: Opening and ending tag mismatch: ul line 47 and li
</li></ul></li>

# Error Line 85, Column 5: Opening and ending tag mismatch: div line 45 and ul
</ul>

# Error Line 151, Column 6: Opening and ending tag mismatch: body line 26 and div
</div>

# Error Line 168, Column 7: Opening and ending tag mismatch: html line 2 and body
</body>

# Error Line 169: Extra content at the end of the document

</html>
re,

ce qui m'étonne c'est la mise en cause du menu minimal_menu.tpl
Pour moi ce menu étant valide
donc c'est autre chose qui est non valide
Le template que tu as donné fonctionne parfaitement.
Vérifie que le nom du template que tu as mis dans la tag d'appel du menu correspond bien au template minimal modifié par tes soins. Si c'est le bon, vérifie à nouveau ce template.

britanicus

Bonjour,

Avez-vous regardé le code source généré? Il me semble que ce menu est très simple. Je n'ai pas modifié le template du menu.

Code :
<ul class="clearfix">
<ul>
<li><a href="http://24x15degres.com/cms/" class="currentpage"> Accueil </a></li>
<li><a href="http://24x15degres.com/cms/index.php?page=projets"> Projets </a></li>
<li><a href="http://24x15degres.com/cms/index.php?page=informationpourlacheteur"> Information pour l'acheteur </a></li>
<li><a href="http://24x15degres.com/cms/index.php?page=a-propos-de-nous"> À propos de nous </a></li>
<li><a href="http://24x15degres.com/cms/index.php?page=publications"> Information & Publications </a></li>
<li><a href="http://24x15degres.com/cms/index.php?page=partenaires"> Partenaires </a></li>
<li><a href="http://24x15degres.com/cms/index.php?page=contactez-nous"> Contactez-nous </a></li>
</ul></li>
</ul>
Voici le code de mon gabarit.

Code :
{process_pagedata}<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en">
<head>
<title>{sitename} - {title}</title>

<link rel="shortcut icon" href="favicon.ico" />
<link rel="Bookmark" href="favicon.ico" />

{literal}
<script type="text/javascript" src="uploads/js/jquery.min.js"></script>
<script type="text/javascript" src="uploads/js/slider.js"></script>
{/literal}


{metadata}
{stylesheet}

</head>
<body>


<!-- debut background -->
<div id="background">
<!-- debut container -->
<div id="container">

{global_content name='langue'}

<a href="index.php"><img src="uploads/degres/logo.png" width="301" height="89" alt="logo 24x15degres.ca" class="logo" /></a>
<!-- debut header -->
<div id="header">

<div id="menu">
{menu template='minimal_menu.tpl' start_page='Francais'}
</div>


{global_content name='photo-entete1'}      


{literal}
<script type="text/javascript">
    Slider.init({
        id:       'MesImages', // id du ul
        interval: 4000,        // temps entre chaque slide
        speed:    2000,         // vitesse de defilement de la slide
                width:    666          // grandeur des images
    });
</script>
{/literal}    

</div>
<!-- debut header -->

<!-- debut contenu -->
<div class="contenu">

<h1>{title}</h1>
  {content}


<div id="footer">
{global_content name='footer'}
<div class="clear"></div>
</div>
</div>
<!-- fin contenu -->

</div>
<!-- fin container -->
</div>
<!-- fin background -->

{global_content name='google'}

</body>
</html>
effectivement ca à l'air de venir du template du menu ... ce qui nous surprend tous puisque tu es le premier à qui ca arrive.

pour être certain, change ton gabarit pour mettre

Code :
{*menu template='minimal_menu.tpl' start_page='Francais'*}
si le <ul> continue d'apparaitre en trop c'est ailleurs qu'il faut chercher (un script?) sinon c'est définitivement le gabarit du menu qui est en tord ce que je ne m'explique pas du tout... -_-'
Oui, on voit parfaitement qu'il y a un <ul> qui se promène. Mais après test, je n'ai pas ce problème.
Va dans modules/MenuManager/templates/minimal_menu.tpl et vérifie qu'il n'a pas bougé.
C'est quoi ce start_page="Francais" ? Vire-ça et regarde si ça va mieux, car si la page http://24x15degres.com/cms/Francais existe, la page http://24x15degres.com/cms/index.php?page=Francais n'existe pas et le cms ne la reconnait pas => erreur.

britanicus

@Bess, en mettant le menu en commentaire je n'ai plus de ul li en trop.
@Jean le Chauve, start_page=Francais et une entête de section.
Je ne comprend pas ce que tu veux dire par vérifie qu'il n'a pas bougé? C'est le fichier original qui est là, et je ne l'ai pas modifié.
J'ai même essayé de mettre inactif la page français qui est l'entête de section, je voulais tester si c'était cette page qui causait les balises en trop mais sans succès.

Est-ce qu'un programmeur peut jeter un oeil sur le code de minimal_menu.tpl

Code :
{* CSS classes used in this template:
.currentpage - The active/current page
.bullet_sectionheader - To style section header
hr.separator - To style the ruler for the separator *}
{if $count > 0}
<ul class="clearfix">
{foreach from=$nodelist item=node}
{if $node->depth > $node->prevdepth}
{repeat string="<ul>" times=$node->depth-$node->prevdepth}
{elseif $node->depth < $node->prevdepth}
{repeat string="</li></ul>" times=$node->prevdepth-$node->depth}
</li>
{elseif $node->index > 0}</li>
{/if}

{if $node->current == true}
<li><a href="{$node->url}" class="currentpage"{if $node->target ne ""} target="{$node->target}"{/if}> {$node->menutext} </a>

{elseif $node->parent == true && $node->depth == 1 and $node->type != 'sectionheader' and $node->type != 'separator'}
<li class="activeparent"> <a href="{$node->url}" class="activeparent"{if $node->target ne ""} target="{$node->target}"{/if}> {$node->menutext} </a>

{elseif $node->type == 'sectionheader'}
<li class="sectionheader">{$node->menutext}

{elseif $node->type == 'separator'}
<li style="list-style-type: none;"> <hr class="separator" />

{else}
<li><a href="{$node->url}"{if $node->target ne ""} target="{$node->target}"{/if}> {$node->menutext} </a>

{/if}

{/foreach}

{repeat string="</li></ul>" times=$node->depth-1}</li>
</ul>
{/if}
Le template est bon. As-tu essayé en virant le start_page de la balise d'appel du menu ?

britanicus

Alors j'ai viré le start_page, et mon menu ne s'affichait plus. Il n'y avait aucun ul li.

Code :
{menu template='minimal_menu.tpl'}
Voici l'arborescence:

1. francais type entête de section.
1.1 Accueil
1.2 autres.

J'ai donc essayé une page de contenu sans aucun parent.

J'ai crée une nouvelle page.
2. Test type contenu.

Et le menu affiche seulement la page test.

Code source :
Code :
<ul class="clearfix">
<li><a href="http://24x15degres.com/cms/index.php?page=test"> test </a></li>
</ul>
Je vais essayé d'ajouter des class dans chaque li qui se trouve dans le fichier en ligne minimal_menu.tpl afin de mieux comprendre ce qui affiche.

britanicus

Alors voici comment j'ai ajouté les class dans le fichier minimal_menu.tpl. Les <li> sont identifiés de <li class="li1"> à <li class="li5">.

Code :
{* CSS classes used in this template:
.currentpage - The active/current page
.bullet_sectionheader - To style section header
hr.separator - To style the ruler for the separator *}
{if $count > 0}
<ul class="clearfix">
{foreach from=$nodelist item=node}
{if $node->depth > $node->prevdepth}
{repeat string="<ul>" times=$node->depth-$node->prevdepth}
{elseif $node->depth < $node->prevdepth}
{repeat string="</li></ul>" times=$node->prevdepth-$node->depth}
</li>
{elseif $node->index > 0}</li>
{/if}

{if $node->current == true}
<li class="li1"><a href="{$node->url}" class="currentpage"{if $node->target ne ""} target="{$node->target}"{/if}> {$node->menutext} </a>

{elseif $node->parent == true && $node->depth == 1 and $node->type != 'sectionheader' and $node->type != 'separator'}
<li class="activeparent li2"> <a href="{$node->url}" class="activeparent"{if $node->target ne ""} target="{$node->target}"{/if}> {$node->menutext} </a>

{elseif $node->type == 'sectionheader'}
<li class="sectionheader li3">{$node->menutext}

{elseif $node->type == 'separator'}
<li style="list-style-type: none;" class="li4"> <hr class="separator" />

{else}
<li class="li5"><a href="{$node->url}"{if $node->target ne ""} target="{$node->target}"{/if}> {$node->menutext} </a>

{/if}

{/foreach}

{repeat string="</li></ul>" times=$node->depth-1}</li>
</ul>
{/if}
Voici le code source généré pour le menu :

Code :
<ul class="clearfix">
<ul>
<li class="li1"><a href="http://24x15degres.com/cms/" class="currentpage"> Accueil </a></li>
<li class="li5"><a href="http://24x15degres.com/cms/index.php?page=projets"> Projets </a></li>
<li class="li5"><a href="http://24x15degres.com/cms/index.php?page=informationpourlacheteur"> Information pour l'acheteur </a></li>
<li class="li5"><a href="http://24x15degres.com/cms/index.php?page=a-propos-de-nous"> À propos de nous </a></li>
<li class="li5"><a href="http://24x15degres.com/cms/index.php?page=publications"> Information & Publications </a></li>
<li class="li5"><a href="http://24x15degres.com/cms/index.php?page=partenaires"> Partenaires </a></li>
<li class="li5"><a href="http://24x15degres.com/cms/index.php?page=contactez-nous"> Contactez-nous </a></li>
</ul></li>
</ul>
Est-ce que vous y remarqué quelque chose d'anormal?
Ton problème vient de cet en-tête de section. Essaye start_page="accueil"
C'est la première fois que je vois un site avec un en-tête de section en page par défaut.
Tu ne peux pas construire ton site sans ça ?

britanicus

Effectivement cela corrige le tout.

Code :
{menu template='minimal_menu.tpl' start_page='Accueil' show_root_siblings="1"}
merci à tous.