aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorredmatrix <git@macgirvin.com>2016-03-07 15:03:53 -0800
committerredmatrix <git@macgirvin.com>2016-03-07 15:03:53 -0800
commitd5db25808a0847e09ee3735faeac3552c722e0ae (patch)
treef9f7e91b0860a91c29338b3ba10c41f4eec00337
parent68d7ab6b55d34e19055aaab30966c4827c63e370 (diff)
downloadvolse-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.php43
-rwxr-xr-xboot.php7
-rw-r--r--version.inc2
-rw-r--r--view/php/choklet.php2
-rw-r--r--view/php/default.php2
-rw-r--r--view/php/full.php2
-rw-r--r--view/php/minimal.php2
-rw-r--r--view/php/redable.php2
-rw-r--r--view/php/zen.php2
-rwxr-xr-xview/tpl/head.tpl2
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
diff --git a/boot.php b/boot.php
index 2a3a3d062..3581b94ee 100755
--- a/boot.php
+++ b/boot.php
@@ -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]-->