Sujet fermé
Note de ce sujet :
  • Moyenne : 0 (0 vote(s))
  • 1
  • 2
  • 3
  • 4
  • 5

[résolu] un "Duplicate content block" sournois
#1

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

MS-Dos, Gem, geoworks, Windows 1, 2, 3, 3.1, 95, 98, XP, seven, 8, 10 Smile
Mac system 1 à 6
Wampserver 3.1.9,
PhP 7.3.5,
CMS version 2.2.11
#2

Bonjour,

essaye avec :
Code :
{$contenu={content}}
Puis plus bas
Code :
{$contenu nocache}
#3

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:

MS-Dos, Gem, geoworks, Windows 1, 2, 3, 3.1, 95, 98, XP, seven, 8, 10 Smile
Mac system 1 à 6
Wampserver 3.1.9,
PhP 7.3.5,
CMS version 2.2.11
#4

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...d-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 :/

MS-Dos, Gem, geoworks, Windows 1, 2, 3, 3.1, 95, 98, XP, seven, 8, 10 Smile
Mac system 1 à 6
Wampserver 3.1.9,
PhP 7.3.5,
CMS version 2.2.11
#5

Je viens de trouver une solution dans cette discussion

https://forum.cmsmadesimple.org/viewtopi...=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 Rolleyes

MS-Dos, Gem, geoworks, Windows 1, 2, 3, 3.1, 95, 98, XP, seven, 8, 10 Smile
Mac system 1 à 6
Wampserver 3.1.9,
PhP 7.3.5,
CMS version 2.2.11
#6

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.
#7

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.

Ouik - communication . outils numériques . design graphique
#8

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 ?

MS-Dos, Gem, geoworks, Windows 1, 2, 3, 3.1, 95, 98, XP, seven, 8, 10 Smile
Mac system 1 à 6
Wampserver 3.1.9,
PhP 7.3.5,
CMS version 2.2.11
#9

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

MS-Dos, Gem, geoworks, Windows 1, 2, 3, 3.1, 95, 98, XP, seven, 8, 10 Smile
Mac system 1 à 6
Wampserver 3.1.9,
PhP 7.3.5,
CMS version 2.2.11
#10

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

MS-Dos, Gem, geoworks, Windows 1, 2, 3, 3.1, 95, 98, XP, seven, 8, 10 Smile
Mac system 1 à 6
Wampserver 3.1.9,
PhP 7.3.5,
CMS version 2.2.11
Sujet fermé


Atteindre :


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