Changeset 2344005
- Timestamp:
- 07/21/2020 10:03:17 AM (6 years ago)
- Location:
- qroko-blocks
- Files:
-
- 258 added
- 6 edited
- 1 copied
-
tags/1.0.2 (copied) (copied from qroko-blocks/trunk)
-
tags/1.0.2/composer.json (added)
-
tags/1.0.2/composer.lock (added)
-
tags/1.0.2/functions/open-graph.php (modified) (3 diffs)
-
tags/1.0.2/qroko-blocks.php (modified) (1 diff)
-
tags/1.0.2/readme.txt (modified) (2 diffs)
-
tags/1.0.2/vendor (added)
-
tags/1.0.2/vendor/autoload.php (added)
-
tags/1.0.2/vendor/composer (added)
-
tags/1.0.2/vendor/composer/ClassLoader.php (added)
-
tags/1.0.2/vendor/composer/LICENSE (added)
-
tags/1.0.2/vendor/composer/autoload_classmap.php (added)
-
tags/1.0.2/vendor/composer/autoload_namespaces.php (added)
-
tags/1.0.2/vendor/composer/autoload_psr4.php (added)
-
tags/1.0.2/vendor/composer/autoload_real.php (added)
-
tags/1.0.2/vendor/composer/autoload_static.php (added)
-
tags/1.0.2/vendor/composer/ca-bundle (added)
-
tags/1.0.2/vendor/composer/ca-bundle/LICENSE (added)
-
tags/1.0.2/vendor/composer/ca-bundle/composer.json (added)
-
tags/1.0.2/vendor/composer/ca-bundle/res (added)
-
tags/1.0.2/vendor/composer/ca-bundle/res/cacert.pem (added)
-
tags/1.0.2/vendor/composer/ca-bundle/src (added)
-
tags/1.0.2/vendor/composer/ca-bundle/src/CaBundle.php (added)
-
tags/1.0.2/vendor/composer/installed.json (added)
-
tags/1.0.2/vendor/embed (added)
-
tags/1.0.2/vendor/embed/embed (added)
-
tags/1.0.2/vendor/embed/embed/LICENSE (added)
-
tags/1.0.2/vendor/embed/embed/composer.json (added)
-
tags/1.0.2/vendor/embed/embed/phpunit.xml.dist (added)
-
tags/1.0.2/vendor/embed/embed/src (added)
-
tags/1.0.2/vendor/embed/embed/src/Adapters (added)
-
tags/1.0.2/vendor/embed/embed/src/Adapters/Adapter.php (added)
-
tags/1.0.2/vendor/embed/embed/src/Adapters/Archive.php (added)
-
tags/1.0.2/vendor/embed/embed/src/Adapters/Cadenaser.php (added)
-
tags/1.0.2/vendor/embed/embed/src/Adapters/Carto.php (added)
-
tags/1.0.2/vendor/embed/embed/src/Adapters/Cnn.php (added)
-
tags/1.0.2/vendor/embed/embed/src/Adapters/Facebook.php (added)
-
tags/1.0.2/vendor/embed/embed/src/Adapters/File.php (added)
-
tags/1.0.2/vendor/embed/embed/src/Adapters/Flickr.php (added)
-
tags/1.0.2/vendor/embed/embed/src/Adapters/Github.php (added)
-
tags/1.0.2/vendor/embed/embed/src/Adapters/Google.php (added)
-
tags/1.0.2/vendor/embed/embed/src/Adapters/Howcast.php (added)
-
tags/1.0.2/vendor/embed/embed/src/Adapters/Ideone.php (added)
-
tags/1.0.2/vendor/embed/embed/src/Adapters/Imageshack.php (added)
-
tags/1.0.2/vendor/embed/embed/src/Adapters/Jsfiddle.php (added)
-
tags/1.0.2/vendor/embed/embed/src/Adapters/Lavozdegalicia.php (added)
-
tags/1.0.2/vendor/embed/embed/src/Adapters/Line.php (added)
-
tags/1.0.2/vendor/embed/embed/src/Adapters/N500px.php (added)
-
tags/1.0.2/vendor/embed/embed/src/Adapters/Parleys.php (added)
-
tags/1.0.2/vendor/embed/embed/src/Adapters/Pastebin.php (added)
-
tags/1.0.2/vendor/embed/embed/src/Adapters/Pastie.php (added)
-
tags/1.0.2/vendor/embed/embed/src/Adapters/Pinterest.php (added)
-
tags/1.0.2/vendor/embed/embed/src/Adapters/Sassmeister.php (added)
-
tags/1.0.2/vendor/embed/embed/src/Adapters/Slides.php (added)
-
tags/1.0.2/vendor/embed/embed/src/Adapters/Snipplr.php (added)
-
tags/1.0.2/vendor/embed/embed/src/Adapters/Twitter.php (added)
-
tags/1.0.2/vendor/embed/embed/src/Adapters/Vimeo.php (added)
-
tags/1.0.2/vendor/embed/embed/src/Adapters/Webpage.php (added)
-
tags/1.0.2/vendor/embed/embed/src/Adapters/Wikipedia.php (added)
-
tags/1.0.2/vendor/embed/embed/src/Adapters/Youtube.php (added)
-
tags/1.0.2/vendor/embed/embed/src/Bag.php (added)
-
tags/1.0.2/vendor/embed/embed/src/DataInterface.php (added)
-
tags/1.0.2/vendor/embed/embed/src/Embed.php (added)
-
tags/1.0.2/vendor/embed/embed/src/Exceptions (added)
-
tags/1.0.2/vendor/embed/embed/src/Exceptions/EmbedException.php (added)
-
tags/1.0.2/vendor/embed/embed/src/Exceptions/InvalidUrlException.php (added)
-
tags/1.0.2/vendor/embed/embed/src/Http (added)
-
tags/1.0.2/vendor/embed/embed/src/Http/AbstractResponse.php (added)
-
tags/1.0.2/vendor/embed/embed/src/Http/CurlDispatcher.php (added)
-
tags/1.0.2/vendor/embed/embed/src/Http/CurlResult.php (added)
-
tags/1.0.2/vendor/embed/embed/src/Http/DispatcherInterface.php (added)
-
tags/1.0.2/vendor/embed/embed/src/Http/ImageResponse.php (added)
-
tags/1.0.2/vendor/embed/embed/src/Http/Redirects.php (added)
-
tags/1.0.2/vendor/embed/embed/src/Http/Response.php (added)
-
tags/1.0.2/vendor/embed/embed/src/Http/Url.php (added)
-
tags/1.0.2/vendor/embed/embed/src/Providers (added)
-
tags/1.0.2/vendor/embed/embed/src/Providers/Api (added)
-
tags/1.0.2/vendor/embed/embed/src/Providers/Api/Archive.php (added)
-
tags/1.0.2/vendor/embed/embed/src/Providers/Api/Facebook.php (added)
-
tags/1.0.2/vendor/embed/embed/src/Providers/Api/Gist.php (added)
-
tags/1.0.2/vendor/embed/embed/src/Providers/Api/GoogleMaps.php (added)
-
tags/1.0.2/vendor/embed/embed/src/Providers/Api/Imageshack.php (added)
-
tags/1.0.2/vendor/embed/embed/src/Providers/Api/Soundcloud.php (added)
-
tags/1.0.2/vendor/embed/embed/src/Providers/Api/Wikipedia.php (added)
-
tags/1.0.2/vendor/embed/embed/src/Providers/Dcterms.php (added)
-
tags/1.0.2/vendor/embed/embed/src/Providers/Html.php (added)
-
tags/1.0.2/vendor/embed/embed/src/Providers/Linkpulse.php (added)
-
tags/1.0.2/vendor/embed/embed/src/Providers/OEmbed (added)
-
tags/1.0.2/vendor/embed/embed/src/Providers/OEmbed.php (added)
-
tags/1.0.2/vendor/embed/embed/src/Providers/OEmbed/Amcharts.php (added)
-
tags/1.0.2/vendor/embed/embed/src/Providers/OEmbed/Bambuser.php (added)
-
tags/1.0.2/vendor/embed/embed/src/Providers/OEmbed/DOM.php (added)
-
tags/1.0.2/vendor/embed/embed/src/Providers/OEmbed/Dailymotion.php (added)
-
tags/1.0.2/vendor/embed/embed/src/Providers/OEmbed/Deviantart.php (added)
-
tags/1.0.2/vendor/embed/embed/src/Providers/OEmbed/Dotsub.php (added)
-
tags/1.0.2/vendor/embed/embed/src/Providers/OEmbed/Embedly.php (added)
-
tags/1.0.2/vendor/embed/embed/src/Providers/OEmbed/EndPoint.php (added)
-
tags/1.0.2/vendor/embed/embed/src/Providers/OEmbed/EndPointInterface.php (added)
-
tags/1.0.2/vendor/embed/embed/src/Providers/OEmbed/Facebook.php (added)
-
tags/1.0.2/vendor/embed/embed/src/Providers/OEmbed/Flickr.php (added)
-
tags/1.0.2/vendor/embed/embed/src/Providers/OEmbed/Iframely.php (added)
-
tags/1.0.2/vendor/embed/embed/src/Providers/OEmbed/Imgur.php (added)
-
tags/1.0.2/vendor/embed/embed/src/Providers/OEmbed/Infogram.php (added)
-
tags/1.0.2/vendor/embed/embed/src/Providers/OEmbed/Instagram.php (added)
-
tags/1.0.2/vendor/embed/embed/src/Providers/OEmbed/Jsbin.php (added)
-
tags/1.0.2/vendor/embed/embed/src/Providers/OEmbed/Kickstarter.php (added)
-
tags/1.0.2/vendor/embed/embed/src/Providers/OEmbed/Meetup.php (added)
-
tags/1.0.2/vendor/embed/embed/src/Providers/OEmbed/Mixcloud.php (added)
-
tags/1.0.2/vendor/embed/embed/src/Providers/OEmbed/Photobucket.php (added)
-
tags/1.0.2/vendor/embed/embed/src/Providers/OEmbed/Poll.php (added)
-
tags/1.0.2/vendor/embed/embed/src/Providers/OEmbed/Polldaddy.php (added)
-
tags/1.0.2/vendor/embed/embed/src/Providers/OEmbed/Reddit.php (added)
-
tags/1.0.2/vendor/embed/embed/src/Providers/OEmbed/Scribd.php (added)
-
tags/1.0.2/vendor/embed/embed/src/Providers/OEmbed/Shoudio.php (added)
-
tags/1.0.2/vendor/embed/embed/src/Providers/OEmbed/Smugmug.php (added)
-
tags/1.0.2/vendor/embed/embed/src/Providers/OEmbed/Soundcloud.php (added)
-
tags/1.0.2/vendor/embed/embed/src/Providers/OEmbed/Spotify.php (added)
-
tags/1.0.2/vendor/embed/embed/src/Providers/OEmbed/Tiktok.php (added)
-
tags/1.0.2/vendor/embed/embed/src/Providers/OEmbed/Tumblr.php (added)
-
tags/1.0.2/vendor/embed/embed/src/Providers/OEmbed/Twitch.php (added)
-
tags/1.0.2/vendor/embed/embed/src/Providers/OEmbed/Twitter.php (added)
-
tags/1.0.2/vendor/embed/embed/src/Providers/OEmbed/Ustream.php (added)
-
tags/1.0.2/vendor/embed/embed/src/Providers/OEmbed/Vimeo.php (added)
-
tags/1.0.2/vendor/embed/embed/src/Providers/OEmbed/Wordpress.php (added)
-
tags/1.0.2/vendor/embed/embed/src/Providers/OEmbed/Youtube.php (added)
-
tags/1.0.2/vendor/embed/embed/src/Providers/OpenGraph.php (added)
-
tags/1.0.2/vendor/embed/embed/src/Providers/Provider.php (added)
-
tags/1.0.2/vendor/embed/embed/src/Providers/Sailthru.php (added)
-
tags/1.0.2/vendor/embed/embed/src/Providers/TwitterCards.php (added)
-
tags/1.0.2/vendor/embed/embed/src/Utils.php (added)
-
tags/1.0.2/vendor/embed/embed/src/autoloader.php (added)
-
tags/1.0.2/vendor/embed/embed/src/resources (added)
-
tags/1.0.2/vendor/embed/embed/src/resources/public_suffix_list.php (added)
-
trunk/composer.json (added)
-
trunk/composer.lock (added)
-
trunk/functions/open-graph.php (modified) (3 diffs)
-
trunk/qroko-blocks.php (modified) (1 diff)
-
trunk/readme.txt (modified) (2 diffs)
-
trunk/vendor (added)
-
trunk/vendor/autoload.php (added)
-
trunk/vendor/composer (added)
-
trunk/vendor/composer/ClassLoader.php (added)
-
trunk/vendor/composer/LICENSE (added)
-
trunk/vendor/composer/autoload_classmap.php (added)
-
trunk/vendor/composer/autoload_namespaces.php (added)
-
trunk/vendor/composer/autoload_psr4.php (added)
-
trunk/vendor/composer/autoload_real.php (added)
-
trunk/vendor/composer/autoload_static.php (added)
-
trunk/vendor/composer/ca-bundle (added)
-
trunk/vendor/composer/ca-bundle/LICENSE (added)
-
trunk/vendor/composer/ca-bundle/composer.json (added)
-
trunk/vendor/composer/ca-bundle/res (added)
-
trunk/vendor/composer/ca-bundle/res/cacert.pem (added)
-
trunk/vendor/composer/ca-bundle/src (added)
-
trunk/vendor/composer/ca-bundle/src/CaBundle.php (added)
-
trunk/vendor/composer/installed.json (added)
-
trunk/vendor/embed (added)
-
trunk/vendor/embed/embed (added)
-
trunk/vendor/embed/embed/LICENSE (added)
-
trunk/vendor/embed/embed/composer.json (added)
-
trunk/vendor/embed/embed/phpunit.xml.dist (added)
-
trunk/vendor/embed/embed/src (added)
-
trunk/vendor/embed/embed/src/Adapters (added)
-
trunk/vendor/embed/embed/src/Adapters/Adapter.php (added)
-
trunk/vendor/embed/embed/src/Adapters/Archive.php (added)
-
trunk/vendor/embed/embed/src/Adapters/Cadenaser.php (added)
-
trunk/vendor/embed/embed/src/Adapters/Carto.php (added)
-
trunk/vendor/embed/embed/src/Adapters/Cnn.php (added)
-
trunk/vendor/embed/embed/src/Adapters/Facebook.php (added)
-
trunk/vendor/embed/embed/src/Adapters/File.php (added)
-
trunk/vendor/embed/embed/src/Adapters/Flickr.php (added)
-
trunk/vendor/embed/embed/src/Adapters/Github.php (added)
-
trunk/vendor/embed/embed/src/Adapters/Google.php (added)
-
trunk/vendor/embed/embed/src/Adapters/Howcast.php (added)
-
trunk/vendor/embed/embed/src/Adapters/Ideone.php (added)
-
trunk/vendor/embed/embed/src/Adapters/Imageshack.php (added)
-
trunk/vendor/embed/embed/src/Adapters/Jsfiddle.php (added)
-
trunk/vendor/embed/embed/src/Adapters/Lavozdegalicia.php (added)
-
trunk/vendor/embed/embed/src/Adapters/Line.php (added)
-
trunk/vendor/embed/embed/src/Adapters/N500px.php (added)
-
trunk/vendor/embed/embed/src/Adapters/Parleys.php (added)
-
trunk/vendor/embed/embed/src/Adapters/Pastebin.php (added)
-
trunk/vendor/embed/embed/src/Adapters/Pastie.php (added)
-
trunk/vendor/embed/embed/src/Adapters/Pinterest.php (added)
-
trunk/vendor/embed/embed/src/Adapters/Sassmeister.php (added)
-
trunk/vendor/embed/embed/src/Adapters/Slides.php (added)
-
trunk/vendor/embed/embed/src/Adapters/Snipplr.php (added)
-
trunk/vendor/embed/embed/src/Adapters/Twitter.php (added)
-
trunk/vendor/embed/embed/src/Adapters/Vimeo.php (added)
-
trunk/vendor/embed/embed/src/Adapters/Webpage.php (added)
-
trunk/vendor/embed/embed/src/Adapters/Wikipedia.php (added)
-
trunk/vendor/embed/embed/src/Adapters/Youtube.php (added)
-
trunk/vendor/embed/embed/src/Bag.php (added)
-
trunk/vendor/embed/embed/src/DataInterface.php (added)
-
trunk/vendor/embed/embed/src/Embed.php (added)
-
trunk/vendor/embed/embed/src/Exceptions (added)
-
trunk/vendor/embed/embed/src/Exceptions/EmbedException.php (added)
-
trunk/vendor/embed/embed/src/Exceptions/InvalidUrlException.php (added)
-
trunk/vendor/embed/embed/src/Http (added)
-
trunk/vendor/embed/embed/src/Http/AbstractResponse.php (added)
-
trunk/vendor/embed/embed/src/Http/CurlDispatcher.php (added)
-
trunk/vendor/embed/embed/src/Http/CurlResult.php (added)
-
trunk/vendor/embed/embed/src/Http/DispatcherInterface.php (added)
-
trunk/vendor/embed/embed/src/Http/ImageResponse.php (added)
-
trunk/vendor/embed/embed/src/Http/Redirects.php (added)
-
trunk/vendor/embed/embed/src/Http/Response.php (added)
-
trunk/vendor/embed/embed/src/Http/Url.php (added)
-
trunk/vendor/embed/embed/src/Providers (added)
-
trunk/vendor/embed/embed/src/Providers/Api (added)
-
trunk/vendor/embed/embed/src/Providers/Api/Archive.php (added)
-
trunk/vendor/embed/embed/src/Providers/Api/Facebook.php (added)
-
trunk/vendor/embed/embed/src/Providers/Api/Gist.php (added)
-
trunk/vendor/embed/embed/src/Providers/Api/GoogleMaps.php (added)
-
trunk/vendor/embed/embed/src/Providers/Api/Imageshack.php (added)
-
trunk/vendor/embed/embed/src/Providers/Api/Soundcloud.php (added)
-
trunk/vendor/embed/embed/src/Providers/Api/Wikipedia.php (added)
-
trunk/vendor/embed/embed/src/Providers/Dcterms.php (added)
-
trunk/vendor/embed/embed/src/Providers/Html.php (added)
-
trunk/vendor/embed/embed/src/Providers/Linkpulse.php (added)
-
trunk/vendor/embed/embed/src/Providers/OEmbed (added)
-
trunk/vendor/embed/embed/src/Providers/OEmbed.php (added)
-
trunk/vendor/embed/embed/src/Providers/OEmbed/Amcharts.php (added)
-
trunk/vendor/embed/embed/src/Providers/OEmbed/Bambuser.php (added)
-
trunk/vendor/embed/embed/src/Providers/OEmbed/DOM.php (added)
-
trunk/vendor/embed/embed/src/Providers/OEmbed/Dailymotion.php (added)
-
trunk/vendor/embed/embed/src/Providers/OEmbed/Deviantart.php (added)
-
trunk/vendor/embed/embed/src/Providers/OEmbed/Dotsub.php (added)
-
trunk/vendor/embed/embed/src/Providers/OEmbed/Embedly.php (added)
-
trunk/vendor/embed/embed/src/Providers/OEmbed/EndPoint.php (added)
-
trunk/vendor/embed/embed/src/Providers/OEmbed/EndPointInterface.php (added)
-
trunk/vendor/embed/embed/src/Providers/OEmbed/Facebook.php (added)
-
trunk/vendor/embed/embed/src/Providers/OEmbed/Flickr.php (added)
-
trunk/vendor/embed/embed/src/Providers/OEmbed/Iframely.php (added)
-
trunk/vendor/embed/embed/src/Providers/OEmbed/Imgur.php (added)
-
trunk/vendor/embed/embed/src/Providers/OEmbed/Infogram.php (added)
-
trunk/vendor/embed/embed/src/Providers/OEmbed/Instagram.php (added)
-
trunk/vendor/embed/embed/src/Providers/OEmbed/Jsbin.php (added)
-
trunk/vendor/embed/embed/src/Providers/OEmbed/Kickstarter.php (added)
-
trunk/vendor/embed/embed/src/Providers/OEmbed/Meetup.php (added)
-
trunk/vendor/embed/embed/src/Providers/OEmbed/Mixcloud.php (added)
-
trunk/vendor/embed/embed/src/Providers/OEmbed/Photobucket.php (added)
-
trunk/vendor/embed/embed/src/Providers/OEmbed/Poll.php (added)
-
trunk/vendor/embed/embed/src/Providers/OEmbed/Polldaddy.php (added)
-
trunk/vendor/embed/embed/src/Providers/OEmbed/Reddit.php (added)
-
trunk/vendor/embed/embed/src/Providers/OEmbed/Scribd.php (added)
-
trunk/vendor/embed/embed/src/Providers/OEmbed/Shoudio.php (added)
-
trunk/vendor/embed/embed/src/Providers/OEmbed/Smugmug.php (added)
-
trunk/vendor/embed/embed/src/Providers/OEmbed/Soundcloud.php (added)
-
trunk/vendor/embed/embed/src/Providers/OEmbed/Spotify.php (added)
-
trunk/vendor/embed/embed/src/Providers/OEmbed/Tiktok.php (added)
-
trunk/vendor/embed/embed/src/Providers/OEmbed/Tumblr.php (added)
-
trunk/vendor/embed/embed/src/Providers/OEmbed/Twitch.php (added)
-
trunk/vendor/embed/embed/src/Providers/OEmbed/Twitter.php (added)
-
trunk/vendor/embed/embed/src/Providers/OEmbed/Ustream.php (added)
-
trunk/vendor/embed/embed/src/Providers/OEmbed/Vimeo.php (added)
-
trunk/vendor/embed/embed/src/Providers/OEmbed/Wordpress.php (added)
-
trunk/vendor/embed/embed/src/Providers/OEmbed/Youtube.php (added)
-
trunk/vendor/embed/embed/src/Providers/OpenGraph.php (added)
-
trunk/vendor/embed/embed/src/Providers/Provider.php (added)
-
trunk/vendor/embed/embed/src/Providers/Sailthru.php (added)
-
trunk/vendor/embed/embed/src/Providers/TwitterCards.php (added)
-
trunk/vendor/embed/embed/src/Utils.php (added)
-
trunk/vendor/embed/embed/src/autoloader.php (added)
-
trunk/vendor/embed/embed/src/resources (added)
-
trunk/vendor/embed/embed/src/resources/public_suffix_list.php (added)
Legend:
- Unmodified
- Added
- Removed
-
qroko-blocks/tags/1.0.2/functions/open-graph.php
r2338987 r2344005 1 1 <?php 2 /** 3 * Copyright 2010 Scott MacVicar 4 * Licensed under the Apache License, Version 2.0 (the "License"); 5 * you may not use this file except in compliance with the License. 6 * You may obtain a copy of the License at 7 * http://www.apache.org/licenses/LICENSE-2.0 8 * Unless required by applicable law or agreed to in writing, software 9 * distributed under the License is distributed on an "AS IS" BASIS, 10 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 11 * See the License for the specific language governing permissions and 12 * limitations under the License. 13 * Original can be found at https://github.com/scottmac/opengraph/blob/master/OpenGraph.php 14 */ 2 // Debug 3 //require __DIR__ . '/../debug/ChromePhp.php'; 15 4 16 class OpenGraph implements Iterator { 17 /** 18 * There are base schema's based on type, this is just 19 * a map so that the schema can be obtained 20 * 21 */ 22 public static $TYPES = array( 23 'activity' => array('activity', 'sport'), 24 'business' => array('bar', 'company', 'cafe', 'hotel', 'restaurant'), 25 'group' => array('cause', 'sports_league', 'sports_team'), 26 'organization' => array('band', 'government', 'non_profit', 'school', 'university'), 27 'person' => array('actor', 'athlete', 'author', 'director', 'musician', 'politician', 'public_figure'), 28 'place' => array('city', 'country', 'landmark', 'state_province'), 29 'product' => array('album', 'book', 'drink', 'food', 'game', 'movie', 'product', 'song', 'tv_show'), 30 'website' => array('blog', 'website'), 31 ); 32 33 /** 34 * Holds all the Open Graph values we've parsed from a page 35 * 36 */ 37 private $_values = array(); 38 39 /** 40 * Fetches a URI and parses it for Open Graph data, returns 41 * false on error. 42 * 43 * @param $URI URI to page to parse for Open Graph data 44 * @return OpenGraph 45 */ 46 static public function fetch($URI) { 47 $response = wp_remote_get($URI); 48 49 if (!empty($response)) { 50 return self::_parse($response['body']); 51 } else { 52 return false; 53 } 54 } 55 56 /** 57 * Parses HTML and extracts Open Graph data, this assumes 58 * the document is at least well formed. 59 * 60 * @param $HTML HTML to parse 61 * @return OpenGraph 62 */ 63 static private function _parse($HTML) { 64 $old_libxml_error = libxml_use_internal_errors(true); 65 66 $HTML = mb_convert_encoding($HTML,"HTML-ENTITIES","UTF-8"); 67 68 $doc = new DOMDocument(); 69 $doc->loadHTML($HTML); 70 71 libxml_use_internal_errors($old_libxml_error); 72 73 $tags = $doc->getElementsByTagName('meta'); 74 if (!$tags || $tags->length === 0) { 75 return false; 76 } 77 78 $page = new self(); 79 80 $nonOgDescription = null; 81 82 foreach ($tags AS $tag) { 83 if ($tag->hasAttribute('property') && strpos($tag->getAttribute('property'), 'og:') === 0) { 84 $key = strtr(substr($tag->getAttribute('property'), 3), '-', '_'); 85 $page->_values[$key] = $tag->getAttribute('content'); 86 } 87 88 // Added this if loop to retrieve description values from sites like the New York Times who have malformed it. 89 if ($tag ->hasAttribute('value') && $tag->hasAttribute('property') && strpos($tag->getAttribute('property'), 'og:') === 0) { 90 $key = strtr(substr($tag->getAttribute('property'), 3), '-', '_'); 91 $page->_values[$key] = $tag->getAttribute('value'); 92 } 93 94 // Based on modifications at https://github.com/bashofmann/opengraph/blob/master/src/OpenGraph/OpenGraph.php 95 if ($tag->hasAttribute('name') && $tag->getAttribute('name') === 'description') { 96 $nonOgDescription = $tag->getAttribute('content'); 97 } 98 } 99 100 // Based on modifications at https://github.com/bashofmann/opengraph/blob/master/src/OpenGraph/OpenGraph.php 101 if (!isset($page->_values['title'])) { 102 $titles = $doc->getElementsByTagName('title'); 103 if ($titles->length > 0) { 104 $page->_values['title'] = $titles->item(0)->textContent; 105 } 106 } 107 108 if (!isset($page->_values['description']) && $nonOgDescription) { 109 $page->_values['description'] = $nonOgDescription; 110 } 111 112 // Fallback to use image_src if ogp::image isn't set. 113 if (!isset($page->values['image'])) { 114 $domxpath = new DOMXPath($doc); 115 $elements = $domxpath->query("//link[@rel='image_src']"); 116 117 if ($elements->length > 0) { 118 $domattr = $elements->item(0)->attributes->getNamedItem('href'); 119 if ($domattr) { 120 $page->_values['image'] = $domattr->value; 121 $page->_values['image_src'] = $domattr->value; 122 } 123 } 124 } 125 126 if (empty($page->_values)) { return false; } 127 128 return $page; 129 } 130 131 /** 132 * Helper method to access attributes directly 133 * Example: 134 * $graph->title 135 * 136 * @param $key Key to fetch from the lookup 137 */ 138 public function __get($key) { 139 if (array_key_exists($key, $this->_values)) { 140 return $this->_values[$key]; 141 } 142 143 if ($key === 'schema') { 144 foreach (self::$TYPES AS $schema => $types) { 145 if (array_search($this->_values['type'], $types)) { 146 return $schema; 147 } 148 } 149 } 150 } 151 152 /** 153 * Return all the keys found on the page 154 * 155 * @return array 156 */ 157 public function keys() { 158 return array_keys($this->_values); 159 } 160 161 /** 162 * Helper method to check an attribute exists 163 * 164 * @param $key 165 */ 166 public function __isset($key) { 167 return array_key_exists($key, $this->_values); 168 } 169 170 /** 171 * Will return true if the page has location data embedded 172 * 173 * @return boolean Check if the page has location data 174 */ 175 public function hasLocation() { 176 if (array_key_exists('latitude', $this->_values) && array_key_exists('longitude', $this->_values)) { 177 return true; 178 } 179 180 $address_keys = array('street_address', 'locality', 'region', 'postal_code', 'country_name'); 181 $valid_address = true; 182 foreach ($address_keys AS $key) { 183 $valid_address = ($valid_address && array_key_exists($key, $this->_values)); 184 } 185 return $valid_address; 186 } 187 188 /** 189 * Iterator code 190 */ 191 private $_position = 0; 192 public function rewind() { reset($this->_values); $this->_position = 0; } 193 public function current() { return current($this->_values); } 194 public function key() { return key($this->_values); } 195 public function next() { next($this->_values); ++$this->_position; } 196 public function valid() { return $this->_position < sizeof($this->_values); } 197 } 5 // Composer 6 require __DIR__ . '/../vendor/autoload.php'; 7 use Embed\Embed; 198 8 199 9 function open_graph() { … … 201 11 $esc_target_url = esc_url($target_url); 202 12 203 $graph = OpenGraph::fetch($esc_target_url);13 $graph = Embed::create($esc_target_url); 204 14 205 15 $og_title = $graph->title; … … 229 39 230 40 // Debug: Chrome 231 // include '../debug/ChromePhp.php';41 //ChromePhp::log(json_encode($graph)); 232 42 //ChromePhp::log(json_encode($records)); 233 43 -
qroko-blocks/tags/1.0.2/qroko-blocks.php
r2338987 r2344005 6 6 * Author: qrac 7 7 * Author URI: https://qrac.jp/ 8 * Version: 1.0. 18 * Version: 1.0.2 9 9 * Text Domain: qroko-blocks 10 10 * Domain Path: /languages -
qroko-blocks/tags/1.0.2/readme.txt
r2338987 r2344005 5 5 Requires at least: 5.4 6 6 Tested up to: 5.4 7 Stable tag: 1.0. 17 Stable tag: 1.0.2 8 8 Requires PHP: 5.6 9 9 License: GPLv2 or later … … 40 40 == Changelog == 41 41 42 = 1.0.2 = 43 * Fix Blog Card: Improved data acquisition accuracy 44 42 45 = 1.0.1 = 43 46 * Fix Blog Card: Works without Open Graph -
qroko-blocks/trunk/functions/open-graph.php
r2338987 r2344005 1 1 <?php 2 /** 3 * Copyright 2010 Scott MacVicar 4 * Licensed under the Apache License, Version 2.0 (the "License"); 5 * you may not use this file except in compliance with the License. 6 * You may obtain a copy of the License at 7 * http://www.apache.org/licenses/LICENSE-2.0 8 * Unless required by applicable law or agreed to in writing, software 9 * distributed under the License is distributed on an "AS IS" BASIS, 10 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 11 * See the License for the specific language governing permissions and 12 * limitations under the License. 13 * Original can be found at https://github.com/scottmac/opengraph/blob/master/OpenGraph.php 14 */ 2 // Debug 3 //require __DIR__ . '/../debug/ChromePhp.php'; 15 4 16 class OpenGraph implements Iterator { 17 /** 18 * There are base schema's based on type, this is just 19 * a map so that the schema can be obtained 20 * 21 */ 22 public static $TYPES = array( 23 'activity' => array('activity', 'sport'), 24 'business' => array('bar', 'company', 'cafe', 'hotel', 'restaurant'), 25 'group' => array('cause', 'sports_league', 'sports_team'), 26 'organization' => array('band', 'government', 'non_profit', 'school', 'university'), 27 'person' => array('actor', 'athlete', 'author', 'director', 'musician', 'politician', 'public_figure'), 28 'place' => array('city', 'country', 'landmark', 'state_province'), 29 'product' => array('album', 'book', 'drink', 'food', 'game', 'movie', 'product', 'song', 'tv_show'), 30 'website' => array('blog', 'website'), 31 ); 32 33 /** 34 * Holds all the Open Graph values we've parsed from a page 35 * 36 */ 37 private $_values = array(); 38 39 /** 40 * Fetches a URI and parses it for Open Graph data, returns 41 * false on error. 42 * 43 * @param $URI URI to page to parse for Open Graph data 44 * @return OpenGraph 45 */ 46 static public function fetch($URI) { 47 $response = wp_remote_get($URI); 48 49 if (!empty($response)) { 50 return self::_parse($response['body']); 51 } else { 52 return false; 53 } 54 } 55 56 /** 57 * Parses HTML and extracts Open Graph data, this assumes 58 * the document is at least well formed. 59 * 60 * @param $HTML HTML to parse 61 * @return OpenGraph 62 */ 63 static private function _parse($HTML) { 64 $old_libxml_error = libxml_use_internal_errors(true); 65 66 $HTML = mb_convert_encoding($HTML,"HTML-ENTITIES","UTF-8"); 67 68 $doc = new DOMDocument(); 69 $doc->loadHTML($HTML); 70 71 libxml_use_internal_errors($old_libxml_error); 72 73 $tags = $doc->getElementsByTagName('meta'); 74 if (!$tags || $tags->length === 0) { 75 return false; 76 } 77 78 $page = new self(); 79 80 $nonOgDescription = null; 81 82 foreach ($tags AS $tag) { 83 if ($tag->hasAttribute('property') && strpos($tag->getAttribute('property'), 'og:') === 0) { 84 $key = strtr(substr($tag->getAttribute('property'), 3), '-', '_'); 85 $page->_values[$key] = $tag->getAttribute('content'); 86 } 87 88 // Added this if loop to retrieve description values from sites like the New York Times who have malformed it. 89 if ($tag ->hasAttribute('value') && $tag->hasAttribute('property') && strpos($tag->getAttribute('property'), 'og:') === 0) { 90 $key = strtr(substr($tag->getAttribute('property'), 3), '-', '_'); 91 $page->_values[$key] = $tag->getAttribute('value'); 92 } 93 94 // Based on modifications at https://github.com/bashofmann/opengraph/blob/master/src/OpenGraph/OpenGraph.php 95 if ($tag->hasAttribute('name') && $tag->getAttribute('name') === 'description') { 96 $nonOgDescription = $tag->getAttribute('content'); 97 } 98 } 99 100 // Based on modifications at https://github.com/bashofmann/opengraph/blob/master/src/OpenGraph/OpenGraph.php 101 if (!isset($page->_values['title'])) { 102 $titles = $doc->getElementsByTagName('title'); 103 if ($titles->length > 0) { 104 $page->_values['title'] = $titles->item(0)->textContent; 105 } 106 } 107 108 if (!isset($page->_values['description']) && $nonOgDescription) { 109 $page->_values['description'] = $nonOgDescription; 110 } 111 112 // Fallback to use image_src if ogp::image isn't set. 113 if (!isset($page->values['image'])) { 114 $domxpath = new DOMXPath($doc); 115 $elements = $domxpath->query("//link[@rel='image_src']"); 116 117 if ($elements->length > 0) { 118 $domattr = $elements->item(0)->attributes->getNamedItem('href'); 119 if ($domattr) { 120 $page->_values['image'] = $domattr->value; 121 $page->_values['image_src'] = $domattr->value; 122 } 123 } 124 } 125 126 if (empty($page->_values)) { return false; } 127 128 return $page; 129 } 130 131 /** 132 * Helper method to access attributes directly 133 * Example: 134 * $graph->title 135 * 136 * @param $key Key to fetch from the lookup 137 */ 138 public function __get($key) { 139 if (array_key_exists($key, $this->_values)) { 140 return $this->_values[$key]; 141 } 142 143 if ($key === 'schema') { 144 foreach (self::$TYPES AS $schema => $types) { 145 if (array_search($this->_values['type'], $types)) { 146 return $schema; 147 } 148 } 149 } 150 } 151 152 /** 153 * Return all the keys found on the page 154 * 155 * @return array 156 */ 157 public function keys() { 158 return array_keys($this->_values); 159 } 160 161 /** 162 * Helper method to check an attribute exists 163 * 164 * @param $key 165 */ 166 public function __isset($key) { 167 return array_key_exists($key, $this->_values); 168 } 169 170 /** 171 * Will return true if the page has location data embedded 172 * 173 * @return boolean Check if the page has location data 174 */ 175 public function hasLocation() { 176 if (array_key_exists('latitude', $this->_values) && array_key_exists('longitude', $this->_values)) { 177 return true; 178 } 179 180 $address_keys = array('street_address', 'locality', 'region', 'postal_code', 'country_name'); 181 $valid_address = true; 182 foreach ($address_keys AS $key) { 183 $valid_address = ($valid_address && array_key_exists($key, $this->_values)); 184 } 185 return $valid_address; 186 } 187 188 /** 189 * Iterator code 190 */ 191 private $_position = 0; 192 public function rewind() { reset($this->_values); $this->_position = 0; } 193 public function current() { return current($this->_values); } 194 public function key() { return key($this->_values); } 195 public function next() { next($this->_values); ++$this->_position; } 196 public function valid() { return $this->_position < sizeof($this->_values); } 197 } 5 // Composer 6 require __DIR__ . '/../vendor/autoload.php'; 7 use Embed\Embed; 198 8 199 9 function open_graph() { … … 201 11 $esc_target_url = esc_url($target_url); 202 12 203 $graph = OpenGraph::fetch($esc_target_url);13 $graph = Embed::create($esc_target_url); 204 14 205 15 $og_title = $graph->title; … … 229 39 230 40 // Debug: Chrome 231 // include '../debug/ChromePhp.php';41 //ChromePhp::log(json_encode($graph)); 232 42 //ChromePhp::log(json_encode($records)); 233 43 -
qroko-blocks/trunk/qroko-blocks.php
r2338987 r2344005 6 6 * Author: qrac 7 7 * Author URI: https://qrac.jp/ 8 * Version: 1.0. 18 * Version: 1.0.2 9 9 * Text Domain: qroko-blocks 10 10 * Domain Path: /languages -
qroko-blocks/trunk/readme.txt
r2338987 r2344005 5 5 Requires at least: 5.4 6 6 Tested up to: 5.4 7 Stable tag: 1.0. 17 Stable tag: 1.0.2 8 8 Requires PHP: 5.6 9 9 License: GPLv2 or later … … 40 40 == Changelog == 41 41 42 = 1.0.2 = 43 * Fix Blog Card: Improved data acquisition accuracy 44 42 45 = 1.0.1 = 43 46 * Fix Blog Card: Works without Open Graph
Note: See TracChangeset
for help on using the changeset viewer.