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

news : afficher le titre de la news comme titre de la page et + encore
#26

Après moult relecture : ouch... un mélange des deux je dirais

Jean le Chauve parle du gabarit principal : le gabarit utilisé par défaut pour toutes les pages du cms

Citation :qu entendez vous par "EDIT : ajout de canonical au point 2 (pas de canonical dans la page de détail des news)"
Jean le Chauve parle ici d'une modification supplémentaire toujours dans le gabarit utilisé par défaut dans toutes les pages du cms

la ligne concernant le canonical :

Citation :{if isset($canonical) AND $page_name!='news'}<link rel="canonical" href="{$canonical}" />{elseif isset($content_obj) AND $page_name!='news'}<link rel="canonical" href="{$content_obj->GetURL()}" />{/if}
Répondre
#27

Pour récupérer l'url de l'article : http://www.cmsmadesimple.fr/forum/viewto...490#p15490
Répondre
#28

Bonjour,

C'était pour signaler que depuis la version 1.8, il faut apporter quelques modifications pour que ça fonctionne (sinon il deviendra impossible de modifier les pages en raison de la présence multiple de balise {content}) :
http://forum.cmsmadesimple.org/index.php...218004.htm
Répondre
#29

Merci, le premier post est corrigé en ce sens.
Répondre
#30

post précédent inapproprié, shame on me

[edit] Si ça peut aider les non-initiés dont je fais partie, comme expliqué sur le wiki US et à noter à l'étape 4 de ce tuto, on a assigné une variable à la balise {content} avant le head il faut donc remplacer celle contenu dans le body du gabarit par {$captured_content}, sinon problèmes! [/edit]
Répondre
#31

Bonjour,

Je me permets de réactualiser ce post (riche en informations, merci à tous !), car je ne comprends pas très bien pourquoi vous supprimez la balise canonical dans le détail des News ?

Je trouve ça dommage en terme de SEO, puisque si l'url de la news est améliorée (par exemple, suppression des "/chiffres" ajoutés par défaut dans CMS MS lors de la création d'une news), on se retrouve avec plusieurs pages indexées avec le même contenu...

Mais peut-être que je n'ai pas tout saisi...?

Merci d'avance pour vos retours éclairés !
Répondre
#32

Bonjour

Quelle est donc la procédure à suivre pour les version 1.9.+ ?
Aussi, Jean, lorsqu'on essaye d'accéder aux liens que tu proposes dans cette page, cela ne marche pas très bien.

Merci!
Répondre
#33

Bon, il semblerait qu'une bonne partie de - sinon toutes - ces astuces ne fonctionnent plus : il y a eu du changement, j'ai trouvé un commentaire qui indique une autre marche à suivre, mais ça n'a pas l'air de plus fonctionner (testé avec V1.11.13 et V2 beta3).

Quelqu'un aurait-il une idée du comment faire pour le titre de la page, etc. ? Merci d'avance.

Ouik - communication . outils numériques . design graphique
Répondre
#34

Ça fait longtemps que le gabarit des news contient la variable canonical par défaut {assign var='canonical' value=$entry->canonical} et {process_pagedata} ne sert plus à rien. La partie concernant ce sujet est obsolète (elle date de 5 ans...).

Pour la V2, les variables des sous-gabarits ne seront plus disponibles dans les gabarits parents (dernière version stable de Smarty). Pour que cela soit à nouveau possible, il faut ajouter scope=global lors de l'assignation de la variable (voir le lien vers le post de Calguy au sujet de l'avancement de la V2 que tu nous as donné aujourd'hui ici Wink).
Citation :In CMSMS 1.x it was assumed and documented that all smarty variables were available at all time, and never disappeared. If you created a variable (lets say 'page_title' in a module template called from the {content} tag that was called from within the </__body> section of your page template, that variable {$page_title} would be available within the <head> section of your page template.

Unfortunately, that is no longer true without explicit action by you. In smarty (now that CMSMS is using an un-modified version of Smarty), sub templates create their own scope. And there is a hierarchy of templates. Variables are copied from parent scopes into child scopes, but are not copied from the child to the parent. Making a smarty variable persistent across multiple scopes requires explicit action by the site developer (specifically you).

Fortunately, it is relatively easy to copy a local variable in a sub template, into a global variable for use in the parent, or other peer templates. And we have added a new smarty plugin to the core to help even more.

If you remember the stock News detail template there was a line such as this:
Code:
{assign var='canonical' value=$entry->canonical}

That created a smarty variable called 'canonical' that was then used in the <head> portion of the page template to create the <link rel="canonical"> tag.
Because of the new smarty scoping methodology, that syntax now looks like this:
Code:
{assign var='canonical' value=$entry->canonical scope=global}


Additionally, the {share_data} plugin will allow you to specify numerous local variables that should be copied to the local scope. i.e:
Code:
{share_data scope=global vars='page_title,canonical,page_description'}


CMSMS uses smarty sub-templates extensively. The most obvious ones are the {content} tags, module templates, like {News}, {Search}, or {Navigator}. However the three portions of the page template (above the HTML tag, from </__body> down, and the head section) are each individual sub templates. Thus, without explicit action variables created in the top section are now not available in the body.
Répondre
#35

Salut Jean,

J'ai bien lu ce post hier, je l'ai d'ailleurs relayé sur le forum FR, j'ai vu de quoi il retournait.

Ma question concernait la version 1.XX déjà, et évidemment aussi la 2 mais antérieure à cette annonce.

Ouik - communication . outils numériques . design graphique
Répondre
#36

Petite note car Calguy1000 a corrigé son post :

Ce n'est pas :
calguy1000 a écrit :Additionally, the {share_data} plugin will allow you to specify numerous local variables that should be copied to the local scope. i.e:

Mais :
calguy1000 a écrit :Additionally, the {share_data} plugin will allow you to specify numerous local variables that should be copied to the global scope. i.e:

Ce changement va nous donner un peu de boulot pour les migrations de v1, mais cela va aussi résoudre pas mal de comportement bizarres quand des modules déclaraient les mêmes variables dans Smarty Wink
Répondre


Atteindre :


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