CMS Made Simple Forums
https://forum.cmsmadesimple.org/

simplex template posizionamento google
https://forum.cmsmadesimple.org/viewtopic.php?f=29&t=64459
Page 2 of 2

Author:  giapippo [ Mon Dec 24, 2012 3:12 pm ]
Post subject:  Re: simplex template posizionamento google

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

Author:  protempore [ Wed Dec 26, 2012 7:54 am ]
Post subject:  Re: simplex template posizionamento google

giapippo \giapippo:
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
\$1:
<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:
\$1:
{assign var="taghead" value=$entry}

e questo da inserire nell'head:
\$1:
<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":
\$1:
$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:
\$1:
<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:
\$1:
{assign var="taghead" value=$entry}

e questo da inserire nell'head:
\$1:
<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}" />

Author:  giapippo [ Thu Jan 10, 2013 11:30 pm ]
Post subject:  Re: simplex template posizionamento google

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

Author:  Jo Morg [ Thu Jan 10, 2013 11:55 pm ]
Post subject:  Re: simplex template posizionamento google

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:
\$1:
$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:
\$1:
<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... :)

Author:  giapippo [ Fri Jan 11, 2013 7:40 pm ]
Post subject:  Re: simplex template posizionamento google

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

Author:  giapippo [ Fri Jan 11, 2013 7:42 pm ]
Post subject:  Re: simplex template posizionamento google

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}">

Author:  Jo Morg [ Sat Jan 12, 2013 1:00 am ]
Post subject:  Re: simplex template posizionamento google

giapippo \giapippo:
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:
\$1:
{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 \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}">
Vi suggerisco di dividere in due:
\$1:
{content assign=pagecontent}
subito dopo
\$1:
{strip}{process_pagedata}
e
\$1:
<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 °: tutto tra il </__body> </ body>;
    2 °: tutto tra il <head> </ head>;
Tutto fuori di questo si traduce in una sequenza normale.
\$1:
{content assign=pagecontent}
dovrebbe essere la prima cosa dopo
\$1:
{strip}
{process_pagedata}

Spero che questo aiuta.

Author:  protempore [ Sat Jan 12, 2013 5:33 am ]
Post subject:  Re: simplex template posizionamento google

giapippo \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}">


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)
\$1:
$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}…
\$1:
{strip}
{process_pagedata}
{content assign=pagecontent}


per il problema di google, nell'area "<head>" dell'html vanno quindi inseriti:
\$1:
<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:
\$1:
<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:
\$1:
{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:
\$1:
<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:
\$1:
<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.

Author:  giapippo [ Sat Jan 12, 2013 10:00 am ]
Post subject:  Re: simplex template posizionamento google

;D adesso mi metto d' impegno e provo tutto

grazie!!!!

Author:  protempore [ Sat Jan 12, 2013 10:05 am ]
Post subject:  Re: simplex template posizionamento google

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

Author:  protempore [ Sat Jan 12, 2013 10:08 am ]
Post subject:  Re: simplex template posizionamento google

anche l'UDT che ti ho segnalato è un po' "grezzo" e forse andrebbe rivisto... perché non contempla tutte le casistiche...

Author:  giapippo [ Sat Jan 12, 2013 10:30 am ]
Post subject:  Re: simplex template posizionamento google

protempore \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



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} ?

Author:  giapippo [ Sat Jan 12, 2013 10:41 am ]
Post subject:  Re: simplex template posizionamento google

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

Author:  protempore [ Sat Jan 12, 2013 11:03 am ]
Post subject:  Re: simplex template posizionamento google

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

Page 2 of 2 All times are UTC
Powered by phpBB © 2000, 2002, 2005, 2007 phpBB Group
http://www.phpbb.com/