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

Version Description

Download this release

Release Info

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

Code changes from version 8.9.5 to 8.8.7

Files changed (154) hide show
  1. LICENSE.txt +5 -0
  2. admin/arve-shortcode-ui.js +2 -2
  3. admin/functions-admin.php +4 -5
  4. admin/functions-licensing.php +2 -18
  5. admin/html-settings-page.php +4 -27
  6. advanced-responsive-video-embedder.php +2 -3
  7. public/functions-enqueue.php +0 -13
  8. public/functions-shortcode-filters.php +11 -10
  9. public/functions-shortcodes.php +39 -59
  10. readme.txt +0 -34
  11. readme/html/01-top.html +18 -0
  12. readme/html/10-description-features.html +22 -0
  13. readme/html/12-description-supported-providers.html +3 -0
  14. readme/html/13-description-reviews.html +19 -0
  15. readme/html/19-description-features-pro-intro.html +1 -0
  16. readme/html/20-description-features-pro.html +22 -0
  17. readme/html/25-description-features-amp.html +12 -0
  18. readme/html/35-description-thanks.html +16 -0
  19. readme/html/50-installation-faq-screenshots.html +43 -0
  20. shared/functions-shared.php +20 -48
  21. vendor/autoload.php +0 -7
  22. vendor/composer/ClassLoader.php +0 -445
  23. vendor/composer/LICENSE +0 -21
  24. vendor/composer/autoload_classmap.php +0 -9
  25. vendor/composer/autoload_namespaces.php +0 -9
  26. vendor/composer/autoload_psr4.php +0 -11
  27. vendor/composer/autoload_real.php +0 -52
  28. vendor/composer/autoload_static.php +0 -39
  29. vendor/composer/installed.json +0 -172
  30. vendor/composer/installers/CHANGELOG.md +0 -86
  31. vendor/composer/installers/CONTRIBUTING.md +0 -24
  32. vendor/composer/installers/LICENSE +0 -19
  33. vendor/composer/installers/README.md +0 -221
  34. vendor/composer/installers/_config.yml +0 -1
  35. vendor/composer/installers/phpunit.xml.dist +0 -25
  36. vendor/composer/installers/src/Composer/Installers/AglInstaller.php +0 -21
  37. vendor/composer/installers/src/Composer/Installers/AimeosInstaller.php +0 -9
  38. vendor/composer/installers/src/Composer/Installers/AnnotateCmsInstaller.php +0 -11
  39. vendor/composer/installers/src/Composer/Installers/AsgardInstaller.php +0 -49
  40. vendor/composer/installers/src/Composer/Installers/AttogramInstaller.php +0 -9
  41. vendor/composer/installers/src/Composer/Installers/BaseInstaller.php +0 -136
  42. vendor/composer/installers/src/Composer/Installers/BitrixInstaller.php +0 -126
  43. vendor/composer/installers/src/Composer/Installers/BonefishInstaller.php +0 -9
  44. vendor/composer/installers/src/Composer/Installers/CakePHPInstaller.php +0 -82
  45. vendor/composer/installers/src/Composer/Installers/ChefInstaller.php +0 -11
  46. vendor/composer/installers/src/Composer/Installers/ClanCatsFrameworkInstaller.php +0 -10
  47. vendor/composer/installers/src/Composer/Installers/CockpitInstaller.php +0 -34
  48. vendor/composer/installers/src/Composer/Installers/CodeIgniterInstaller.php +0 -11
  49. vendor/composer/installers/src/Composer/Installers/Concrete5Installer.php +0 -13
  50. vendor/composer/installers/src/Composer/Installers/CraftInstaller.php +0 -35
  51. vendor/composer/installers/src/Composer/Installers/CroogoInstaller.php +0 -21
  52. vendor/composer/installers/src/Composer/Installers/DecibelInstaller.php +0 -10
  53. vendor/composer/installers/src/Composer/Installers/DokuWikiInstaller.php +0 -50
  54. vendor/composer/installers/src/Composer/Installers/DolibarrInstaller.php +0 -16
  55. vendor/composer/installers/src/Composer/Installers/DrupalInstaller.php +0 -16
  56. vendor/composer/installers/src/Composer/Installers/ElggInstaller.php +0 -9
  57. vendor/composer/installers/src/Composer/Installers/EliasisInstaller.php +0 -12
  58. vendor/composer/installers/src/Composer/Installers/ExpressionEngineInstaller.php +0 -29
  59. vendor/composer/installers/src/Composer/Installers/EzPlatformInstaller.php +0 -10
  60. vendor/composer/installers/src/Composer/Installers/FuelInstaller.php +0 -11
  61. vendor/composer/installers/src/Composer/Installers/FuelphpInstaller.php +0 -9
  62. vendor/composer/installers/src/Composer/Installers/GravInstaller.php +0 -30
  63. vendor/composer/installers/src/Composer/Installers/HuradInstaller.php +0 -25
  64. vendor/composer/installers/src/Composer/Installers/ImageCMSInstaller.php +0 -11
  65. vendor/composer/installers/src/Composer/Installers/Installer.php +0 -200
  66. vendor/composer/installers/src/Composer/Installers/ItopInstaller.php +0 -9
  67. vendor/composer/installers/src/Composer/Installers/JoomlaInstaller.php +0 -15
  68. vendor/composer/installers/src/Composer/Installers/KanboardInstaller.php +0 -18
  69. vendor/composer/installers/src/Composer/Installers/KirbyInstaller.php +0 -11
  70. vendor/composer/installers/src/Composer/Installers/KodiCMSInstaller.php +0 -10
  71. vendor/composer/installers/src/Composer/Installers/KohanaInstaller.php +0 -9
  72. vendor/composer/installers/src/Composer/Installers/LanManagementSystemInstaller.php +0 -27
  73. vendor/composer/installers/src/Composer/Installers/LaravelInstaller.php +0 -9
  74. vendor/composer/installers/src/Composer/Installers/LavaLiteInstaller.php +0 -10
  75. vendor/composer/installers/src/Composer/Installers/LithiumInstaller.php +0 -10
  76. vendor/composer/installers/src/Composer/Installers/MODULEWorkInstaller.php +0 -9
  77. vendor/composer/installers/src/Composer/Installers/MODXEvoInstaller.php +0 -16
  78. vendor/composer/installers/src/Composer/Installers/MagentoInstaller.php +0 -11
  79. vendor/composer/installers/src/Composer/Installers/MajimaInstaller.php +0 -37
  80. vendor/composer/installers/src/Composer/Installers/MakoInstaller.php +0 -9
  81. vendor/composer/installers/src/Composer/Installers/MauticInstaller.php +0 -25
  82. vendor/composer/installers/src/Composer/Installers/MayaInstaller.php +0 -33
  83. vendor/composer/installers/src/Composer/Installers/MediaWikiInstaller.php +0 -50
  84. vendor/composer/installers/src/Composer/Installers/MicroweberInstaller.php +0 -111
  85. vendor/composer/installers/src/Composer/Installers/ModxInstaller.php +0 -12
  86. vendor/composer/installers/src/Composer/Installers/MoodleInstaller.php +0 -57
  87. vendor/composer/installers/src/Composer/Installers/OctoberInstaller.php +0 -46
  88. vendor/composer/installers/src/Composer/Installers/OntoWikiInstaller.php +0 -24
  89. vendor/composer/installers/src/Composer/Installers/OsclassInstaller.php +0 -14
  90. vendor/composer/installers/src/Composer/Installers/OxidInstaller.php +0 -59
  91. vendor/composer/installers/src/Composer/Installers/PPIInstaller.php +0 -9
  92. vendor/composer/installers/src/Composer/Installers/PhiftyInstaller.php +0 -11
  93. vendor/composer/installers/src/Composer/Installers/PhpBBInstaller.php +0 -11
  94. vendor/composer/installers/src/Composer/Installers/PimcoreInstaller.php +0 -21
  95. vendor/composer/installers/src/Composer/Installers/PiwikInstaller.php +0 -32
  96. vendor/composer/installers/src/Composer/Installers/PlentymarketsInstaller.php +0 -29
  97. vendor/composer/installers/src/Composer/Installers/Plugin.php +0 -17
  98. vendor/composer/installers/src/Composer/Installers/PortoInstaller.php +0 -9
  99. vendor/composer/installers/src/Composer/Installers/PrestashopInstaller.php +0 -10
  100. vendor/composer/installers/src/Composer/Installers/PuppetInstaller.php +0 -11
  101. vendor/composer/installers/src/Composer/Installers/PxcmsInstaller.php +0 -63
  102. vendor/composer/installers/src/Composer/Installers/RadPHPInstaller.php +0 -24
  103. vendor/composer/installers/src/Composer/Installers/ReIndexInstaller.php +0 -10
  104. vendor/composer/installers/src/Composer/Installers/RedaxoInstaller.php +0 -10
  105. vendor/composer/installers/src/Composer/Installers/RoundcubeInstaller.php +0 -22
  106. vendor/composer/installers/src/Composer/Installers/SMFInstaller.php +0 -10
  107. vendor/composer/installers/src/Composer/Installers/ShopwareInstaller.php +0 -60
  108. vendor/composer/installers/src/Composer/Installers/SilverStripeInstaller.php +0 -35
  109. vendor/composer/installers/src/Composer/Installers/SiteDirectInstaller.php +0 -25
  110. vendor/composer/installers/src/Composer/Installers/SyDESInstaller.php +0 -49
  111. vendor/composer/installers/src/Composer/Installers/Symfony1Installer.php +0 -26
  112. vendor/composer/installers/src/Composer/Installers/TYPO3CmsInstaller.php +0 -16
  113. vendor/composer/installers/src/Composer/Installers/TYPO3FlowInstaller.php +0 -38
  114. vendor/composer/installers/src/Composer/Installers/TheliaInstaller.php +0 -12
  115. vendor/composer/installers/src/Composer/Installers/TuskInstaller.php +0 -14
  116. vendor/composer/installers/src/Composer/Installers/UserFrostingInstaller.php +0 -9
  117. vendor/composer/installers/src/Composer/Installers/VanillaInstaller.php +0 -10
  118. vendor/composer/installers/src/Composer/Installers/VgmcpInstaller.php +0 -49
  119. vendor/composer/installers/src/Composer/Installers/WHMCSInstaller.php +0 -10
  120. vendor/composer/installers/src/Composer/Installers/WolfCMSInstaller.php +0 -9
  121. vendor/composer/installers/src/Composer/Installers/WordPressInstaller.php +0 -12
  122. vendor/composer/installers/src/Composer/Installers/YawikInstaller.php +0 -32
  123. vendor/composer/installers/src/Composer/Installers/ZendInstaller.php +0 -11
  124. vendor/composer/installers/src/Composer/Installers/ZikulaInstaller.php +0 -10
  125. vendor/composer/installers/src/bootstrap.php +0 -13
  126. vendor/composer/installers/tests/Composer/Installers/Test/AsgardInstallerTest.php +0 -80
  127. vendor/composer/installers/tests/Composer/Installers/Test/BitrixInstallerTest.php +0 -75
  128. vendor/composer/installers/tests/Composer/Installers/Test/CakePHPInstallerTest.php +0 -114
  129. vendor/composer/installers/tests/Composer/Installers/Test/CraftInstallerTest.php +0 -83
  130. vendor/composer/installers/tests/Composer/Installers/Test/DokuWikiInstallerTest.php +0 -90
  131. vendor/composer/installers/tests/Composer/Installers/Test/GravInstallerTest.php +0 -63
  132. vendor/composer/installers/tests/Composer/Installers/Test/InstallerTest.php +0 -552
  133. vendor/composer/installers/tests/Composer/Installers/Test/MayaInstallerTest.php +0 -62
  134. vendor/composer/installers/tests/Composer/Installers/Test/MediaWikiInstallerTest.php +0 -67
  135. vendor/composer/installers/tests/Composer/Installers/Test/OctoberInstallerTest.php +0 -67
  136. vendor/composer/installers/tests/Composer/Installers/Test/OntoWikiInstallerTest.php +0 -84
  137. vendor/composer/installers/tests/Composer/Installers/Test/PimcoreInstallerTest.php +0 -44
  138. vendor/composer/installers/tests/Composer/Installers/Test/PiwikInstallerTest.php +0 -63
  139. vendor/composer/installers/tests/Composer/Installers/Test/SiteDirectInstallerTest.php +0 -120
  140. vendor/composer/installers/tests/Composer/Installers/Test/SyDESInstallerTest.php +0 -82
  141. vendor/composer/installers/tests/Composer/Installers/Test/TestCase.php +0 -65
  142. vendor/composer/installers/tests/Composer/Installers/Test/VgmcpInstallerTest.php +0 -80
  143. vendor/composer/installers/tests/Composer/Installers/Test/YawikInstallerTest.php +0 -64
  144. vendor/composer/installers/tests/bootstrap.php +0 -4
  145. vendor/vimeo/vimeo-api/.styleci.yml +0 -19
  146. vendor/vimeo/vimeo-api/CHANGELOG.md +0 -19
  147. vendor/vimeo/vimeo-api/LICENSE +0 -177
  148. vendor/vimeo/vimeo-api/README.md +0 -254
  149. vendor/vimeo/vimeo-api/autoload.php +0 -29
  150. vendor/vimeo/vimeo-api/certificates/vimeo-api.pem +0 -47
  151. vendor/vimeo/vimeo-api/src/Vimeo/Exceptions/ExceptionInterface.php +0 -9
  152. vendor/vimeo/vimeo-api/src/Vimeo/Exceptions/VimeoRequestException.php +0 -9
  153. vendor/vimeo/vimeo-api/src/Vimeo/Exceptions/VimeoUploadException.php +0 -9
  154. vendor/vimeo/vimeo-api/src/Vimeo/Vimeo.php +0 -598
