Les avertissements suivants se sont produits :
Warning [2] Undefined array key 0 - Line: 1640 - File: showthread.php PHP 8.2.18 (Linux)
File Line Function
/inc/class_error.php 153 errorHandler->error
/showthread.php 1640 errorHandler->error_callback
/showthread.php 915 buildtree




Note de ce sujet :
  • Moyenne : 0 (0 vote(s))
  • 1
  • 2
  • 3
  • 4
  • 5
[Smarty] Obtenir valeur variable d'un objet smarty
#1
Citation :#~~~~~ DEBUT BLOC A NE PAS SUPPRIMER ~~~~~
#~ Version du CMS: -1.11.11
#~ Url du site : bastienperreuil.fr
#~ Hébergeur / Soft : FranceServ Hébergement
#~ Informations Système :
#~ ----------------------------------------------
#~ Cms Version: 1.11.11
#~ Installed Modules:
#~ CMSMailer: 5.2.2
#~ CMSPrinting: 1.0.5
#~ FileManager: 1.4.5
#~ MenuManager: 1.8.6
#~ MicroTiny: 1.2.7
#~ ModuleManager: 1.5.8
#~ News: 2.14.4
#~ Search: 1.7.11
#~ ThemeManager: 1.1.8
#~ Gallery: 2.0.2
#~ ListIt2: 1.4.1
#~ ListIt2portfolio: 1.4.1
#~ AceEditor: 1.0
#~ CGExtensions: 1.45
#~ CGSmartImage: 1.17.1
#~ Piwik: 1.0.1
#~ ListIt2experiences: 1.4.1
#~ Config Information:
#~ php_memory_limit:
#~ process_whole_template:
#~ max_upload_size: 32000000
#~ url_rewriting: mod_rewrite
#~ page_extension: .html
#~ query_var: page
#~ image_manipulation_prog: GD
#~ auto_alias_content: true
#~ locale:
#~ default_encoding: utf-8
#~ admin_encoding: utf-8
#~ set_names: true
#~ Php Information:
#~ phpversion: 5.4.44
#~ md5_function: On (Vrai)
#~ gd_version: 2
#~ tempnam_function: On (Vrai)
#~ magic_quotes_runtime: Off (Faux)
#~ E_STRICT: 0
#~ E_DEPRECATED: 0
#~ memory_limit: 256M
#~ max_execution_time: 360
#~ output_buffering: 4096
#~ safe_mode: Off (Faux)
#~ file_uploads: On (Vrai)
#~ post_max_size: 32M
#~ upload_max_filesize: 32M
#~ session_save_path: Aucune vérification à cause de la restriction spécifiée par PHP open_basedir
#~ session_use_cookies: On (Vrai)
#~ xml_function: On (Vrai)
#~ xmlreader_class: On (Vrai)
#~ Server Information:
#~ Server Api: fpm-fcgi
#~ Server Db Type: MySQL (mysqli)
#~ Server Db Version: 5.6.16
#~ Server Db Grants: Trouvé un privilège "GRANT ALL" qui semble être adapté
#~ Server Time Diff: Aucune différence de date du système de fichiers trouvées
#~ ----------------------------------------------
#~~~~~ FIN BLOC A NE PAS SUPPRIMER ~~~~~



Bonjour à tout le monde !

Je vous expose mon soucis : j'ai une page sur mon site qui me sert de portfolio. Pour afficher le contenu j'utilise le module News. Une fois affichés, j'aimerais pouvoir filtrer mes "objets" grâce au plugin isotop.js.

Pour que le filtre fonctionne, il faut définir des données communes entre le filtre et les objets : cela se traduit par des catégories qui vont servir à filtrer les objets : PAO, webdesign, graphisme, etc.

En code cela donne une liste de catégorie générées par le gabarit de catégories, chaque catégorie étant identifiée uniquement par un ID ({$node.news_category_id}) :

Code :
{if $count > 0}
<ul class="liste_categories" id="categories">
    <li class=""><a href="#montrer_tout">Réinitialiser</a></li>
    {foreach from=$cats item=node}
        <li class="option-set">
        {if $node.count > 0}
            <a href="#{$node.news_category_id}">{$node.news_category_name}</a><span class="nombre_article">({$node.count})</span>
        {/if}
        </li>
    {/foreach}
    {repeat string="</li></ul>" times=$node.depth-1}
</ul>
{/if}

Dans mon gabarit de sommaire d'article je veux disposer de la même information (ID catégories) dans les balises <article class="n° de cat ">
...
</article>

Le gabarit :
Code :
{foreach from=$items item=entry}
    <article class="grid_5 creation item " id="{$entry->category}">
        {* Test si il y a des champs personalisés et si oui récupere la valeur - cela ne peut être qu'une image. *}
        {if isset($entry->fields)}
           {foreach from=$entry->fields item='field'}
              {if $field->name == 'image de couverture'}
                <figure>
                  {$field->displayvalue}
                </figure>
               {* {else}
                 {eval var=$field->displayvalue} *}
              {/if}
          {/foreach}
        {/if}
        <ul class="keywords">
            <li class="categorie">{$entry->category}</li>
            <li class="date">{$entry->postdate|cms_date_format:"%Y"}</li>
            <li>
                {if isset($entry->fields)}
                  {foreach from=$entry->fields item='field'}
                          {if $field->name == 'client'}{$field->displayvalue}{/if}
                  {/foreach}
                {/if}
            </li>
        </ul>
            <div class="info">
                {if $entry->summary}
                    <div class="extrait">
                        <p>
                            {eval var=$entry->summary}
                        </p>
                        <div class="voirplus">
                            [{$entry->morelink}]
                        </div>
                    </div>
                {else if $entry->content}
                    <div class="detail_creation">
                        {eval var=$entry->content}
                    </div>
                {/if}
            </div>
    </article>
{/foreach}


Mon soucis et que je n'arrive pas à accéder à la variable $cats à l'intérieur de la boucle foreach. La seul méthode que j'ai trouvé est d'imbriquer une autre boucle {foreach from=$cats item=node} pour que le code {$node.news_category_id} me retoune un identifiant. Le soucis c'est que l'imbrication démultiplie le contenu affiché.

Voilà, vous savez tout... je ne suis pas un boss de smarty et j'ai cherché sur le net. Une solution ? :)
Répondre


Messages dans ce sujet

Atteindre :


Utilisateur(s) parcourant ce sujet : 1 visiteur(s)