diff options
author | redmatrix <git@macgirvin.com> | 2016-03-07 15:03:53 -0800 |
---|---|---|
committer | redmatrix <git@macgirvin.com> | 2016-03-07 15:03:53 -0800 |
commit | d5db25808a0847e09ee3735faeac3552c722e0ae (patch) | |
tree | f9f7e91b0860a91c29338b3ba10c41f4eec00337 | |
parent | 68d7ab6b55d34e19055aaab30966c4827c63e370 (diff) | |
download | volse-hubzilla-d5db25808a0847e09ee3735faeac3552c722e0ae.tar.gz volse-hubzilla-d5db25808a0847e09ee3735faeac3552c722e0ae.tar.bz2 volse-hubzilla-d5db25808a0847e09ee3735faeac3552c722e0ae.zip |
Facebook scraper "OpenGraph" support; modules will need to set the required fields (type, image, url) as well as any desired optional or type specific fields. We will set the title during pagebuild.
-rw-r--r-- | Zotlabs/Web/OpenGraph.php | 43 | ||||
-rwxr-xr-x | boot.php | 7 | ||||
-rw-r--r-- | version.inc | 2 | ||||
-rw-r--r-- | view/php/choklet.php | 2 | ||||
-rw-r--r-- | view/php/default.php | 2 | ||||
-rw-r--r-- | view/php/full.php | 2 | ||||
-rw-r--r-- | view/php/minimal.php | 2 | ||||
-rw-r--r-- | view/php/redable.php | 2 | ||||
-rw-r--r-- | view/php/zen.php | 2 | ||||
-rwxr-xr-x | view/tpl/head.tpl | 2 |
10 files changed, 58 insertions, 8 deletions
diff --git a/Zotlabs/Web/OpenGraph.php b/Zotlabs/Web/OpenGraph.php new file mode 100644 index 000000000..b14b2b989 --- /dev/null +++ b/Zotlabs/Web/OpenGraph.php @@ -0,0 +1,43 @@ +<?php + +namespace Zotlabs\Web; + + +class OpenGraph { + + private $vars = null; + + function __construct() { + + $this->vars = array(); + + } + + function set($property,$value) { + $this->vars[$property] = $value; + } + + function check_required() { + if( + ($this->vars) + && array_key_exists('og:title',$this->vars) + && array_key_exists('og:type', $this->vars) + && array_key_exists('og:image',$this->vars) + && array_key_exists('og:url', $this->vars) + ) + return true; + return false; + } + + function get() { + if($this->check_required()) { + $o = "\r\n"; + foreach($this->vars as $k => $v) { + $o .= '<meta property="' . $k . '" content="' . urlencode($v) . '" />' . "\r\n" ; + } + return $o; + } + return ''; + } + +}
\ No newline at end of file @@ -753,6 +753,7 @@ class App { private $baseurl; + private $OG; /** * App constructor. @@ -767,6 +768,7 @@ class App { $this->query_string = ''; + startup(); set_include_path( @@ -871,6 +873,9 @@ class App { spl_autoload_register('ZotlabsAutoloader::loader'); + $this->OG = new Zotlabs\Web\OpenGraph(); + + } function get_baseurl($ssl = false) { @@ -1019,6 +1024,7 @@ class App { if(! x($this->page,'title')) $this->page['title'] = $this->config['system']['sitename']; + $this->OG->set('og:title',$this->page['title']); /* put the head template at the beginning of page['htmlhead'] * since the code added by the modules frequently depends on it @@ -1031,6 +1037,7 @@ class App { '$baseurl' => $this->get_baseurl(), '$local_channel' => local_channel(), '$generator' => Zotlabs\Project\System::get_platform_name() . ((Zotlabs\Project\System::get_project_version()) ? ' ' . Zotlabs\Project\System::get_project_version() : ''), + '$metas' => $this->OG->get(), '$update_interval' => $interval, '$icon' => head_get_icon(), '$head_css' => head_get_css(), diff --git a/version.inc b/version.inc index 099448bf4..1a546c46e 100644 --- a/version.inc +++ b/version.inc @@ -1 +1 @@ -2016-03-06.1328H +2016-03-07.1329H diff --git a/view/php/choklet.php b/view/php/choklet.php index 712e8b1c3..5f2303e77 100644 --- a/view/php/choklet.php +++ b/view/php/choklet.php @@ -1,5 +1,5 @@ <!DOCTYPE html >
-<html>
+<html prefix="og: http://ogp.me/ns#">
<head>
<title><?php if(x($page,'title')) echo $page['title']; ?></title>
<script>var baseurl="<?php echo $a->get_baseurl(); ?>";</script>
diff --git a/view/php/default.php b/view/php/default.php index cf6b25d90..4a7c1ea19 100644 --- a/view/php/default.php +++ b/view/php/default.php @@ -1,5 +1,5 @@ <!DOCTYPE html > -<html> +<html prefix="og: http://ogp.me/ns#"> <head> <title><?php if(x($page,'title')) echo $page['title'] ?></title> <script>var baseurl="<?php echo $a->get_baseurl() ?>";</script> diff --git a/view/php/full.php b/view/php/full.php index 99653c06d..bc3b2ed87 100644 --- a/view/php/full.php +++ b/view/php/full.php @@ -1,5 +1,5 @@ <!DOCTYPE html> -<html> +<html prefix="og: http://ogp.me/ns#"> <head> <title><?php if(x($page,'title')) echo $page['title'] ?></title> <script>var baseurl="<?php echo $a->get_baseurl() ?>";</script> diff --git a/view/php/minimal.php b/view/php/minimal.php index a8c693985..ade2a0cb7 100644 --- a/view/php/minimal.php +++ b/view/php/minimal.php @@ -1,5 +1,5 @@ <!DOCTYPE html >
-<html>
+<html prefix="og: http://ogp.me/ns#">
<head>
<title><?php if(x($page,'title')) echo $page['title'] ?></title>
<script>var baseurl="<?php echo $a->get_baseurl() ?>";</script>
diff --git a/view/php/redable.php b/view/php/redable.php index dfa99ccb3..0dcba77d2 100644 --- a/view/php/redable.php +++ b/view/php/redable.php @@ -1,5 +1,5 @@ <!DOCTYPE html > -<html> +<html prefix="og: http://ogp.me/ns#"> <head> <title><?php if(x($page,'title')) echo $page['title'] ?></title> <script>var baseurl="<?php echo $a->get_baseurl() ?>";</script> diff --git a/view/php/zen.php b/view/php/zen.php index 5b89e9c32..a96cf722f 100644 --- a/view/php/zen.php +++ b/view/php/zen.php @@ -1,5 +1,5 @@ <!DOCTYPE html> -<html> +<html prefix="og: http://ogp.me/ns#"> <head> <title><?php if(x($page,'title')) echo $page['title'] ?></title> <meta name="viewport" content="width=device-width, height=device-height, initial-scale=1"> diff --git a/view/tpl/head.tpl b/view/tpl/head.tpl index 322273193..93ee9af2a 100755 --- a/view/tpl/head.tpl +++ b/view/tpl/head.tpl @@ -2,7 +2,7 @@ <base href="{{$baseurl}}/" /> <meta name="viewport" content="width=device-width, height=device-height, initial-scale=1, user-scalable={{$user_scalable}}" /> <meta name="generator" content="{{$generator}}" /> - +{{$metas}} <!--[if IE]> <script src="{{$baseurl}}/library/html5.js"></script> <![endif]--> |