LICENSE.txt CHANGED
@@ -1,3 +1,8 @@
1
GNU GENERAL PUBLIC LICENSE
2
Version 3, 29 June 2007
3
1
+ class-arve-vimeo.php
2
+ Vimeo Video Post Lite
3
+ https://wordpress.org/plugins/codeflavors-vimeo-video-post-lite/
4
+ GPL 2.0 or later
5
+
6
GNU GENERAL PUBLIC LICENSE
7
Version 3, 29 June 2007
8
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/functions-admin.php CHANGED
@@ -579,11 +579,10 @@ function arve_validate_options_main( $input ) {
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
579
$output['controlslist'] = sanitize_text_field( $input['controlslist'] );
580
$output['vimeo_api_token'] = sanitize_text_field( $input['vimeo_api_token'] );
581
582
+ $output['autoplay'] = ( 'yes' == $input['autoplay'] ) ? true : false;
583
+ $output['promote_link'] = ( 'yes' == $input['promote_link'] ) ? true : false;
584
+ $output['wp_video_override'] = ( 'yes' == $input['wp_video_override'] ) ? true : false;
585
+ $output['iframe_flash'] = ( 'yes' == $input['iframe_flash'] ) ? true : false;
586
587
$output['wp_image_cache_time'] = (int) $input['wp_image_cache_time'];
588
admin/functions-licensing.php CHANGED
@@ -523,7 +523,7 @@ function nextgenthemes_api_action( $item_id, $key, $action ) {
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
@@ -588,13 +588,7 @@ function nextgenthemes_api_action( $item_id, $key, $action ) {
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
}
@@ -602,13 +596,3 @@ function nextgenthemes_api_action( $item_id, $key, $action ) {
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
- }
523
// Call the custom API.
524
$response = wp_remote_post(
525
'https://nextgenthemes.com',
526
+ array( 'timeout' => 15, 'sslverify' => false, 'body' => $api_params )
527
);
528
529
// make sure the response came back okay
588
if ( empty( $message ) ) {
589
590
if ( empty( $license_data->license ) ) {
591
+ $message = __( 'Could not read license status.', ARVE_SLUG );
592
} else {
593
$message = $license_data->license;
594
}
596
597
return $message;
598
}
admin/html-settings-page.php CHANGED
@@ -25,33 +25,10 @@ $options = arve_get_options();
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
25
26
<div class="arve-corner-spacer"></div>
27
28
+ <?php printf( '<p><big><strong><a href="%s">Hiring a Marketing Person</a></strong></big></p>', 'https://nextgenthemes.com/hiring-a-marketing-person/' ); ?>
29
+
30
+ <?php echo file_get_contents( ARVE_PATH . 'readme/html/19-description-features-pro-intro.html' ); ?>
31
+ <?php echo file_get_contents( ARVE_PATH . 'readme/html/20-description-features-pro.html' ); ?>
32
33
</div>
34
advanced-responsive-video-embedder.php CHANGED
@@ -3,7 +3,7 @@
3
* Plugin Name: ARVE Advanced Responsive Video Embedder
4
* Plugin URI: https://nextgenthemes.com/plugins/arve-pro/
5
* Description: Easy responsive video embeds via URL (like WordPress) or Shortcodes. Supports almost anything you can imagine.
6
- * Version: 8.9.5
7
* Author: Nicolas Jonas
8
* Author URI: https://nextgenthemes.com
9
* License: GPL-3.0
@@ -19,7 +19,7 @@ if ( ! defined( 'WPINC' ) ) {
19
}
20
21
define( 'ARVE_SLUG', 'advanced-responsive-video-embedder' );
22
- define( 'ARVE_VERSION', '8.9.5' );
23
define( 'ARVE_PRO_VERSION_REQUIRED', '4.0.0' );
24
25
define( 'ARVE_URL', plugin_dir_url( __FILE__ ) );
@@ -65,7 +65,6 @@ function arve_init() {
65
add_action( 'plugins_loaded', 'arve_oembed_remove_providers', 998 );
66
add_action( 'wp_enqueue_scripts', 'arve_register_styles', 0 );
67
add_action( 'wp_enqueue_scripts', 'arve_register_scripts', 0 );
68
- add_action( 'wp_enqueue_scripts', 'arve_maybe_enqueue_assets' );
69
add_action( 'wp_video_shortcode_override', 'arve_wp_video_shortcode_override', 10, 4 );
70
add_filter( 'widget_text', 'do_shortcode' );
71
add_filter( 'language_attributes', 'arve_html_id' );
3
* Plugin Name: ARVE Advanced Responsive Video Embedder
4
* Plugin URI: https://nextgenthemes.com/plugins/arve-pro/
5
* Description: Easy responsive video embeds via URL (like WordPress) or Shortcodes. Supports almost anything you can imagine.
6
+ * Version: 8.8.7
7
* Author: Nicolas Jonas
8
* Author URI: https://nextgenthemes.com
9
* License: GPL-3.0
19
}
20
21
define( 'ARVE_SLUG', 'advanced-responsive-video-embedder' );
22
+ define( 'ARVE_VERSION', '8.8.7' );
23
define( 'ARVE_PRO_VERSION_REQUIRED', '4.0.0' );
24
25
define( 'ARVE_URL', plugin_dir_url( __FILE__ ) );
65
add_action( 'plugins_loaded', 'arve_oembed_remove_providers', 998 );
66
add_action( 'wp_enqueue_scripts', 'arve_register_styles', 0 );
67
add_action( 'wp_enqueue_scripts', 'arve_register_scripts', 0 );
68
add_action( 'wp_video_shortcode_override', 'arve_wp_video_shortcode_override', 10, 4 );
69
add_filter( 'widget_text', 'do_shortcode' );
70
add_filter( 'language_attributes', 'arve_html_id' );
public/functions-enqueue.php CHANGED
@@ -24,16 +24,3 @@ function arve_register_scripts() {
24
true
25
);
26
}
27
-
28
- function arve_maybe_enqueue_assets() {
29
-
30
- $options = arve_get_options();
31
-
32
- if ( $options['always_enqueue_assets'] ) {
33
- wp_enqueue_style( ARVE_SLUG );
34
- wp_enqueue_script( ARVE_SLUG );
35
-
36
- wp_enqueue_style( 'arve-pro' );
37
- wp_enqueue_script( 'arve-pro' );
38
- }
39
- }
24
true
25
);
26
}
public/functions-shortcode-filters.php CHANGED
@@ -14,7 +14,7 @@ function arve_get_wrapper_id( $a ) {
14
static $wrapper_ids = array();
15
$wrapper_id = null;
16
17
- foreach ( array( 'id', 'mp4', 'm4v', 'webm', 'ogv', 'url', 'random_video_url', 'webtorrent' ) as $att ) {
18
19
if ( ! empty( $a[ $att ] ) && is_string( $a[ $att ] ) ) {
20
$wrapper_id = 'arve-' . $a[ $att ];
@@ -95,14 +95,13 @@ function arve_sc_filter_attr( $a ) {
95
}
96
97
$a['iframe_attr'] = array(
98
- 'allow' => 'autoplay; fullscreen',
99
'allowfullscreen' => '',
100
'class' => 'arve-iframe fitvidsignore',
101
'frameborder' => '0',
102
'name' => $a['iframe_name'],
103
- 'sandbox' => 'allow-scripts allow-same-origin allow-presentation allow-popups',
104
'scrolling' => 'no',
105
'src' => $iframe_src,
106
'width' => empty( $a['width'] ) ? false : $a['width'],
107
'height' => empty( $a['height'] ) ? false : $a['height'],
108
);
@@ -165,10 +164,12 @@ function arve_sc_filter_sanitise( $atts ) {
165
166
foreach ( $atts as $key => $value ) {
167
168
- $atts[ $key ] = (string) $value;
169
170
- if ( '' === $value ) {
171
- $atts[ $key ] = null;
172
}
173
}
174
@@ -422,21 +423,21 @@ function arve_sc_filter_build_tracks_html( $atts ) {
422
return $atts;
423
}
424
425
- preg_match( '#-(?<type>captions|chapters|descriptions|metadata|subtitles)-(?<lang>[a-z]{2}).vtt$#i', $atts[ "track_{$n}" ], $matches );
426
427
if ( empty( $matches[1] ) ) {
428
$atts[ "track_{$n}" ] = new WP_Error( 'track', __( 'Track kind or language code could not detected from filename', ARVE_SLUG ) );
429
return $atts;
430
}
431
432
- $label = empty( $atts[ "track_{$n}_label" ] ) ? arve_get_language_name_from_code( $matches['lang'] ) : $atts[ "track_{$n}_label" ];
433
434
$attr = array(
435
'default' => ( 1 === $n ) ? true : false,
436
- 'kind' => $matches['type'],
437
'label' => $label,
438
'src' => $atts[ "track_{$n}" ],
439
- 'srclang' => $matches['lang'],
440
);
441
442
$atts['video_tracks_html'] .= sprintf( '<track%s>', arve_attr( $attr) );
14
static $wrapper_ids = array();
15
$wrapper_id = null;
16
17
+ foreach ( array( 'id', 'mp4', 'm4v', 'webm', 'ogv', 'url', 'webtorrent' ) as $att ) {
18
19
if ( ! empty( $a[ $att ] ) && is_string( $a[ $att ] ) ) {
20
$wrapper_id = 'arve-' . $a[ $att ];
95
}
96
97
$a['iframe_attr'] = array(
98
'allowfullscreen' => '',
99
'class' => 'arve-iframe fitvidsignore',
100
'frameborder' => '0',
101
'name' => $a['iframe_name'],
102
'scrolling' => 'no',
103
'src' => $iframe_src,
104
+ 'sandbox' => 'allow-scripts allow-same-origin allow-presentation allow-popups',
105
'width' => empty( $a['width'] ) ? false : $a['width'],
106
'height' => empty( $a['height'] ) ? false : $a['height'],
107
);
164
165
foreach ( $atts as $key => $value ) {
166
167
+ if ( null === $value ) {
168
+ continue;
169
+ }
170
171
+ if( ! is_string( $value ) ) {
172
+ $atts[ $key ] = arve_error( sprintf( __( '<code>%s</code> is not a string. Only Strings should be passed to the shortcode function', ARVE_SLUG ), $key ) );
173
}
174
}
175
423
return $atts;
424
}
425
426
+ preg_match( '#-(captions|chapters|descriptions|metadata|subtitles)-([a-z]{2}).vtt$#i', $atts[ "track_{$n}" ], $matches );
427
428
if ( empty( $matches[1] ) ) {
429
$atts[ "track_{$n}" ] = new WP_Error( 'track', __( 'Track kind or language code could not detected from filename', ARVE_SLUG ) );
430
return $atts;
431
}
432
433
+ $label = empty( $atts[ "track_{$n}_label" ] ) ? arve_get_language_name_from_code( $matches[2] ) : $atts[ "track_{$n}_label" ];
434
435
$attr = array(
436
'default' => ( 1 === $n ) ? true : false,
437
+ 'kind' => $matches[1],
438
'label' => $label,
439
'src' => $atts[ "track_{$n}" ],
440
+ 'srclang' => $matches[2],
441
);
442
443
$atts['video_tracks_html'] .= sprintf( '<track%s>', arve_attr( $attr) );
public/functions-shortcodes.php CHANGED
@@ -1,73 +1,53 @@
1
<?php
2
3
- function arve_shortcode( $input_atts, $content = null ) {
4
-
5
- /**
6
- * Filters the default arve shortcode output.
7
- *
8
- * If the filtered output isn't empty, it will be used instead of generating
9
- * the default video template.
10
- *
11
- * @since 8.8.2
12
- *
13
- * @param string $html Empty variable to be replaced with shortcode markup.
14
- * @param array $atts Attributes of the shortcode.
15
- * @param string $content Video shortcode content.
16
- */
17
- $override = apply_filters( 'arve_shortcode_overwride', '', $input_atts, $content );
18
- if ( '' !== $override ) {
19
- return $override;
20
- }
21
-
22
- return arve_shortcode_arve( $input_atts, $content );
23
- }
24
-
25
function arve_shortcode_arve( $input_atts, $content = null, $arve_shortcode = true ) {
26
27
$errors = '';
28
$options = arve_get_options();
29
$properties = arve_get_host_properties();
30
$input_atts = (array) $input_atts;
31
32
$pairs = array(
33
- 'align' => $options['align'],
34
- 'arve_link' => arve_bool_to_shortcode_string( $options['promote_link'] ),
35
- 'aspect_ratio' => null,
36
- 'autoplay' => arve_bool_to_shortcode_string( $options['autoplay'] ),
37
- 'description' => null,
38
- 'duration' => null,
39
- 'disable_flash' => null,
40
- 'iframe_name' => null,
41
- 'maxwidth' => (string) $options['video_maxwidth'],
42
- 'mode' => $options['mode'],
43
- 'parameters' => null,
44
- 'src' => null, // Just a alias for url to make it simple
45
- 'thumbnail' => null,
46
- 'title' => null,
47
- 'upload_date' => null,
48
- // <video>
49
- 'm4v' => null,
50
- 'mp4' => null,
51
- 'ogv' => null,
52
- 'webm' => null,
53
- 'preload' => 'metadata',
54
- 'playsinline' => null,
55
- 'muted' => null,
56
- 'controls' => 'y',
57
- 'controlslist' => empty( $options['controlslist'] ) ? null : (string) $options['controlslist'],
58
- 'loop' => 'n',
59
- // TED only
60
- 'lang' => null,
61
- // Vimeo only
62
- 'start' => null,
63
- // Old Shortcodes / URL embeds
64
- 'id' => null,
65
- 'provider' => null,
66
- // deprecated, title should be used
67
- 'link_text' => null,
68
);
69
70
for ( $n = 1; $n <= ARVE_NUM_TRACKS; $n++ ) {
71
$pairs["track_{$n}"] = null;
72
$pairs["track_{$n}_label"] = null;
73
}
@@ -99,7 +79,7 @@ function arve_shortcode_arve( $input_atts, $content = null, $arve_shortcode = tr
99
$output = apply_filters( 'arve_output', $normal_embed, $html, $atts );
100
101
if ( empty( $output ) ) {
102
- return arve_error( 'The output is empty, this should not happen', ARVE_SLUG );
103
} elseif ( is_wp_error( $output ) ) {
104
return arve_error( $output->get_error_message() );
105
}
@@ -133,7 +113,7 @@ function arve_create_shortcodes() {
133
add_shortcode( $shortcode, $function );
134
}
135
136
- add_shortcode( 'arve', 'arve_shortcode' );
137
add_shortcode( 'arve-supported', 'arve_shortcode_arve_supported' );
138
add_shortcode( 'arve-supported-list', 'arve_shortcode_arve_supported_list' );
139
add_shortcode( 'arve-params', 'arve_shortcode_arve_params' );
1
<?php
2
3
function arve_shortcode_arve( $input_atts, $content = null, $arve_shortcode = true ) {
4
5
$errors = '';
6
$options = arve_get_options();
7
$properties = arve_get_host_properties();
8
$input_atts = (array) $input_atts;
9
+ $f_atts = $input_atts;
10
11
$pairs = array(
12
+ 'align' => $options['align'],
13
+ 'arve_link' => arve_bool_to_shortcode_string( $options['promote_link'] ),
14
+ 'aspect_ratio' => null,
15
+ 'autoplay' => arve_bool_to_shortcode_string( $options['autoplay'] ),
16
+ 'description' => null,
17
+ 'duration' => null,
18
+ 'disable_flash' => null,
19
+ 'iframe_name' => null,
20
+ 'maxwidth' => (string) $options['video_maxwidth'],
21
+ 'mode' => $options['mode'],
22
+ 'parameters' => null,
23
+ 'src' => null, # Just a alias for url to make it simple
24
+ 'thumbnail' => null,
25
+ 'title' => null,
26
+ 'upload_date' => null,
27
+ # <video>
28
+ 'm4v' => null,
29
+ 'mp4' => null,
30
+ 'ogv' => null,
31
+ 'webm' => null,
32
+ 'preload' => 'metadata',
33
+ 'playsinline' => null,
34
+ 'muted' => null,
35
+ 'controls' => 'y',
36
+ 'controlslist' => empty( $options['controlslist'] ) ? null : (string) $options['controlslist'],
37
+ 'loop' => 'n',
38
+ # TED only
39
+ 'lang' => null,
40
+ # Vimeo only
41
+ 'start' => null,
42
+ # Old Shortcodes / URL embeds
43
+ 'id' => null,
44
+ 'provider' => null,
45
+ # deprecated, title should be used
46
+ 'link_text' => null,
47
);
48
49
for ( $n = 1; $n <= ARVE_NUM_TRACKS; $n++ ) {
50
+
51
$pairs["track_{$n}"] = null;
52
$pairs["track_{$n}_label"] = null;
53
}
79
$output = apply_filters( 'arve_output', $normal_embed, $html, $atts );
80
81
if ( empty( $output ) ) {
82
+ return arve_error( 'The output is empty, this should not happen' );
83
} elseif ( is_wp_error( $output ) ) {
84
return arve_error( $output->get_error_message() );
85
}
113
add_shortcode( $shortcode, $function );
114
}
115
116
+ add_shortcode( 'arve', 'arve_shortcode_arve' );
117
add_shortcode( 'arve-supported', 'arve_shortcode_arve_supported' );
118
add_shortcode( 'arve-supported-list', 'arve_shortcode_arve_supported_list' );
119
add_shortcode( 'arve-params', 'arve_shortcode_arve_params' );
readme.txt CHANGED
@@ -156,40 +156,6 @@ This plugins embed is considered as 'custom player' by YouTube so you have to pa
156
* [ARVE Pro addon changelog](https://nextgenthemes.com/plugins/arve-pro/changelog/)
157
* [ARVE AMP addon changelog](https://nextgenthemes.com/plugins/arve-amp/)
158
159
- ### 2018-06-07 - 8.9.5 ###
160
-
161
- * Fixed: When pasting embed codes into the Shortcode UI dialog the `src=` will be extracted even when no quotes are used.
162
- * Improved: Use youtube-nocookie.com domain again it is GPRP/Privacy friendly. Note the name is confusing as it sets cookies, but only when the user plays the video rather then just when loading the iframe. So its not "no cookies". But you can mention this into your cookie notices when dealing with GPRP.
163
-
164
- ### 2018-06-02 - 8.9.4 ###
165
-
166
- * Improved: Try to make autoplay in Chrome possible again. See [New Chrome Autoplay behavior](https://developers.google.com/web/updates/2017/09/autoplay-policy-changes). At the point of writing its not clear if the new iframe attribute makes them just autoplay no matter what. Please report your experiences.
167
-
168
- ### 2018-04-29 - 8.9.3 ###
169
-
170
- * Improved: Make overwrite of shortcode possible. Used in new [Random Video Addon](https://nextgenthemes.com/plugins/arve-random-video/)
171
-
172
- ### 2018-04-18 - 8.9.2 ###
173
-
174
- * Fix possible "not a string" errors.
175
-
176
- ### 2018-04-12 - 8.9.1 ###
177
-
178
- * New: Option to always load assets. Needed when dealing with AJAX and other special cases.
179
-
180
- ### 2018-03-16 - 8.9.0 ###
181
-
182
- * Fixed/improved Ustream url detection. Make sure you remove `wmode=transparent` if present and include `html5ui=1` for ustream on the ARVE URL parameters settings tab.
183
-
184
- ### 2018-03-13 - 8.8.9 ###
185
-
186
- * Improved licensing debug code.
187
- * Added Vimeo PHP API class for upcoming versions and addons.
188
-
189
- ### 2018-03-13 - 8.8.8 ###
190
-
191
- * Added code to debug issues with license activations.
192
-
193
### 2018-03-05 - 8.8.7 ###
194
195
* Fixed a link on the plugins screen (Thanks Hans).
156
* [ARVE Pro addon changelog](https://nextgenthemes.com/plugins/arve-pro/changelog/)
157
* [ARVE AMP addon changelog](https://nextgenthemes.com/plugins/arve-amp/)
158
159
### 2018-03-05 - 8.8.7 ###
160
161
* Fixed a link on the plugins screen (Thanks Hans).
readme/html/01-top.html ADDED
@@ -0,0 +1,18 @@
1
+ <p>=== ARVE Advanced Responsive Video Embedder (YouTube, Vimeo, HTML5 Video ...) ===<br />Contributors: nico23<br />Donate link: <a href='https://www.paypal.me/nico23'>https://www.paypal.me/nico23</a><br />Tags: YouTube, Vimeo, lazyload, thumbnail, video, responsive, embeds, video-embedder, iframe, lightweight, simplicity, shortcodes<br />Requires at least: 4.4.0<br />Tested up to: 4.9.2<br />Requires PHP: 5.3<br />Stable tag: trunk<br />License: GPL-3.0<br />License URI: <a href='https://www.gnu.org/licenses/gpl-3.0.html'>https://www.gnu.org/licenses/gpl-3.0.html</a></p>
2
+
3
+ <p>Easy responsive video embeds via URLs or shortcodes. Perfect drop-in replacement for WordPress' default embeds. Best plugin for videos?</p>
4
+
5
+ <h2>Description</h2>
6
+
7
+ <p>The best WordPress plugin for videos? Supports close to everything you can imagine, still keeping it easy &amp; simple.</p>
8
+
9
+ <p>It is very likely the one and only plugin you will ever need to handle video embeds on your WordPress site(s). It goes far beyond just making your videos responsive!</p>
10
+
11
+ <p>[youtube <a href='https://www.youtube.com/watch?v=m6mkA6Zr1vY'>https://www.youtube.com/watch?v=m6mkA6Zr1vY</a> ]</p>
12
+
13
+ <p><strong>I could really use some positive reviews. It has been over 6 month without a positive review.</strong> The top level menu that was complained about a lot has been removed. I am working on a big update that will make ARVE even better with automatic detection of aspect ratios, better caching and lots of improved code.</p>
14
+
15
+ <ul>
16
+ <li><a href="https://github.com/nextgenthemes/arve/">GitHub Page</a></li>
17
+ <li><a href="https://nextgenthemes.com/plugins/arve/documentation/">Documentation</a></li>
18
+ </ul>
readme/html/10-description-features.html ADDED
@@ -0,0 +1,22 @@
1
+ <h3>Features</h3>
2
+
3
+ <ul>
4
+ <li>SEO friendly, lets you specify title, description, upload date to provide search engines with the schema.org data they like to have for better indexing.</li>
5
+ <li><abbr title="What You See Is What You Get">WYSIWYG</abbr> support. No more messing around with shortcodes and previewing.</li>
6
+ <li>New improved dialog for embedding videos.</li>
7
+ <li>Magically makes those url embedded videos responsive.</li>
8
+ <li>No 'lock in' if do not use shortcodes and use providers WordPress already supports.</li>
9
+ <li>Supports <a href="https://nextgenthemes.com/plugins/arve-pro/#support-table">almost every video host</a> that supports iframe embed codes.</li>
10
+ <li>Embeds via pasting the URL in its own line just like WordPress!</li>
11
+ <li>Optionally use very powerful Shortcodes instead.</li>
12
+ <li>Clean shortcode syntax <code>[arve url="<a href='https://youtu.be/yUCFRL43Zm4'>https://youtu.be/yUCFRL43Zm4</a>" align="left" parameters="start=30" ... /]</code>, no unnecessary shortcode wrapping.</li>
13
+ <li>One single button for all providers.</li>
14
+ <li>Responsive embeds with CSS, much better then with JavaScript.</li>
15
+ <li>Tries to be as unobtrusive as possible, sets 'hide brand' variables if supported, disables related videos at the end … to help keep people on your site rather then going to YouTube or keep watching videos.</li>
16
+ <li>Autostart (for providers that support it, mobile browsers prevent this)</li>
17
+ <li>Custom URL parameters to use all options providers offer.</li>
18
+ <li>Optional maximal width.</li>
19
+ <li>Video alignment.</li>
20
+ <li>Detailed description of options in-place.</li>
21
+ <li>Automatic detected and custom aspect ratio.</li>
22
+ </ul>
readme/html/12-description-supported-providers.html ADDED
@@ -0,0 +1,3 @@
1
+ <h3><a href="https://nextgenthemes.com/plugins/arve-pro/#support-table">Supported Providers</a></h3>
2
+
3
+ <p>allmyvideos.net, Alugha, Archive.org, Break, Brightcove, CollegeHumor, Comedy Central, Dailymotion, Facebook, Funny or Die, IGN, Kickstarter, LiveLeak, Livestream, kla.tv, Metacafe, Movieweb, MPORA, Myspace, Snotr, Spike, TED Talks, Twitch, Ustream, RuTube.ru, Veoh, Vevo, Viddler, vidspot.net, Vine, Vimeo, VK, Vzaar, Wistia, XTube, Yahoo, Youku, YouTube, YouTube Playlist, HTML5 video files directly, Google_drive, Dropbox, Ooyala<br /><a href="https://nextgenthemes.com/plugins/arve/documentation/#general-iframe-embedding">All providers with responsive iframe embed codes</a></p>
readme/html/13-description-reviews.html ADDED
@@ -0,0 +1,19 @@
1
+ <h3>Reviews</h3>
2
+
3
+ <p>If you find this plugin useful please <a href="https://wordpress.org/support/plugin/advanced-responsive-video-embedder/reviews/#new-post">give it a 5 star review</a>. It has 60000+ installs but only 100 reviews after over 5 years!</p>
4
+
5
+ <h4>&#9733; &#9733; &#9733; &#9733; &#9733; The best there is – I have tried many…</h4>
6
+
7
+ <p>Have downloaded and paid for at least 4 other video players that use lightbox. Each one has major flaws. This products works perfectly. If you use the OnSite Editor, then just copy the short code and it works great.</p>
8
+
9
+ <p>[arve url="<a href='https://www.youtube.com/watch?v=Z7g8-GxLTSc'>https://www.youtube.com/watch?v=Z7g8-GxLTSc</a>"]</p>
10
+
11
+ <p>For speed, the product uses the thumbnails from the server. So many of the other products do NOT do this and it slows the page rendering. This product should appear first on the WordPress search. Spent 3 days of my life wasted on other products, only to delete each one. <a href="https://wordpress.org/support/plugin/advanced-responsive-video-embedder/reviews/?filter=5">review by jodani</a></p>
12
+
13
+ <h4>&#9733; &#9733; &#9733; &#9733; &#9733; Finally something that works</h4>
14
+
15
+ <p>So I have a responsive theme but on pages with you tube videos it wasn't making the you tube videos fit in the mobile screen. I have spent the last hour trying many plugins and researching on google and finally I installed this. And I didn't have to update any settings or anything just refreshed a post with videos and all the sudden it is beautiful and responsive on my mobile phone!!!!!! THANK YOU!!!! <a href="https://wordpress.org/support/plugin/advanced-responsive-video-embedder/reviews/?filter=5">review by happyecho</a></p>
16
+
17
+ <h4>&#9733; &#9733; &#9733; &#9733; &#9733; Only Plug-in that worked</h4>
18
+
19
+ <p>I used a lot of high ranking plug-ins but they still broke my design. Downloaded this and worked right away. Thanks! <a href="https://wordpress.org/support/plugin/advanced-responsive-video-embedder/reviews/?filter=5">review by crconnell89</a></p>
readme/html/19-description-features-pro-intro.html ADDED
@@ -0,0 +1 @@
1
+ <p>This plugin is financed by the awesome buyers 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>
readme/html/20-description-features-pro.html ADDED
@@ -0,0 +1,22 @@
1
+ <h3><a href="https://nextgenthemes.com/plugins/arve-pro/">Pro Addon</a></h3>
2
+
3
+ <ul>
4
+ <li><strong>Disable links in embeds (killer feature!)</strong><br>
5
+ 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>
6
+ <li><strong>Lazyload mode</strong><br>
7
+ Make your site load <strong>faster</strong> by loading only a image instead of the entire video player on pageload. </li>
8
+ <li><strong>Lazyload -> Lightbox</strong><br>
9
+ Shows the Video in a Lightbox after clicking a preview image</li>
10
+ <li><strong>Link -> Lightbox</strong><br>
11
+ Use simple links as triggers for lightboxed videos</li>
12
+ <li>Automatic or custom thumbnail images</li>
13
+ <li>Automatic or custom titles on top of your thumbnails</li>
14
+ <li>'Expand on click' feature</li>
15
+ <li>3 hover styles</li>
16
+ <li>2 play icon styles to choose from</li>
17
+ <li>Responsive thumbnails using cutting edge HTML5 technology</li>
18
+ <li><strong>Feel good about yourself</strong><br>
19
+ for supporting my 5+ years work on this plugin. Tons of hours, weekends … always worked on improving it.</li>
20
+ <li>Show the latest video of a YouTube channel by using the channel URL (updated/cached hourly)</li>
21
+ <li><strong><a href="https://nextgenthemes.com/plugins/arve-pro/">Get the ARVE Pro Addon</a></strong></li>
22
+ </ul>
readme/html/25-description-features-amp.html ADDED
@@ -0,0 +1,12 @@
1
+ <h3>ARVE AMP Addon</h3>
2
+
3
+ <ul>
4
+ <li>Requires the gratis plugins <a href="https://wordpress.org/plugins/advanced-responsive-video-embedder/">ARVE</a> and <a href="https://wordpress.org/plugins/amp/">AMP</a></li>
5
+ <li>Makes ARVE ready for Accelerated Mobile Pages (AMP)</li>
6
+ <li>It will display videos embedded with ARVE on AMP pages correctly</li>
7
+ <li>No options, just works</li>
8
+ <li>It creates &lt;amp-brightcove&gt;, &lt;amp-youtube&gt;, &lt;amp-vimeo&gt;, &lt;amp-dailymotion&gt; elements</li>
9
+ <li>For all other video hosts supported by ARVE &lt;amp-iframe&gt; element is used</li>
10
+ <li>HTML5 video embeds are also supported with &lt;amp-video&gt;</li>
11
+ <li><strong><a href="https://nextgenthemes.com/plugins/arve-amp/">Check out the ARVE AMP Addon</a></strong></li>
12
+ </ul>
readme/html/35-description-thanks.html ADDED
@@ -0,0 +1,16 @@
1
+ <h3>Thanks</h3>
2
+
3
+ <ul>
4
+ <li>Of course all the customers who bought a addon.</li>
5
+ <li>Howard Iken of <a href="https://www.myfloridalaw.com">myfloridalaw.com</a> top donor, super nice to me even if I was rude and not deserved it!</li>
6
+ <li><a href="https://www.ilyagrishkov.com">Ilya Grishkov</a> for bringing up the idea and the first code to cache thumbnail urls.</li>
7
+ <li>Everybody giving constructive feedback, testing beta versions.</li>
8
+ <li>Everybody who donated back in the days when this was donation based.</li>
9
+ </ul>
10
+
11
+ <h3>Thanks to the developers of the software used in ARVE</h3>
12
+
13
+ <ul>
14
+ <li><a href="https://wordpress.org/plugins/shortcode-ui/">Shortcode UI</a>, optional Plugin, utilized by ARVE</li>
15
+ <li><a href="http://sorgalla.com/lity/">Lity Lightbox</a>, used in <a href="https://nextgenthemes.com/plugins/arve-pro/">Pro Addon</a></li>
16
+ </ul>
readme/html/50-installation-faq-screenshots.html ADDED
@@ -0,0 +1,43 @@
1
+ <h2>Installation</h2>
2
+
3
+ <p>Please refer to <a href="https://codex.wordpress.org/Managing_Plugins#Automatic_Plugin_Installation">codex.wordpress.org/Managing_Plugins#Automatic_Plugin_Installation</a>.</p>
4
+
5
+ <h2>Frequently Asked Questions</h2>
6
+
7
+ <h3>I have a problem ...</h3>
8
+
9
+ <p>Please report it on <a href="https://nextgenthemes.com/support/">nextgenthemes.com/support/</a> <strong>and please do not on the wordpess.org forums, thanks.</strong></p>
10
+
11
+ <h3>How to get the pro version working?</h3>
12
+
13
+ <ol>
14
+ <li>Go though the purchase process on <a href="https://nextgenthemes.com/arve-pro/">nextgenthemes.com/arve-pro/</a></li>
15
+ <li>Follow the 3 easy steps you get with the purchase receipt. It is basically downloading a arve-pro.zip and installing it through your WordPress Admin panel.</li>
16
+ </ol>
17
+
18
+ <h3>Why are my videos not filling their container?</h3>
19
+
20
+ <p>You are most likely use <code>align</code>, this plugin has a option for limiting video width with alignment. If you want your videos to fill their containers then you should not use the <code>align</code> shortcode attribute. This assumes that you left the 'Video Maximal Width' field on the options page empty.</p>
21
+
22
+ <h3>Can you add a video provider?</h3>
23
+
24
+ <p>I have no plans on implementing providers that include videos via JavaScript such as www.nicovideo.jp. I also will not implement video services from mainstream media news organizations. For others, feel free to ask.</p>
25
+
26
+ <h3>How do I embed videos from a unlisted providers / iframes?</h3>
27
+
28
+ <p>This plugin not changes anything to usual HTML <code>&lt;iframe&gt;</code> embed codes you have to use the shortcode creator dialog and paste iframe embed codes there or write them manually. They will become <code>[arve url="https://..."]</code>. The url represents what is the <code>src</code> in HTML embeds. It works as simple as this, if the [arve] shortcode does not detect a known URL structure then it will treat the URL as a <code>src</code> for the iframe.</p>
29
+
30
+ <h3>Why does my YouTube video not repeat/loop?</h3>
31
+
32
+ <p>This plugins embed is considered as 'custom player' by YouTube so you have to pass the video ID as playlist parameters to make the loop work.</p>
33
+
34
+ <p><code>[arve url="<a href='https://www.youtube.com/watch?v=pvRqvX413Ik'>https://www.youtube.com/watch?v=pvRqvX413Ik</a>" parameters="loop=1&amp;playlist=pvRqvX413Ik"]</code></p>
35
+
36
+ <h2>Screenshots</h2>
37
+
38
+ <ol>
39
+ <li>Shortcode dialog</li>
40
+ <li>Main Options</li>
41
+ <li>URL Parameter Options</li>
42
+ <li>Pro Options</li>
43
+ </ol>
shared/functions-shared.php CHANGED
@@ -3,19 +3,18 @@
3
function arve_get_options_defaults( $section ) {
4
5
$options['main'] = array(
6
- 'align_maxwidth' => 400,
7
- 'align' => 'none',
8
- 'always_enqueue_assets' => false,
9
- 'autoplay' => false,
10
- 'mode' => 'normal',
11
- 'promote_link' => false,
12
- 'video_maxwidth' => '',
13
- 'wp_image_cache_time' => 18000,
14
- 'last_settings_tab' => '',
15
- 'wp_video_override' => true,
16
- 'controlslist' => 'nodownload',
17
- 'vimeo_api_token' => '',
18
- 'iframe_flash' => true,
19
);
20
21
$properties = arve_get_host_properties();
@@ -91,7 +90,7 @@ function arve_get_settings_definitions() {
91
$current_mode_name = $options['mode'];
92
}
93
94
- $definitions = array(
95
array(
96
'hide_from_settings' => true,
97
'attr' => 'url',
@@ -358,35 +357,14 @@ function arve_get_settings_definitions() {
358
'https://nextgenthemes.com/plugins/arve-pro/#support-table'
359
),
360
),
361
- array(
362
- 'hide_from_sc' => true,
363
- 'attr' => 'always_enqueue_assets',
364
- 'label' => esc_html__( 'Assent loading', ARVE_SLUG ),
365
- 'type' => 'select',
366
- 'options' => array(
367
- 'no' => esc_html__( 'When ARVE video is detected', ARVE_SLUG ),
368
- 'yes' => esc_html__( 'Always', ARVE_SLUG ),
369
- ),
370
- 'description' => sprintf(
371
- __( 'Usually ARVE will loads its scripts and styles only on pages what need them. In case your content is loaded via AJAX or the styles are not loaded for another reason you may have to enable this option', ARVE_SLUG ),
372
- 'https://nextgenthemes.com/plugins/arve-pro/#support-table'
373
- ),
374
- ),
375
array(
376
'hide_from_sc' => true,
377
'attr' => 'vimeo_api_token',
378
'label' => esc_html__( 'Video API Token', ARVE_SLUG ),
379
'type' => 'text',
380
- 'description' => sprintf(
381
- __( 'Needed for <a href="%s">Random Video Addon</a>.', ARVE_SLUG ),
382
- 'https://nextgenthemes.local/plugins/arve-random-video/'
383
- ),
384
),
385
);
386
-
387
- $definitions = apply_filters( 'arve_settings_definitions', $definitions );
388
-
389
- return $definitions;
390
}
391
392
/**
@@ -807,21 +785,15 @@ function arve_get_host_properties() {
807
),
808
),
809
'ustream' => array(
810
- 'regex' => $s . 'ustream\.tv/(embed/)?(channel/)?(?<id>[0-9]+|recorded/[0-9]+(/highlight/[0-9]+)?)',
811
'embed_url' => 'http://www.ustream.tv/embed/%s',
812
'default_params' => 'html5ui',
813
'auto_thumbnail' => false,
814
'aspect_ratio' => '480:270',
815
'tests' => array(
816
- array(
817
- 'url' => 'http://www.ustream.tv/recorded/59999872?utm_campaign=ustre.am&utm_source=ustre.am/:43KHS&utm_medium=social&utm_content=20170405204127',
818
- 'id' => 'recorded/59999872'
819
- ),
820
- array(
821
- 'url' => 'http://www.ustream.tv/embed/17074538?wmode=transparent&v=3&autoplay=false',
822
- 'id' => '17074538'
823
- ),
824
),
825
),
826
'rutube' => array(
827
'name' => 'RuTube.ru',
@@ -831,7 +803,7 @@ function arve_get_host_properties() {
831
'tests' => array(
832
array(
833
'url' => 'https://rutube.ru/play/embed/9822149',
834
- 'id' => '9822149'
835
),
836
),
837
),
@@ -1008,7 +980,7 @@ function arve_get_host_properties() {
1008
'youtube' => array(
1009
'name' => 'YouTube',
1010
'regex' => $s . '(youtube\.com\/\S*((\/e(mbed))?\/|watch\?(\S*?&?v\=))|youtu\.be\/)(?<id>[a-zA-Z0-9_-]{6,11}((\?|&)list=[a-z0-9_\-]+)?)',
1011
- 'embed_url' => 'https://www.youtube-nocookie.com/embed/%s',
1012
'default_params' => 'iv_load_policy=3&modestbranding=1&rel=0&autohide=1&playsinline=1',
1013
'auto_thumbnail' => true,
1014
'auto_title' => true,
@@ -1204,7 +1176,7 @@ function arve_get_host_properties() {
1204
'youtubelist' => array(
1205
'regex' => $s . 'youtube\.com/(embed/videoseries|playlist)\?list=(?<id>[-a-z0-9_]+)',
1206
'name' => 'YouTube Playlist',
1207
- 'embed_url' => 'https://www.youtube-nocookie.com/embed/videoseries?list=%s',
1208
'default_params' => 'iv_load_policy=3&modestbranding=1&rel=0&autohide=1&playsinline=1',
1209
'auto_thumbnail' => true,
1210
'tests' => array(
3
function arve_get_options_defaults( $section ) {
4
5
$options['main'] = array(
6
+ 'align_maxwidth' => 400,
7
+ 'align' => 'none',
8
+ 'autoplay' => false,
9
+ 'mode' => 'normal',
10
+ 'promote_link' => false,
11
+ 'video_maxwidth' => '',
12
+ 'wp_image_cache_time' => 18000,
13
+ 'last_settings_tab' => '',
14
+ 'wp_video_override' => true,
15
+ 'controlslist' => 'nodownload',
16
+ 'vimeo_api_token' => '',
17
+ 'iframe_flash' => true,
18
);
19
20
$properties = arve_get_host_properties();
90
$current_mode_name = $options['mode'];
91
}
92
93
+ return array(
94
array(
95
'hide_from_settings' => true,
96
'attr' => 'url',
357
'https://nextgenthemes.com/plugins/arve-pro/#support-table'
358
),
359
),
360
array(
361
'hide_from_sc' => true,
362
'attr' => 'vimeo_api_token',
363
'label' => esc_html__( 'Video API Token', ARVE_SLUG ),
364
'type' => 'text',
365
+ 'description' => esc_html__( 'Leave blank for now.', ARVE_SLUG ),
366
),
367
);
368
}
369
370
/**
785
),
786
),
787
'ustream' => array(
788
+ 'regex' => $s . 'ustream\.tv/(channel/)?(?<id>[0-9]{8}|recorded/[0-9]{8}(/highlight/[0-9]+)?)',
789
'embed_url' => 'http://www.ustream.tv/embed/%s',
790
'default_params' => 'html5ui',
791
'auto_thumbnail' => false,
792
'aspect_ratio' => '480:270',
793
'tests' => array(
794
+ array( 'url' => 'http://www.ustream.tv/recorded/59999872?utm_campaign=ustre.am&utm_source=ustre.am/:43KHS&utm_medium=social&utm_content=20170405204127', 'id' => 'recorded/59999872' ),
795
),
796
+
797
),
798
'rutube' => array(
799
'name' => 'RuTube.ru',
803
'tests' => array(
804
array(
805
'url' => 'https://rutube.ru/play/embed/9822149',
806
+ 'id' => 9822149
807
),
808
),
809
),
980
'youtube' => array(
981
'name' => 'YouTube',
982
'regex' => $s . '(youtube\.com\/\S*((\/e(mbed))?\/|watch\?(\S*?&?v\=))|youtu\.be\/)(?<id>[a-zA-Z0-9_-]{6,11}((\?|&)list=[a-z0-9_\-]+)?)',
983
+ 'embed_url' => 'https://www.youtube.com/embed/%s',
984
'default_params' => 'iv_load_policy=3&modestbranding=1&rel=0&autohide=1&playsinline=1',
985
'auto_thumbnail' => true,
986
'auto_title' => true,
1176
'youtubelist' => array(
1177
'regex' => $s . 'youtube\.com/(embed/videoseries|playlist)\?list=(?<id>[-a-z0-9_]+)',
1178
'name' => 'YouTube Playlist',
1179
+ 'embed_url' => 'https://www.youtube.com/embed/videoseries?list=%s',
1180
'default_params' => 'iv_load_policy=3&modestbranding=1&rel=0&autohide=1&playsinline=1',
1181
'auto_thumbnail' => true,
1182
'tests' => array(
vendor/autoload.php DELETED
@@ -1,7 +0,0 @@
1
- <?php
2
-
3
- // autoload.php @generated by Composer
4
-
5
- require_once __DIR__ . '/composer/autoload_real.php';
6
-
7
- return ComposerAutoloaderInitfb499b858061dcbc3a5ecc8995cf88b8::getLoader();
vendor/composer/ClassLoader.php DELETED
@@ -1,445 +0,0 @@
1
- <?php
2
-
3
- /*
4
- * This file is part of Composer.
5
- *
6
- * (c) Nils Adermann <naderman@naderman.de>
7
- * Jordi Boggiano <j.boggiano@seld.be>
8
- *
9
- * For the full copyright and license information, please view the LICENSE
10
- * file that was distributed with this source code.
11
- */
12
-
13
- namespace Composer\Autoload;
14
-
15
- /**
16
- * ClassLoader implements a PSR-0, PSR-4 and classmap class loader.
17
- *
18
- * $loader = new \Composer\Autoload\ClassLoader();
19
- *
20
- * // register classes with namespaces
21
- * $loader->add('Symfony\Component', __DIR__.'/component');
22
- * $loader->add('Symfony', __DIR__.'/framework');
23
- *
24
- * // activate the autoloader
25
- * $loader->register();
26
- *
27
- * // to enable searching the include path (eg. for PEAR packages)
28
- * $loader->setUseIncludePath(true);
29
- *
30
- * In this example, if you try to use a class in the Symfony\Component
31
- * namespace or one of its children (Symfony\Component\Console for instance),
32
- * the autoloader will first look for the class under the component/
33
- * directory, and it will then fallback to the framework/ directory if not
34
- * found before giving up.
35
- *
36
- * This class is loosely based on the Symfony UniversalClassLoader.
37
- *
38
- * @author Fabien Potencier <fabien@symfony.com>
39
- * @author Jordi Boggiano <j.boggiano@seld.be>
40
- * @see http://www.php-fig.org/psr/psr-0/
41
- * @see http://www.php-fig.org/psr/psr-4/
42
- */
43
- class ClassLoader
44
- {
45
- // PSR-4
46
- private $prefixLengthsPsr4 = array();
47
- private $prefixDirsPsr4 = array();
48
- private $fallbackDirsPsr4 = array();
49
-
50
- // PSR-0
51
- private $prefixesPsr0 = array();
52
- private $fallbackDirsPsr0 = array();
53
-
54
- private $useIncludePath = false;
55
- private $classMap = array();
56
- private $classMapAuthoritative = false;
57
- private $missingClasses = array();
58
- private $apcuPrefix;
59
-
60
- public function getPrefixes()
61
- {
62
- if (!empty($this->prefixesPsr0)) {
63
- return call_user_func_array('array_merge', $this->prefixesPsr0);
64
- }
65
-
66
- return array();
67
- }
68
-
69
- public function getPrefixesPsr4()
70
- {
71
- return $this->prefixDirsPsr4;
72
- }
73
-
74
- public function getFallbackDirs()
75
- {
76
- return $this->fallbackDirsPsr0;
77
- }
78
-
79
- public function getFallbackDirsPsr4()
80
- {
81
- return $this->fallbackDirsPsr4;
82
- }
83
-
84
- public function getClassMap()
85
- {
86
- return $this->classMap;
87
- }
88
-
89
- /**
90
- * @param array $classMap Class to filename map
91
- */
92
- public function addClassMap(array $classMap)
93
- {
94
- if ($this->classMap) {
95
- $this->classMap = array_merge($this->classMap, $classMap);
96
- } else {
97
- $this->classMap = $classMap;
98
- }
99
- }
100
-
101
- /**
102
- * Registers a set of PSR-0 directories for a given prefix, either
103
- * appending or prepending to the ones previously set for this prefix.
104
- *
105
- * @param string $prefix The prefix
106
- * @param array|string $paths The PSR-0 root directories
107
- * @param bool $prepend Whether to prepend the directories
108
- */
109
- public function add($prefix, $paths, $prepend = false)
110
- {
111
- if (!$prefix) {
112
- if ($prepend) {
113
- $this->fallbackDirsPsr0 = array_merge(
114
- (array) $paths,
115
- $this->fallbackDirsPsr0
116
- );
117
- } else {
118
- $this->fallbackDirsPsr0 = array_merge(
119
- $this->fallbackDirsPsr0,
120
- (array) $paths
121
- );
122
- }
123
-
124
- return;
125
- }
126
-
127
- $first = $prefix[0];
128
- if (!isset($this->prefixesPsr0[$first][$prefix])) {
129
- $this->prefixesPsr0[$first][$prefix] = (array) $paths;
130
-
131
- return;
132
- }
133
- if ($prepend) {
134
- $this->prefixesPsr0[$first][$prefix] = array_merge(
135
- (array) $paths,
136
- $this->prefixesPsr0[$first][$prefix]
137
- );
138
- } else {
139
- $this->prefixesPsr0[$first][$prefix] = array_merge(
140
- $this->prefixesPsr0[$first][$prefix],
141
- (array) $paths
142
- );
143
- }
144
- }
145
-
146
- /**
147
- * Registers a set of PSR-4 directories for a given namespace, either
148
- * appending or prepending to the ones previously set for this namespace.
149
- *
150
- * @param string $prefix The prefix/namespace, with trailing '\\'
151
- * @param array|string $paths The PSR-4 base directories
152
- * @param bool $prepend Whether to prepend the directories
153
- *
154
- * @throws \InvalidArgumentException
155
- */
156
- public function addPsr4($prefix, $paths, $prepend = false)
157
- {
158
- if (!$prefix) {
159
- // Register directories for the root namespace.
160
- if ($prepend) {
161
- $this->fallbackDirsPsr4 = array_merge(
162
- (array) $paths,
163
- $this->fallbackDirsPsr4
164
- );
165
- } else {
166
- $this->fallbackDirsPsr4 = array_merge(
167
- $this->fallbackDirsPsr4,
168
- (array) $paths
169
- );
170
- }
171
- } elseif (!isset($this->prefixDirsPsr4[$prefix])) {
172
- // Register directories for a new namespace.
173
- $length = strlen($prefix);
174
- if ('\\' !== $prefix[$length - 1]) {
175
- throw new \InvalidArgumentException("A non-empty PSR-4 prefix must end with a namespace separator.");
176
- }
177
- $this->prefixLengthsPsr4[$prefix[0]][$prefix] = $length;
178
- $this->prefixDirsPsr4[$prefix] = (array) $paths;
179
- } elseif ($prepend) {
180
- // Prepend directories for an already registered namespace.
181
- $this->prefixDirsPsr4[$prefix] = array_merge(
182
- (array) $paths,
183
- $this->prefixDirsPsr4[$prefix]
184
- );
185
- } else {
186
- // Append directories for an already registered namespace.
187
- $this->prefixDirsPsr4[$prefix] = array_merge(
188
- $this->prefixDirsPsr4[$prefix],
189
- (array) $paths
190
- );
191
- }
192
- }
193
-
194
- /**
195
- * Registers a set of PSR-0 directories for a given prefix,
196
- * replacing any others previously set for this prefix.
197
- *
198
- * @param string $prefix The prefix
199
- * @param array|string $paths The PSR-0 base directories
200
- */
201
- public function set($prefix, $paths)
202
- {
203
- if (!$prefix) {
204
- $this->fallbackDirsPsr0 = (array) $paths;
205
- } else {
206
- $this->prefixesPsr0[$prefix[0]][$prefix] = (array) $paths;
207
- }
208
- }
209
-
210
- /**
211
- * Registers a set of PSR-4 directories for a given namespace,
212
- * replacing any others previously set for this namespace.
213
- *
214
- * @param string $prefix The prefix/namespace, with trailing '\\'
215
- * @param array|string $paths The PSR-4 base directories
216
- *
217
- * @throws \InvalidArgumentException
218
- */
219
- public function setPsr4($prefix, $paths)
220
- {
221
- if (!$prefix) {
222
- $this->fallbackDirsPsr4 = (array) $paths;
223
- } else {
224
- $length = strlen($prefix);
225
- if ('\\' !== $prefix[$length - 1]) {
226
- throw new \InvalidArgumentException("A non-empty PSR-4 prefix must end with a namespace separator.");
227
- }
228
- $this->prefixLengthsPsr4[$prefix[0]][$prefix] = $length;
229
- $this->prefixDirsPsr4[$prefix] = (array) $paths;
230
- }
231
- }
232
-
233
- /**
234
- * Turns on searching the include path for class files.
235
- *
236
- * @param bool $useIncludePath
237
- */
238
- public function setUseIncludePath($useIncludePath)
239
- {
240
- $this->useIncludePath = $useIncludePath;
241
- }
242
-
243
- /**
244
- * Can be used to check if the autoloader uses the include path to check
245
- * for classes.
246
- *
247
- * @return bool
248
- */
249
- public function getUseIncludePath()
250
- {
251
- return $this->useIncludePath;
252
- }
253
-
254
- /**
255
- * Turns off searching the prefix and fallback directories for classes
256
- * that have not been registered with the class map.
257
- *
258
- * @param bool $classMapAuthoritative
259
- */
260
- public function setClassMapAuthoritative($classMapAuthoritative)
261
- {
262
- $this->classMapAuthoritative = $classMapAuthoritative;
263
- }
264
-
265
- /**
266
- * Should class lookup fail if not found in the current class map?
267
- *
268
- * @return bool
269
- */
270
- public function isClassMapAuthoritative()
271
- {
272
- return $this->classMapAuthoritative;
273
- }
274
-
275
- /**
276
- * APCu prefix to use to cache found/not-found classes, if the extension is enabled.
277
- *
278
- * @param string|null $apcuPrefix
279
- */
280
- public function setApcuPrefix($apcuPrefix)
281
- {
282
- $this->apcuPrefix = function_exists('apcu_fetch') && ini_get('apc.enabled') ? $apcuPrefix : null;
283
- }
284
-
285
- /**
286
- * The APCu prefix in use, or null if APCu caching is not enabled.
287
- *
288
- * @return string|null
289
- */
290
- public function getApcuPrefix()
291
- {
292
- return $this->apcuPrefix;
293
- }
294
-
295
- /**
296
- * Registers this instance as an autoloader.
297
- *
298
- * @param bool $prepend Whether to prepend the autoloader or not
299
- */
300
- public function register($prepend = false)
301
- {
302
- spl_autoload_register(array($this, 'loadClass'), true, $prepend);
303
- }
304
-
305
- /**
306
- * Unregisters this instance as an autoloader.
307
- */
308
- public function unregister()
309
- {
310
- spl_autoload_unregister(array($this, 'loadClass'));
311
- }
312
-
313
- /**
314
- * Loads the given class or interface.
315
- *
316
- * @param string $class The name of the class
317
- * @return bool|null True if loaded, null otherwise
318
- */
319
- public function loadClass($class)
320
- {
321
- if ($file = $this->findFile($class)) {
322
- includeFile($file);
323
-
324
- return true;
325
- }
326
- }
327
-
328
- /**
329
- * Finds the path to the file where the class is defined.
330
- *
331
- * @param string $class The name of the class
332
- *
333
- * @return string|false The path if found, false otherwise
334
- */
335
- public function findFile($class)
336
- {
337
- // class map lookup
338
- if (isset($this->classMap[$class])) {
339
- return $this->classMap[$class];
340
- }
341
- if ($this->classMapAuthoritative || isset($this->missingClasses[$class])) {
342
- return false;
343
- }
344
- if (null !== $this->apcuPrefix) {
345
- $file = apcu_fetch($this->apcuPrefix.$class, $hit);
346
- if ($hit) {
347
- return $file;
348
- }
349
- }
350
-
351
- $file = $this->findFileWithExtension($class, '.php');
352
-
353
- // Search for Hack files if we are running on HHVM
354
- if (false === $file && defined('HHVM_VERSION')) {
355
- $file = $this->findFileWithExtension($class, '.hh');
356
- }
357
-
358
- if (null !== $this->apcuPrefix) {
359
- apcu_add($this->apcuPrefix.$class, $file);
360
- }
361
-
362
- if (false === $file) {
363
- // Remember that this class does not exist.
364
- $this->missingClasses[$class] = true;
365
- }
366
-
367
- return $file;
368
- }
369
-
370
- private function findFileWithExtension($class, $ext)
371
- {
372
- // PSR-4 lookup
373
- $logicalPathPsr4 = strtr($class, '\\', DIRECTORY_SEPARATOR) . $ext;
374
-
375
- $first = $class[0];
376
- if (isset($this->prefixLengthsPsr4[$first])) {
377
- $subPath = $class;
378
- while (false !== $lastPos = strrpos($subPath, '\\')) {
379
- $subPath = substr($subPath, 0, $lastPos);
380
- $search = $subPath.'\\';
381
- if (isset($this->prefixDirsPsr4[$search])) {
382
- $pathEnd = DIRECTORY_SEPARATOR . substr($logicalPathPsr4, $lastPos + 1);
383
- foreach ($this->prefixDirsPsr4[$search] as $dir) {
384
- if (file_exists($file = $dir . $pathEnd)) {
385
- return $file;
386
- }
387
- }
388
- }
389
- }
390
- }
391
-
392
- // PSR-4 fallback dirs
393
- foreach ($this->fallbackDirsPsr4 as $dir) {
394
- if (file_exists($file = $dir . DIRECTORY_SEPARATOR . $logicalPathPsr4)) {
395
- return $file;
396
- }
397
- }
398
-
399
- // PSR-0 lookup
400
- if (false !== $pos = strrpos($class, '\\')) {
401
- // namespaced class name
402
- $logicalPathPsr0 = substr($logicalPathPsr4, 0, $pos + 1)
403
- . strtr(substr($logicalPathPsr4, $pos + 1), '_', DIRECTORY_SEPARATOR);
404
- } else {
405
- // PEAR-like class name
406
- $logicalPathPsr0 = strtr($class, '_', DIRECTORY_SEPARATOR) . $ext;
407
- }
408
-
409
- if (isset($this->prefixesPsr0[$first])) {
410
- foreach ($this->prefixesPsr0[$first] as $prefix => $dirs) {
411
- if (0 === strpos($class, $prefix)) {
412
- foreach ($dirs as $dir) {
413
- if (file_exists($file = $dir . DIRECTORY_SEPARATOR . $logicalPathPsr0)) {
414
- return $file;
415
- }
416
- }
417
- }
418
- }
419
- }
420
-
421
- // PSR-0 fallback dirs
422
- foreach ($this->fallbackDirsPsr0 as $dir) {
423
- if (file_exists($file = $dir . DIRECTORY_SEPARATOR . $logicalPathPsr0)) {
424
- return $file;
425
- }
426
- }
427
-
428
- // PSR-0 include paths.
429
- if ($this->useIncludePath && $file = stream_resolve_include_path($logicalPathPsr0)) {
430
- return $file;
431
- }
432
-
433
- return false;
434
- }
435
- }
436
-
437
- /**
438
- * Scope isolated include.
439
- *
440
- * Prevents access to $this/self from included files.
441
- */
442
- function includeFile($file)
443
- {
444
- include $file;
445
- }
vendor/composer/LICENSE DELETED
@@ -1,21 +0,0 @@
1
-
2
- Copyright (c) Nils Adermann, Jordi Boggiano
3
-
4
- Permission is hereby granted, free of charge, to any person obtaining a copy
5
- of this software and associated documentation files (the "Software"), to deal
6
- in the Software without restriction, including without limitation the rights
7
- to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
8
- copies of the Software, and to permit persons to whom the Software is furnished
9
- to do so, subject to the following conditions:
10
-
11
- The above copyright notice and this permission notice shall be included in all
12
- copies or substantial portions of the Software.
13
-
14
- THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
15
- IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
16
- FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
17
- AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
18
- LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
19
- OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
20
- THE SOFTWARE.
21
-
vendor/composer/autoload_classmap.php DELETED
@@ -1,9 +0,0 @@
1
- <?php
2
-
3
- // autoload_classmap.php @generated by Composer
4
-
5
- $vendorDir = dirname(dirname(__FILE__));
6
- $baseDir = dirname($vendorDir);
7
-
8
- return array(
9
- );
vendor/composer/autoload_namespaces.php DELETED
@@ -1,9 +0,0 @@
1
- <?php
2
-
3
- // autoload_namespaces.php @generated by Composer
4
-
5
- $vendorDir = dirname(dirname(__FILE__));
6
- $baseDir = dirname($vendorDir);
7
-
8
- return array(
9
- );
vendor/composer/autoload_psr4.php DELETED
@@ -1,11 +0,0 @@
1
- <?php
2
-
3
- // autoload_psr4.php @generated by Composer
4
-
5
- $vendorDir = dirname(dirname(__FILE__));
6
- $baseDir = dirname($vendorDir);
7
-
8
- return array(
9
- 'Vimeo\\' => array($vendorDir . '/vimeo/vimeo-api/src/Vimeo'),
10
- 'Composer\\Installers\\' => array($vendorDir . '/composer/installers/src/Composer/Installers'),
11
- );
vendor/composer/autoload_real.php DELETED
@@ -1,52 +0,0 @@
1
- <?php
2
-
3
- // autoload_real.php @generated by Composer
4
-
5
- class ComposerAutoloaderInitfb499b858061dcbc3a5ecc8995cf88b8
6
- {
7
- private static $loader;
8
-
9
- public static function loadClassLoader($class)
10
- {
11
- if ('Composer\Autoload\ClassLoader' === $class) {
12
- require __DIR__ . '/ClassLoader.php';
13
- }
14
- }
15
-
16
- public static function getLoader()
17
- {
18
- if (null !== self::$loader) {
19
- return self::$loader;
20
- }
21
-
22
- spl_autoload_register(array('ComposerAutoloaderInitfb499b858061dcbc3a5ecc8995cf88b8', 'loadClassLoader'), true, true);
23
- self::$loader = $loader = new \Composer\Autoload\ClassLoader();
24
- spl_autoload_unregister(array('ComposerAutoloaderInitfb499b858061dcbc3a5ecc8995cf88b8', 'loadClassLoader'));
25
-
26
- $useStaticLoader = PHP_VERSION_ID >= 50600 && !defined('HHVM_VERSION') && (!function_exists('zend_loader_file_encoded') || !zend_loader_file_encoded());
27
- if ($useStaticLoader) {
28
- require_once __DIR__ . '/autoload_static.php';
29
-
30
- call_user_func(\Composer\Autoload\ComposerStaticInitfb499b858061dcbc3a5ecc8995cf88b8::getInitializer($loader));
31
- } else {
32
- $map = require __DIR__ . '/autoload_namespaces.php';
33
- foreach ($map as $namespace => $path) {
34
- $loader->set($namespace, $path);
35
- }
36
-
37
- $map = require __DIR__ . '/autoload_psr4.php';
38
- foreach ($map as $namespace => $path) {
39
- $loader->setPsr4($namespace, $path);
40
- }
41
-
42
- $classMap = require __DIR__ . '/autoload_classmap.php';
43
- if ($classMap) {
44
- $loader->addClassMap($classMap);
45
- }
46
- }
47
-
48
- $loader->register(true);
49
-
50
- return $loader;
51
- }
52
- }
vendor/composer/autoload_static.php DELETED
@@ -1,39 +0,0 @@
1
- <?php
2
-
3
- // autoload_static.php @generated by Composer
4
-
5
- namespace Composer\Autoload;
6
-
7
- class ComposerStaticInitfb499b858061dcbc3a5ecc8995cf88b8
8
- {
9
- public static $prefixLengthsPsr4 = array (
10
- 'V' =>
11
- array (
12
- 'Vimeo\\' => 6,
13
- ),
14
- 'C' =>
15
- array (
16
- 'Composer\\Installers\\' => 20,
17
- ),
18
- );
19
-
20
- public static $prefixDirsPsr4 = array (
21
- 'Vimeo\\' =>
22
- array (
23
- 0 => __DIR__ . '/..' . '/vimeo/vimeo-api/src/Vimeo',
24
- ),
25
- 'Composer\\Installers\\' =>
26
- array (
27
- 0 => __DIR__ . '/..' . '/composer/installers/src/Composer/Installers',
28
- ),
29
- );
30
-
31
- public static function getInitializer(ClassLoader $loader)
32
- {
33
- return \Closure::bind(function () use ($loader) {
34
- $loader->prefixLengthsPsr4 = ComposerStaticInitfb499b858061dcbc3a5ecc8995cf88b8::$prefixLengthsPsr4;
35
- $loader->prefixDirsPsr4 = ComposerStaticInitfb499b858061dcbc3a5ecc8995cf88b8::$prefixDirsPsr4;
36
-
37
- }, null, ClassLoader::class);
38
- }
39
- }
vendor/composer/installed.json DELETED
@@ -1,172 +0,0 @@
1
- [
2
- {
3
- "name": "composer/installers",
4
- "version": "v1.5.0",
5
- "version_normalized": "1.5.0.0",
6
- "source": {
7
- "type": "git",
8
- "url": "https://github.com/composer/installers.git",
9
- "reference": "049797d727261bf27f2690430d935067710049c2"
10
- },
11
- "dist": {
12
- "type": "zip",
13
- "url": "https://api.github.com/repos/composer/installers/zipball/049797d727261bf27f2690430d935067710049c2",
14
- "reference": "049797d727261bf27f2690430d935067710049c2",
15
- "shasum": ""
16
- },
17
- "require": {
18
- "composer-plugin-api": "^1.0"
19
- },
20
- "replace": {
21
- "roundcube/plugin-installer": "*",
22
- "shama/baton": "*"
23
- },
24
- "require-dev": {
25
- "composer/composer": "1.0.*@dev",
26
- "phpunit/phpunit": "^4.8.36"
27
- },
28
- "time": "2017-12-29T09:13:20+00:00",
29
- "type": "composer-plugin",
30
- "extra": {
31
- "class": "Composer\\Installers\\Plugin",
32
- "branch-alias": {
33
- "dev-master": "1.0-dev"
34
- }
35
- },
36
- "installation-source": "dist",
37
- "autoload": {
38
- "psr-4": {
39
- "Composer\\Installers\\": "src/Composer/Installers"
40
- }
41
- },
42
- "notification-url": "https://packagist.org/downloads/",
43
- "license": [
44
- "MIT"
45
- ],
46
- "authors": [
47
- {
48
- "name": "Kyle Robinson Young",
49
- "email": "kyle@dontkry.com",
50
- "homepage": "https://github.com/shama"
51
- }
52
- ],
53
- "description": "A multi-framework Composer library installer",
54
- "homepage": "https://composer.github.io/installers/",
55
- "keywords": [
56
- "Craft",
57
- "Dolibarr",
58
- "Eliasis",
59
- "Hurad",
60
- "ImageCMS",
61
- "Kanboard",
62
- "Lan Management System",
63
- "MODX Evo",
64
- "Mautic",
65
- "Maya",
66
- "OXID",
67
- "Plentymarkets",
68
- "Porto",
69
- "RadPHP",
70
- "SMF",
71
- "Thelia",
72
- "WolfCMS",
73
- "agl",
74
- "aimeos",
75
- "annotatecms",
76
- "attogram",
77
- "bitrix",
78
- "cakephp",
79
- "chef",
80
- "cockpit",
81
- "codeigniter",
82
- "concrete5",
83
- "croogo",
84
- "dokuwiki",
85
- "drupal",
86
- "eZ Platform",
87
- "elgg",
88
- "expressionengine",
89
- "fuelphp",
90
- "grav",
91
- "installer",
92
- "itop",
93
- "joomla",
94
- "kohana",
95
- "laravel",
96
- "lavalite",
97
- "lithium",
98
- "magento",
99
- "majima",
100
- "mako",
101
- "mediawiki",
102
- "modulework",
103
- "modx",
104
- "moodle",
105
- "osclass",
106
- "phpbb",
107
- "piwik",
108
- "ppi",
109
- "puppet",
110
- "pxcms",
111
- "reindex",
112
- "roundcube",
113
- "shopware",
114
- "silverstripe",
115
- "sydes",
116
- "symfony",
117
- "typo3",
118
- "wordpress",
119
- "yawik",
120
- "zend",
121
- "zikula"
122
- ]
123
- },
124
- {
125
- "name": "vimeo/vimeo-api",
126
- "version": "2.0.0",
127
- "version_normalized": "2.0.0.0",
128
- "source": {
129
- "type": "git",
130
- "url": "https://github.com/vimeo/vimeo.php.git",
131
- "reference": "9fbf705cf4885282183744c04f3fb10793768911"
132
- },
133
- "dist": {
134
- "type": "zip",
135
- "url": "https://api.github.com/repos/vimeo/vimeo.php/zipball/9fbf705cf4885282183744c04f3fb10793768911",
136
- "reference": "9fbf705cf4885282183744c04f3fb10793768911",
137
- "shasum": ""
138
- },
139
- "require": {
140
- "ext-curl": "*",
141
- "ext-json": "*",
142
- "php": ">=5.3.0"
143
- },
144
- "require-dev": {
145
- "phpunit/phpunit": "^4.8"
146
- },
147
- "time": "2018-02-06T19:06:58+00:00",
148
- "type": "library",
149
- "installation-source": "dist",
150
- "autoload": {
151
- "psr-4": {
152
- "Vimeo\\": "src/Vimeo"
153
- }
154
- },
155
- "notification-url": "https://packagist.org/downloads/",
156
- "license": [
157
- "Apache-2.0"
158
- ],
159
- "authors": [
160
- {
161
- "name": "Vimeo",
162
- "homepage": "http://vimeo.com"
163
- }
164
- ],
165
- "description": "Official PHP library for the Vimeo API.",
166
- "homepage": "https://github.com/vimeo/vimeo.php",
167
- "keywords": [
168
- "video",
169
- "vimeo"
170
- ]
171
- }
172
- ]
vendor/composer/installers/CHANGELOG.md DELETED
@@ -1,86 +0,0 @@
1
- # Change Log
2
-
3
- ## [Unreleased]
4
-
5
- ## v1.5.0 - 2017-12-29
6
- ### Added
7
- * Added WordPress dropin support.
8
- * Added new types supported for Eliasis.
9
- * Added support for Phoenix CMS.
10
- * Added MODX installer.
11
- * Added Majima instaler.
12
- * Added SiteDirect installer.
13
- * Added support optional prefix in OctoberCMS installers.
14
- * Added PHP 7.2 support.
15
-
16
- ### Changed
17
- * Changed remove packages, see [#348](https://github.com/composer/installers/pull/348).
18
-
19
- ### Fixed
20
- * Fixed code style, removed unused imports.
21
-
22
- ## v1.4.0 - 2017-08-09
23
- ### Added
24
- * Installer for eZ Platform.
25
- * Installer for UserFrosting.
26
- * Installer for Osclass.
27
- * Installer for Lan Management System.
28
-
29
- ### Changed
30
- * Added vendor name to package path for Lavalite.
31
-
32
- ## v1.3.0 - 2017-04-24
33
- ### Added
34
- * Kanboard plugins installer.
35
- * Porto-SAP installer.
36
- * Add `core` to concrete5 installer.
37
- * Support Moodle "search" plugin type.
38
- * SyDES installer.
39
- * iTop installer.
40
- * Lavalite installer.
41
- * Module type for Eliasis.
42
- * Vgmcp installer.
43
- * OntoWiki installer.
44
- * The requirements for contributing (CONTRIBUTING.md).
45
-
46
- ## v1.2.0 - 2016-08-13
47
- ### Added
48
- * Installer for Attogram.
49
- * Installer for Cockpit.
50
- * Installer for Plentymarkets.
51
- * Installer for ReIndex.
52
- * Installer for Vanilla.
53
- * Installer for YAWIK.
54
- * Added missing environments for new Shopware (5.2) Plugin System.
55
-
56
- ## v1.1.0 - 2016-07-05
57
- ### Added
58
- * Installer for ReIndex.
59
- * Installer for RadPHP.
60
- * Installer for Decibel.
61
- * Installer for Phifty.
62
- * Installer for ExpressionEngine.
63
-
64
- ### Changed
65
- * New paths for new Bitrix CMS. Old paths is deprecated.
66
-
67
- ### Deprecated
68
- * Old paths in Bitrix CMS Installer is deprecated.
69
-
70
- ## v1.0.25 - 2016-04-13
71
- ### Removed
72
- * Revert TYPO3 installer deletion.
73
-
74
- ## v1.0.24 - 2016-04-05
75
- ### Added
76
- * Installer for ImageCMS.
77
- * Installer for Mautic.
78
- * New types in the Kirby installer: `kirby-plugin` and `kirby-field`.
79
- * New types in the Drupal installer: `custom-theme` and `custom-module`.
80
-
81
- ### Changed
82
- * Switch to PSR-4.
83
- * Update Bitrix Installer: configuration for setting custom path to directory with kernel.
84
-
85
- ### Removed
86
- * Remove TYPO3 Extension installers.
vendor/composer/installers/CONTRIBUTING.md DELETED
@@ -1,24 +0,0 @@
1
- # Contributing
2
-
3
- If you would like to help, please take a look at the list of
4
- [issues](https://github.com/composer/installers/issues).
5
-
6
- ## Pull requests
7
-
8
- * [Fork and clone](https://help.github.com/articles/fork-a-repo).
9
- * Run the command `php composer.phar install` to install the dependencies.
10
- This will also install the dev dependencies. See [Composer](https://getcomposer.org/doc/03-cli.md#install).
11
- * Use the command `phpunit` to run the tests. See [PHPUnit](http://phpunit.de).
12
- * Create a branch, commit, push and send us a
13
- [pull request](https://help.github.com/articles/using-pull-requests).
14
-
15
- To ensure a consistent code base, you should make sure the code follows the
16
- coding standards [PSR-1](http://www.php-fig.org/psr/psr-1/) and
17
- [PSR-2](http://www.php-fig.org/psr/psr-2/).
18
-
19
- ### Create a new Installer
20
-
21
- * Create class extends `Composer\Installers\BaseInstaller` with your Installer.
22
- * Create unit tests as a separate class or as part of a `Composer\Installers\Test\InstallerTest`.
23
- * Add information about your Installer in `README.md` in section "Current Supported Package Types".
24
- * Run the tests.
vendor/composer/installers/LICENSE DELETED
@@ -1,19 +0,0 @@
1
- Copyright (c) 2012 Kyle Robinson Young
2
-
3
- Permission is hereby granted, free of charge, to any person obtaining a copy
4
- of this software and associated documentation files (the "Software"), to deal
5
- in the Software without restriction, including without limitation the rights
6
- to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
7
- copies of the Software, and to permit persons to whom the Software is furnished
8
- to do so, subject to the following conditions:
9
-
10
- The above copyright notice and this permission notice shall be included in all
11
- copies or substantial portions of the Software.
12
-
13
- THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
14
- IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
15
- FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
16
- AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
17
- LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
18
- OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
19
- THE SOFTWARE.
vendor/composer/installers/README.md DELETED
@@ -1,221 +0,0 @@
1
- # A Multi-Framework [Composer](http://getcomposer.org) Library Installer
2
-
3
- [![Build Status](http://img.shields.io/travis/composer/installers.svg)](http://travis-ci.org/composer/installers)
4
-
5
- This is for PHP package authors to require in their `composer.json`. It will
6
- install their package to the correct location based on the specified package
7
- type.
8
-
9
- The goal of Installers is to be a simple package type to install path map.
10
- Users can also customize the install path per package and package authors can
11
- modify the package name upon installing.
12
-
13
- Installers isn't intended on replacing all custom installers. If your
14
- package requires special installation handling then by all means, create a
15
- custom installer to handle it.
16
-
17
- **Natively Supported Frameworks**:
18
-
19
- The following frameworks natively work with Composer and will be
20
- installed to the default `vendor` directory. `composer/installers`
21
- is not needed to install packages with these frameworks:
22
-
23
- * Aura
24
- * Symfony2
25
- * Yii
26
- * Yii2
27
-
28
- ## Current Supported Package Types
29
-
30
- > Stable types are marked as **bold**, this means that installation paths
31
- > for those type will not be changed. Any adjustment for those types would
32
- > require creation of brand new type that will cover required changes.
33
-
34
- | Framework | Types
35
- | --------- | -----
36
- | Aimeos | `aimeos-extension`
37
- | Asgard | `asgard-module`<br>`asgard-theme`
38
- | Attogram | `attogram-module`
39
- | AGL | `agl-module`
40
- | Bonefish | `bonefish-package`
41
- | AnnotateCms | `annotatecms-module`<br>`annotatecms-component`<br>`annotatecms-service`
42
- | Bitrix | `bitrix-module` (deprecated) <br>`bitrix-component` (deprecated) <br>`bitrix-theme` (deprecated) <br><br> `bitrix-d7-module` <br> `bitrix-d7-component` <br> `bitrix-d7-template`
43
- | CakePHP 2+ | **`cakephp-plugin`**
44
- | Chef | `chef-cookbook`<br>`chef-role`
45
- | CCFramework | `ccframework-ship`<br>`ccframework-theme`
46
- | Cockpit | `cockpit-module`
47
- | CodeIgniter | `codeigniter-library`<br>`codeigniter-third-party`<br>`codeigniter-module`
48
- | concrete5 | `concrete5-core`<br>`concrete5-package`<br>`concrete5-theme`<br>`concrete5-block`<br>`concrete5-update`
49
- | Craft | `craft-plugin`
50
- | Croogo | `croogo-plugin`<br>`croogo-theme`
51
- | Decibel | `decibel-app`
52
- | DokuWiki | `dokuwiki-plugin`<br>`dokuwiki-template`
53
- | Dolibarr | `dolibarr-module`
54
- | Drupal | <b>`drupal-core`<br>`drupal-module`<br>`drupal-theme`</b><br>`drupal-library`<br>`drupal-profile`<br>`drupal-drush`
55
- | Elgg | `elgg-plugin`
56
- | Eliasis | `eliasis-component`<br>`eliasis-module`<br>`eliasis-plugin`<br>`eliasis-template`
57
- | ExpressionEngine 3 | `ee3-addon`<br>`ee3-theme`
58
- | eZ Platform | `ezplatform-assets`<br>`ezplatform-meta-assets`
59
- | FuelPHP v1.x | `fuel-module`<br>`fuel-package`<br/>`fuel-theme`
60
- | FuelPHP v2.x | `fuelphp-component`
61
- | Grav | `grav-plugin`<br>`grav-theme`
62
- | Hurad | `hurad-plugin`<br>`hurad-theme`
63
- | ImageCMS | `imagecms-template`<br>`imagecms-module`<br>`imagecms-library`
64
- | iTop | `itop-extension`
65
- | Joomla | `joomla-component`<br>`joomla-module`<br>`joomla-template`<br>`joomla-plugin`<br>`joomla-library`
66
- | Kanboard | `kanboard-plugin`
67
- | Kirby | **`kirby-plugin`**<br>`kirby-field`<br>`kirby-tag`
68
- | KodiCMS | `kodicms-plugin`<br>`kodicms-media`
69
- | Kohana | **`kohana-module`**
70
- | Lan Management System | `lms-plugin`<br>`lms-template`<br>`lms-document-template`<br>`lms-userpanel-module`
71
- | Laravel | `laravel-library`
72
- | Lavalite | `lavalite-theme`<br>`lavalite-package`
73
- | Lithium | **`lithium-library`<br>`lithium-source`**
74
- | Magento | `magento-library`<br>`magento-skin`<br>`magento-theme`
75
- | majima | `majima-plugin`
76
- | Mako | `mako-package`
77
- | Mautic | `mautic-plugin`<br>`mautic-theme`
78
- | Maya | `maya-module`
79
- | MODX | `modx-extra`
80
- | MODX Evo | `modxevo-snippet`<br>`modxevo-plugin`<br>`modxevo-module`<br>`modxevo-template`<br>`modxevo-lib`
81
- | MediaWiki | `mediawiki-extension`
82
- | October | **`october-module`<br>`october-plugin`<br>`october-theme`**
83
- | OntoWiki | `ontowiki-extension`<br>`ontowiki-theme`<br>`ontowiki-translation`
84
- | OXID | `oxid-module`<br>`oxid-theme`<br>`oxid-out`
85
- | Osclass | `osclass-plugin`<br>`osclass-theme`<br>`osclass-language`
86
- | MODULEWork | `modulework-module`
87
- | Moodle | `moodle-*` (Please [check source](https://raw.githubusercontent.com/composer/installers/master/src/Composer/Installers/MoodleInstaller.php) for all supported types)
88
- | Piwik | `piwik-plugin`
89
- | phpBB | `phpbb-extension`<br>`phpbb-style`<br>`phpbb-language`
90
- | Pimcore | `pimcore-plugin`
91
- | Plentymarkets | `plentymarkets-plugin`
92
- | PPI | **`ppi-module`**
93
- | Puppet | `puppet-module`
94
- | Porto | `porto-container`
95
- | RadPHP | `radphp-bundle`
96
- | REDAXO | `redaxo-addon`
97
- | ReIndex | **`reindex-plugin`** <br> **`reindex-theme`**
98
- | Roundcube | `roundcube-plugin`
99
- | shopware | `shopware-backend-plugin`<br/>`shopware-core-plugin`<br/>`shopware-frontend-plugin`<br/>`shopware-theme`<br/>`shopware-plugin`<br/>`shopware-frontend-theme`
100
- | SilverStripe | `silverstripe-module`<br>`silverstripe-theme`
101
- | SiteDirect | `sitedirect-module`<br>`sitedirect-plugin`
102
- | SMF | `smf-module`<br>`smf-theme`
103
- | SyDES | `sydes-module`<br>`sydes-theme`
104
- | symfony1 | **`symfony1-plugin`**
105
- | Tusk | `tusk-task`<br>`tusk-command`<br>`tusk-asset`
106
- | TYPO3 Flow | `typo3-flow-package`<br>`typo3-flow-framework`<br>`typo3-flow-plugin`<br>`typo3-flow-site`<br>`typo3-flow-boilerplate`<br>`typo3-flow-build`
107
- | TYPO3 CMS | `typo3-cms-extension` (Deprecated in this package, use the [TYPO3 CMS Installers](https://packagist.org/packages/typo3/cms-composer-installers) instead)
108
- | UserFrosting | `userfrosting-sprinkle`
109
- | Vanilla | `vanilla-plugin`<br>`vanilla-theme`
110
- | Vgmcp | `vgmcp-bundle`<br>`vgmcp-theme`
111
- | Wolf CMS | `wolfcms-plugin`
112
- | WordPress | <b>`wordpress-plugin`<br>`wordpress-theme`</b><br>`wordpress-muplugin`<br>`wordpress-dropin`
113
- | YAWIK | `yawik-module`
114
- | Zend | `zend-library`<br>`zend-extra`<br>`zend-module`
115
- | Zikula | `zikula-module`<br>`zikula-theme`
116
- | Prestashop | `prestashop-module`<br>`prestashop-theme`
117
- | Phifty | `phifty-bundle`<br>`phifty-framework`<br>`phifty-library`
118
-
119
- ## Example `composer.json` File
120
-
121
- This is an example for a CakePHP plugin. The only important parts to set in your
122
- composer.json file are `"type": "cakephp-plugin"` which describes what your
123
- package is and `"require": { "composer/installers": "~1.0" }` which tells composer
124
- to load the custom installers.
125
-
126
- ```json
127
- {
128
- "name": "you/ftp",
129
- "type": "cakephp-plugin",
130
- "require": {
131
- "composer/installers": "~1.0"
132
- }
133
- }
134
- ```
135
-
136
- This would install your package to the `Plugin/Ftp/` folder of a CakePHP app
137
- when a user runs `php composer.phar install`.
138
-
139
- So submit your packages to [packagist.org](http://packagist.org)!
140
-
141
- ## Custom Install Paths
142
-
143
- If you are consuming a package that uses the `composer/installers` you can
144
- override the install path with the following extra in your `composer.json`:
145
-
146
- ```json
147
- {
148
- "extra": {
149
- "installer-paths": {
150
- "your/custom/path/{$name}/": ["shama/ftp", "vendor/package"]
151
- }
152
- }
153
- }
154
- ```
155
-
156
- A package type can have a custom installation path with a `type:` prefix.
157
-
158
- ``` json
159
- {
160
- "extra": {
161
- "installer-paths": {
162
- "your/custom/path/{$name}/": ["type:wordpress-plugin"]
163
- }
164
- }
165
- }
166
- ```
167
-
168
- You can also have the same vendor packages with a custom installation path by
169
- using the `vendor:` prefix.
170
-
171
- ``` json
172
- {
173
- "extra": {
174
- "installer-paths": {
175
- "your/custom/path/{$name}/": ["vendor:my_organization"]
176
- }
177
- }
178
- }
179
- ```
180
-
181
- These would use your custom path for each of the listed packages. The available
182
- variables to use in your paths are: `{$name}`, `{$vendor}`, `{$type}`.
183
-
184
- ## Custom Install Names
185
-
186
- If you're a package author and need your package to be named differently when
187
- installed consider using the `installer-name` extra.
188
-
189
- For example you have a package named `shama/cakephp-ftp` with the type
190
- `cakephp-plugin`. Installing with `composer/installers` would install to the
191
- path `Plugin/CakephpFtp`. Due to the strict naming conventions, you as a
192
- package author actually need the package to be named and installed to
193
- `Plugin/Ftp`. Using the following config within your **package** `composer.json`
194
- will allow this:
195
-
196
- ```json
197
- {
198
- "name": "shama/cakephp-ftp",
199
- "type": "cakephp-plugin",
200
- "extra": {
201
- "installer-name": "Ftp"
202
- }
203
- }
204
- ```
205
-
206
- Please note the name entered into `installer-name` will be the final and will
207
- not be inflected.
208
-
209
- ## Should we allow dynamic package types or paths? No.
210
-