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.
This commit is contained in:
parent
68d7ab6b55
commit
d5db25808a
43
Zotlabs/Web/OpenGraph.php
Normal file
43
Zotlabs/Web/OpenGraph.php
Normal file
@ -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 '';
|
||||
}
|
||||
|
||||
}
|
7
boot.php
7
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(),
|
||||
|
@ -1 +1 @@
|
||||
2016-03-06.1328H
|
||||
2016-03-07.1329H
|
||||
|
@ -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>
|
||||
|
@ -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>
|
||||
|
@ -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>
|
||||
|
@ -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>
|
||||
|
@ -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>
|
||||
|
@ -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">
|
||||
|
@ -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]-->
|
||||
|
Reference in New Issue
Block a user