Forum CMS Made Simple FR

Version complète : [Résolu] Module News [lien vers page]
Vous consultez actuellement la version basse qualité d’un document. Voir la version complète avec le bon formatage.
Citation :#~~~~~ DEBUT BLOC A NE PAS SUPPRIMER ~~~~~
#~ Version du CMS: 1.11.7
#~ Url du site :
#~ Hébergeur / Soft :
#~ Informations Système :
#~ Installed Modules:
#~ CMSMailer: 5.2.1
#~ CMSPrinting: 1.0.4
#~ FileManager: 1.4.3
#~ MenuManager: 1.8.5
#~ MicroTiny: 1.2.5
#~ ModuleManager: 1.5.5
#~ News: 2.12.12
#~ Search: 1.7.8
#~ ThemeManager: 1.1.8
#~ AdvancedContent: 0.9.4.3
#~ Config Information:
#~ php_memory_limit:
#~ process_whole_template:
#~ max_upload_size: 2000000
#~ url_rewriting: none
#~ page_extension:
#~ query_var: page
#~ image_manipulation_prog: GD
#~ auto_alias_content: true
#~ locale: fr_FR
#~ default_encoding: utf-8
#~ admin_encoding: utf-8
#~ set_names: true
#~ Php Information:
#~ phpversion: 5.3.0
#~ md5_function: On (Vrai)
#~ gd_version: 2
#~ tempnam_function: On (Vrai)
#~ magic_quotes_runtime: Off (Faux)
#~ E_STRICT: 0
#~ E_DEPRECATED: 0
#~ memory_limit: 128M
#~ max_execution_time: 120
#~ output_buffering: 4096
#~ safe_mode: Off (Faux)
#~ file_uploads: On (Vrai)
#~ post_max_size: 8M
#~ upload_max_filesize: 2M
#~ session_save_path: /var/tmp (1777)
#~ session_use_cookies: On (Vrai)
#~ xml_function: On (Vrai)
#~ xmlreader_class: On (Vrai)
#~ Server Information:
#~ Server Api: apache2handler
#~ Server Db Type: MySQL (mysqli)
#~ Server Db Version: 5.5.11
#~ Server Db Grants: Trouvé un privilège "GRANT ALL" qui semble être adapté
#~~~~~ FIN BLOC A NE PAS SUPPRIMER ~~~~~



Bonjour à tous,

je profite d'un moment d'accalmie pour installer une version 1.11.7 en local pour test.

J'ai pris l'habitude avec les versions précédentes d'utiliser un champ de texte dans le module news.

Nom du champ : cms_selflink, type champ de texte, longueur maximale : 255, publique.

Dans le gabarit du sommaire j’appelle le champ ainsi :

Code :
{if isset($entry->cms_selflink)}
      {cms_selflink page=$entry->cms_selflink text=$entry->title}
  
   {/if}


Ce qui est très pratique pour lier le titre de l'article vers une page du cms. Il suffit de renseigner le champ avec l'alias de la page visée.

Étonnamment, cela ne fonctionne plus avec ma version 1.11.7.

Quelque chose a changé, m'a échappé, problème de config ???

Si l'un d'entre vous a une soluce ! Sad
Bonjour,
tout d'abord, il ne faut pas utiliser des "mots réservés" dans les noms de variables en programmation.
Il faut aussi appliquer cette règle en SMARTY aussi.
Donc, pour éviter toute confusion, renomme ton champ supplémentaire.

Je suis très étonné que cela fonctionnait jusqu'à présent. Avec quelle version l'as-tu fait avant?
Pour atteindre un champ supplémentaire dans les news, il faut passer par $entry->fields.
Bonjour Jissey,

J'ai refais un test en modifiant le nom de la variable par ‘mapage’, cela ne fonctionne pas non plus.

Pour répondre à ta question, jusqu'à la 1.10.3, sans problème avec une condition en plus pour choisir si le champ est rempli ou non :

Code :
{if isset($entry->mapage)}
      {cms_selflink page=$entry->mapage text=$entry->title}
   {else}
      {$entry->titlelink}
   {/if}

et même chose avec le lien ‘Lire la suite’ de [{$entry->morelink}].

Cela dit, je vais voir ce que je peux faire avec $entry->fields, cela doit bien être possible. Wink

Enfin, j'espère.
Merci, il fallait en effet penser à smarty 3, bien sur !!!


Bon, pas de souci majeur pour récupérer le contenu du champ :

Code :
{if isset($entry->fields)}
  {foreach from=$entry->fields item='field'}
{if $entry->fieldsbyname.mapage->value}
lien ici : {cms_selflink page=$field->value text=$entry->title}
{/if}
  {/foreach}
{/if}

Cela fonctionne.

Par contre, je galère pour ajouter la condition si le champ est vide affiche le lien vers le détail de l'article.

Cela ne doit pas être loin de ça, mais pour le moment cela ne marche pas. Sad

Code :
{if isset($entry->fields)}
{foreach from=$entry->fields item='field'}
{if $field->name == 'mapage' && $field->value == ''}
lien ici : {cms_selflink page=$field->value text=$entry->title}
{else}
lien ici : {$entry->titlelink}
{/if}
{/foreach}
{/if}
Tu n'as pas lu le post que je t'ai indiqué jusqu'au bout.
Code :
[== Indéfini ==]
{if isset($entry->fields->mapage->value)}
lien ici : {cms_selflink page=$entry->fields->mapage->value text=$entry->title}
{else}
lien ici : {$entry->titlelink}
{/if}
Re :

En fait, j'avais bien lu le post jusqu'au bout et pris la peine de faire quelques essais.

Sur ma config, le codage suivant ne renvoi aucune valeur, rien, nada...


Code :
{foreach from=$items item=entry}
<div class="NewsSummary">

{if isset($entry->fields)}
{$entry->fields->mapage->value}
{/if}</div>
{/foreach}

idem avec

Code :
{if isset($entry->fields->mapage->value)}
{$entry->fields->mapage->value}
{/if}

J'ai essayé également sous cette forme :


Code :
{if isset($entry->fields)}
{if isset($entry->mapage)}      
{$entry->fields->mapage->value}
{/if}
{/if}

mais pas plus de résultats, le contenu du champ mapage n'est pas affiché.
Ha! Oui, c'est ma fôte!

Code :
[== Indéfini ==]
{$entry->fields.mapage->value}
le point à la place de la flèche (tableau à la place d'objet).
La b*** que je fais,

pourtant j'avais bien déjà utilisé fieldsbyname.mapage->value

Tu as raison, Lol, c'est bien en plantant qu'on devient cultivé !

Merci et problème bel et bien résolu. Smile

Ci après le code du gabarit du sommaire pour ceux que ça intéresse :

Code :
{foreach from=$items item=entry}
<div class="NewsSummary">

{if isset($entry->fields.mapage->value)}
lien ici : {cms_selflink page=$entry->fields.mapage->value text=$entry->title}
{else}
lien ici : {$entry->titlelink}
{/if}

</div>
  {/foreach}