das sistrix-Tool für die Vorschau auf das Aussehen eines Suchmaschinen-Treffers kennen sicher viele von euch: https://app.sistrix.com/de/serp-snippet-generator
Aktuell kann man zwar im Artikel-Reiter "SEO" über die HTML-Ansicht links unten die Meta-Angaben anzeigen lassen, die helfen aber Redakteuren jetzt nicht wirklich weiter.
Da beim sistrix-Tool eigentlich bloß drei Strings in unterschiedlichen Farben und bei Bedarf gekürzt dargestellt werden, sollte das also nicht allzu schwer sein nachzubilden. Ist es in der Tat nicht. Es reicht, ganz am Ende der root/contenido/includes/include.con_meta_form.php diese Zeilen anzuhängen:
Code: Alles auswählen
/******************** SERP-preview modifications begin ********************/
/* this is just a copy of the output-code of module head_title,
but at the end the generated title must not be echoed but written into variable
$title_of_module_head_title. have a look at marker "variable instead of echo"*/
/* output-code of module head_title begin */
$breadcrumb = array();
// get category path
$helper = cCategoryHelper::getInstance();
foreach ($helper->getCategoryPath(cRegistry::getCategoryId(), 1) as $categoryLang) {
$breadcrumb[] = $categoryLang->get('name');
}
// load current article information
$article = new cApiArticleLanguage();
$article->loadByArticleAndLanguageId(cRegistry::getArticleId(), cRegistry::getLanguageId());
$headline = strip_tags($article->getContent('CMS_HTMLHEAD', 1));
// append headline of article if existing
if ($headline != '') {
$breadcrumb[] = $headline;
}
if ($headline === '') {
$breadcrumb[] = conHtmlSpecialChars(mi18n("STARTPAGE"));
}
array_shift($breadcrumb);
if (count($breadcrumb) > 0) {
$title_of_module_head_title=implode(' - ', $breadcrumb).' | Spielwiese'; //"variable instead of echo"
}
/* output-code of module head_title end */
$title_length=getEffectiveSetting('seo_serp_preview_title', 'length', 60);
$url_length=getEffectiveSetting('seo_serp_preview_url', 'length', 93);
$description_length=getEffectiveSetting('seo_serp_preview_description', 'length', 150);
echo '<br/><h3>Google SERP Preview</h3>
<div style="color: #660099; font-size: 1.5em; margin-top: 1em;">';
if($art->getField('pagetitle')!="")
{
echo substr(conHtmlSpecialChars(cSecurity::unFilter(stripslashes($art->getField('pagetitle')))),0,$title_length);
if(strlen(conHtmlSpecialChars(cSecurity::unFilter(stripslashes($art->getField('pagetitle')))))>$title_length) echo '...';
}
else
{
echo substr($title_of_module_head_title,0,$title_length);
if(strlen($title_of_module_head_title)>$title_length) echo '...';
}
echo '</div>
<div style="color: #006621; line-height: 1.7em;">'.substr(cUri::getInstance()->build(array(
'idart' => $art->get('idart'),
'lang' => $art->get('idlang')
), true),0,$url_length);
if(strlen(cUri::getInstance()->build(array(
'idart' => $art->get('idart'),
'lang' => $art->get('idlang')
), true))>$url_length) echo '...';
echo '</div>
<div style="color: #777777; line-height: 1.7em; width: 50em;">'.substr($metaPreview[2][content],0,$description_length);
if(strlen($metaPreview[2][content])>$description_length) echo '...';
echo '</div>';
/******************** SERP-preview modifications end ********************/
Ggf. hat jemand von euch eine bessere Idee auf Lager, wie man die Kopie der Modulausgabe umgehen und den automatisch generierten Title direkt auslesen kann.
Da Google immer mal wieder gerne die Maximallängen anpasst, lässt sich das auch über die Mandanteneinstellungen festlegen:
seo_serp_preview_title | length | 60
seo_serp_preview_url | length | 93
seo_serp_preview_description | length | 150
Wichtig: Da dies eine Core-Erweiterung ist, muss die Anpassung bei einem Update aller Voraussicht nach erneut eingetragen werden.