mirror of
https://github.com/e107inc/e107.git
synced 2025-04-19 20:21:51 +02:00
og:image setting if there is no already set one
I think the logic for setting og:image in social plugin is to be used site wide when no other is defined, but currently it's set too early in header so for example if we looking at news item which have some images, the social plugin og:image is grabed first by fb sharer since it came first in page output. My modification check if there is og:image defined and if there is already, skips adding the social plugin one.
This commit is contained in:
parent
8f8d22215b
commit
7bee8bf859
@ -26,10 +26,45 @@ class social_event
|
||||
|
||||
function config()
|
||||
{
|
||||
$event = array();
|
||||
|
||||
$event[] = array(
|
||||
'name' => "system_meta_pre",
|
||||
'function' => "ogg_image_add",
|
||||
);
|
||||
|
||||
|
||||
return $event;
|
||||
|
||||
}
|
||||
|
||||
/**
|
||||
* Callback function to add og:image if there is no any
|
||||
*/
|
||||
function ogg_image_add()
|
||||
{
|
||||
$ogImage = e107::pref('social','og_image', false);
|
||||
|
||||
if(e_ADMIN_AREA !==true) {
|
||||
$ogimgexist = FALSE;
|
||||
|
||||
// check if we have og:image defined
|
||||
$response = e107::getSingleton('eResponse');
|
||||
$data = $response->getMeta();
|
||||
foreach($data as $m) {
|
||||
if($m['name'] == 'og:image') {
|
||||
$ogimgexist = TRUE;
|
||||
}
|
||||
}
|
||||
|
||||
if(!empty($ogImage) && !$ogimgexist) {
|
||||
e107::meta('og:image',e107::getParser()->thumbUrl($ogImage,'w=500',false,true));
|
||||
unset($ogImage);
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
} //end class
|
||||
|
||||
?>
|
||||
?>
|
||||
|
Loading…
x
Reference in New Issue
Block a user