diff options
author | redmatrix <git@macgirvin.com> | 2016-03-08 16:06:58 -0800 |
---|---|---|
committer | redmatrix <git@macgirvin.com> | 2016-03-08 16:06:58 -0800 |
commit | 1258f9bb2114bd4a909f623a7519ba446bf8da0d (patch) | |
tree | cdcc0f2e1c9d30de528f0f952eca3971da211163 | |
parent | 5f41d06bb977bf7811ef5d8a1a1faf0b8670936a (diff) | |
download | volse-hubzilla-1258f9bb2114bd4a909f623a7519ba446bf8da0d.tar.gz volse-hubzilla-1258f9bb2114bd4a909f623a7519ba446bf8da0d.tar.bz2 volse-hubzilla-1258f9bb2114bd4a909f623a7519ba446bf8da0d.zip |
turn 'OpenGraph' into a more general purpose HTTP meta facility for setting any meta header
-rw-r--r-- | Zotlabs/Web/HttpMeta.php | 66 | ||||
-rw-r--r-- | Zotlabs/Web/OpenGraph.php | 50 | ||||
-rwxr-xr-x | boot.php | 10 |
3 files changed, 71 insertions, 55 deletions
diff --git a/Zotlabs/Web/HttpMeta.php b/Zotlabs/Web/HttpMeta.php new file mode 100644 index 000000000..469a9ed8b --- /dev/null +++ b/Zotlabs/Web/HttpMeta.php @@ -0,0 +1,66 @@ +<?php + +namespace Zotlabs\Web; + + +class HttpMeta { + + private $vars = null; + private $og = null; + + function __construct() { + + $this->vars = array(); + $this->og = array(); + + } + + function set($property,$value) { + if(strpos($property,'og:') === 0) + $this->og[$property] = $value; + else + $this->vars[$property] = $value; + } + + function check_required() { + if( + ($this->og) + && array_key_exists('og:title',$this->og) + && array_key_exists('og:type', $this->og) + && array_key_exists('og:image',$this->og) + && array_key_exists('og:url', $this->og) + ) + return true; + return false; + } + + function get_field($field) { + if(strpos($field,'og:') === 0) + $arr = $this->og; + else + $arr = $this->vars; + + if($arr && array_key_exists($field,$arr) && $arr[$field]) + return $arr[$field]; + return false; + } + + + function get() { + $o = ''; + if($this->vars) { + foreach($this->vars as $k => $v) { + $o .= '<meta property="' . $k . '" content="' . urlencode($v) . '" />' . "\r\n" ; + } + } + if($this->check_required()) { + foreach($this->og as $k => $v) { + $o .= '<meta property="' . $k . '" content="' . urlencode($v) . '" />' . "\r\n" ; + } + } + if($o) + return "\r\n" . $o; + return $o; + } + +}
\ No newline at end of file diff --git a/Zotlabs/Web/OpenGraph.php b/Zotlabs/Web/OpenGraph.php deleted file mode 100644 index f282c82d4..000000000 --- a/Zotlabs/Web/OpenGraph.php +++ /dev/null @@ -1,50 +0,0 @@ -<?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_field($field) { - if($this->vars && array_key_exists($field,$this->vars) && $this->vars[$field]) - return $this->vars[$field]; - 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,7 +753,7 @@ class App { private $baseurl; - private $OG; + private $meta; /** * App constructor. @@ -873,7 +873,7 @@ class App { spl_autoload_register('ZotlabsAutoloader::loader'); - $this->OG = new Zotlabs\Web\OpenGraph(); + $this->meta= new Zotlabs\Web\HttpMeta(); } function get_baseurl($ssl = false) { @@ -1023,8 +1023,8 @@ class App { if(! x($this->page,'title')) $this->page['title'] = $this->config['system']['sitename']; - if(! $this->OG->get_field('og:title')) - $this->OG->set('og:title',$this->page['title']); + if(! $this->meta->get_field('og:title')) + $this->meta->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 @@ -1037,7 +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(), + '$metas' => $this->meta->get(), '$update_interval' => $interval, '$icon' => head_get_icon(), '$head_css' => head_get_css(), |