[résolu] un "Duplicate content block" sournois -
archeo - 31/05/2018
Bonjour,
Je viens d'avoir le message "Duplicate content block: content_en" d'une manière qui me déroute :
Dans un gabari j'ai ceci :
Code :
[== Indéfini ==]
{capture assign="contenu"}{content}{/capture}
{if !isset ($description)}
{$description = {description}}
{if $description != ""}
{$description = {description}}
{else}
{$description={$contenu}|strip_tags|truncate:'150'|strip}
{/if}
{/if}
<meta name = "description" content = "{$description}" />
Plus bas dans le code du gabari j'ai bien sur {content}
ça fonctionne sauf que lorsque je veux éditer une page de contenu c'est impossible : j'ai le message :"Duplicate content block: content_en"
Le premier {content} dans un smarty semble considéré comme un premier bloc de contenu.
j'ai voulu utiliser {$contenu} à la place de {content} et j'ai eu le message "Undefined index: contenu in C:\wamp\www\cmsmadesimple\tmp\templates_c...."
Je tourne en rond
merci d'avance pour votre aide
version 2.2.7
[résolu] un "Duplicate content block" sournois -
airelibre - 31/05/2018
Bonjour,
essaye avec :
Code :
{$contenu={content}}
Puis plus bas
[résolu] un "Duplicate content block" sournois -
archeo - 31/05/2018
Non ça marche pas.
J'ai utilisé la syntaxe de la doc
Code :
[== Indéfini ==]
{content assign=contenu}
Marche pas
Je définis $contenu dans le header, et il et plus disponible dans le body, ça serait un problème de variable locale? Si je définis $contenu au dessus du header il n'existe ni dans le header ni dans le body :mad:
[résolu] un "Duplicate content block" sournois -
archeo - 31/05/2018
Au dessus du header
Code :
[== Indéfini ==]
{$contenu = "{content}" scope=global}
$contenu est utilisé dans le header mais inexistant dans le body
j'ai trouvé ce tuto
https://cmscanbesimple.org/blog/base-cms-made-simple-page-template-with-automated-metatags
J'ai testé et là aussi les variables définies comme globales ne s'affichent pas dans le body
il semble que d'autres aient eu ce soucis
http://www.cmsmadesimple.fr/forum/viewtopic.php?id=6460
par contre ce que dit Ouik à la fin de son poste m'interpelle :
http://www.cmsmadesimple.fr/forum/viewtopic.php?id=6472
J'y retourne
EDIT: Je viens de vérifier en ligne c'est pas mieux :/
[résolu] un "Duplicate content block" sournois -
archeo - 31/05/2018
Je viens de trouver une solution dans cette discussion
https://forum.cmsmadesimple.org/viewtopic.php?f=8&t=73411
Code :
[== Indéfini ==]
{$contenu = "{content}" scope=root}
J'ai comme l'impression que cette histoire de variable a pas l'air au point
[résolu] un "Duplicate content block" sournois -
airelibre - 01/06/2018
Correction de mon post :
Code :
{$content={content} scope=global}
J'avais oublié le scope en effet, nécessaire si le {$content} n'est pas au même niveau (top / body / head) que le {content}. Je n'ai pour ma part jamais utilisé le scope=root, aussi quelque chose d'autre doit bloquer dans tes templates.
[résolu] un "Duplicate content block" sournois -
Ouik - 01/06/2018
Perso j'utilise ce que Airelibre a posté juste au-dessus sans aucun problème dans mes gabarits "parents", et comme lui je n'ai jamais utilisé scope=root.
[résolu] un "Duplicate content block" sournois -
archeo - 01/06/2018
Oui moi aussi ça ne semble pas logique d'autant plus que si je mets ceci dans le module News
Code :
[== Indéfini ==]
{if $entry->summary}
{assign var='description' value=$entry->summary }
{$description={$description}|strip_tags|truncate:'150'|strip scope=global}
{/if}
Je peux utiliser {$description} dans le head ET le body du gabarit de page. Par contre si {$description} n'est défini que dans le gabarit de page il ne passe pas dans le body.
Il y aurait un paramétrage général qui m'échapperait? Par exemple à quoi sert :
"$config['process_whole_template'] = false; " que l'on peut ajouter dans le config.php ?
[résolu] un "Duplicate content block" sournois -
archeo - 01/06/2018
J'ai mis le doigt sur le problème : Une UDT {root_page_hierarchy start_level='4' assign='hierarchy'} plus ou moins bricolé maison
Code :
[== Indéfini ==]
{* main content *}
<div class="main-main util-clearfix">
{if $content_obj->GetPropertyValue('extra1')=='sans-menu-3'}
{else}
{root_page_hierarchy start_level='4' assign='hierarchy'}
<p>{$hierarchy}</p>
{if $hierarchy==""}
{else}
<div class="core-float-right" id="menu_3">
<div class="noprint"> {Navigator template="menu_3" number_of_levels="4" start_element=$hierarchy collapse="1"} </div>
</div>
{/if}
{/if}
<h1 class="title">
{title}
</h1>
{$contenu}
</div>
<div >
Je me demande si c'est mon UDT qui pose problème ou une UDT en général
[résolu] un "Duplicate content block" sournois -
archeo - 01/06/2018
C'était mon UDT qui posait problème. J'avais laissé cette ligne
Code :
[== PHP ==]
$smarty = cmsms()->GetSmarty();
et comme le dit la doc
"As of CMSMS version 1.11 it is invalid to overwrite the $smarty object that is passed in to the UDT with the global smarty object.
In example in a User Defined Tag this code is invalid and will cause errors:
$smarty = cmsms()->GetSmarty() "
Tout a l'air de fonctionner avec un scope=global
Merci de m'avoir épaulé et aiguillé vers la solution