ARVE Advanced Responsive Video Embedder (YouTube, Vimeo, HTML5 Video …) - Version 8.2.1

Version Description

Download this release

Release Info

Developer nico23
Plugin Icon 128x128 ARVE Advanced Responsive Video Embedder (YouTube, Vimeo, HTML5 Video …)
Version 8.2.1
Comparing to
See all releases

Code changes from version 8.9.5 to 8.2.1

Files changed (194) hide show
  1. CHANGELOG.md +796 -0
  2. LICENSE.txt +0 -0
  3. admin/arve-admin.css +8 -34
  4. admin/arve-admin.js +3 -3
  5. admin/arve-shortcode-ui.js +2 -2
  6. admin/class-arve-admin-notice-factory.php +34 -37
  7. admin/{class-nextgenthemes-plugin-updater.php → class-edd-sl-plugin-updater.php} +11 -25
  8. admin/functions-admin.php +59 -88
  9. admin/functions-licensing.php +90 -92
  10. admin/html-ad-page.php +6 -0
  11. admin/html-debug-info.php +0 -0
  12. admin/html-settings-page.php +6 -42
  13. admin/index.php +0 -0
  14. admin/pro-ad.html +0 -14
  15. admin/product-images/arve.svg +0 -0
  16. admin/tinymce.js +0 -0
  17. advanced-responsive-video-embedder.php +46 -40
  18. composer.lock +0 -184
  19. index.php +1 -0
  20. public/arve.css +0 -2
  21. public/arve.js +10 -24
  22. public/arve.min.css +1 -1
  23. public/arve.min.css.map +1 -0
  24. public/arve.min.js +1 -1
  25. public/functions-enqueue.php +11 -30
  26. public/functions-html-output.php +109 -68
  27. public/functions-misc.php +62 -67
  28. public/functions-shortcode-data.php +197 -193
  29. public/functions-shortcode-filters.php +198 -289
  30. public/functions-shortcodes.php +179 -209
  31. public/functions-thumbnails.php +22 -22
  32. public/functions-url-handlers.php +103 -102
  33. public/functions-validation.php +69 -70
  34. public/index.php +0 -0
  35. readme.txt → readme.md +120 -281
  36. readme/01-top.md +11 -0
  37. readme/05-description-head.md +12 -0
  38. readme/10-description-features.md +21 -0
  39. readme/12-description-supported-providers.md +45 -0
  40. readme/13-description-reviews.md +23 -0
  41. readme/20-description-features-pro.md +24 -0
  42. readme/25-description-features-amp.md +12 -0
  43. readme/35-description-thanks.md +12 -0
  44. readme/50-installation-faq-screenshots.md +39 -0
  45. readme/html/01-top.md.html +2 -0
  46. readme/html/05-description-head.md.html +9 -0
  47. readme/html/10-description-features.md.html +21 -0
  48. readme/html/12-description-supported-providers.md.html +45 -0
  49. readme/html/13-description-reviews.md.html +8 -0
  50. readme/html/20-description-features-pro.md.html +17 -0
  51. readme/html/25-description-features-amp.md.html +11 -0
  52. readme/html/35-description-thanks.md.html +12 -0
  53. readme/html/50-installation-faq-screenshots.md.html +25 -0
  54. readme/prep/description-perfectdropinreplacement.md +11 -0
  55. readme/prep/description-reasons.html +9 -0
  56. readme/prep/description-whatitis.md +6 -0
  57. shared/functions-shared.php +145 -305
  58. shared/index.php +0 -0
  59. uninstall.php +1 -0
  60. vendor/autoload.php +0 -7
  61. vendor/composer/ClassLoader.php +0 -445
  62. vendor/composer/LICENSE +0 -21
  63. vendor/composer/autoload_classmap.php +0 -9
  64. vendor/composer/autoload_namespaces.php +0 -9
  65. vendor/composer/autoload_psr4.php +0 -11
  66. vendor/composer/autoload_real.php +0 -52
  67. vendor/composer/autoload_static.php +0 -39
  68. vendor/composer/installed.json +0 -172
  69. vendor/composer/installers/CHANGELOG.md +0 -86
  70. vendor/composer/installers/CONTRIBUTING.md +0 -24
  71. vendor/composer/installers/LICENSE +0 -19
  72. vendor/composer/installers/README.md +0 -221
  73. vendor/composer/installers/_config.yml +0 -1
  74. vendor/composer/installers/phpunit.xml.dist +0 -25
  75. vendor/composer/installers/src/Composer/Installers/AglInstaller.php +0 -21
  76. vendor/composer/installers/src/Composer/Installers/AimeosInstaller.php +0 -9
  77. vendor/composer/installers/src/Composer/Installers/AnnotateCmsInstaller.php +0 -11
  78. vendor/composer/installers/src/Composer/Installers/AsgardInstaller.php +0 -49
  79. vendor/composer/installers/src/Composer/Installers/AttogramInstaller.php +0 -9
  80. vendor/composer/installers/src/Composer/Installers/BaseInstaller.php +0 -136
  81. vendor/composer/installers/src/Composer/Installers/BitrixInstaller.php +0 -126
  82. vendor/composer/installers/src/Composer/Installers/BonefishInstaller.php +0 -9
  83. vendor/composer/installers/src/Composer/Installers/CakePHPInstaller.php +0 -82
  84. vendor/composer/installers/src/Composer/Installers/ChefInstaller.php +0 -11
  85. vendor/composer/installers/src/Composer/Installers/ClanCatsFrameworkInstaller.php +0 -10
  86. vendor/composer/installers/src/Composer/Installers/CockpitInstaller.php +0 -34
  87. vendor/composer/installers/src/Composer/Installers/CodeIgniterInstaller.php +0 -11
  88. vendor/composer/installers/src/Composer/Installers/Concrete5Installer.php +0 -13
  89. vendor/composer/installers/src/Composer/Installers/CraftInstaller.php +0 -35
  90. vendor/composer/installers/src/Composer/Installers/CroogoInstaller.php +0 -21
  91. vendor/composer/installers/src/Composer/Installers/DecibelInstaller.php +0 -10
  92. vendor/composer/installers/src/Composer/Installers/DokuWikiInstaller.php +0 -50
  93. vendor/composer/installers/src/Composer/Installers/DolibarrInstaller.php +0 -16
  94. vendor/composer/installers/src/Composer/Installers/DrupalInstaller.php +0 -16
  95. vendor/composer/installers/src/Composer/Installers/ElggInstaller.php +0 -9
  96. vendor/composer/installers/src/Composer/Installers/EliasisInstaller.php +0 -12
  97. vendor/composer/installers/src/Composer/Installers/ExpressionEngineInstaller.php +0 -29
  98. vendor/composer/installers/src/Composer/Installers/EzPlatformInstaller.php +0 -10
  99. vendor/composer/installers/src/Composer/Installers/FuelInstaller.php +0 -11
  100. vendor/composer/installers/src/Composer/Installers/FuelphpInstaller.php +0 -9
  101. vendor/composer/installers/src/Composer/Installers/GravInstaller.php +0 -30
  102. vendor/composer/installers/src/Composer/Installers/HuradInstaller.php +0 -25
  103. vendor/composer/installers/src/Composer/Installers/ImageCMSInstaller.php +0 -11
  104. vendor/composer/installers/src/Composer/Installers/Installer.php +0 -200
  105. vendor/composer/installers/src/Composer/Installers/ItopInstaller.php +0 -9
  106. vendor/composer/installers/src/Composer/Installers/JoomlaInstaller.php +0 -15
  107. vendor/composer/installers/src/Composer/Installers/KanboardInstaller.php +0 -18
  108. vendor/composer/installers/src/Composer/Installers/KirbyInstaller.php +0 -11
  109. vendor/composer/installers/src/Composer/Installers/KodiCMSInstaller.php +0 -10
  110. vendor/composer/installers/src/Composer/Installers/KohanaInstaller.php +0 -9
  111. vendor/composer/installers/src/Composer/Installers/LanManagementSystemInstaller.php +0 -27
  112. vendor/composer/installers/src/Composer/Installers/LaravelInstaller.php +0 -9
  113. vendor/composer/installers/src/Composer/Installers/LavaLiteInstaller.php +0 -10
  114. vendor/composer/installers/src/Composer/Installers/LithiumInstaller.php +0 -10
  115. vendor/composer/installers/src/Composer/Installers/MODULEWorkInstaller.php +0 -9
  116. vendor/composer/installers/src/Composer/Installers/MODXEvoInstaller.php +0 -16
  117. vendor/composer/installers/src/Composer/Installers/MagentoInstaller.php +0 -11
  118. vendor/composer/installers/src/Composer/Installers/MajimaInstaller.php +0 -37
  119. vendor/composer/installers/src/Composer/Installers/MakoInstaller.php +0 -9
  120. vendor/composer/installers/src/Composer/Installers/MauticInstaller.php +0 -25
  121. vendor/composer/installers/src/Composer/Installers/MayaInstaller.php +0 -33
  122. vendor/composer/installers/src/Composer/Installers/MediaWikiInstaller.php +0 -50
  123. vendor/composer/installers/src/Composer/Installers/MicroweberInstaller.php +0 -111
  124. vendor/composer/installers/src/Composer/Installers/ModxInstaller.php +0 -12
  125. vendor/composer/installers/src/Composer/Installers/MoodleInstaller.php +0 -57
  126. vendor/composer/installers/src/Composer/Installers/OctoberInstaller.php +0 -46
  127. vendor/composer/installers/src/Composer/Installers/OntoWikiInstaller.php +0 -24
  128. vendor/composer/installers/src/Composer/Installers/OsclassInstaller.php +0 -14
  129. vendor/composer/installers/src/Composer/Installers/OxidInstaller.php +0 -59
  130. vendor/composer/installers/src/Composer/Installers/PPIInstaller.php +0 -9
  131. vendor/composer/installers/src/Composer/Installers/PhiftyInstaller.php +0 -11
  132. vendor/composer/installers/src/Composer/Installers/PhpBBInstaller.php +0 -11
  133. vendor/composer/installers/src/Composer/Installers/PimcoreInstaller.php +0 -21
  134. vendor/composer/installers/src/Composer/Installers/PiwikInstaller.php +0 -32
  135. vendor/composer/installers/src/Composer/Installers/PlentymarketsInstaller.php +0 -29
  136. vendor/composer/installers/src/Composer/Installers/Plugin.php +0 -17
  137. vendor/composer/installers/src/Composer/Installers/PortoInstaller.php +0 -9
  138. vendor/composer/installers/src/Composer/Installers/PrestashopInstaller.php +0 -10
  139. vendor/composer/installers/src/Composer/Installers/PuppetInstaller.php +0 -11
  140. vendor/composer/installers/src/Composer/Installers/PxcmsInstaller.php +0 -63
  141. vendor/composer/installers/src/Composer/Installers/RadPHPInstaller.php +0 -24
  142. vendor/composer/installers/src/Composer/Installers/ReIndexInstaller.php +0 -10
  143. vendor/composer/installers/src/Composer/Installers/RedaxoInstaller.php +0 -10
  144. vendor/composer/installers/src/Composer/Installers/RoundcubeInstaller.php +0 -22
  145. vendor/composer/installers/src/Composer/Installers/SMFInstaller.php +0 -10
  146. vendor/composer/installers/src/Composer/Installers/ShopwareInstaller.php +0 -60
  147. vendor/composer/installers/src/Composer/Installers/SilverStripeInstaller.php +0 -35
  148. vendor/composer/installers/src/Composer/Installers/SiteDirectInstaller.php +0 -25
  149. vendor/composer/installers/src/Composer/Installers/SyDESInstaller.php +0 -49
  150. vendor/composer/installers/src/Composer/Installers/Symfony1Installer.php +0 -26
  151. vendor/composer/installers/src/Composer/Installers/TYPO3CmsInstaller.php +0 -16
  152. vendor/composer/installers/src/Composer/Installers/TYPO3FlowInstaller.php +0 -38
  153. vendor/composer/installers/src/Composer/Installers/TheliaInstaller.php +0 -12
  154. vendor/composer/installers/src/Composer/Installers/TuskInstaller.php +0 -14
  155. vendor/composer/installers/src/Composer/Installers/UserFrostingInstaller.php +0 -9
  156. vendor/composer/installers/src/Composer/Installers/VanillaInstaller.php +0 -10
  157. vendor/composer/installers/src/Composer/Installers/VgmcpInstaller.php +0 -49
  158. vendor/composer/installers/src/Composer/Installers/WHMCSInstaller.php +0 -10
  159. vendor/composer/installers/src/Composer/Installers/WolfCMSInstaller.php +0 -9
  160. vendor/composer/installers/src/Composer/Installers/WordPressInstaller.php +0 -12
  161. vendor/composer/installers/src/Composer/Installers/YawikInstaller.php +0 -32
  162. vendor/composer/installers/src/Composer/Installers/ZendInstaller.php +0 -11
  163. vendor/composer/installers/src/Composer/Installers/ZikulaInstaller.php +0 -10
  164. vendor/composer/installers/src/bootstrap.php +0 -13
  165. vendor/composer/installers/tests/Composer/Installers/Test/AsgardInstallerTest.php +0 -80
  166. vendor/composer/installers/tests/Composer/Installers/Test/BitrixInstallerTest.php +0 -75
  167. vendor/composer/installers/tests/Composer/Installers/Test/CakePHPInstallerTest.php +0 -114
  168. vendor/composer/installers/tests/Composer/Installers/Test/CraftInstallerTest.php +0 -83
  169. vendor/composer/installers/tests/Composer/Installers/Test/DokuWikiInstallerTest.php +0 -90
  170. vendor/composer/installers/tests/Composer/Installers/Test/GravInstallerTest.php +0 -63
  171. vendor/composer/installers/tests/Composer/Installers/Test/InstallerTest.php +0 -552
  172. vendor/composer/installers/tests/Composer/Installers/Test/MayaInstallerTest.php +0 -62
  173. vendor/composer/installers/tests/Composer/Installers/Test/MediaWikiInstallerTest.php +0 -67
  174. vendor/composer/installers/tests/Composer/Installers/Test/OctoberInstallerTest.php +0 -67
  175. vendor/composer/installers/tests/Composer/Installers/Test/OntoWikiInstallerTest.php +0 -84
  176. vendor/composer/installers/tests/Composer/Installers/Test/PimcoreInstallerTest.php +0 -44
  177. vendor/composer/installers/tests/Composer/Installers/Test/PiwikInstallerTest.php +0 -63
  178. vendor/composer/installers/tests/Composer/Installers/Test/SiteDirectInstallerTest.php +0 -120
  179. vendor/composer/installers/tests/Composer/Installers/Test/SyDESInstallerTest.php +0 -82
  180. vendor/composer/installers/tests/Composer/Installers/Test/TestCase.php +0 -65
  181. vendor/composer/installers/tests/Composer/Installers/Test/VgmcpInstallerTest.php +0 -80
  182. vendor/composer/installers/tests/Composer/Installers/Test/YawikInstallerTest.php +0 -64
  183. vendor/composer/installers/tests/bootstrap.php +0 -4
  184. vendor/vimeo/vimeo-api/.styleci.yml +0 -19
  185. vendor/vimeo/vimeo-api/CHANGELOG.md +0 -19
  186. vendor/vimeo/vimeo-api/LICENSE +0 -177
  187. vendor/vimeo/vimeo-api/README.md +0 -254
  188. vendor/vimeo/vimeo-api/autoload.php +0 -29
  189. vendor/vimeo/vimeo-api/certificates/vimeo-api.pem +0 -47
  190. vendor/vimeo/vimeo-api/src/Vimeo/Exceptions/ExceptionInterface.php +0 -9
  191. vendor/vimeo/vimeo-api/src/Vimeo/Exceptions/VimeoRequestException.php +0 -9
  192. vendor/vimeo/vimeo-api/src/Vimeo/Exceptions/VimeoUploadException.php +0 -9
  193. vendor/vimeo/vimeo-api/src/Vimeo/Vimeo.php +0 -598
  194. yarn.lock +0 -464
