PluginProbe
EmbedPress – PDF Embedder, 3D PDF FlipBook, Google Reviews, YouTube Videos, Upload & Embed PDF documents / 1.7.1
EmbedPress – PDF Embedder, 3D PDF FlipBook, Google Reviews, YouTube Videos, Upload & Embed PDF documents v1.7.1
4.6.5 4.6.4 4.6.3 4.6.2 4.6.1 4.6.0 4.5.6 4.5.5 4.5.4 4.5.3 4.5.2 trunk 1.0.0 1.1.0 1.1.1 1.1.2 1.1.3 1.2.0 1.3.0 1.3.1 1.4.0 1.4.1 1.4.2 1.4.3 1.4.4 All 189 releases
embedpress / EmbedPress / Providers / Giphy.php
Giphy.php
75 lines 2.0 KB
No matching file
Up and down to move Enter to open Esc to close
Raw Download Zip
1 <?php
2 namespace EmbedPress\Providers;
3
4 use \Embera\Adapters\Service as EmberaService;
5
6 (defined('ABSPATH') && defined('EMBEDPRESS_IS_LOADED')) or die("No direct script access allowed.");
7
8 /**
9 * Entity responsible to support Giphy embeds.
10 *
11 * @package EmbedPress
12 * @subpackage EmbedPress/Providers
13 * @author PressShack <help@pressshack.com>
14 * @copyright Copyright (C) 2017 Open Source Training, LLC. All rights reserved.
15 * @license GPLv2 or later
16 * @since 1.5.0
17 */
18 class Giphy extends EmberaService
19 {
20 /**
21 * The regex which identifies Giphy URLs.
22 *
23 * @since 1.5.0
24 * @access private
25 *
26 * @var string
27 */
28 private $urlRegexPattern = '~http[s]?:\/\/(?:www\.)?giphy\.com\/gifs\/([a-zA-Z0-9\-]+)|i.giphy\.com\/([a-zA-Z0-9\-]+)(\.gif)~';
29
30 /**
31 * Method that verifies if the embed URL belongs to Giphy.
32 *
33 * @since 1.5.0
34 *
35 * @return boolean
36 */
37 public function validateUrl()
38 {
39 return preg_match($this->urlRegexPattern, $this->url);
40 }
41
42 /**
43 * This method fakes an Oembed response.
44 *
45 * @since 1.5.0
46 *
47 * @return array
48 */
49 public function fakeResponse()
50 {
51 $url = $this->getUrl();
52
53 if (preg_match($this->urlRegexPattern, $url, $matches)) {
54 $gifId = count($matches) > 3 && strtolower($matches[3]) === ".gif" ? $matches[2] : $matches[1];
55
56 $html = ''.
57 '<a href="https://giphy.com/gifs/'. $gifId .'">'.
58 '<img src="https://media.giphy.com/media/'. $gifId .'/giphy.gif" alt="" width="{width}" height="{height}">'.
59 '</a>';
60
61 $response = array(
62 'type' => 'image',
63 'provider_name' => 'Giphy',
64 'provider_url' => 'https://giphy.com',
65 'url' => $url,
66 'html' => $html
67 );
68 } else {
69 $response = array();
70 }
71
72 return $response;
73 }
74 }
75