simplex template posizionamento google

La discussione sul CMS Made Simple in italiano.
giapippo
Forum Members
Forum Members
Posts: 176
Joined: Tue Feb 28, 2012 1:24 pm

Re: simplex template posizionamento google

Post by giapippo »

ok ci siamo

ho inserito il tag che mi hai indicato nel template di dettaglio della email


{assign var='pagetitle' value=$entry->title}
{assign var="taghead" value=$entry}
{* Don't remove this! Metadata is entered in Site Admin/Global settings. *}
{metadata}
{* set a canonical variable that can be used in the head section if process_whole_template is false in the config.php *}
{if isset($entry->canonical)}
{assign var='canonical' value=$entry->canonical}
{/if}

<h2> {$entry->title|cms_escape:htmlall}</h2>

<section class='news-article'>
<time class='date' datetime='{$entry->postdate|date_format:'%Y-%m-%d'}'>
<span class='day'> {$entry->postdate|date_format:'%d'} </span>
<span class='month'> {$entry->postdate|date_format:'%b'} </span>
</time>

{if $entry->summary}
{eval var=$entry->summary}
{/if}
{eval var=$entry->content}
{if $entry->extra}
{$extra_label} {$entry->extra}
{/if}
{if $return_url != ""}
<br />
<span class='back'>← {$return_url}{if $category_name != ''} - {$category_link}{/if}</span>
{/if}

{if isset($entry->fields)}
{foreach from=$entry->fields item='field'}
<div>
{if $field->type == 'file'}
{* this template assumes that every file uploaded is an image of some sort, because News doesn't distinguish *}
<img src='{$entry->file_location}/{$field->value}' alt='' />
{else}
{$field->name}: {eval var=$field->value}
{/if}
</div>
{/foreach}
{/if}
{* <footer class='news-meta'>
{if $entry->postdate}
{$entry->postdate|cms_date_format}
{/if}
{if $entry->category}
<strong>{$category_label}</strong> {$entry->category}
{/if}
{if $entry->author}
<strong>{$author_label}</strong> {$entry->author}
{/if}
</footer>*}




nel metatag e' bastato inserire solo questo

<meta property="og:title" content="{$taghead->title|cms_escape:htmlall}" />


adesso e' rimasto solo un problema che credo dipenda dal posto nel template dove ho inserito il tag che mi hai idicato

il problema e' che mi si ripete il titolo per 3 volte se condivido in google+ o altri ad esempio

se condivido:

http://www.overgroup.eu/corsi_ecm/news/ ... nale-SIUrO


ottengo:


XXIII Congresso Nazionale SIUrO XXIII Congresso Nazionale SIUrO »
XXIII Congresso Nazionale SIUrO. 09 Jun. 09 - 11 Giugno 2013. PALAZZO DEGLI AFFARI FIRENZE. Cari Colleghi,. è per me un grande onore scrivere queste righe di saluto e di invito al XXIII Congresso Nazi...



il titolo lo trovo 3 volte ???

sempre grazie
User avatar
protempore
Power Poster
Power Poster
Posts: 599
Joined: Mon Jan 14, 2008 9:08 pm
Location: Villadossola - (VB)/Italy

Re: simplex template posizionamento google

Post by protempore »

giapippo wrote:ok ci siamo

ho inserito il tag che mi hai indicato nel template di dettaglio della email
non mi pare...
non so bene come funziona google+, ma sulle tue pagine ci sono diverse anomalie anche se non so se sono esattamente quelle che creano i tuoi problemi nello specifico...

non hai fatto per niente ciò di cui ti avevo consigliato, non hai inserito i metatag "title" e "description" per risolvere il problema di google che restituisce sempre gli stessi contenuti per tutti i links del sito:

site:www.overgroup.eu

Code: Select all

<meta name="title" content="{title}"/>
{content assign=pagecontent}
<meta name="description" content="{$pagecontent|strip_tags|truncate:250}">
oppure, nel caso di news, questo da inserire nel template di dettaglio della news:

Code: Select all

{assign var="taghead" value=$entry}
e questo da inserire nell'head:

Code: Select all

<meta name="title" content="{$taghead->title|cms_escape:htmlall}"/>
<meta name="description" content="{$taghead->content|strip_tags|truncate:250}">
poi la questione Facebook... e, credo, anche google+, con i meta tag open graph...
tu hai inserito solo quello "og:title" e uno "og:image" (ma continui ad inserire quest'ultimo sbagliato non indicando affatto l'immagine, ma solo la directory che probabilmente la contiene... in più li hai inseriti nell'"head" e anche all'interno del tag "article" nel content...

In più, o in meno sarebbe da dire, non hai affatto indicato il tag "og:description" (e credo che sia quello il problema di google+, che cerca di descrivere il contenuto leggendo tutto il body, nel quale è compreso anche il title finendo per triplicarlo)

quindi, oltre a mettere solo quelli messi nell'head e togliendo gli altri, devi:
inserire il tag "og:image" in modo corretto, provando ad usare l'UDT che ti ho proposto...
codice UDT "srcpath":

Code: Select all

$content = $params['content'];
$srcstart = strpos($content, 'src="');
if(substr_count($content, '.jpg" ')!=0) {
   $srcend = strpos($content, '.jpg" ');
}elseif(substr_count($content, '.gif" ')!=0) {
   $srcend = strpos($content, '.gif" ');
}
$srcpath = substr($content, $srcstart+5, $srcend+4-($srcstart+5));
echo $srcpath;
e inserire (nell'head) i tag conseguenti:

Code: Select all

<meta property="og:title" content="{title}" />
<meta property="og:image" content="{srcpath content=$pagecontent}" />
<meta property="og:description" content="{$pagecontent|strip_tags|truncate:250}" />
o, nel caso di news, questo all'interno del template di dettaglio della news:

Code: Select all

{assign var="taghead" value=$entry}
e questo da inserire nell'head:

Code: Select all

<meta property="og:title" content="{$taghead->title|cms_escape:htmlall}" />
<meta property="og:image" content="{srcpath content=$taghead->content}" />
<meta property="og:description" content="{$taghead->content|strip_tags|truncate:250}" />
giapippo
Forum Members
Forum Members
Posts: 176
Joined: Tue Feb 28, 2012 1:24 pm

Re: simplex template posizionamento google

Post by giapippo »

ciao ci sono adesso funziona quasi tutto

mi manca solo una cosa che purtroppo non capisco ovvero la gestione delle immagini nella condivisione su facebook

cosa e' "l'UDT" ??

dove devo inserire questo codice ??

Code:
$content = $params['content'];
$srcstart = strpos($content, 'src="');
if(substr_count($content, '.jpg" ')!=0) {
$srcend = strpos($content, '.jpg" ');
}elseif(substr_count($content, '.gif" ')!=0) {
$srcend = strpos($content, '.gif" ');
}
$srcpath = substr($content, $srcstart+5, $srcend+4-($srcstart+5));
echo $srcpath;



grazie mille per l'aiuto ho risolto quasi tutti i problemi

giapippo
User avatar
Jo Morg
Dev Team Member
Dev Team Member
Posts: 1800
Joined: Mon Jan 29, 2007 4:47 pm

Re: simplex template posizionamento google

Post by Jo Morg »

Un UDT è un User Defined Tag (tag definiti dall'utente). È possibile accedervi tramite Estensioni-> tag definiti dall'utente.
Questi sono snipets PHP (whitout i tag che racchiudono <? Php e ?> ) che possono essere utilizzati sui vostri Modelli.

Crea uno nuovo e incolla il codice qui:

Code: Select all

$content = $params['content'];
$srcstart = strpos($content, 'src="');
if(substr_count($content, '.jpg" ')!=0) {
 $srcend = strpos($content, '.jpg" ');
}elseif(substr_count($content, '.gif" ')!=0) {
 $srcend = strpos($content, '.gif" ');
}
$srcpath = substr($content, $srcstart+5, $srcend+4-($srcstart+5));
echo $srcpath;
come ha suggerito Protempore, chiamato srcpath.
Si può usare in questo modo:

Code: Select all

<meta property="og:image" content="{srcpath content=$pagecontent}" />
come ha suggerito Protempore.
Spero che questo aiuta.
PS: Italiano non è la mia lingua nativa, mi scusi eventuali errori... :)
"There are 10 types of people in this world, those who understand binary... and those who don't."
* by the way: English is NOT my native language (sorry for any mistakes...).
Code of Conduit | CMSMS Docs | Help Support CMSMS
My developer Page on the Forge | Yet another blog about CMSMS
GeekMoot 2015 in Ghent, Belgium: I was there!
GeekMoot 2016 in Leicester, UK: I was there!
giapippo
Forum Members
Forum Members
Posts: 176
Joined: Tue Feb 28, 2012 1:24 pm

Re: simplex template posizionamento google

Post by giapippo »

ciao a tutti
ho fatto quanto indicato dal gentilissimo Jo Morg ma purtroppo non e' cambiato niente

ho creato il un UDT ed inserito nell head del template simplex i codici come sotto riportato

{strip}
{process_pagedata}

{* With cms_lang_info we retrieve current language information, assign gives us $nls variable we can work with *}
{cms_lang_info assign='nls'}

{* using strip as we don't want useless whitespace, especially not before doctype *}
{/strip}<!doctype html>
<__html lang='{$nls->htmlarea()}' dir='{$nls->direction()}'>
<head>

<meta name="title" content="{$taghead->title|cms_escape:htmlall}"/>
<meta name="description" content="{$taghead->content|strip_tags|truncate:400}">

<meta property="og:title" content="{$taghead->title|cms_escape:htmlall}" />
<meta property="og:image" content="{srcpath content=$pagecontent}" />
<meta property="og:description" content="{$taghead->content|strip_tags|truncate:400}" />

<meta charset='{$nls->encoding()}'>
<title>{title} - {sitename}</title>
<meta name='viewport' content='initial-scale=1.0 maximum-scale=1.0 user-scalable=no' />
<meta name='HandheldFriendly' content='true' />

{* Don't remove this! Metadata is entered in Site Admin/Global settings. *}
{metadata}
{* See in news detail template how cannonical url can be assigned from module *}


credevo fosse piu0 semplice invece e' davvero complesso

sempre grazie per l'aiuto

giapippo
giapippo
Forum Members
Forum Members
Posts: 176
Joined: Tue Feb 28, 2012 1:24 pm

Re: simplex template posizionamento google

Post by giapippo »

dimenticavo

dove inserisco questo codice ?


site:www.overgroup.eu

Code:
<meta name="title" content="{title}"/>
{content assign=pagecontent}
<meta name="description" content="{$pagecontent|strip_tags|truncate:250}">
User avatar
Jo Morg
Dev Team Member
Dev Team Member
Posts: 1800
Joined: Mon Jan 29, 2007 4:47 pm

Re: simplex template posizionamento google

Post by Jo Morg »

giapippo wrote:ho creato il un UDT ed inserito nell head del template simplex i codici come sotto riportato
:) Spero che questo codice è stato sul modello di pagina:

Code: Select all

{strip}
{process_pagedata}

{* With cms_lang_info we retrieve current language information, assign gives us $nls variable we can work with *}
{cms_lang_info assign='nls'}

{* using strip as we don't want useless whitespace, especially not before doctype *}
{/strip}<!doctype html>
<__html lang='{$nls->htmlarea()}' dir='{$nls->direction()}'>
<head>

<meta name="title" content="{$taghead->title|cms_escape:htmlall}"/>
<meta name="description" content="{$taghead->content|strip_tags|truncate:400}">

<meta property="og:title" content="{$taghead->title|cms_escape:htmlall}" />
<meta property="og:image" content="{srcpath content=$pagecontent}" />
<meta property="og:description" content="{$taghead->content|strip_tags|truncate:400}" />

<meta charset='{$nls->encoding()}'>
<title>{title} - {sitename}</title>
<meta name='viewport' content='initial-scale=1.0 maximum-scale=1.0 user-scalable=no' />
<meta name='HandheldFriendly' content='true' />

{* Don't remove this! Metadata is entered in Site Admin/Global settings. *}
{metadata}
{* See in news detail template how cannonical url can be assigned from module *}
giapippo wrote:dimenticavo

dove inserisco questo codice ?


site:www.overgroup.eu

Code:
<meta name="title" content="{title}"/>
{content assign=pagecontent}
<meta name="description" content="{$pagecontent|strip_tags|truncate:250}">
Vi suggerisco di dividere in due:

Code: Select all

{content assign=pagecontent}
subito dopo

Code: Select all

{strip}{process_pagedata}
e

Code: Select all

<meta name="description" content="{$pagecontent|strip_tags|truncate:250}"> 
proprio nella parte in cui essa appartiene <head>

Ricorda che CMSMS rende i modelli di pagina in due fasi:
  1. 1 °: tutto tra il </__body> </ body>;
  • 2 °: tutto tra il <head> </ head>;
Tutto fuori di questo si traduce in una sequenza normale.

Code: Select all

{content assign=pagecontent}
dovrebbe essere la prima cosa dopo

Code: Select all

{strip}
{process_pagedata}
Spero che questo aiuta.
"There are 10 types of people in this world, those who understand binary... and those who don't."
* by the way: English is NOT my native language (sorry for any mistakes...).
Code of Conduit | CMSMS Docs | Help Support CMSMS
My developer Page on the Forge | Yet another blog about CMSMS
GeekMoot 2015 in Ghent, Belgium: I was there!
GeekMoot 2016 in Leicester, UK: I was there!
User avatar
protempore
Power Poster
Power Poster
Posts: 599
Joined: Mon Jan 14, 2008 9:08 pm
Location: Villadossola - (VB)/Italy

Re: simplex template posizionamento google

Post by protempore »

giapippo wrote:dimenticavo

dove inserisco questo codice ?


site:www.overgroup.eu

Code:
<meta name="title" content="{title}"/>
{content assign=pagecontent}
<meta name="description" content="{$pagecontent|strip_tags|truncate:250}">
caro giapippo hai la tendenza U.C.A.S. (ufficio complicazioni affari semplici)
;D

allora, ricapitoliamo...
tu hai due problemi:
– l'indicizzazione di google che riporti correttamente titolo e descrizione del contenuto di pagina principale;
– coerenza dei link sui social network relativamente alle stesse cose e all'immagine di riferimento di quel contenuto.

Per entrambi i problemi il contenuto principale può essere una pagina statica del cms oppure una news che ha caratteristiche dinamiche, cioè appartiene ad una pagina statica, ma presenta contenuti diversi a seconda della chiamata del modulo News.

Nel caso di una pagina statica (nel tuo sito, ad esempio, "Profilo Aziendale", "I nostri servizi", etc...), per definire i metatag nell'head che risolvono i tuoi problemi devi utilizzare i dati del tag {title} e del tag {content}...

nel caso di una pagina dinamica ottenuta da una news, per definire i metatag nell'head che risolvono i tuoi problemi devi utilizzare i dati dell'oggetto {$entry} restituito dal modulo News con il template di dettaglio dell'articolo.

In entrambe le situazioni, per ottenere il metatag open graph che ti serve per indicare il percorso all'immagine da utilizzare però, mentre titolo e descrizione li recuperi come abbiamo visto sopra, qui sei costretto a creare un UDT, cioè, come ti ha spiegato Jo Morg, un tag personalizzato che facendo una sorta di parsing del contenuto di {content} nel caso di pagina statica o di {$entry->content} nel caso di news, restituisca il primo percorso utile della prima immagine presente.

Sotto Estensioni-> tag definiti dall'utente definisci l'UDT e lo chiami "srcpath" (l'esempio considera di restituire solo immagini .jpg o .gif… se volessi, ad esempio, anche .png, andrebbe inserita nell'UDT l'ulteriore clausola "elseif" conseguente)

Code: Select all

$content = $params['content'];
$srcstart = strpos($content, 'src="');
if(substr_count($content, '.jpg" ')!=0) {
 $srcend = strpos($content, '.jpg" ');
}elseif(substr_count($content, '.gif" ')!=0) {
 $srcend = strpos($content, '.gif" ');
}
$srcpath = substr($content, $srcstart+5, $srcend+4-($srcstart+5));
echo $srcpath;
Questo UDT lo utilizzerai passandogli il parametro relativo al {content} della pagina statica o di {$entry->content} nel caso di News quando avrai necessità di ottenere il percorso della prima immagine contenuta in esso.

PAGINA STATICA
Jo Morg suggerisce di assegnare alla variabile che chiameremo {$pagecontent} il valore del tag {content} subito dopo il tag {process_data}…

Code: Select all

{strip}
{process_pagedata}
{content assign=pagecontent}
per il problema di google, nell'area "<head>" dell'html vanno quindi inseriti:

Code: Select all

<meta name="title" content="{title}"/>
<meta name="description" content="{$pagecontent|strip_tags|truncate:250}">
per il problema dei social network devi inserire i metatag open graph sempre nell'area "<head>" dell'html, però, mentre titolo e descrizione lo fai similmente a quanto descritto sopra, per il tag "og:image" devi richiamare l'UDT spiegato prima:

Code: Select all

<meta property="og:title" content="{title}" />
<meta property="og:description" content="{$pagecontent|strip_tags|truncate:250}" />
<meta property="og:image" content="{srcpath content=$pagecontent}" />

PAGINA NEWS
qui, come si è detto, non si può più utilizzare il tag {content}, ma si deve utilizzare l'oggetto {$entry} restituito richiamando il dettaglio del modulo News. Siccome nella pagina il modulo News potrebbe essere richiamato più volte, per aver sicurezza che il valore di {$entry} è esattamente quello del dettaglio che ci interessa (se il richiamo di dettaglio di News non è l'ultima chiamata di quel modulo avremmo un valore di {$entry} che si riferisce ad un'altra news che non è quella che ci interessa), dobbiamo valorizzare nel template di dettaglio di News il valore di {$entry} all'interno di una variabile ad hoc che chiameremo {$taghead}
Quindi nel template di dettaglio di News metteremo:

Code: Select all

{assign var="taghead" value=$entry}
ora, come per quanto previsto per le pagine statiche, possiamo definire i metatag che ci interessano.
per il problema di google, nell'area "<head>" dell'html vanno quindi inseriti:

Code: Select all

<meta name="title" content="{$taghead->title|cms_escape:htmlall}"/>
<meta name="description" content="{$taghead->content|strip_tags|truncate:250}">
per il problema dei social network devi inserire i metatag open graph sempre nell'area "<head>" dell'html, però, mentre titolo e descrizione lo fai similmente a quanto descritto sopra, per il tag "og:image" devi richiamare l'UDT spiegato prima:

Code: Select all

<meta property="og:title" content="{$taghead->title|cms_escape:htmlall}" />
<meta property="og:description" content="{$taghead->content|strip_tags|truncate:250}" />
<meta property="og:image" content="{srcpath content=$taghead->content}" />
ovvio, che ne caso di News, assegnare il valore di {content} ad una nuova variabile {$pagecontent} non è necessario.
giapippo
Forum Members
Forum Members
Posts: 176
Joined: Tue Feb 28, 2012 1:24 pm

Re: simplex template posizionamento google

Post by giapippo »

;D adesso mi metto d' impegno e provo tutto

grazie!!!!
User avatar
protempore
Power Poster
Power Poster
Posts: 599
Joined: Mon Jan 14, 2008 9:08 pm
Location: Villadossola - (VB)/Italy

Re: simplex template posizionamento google

Post by protempore »

ho dimenticato di segnalare che, se si usa il tag
{content assign=pagecontent}
cmsms restituirà un errore se lo stesso tag {content} non sarà sostituito nel body con {$pagecontent}... perché vede un blocco duplicato
User avatar
protempore
Power Poster
Power Poster
Posts: 599
Joined: Mon Jan 14, 2008 9:08 pm
Location: Villadossola - (VB)/Italy

Re: simplex template posizionamento google

Post by protempore »

anche l'UDT che ti ho segnalato è un po' "grezzo" e forse andrebbe rivisto... perché non contempla tutte le casistiche...
giapippo
Forum Members
Forum Members
Posts: 176
Joined: Tue Feb 28, 2012 1:24 pm

Re: simplex template posizionamento google

Post by giapippo »

protempore wrote:ho dimenticato di segnalare che, se si usa il tag
{content assign=pagecontent}
cmsms restituirà un errore se lo stesso tag {content} non sarà sostituito nel body con {$pagecontent}... perché vede un blocco duplicato

infatti

quindi nel template, nella zona del body ho il vecchio tag {content}


</div>
<!-- .content-top //-->
<!-- .content (actual content with title and content tags) -->
<article class='content' id='main' role='main'>
{*<h1>{title}</h1> title tag *}
{content} {* content entered in page editor area *}
</article>
<!-- .content //-->
</div>

devo semplicemente cambiarlo in {$pagecontent} ?
Last edited by giapippo on Sat Jan 12, 2013 10:57 am, edited 1 time in total.
giapippo
Forum Members
Forum Members
Posts: 176
Joined: Tue Feb 28, 2012 1:24 pm

Re: simplex template posizionamento google

Post by giapippo »

quindi il template simplex finale dovrebbe venire cosi:


{strip}
{process_pagedata}

{* With cms_lang_info we retrieve current language information, assign gives us $nls variable we can work with *}
{cms_lang_info assign='nls'}

{* using strip as we don't want useless whitespace, especially not before doctype *}
{/strip}<!doctype html>
<__html lang='{$nls->htmlarea()}' dir='{$nls->direction()}'>
<head>

<meta name="title" content="{title}"/>
<meta name="description" content="{$pagecontent|strip_tags|truncate:350}">

<meta name="title" content="{$taghead->title|cms_escape:htmlall}"/>
<meta name="description" content="{$taghead->content|strip_tags|truncate:250}">

<meta property="og:title" content="{title}" />
<meta property="og:description" content="{$pagecontent|strip_tags|truncate:350}" />
<meta property="og:image" content="{srcpath content=$pagecontent}" />

<meta property="og:title" content="{$taghead->title|cms_escape:htmlall}" />
<meta property="og:description" content="{$taghead->content|strip_tags|truncate:250}" />
<meta property="og:image" content="{srcpath content=$taghead->content}" />

<meta charset='{$nls->encoding()}'>
<title>{title} - {sitename}</title>
<meta name='viewport' content='initial-scale=1.0 maximum-scale=1.0 user-scalable=no' />
<meta name='HandheldFriendly' content='true' />



manca solamente il codice da inserire dopo
{process_pagedata}
perche da errore
User avatar
protempore
Power Poster
Power Poster
Posts: 599
Joined: Mon Jan 14, 2008 9:08 pm
Location: Villadossola - (VB)/Italy

Re: simplex template posizionamento google

Post by protempore »

sì, ma segui le indicazioni, accidenti...
non puoi mischiare tutta la spiegazione che ti ho fatto...
se si tratta di pagine statiche è una cosa se si tratta di news è un altra... non puoi usare lo stesso template per entrambi.

quanto al problema del tag {content} devi semplicemente togliere quello nel "body" e sostituirlo con la variabile che hai definito dopo {process_pagedata}...
Post Reply

Return to “Italian - Italiano”