PluginProbe ʕ •ᴥ•ʔ
EmbedPress – PDF Embedder, Embed PDF viewer, YouTube Videos, 3D FlipBook, Social feeds & more / 2.1.6
EmbedPress – PDF Embedder, Embed PDF viewer, YouTube Videos, 3D FlipBook, Social feeds & more v2.1.6
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 8 years ago Twitter.php 8 years ago
Reddit.php
98 lines
1 <?php
2 namespace EmbedPress\AMP\Adapter;
3
4
5 (defined('ABSPATH') && defined('EMBEDPRESS_IS_LOADED')) or die("No direct script access allowed.");
6
7 /**
8 * Entity that represents the embed provider for AMP.
9 *
10 * @package EmbedPress
11 * @author EmbedPress <help@embedpress.com>
12 * @copyright Copyright (C) 2018 EmbedPress. All rights reserved.
13 * @license GPLv2 or later
14 * @since 1.4.0
15 * @abstract
16 */
17 class Reddit
18 {
19 /**
20 * @var object
21 */
22 private $ampEmbedHandler;
23
24 /**
25 * @var object
26 */
27 private $urlData;
28
29
30 /**
31 * @var string
32 */
33 private $parsedContent;
34
35 /**
36 * @var array
37 */
38 private $attributes;
39
40 /**
41 * The constructor.
42 *
43 * @param object $urlData
44 */
45 public function __construct($parsedContent, $urlData, $attributes)
46 {
47 add_action( 'amp_post_template_head', [$this, 'addScripts']);
48
49 $this->parsedContent = $parsedContent;
50 $this->urlData = $urlData;
51 $this->attributes = $attributes;
52 }
53
54 /**
55 * Convert the HTML for AMP compatible tag.
56 *
57 * @return string
58 */
59 public function process()
60 {
61 // Check we have the required class
62 if (! class_exists('AMP_HTML_Utils')) {
63 return $this->parsedContent;
64 }
65
66 $defaults = [
67 'data-width' => 100,
68 'data-height' => 100,
69 ];
70 $attributes = wp_parse_args($this->attributes, $defaults);
71
72 $parsedContent = \AMP_HTML_Utils::build_tag(
73 'amp-reddit',
74 array(
75 'data-src' => $this->urlData->originalContent,
76 'layout' => 'responsive',
77 'data-embedtype' => "post",
78 'width' => $attributes['data-width'],
79 'height' => $attributes['data-height'],
80 )
81 );
82
83 return $parsedContent;
84 }
85
86 /**
87 * Add scripts to the output.
88 */
89 public function addScripts()
90 {
91 if ( ! defined( 'PPEMB_REDDIT_AMP_SCRIPT_LOADED' ) ) {
92 echo '<script async custom-element="amp-reddit" src="https://cdn.ampproject.org/v0/amp-reddit-0.1.js"></script>';
93
94 define( 'PPEMB_REDDIT_AMP_SCRIPT_LOADED', 1 );
95 }
96 }
97 }
98