03/05/2010, 09:54:51
Citation :#~~~~~ NE PAS SUPPRIMER CE BLOC ~~~~~Bonjour,
#~ Version du CMS : 1.7.0
#~ Version du MLE si existante : Nope
#~ 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
#~ * FrontEndUsers: 1.8.2
#~ * CustomContent: 1.5.3
#~ * CGExtensions: 1.18.3
#~ * CGCalendar: 1.5.2
#~ Config Information:
#~ * php_memory_limit:
#~ * process_whole_template: false
#~ * max_upload_size: 48000000
#~ * default_upload_permission: 664
#~ * assume_mod_rewrite: true
#~ * 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: 64M
#~ * max_execution_time: 10
#~ * safe_mode: Off (Faux)
#~ * session_save_path: Aucune vérification à cause de la restriction spécifiée par PHP open_basedir
#~ * session_use_cookies: On (Vrai)
#~ Server Information:
#~ * Server Api: apache2handler
#~ * Server Db Type: MySQL (mysql)
#~ * Server Db Version: 5.0.84
#~ ----------------------------------------------
#~~~~~ NE PAS SUPPRIMER CE BLOC ~~~~~
J'avais écrit un code tout simple pour liste certaines pages de mon site (très similaire au minimal_menu.tpl) :
{if $count > 0}
{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 !isset($start_level)}
{assign var="start_level" value=$node->depth}
{/if}
{if $node->depth == $start_level and $node->type != 'sectionheader' and $node->type != 'separator'}
<h3 id="titre_membres">{$node->menutext}</h3>
{elseif $node->depth == $start_level+1 and $node->type != 'sectionheader' and $node->type != 'separator'}
<li><a href="{$node->url}"{if $node->target ne ""} target="{$node->target}"{/if}> {$node->menutext} </a>
{/if}
{/foreach}
</div>
{/if}
Mais comme le résultat est long et pas très large, j'aimerais maintenant faire 2 colonnes avec le résultat. Problème : ben... je vois pas comment faire.
Mon idée était de faire une 1ère itération et compter les entrées qui m'intéressaient pour prendre la moitié. Déjà, je ne suis pas sûr de la façon dont je peux compter. J'ai l'impression qu'incrémenter en Smarty est une très mauvaise idée. Je devrais alors utiliser une balise utilisateur, mais je ne vois pas comment.
Après je devrais recommencer l'itération et l'incrémentation dans la 1ère colonne et y mettre mes node. Au moment où je tombe sur un node avec $node->depth == $start_level et que l'incrémentation a dépassé le nombre de node qui m'intéresse, je devrais fermer la 1ère colonne et commencer la 2ème.
J'ai beau réfléchir, je ne vois pas comment faire. Quelqu'un aurait-il une idée ?