Artikelbild beim Teilen von News auf Facebook anzeigen
Hallo liebe Community,
ich habe alles durchsucht und leider nur alte Posts zu dem Thema gefunden und nichts davon hat mein Problem gelöst. Auch im Wiki wird auf ein Modul verwiesen, das wohl nicht mehr existiert.
Ich benutze das Modul "sharebuttons" zum Teilen von Newsbeiträgen auf verschiedenen Plattformen. Leider ist es bei Facebook so, dass beim Teilen nicht das Artikelbild ausgewählt wird, sondern immer das erste auf der Seite (in dem Fall aus dem Header). Leider gibt Facebook auch nicht die Möglichkeit, ein anderes Bild auszuwählen, wie das sonst beim Teilen einer Seite möglich ist.
Weiß jemand von euch, welche Einstellung oder Ergänzungen nötig sind, damit das funktioniert? Oder welche aktuellen Module für 3.2 hier weiterhelfen könnten?
Vielen Dank :)
Kari
sharebuttons - Bilder auf facebook teilen
Hallo zusammen,
ich habe auch das Problem, dass facebook keine Bilder bei den sharebuttons anzeigen will. Habe hier schon einige Beiträge gefunden und vieles ausprobiert. Aber bisher hat es leider noch nicht geklappt (meine php-Kenntnisse sind auch eher rar).
Im Nachrichten-Leser template steht bei mir ganz oben:
<?php
$GLOBALS['fbImage'] = $this->singleSRC;
?>
Und in der fe_page:
<?php
if($GLOBALS['fbImage']){
echo '<meta property="og:image" content="'.$this->base.$GLOBALS['fbImage'].'" />';
}
?>
<meta property="og:title" content="<?php echo $this->pageTitle; ?> - <?php echo $this->mainTitle; ?>" />
<meta property="og:url" content="{{env::url}}/{{env::request}}" />
Im Quellcode werden die Daten bei den meta-propertys korrekt ausgegeben (der Pfad zum Bild ist auch richtig). Anfangs gab es mit diesen Einstellungen beim Debugger 'nur' eine Fehlermeldung. Mittlerweile sind es sechs. Den Cache habe ich bereinigt.
Hat jemand eine Idee?
Danke und Gruß
Hilke
Für mich funktioniert das hier
Ich hänge mich mal kurz hier rein und poste eine Lösung, die für mich funktioniert. Sie ist aus dem Zusammentragen verschiedenen Quellen, u.a. auch der Basis von erdmann-freunde.de, entstanden.
Also, ganz am Anfang meines Nachrichtenleser-Templates baue ich folgendes ein:
PHP-Code:
<?php
$GLOBALS['socialImage'] = $this->singleSRC;
?>
Dann verändere ich das Template für die fe_page, und zwar wie folgt:
PHP-Code:
<?php $this->extend('fe_page') ?>
<?php $this->block('meta'); ?>
<?php
$pageUrl = $this->replaceInsertTags( '{{env::url}}' );
$pageRequest = $this->replaceInsertTags( '{{env::request}}' );
$pageThisUrl = $pageUrl.'/'.$pageRequest;
if($GLOBALS['socialImage'])
{
$PageImage = $pageUrl.'/'.$GLOBALS['socialImage'];
}
else
{
$PageImage = $pageUrl.'/files/public/images/social/facebook/poster.jpg';
}
$PageImageSize = GetImageSize($PageImage);
$PageDescription = 'Ein Standard-Meta-Description-Text, der angezeigt wird, wenn es sonst keinen geben sollte.';
?>
<meta name="robots" content="<?= $this->robots ?>">
<meta name="description" content="<?php if ($this->description!='') { echo $this->description; } else { echo $PageDescription; } ?>">
<meta name="generator" content="Contao Open Source CMS">
<meta property="og:locale" content="de_DE">
<meta property="og:type" content="website">
<meta property="og:title" content="<?= $this->title ?>">
<meta property="og:description" content="<?php if ($this->description!='') { echo $this->description; } else { echo $PageDescription; } ?>">
<meta property="og:image" content="<?= $PageImage; ?>">
<meta property="og:image:url" content="<?= $PageImage; ?>">
<meta property="og:image:width" content="<?= $PageImageSize [0]; ?>">
<meta property="og:image:height" content="<?= $PageImageSize [1]; ?>">
<meta property="og:url" content="<?= $pageThisUrl ?>">
<meta property="og:site_name" content="<?= $PageDescription; ?>">
<meta name="twitter:image" content="<?= $PageImage; ?>">
<meta name="twitter:card" content="summary">
<meta name="twitter:description" content="<?php if ($this->description!='') { echo $this->description; } else { echo $PageDescription; } ?>">
<meta name="twitter:title" content="<?= $this->title ?>">
<?php $this->endblock(); ?>
<?php $this->block('body') ?>
...
In der Dateiverwaltung lege ich zuvor unter
/files/public/images/social/facebook/poster.jpg
ein Standard-Facebook-Bild ab,
und ich schreibe eine feste $pageDescription rein, für den Fall dass in der individuellen Seite keine definiert sein sollte (könnte man auch über ein Inserttag von einem Content Element beziehen, um dem Redakteur eine einfache Änderung zu erlauben.)
Sicherlich noch nicht das ganz Gelbe vom Ei, aber für Seiten, die hauptsächlich News-Beiträge auf Facebook teilen möchten, reicht das in meinem Fall so aus. So etwas wie das "Ultimative Social Sharing"-Plugin für Contao habe ich bisher leider nicht gefunden ;-) Das würde dann alle Situationen berücksichtigen und vllt. auch das flexible Erweitern um eigene Meta-Tags erlauben - inkl. festlegbaren default-Werten je Meta-Tag und entsprechenden Eingabefeldern je Seite/News/Event usw. ... wenn man's richtig zu Ende denkt, ist das schon ein recht komplexes Thema :)