PluginProbe ʕ •ᴥ•ʔ
EmbedPress – PDF Embedder, Embed PDF viewer, YouTube Videos, 3D FlipBook, Social feeds & more / 2.0.3
EmbedPress – PDF Embedder, Embed PDF viewer, YouTube Videos, 3D FlipBook, Social feeds & more v2.0.3
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 / Twitter.php
embedpress / EmbedPress / AMP / Adapter Last commit date
Reddit.php 8 years ago Twitter.php 8 years ago
Twitter.php
91 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 Twitter
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 if (class_exists('AMP_Twitter_Embed_Handler')) {
48 $this->ampEmbedHandler = new \AMP_Twitter_Embed_Handler;
49
50 add_action( 'amp_post_template_head', [$this, 'addScripts']);
51 }
52
53 $this->parsedContent = $parsedContent;
54 $this->urlData = $urlData;
55 $this->attributes = $attributes;
56 }
57
58 /**
59 * Convert the HTML for AMP compatible tag.
60 *
61 * @return string
62 */
63 public function process()
64 {
65 // Check we have the adapter set
66 if (! isset($this->ampEmbedHandler)) {
67 return $this->parsedContent;
68 }
69
70 $attr = [
71 'tweet' => $this->urlData->url,
72 ];
73
74 $parsedContent = $this->ampEmbedHandler->shortcode($attr);
75
76 return $parsedContent;
77 }
78
79 /**
80 * Add scripts to the output.
81 */
82 public function addScripts()
83 {
84 if ( ! defined( 'PPEMB_TWITTER_AMP_SCRIPT_LOADED' ) ) {
85 echo '<script async custom-element="amp-twitter" src="https://cdn.ampproject.org/v0/amp-twitter-0.1.js"></script>';
86
87 define( 'PPEMB_TWITTER_AMP_SCRIPT_LOADED', 1 );
88 }
89 }
90 }
91