CHANGELOG.md ADDED
@@ -0,0 +1,796 @@
1
+
2
+ ## Changelog ##
3
+
4
+ ### 2017-03-19 - 8.2.0 ###
5
+
6
+ * Fixed: Plugin action links on installed plugin screen
7
+ * Fixed: CSS specificity issues by adding a `id="arve"` to the entire document and based all the CSS on `#arve`. If you have custom styles overwriting ARVE CSS you need to use increase specificity (or use `!important`). This will end a long time battle with themes styles without using bad practices.
8
+ * Improved: styles and scripts and now served minified unless `WP_DEBUG` is set.
9
+ * Improved: styles are now only loaded (to the bottom) when there is a video on the page.
10
+ * Improved: Settings title is now 'Advanced Responsive Video Embedder Settings' again rather then just ARVE.
11
+
12
+ ### 2017-03-12 - 8.1.1 ###
13
+
14
+ * Improved: Added ARVE to menu below plugins so it can be easy found.
15
+ * Improved: Used `wp_add_inline_style` function for inline styles.
16
+ * Removed some code that is not needed.
17
+
18
+ ### 2017-03-03 - 8.0.9 ###
19
+
20
+ * Fix: Admin page error for messing file.
21
+
22
+ ### 2017-03-02 - 8.0.8 ###
23
+
24
+ * Improved: Updated EDD Plugin Updater class
25
+
26
+ ### 2017-02-24 - 8.0.7 ###
27
+
28
+ * Fix: Options not correctly put in debug-info.
29
+ * Improved: Make License input fields a bit wider.
30
+ * Improved: Some small code improvements.
31
+
32
+ ### 2017-02-12 - 8.0.5 ###
33
+
34
+ * Fix: Small size of lightbox when using the [Pro Addon](https://nextgenthemes.com/plugins/advanced-responsive-video-embedder-pro/).
35
+
36
+ ### 2017-02-11 - 8.0.4 ###
37
+
38
+ * CSS improved
39
+ * Updated Addon Updater Class
40
+
41
+ ### 2017-01-03 - 8.0.2 ###
42
+
43
+ * Fix: Errors on settings page when Pro Addon is not installed.
44
+
45
+ ### 2016-12-17 - 8.0.1 ###
46
+
47
+ * Fix: `undefined function is_plugin_active()` error caused by some plugins
48
+ * Improved: Show actual meaningful message if PHP is lower then the required 5.3. Bluehost (oh proud wp.org recommended host) seems to show customers a **wrong** php version in the config and lets them hang on insecure end of life versions.
49
+
50
+ ### 2016-12-09 - Pro Addon 3.6.8 ###
51
+
52
+ * Fix: Wrongly tagged version.
53
+
54
+ ### 2016-12-07 - Pro Addon 3.6.7 ###
55
+
56
+ * Fix: Some thumbnails not loading.
57
+
58
+ ### 2016-12-07 - 8.0.0 ###
59
+
60
+ * Fix: 'Take over [video] shortcode' option not working. (Always acted as on, default is off)
61
+ * Fix: [video] override putting out a error for not reason.
62
+ * Improved code: Dropped 2 micro classes in favor for antonymous functions.
63
+
64
+ ### 2016-12-07 - Pro Addon 3.6.6 ###
65
+
66
+ * Improved: Load the CSS always in the `<head>`, this enables to change its CSS with the new CSS customizer in WP 4.7 and may also fix issues with caching plugins.
67
+
68
+ ### 2016-11-30 - 7.9.23 ###
69
+
70
+ * Fix: Ending up with wrong URLs by disabling auto shortening of URLs when pasting them into the shortcode-ui dialog.
71
+ * Improved: Enable SSL verify for API calls.
72
+ * Improved: License action return messages.
73
+
74
+ ### 2016-11-30 - Pro Addon 3.6.4 ###
75
+
76
+ * Fix: Autoplay without setting
77
+
78
+ ### 2016-11-30 - 7.9.21 ###
79
+
80
+ * Fix: Fatal error.
81
+
82
+ ### 2016-11-29 - Pro Addon 3.6.4 ###
83
+
84
+ * Improved: Licensing field removed from the pro options tab (now in main plugin). This enables resetting pro options settings without deleting license key.
85
+ * Fix: Autoplay not applied property.
86
+ * Fix: HTML5 not autoplaying in lightbox.
87
+ * Improved: New default option for inview lazyload is 'On iOS, Android and Desktops when no thumbnail is found'.
88
+ * Improved: New installations will show a message guiding users to activation screen.
89
+
90
+ ### 2016-11-29 - 7.9.19
91
+
92
+ * Fix: 'Embed Video' Button not working with Advanced Custom Fields (Possibly fixed other 3rd party editor plugins compatibility issues as well) Thanks to David Trenear!
93
+ * Fix: Facebook URL detection for usernames with dots in them.
94
+ * Fix: Invisible HTML5 Lazyload-lightbox videos
95
+ * Fix: Shortcode UI script enqueued to early causing JS erros on admin pages.
96
+ * Improved: Error messages for missing mandatory attributes.
97
+ * Improved: Moved some code logic of the pro addon out of the main plugin.
98
+ * New: `disable_flash` parameter mainly for unlisted providers will be treated as general iframe embeds. With set to true this will enable you to use the 'disable_links' feature of the pro plugin.
99
+ * New: Filters for new cool things coming up
100
+ * New: License page, relocated options page
101
+ * New: YouTube URL detection for playlists without starting video `https://www.youtube.com/playlist?list=PL3Esg-ZzbiUmeSKBAQ3ej1hQxDSsmnp-7`
102
+ * Possible Fix: Videos displayed to small in some Browsers
103
+
104
+ ### 2016-10-29 - 7.9.8 and Pro Addon 3.3.4 ###
105
+
106
+ * Fix: Fix lightbox thumbnail
107
+ * Improved: CSS
108
+
109
+ ### 2016-10-28 - Pro Addon 3.3.1 ###
110
+
111
+ * Fix: Fix thumbnails being displayed wrong in IE.
112
+
113
+ ### 2016-10-28 - Pro Addon 3.3.0 ###
114
+
115
+ * Fix: Restored broken update notifications and semi auto updates.
116
+
117
+ ### 2016-10-28 - 7.9.7 ###
118
+
119
+ * New: Wistia Support.
120
+ * Improved: Allow HTML in title attribute.
121
+ * Improved: Force more CSS Styles.
122
+
123
+ ### 2016-10-27 - Pro Addon 3.2.9 ###
124
+
125
+ * Fix: Twitch API failing (needs Client-ID now)
126
+
127
+ ### 2016-10-27 - Pro Addon 3.2.8 ###
128
+
129
+ * Improved: oembed error message
130
+ * Improved: Skip srcset function for PHP 5.3 and lower
131
+
132
+ ### 2016-10-27 - 7.9.6 ###
133
+
134
+ * Fix: Thumbnail not correctly applied to <video> tag for self hosted videos.
135
+ * Improved: CSS for self hosted videos.
136
+ * Improved: Enabled detection for rubtube and VK and show them as supported providers, even they where supported as general iframe embeds before.
137
+
138
+ ### 2016-10-25 - Pro Addon 3.2.7 ###
139
+
140
+ * Fix: 2 clicks needed to play lazyloaded video on desktops
141
+
142
+ ### 2016-10-24 - Pro Addon 3.2.5 ###
143
+
144
+ * Fix: JavaScript error related to abandoned Script.
145
+ * Fix: Custom Thumbnails not applied.
146
+
147
+ ### 2016-10-24 - 7.9.5 ###
148
+
149
+ * Fix: Custom Thumbnails not applied.
150
+ * Fix: Shortcode UI script only loaded if the plugin is active.
151
+
152
+ ### 2016-10-23 - 7.9.4 and Pro Addon 3.2.3 ###
153
+
154
+ * Fix: Multiple issues about the new HTML5 video embedding (still experimental)
155
+
156
+ ### 2016-10-23 - Pro Addon 3.2.2 ###
157
+
158
+ * Fix: 'Disable Links' not working.
159
+
160
+ ### 2016-10-23 - Pro Addon 3.2.0 ###
161
+
162
+ * Fix: Issue with lazyload and AJAX.
163
+ * Fix: W3TC issue by using yet another lazyload method. Final this time?
164
+ * Fix: YouTube Thumbnail detection when there are no HD images.
165
+ * Improved: Code used to cache thumbnails, this may improve improve performance.
166
+ * Improved: Lots code restructured and improved.
167
+ * New: New Lazyload mode setting to prevent "two touched needed to play video on mobiles" issue. Its also
168
+ * New: Facebook thumbnail detection.
169
+
170
+ ### 2016-10-23 - 7.9.2 ###
171
+
172
+ * Fix: Brightcove Autoplay issue.
173
+ * Fix: Liveleak thumbnail detection issues.
174
+ * Fix: Parameters not being added.
175
+ * Fix: Twitch single videos not using https
176
+ * Fix: Vevo marked to require flash to make it work again.
177
+ * Improved: Better dialog with better description and links about the shortcake UI plugin.
178
+ * Improved: Facebook embed method.
179
+ * Improved: Lots code restructured and improved.
180
+ * Improved: Parameters are always possible no matter the provider.
181
+ * Improved: Restructure of the plugin, abandon OOP mostly.
182
+ * Improved: Revive saving of last setting page tab.
183
+ * New: "Image Cache Time" setting on the setting page. Thumbnail URLs form the media gallery can now be cached with transients, that may improve performance.
184
+ * New: Support for self hosted videos (experimental)
185
+
186
+ ### 2016-10-03 - Pro Addon 2.5.2 ###
187
+
188
+ * Fix: Force button styles to make sure themes styles get overwritten.
189
+
190
+ ### Pro Addon 2.5.1 beta - 2016-09-21 ###
191
+
192
+ * New: Thumbnail support for Liveleak.
193
+ * Fix: Update loop.
194
+
195
+ ### Pro Addon 2.5.0 beta - 2016-09-21 ###
196
+
197
+ * Improved: Thumbnails detection.
198
+ * Improved how license keys are handled when set in wp-config.php.
199
+
200
+ ### 7.5.1 beta - 2016-09-21 ###
201
+
202
+ * Fix: Liveleak seems to require flash for some videos.
203
+
204
+ ### 7.5.0 beta - 2016-09-21 ###
205
+
206
+ * Fix: Youku URL detection and aspect ratio.
207
+ * Improved: `.arve-inner` css class in favor of some more specific classes combining styles.
208
+ * Improved: removed TGMPA class because it was causing horrible issues.
209
+
210
+ ### Pro Addon 2.4.5 beta - 2016-09-19 ###
211
+
212
+ * New: Adds the ability to define the pro key in your wp-config.php file with `define( 'ARVE_PRO_KEY', 'your_key_here' )`. When activating the plugin it now also tries to activate its license when a key is defined.
213
+
214
+ ### 7.4.3 beta - 2016-09-19 ###
215
+
216
+ * Fix: Deal with fluid-vids script messing with this plugin, making videos invisible.
217
+
218
+ ### Pro Addon 2.4.0 beta - 2016-09-18 ###
219
+
220
+ * New: Adds Yahoo auto thumbnail and title support
221
+
222
+ ### 7.4.1 beta - 2016-09-18 ###
223
+
224
+ * New: Adds Yahoo Video support
225
+
226
+ ### 7.3.2 beta - 2016-09-17 ###
227
+
228
+ * Fix: Remove security="restricted" from iframes to make IE work again.
229
+
230
+ ### 7.3.1 beta - 2016-09-17 ###
231
+
232
+ * Fix: Get rid of undefined index warnings when pro addon is not active.
233
+
234
+ ### 7.3.0 beta - 2016-09-17 ###
235
+
236
+ * Improved: Show admin notices only to users who have the 'activate_plugins' capability.
237
+ * Improved: Added notice to the readme for the TGMPA cause white screen of death issue.
238
+
239
+ ### Pro Addon 2.3.2 - 2016-09-17 ###
240
+
241
+ * Possible Fix for not centered play button.
242
+
243
+ ### 7.2.13 beta - 2016-09-16 ###
244
+
245
+ * Fix: Set fitvidsignore class and remove the Fitvids container to prevent it from messing with ARVE embeds.
246
+ * Fix: Remove possible width and height parameters on iframes to prevent scripts from messing with ARVE embeds.
247
+
248
+ ### 7.2.12 beta - 2016-09-16 ###
249
+
250
+ * Improved: replaced static:: with self:: to support older php versions.
251
+
252
+ ### 7.2.10 beta - 2016-09-15 ###
253
+
254
+ * Fix: [iframe] shortcode not working.
255
+
256
+ ### Pro Addon 2.3.1 beta - 2016-09-15 ###
257
+
258
+ * New: Added support for displaying title of videos on top of the thumbnail images.
259
+ * New: Responsive thumbnails using srcset the browser takes the best image resolution for the users device. (HTML5 srcset)
260
+ * New: Choose between 3 hover styles for the thumbnails: 'zoom image' (new default), 'rectangle move in' (old), or 'none' where only the play button changes.
261
+ * New: Choose beween 2 play button styles.
262
+ * Fix: Screenfull error.
263
+ * Fix: License API call.
264
+ * Improved: Rectangle animation.
265
+ * Improved: Updated 'lity' lightbox script.
266
+ * Improved: Thumbnail handling.
267
+ * Improved: Removed the 'Lazyload Maximal Width' setting to simplify things (there still is 'Maximal Width' and 'Aligned Maximal Width').
268
+ * Improved: Removed the 'Fake Thumbnail' feature because the entire idea was bad and real thumbnails should be used.
269
+ * Improved: Updated EDD_SL_Plugin_Updater Class
270
+ * Dropped PHP Class.
271
+
272
+ ### 7.2.9 beta - 2016-09-15 ###
273
+
274
+ * New: Recommend and guide to users to install [Shortcake (Shortcode UI)](https://de.wordpress.org/plugins/shortcode-ui/) via [TGMPA](http://tgmpluginactivation.com/)
275
+ * New: Amazing catch-all shortcode [arve url="..."] that can be used for all supported providers and even with any iframe `src` if all unlisted providers that support responsive iframe embeds.
276
+ * New: Support for kla.tv.
277
+ * New: Support for youku (fulfilled request)
278
+ * New: New Advanced Shortcode Dialog with nice UI for choose thumbnails from your WP Media Gallery, very detailed helping texts, display of default settings, hiding of fields based on need ...
279
+ * New: WYSIWYG Preview of Shortcodes.
280
+ * New: The two above features need the [Shortcake (Shortcode UI)](https://de.wordpress.org/plugins/shortcode-ui/) Plugin that is maybe moving into WordPress core later.
281
+ * New: A default alignment can now be set in the Settings page. (fulfilled request)
282
+ * New: 'iframe_name' shortcode parameter for `<iframe name="xxxxx"`, useful when wanting to target ARVE embeds with links. (fulfilled request)
283
+ * New: ARVE is now SEO friendly giving you the ability to add some schema.org microdata. Googles tools should not complain anymore if you add title, description and upload date. (fulfilled request)
284
+ * Deleted Language files in favor of [wordpress.org managed translations](https://translate.wordpress.org/projects/wp-plugins/advanced-responsive-video-embedder/dev) volunteers are welcome ;)
285
+ * Improved: Got rid of PHP globals.
286
+ * Improved: Added image upload dialog to settings page and shortcode dialog.
287
+ * Improved: Better CSS to overwrite unwanted theme styles.
288
+ * Improved: Lots if code improvements.
289
+ * Improved: SSL enabled and forced when supported by provoders.
290
+ * Fix: Blury Vimeo thumbnails
291
+ * Fix: Prevent Dashboard Widget conflicts with WP Helpers plugin (possibly others). Thanks to Steve Bruner.
292
+ * Fix: Issue with unwanted borders showing on embeds.
293
+ * Fix: youtu.be URLs now detected correct in shortcode dialog.
294
+ * Fix: All Vevo URLs are now detected correctly.
295
+ * Fix: Bool options settings.
296
+ * Removed blip because the service was shutdown.
297
+ * Removed myvideo.de because the service was restructured.
298
+
299
+ ### 6.4.0 ###
300
+
301
+ * Fix: Always prevent scrollbars.
302
+
303
+ ### Pro Addon 1.4.4
304
+
305
+ * Fixed: Infinite update loop.
306
+ * Improved: Updated Updater class.
307
+
308
+ ### Pro Addon 1.4.3
309
+
310
+ * Fixed: rectangle overflow issue.
311
+
312
+ ### Pro Addon 1.4.2
313
+
314
+ * Fixed: license activation problems.
315
+
316
+ ### Pro Addon 1.4.1
317
+
318
+ * Fixed critical bug for auto updates. Please [click here](https://nextgenthemes.com/support/915/add-wont-update-wordpress-says-download-failed-unauthorized?show=1053#a1053) if your update fails.
319
+
320
+ ### 6.3.9 ###
321
+
322
+ * Fix: Facebook (now really, hopefully).
323
+
324
+ ### 6.3.8 ###
325
+
326
+ * Fix: Facebook in lazyload modes.
327
+
328
+ ### 6.3.7 ###
329
+
330
+ * New: Facebook video support.
331
+
332
+ ### 6.3.4 ###
333
+
334
+ * Fix?: Iframes are now created with a fixed 853x480 size in feeds, this probably will fix some feedreaders incorrectly or not displaying videos.
335
+
336
+ ### 6.3.3 ###
337
+
338
+ * Improved: Disabled file URL detection as this solution was bad.
339
+
340
+ ### 6.3.2 ###
341
+
342
+ * Fixed/Improved: [arve_tests] shortcode.
343
+
344
+ ### Pro Addon 1.4 ###
345
+
346
+ * Fix: Fake thumbnails now work for lazyload-lightbox mode.
347
+
348
+ ### 6.3.1 & Pro Addon 1.4.0 ###
349
+
350
+ * Improved: Testing Shortcode.
351
+ * Improved: When there is no thumbnail lazyload mode will fall back to normal mode.
352
+ * New: Added support for alugha.com.
353
+
354
+ ### Pro Addon 1.1.5 ###
355
+
356
+ * New: Added setting and parameter grow="yes/no" to control the grow-on-click behaviour that was introduced in 6.0 to your liking.
357
+
358
+ ### 6.1.2 ###
359
+
360
+ * Improved: Added thumbnail and grow parameters to the Shortcode Creator Dialog.
361
+ * Improved: Updated screenshots.
362
+
363
+ ### Pro Addon 1.1.3 ###
364
+
365
+ * Improved: link-linghtbox mode does not force a newline for the link anymore.
366
+ * Fix: Autoplaying in Background when navigating back in browser.
367
+
368
+ ### Pro Addon 1.1.0 ###
369
+
370
+ * Fix: Various issues reguarding lightbox mode.
371
+
372
+ ### 6.1.0 ###
373
+
374
+ * Fix: Messages about pro addon removed when it is installed.
375
+
376
+ ### Pro Addon 1.0.7 ###
377
+
378
+ * Fix: Video start playing again invisible when closeing lightbox with ESC.
379
+
380
+ ### 6.0.6 Beta ###
381
+
382
+ * Improved: Adds a "Debug Info" tab to the settings page copy pasting when there is are issue.
383
+
384
+ ### Pro Addon 1.0.6 ###
385
+
386
+ * Remove development functions.
387
+
388
+ ### Pro Addon 1.0.4 ###
389
+
390
+ * Possibly Fixes SSL issues during activation.
391
+
392
+ ### Pro Addon 1.0.3 ###
393
+
394
+ * Fix: Maxwidth issue.
395
+
396
+ ### 6.0.5 Beta ###
397
+
398
+ * Fix: Foreach php error
399
+
400
+ ### 6.0.4 Beta ###
401
+
402
+ * Fix: Youtube URL with starttime.
403
+
404
+ ### 6.0.3 Beta, Pro Addon 1.0.3 ###
405
+
406
+ * Fix: Max-width output issue.
407
+
408
+ ### 6.0.2 Beta - 2015/07/24 - work time: ~60 days ###
409
+
410
+ Please check the [migration guide](https://nextgenthemes.com/?p=1875) about upgrading to this version.
411
+
412
+ * Fix: Jackpack Shortcode Embeds module incompatibility.
413
+ * New: URL parameters are now possible via URLs used for embeds (passed to iframe src).
414
+ * Changed: URL parameters to controll arve features are now 'arve[mode]=' style instead of 'arve-mode='.
415
+ * Improved: Enabled HTTPS support for Viddler and MyVideo.
416
+ * Improved: TED Talks shortcodes now support the 'lang' parameter.
417
+ * Improved: New embed URLs for MyVideo.
418
+ * Improved: Better Twitch support.
419
+ * Improved: Dailymotion HTTPS support.
420
+ * Improved: To reduce CSS and keep it simpler aspect ratios are now handled with inline styles.
421
+ * Improved: Moved to complete WP Settings API.
422
+ * Improved: Tabbed and extendable options page.
423
+ * Improved: Massive code improvements.
424
+ * Improved: Replaced all Admin Messages that caused bugs and annoyance for users with a dashboard Widget.
425
+
426
+ ### Pro Addon 1.0.1 ###
427
+
428
+ * New: link-lightbox mode creates a link the triggers a lightbox with a video on click.
429
+
430
+ ### Pro Addon 0.9.7 ###
431
+
432
+ * Fix: Lazyload videos not growing when global maxwidth setting was set.
433
+ * Improved: Finally got rid of the jQuery Colorbox depency, the Pro Addon now includes lity for lightboxes.
434
+
435
+ ### Pro Addon 0.9.5 ###
436
+
437
+ * Fix: Licensing Activation should now finally work correcty. (Multisite may need some tweaks)
438
+ * Fix: Pissibility of unwanted margins/paddings on the transparent button.
439
+
440
+ ### Pro Addon 0.9.0 ###
441
+
442
+ * Changed: 'Lazyload' mode now grows the video size after thumbnails are clicked.
443
+ * Changed: 'Thumbnail' mode is now called 'Lazyload -> Colorbox' and has a sightly different behavior.
444
+ * New: 'Lazyload -> Fullscreen' mode to instandly go Fullscreen after clicking the Lazyloaded preview image.
445
+ * New: 'Lazyload -> Fixed' Fullscreen/-window mode (extremly experimental) with ability to resize fixed video on screen while reading the page.
446
+ * New: 'thumbnail' parameter, take image URL or a ID to a media libray image to be used as thumbnail image.
447
+ * Improved: Enabled fake thumbnails for USTREAM and myvideo.de.
448
+ * Depricated: Providers that only support `<object>` are from now only supported in normal mode, will switch automatically. This effects only recorded Twitch videos, flickr and veoh.
449
+
450
+ ### 5.3.4 Beta - 2015/03/15 ###
451
+
452
+ * Fix: ID detection for youtu.be and dai.ly URLs, will now work with https://(www.) as well.
453
+ * Fix: Myvideo.de videos with 7 and 8 digit IDs.
454
+
455
+ ### 5.3.3 Beta ###
456
+
457
+ * Fix: Workarround for a currently ongoing YouTube issue causing YouTube embeds to fail with erros on mobile devives. This was not a 'bug' caused by this plugin btw.
458
+
459
+ ### 5.3.2 Beta ###
460
+
461
+ * Fix: Die 'Array' errors DIE!
462
+
463
+ ### 5.3.1 Beta ###
464
+
465
+ * Improved: Added shortcode example to youtube starttime examples.
466
+ * Improved: Clarified from who the admin messages come.
467
+
468
+ ### 5.3.0 Beta ###
469
+
470
+ * **If you get a error '... array ...' please reset your options on the options page and redo the options you had before**
471
+ * Fix: '... expected array' error when saving options on some cases. If you get a error please reset your
472
+ * Fix: ttp://youtu.be/... shortlinks are not detected correctly in the shortcode creator dialog.
473
+ * Improved: Ported code to WordPress Plugin Boilerplate 3.0 style.
474
+ * Improved: Switched vevo and xtube from object to iframe embeds.
475
+ * Improved: Lots of minor code enhancements.
476
+
477
+ ### 5.1.1 ###
478
+
479
+ * Fix: Removed mixed content warnungs for youtube and vimeo.
480
+ * Translation updates.
481
+
482
+ ### 5.1.0 ###
483
+
484
+ * New: Vimeo HTTPS support (works automatically if your site is HTTPS)
485
+
486
+ ### 5.0.2 Beta ###
487
+
488
+ * Improved: Marked as working with WP 4.0
489
+
490
+ ### 5.0.1 Beta ###
491
+
492
+ * Fix: Options var error
493
+
494
+ ### 5.0.0 Beta ###
495
+
496
+ * Fix: Max-width options should now work in all circumstances
497
+ * Improved: Various CSS improvements
498
+ * Improved: Changed play overlay image to a Google+ style image
499
+
500
+ ### 4.9.0 Beta ###
501
+
502
+ * Improved: All Javascript is loaded from files now and they are only loaded when there are embeds on the page. This improves page load times on pages with no embeds.
503
+ * Fix: Removed autohide#1 from default YouTube Parameters since it causes a YouTube bug in the HTML5 player.
504
+
505
+ ### 4.8.0 ###
506
+
507
+ * Updated: Spanish translation now 80% complete. Thanks Xarkitu!
508
+ * Improved: Do not load admin dialog when doing AJAX
509
+
510
+ ### 4.7.0 ###
511
+
512
+ * Fix: Iframe code detection
513
+
514
+ ### 4.6.0 ###
515
+
516
+ * Improvement: PHP required version lowered to 5.2.4
517
+
518
+ ### 4.5.4 ###
519
+
520
+ * Fix: Save of custom URL parameters
521
+ * New: CHANGES.md file for github updater
522
+
523
+ ### 4.5.3 ###
524
+
525
+ * Fix: Fatal PHP Error on activation.
526
+ * Fix: Readme spellings.
527
+
528
+ ### 4.5.0 ###
529
+
530
+ * Fix: Minor options page spelling and field association fixes.
531
+ * Fix: Added Lazyload to mode select in the shortcode dialog.
532
+ * New: 4players.de support.
533
+ * New: Added parameter input to the shortcode dialog.
534
+ * Improved: Default options are no longer stored in the database.
535
+ * Improved: Transparency fade animation on thumbnail hover.
536
+ * Improved: No more ugly URL hash (#arve-load-video) after clicking links.
537
+ * Improved: Dropped IE 8 support for Lazyload mode.
538
+ * Improved: Lots of code improvements.
539
+
540
+ ### 4.3.0 ###
541
+
542
+ * New: Added Iframe examples.
543
+ * Improved: Limited support for self hosted Videos. Dialog will detect URLS that end up with .webm .mp4 .ogg creates a iframe embed code with them. This is probaly not the best way to do this but it works. Real HTML5 video tag embeds may come later.
544
+ * Improved: Redesigned the button to look like WordPress and move it out of the Tiny MCE Editor. This enables you to embed videos in the code editor as well.
545
+ * Improved: Redesigned the Shortcode Creator dialog. Less clutter, more compact and it now includes the recently introduced `aspect_ratio`.
546
+
547
+ ### 4.2.0 ###
548
+
549
+ * New: As requested: `aspect_ratio` parameter
550
+ * Fix: Vimeo playing problems in Firefox.
551
+
552
+ ### 4.1.1 ###
553
+
554
+ * Fix: Play button not showing.
555
+
556
+ ### 4.1.0 ###
557
+
558
+ * New: Vine support
559
+ * New: Support for starttime from youtube URLs
560
+ * Improved: Include play image inside CSS, -1 http request may speed things up
561
+ * Improved: Tests
562
+
563
+ ### 4.0.0 ###
564
+
565
+ * New: Trigger-able debug output.
566
+ * Improved: The `[arve_tests]` shortcode now includes alignment and maxwidth tests
567
+ * Fix: Thumbnail image now displayed when using lazyload with `maxwidth` parameter
568
+
569
+ ### 3.9.9 ###
570
+
571
+ * Improved: Allowing `maxwidth` parameter in `lazyload` mode
572
+
573
+ ### 3.9.8 ###
574
+
575
+ * Fix: Thumbnail not opening Colorbox
576
+
577
+ ### 3.9.7 ALPHA! ###
578
+
579
+ * New: I am proud to introduce the new 'lazyload' mode. ARVEs new default mode. Load Images only and load the Video only on click. Like Google+ without the title.
580
+ * New: Added MPORA support
581
+ * New: Added (real) thumbnail support for Collegehumor, Twitch, FunnyOrDie, MPORA
582
+ * New: `[arve_tests]` shortcode that is used to test the plugin and provide examples.
583
+ * New: `[arve_supported]` shortcode probably of no use for users. It will generate the a list of providers with supported features.
584
+ * Improved: Enabled fake thumbnails for Comedycentral, Gametrailers and Spike
585
+ * Improved: Remote API calls and handling their errors.
586
+ * Improved: Get high resolution thumbnails from YouTube if available.
587
+ * Improved: The evil admin message is now only shown once to users who can delete plugins (Admins and the like) and if the plugin was activated a week ago or longer.
588
+ * Improved: Lots of smaller code improvements.
589
+
590
+ ### 3.6.1 ###
591
+
592
+ * Fix: Register link in changelog.
593
+
594
+ ### 3.6.0 ###
595
+
596
+ * New: Thanks to [Ilya Grishkov](https://ilyagrishkov.com) thumbnail URLs for Vimeo, Blip and Dailymotion Playlists are now cached (by default 24hours) this drastically reduces page loading times for thumbnail embeds from these providers because it bypasses calling their APIs for that period.
597
+ * Fix: Thumbnails for YouTube playlists.
598
+ * Fix: Shortcode creator ID detection for iframes (src URL)
599
+ * Fix: Updated Dailymoton docs link on Options page
600
+ * Improved: Error messages are now all ready to be translated. Current Translation status: German 50%, French 50%, Spanish 84%. Register at [nextgenthemes.com](https://nextgenthemes.com/wp-login.php?action#register) and then login to [translate.nextgenthemes.com](https://translate.nextgenthemes.com) to help translate.
601
+
602
+ ### 3.5.2 ###
603
+
604
+ * New: Twitch.tv support
605
+ * New: Spanish Translation from Andrew Kurtis webhostinghub.com
606
+ * Improved: Support for `https://new.ted.com/...` URLs
607
+ * Improved: Some code improvements, among them IDs of hidden objects are now generated with a simple `static` counter instead of some random generated string.
608
+
609
+ ### 3.5.1 ###
610
+
611
+ * Fix: Bug causing the Shortcode Creator not detecting shortcode tags when customized
612
+ * Improved how embeds `<object>` embed codes are generated.
613
+ * Updated FAQ
614
+ * New: Xtube support (On request)
615
+
616
+ ### 3.5.0 ###
617
+
618
+ * New: Custom parameters!
619
+ * Fix: Youtube playlists now work correctly
620
+ * Fix: Translations are working again (incomplete German and French)
621
+ * Deprecated: `start` and `end` shortcode parametets should not be used anymore with youtube, instead use the new parameters feature like `[youtube id#"123456" parameters#"start#60 end#120"]`
622
+
623
+ ### 3.1.2 ###
624
+
625
+ * Fix: IE8 JavaScript errors
626
+ * Improved: The evil message at the admin.
627
+
628
+ ### 3.1.1 (github only) ###
629
+
630
+ * Improved: Added `px` suffix to values on options page
631
+
632
+ ### 3.1.0 (beta) ###
633
+
634
+ * New: Development versions now available via [Github Plugin Updater](https://github.com/afragen/github-updater) please install this to test cutting edge versions
635
+ * New: Introducing 'Align Maximal Width' option
636
+ * Fix: Invisible normal mode embeds with align
637
+ * Fix: Yahoo detection
638
+ * Fix: Kickstarter detection
639
+ * Fix: Daylimoition Playlist
640
+ * Fix: Colleghumor
641
+ * Improved: Screenshots updated
642
+ * Improved: Beginning process of provider based aspect ratios.
643
+ * Improved: Dailymotion playlists/jukeboxes now show Native thumbnails
644
+ * Improved: Iframe embed code detection with with single quoted `src#''`
645
+
646
+ ### 3.0.4 (beta) ###
647
+
648
+ * Javascript Fix
649
+
650
+ ### 3.0.0 (beta) ###
651
+
652
+ * New: Support for embedding via simply pasting of URLs into posts (need to be on their own line, no button or shortcodes needed)
653
+ * New: Thumbnails are now responsive
654
+ * New: Vevo support
655
+ * New: TED Talks support
656
+ * New: IGN support
657
+ * New: Kickstarter support
658
+ * Improved: request large thumbnail from vimeo instead of medium
659
+ * Improved: 'youtubelist' shortcode deprecated YouTube playlists are now handled via the normal youtube shortcode with support for starting video
660
+ * Improved: 'bliptv' shortcode deprecated on favor of 'blip' that uses the ids from blip.tv URLs instead of the ones from embed codes
661
+ * Improved: Moved code to newest Plugin Boilerplate
662
+ * Improved: Massive code improvements
663
+
664
+ ### 2.7.4 ###
665
+
666
+ * Fix: Dropped mb_detect_encoding now using just preg_match to support rare php setups.
667
+
668
+ ### 2.7.3 ###
669
+
670
+ * New: Added French Translation from Karel - neo7.fr
671
+
672
+ ### 2.7.2 ###
673
+
674
+ * Fix: Permissions for the button, now authors who
675
+
676
+ ### 2.7.0 ###
677
+
678
+ * Fix: Admin page capabilities
679
+ * Improved: Reintroduced the manual provider and ID input to be used then not detected correctly.
680
+
681
+ ### 2.6.4 ###
682
+
683
+ * Fix: Black bar issue. (Dropped IE6 hacks/workarounds)
684
+
685
+ ### 2.6.3 ###
686
+
687
+ * Fix: Normal embeds not sizing correctly
688
+ * New: Added scrolling#"no" to Iframes
689
+ * Improved: Init shortcodes at a late stage to dominate conflicts
690
+ * Improved: Improved Iframe parameter handling
691
+ * Improved: Metacafe, Myspace, Videojug are now handled via Iframe
692
+
693
+ ### 2.6.2 ###
694
+
695
+ * Fix: Objects open correctly in Colorbox
696
+ * Fix: Iframe autoplay parameters startign with '&'
697
+ * New: Added screenshot for options page
698
+ * Improved: Youtube Videos with now me embedded with the same protocol your website is on, meaning if your website is https youtube embeds will be in https as well.
699
+
700
+ ### 2.6.1 ###
701
+
702
+ * Fix: Colorbox args script not having colorbox in depenency array
703
+ * Fix: Maxwidth shortcode generator field now has default value#""
704
+ * Fix: Blip embed code detection
705
+
706
+ ### 2.6.0 ###
707
+
708
+ * Improved: Move to a class structure with help of the great https://github.com/tommcfarlin/WordPress-Plugin-Boilerplate
709
+ * Improved: Some smaller Improvements
710
+ * New: Shortcode Dialog now has Autoplay option
711
+ * New: Guessing of autoplay parameters for the Iframe shortcodes.
712
+ * Hopefully fixed issues with other plugins and some themes, Javascript was messed up and is fine now.
713
+
714
+ ### 2.5 ###
715
+
716
+ * Fix: Objects in Colorboxes, now always have width and height 100%
717
+ * new shortcode attribute 'autoplay' for single videos
718
+ * support for start at given time for vimeo
719
+
720
+ ### 2.4 ###
721
+
722
+ * propper licence
723
+ * Class renamed
724
+
725
+ ### 2.3 beta ###
726
+
727
+ * fix for maxwidth wrapper no maxwidth option is set
728
+
729
+ ### 2.1 beta ###
730
+
731
+ * Security and general code improvements
732
+ * Added autoplay option
733
+
734
+ ### 2.0 beta ###
735
+
736
+ * added Yahoo!
737
+ * spike bugfix
738
+ * small improvements to code
739
+ * removed the fixed mode
740
+
741
+ ### 1.9 beta ###
742
+
743
+ * added youtubes modestbranding mode
744
+ * added missing veoh id detection
745
+ * fixed vimeo id detection
746
+ * added now custom thumbnail feature
747
+ * fixed the align class creation
748
+ * renamed the shortcode dialog
749
+ * removed the text field for teh fixed width option (beginning of the removal process)
750
+
751
+ ### 1.8 beta ###
752
+
753
+ * added new tinymce botton with dialog to detect ids from URL's and embed codes and automatically create shortcodes
754
+ * removed the image resizer (Faster and more secure for servers), now uses just CSS. Polyfill for for IE to support 'background-size' included.
755
+ * changed the play overlay image to a bigger one
756
+ * added comedycentral, spike
757
+ * removed google video, it died
758
+ * lots of improvements and fixes
759
+
760
+ ### 1.7 ###
761
+
762
+ * fixed gametrailers and collegehumor
763
+ * fixed options handling for updateded options
764
+ * added ustream support
765
+ * renamed a function to prevent issues with other plugins
766
+
767
+ ### 1.6 ###
768
+
769
+ * corrected readme errors, typos and added better description to shortcode options
770
+
771
+ ### 1.5 ###
772
+
773
+ * lots of code improvements, now uses wordpress settings api, and propper sanitising
774
+
775
+ ### 1.4.5 ###
776
+
777
+ * added flickr video, archive.org
778
+ * inproved how flashvars were implemented
779
+
780
+ ### 1.4.4 ###
781
+
782
+ * fixes
783
+
784
+ ### 1.4.2 ###
785
+
786
+ * Options dialog overhaul
787
+ * replaced Fancybox with Colorbox
788
+
789
+ ### 1.0 ###
790
+
791
+ * Removed Services that went down over the years
792
+ * Changed the way shortcodes were implemented from regexp to wordpress 'add shortcode' function
793
+
794
+ ### 0.1 ###
795
+
796
+ * Started by improving the Wordpress 'Video Embedder Plugin' but now complete new code
LICENSE.txt CHANGED
File without changes
admin/arve-admin.css CHANGED
@@ -2,6 +2,10 @@
2
width: 280px;
3
}
4
5
.arve-btn {
6
padding-left: 3px;
7
}
@@ -10,6 +14,10 @@
10
content: "\f236" !important; /* dashicon-video-alt */
11
}
12
13
.edit-shortcode-form-fields.shortcode-ui-edit-arve .field-block {
14
padding-top: .4em;
15
padding-bottom: .4em;
@@ -31,37 +39,3 @@
31
.edit-shortcode-form-fields.shortcode-ui-edit-arve .shortcode-ui-attribute-description input {
32
width: 700px;
33
}
34
-
35
- .arve-list-small {
36
- font-size: .85em;
37
- list-style: square;
38
- padding-left: 20px;
39
- }
40
-
41
- .arve-list-small li {
42
- margin-bottom: 2px;
43
- }
44
-
45
- .arve-settings-page-ad {
46
- margin: 0;
47
- padding-right: .7rem !important;
48
- }
49
-
50
- .arve-corner-spacer {
51
- float: right;
52
- width: 20px;
53
- height: 38px;
54
- }
55
-
56
- @media all and (min-width: 1024px) {
57
- .arve-settings-page-ad {
58
- position: absolute !important;
59
- right: 0;
60
- width: 320px;
61
- }
62
-
63
- .arve-options-wrap {
64
- padding-right: 350px;
65
- position: relative;
66
- }
67
- }
2
width: 280px;
3
}
4
5
+ [data-nj-notice-id] p {
6
+ font-size: 1.2em;
7
+ }
8
+
9
.arve-btn {
10
padding-left: 3px;
11
}
14
content: "\f236" !important; /* dashicon-video-alt */
15
}
16
17
+ .arve-options-wrap {
18
+ max-width: 1000px;
19
+ }
20
+
21
.edit-shortcode-form-fields.shortcode-ui-edit-arve .field-block {
22
padding-top: .4em;
23
padding-bottom: .4em;
39
.edit-shortcode-form-fields.shortcode-ui-edit-arve .shortcode-ui-attribute-description input {
40
width: 700px;
41
}
admin/arve-admin.js CHANGED
@@ -44,11 +44,11 @@
44
$( '#arve_options_main\\[last_settings_tab\\]' ).val( target );
45
} );
46
47
- $(document).on( 'click', '[data-image-upload]', function(e) {
48
49
e.preventDefault();
50
- var target = $( this ).attr('data-image-upload');
51
- var image = wp.media({
52
title: 'Upload Image',
53
// mutiple: true if you want to upload multiple files at once
54
multiple: false
44
$( '#arve_options_main\\[last_settings_tab\\]' ).val( target );
45
} );
46
47
+ $(document).on( 'click', '[data-arve-image-upload]', function(e) {
48
49
e.preventDefault();
50
+ var target = $( this ).attr('data-arve-image-upload'),
51
+ image = wp.media({
52
title: 'Upload Image',
53
// mutiple: true if you want to upload multiple files at once
54
multiple: false
admin/arve-shortcode-ui.js CHANGED
@@ -17,9 +17,9 @@ function arve_extract_url( changed, collection, shortcode ) {
17
return;
18
}
19
20
- if( val.match(/src="?([^\s"]+)/) ) {
21
22
- var test_url = val.match(/src="?([^\s"]+)/),
23
only_url = test_url && test_url[1];
24
25
input.val( only_url ).trigger( 'input' );
17
return;
18
}
19
20
+ if( val.match(/src="([^"]+)/) ) {
21
22
+ var test_url = val.match(/src="([^"]+)/),
23
only_url = test_url && test_url[1];
24
25
input.val( only_url ).trigger( 'input' );
admin/class-arve-admin-notice-factory.php CHANGED
@@ -2,60 +2,57 @@
2
3
class ARVE_Admin_Notice_Factory {
4
5
- private $notice_id;
6
- private $notice;
7
- private $dismiss_forever;
8
9
- function __construct( $notice_id, $notice, $dismiss_forever = true, $capabilities = 'activate_plugins' ) {
10
11
- if ( ! current_user_can( $capabilities ) ) {
12
- return;
13
- }
14
15
- $this->notice_id = "admin-notice-factory-$notice_id";
16
- $this->notice = $notice;
17
- $this->dismiss_forever = $dismiss_forever;
18
19
- if ( 'admin-notice-factory-arve_dismiss_pro_notice' == $this->notice_id ) {
20
- $this->notice_id = 'arve_dismiss_pro_notice';
21
- }
22
23
add_action( 'admin_notices', array( $this, 'action_admin_notices' ) );
24
- add_action( 'wp_ajax_' . $this->notice_id, array( $this, 'ajax_call' ) );
25
- }
26
-
27
- function action_admin_notices() {
28
29
- if ( apply_filters( 'nj_debug_admin_message', false ) ) {
30
- delete_user_meta( get_current_user_id(), $this->notice_id );
31
- delete_transient( $this->notice_id );
32
- }
33
34
- $user_id = get_current_user_id();
35
- $user_meta = get_user_meta( $user_id, $this->notice_id );
36
37
if( $this->dismiss_forever && ! empty( $user_meta ) ) {
38
return;
39
} elseif( get_transient( $this->notice_id ) ) {
40
- return;
41
- }
42
-
43
- printf(
44
- '<div class="notice is-dismissible updated" data-nj-notice-id="%s">%s</div>',
45
- esc_attr( $this->notice_id ),
46
- $this->notice
47
- );
48
}
49
50
function ajax_call() {
51
52
- $user_id = get_current_user_id();
53
54
- if( $this->dismiss_forever ) {
55
- add_user_meta( $user_id, $this->notice_id, true );
56
- } else {
57
- set_transient( $this->notice_id, true, HOUR_IN_SECONDS );
58
- }
59
wp_die();
60
}
61
}
2
3
class ARVE_Admin_Notice_Factory {
4
5
+ private $notice_id;
6
+ private $notice;
7
+ private $dismiss_forever;
8
9
+ function __construct( $notice_id, $notice, $dismiss_forever = true, $capabilities = 'activate_plugins' ) {
10
11
+ if ( ! current_user_can( $capabilities ) ) {
12
+ return;
13
+ }
14
15
+ $this->notice_id = "admin-notice-factory-$notice_id";
16
+ $this->notice = $notice;
17
+ $this->dismiss_forever = $dismiss_forever;
18
19
+ if ( 'admin-notice-factory-arve_dismiss_pro_notice' == $this->notice_id ) {
20
+ $this->notice_id = 'arve_dismiss_pro_notice';
21
+ }
22
23
add_action( 'admin_notices', array( $this, 'action_admin_notices' ) );
24
+ add_action( 'wp_ajax_' . $this->notice_id, array( $this, 'ajax_call' ) );
25
+ }
26
27
+ function action_admin_notices() {
28
+ #delete_user_meta( get_current_user_id(), $this->notice_id );
29
+ #delete_transient( $this->notice_id );
30
31
+ $user_id = get_current_user_id();
32
+ $user_meta = get_user_meta( $user_id, $this->notice_id );
33
34
if( $this->dismiss_forever && ! empty( $user_meta ) ) {
35
return;
36
} elseif( get_transient( $this->notice_id ) ) {
37
+ return;
38
+ }
39
+
40
+ printf(
41
+ '<div class="notice is-dismissible updated" data-nj-notice-id="%s">%s</div>',
42
+ esc_attr( $this->notice_id ),
43
+ $this->notice
44
+ );
45
}
46
47
function ajax_call() {
48
49
+ $user_id = get_current_user_id();
50
51
+ if( $this->dismiss_forever ) {
52
+ add_user_meta( $user_id, $this->notice_id, true );
53
+ } else {
54
+ set_transient( $this->notice_id, true, HOUR_IN_SECONDS );
55
+ }
56
wp_die();
57
}
58
}
admin/{class-nextgenthemes-plugin-updater.php → class-edd-sl-plugin-updater.php} RENAMED
@@ -7,9 +7,9 @@ if ( ! defined( 'ABSPATH' ) ) exit;
7
* Allows plugins to use their own update API.
8
*
9
* @author Easy Digital Downloads
10
- * @version 1.6.14
11
*/
12
- class Nextgenthemes_Plugin_Updater {
13
14
private $api_url = '';
15
private $api_data = array();
@@ -279,8 +279,8 @@ class Nextgenthemes_Plugin_Updater {
279
// Convert sections into an associative array, since we're getting an object, but Core expects an array.
280
if ( isset( $_data->sections ) && ! is_array( $_data->sections ) ) {
281
$new_sections = array();
282
- foreach ( $_data->sections as $key => $value ) {
283
- $new_sections[ $key ] = $value;
284
}
285
286
$_data->sections = $new_sections;
@@ -289,8 +289,8 @@ class Nextgenthemes_Plugin_Updater {
289
// Convert banners into an associative array, since we're getting an object, but Core expects an array.
290
if ( isset( $_data->banners ) && ! is_array( $_data->banners ) ) {
291
$new_banners = array();
292
- foreach ( $_data->banners as $key => $value ) {
293
- $new_banners[ $key ] = $value;
294
}
295
296
$_data->banners = $new_banners;
@@ -307,13 +307,11 @@ class Nextgenthemes_Plugin_Updater {
307
* @return object $array
308
*/
309
public function http_request_args( $args, $url ) {
310
-
311
- $verify_ssl = $this->verify_ssl();
312
if ( strpos( $url, 'https://' ) !== false && strpos( $url, 'edd_action=package_download' ) ) {
313
- $args['sslverify'] = $verify_ssl;
314
}
315
return $args;
316
-
317
}
318
319
/**
@@ -353,8 +351,7 @@ class Nextgenthemes_Plugin_Updater {
353
'beta' => ! empty( $data['beta'] ),
354
);
355
356
- $verify_ssl = $this->verify_ssl();
357
- $request = wp_remote_post( $this->api_url, array( 'timeout' => 15, 'sslverify' => $verify_ssl, 'body' => $api_params ) );
358
359
if ( ! is_wp_error( $request ) ) {
360
$request = json_decode( wp_remote_retrieve_body( $request ) );
@@ -416,8 +413,7 @@ class Nextgenthemes_Plugin_Updater {
416
'beta' => ! empty( $data['beta'] )
417
);
418
419
- $verify_ssl = $this->verify_ssl();
420
- $request = wp_remote_post( $this->api_url, array( 'timeout' => 15, 'sslverify' => $verify_ssl, 'body' => $api_params ) );
421
422
if ( ! is_wp_error( $request ) ) {
423
$version_info = json_decode( wp_remote_retrieve_body( $request ) );
@@ -474,18 +470,8 @@ class Nextgenthemes_Plugin_Updater {
474
'value' => json_encode( $value )
475
);
476
477
- update_option( $cache_key, $data, 'no' );
478
-
479
- }
480
481
- /**
482
- * Returns if the SSL of the store should be verified.
483
- *
484
- * @since 1.6.13
485
- * @return bool
486
- */
487
- private function verify_ssl() {
488
- return (bool) apply_filters( 'edd_sl_api_request_verify_ssl', true, $this );
489
}
490
491
}
7
* Allows plugins to use their own update API.
8
*
9
* @author Easy Digital Downloads
10
+ * @version 1.6.11
11
*/
12
+ class EDD_SL_Plugin_Updater {
13
14
private $api_url = '';
15
private $api_data = array();
279
// Convert sections into an associative array, since we're getting an object, but Core expects an array.
280
if ( isset( $_data->sections ) && ! is_array( $_data->sections ) ) {
281
$new_sections = array();
282
+ foreach ( $_data->sections as $key => $key ) {
283
+ $new_sections[ $key ] = $key;
284
}
285
286
$_data->sections = $new_sections;
289
// Convert banners into an associative array, since we're getting an object, but Core expects an array.
290
if ( isset( $_data->banners ) && ! is_array( $_data->banners ) ) {
291
$new_banners = array();
292
+ foreach ( $_data->banners as $key => $key ) {
293
+ $new_banners[ $key ] = $key;
294
}
295
296
$_data->banners = $new_banners;
307
* @return object $array
308
*/
309
public function http_request_args( $args, $url ) {
310
+ // If it is an https request and we are performing a package download, disable ssl verification
311
if ( strpos( $url, 'https://' ) !== false && strpos( $url, 'edd_action=package_download' ) ) {
312
+ $args['sslverify'] = true;
313
}
314
return $args;
315
}
316
317
/**
351
'beta' => ! empty( $data['beta'] ),
352
);
353
354
+ $request = wp_remote_post( $this->api_url, array( 'timeout' => 15, 'sslverify' => true, 'body' => $api_params ) );
355
356
if ( ! is_wp_error( $request ) ) {
357
$request = json_decode( wp_remote_retrieve_body( $request ) );
413
'beta' => ! empty( $data['beta'] )
414
);
415
416
+ $request = wp_remote_post( $this->api_url, array( 'timeout' => 15, 'sslverify' => true, 'body' => $api_params ) );
417
418
if ( ! is_wp_error( $request ) ) {
419
$version_info = json_decode( wp_remote_retrieve_body( $request ) );
470
'value' => json_encode( $value )
471
);
472
473
+ update_option( $cache_key, $data );
474
475
}
476
477
}
admin/functions-admin.php CHANGED
@@ -2,48 +2,31 @@
2
3
function arve_action_admin_init_setup_messages() {
4
5
- if( defined( 'ARVE_PRO_VERSION' ) || defined( 'ARVE_AMP_VERSION' ) ) {
6
-
7
- $msg = sprintf(
8
- __( 'ARVE addons price change. Please read <a href="%s">Taking Business to a Serious Level - The Future NextGenThemes and ARVE.</a>.', ARVE_SLUG ),
9
- 'https://nextgenthemes.com/taking-business-to-a-serious-level-the-future-nextgenthemes-and-arve/'
10
- );
11
-
12
- new ARVE_Admin_Notice_Factory(
13
- 'price_change',
14
- "<p>$msg</p>",
15
- true
16
- );
17
- }
18
-
19
if( defined( 'ARVE_PRO_VERSION' ) && version_compare( ARVE_PRO_VERSION_REQUIRED, ARVE_PRO_VERSION, '>' ) ) {
20
21
$msg = sprintf(
22
- __( 'Your ARVE Pro Addon is outdated, you need version %s or later. If you have setup your license <a href="%s">here</a> semi auto updates (Admin panel notice and auto install on confirmation) should work again. If not please <a href="%s">report it</a> and manually update as <a href="%s">described here.</a>', ARVE_SLUG ),
23
ARVE_PRO_VERSION_REQUIRED,
24
get_admin_url() . 'admin.php?page=nextgenthemes-licenses',
25
'https://nextgenthemes.com/support/',
26
- 'https://nextgenthemes.com/plugins/arve/documentation/installing-and-license-management/'
27
);
28
new ARVE_Admin_Notice_Factory( 'arve-pro-outdated', "<p>$msg</p>", false );
29
}
30
31
- if( arve_display_pro_ad() ) {
32
-
33
- $pro_ad_message = __( '<p>Hi, this is Nico(las Jonas) the author of the ARVE - Advanced Responsive Video Embedder plugin. If you are interrested in additional features and/or want to support the work I do on this plugin please consider buying the Pro Addon.</p>', ARVE_SLUG );
34
-
35
- $pro_ad_message .= file_get_contents( ARVE_PATH . 'admin/pro-ad.html' );
36
37
new ARVE_Admin_Notice_Factory( 'arve_dismiss_pro_notice', $pro_ad_message, true );
38
}
39
}
40
41
function arve_add_tinymce_plugin( $plugin_array ) {
42
- $plugin_array['arve'] = ARVE_ADMIN_URL . 'tinymce.js';
43
return $plugin_array;
44
}
45
46
- function arve_display_pro_ad() {
47
48
$inst = (int) get_option( 'arve_install_date' );
49
@@ -51,52 +34,49 @@ function arve_display_pro_ad() {
51
return false;
52
}
53
54
- return true;
55
- }
56
-
57
- function arve_widget_text() {
58
59
- printf( '<big><strong><a href="%s">Hiring a Marketing Person</a></strong></big>', 'https://nextgenthemes.com/hiring-a-marketing-person/' );
60
61
- echo '<p>';
62
- printf( '<a href="%s">Documentation</a>, ', 'https://nextgenthemes.com/plugins/arve/documentation/' );
63
- printf( '<a href="%s">Support</a>, ', 'https://nextgenthemes.com/support/' );
64
- printf( '<a href="%s">%s</a>', admin_url( 'admin.php?page=advanced-responsive-video-embedder' ), __( 'Settings', ARVE_SLUG ) );
65
- echo '</p>';
66
-
67
- printf( '<a href="%s">ARVE Pro Addon Features</a>:', 'https://nextgenthemes.com/plugins/arve-pro/' );
68
69
- echo file_get_contents( ARVE_PATH . 'admin/pro-ad.html' );
70
}
71
72
function arve_add_dashboard_widget() {
73
74
- if( ! arve_display_pro_ad() ) {
75
return false;
76
}
77
78
wp_add_dashboard_widget(
79
'arve_dashboard_widget', // Widget slug.
80
'Advanced Responsive Video Embedder', // Title.
81
- 'arve_widget_text' // Display function.
82
);
83
84
- // Globalize the metaboxes array, this holds all the widgets for wp-admin.
85
global $wp_meta_boxes, $pagenow;
86
87
if( 'index.php' == $pagenow ) {
88
- // Get the regular dashboard widgets array.
89
- // (which has our new widget already but at the end).
90
$normal_dashboard = $wp_meta_boxes['dashboard']['normal']['core'];
91
92
- // Backup and delete our new dashboard widget from the end of the array.
93
$arve_widget_backup = array( 'arve_dashboard_widget' => $normal_dashboard['arve_dashboard_widget'] );
94
unset( $normal_dashboard['arve_dashboard_widget'] );
95
96
- // Merge the two arrays together so our widget is at the beginning.
97
$sorted_dashboard = array_merge( $arve_widget_backup, $normal_dashboard );
98
99
- // Save the sorted array back into the original metaboxes.
100
$wp_meta_boxes['dashboard']['normal']['core'] = $sorted_dashboard;
101
}
102
}
@@ -108,17 +88,6 @@ function arve_add_dashboard_widget() {
108
*/
109
function arve_add_plugin_admin_menu() {
110
111
- $plugin_screen_hook_suffix = add_options_page(
112
- __( 'Advanced Responsive Video Embedder Settings', ARVE_SLUG ),
113
- __( 'ARVE', ARVE_SLUG ),
114
- 'manage_options',
115
- ARVE_SLUG, # menu-slug
116
- function() {
117
- require_once plugin_dir_path( __FILE__ ) . 'html-settings-page.php';
118
- }
119
- );
120
-
121
- /*
122
add_menu_page(
123
__( 'Advanced Responsive Video Embedder Settings', ARVE_SLUG ), # Page Title
124
__( 'ARVE', ARVE_SLUG ), # Menu Tile
@@ -128,14 +97,16 @@ function arve_add_plugin_admin_menu() {
128
'dashicons-video-alt3', # icon_url
129
'65.892' # position
130
);
131
- */
132
133
add_submenu_page(
134
'nextgenthemes', # parent_slug
135
__( 'Advanced Responsive Video Embedder Settings', ARVE_SLUG ), # Page Title
136
__( 'ARVE', ARVE_SLUG ), # Menu Title
137
'manage_options', # capability
138
- ARVE_SLUG # menu-slug
139
);
140
}
141
@@ -150,7 +121,7 @@ function arve_add_action_links( $links ) {
150
151
$extra_links['buy_pro_addon'] = sprintf(
152
'<a href="%s"><strong style="display: inline;">%s</strong></a>',
153
- 'https://nextgenthemes.com/plugins/arve-pro/',
154
__( 'Buy Pro Addon', ARVE_SLUG )
155
);
156
}
@@ -179,11 +150,11 @@ function arve_add_media_button() {
179
printf(
180
"<div id='arve-thickbox' style='display:none;'><p>$p1</p><p>$p2</p><p>$p3</p></div>",
181
nextgenthemes_admin_install_search_url( 'Shortcode+UI' ),
182
- esc_url( 'https://nextgenthemes.com/plugins/arve/documentation/' )
183
);
184
185
printf(
186
- '<button id="arve-btn" title="%s" data-mode="%s" class="arve-btn button add_media" type="button"><span class="wp-media-buttons-icon arve-icon"></span> %s</button>',
187
esc_attr__( 'ARVE Advanced Responsive Video Embedder', ARVE_SLUG ),
188
esc_attr( $options['mode'] ),
189
esc_html__( 'Embed Video (ARVE)', ARVE_SLUG )
@@ -247,8 +218,8 @@ function arve_input( $args ) {
247
'<a %s>%s</a>',
248
arve_attr(
249
array(
250
- 'data-image-upload' => sprintf( '[name="%s"]', $args['input_attr']['name'] ),
251
- 'class' => 'button-secondary',
252
)
253
),
254
__('Upload Image', ARVE_SLUG )
@@ -355,8 +326,8 @@ function arve_register_settings() {
355
$value['label'], // title
356
$callback_function, // callback
357
ARVE_SLUG, // page
358
- 'main_section', // section
359
- array( // args
360
'label_for' => ( 'radio' === $value['type'] ) ? null : "arve_options_main[{$value['attr']}]",
361
'input_attr' => $value['meta'] + array(
362
'type' => $value['type'],
@@ -503,10 +474,12 @@ function arve_shortcodes_section_description() {
503
504
function arve_params_section_description() {
505
506
$desc = sprintf(
507
- __( 'This parameters will be added to the <code>iframe src</code> urls, you can control the video players behavior with them. Please read <a href="%s" target="_blank">the documentation</a> on.',
508
ARVE_SLUG ),
509
- esc_url( 'https://nextgenthemes.com/arve/documentation' )
510
);
511
512
echo "<p>$desc</p>";
@@ -517,7 +490,7 @@ function arve_params_section_description() {
517
<a target="_blank" href="https://developers.google.com/youtube/player_parameters">Youtube Parameters</a>,
518
<a target="_blank" href="http://www.dailymotion.com/doc/api/player.html#parameters">Dailymotion Parameters</a>,
519
<a target="_blank" href="https://developer.vimeo.com/player/embedding">Vimeo Parameters</a>,
520
- <a target="_blank" href="https://nextgenthemes.com/arve-pro/documentation">Vimeo Parameters</a>,
521
</p>
522
<?php
523
}
@@ -568,43 +541,41 @@ function arve_debug_section_description() {
568
*/
569
function arve_validate_options_main( $input ) {
570
571
- // Storing the Options Section as a empty array will cause the plugin to use defaults
572
if( isset( $input['reset'] ) ) {
573
return array();
574
}
575
576
- $output['align'] = sanitize_text_field( $input['align'] );
577
- $output['mode'] = sanitize_text_field( $input['mode'] );
578
- $output['last_settings_tab'] = sanitize_text_field( $input['last_settings_tab'] );
579
- $output['controlslist'] = sanitize_text_field( $input['controlslist'] );
580
- $output['vimeo_api_token'] = sanitize_text_field( $input['vimeo_api_token'] );
581
582
- $output['always_enqueue_assets'] = ( 'yes' == $input['always_enqueue_assets'] ) ? true : false;
583
- $output['autoplay'] = ( 'yes' == $input['autoplay'] ) ? true : false;
584
- $output['iframe_flash'] = ( 'yes' == $input['iframe_flash'] ) ? true : false;
585
- $output['promote_link'] = ( 'yes' == $input['promote_link'] ) ? true : false;
586
- $output['wp_video_override'] = ( 'yes' == $input['wp_video_override'] ) ? true : false;
587
588
$output['wp_image_cache_time'] = (int) $input['wp_image_cache_time'];
589
590
if( (int) $input['video_maxwidth'] > 100 ) {
591
- $output['video_maxwidth'] = (int) $input['video_maxwidth'];
592
} else {
593
- $output['video_maxwidth'] = '';
594
}
595
596
if( (int) $input['align_maxwidth'] > 100 ) {
597
- $output['align_maxwidth'] = (int) $input['align_maxwidth'];
598
}
599
600
$options_defaults = arve_get_options_defaults( 'main' );
601
- // Store only the options in the database that are different from the defaults.
602
return array_diff_assoc( $output, $options_defaults );
603
}
604
605
function arve_validate_options_params( $input ) {
606
607
- // Storing the Options Section as a empty array will cause the plugin to use defaults
608
if( isset( $input['reset'] ) ) {
609
return array();
610
}
@@ -649,17 +620,17 @@ function arve_validate_options_shortcodes( $input ) {
649
650
651
function arve_admin_enqueue_styles() {
652
- wp_enqueue_style( ARVE_SLUG, ARVE_ADMIN_URL . 'arve-admin.css', array(), ARVE_VERSION, 'all' );
653
}
654
655
function arve_mce_css( $mce_css ) {
656
657
- $min = arve_get_min_suffix();
658
659
if ( ! empty( $mce_css ) ) {
660
$mce_css .= ',';
661
}
662
- $mce_css .= ARVE_PUBLIC_URL . "arve{$min}.css";
663
664
return $mce_css;
665
}
@@ -671,9 +642,9 @@ function arve_mce_css( $mce_css ) {
671
*/
672
function arve_admin_enqueue_scripts() {
673
674
- wp_enqueue_script( ARVE_SLUG, ARVE_ADMIN_URL . 'arve-admin.js', array( 'jquery' ), ARVE_VERSION, true );
675
676
if ( is_plugin_active( 'shortcode-ui/shortcode-ui.php' ) ) {
677
- wp_enqueue_script( ARVE_SLUG . '-sc-ui', ARVE_ADMIN_URL . 'arve-shortcode-ui.js', array( 'shortcode-ui' ), ARVE_VERSION, true );
678
}
679
}
2
3
function arve_action_admin_init_setup_messages() {
4
5
if( defined( 'ARVE_PRO_VERSION' ) && version_compare( ARVE_PRO_VERSION_REQUIRED, ARVE_PRO_VERSION, '>' ) ) {
6
7
$msg = sprintf(
8
+ __( 'Your ARVE Pro Addon is outdated, you need version %s or later. If you have setup your license <a href="%s">here</a> semi auto updates (Admin panel notice and auto install on confirmation) should work again. If not please <a href="%s">report it</a> and manually update as <a href="%s">described here.</a> I am sorry for the many manual updates with .zip file you had to do in the past. It came to my attention to late that this was actually not working, partly because customers bravely just did the manual update without saying a word. For beta versions the manual update is still needed but until this is supported by EDD (its in the works)', ARVE_SLUG ),
9
ARVE_PRO_VERSION_REQUIRED,
10
get_admin_url() . 'admin.php?page=nextgenthemes-licenses',
11
'https://nextgenthemes.com/support/',
12
+ 'https://nextgenthemes.com/plugins/advanced-responsive-video-embedder-pro/documentation/installing-and-license-management/'
13
);
14
new ARVE_Admin_Notice_Factory( 'arve-pro-outdated', "<p>$msg</p>", false );
15
}
16
17
+ $pro_ad_message = arve_get_pro_ad();
18
19
+ if( $pro_ad_message ) {
20
new ARVE_Admin_Notice_Factory( 'arve_dismiss_pro_notice', $pro_ad_message, true );
21
}
22
}
23
24
function arve_add_tinymce_plugin( $plugin_array ) {
25
+ $plugin_array['arve'] = plugin_dir_url( __FILE__ ) . 'tinymce.js';
26
return $plugin_array;
27
}
28
29
+ function arve_get_pro_ad() {
30
31
$inst = (int) get_option( 'arve_install_date' );
32
34
return false;
35
}
36
37
+ $pro_message = __( '<p>This is Nico(las Jonas) the Author of the Advanced Responsive Video Embedder plugin. When you <strong><a href="https://nextgenthemes.com/plugins/advanced-responsive-video-embedder-pro/">buy the Pro Addon</a></strong> for this plugin you will get this:</p>', ARVE_SLUG );
38
39
+ $pro_message .= file_get_contents( plugin_dir_path( dirname( __FILE__ ) ) . 'readme/html/20-description-features-pro.md.html' );
40
+ $pro_message = str_replace( '<ul ', '<ul style="list-style: square; padding-left: 20px;" ', $pro_message );
41
42
+ return $pro_message;
43
+ }
44
45
+ function arve_echo_pro_ad() {
46
+ echo arve_get_pro_ad();
47
}
48
49
function arve_add_dashboard_widget() {
50
51
+ $pro_ad_message = arve_get_pro_ad();
52
+
53
+ if( ! $pro_ad_message ) {
54
return false;
55
}
56
57
wp_add_dashboard_widget(
58
'arve_dashboard_widget', // Widget slug.
59
'Advanced Responsive Video Embedder', // Title.
60
+ 'arve_echo_pro_ad' // Display function.
61
);
62
63
+ // Globalize the metaboxes array, this holds all the widgets for wp-admin
64
global $wp_meta_boxes, $pagenow;
65
66
if( 'index.php' == $pagenow ) {
67
+
68
+ // Get the regular dashboard widgets array
69
+ // (which has our new widget already but at the end)
70
$normal_dashboard = $wp_meta_boxes['dashboard']['normal']['core'];
71
72
+ // Backup and delete our new dashboard widget from the end of the array
73
$arve_widget_backup = array( 'arve_dashboard_widget' => $normal_dashboard['arve_dashboard_widget'] );
74
unset( $normal_dashboard['arve_dashboard_widget'] );
75
76
+ // Merge the two arrays together so our widget is at the beginning
77
$sorted_dashboard = array_merge( $arve_widget_backup, $normal_dashboard );
78
79
+ // Save the sorted array back into the original metaboxes
80
$wp_meta_boxes['dashboard']['normal']['core'] = $sorted_dashboard;
81
}
82
}
88
*/
89
function arve_add_plugin_admin_menu() {
90
91
add_menu_page(
92
__( 'Advanced Responsive Video Embedder Settings', ARVE_SLUG ), # Page Title
93
__( 'ARVE', ARVE_SLUG ), # Menu Tile
97
'dashicons-video-alt3', # icon_url
98
'65.892' # position
99
);
100
101
add_submenu_page(
102
'nextgenthemes', # parent_slug
103
__( 'Advanced Responsive Video Embedder Settings', ARVE_SLUG ), # Page Title
104
__( 'ARVE', ARVE_SLUG ), # Menu Title
105
'manage_options', # capability
106
+ ARVE_SLUG, # menu-slug
107
+ function() {
108
+ require_once plugin_dir_path( __FILE__ ) . 'html-settings-page.php';
109
+ }
110
);
111
}
112
121
122
$extra_links['buy_pro_addon'] = sprintf(
123
'<a href="%s"><strong style="display: inline;">%s</strong></a>',
124
+ 'http://nextgenthemes.com/downloads/advanced-responsive-video-embedder',
125
__( 'Buy Pro Addon', ARVE_SLUG )
126
);
127
}
150
printf(
151
"<div id='arve-thickbox' style='display:none;'><p>$p1</p><p>$p2</p><p>$p3</p></div>",
152
nextgenthemes_admin_install_search_url( 'Shortcode+UI' ),
153
+ esc_url( 'https://nextgenthemes.com/plugins/advanced-responsive-video-embedder-pro/documentation/' )
154
);
155
156
printf(
157
+ '<button id="arve-btn" title="%s" data-arve-mode="%s" class="arve-btn button add_media" type="button"><span class="wp-media-buttons-icon arve-icon"></span> %s</button>',
158
esc_attr__( 'ARVE Advanced Responsive Video Embedder', ARVE_SLUG ),
159
esc_attr( $options['mode'] ),
160
esc_html__( 'Embed Video (ARVE)', ARVE_SLUG )
218
'<a %s>%s</a>',
219
arve_attr(
220
array(
221
+ 'data-arve-image-upload' => '[name="' . $args['input_attr']['name'] . '"]',
222
+ 'class' => 'button-secondary',
223
)
224
),
225
__('Upload Image', ARVE_SLUG )
326
$value['label'], // title
327
$callback_function, // callback
328
ARVE_SLUG, // page
329
+ 'main_section', // section
330
+ array( // args
331
'label_for' => ( 'radio' === $value['type'] ) ? null : "arve_options_main[{$value['attr']}]",
332
'input_attr' => $value['meta'] + array(
333
'type' => $value['type'],
474
475
function arve_params_section_description() {
476
477
+ $url = 'https://nextgenthemes.com/advanced-responsive-video-embedder-pro/documentation';
478
+
479
$desc = sprintf(
480
+ __( 'This parameters will be added to the embeds iframe src urls, you can control the video players behavior with them. Please seread <a href="%s" target="_blank">the documentation</a> on.',
481
ARVE_SLUG ),
482
+ esc_url( 'https://nextgenthemes.com/advanced-responsive-video-embedder-pro/documentation' )
483
);
484
485
echo "<p>$desc</p>";
490
<a target="_blank" href="https://developers.google.com/youtube/player_parameters">Youtube Parameters</a>,
491
<a target="_blank" href="http://www.dailymotion.com/doc/api/player.html#parameters">Dailymotion Parameters</a>,
492
<a target="_blank" href="https://developer.vimeo.com/player/embedding">Vimeo Parameters</a>,
493
+ <a target="_blank" href="https://nextgenthemes.com/advanced-responsive-video-embedder-pro/documentation">Vimeo Parameters</a>,
494
</p>
495
<?php
496
}
541
*/
542
function arve_validate_options_main( $input ) {
543
544
+ //* Storing the Options Section as a empty array will cause the plugin to use defaults
545
if( isset( $input['reset'] ) ) {
546
return array();
547
}
548
549
+ $output = array();
550
+
551
+ $output['align'] = sanitize_text_field( $input['align'] );
552
+ $output['mode'] = sanitize_text_field( $input['mode'] );
553
+ $output['last_settings_tab'] = sanitize_text_field( $input['last_settings_tab'] );
554
555
+ $output['autoplay'] = ( 'yes' == $input['autoplay'] ) ? true : false;
556
+ $output['promote_link'] = ( 'yes' == $input['promote_link'] ) ? true : false;
557
+ $output['wp_video_override'] = ( 'yes' == $input['wp_video_override'] ) ? true : false;
558
559
$output['wp_image_cache_time'] = (int) $input['wp_image_cache_time'];
560
561
if( (int) $input['video_maxwidth'] > 100 ) {
562
+ $output['video_maxwidth'] = (int) $input['video_maxwidth'];
563
} else {
564
+ $output['video_maxwidth'] = '';
565
}
566
567
if( (int) $input['align_maxwidth'] > 100 ) {
568
+ $output['align_maxwidth'] = (int) $input['align_maxwidth'];
569
}
570
571
$options_defaults = arve_get_options_defaults( 'main' );
572
+ //* Store only the options in the database that are different from the defaults.
573
return array_diff_assoc( $output, $options_defaults );
574
}
575
576
function arve_validate_options_params( $input ) {
577
578
+ //* Storing the Options Section as a empty array will cause the plugin to use defaults
579
if( isset( $input['reset'] ) ) {
580
return array();
581
}
620
621
622
function arve_admin_enqueue_styles() {
623
+ wp_enqueue_style( ARVE_SLUG, plugin_dir_url( __FILE__ ) . 'arve-admin.css', array(), ARVE_VERSION, 'all' );
624
}
625
626
function arve_mce_css( $mce_css ) {
627
628
+ $min = ( defined( 'WP_DEBUG' ) && WP_DEBUG ) ? '' : '.min';
629
630
if ( ! empty( $mce_css ) ) {
631
$mce_css .= ',';
632
}
633
+ $mce_css .= plugin_dir_url( __DIR__ ) . "public/arve{$min}.css";
634
635
return $mce_css;
636
}
642
*/
643
function arve_admin_enqueue_scripts() {
644
645
+ wp_enqueue_script( ARVE_SLUG, plugin_dir_url( __FILE__ ) . 'arve-admin.js', array( 'jquery' ), ARVE_VERSION, true );
646
647
if ( is_plugin_active( 'shortcode-ui/shortcode-ui.php' ) ) {
648
+ wp_enqueue_script( ARVE_SLUG . '-sc-ui', plugin_dir_url( __FILE__ ) . 'arve-shortcode-ui.js', array( 'shortcode-ui' ), ARVE_VERSION, true );
649
}
650
}
admin/functions-licensing.php CHANGED
@@ -90,8 +90,7 @@ function nextgenthemes_ads_page() { ?>
90
margin-right: 1.7rem;
91
font-size: 1.2rem;
92
}
93
- #nextgenthemes-ads ul {
94
- list-style: square;
95
margin-left: 2.5rem;
96
margin-right: .7rem;
97
}
@@ -114,9 +113,23 @@ function nextgenthemes_ads_page() { ?>
114
<div id="nextgenthemes-ads">
115
116
<?php if ( ! defined( 'ARVE_PRO_VERSION' ) ) : ?>
117
- <a href="https://nextgenthemes.com/plugins/arve-pro/">
118
<figure><img src="<?php echo $img_dir; ?>arve.svg" alt"ARVE"></figure>
119
- <?php nextgenthemes_feature_list_html( ARVE_PATH . 'readme/html/20-description-features-pro.html' ); ?>
120
<span>Paid</span>
121
</a>
122
<?php endif; ?>
@@ -124,7 +137,16 @@ function nextgenthemes_ads_page() { ?>
124
<?php if ( ! defined( 'ARVE_AMP_VERSION' ) ) : ?>
125
<a href="https://nextgenthemes.com/plugins/arve-accelerated-mobile-pages-addon/">
126
<figure><img src="<?php echo $img_dir; ?>arve.svg" alt"ARVE"></figure>
127
- <?php nextgenthemes_feature_list_html( ARVE_PATH . 'readme/html/25-description-features-amp.html' ); ?>
128
<span>Paid</span>
129
</a>
130
<?php endif; ?>
@@ -142,10 +164,6 @@ function nextgenthemes_ads_page() { ?>
142
<?php
143
}
144
145
- function nextgenthemes_feature_list_html( $filepath ) {
146
- echo strip_tags( file_get_contents( $filepath ), '<ul></ul><li></li><h3></h3>' );
147
- }
148
-
149
function nextgenthemes_activation_notices() {
150
151
$products = nextgenthemes_get_products();
@@ -168,25 +186,16 @@ function nextgenthemes_get_products() {
168
169
$products = array(
170
'arve_pro' => array(
171
- 'name' => 'ARVE Pro',
172
- 'id' => 1253,
173
- 'type' => 'plugin',
174
'author' => 'Nicolas Jonas',
175
- 'url' => 'https://nextgenthemes.com/plugins/arve-pro/',
176
),
177
'arve_amp' => array(
178
- 'name' => 'ARVE AMP',
179
- 'id' => 16941,
180
'type' => 'plugin',
181
'author' => 'Nicolas Jonas',
182
- 'url' => 'https://nextgenthemes.com/plugins/arve-amp/',
183
- ),
184
- 'arve_random_video' => array(
185
- 'name' => 'ARVE Random Video',
186
- 'id' => 31933,
187
- 'type' => 'plugin',
188
- 'author' => 'Nicolas Jonas',
189
- 'url' => 'https://nextgenthemes.com/plugins/arve-random-video/',
190
)
191
);
192
@@ -209,16 +218,6 @@ function nextgenthemes_get_products() {
209
$products[ $key ]['file'] = constant( $file_define );
210
}
211
212
- $version_define = "\\nextgenthemes\\$key\\VERSION";
213
- $file_define = "\\nextgenthemes\\$key\\FILE";
214
-
215
- if( defined( $version_define ) ) {
216
- $products[ $key ]['version'] = constant( $version_define );
217
- }
218
- if( defined( $file_define ) ) {
219
- $products[ $key ]['file'] = constant( $file_define );
220
- }
221
-
222
if ( 'plugin' == $value['type'] ) {
223
224
$file_slug = str_replace( '_', '-', $key );
@@ -253,12 +252,36 @@ function nextgenthemes_is_plugin_installed( $plugin_basename ) {
253
*/
254
function nextgenthemes_menus() {
255
256
- $plugin_screen_hook_suffix = add_options_page(
257
- __( 'ARVE Licenses', ARVE_SLUG ),
258
- __( 'ARVE Licenses', ARVE_SLUG ),
259
- 'manage_options',
260
- 'nextgenthemes-licenses',
261
- 'nextgenthemes_licenses_page'
262
);
263
}
264
@@ -397,13 +420,13 @@ function nextgenthemes_update_key_status( $product, $key ) {
397
update_option( "nextgenthemes_{$product}_key_status", $key );
398
}
399
function nextgenthemes_has_valid_key( $product ) {
400
- return ( 'valid' === nextgenthemes_get_key_status( $product ) ) ? true : false;
401
}
402
403
function nextgenthemes_api_update_key_status( $product, $key, $action ) {
404
405
$products = nextgenthemes_get_products();
406
- $key_status = nextgenthemes_api_action( $products[ $product ]['id'], $key, $action );
407
408
nextgenthemes_update_key_status( $product, $key_status );
409
}
@@ -453,15 +476,14 @@ function nextgenthemes_init_edd_updaters() {
453
function nextgenthemes_init_plugin_updater( $product ) {
454
455
// setup the updater
456
- new Nextgenthemes_Plugin_Updater(
457
- apply_filters( 'nextgenthemes_api_url', 'https://nextgenthemes.com' ),
458
$product['file'],
459
array(
460
- 'version' => $product['version'],
461
- 'license' => nextgenthemes_get_key( $product['slug'] ),
462
- #'item_name' => $product['name'],
463
- 'item_id' => $product['id'],
464
- 'author' => $product['author']
465
)
466
);
467
}
@@ -470,14 +492,14 @@ function nextgenthemes_init_theme_updater( $product ) {
470
471
new EDD_Theme_Updater(
472
array(
473
- 'remote_api_url' => 'https://nextgenthemes.com',
474
- 'version' => $product['version'],
475
- 'license' => nextgenthemes_get_key( $product['slug'] ),
476
- 'item_id' => $product['name'],
477
- 'author' => $product['id'],
478
- 'theme_slug' => $product['slug'],
479
- 'download_id' => $product['download_id'], // Optional, used for generating a license renewal link
480
- #'renew_url' => $product['renew_link'], // Optional, allows for a custom license renewal link
481
),
482
array(
483
'theme-license' => __( 'Theme License', ARVE_SLUG ),
@@ -506,25 +528,21 @@ function nextgenthemes_init_theme_updater( $product ) {
506
);
507
}
508
509
- function nextgenthemes_api_action( $item_id, $key, $action ) {
510
511
if ( ! in_array( $action, array( 'activate', 'deactivate', 'check' ) ) ) {
512
wp_die( 'invalid action' );
513
}
514
515
- // data to send in our API request
516
$api_params = array(
517
'edd_action' => $action . '_license',
518
'license' => sanitize_text_field( $key ),
519
- 'item_id' => $item_id,
520
- 'url' => home_url()
521
);
522
523
- // Call the custom API.
524
- $response = wp_remote_post(
525
- 'https://nextgenthemes.com',
526
- array( 'timeout' => 15, 'sslverify' => true, 'body' => $api_params )
527
- );
528
529
// make sure the response came back okay
530
if ( is_wp_error( $response ) || 200 !== wp_remote_retrieve_response_code( $response ) ) {
@@ -539,14 +557,14 @@ function nextgenthemes_api_action( $item_id, $key, $action ) {
539
540
$license_data = json_decode( wp_remote_retrieve_body( $response ) );
541
542
- if ( false === $license_data->success ) {
543
544
switch( $license_data->error ) {
545
546
case 'expired' :
547
548
$message = sprintf(
549
- __( 'Your license key expired on %s.' ),
550
date_i18n( get_option( 'date_format' ), strtotime( $license_data->expires, current_time( 'timestamp' ) ) )
551
);
552
break;
@@ -569,7 +587,7 @@ function nextgenthemes_api_action( $item_id, $key, $action ) {
569
570
case 'item_name_mismatch' :
571
572
- $message = sprintf( __( 'This appears to be an invalid license key for %s.' ), ARVE_SLUG );
573
break;
574
575
case 'no_activations_left':
@@ -582,33 +600,13 @@ function nextgenthemes_api_action( $item_id, $key, $action ) {
582
$message = __( 'An error occurred, please try again.', ARVE_SLUG );
583
break;
584
}
585
- }
586
- }
587
588
- if ( empty( $message ) ) {
589
-
590
- if ( empty( $license_data->license ) ) {
591
-
592
- $textarea_dump = arve_textarea_dump( $response );
593
594
- $message = sprintf(
595
- __( 'Error. Please report the following:<br> %s', ARVE_SLUG ),
596
- $textarea_dump
597
- );
598
- } else {
599
- $message = $license_data->license;
600
- }
601
}
602
603
return $message;
604
}
605
-
606
- function arve_dump( $var ) {
607
- ob_start();
608
- var_dump( $var );
609
- return ob_get_clean();
610
- }
611
-
612
- function arve_textarea_dump( $var ) {
613
- return sprintf( '<textarea style="width: 100%; height: 70vh;">%s</textarea>', esc_textarea( arve_dump( $var ) ) );
614
- }
90
margin-right: 1.7rem;
91
font-size: 1.2rem;
92
}
93
+ #nextgenthemes-ads ol {
94
margin-left: 2.5rem;
95
margin-right: .7rem;
96
}
113
<div id="nextgenthemes-ads">
114
115
<?php if ( ! defined( 'ARVE_PRO_VERSION' ) ) : ?>
116
+ <a href="https://nextgenthemes.com/plugins/advanced-responsive-video-embedder-pro/">
117
<figure><img src="<?php echo $img_dir; ?>arve.svg" alt"ARVE"></figure>
118
+ <h1>^ Pro Addon</h1>
119
+ <ol>
120
+ <li><strong>Feel good about yourself</strong><br>for supporting my long time work on this plugin. Tons of hours, weekends … always worked on improving it 4+ years.</li>
121
+ <li><strong>Disable links in embeds (killer feature!)</strong><br>For example: Clicking on a title in a YouTube embed will not open a new popup/tab/window. <strong>Prevent video hosters to lead your visitors away from your site!</strong> Note this also breaks sharing functionality and is not possible when the provider requires flash. Right click on links still works.</li>
122
+ <li><strong>Lazyload mode</strong><br>Make your site load <strong>faster</strong> by loading only a image instead of the entire video player on pageload. </li>
123
+ <li><strong>Lazyload -&gt; Lightbox</strong><br>Shows the Video in a Lightbox after clicking a preview image</li>
124
+ <li><strong>Link -&gt; Lightbox</strong><br>Use simple links as triggers for lightboxed videos</li>
125
+ <li>Show the latest video of a YouTube channel by using the channel URL (updated/cached hourly)</li>
126
+ <li>Automatic or custom thumbnail images</li>
127
+ <li>Automatic or custom titles on top of your thumbnails</li>
128
+ <li>&#39;Grow on click&#39; feature</li>
129
+ <li>3 hover styles</li>
130
+ <li>2 play icon styles to choose from</li>
131
+ <li>Responsive thumbnails using cutting edge HTML5 technology</li>
132
+ </ol>
133
<span>Paid</span>
134
</a>
135
<?php endif; ?>
137
<?php if ( ! defined( 'ARVE_AMP_VERSION' ) ) : ?>
138
<a href="https://nextgenthemes.com/plugins/arve-accelerated-mobile-pages-addon/">
139
<figure><img src="<?php echo $img_dir; ?>arve.svg" alt"ARVE"></figure>
140
+ <h3>^ AMP Addon</h3>
141
+ <ol>
142
+ <li>Requires the gratis plugins ARVE and AMP</li>
143
+ <li>Makes ARVE ready for Accelerated Mobile Pages (AMP)</li>
144
+ <li>It will display videos embedded with ARVE on AMP pages correctly</li>
145
+ <li>No options, just works</li>
146
+ <li>It creates &lt;amp-youtube&gt;, &lt;amp-vimeo&gt;, &lt;amp-dailymotion&gt; elements</li>
147
+ <li>For all other video hosts supported by ARVE &lt;amp-iframe&gt; element is used</li>
148
+ <li>HTML5 video files are also supported with &lt;amp-video&gt;</li>
149
+ </ol>
150
<span>Paid</span>
151
</a>
152
<?php endif; ?>
164
<?php
165
}
166
167
function nextgenthemes_activation_notices() {
168
169
$products = nextgenthemes_get_products();
186
187
$products = array(
188
'arve_pro' => array(
189
+ 'name' => 'Advanced Responsive Video Embedder Pro',
190
+ 'type' => 'plugin',
191
'author' => 'Nicolas Jonas',
192
+ 'url' => 'https://nextgenthemes.com/plugins/advanced-responsive-video-embedder-pro/',
193
),
194
'arve_amp' => array(
195
+ 'name' => 'ARVE Accelerated Mobile Pages Addon',
196
'type' => 'plugin',
197
'author' => 'Nicolas Jonas',
198
+ 'url' => 'https://nextgenthemes.com/plugins/arve-accelerated-mobile-pages-addon/',
199
)
200
);
201
218
$products[ $key ]['file'] = constant( $file_define );
219
}
220
221
if ( 'plugin' == $value['type'] ) {
222
223
$file_slug = str_replace( '_', '-', $key );
252
*/
253
function nextgenthemes_menus() {
254
255
+ $plugin_screen_hook_suffix = add_menu_page(
256
+ __( 'Nextgenthemes', ARVE_SLUG ), # Page Title
257
+ __( 'Nextgenthemes', ARVE_SLUG ), # Menu Tile
258
+ 'manage_options', # capability
259
+ 'nextgenthemes', # menu-slug
260
+ 'nextgenthemes_ads_page', # function
261
+ 'dashicons-admin-settings', # icon_url
262
+ '80.892' # position
263
+ );
264
+
265
+ /*
266
+ add_submenu_page(
267
+ 'nextgenthemes', # parent_slug
268
+ __( 'Addons and Themes', ARVE_SLUG ), # Page Title
269
+ __( 'Addons and Themes', ARVE_SLUG ), # Menu Tile
270
+ 'manage_options', # capability
271
+ 'nextgenthemes', # menu-slug
272
+ function() {
273
+ require_once plugin_dir_path( __FILE__ ) . 'html-ad-page.php';
274
+ }
275
+ );
276
+ */
277
+
278
+ add_submenu_page(
279
+ 'nextgenthemes', # parent_slug
280
+ __( 'Licenses', ARVE_SLUG ), # Page Title
281
+ __( 'Licenses', ARVE_SLUG ), # Menu Tile
282
+ 'manage_options', # capability
283
+ 'nextgenthemes-licenses', # menu-slug
284
+ 'nextgenthemes_licenses_page' # function
285
);
286
}
287
420
update_option( "nextgenthemes_{$product}_key_status", $key );
421
}
422
function nextgenthemes_has_valid_key( $product ) {
423
+ return ( 'valid' == nextgenthemes_get_key_status( $product ) ) ? true : false;
424
}
425
426
function nextgenthemes_api_update_key_status( $product, $key, $action ) {
427
428
$products = nextgenthemes_get_products();
429
+ $key_status = nextgenthemes_api_action( $products[ $product ]['name'], $key, $action );
430
431
nextgenthemes_update_key_status( $product, $key_status );
432
}
476
function nextgenthemes_init_plugin_updater( $product ) {
477
478
// setup the updater
479
+ new EDD_SL_Plugin_Updater(
480
+ 'https://nextgenthemes.com',
481
$product['file'],
482
array(
483
+ 'version' => $product['version'],
484
+ 'license' => nextgenthemes_get_key( $product['slug'] ),
485
+ 'item_name' => $product['name'],
486
+ 'author' => $product['author']
487
)
488
);
489
}
492
493
new EDD_Theme_Updater(
494
array(
495
+ 'remote_api_url' => 'https://nextgenthemes.com',
496
+ 'version' => $product['version'],
497
+ 'license' => nextgenthemes_get_key( $product['slug'] ),
498
+ 'item_name' => $product['name'],
499
+ 'author' => $product['author'],
500
+ 'theme_slug' => $product['slug'],
501
+ 'download_id' => $product['download_id'], // Optional, used for generating a license renewal link
502
+ #'renew_url' => $product['renew_link'], // Optional, allows for a custom license renewal link
503
),
504
array(
505
'theme-license' => __( 'Theme License', ARVE_SLUG ),
528
);
529
}
530
531
+ function nextgenthemes_api_action( $item_name, $key, $action ) {
532
533
if ( ! in_array( $action, array( 'activate', 'deactivate', 'check' ) ) ) {
534
wp_die( 'invalid action' );
535
}
536
537
+ // Data to send to the API
538
$api_params = array(
539
'edd_action' => $action . '_license',
540
'license' => sanitize_text_field( $key ),
541
+ 'item_name' => urlencode( $item_name ),
542
+ 'url' => home_url(),
543
);
544
545
+ $response = wp_remote_post( 'https://nextgenthemes.com', array( 'timeout' => 15, 'sslverify' => true, 'body' => $api_params ) );
546
547
// make sure the response came back okay
548
if ( is_wp_error( $response ) || 200 !== wp_remote_retrieve_response_code( $response ) ) {
557
558
$license_data = json_decode( wp_remote_retrieve_body( $response ) );
559
560
+ if ( false === $license_data->success ) :
561
562
switch( $license_data->error ) {
563
564
case 'expired' :
565
566
$message = sprintf(
567
+ __( 'Your license key expired on %s.', ARVE_SLUG ),
568
date_i18n( get_option( 'date_format' ), strtotime( $license_data->expires, current_time( 'timestamp' ) ) )
569
);
570
break;
587
588
case 'item_name_mismatch' :
589
590
+ $message = sprintf( __( 'This appears to be an invalid license key for %s.', ARVE_SLUG ), $item_name );
591
break;
592
593
case 'no_activations_left':
600
$message = __( 'An error occurred, please try again.', ARVE_SLUG );
601
break;
602
}
603
604
+ endif; // false === $license_data->success
605
+ }
606
607
+ if( empty( $message ) ) {
608
+ $message = $license_data->license;
609
}
610
611
return $message;
612
}
admin/html-ad-page.php ADDED
@@ -0,0 +1,6 @@
1
+ <div class="wrap">
2
+
3
+ <h1>Nexgenthemes Products</h1>
4
+ <p>more coming soon</p>
5
+
6
+ </div>
admin/html-debug-info.php CHANGED
File without changes
admin/html-settings-page.php CHANGED
@@ -13,54 +13,18 @@
13
*/
14
15
$options = arve_get_options();
16
?>
17
-
18
<div class="wrap arve-options-wrap">
19
20
- <?php if ( arve_display_pro_ad() ) : ?>
21
-
22
- <div class="arve-settings-page-ad notice is-dismissible updated">
23
-
24
- <button type="button" class="notice-dismiss"><span class="screen-reader-text">Dismiss this notice.</span></button>
25
-
26
- <div class="arve-corner-spacer"></div>
27
-
28
- <h3>Please rate</h3>
29
- It would really help to get a <a href="https://wordpress.org/support/plugin/advanced-responsive-video-embedder/reviews/#new-post">5 star rating from you.</a>
30
-
31
- <p>This plugin is financed by purchases of the <a href="https://nextgenthemes.com/plugins/arve-pro/">Pro Addon</a>. The development and support of this plugins has become a job for me so I hope you understand that I can not make all features gratis and that you <a href="https://nextgenthemes.com/plugins/arve-pro/">purchase it</a> to get extra features and support the development.</p>
32
-
33
- <h3><a href="https://nextgenthemes.com/plugins/arve-pro/">Pro Addon</a></h3>
34
-
35
- <ul>
36
- <li><strong>Disable links in embeds (killer feature!)</strong><br>
37
- For example: Clicking on a title in a YouTube embed will not open a new popup/tab/window. <strong>Prevent video hosts to lead your visitors away from your site!</strong> Note this also breaks sharing functionality and is not possible when the provider requires flash. Try it on <a href="https://nextgenthemes.com/plugins/arve-pro/">this page</a>. Right click on links still works.</li>
38
- <li><strong>Lazyload mode</strong><br>
39
- Make your site load <strong>faster</strong> by loading only a image instead of the entire video player on pageload. </li>
40
- <li><strong>Lazyload -> Lightbox</strong><br>
41
- Shows the Video in a Lightbox after clicking a preview image</li>
42
- <li><strong>Link -> Lightbox</strong><br>
43
- Use simple links as triggers for lightboxed videos</li>
44
- <li>Automatic or custom thumbnail images</li>
45
- <li>Automatic or custom titles on top of your thumbnails</li>
46
- <li>'Expand on click' feature</li>
47
- <li>3 hover styles</li>
48
- <li>2 play icon styles to choose from</li>
49
- <li>Responsive thumbnails using cutting edge HTML5 technology</li>
50
- <li><strong>Feel good about yourself</strong><br>
51
- for supporting my 5+ years work on this plugin. Tons of hours, weekends … always worked on improving it.</li>
52
- <li>Show the latest video of a YouTube channel by using the channel URL (updated/cached hourly)</li>
53
- <li><strong><a href="https://nextgenthemes.com/plugins/arve-pro/">Get the ARVE Pro Addon</a></strong></li>
54
- </ul>
55
-
56
- </div>
57
-
58
- <?php endif; ?>
59
-
60
<h2><?php esc_html_e( get_admin_page_title() ); ?></h2>
61
62
- <h2 class="nav-tab-wrapper arve-settings-tabs"></h2>
63
64
<form class="arve-options-form" method="post" action="options.php">
65
66
<?php do_settings_sections( ARVE_SLUG ); ?>
13
*/
14