PluginProbe ʕ •ᴥ•ʔ
EmbedPress – PDF Embedder, Embed PDF viewer, YouTube Videos, 3D FlipBook, Social feeds & more / 2.5.5
EmbedPress – PDF Embedder, Embed PDF viewer, YouTube Videos, 3D FlipBook, Social feeds & more v2.5.5
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 1.5.0 1.6.0 1.6.1 1.6.2 1.6.3 1.7.0 1.7.1 1.7.2 1.7.3 1.7.4 1.7.5 2.0.0 2.0.1 2.0.2 2.0.3 2.1.0 2.1.1 2.1.2 2.1.3 2.1.4 2.1.5 2.1.6 2.2.0 2.2.1 2.2.2 2.3.0 2.3.1 2.3.2 2.3.3 2.4.0 2.4.1 2.5.0 2.5.1 2.5.2 2.5.3 2.5.4 2.5.5 2.6.0 2.6.1 2.6.2 2.7.0 2.7.1 2.7.2 2.7.3 2.7.4 2.7.5 2.7.6 2.7.7 3.0.0 3.0.1 3.0.2 3.0.3 3.0.4 3.1.0 3.1.1 3.1.2 3.1.3 3.2.0 3.2.1 3.3.0 3.3.1 3.3.2 3.3.3 3.3.4 3.3.5 3.3.6 3.3.7 3.4.0 3.4.1 3.4.2 3.4.3 3.5.0 3.5.1 3.5.2 3.5.3 3.6.0 3.6.1 3.6.2 3.6.3 3.6.4 3.6.5 3.6.6 3.6.7 3.6.8 3.7.0 3.7.1 3.7.2 3.7.3 3.8.0 3.8.1 3.8.2 3.8.3 3.8.4 3.8.5 3.9.0 3.9.1 3.9.10 3.9.11 3.9.12 3.9.13 3.9.14 3.9.15 3.9.16 3.9.17 3.9.2 3.9.3 3.9.4 3.9.5 3.9.6 3.9.7 3.9.8 3.9.9 4.0.0 4.0.1 4.0.10 4.0.11 4.0.12 4.0.13 4.0.14 4.0.2 4.0.3 4.0.4 4.0.5 4.0.6 4.0.7 4.0.8 4.0.9 4.1.0 4.1.1 4.1.10 4.1.2 4.1.3 4.1.4 4.1.5 4.1.6 4.1.7 4.1.8 4.1.9 4.2.0 4.2.1 4.2.2 4.2.3 4.2.4 4.2.5 4.2.6 4.2.7 4.2.8 4.2.9 4.3.0 4.3.1 4.4.0 4.4.1 4.4.10 4.4.11 4.4.2 4.4.3 4.4.4 4.4.5 4.4.6 4.4.7 4.4.8 4.4.9 4.5.0 4.5.1
embedpress / EmbedPress / AMP / Adapter / Reddit.php
embedpress / EmbedPress / AMP / Adapter Last commit date
Reddit.php 6 years ago Twitter.php 6 years ago
Reddit.php
99 lines
1 <?php
2
3 namespace EmbedPress\AMP\Adapter;
4
5
6 (defined('ABSPATH') && defined('EMBEDPRESS_IS_LOADED')) or die("No direct script access allowed.");
7
8 /**
9 * Entity that represents the embed provider for AMP.
10 *
11 * @package EmbedPress
12 * @author EmbedPress <help@embedpress.com>
13 * @copyright Copyright (C) 2020 WPDeveloper. All rights reserved.
14 * @license GPLv3 or later
15 * @since 1.4.0
16 * @abstract
17 */
18 class Reddit
19 {
20 /**
21 * @var object
22 */
23 private $ampEmbedHandler;
24
25 /**
26 * @var object
27 */
28 private $urlData;
29
30
31 /**
32 * @var string
33 */
34 private $parsedContent;
35
36 /**
37 * @var array
38 */
39 private $attributes;
40
41 /**
42 * The constructor.
43 *
44 * @param object $urlData
45 */
46 public function __construct($parsedContent, $urlData, $attributes)
47 {
48 add_action('amp_post_template_head', [$this, 'addScripts']);
49
50 $this->parsedContent = $parsedContent;
51 $this->urlData = $urlData;
52 $this->attributes = $attributes;
53 }
54
55 /**
56 * Convert the HTML for AMP compatible tag.
57 *
58 * @return string
59 */
60 public function process()
61 {
62 // Check we have the required class
63 if ( ! class_exists('AMP_HTML_Utils')) {
64 return $this->parsedContent;
65 }
66
67 $defaults = [
68 'data-width' => 100,
69 'data-height' => 100,
70 ];
71 $attributes = wp_parse_args($this->attributes, $defaults);
72
73 $parsedContent = \AMP_HTML_Utils::build_tag(
74 'amp-reddit',
75 [
76 'data-src' => $this->urlData->originalContent,
77 'layout' => 'responsive',
78 'data-embedtype' => "post",
79 'width' => $attributes['data-width'],
80 'height' => $attributes['data-height'],
81 ]
82 );
83
84 return $parsedContent;
85 }
86
87 /**
88 * Add scripts to the output.
89 */
90 public function addScripts()
91 {
92 if ( ! defined('PPEMB_REDDIT_AMP_SCRIPT_LOADED')) {
93 echo '<script async custom-element="amp-reddit" src="https://cdn.ampproject.org/v0/amp-reddit-0.1.js"></script>';
94
95 define('PPEMB_REDDIT_AMP_SCRIPT_LOADED', 1);
96 }
97 }
98 }
99