PluginProbe ʕ •ᴥ•ʔ
EmbedPress – PDF Embedder, Embed PDF viewer, YouTube Videos, 3D FlipBook, Social feeds & more / 1.0.0
EmbedPress – PDF Embedder, Embed PDF viewer, YouTube Videos, 3D FlipBook, Social feeds & more v1.0.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 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 / Plugin.php
embedpress / EmbedPress Last commit date
Ends 9 years ago Providers 9 years ago AutoLoader.php 9 years ago Disabler.php 9 years ago Loader.php 9 years ago Plugin.php 9 years ago Shortcode.php 9 years ago index.html 9 years ago
Plugin.php
226 lines
1 <?php
2 namespace EmbedPress;
3
4 use \EmbedPress\Loader;
5 use \EmbedPress\Ends\Back\Handler as EndHandlerAdmin;
6 use \EmbedPress\Ends\Front\Handler as EndHandlerPublic;
7
8 (defined('ABSPATH') && defined('EMBEDPRESS_IS_LOADED')) or die("No direct script access allowed.");
9
10 /**
11 * Entity that glues together all pieces that the plugin is made of.
12 *
13 * @package EmbedPress
14 * @author PressShack <help@pressshack.com>
15 * @copyright Copyright (C) 2016 Open Source Training, LLC. All rights reserved.
16 * @license GPLv2 or later
17 * @since 1.0
18 */
19 class Plugin
20 {
21 /**
22 * The name of the plugin.
23 *
24 * @since 1.0
25 * @access protected
26 *
27 * @var string $pluginName The name of the plugin.
28 */
29 protected $pluginName;
30
31 /**
32 * The version of the plugin.
33 *
34 * @since 1.0
35 * @access protected
36 *
37 * @var string $pluginVersion The version of the plugin.
38 */
39 protected $pluginVersion;
40
41 /**
42 * An instance of the plugin loader.
43 *
44 * @since 1.0
45 * @access protected
46 *
47 * @var \EmbedPress\Loader $pluginVersion The version of the plugin.
48 */
49 protected $loaderInstance;
50
51 /**
52 * Initialize the plugin and set its properties.
53 *
54 * @since 1.0
55 */
56 public function __construct()
57 {
58 $this->pluginName = EMBEDPRESS_PLG_NAME;
59 $this->pluginVersion = EMBEDPRESS_PLG_VERSION;
60
61 $this->loaderInstance = new Loader();
62 }
63
64 /**
65 * Method that retrieves the plugin name.
66 *
67 * @since 1.0
68 *
69 * @return string
70 */
71 public function getPluginName()
72 {
73 return $this->pluginName;
74 }
75
76 /**
77 * Method that retrieves the plugin version.
78 *
79 * @since 1.0
80 *
81 * @return string
82 */
83 public function getPluginVersion()
84 {
85 return $this->pluginVersion;
86 }
87
88 /**
89 * Method that retrieves the loader instance.
90 *
91 * @since 1.0
92 *
93 * @return \EmbedPress\Loader
94 */
95 public function getLoader()
96 {
97 return $this->loaderInstance;
98 }
99
100 /**
101 * Method responsible to connect all required hooks in order to make the plugin work.
102 *
103 * @since 1.0
104 */
105 public function initialize()
106 {
107 global $wp_actions;
108
109 if (is_admin()) {
110 $plgSettings = self::getSettings();
111
112 $settingsClassNamespace = '\EmbedPress\Ends\Back\Settings';
113 add_action('admin_menu', array($settingsClassNamespace, 'registerMenuItem'));
114 add_action('admin_init', array($settingsClassNamespace, 'registerActions'));
115 unset($settingsClassNamespace);
116
117 if ($plgSettings->enablePluginInAdmin) {
118 add_action('init', array('\EmbedPress\Disabler', 'run'), 1);
119
120 $plgHandlerAdminInstance = new EndHandlerAdmin($this->getPluginName(), $this->getPluginVersion());
121
122 $enqueueScriptsHookName = "admin_enqueue_scripts";
123 $this->loaderInstance->add_action($enqueueScriptsHookName, $plgHandlerAdminInstance, 'enqueueScripts');
124 $this->loaderInstance->add_action($enqueueScriptsHookName, $plgHandlerAdminInstance, 'enqueueStyles');
125
126 $onAjaxCallbackName = "doShortcodeReceivedViaAjax";
127 $this->loaderInstance->add_action('wp_ajax_embedpress_do_ajax_request', $plgHandlerAdminInstance, $onAjaxCallbackName);
128 $this->loaderInstance->add_action('wp_ajax_nopriv_embedpress_do_ajax_request', $plgHandlerAdminInstance, $onAjaxCallbackName);
129
130 $this->loaderInstance->add_action('wp_ajax_embedpress_get_embed_url_info', $plgHandlerAdminInstance, "getUrlInfoViaAjax");
131
132 unset($onAjaxCallbackName, $enqueueScriptsHookName, $plgHandlerAdminInstance);
133 }
134 } else {
135 add_action('init', array('\EmbedPress\Disabler', 'run'), 1);
136
137 $plgHandlerPublicInstance = new EndHandlerPublic($this->getPluginName(), $this->getPluginVersion());
138
139 $enqueueScriptsHookName = "wp_enqueue_scripts";
140 $this->loaderInstance->add_action($enqueueScriptsHookName, $plgHandlerPublicInstance, 'enqueueScripts');
141 $this->loaderInstance->add_action($enqueueScriptsHookName, $plgHandlerPublicInstance, 'enqueueStyles');
142
143 unset($enqueueScriptsHookName, $plgHandlerPublicInstance);
144 }
145
146 $this->loaderInstance->run();
147 }
148
149 /**
150 * Callback called right after the plugin has been activated.
151 *
152 * @since 1.0
153 */
154 public static function onPluginActivationCallback()
155 {
156 add_filter('rewrite_rules_array', array('\EmbedPress\Disabler', 'disableDefaultEmbedRewriteRules'));
157 flush_rewrite_rules();
158 }
159
160 /**
161 * Callback called right after the plugin has been deactivated.
162 *
163 * @since 1.0
164 */
165 public static function onPluginDeactivationCallback()
166 {
167 remove_filter('rewrite_rules_array', array('\EmbedPress\Disabler', 'disableDefaultEmbedRewriteRules'));
168 flush_rewrite_rules();
169 }
170
171 /**
172 * Method that retrieves all additional service providers defined in the ~<plugin_root_path>/providers.php file.
173 *
174 * @since 1.0
175 *
176 * @return array
177 */
178 public static function getAdditionalServiceProviders()
179 {
180 $additionalProvidersFilePath = EMBEDPRESS_PATH_BASE .'providers.php';
181 if (file_exists($additionalProvidersFilePath)) {
182 include $additionalProvidersFilePath;
183
184 if (isset($additionalServiceProviders)) {
185 return $additionalServiceProviders;
186 }
187 }
188
189 return array();
190 }
191
192 /**
193 * Method that checks if an embed of a given service provider can be responsive.
194 *
195 * @since 1.0
196 *
197 * @return boolean
198 */
199 public static function canServiceProviderBeResponsive($serviceProviderAlias)
200 {
201 return in_array($serviceProviderAlias, array("dailymotion", "kickstarter", "rutube", "ted", "vimeo", "youtube", "ustream", "google-docs", "animatron", "amcharts", "on-aol-com", "animoto", "videojug"));
202 }
203
204 /**
205 * Method that retrieves the plugin settings defined by the user.
206 *
207 * @since 1.0
208 *
209 * @return object
210 */
211 public static function getSettings()
212 {
213 $settings = get_option("embedpress_options");
214
215 if (!isset($settings['displayPreviewBox'])) {
216 $settings['displayPreviewBox'] = true;
217 }
218
219 if (!isset($settings['enablePluginInAdmin'])) {
220 $settings['enablePluginInAdmin'] = true;
221 }
222
223 return (object)$settings;
224 }
225 }
226