From 78c2a85fd7692b4c2e59c755b3e46755cf655b45 Mon Sep 17 00:00:00 2001 From: dignajar Date: Sat, 28 Nov 2015 19:46:23 -0300 Subject: [PATCH] Improves Opengraph --- plugins/opengraph/plugin.php | 38 +++++++++++++++++++++++++----------- 1 file changed, 27 insertions(+), 11 deletions(-) diff --git a/plugins/opengraph/plugin.php b/plugins/opengraph/plugin.php index 89bf4a5f..96c5c6a1 100644 --- a/plugins/opengraph/plugin.php +++ b/plugins/opengraph/plugin.php @@ -7,18 +7,21 @@ class pluginOpenGraph extends Plugin { $dom = new DOMDocument(); $dom->loadHTML(''.$content); $finder = new DomXPath($dom); - $classname = "bludit-img-opengraph"; - $images = $finder->query("//img[contains(@class, '$classname')]"); + + $images = $finder->query("//img[contains(@class, 'bludit-img-opengraph')]"); + + if($images->length==0) { + $images = $finder->query("//img"); + } if($images->length>0) { // First image from the list $image = $images->item(0); - // Get value from attribute src - $coverImage = $image->getAttribute('src'); - - return $coverImage; + $imgSrc = $image->getAttribute('src'); + // Returns the image src + return $imgSrc; } return false; @@ -27,7 +30,7 @@ class pluginOpenGraph extends Plugin { public function siteHead() { global $Url, $Site; - global $Post, $Page; + global $Post, $Page, $posts; $og = array( 'locale' =>$Site->locale(), @@ -46,14 +49,21 @@ class pluginOpenGraph extends Plugin { $og['title'] = $Post->title().' | '.$og['title']; $og['description'] = $Post->description(); $og['url'] = $Post->permalink(true); - $og['image'] = $Site->domain().$this->getImage($Post->content()); + + $content = $Post->content(); break; + case 'page': $og['type'] = 'article'; $og['title'] = $Page->title().' | '.$og['title']; $og['description'] = $Page->description(); $og['url'] = $Page->permalink(true); - $og['image'] = $Site->domain().$this->getImage($Page->content()); + + $content = $Page->content(); + break; + + default: + $content = isset($posts[0])?$posts[0]->content():''; break; } @@ -62,10 +72,16 @@ class pluginOpenGraph extends Plugin { $html .= ''.PHP_EOL; $html .= ''.PHP_EOL; $html .= ''.PHP_EOL; - $html .= ''.PHP_EOL; $html .= ''.PHP_EOL; $html .= ''.PHP_EOL; + // Get the image from the content + $src = $this->getImage( $content ); + if($src!==false) { + $og['image'] = $Site->domain().$src; + $html .= ''.PHP_EOL; + } + return $html; } -} +} \ No newline at end of file