FV Flowplayer Video Player - Version 7.2.1.727

Version Description

Download this release

Release Info

Developer FolioVision
Plugin Icon 128x128 FV Flowplayer Video Player
Version 7.2.1.727
Comparing to
See all releases

Code changes from version 7.1.15.727 to 7.2.1.727

Files changed (274) hide show
  1. controller/backend.php +1 -18
  2. controller/editor.php +1 -1
  3. controller/settings.php +22 -0
  4. css/bigplay.svg +50 -1
  5. css/controls.svg +172 -1
  6. css/flowplayer.css +1 -0
  7. css/s3-browser.css +456 -0
  8. css/shortcode-editor.css +4 -0
  9. flowplayer.php +16 -11
  10. flowplayer/fv-flowplayer.min.js +2 -1
  11. includes/aws/Aws/Api/AbstractModel.php +67 -0
  12. includes/aws/Aws/Api/ApiProvider.php +241 -0
  13. includes/aws/Aws/Api/DateTimeResult.php +41 -0
  14. includes/aws/Aws/Api/DocModel.php +128 -0
  15. includes/aws/Aws/Api/ErrorParser/JsonParserTrait.php +26 -0
  16. includes/aws/Aws/Api/ErrorParser/JsonRpcErrorParser.php +31 -0
  17. includes/aws/Aws/Api/ErrorParser/RestJsonErrorParser.php +35 -0
  18. includes/aws/Aws/Api/ErrorParser/XmlErrorParser.php +82 -0
  19. includes/aws/Aws/Api/ListShape.php +35 -0
  20. includes/aws/Aws/Api/MapShape.php +54 -0
  21. includes/aws/Aws/Api/Operation.php +97 -0
  22. includes/aws/Aws/Api/Parser/AbstractParser.php +35 -0
  23. includes/aws/Aws/Api/Parser/AbstractRestParser.php +154 -0
  24. includes/aws/Aws/Api/Parser/Crc32ValidatingParser.php +47 -0
  25. includes/aws/Aws/Api/Parser/Exception/ParserException.php +4 -0
  26. includes/aws/Aws/Api/Parser/JsonParser.php +58 -0
  27. includes/aws/Aws/Api/Parser/JsonRpcParser.php +40 -0
  28. includes/aws/Aws/Api/Parser/PayloadParserTrait.php +51 -0
  29. includes/aws/Aws/Api/Parser/QueryParser.php +52 -0
  30. includes/aws/Aws/Api/Parser/RestJsonParser.php +39 -0
  31. includes/aws/Aws/Api/Parser/RestXmlParser.php +36 -0
  32. includes/aws/Aws/Api/Parser/XmlParser.php +134 -0
  33. includes/aws/Aws/Api/Serializer/Ec2ParamBuilder.php +40 -0
  34. includes/aws/Aws/Api/Serializer/JsonBody.php +90 -0
  35. includes/aws/Aws/Api/Serializer/JsonRpcSerializer.php +69 -0
  36. includes/aws/Aws/Api/Serializer/QueryParamBuilder.php +154 -0
  37. includes/aws/Aws/Api/Serializer/QuerySerializer.php +69 -0
  38. includes/aws/Aws/Api/Serializer/RestJsonSerializer.php +39 -0
  39. includes/aws/Aws/Api/Serializer/RestSerializer.php +193 -0
  40. includes/aws/Aws/Api/Serializer/RestXmlSerializer.php +34 -0
  41. includes/aws/Aws/Api/Serializer/XmlBody.php +217 -0
  42. includes/aws/Aws/Api/Service.php +404 -0
  43. includes/aws/Aws/Api/Shape.php +69 -0
  44. includes/aws/Aws/Api/ShapeMap.php +66 -0
  45. includes/aws/Aws/Api/StructureShape.php +79 -0
  46. includes/aws/Aws/Api/TimestampShape.php +48 -0
  47. includes/aws/Aws/Api/Validator.php +236 -0
  48. includes/aws/Aws/ApiGateway/ApiGatewayClient.php +166 -0
  49. includes/aws/Aws/ApiGateway/Exception/ApiGatewayException.php +9 -0
  50. includes/aws/Aws/AwsClient.php +351 -0
  51. includes/aws/Aws/AwsClientInterface.php +169 -0
  52. includes/aws/Aws/CacheInterface.php +34 -0
  53. includes/aws/Aws/ClientResolver.php +548 -0
  54. includes/aws/Aws/CloudFront/CloudFrontClient.php +142 -0
  55. includes/aws/Aws/CloudFront/CookieSigner.php +65 -0
  56. includes/aws/Aws/CloudFront/Exception/CloudFrontException.php +9 -0
  57. includes/aws/Aws/CloudFront/Signer.php +108 -0
  58. includes/aws/Aws/CloudFront/UrlSigner.php +119 -0
  59. includes/aws/Aws/Command.php +57 -0
  60. includes/aws/Aws/CommandInterface.php +42 -0
  61. includes/aws/Aws/CommandPool.php +144 -0
  62. includes/aws/Aws/ConfigService/ConfigServiceClient.php +56 -0
  63. includes/aws/Aws/ConfigService/Exception/ConfigServiceException.php +9 -0
  64. includes/aws/Aws/Credentials/CredentialProvider.php +324 -0
  65. includes/aws/Aws/Credentials/Credentials.php +91 -0
  66. includes/aws/Aws/Credentials/CredentialsInterface.php +52 -0
  67. includes/aws/Aws/Credentials/InstanceProfileProvider.php +102 -0
  68. includes/aws/Aws/DataPipeline/DataPipelineClient.php +48 -0
  69. includes/aws/Aws/DataPipeline/Exception/DataPipelineException.php +9 -0
  70. includes/aws/Aws/DirectConnect/DirectConnectClient.php +48 -0
  71. includes/aws/Aws/DirectConnect/Exception/DirectConnectException.php +9 -0
  72. includes/aws/Aws/DirectoryService/DirectoryServiceClient.php +54 -0
  73. includes/aws/Aws/DirectoryService/Exception/DirectoryServiceException.php +9 -0
  74. includes/aws/Aws/DoctrineCacheAdapter.php +55 -0
  75. includes/aws/Aws/Endpoint/EndpointProvider.php +96 -0
  76. includes/aws/Aws/Endpoint/PatternEndpointProvider.php +51 -0
  77. includes/aws/Aws/Exception/AwsException.php +160 -0
  78. includes/aws/Aws/Exception/CouldNotCreateChecksumException.php +19 -0
  79. includes/aws/Aws/Exception/CredentialsException.php +4 -0
  80. includes/aws/Aws/Exception/MultipartUploadException.php +57 -0
  81. includes/aws/Aws/Exception/UnresolvedApiException.php +4 -0
  82. includes/aws/Aws/Exception/UnresolvedEndpointException.php +4 -0
  83. includes/aws/Aws/Exception/UnresolvedSignatureException.php +4 -0
  84. includes/aws/Aws/Firehose/Exception/FirehoseException.php +9 -0
  85. includes/aws/Aws/Firehose/FirehoseClient.php +24 -0
  86. includes/aws/Aws/Glacier/Exception/GlacierException.php +9 -0
  87. includes/aws/Aws/Glacier/GlacierClient.php +247 -0
  88. includes/aws/Aws/Glacier/MultipartUploader.php +281 -0
  89. includes/aws/Aws/Glacier/TreeHash.php +118 -0
  90. includes/aws/Aws/Handler/GuzzleV5/GuzzleHandler.php +181 -0
  91. includes/aws/Aws/Handler/GuzzleV5/GuzzleStream.php +24 -0
  92. includes/aws/Aws/Handler/GuzzleV5/PsrStream.php +34 -0
  93. includes/aws/Aws/Handler/GuzzleV6/GuzzleHandler.php +59 -0
  94. includes/aws/Aws/HandlerList.php +424 -0
  95. includes/aws/Aws/HasDataTrait.php +60 -0
  96. includes/aws/Aws/HashInterface.php +27 -0
  97. includes/aws/Aws/HashingStream.php +60 -0
  98. includes/aws/Aws/History.php +152 -0
  99. includes/aws/Aws/Iam/Exception/IamException.php +9 -0
  100. includes/aws/Aws/Iam/IamClient.php +236 -0
  101. includes/aws/Aws/Inspector/Exception/InspectorException.php +9 -0
  102. includes/aws/Aws/Inspector/InspectorClient.php +82 -0
  103. includes/aws/Aws/Iot/Exception/IotException.php +9 -0
  104. includes/aws/Aws/Iot/IotClient.php +88 -0
  105. includes/aws/Aws/IotDataPlane/Exception/IotDataPlaneException.php +9 -0
  106. includes/aws/Aws/IotDataPlane/IotDataPlaneClient.php +18 -0
  107. includes/aws/Aws/JsonCompiler.php +25 -0
  108. includes/aws/Aws/LruArrayCache.php +74 -0
  109. includes/aws/Aws/Middleware.php +308 -0
  110. includes/aws/Aws/MockHandler.php +131 -0
  111. includes/aws/Aws/Multipart/AbstractUploadManager.php +297 -0
  112. includes/aws/Aws/Multipart/AbstractUploader.php +129 -0
  113. includes/aws/Aws/Multipart/UploadState.php +145 -0
  114. includes/aws/Aws/PhpHash.php +81 -0
  115. includes/aws/Aws/Result.php +56 -0
  116. includes/aws/Aws/ResultInterface.php +54 -0
  117. includes/aws/Aws/ResultPaginator.php +179 -0
  118. includes/aws/Aws/RetryMiddleware.php +125 -0
  119. includes/aws/Aws/S3/AmbiguousSuccessParser.php +60 -0
  120. includes/aws/Aws/S3/ApplyChecksumMiddleware.php +74 -0
  121. includes/aws/Aws/S3/BatchDelete.php +237 -0
  122. includes/aws/Aws/S3/BucketEndpointMiddleware.php +75 -0
  123. includes/aws/Aws/S3/Exception/DeleteMultipleObjectsException.php +62 -0
  124. includes/aws/Aws/S3/Exception/PermanentRedirectException.php +4 -0
  125. includes/aws/Aws/S3/Exception/S3Exception.php +9 -0
  126. includes/aws/Aws/S3/GetBucketLocationParser.php +42 -0
  127. includes/aws/Aws/S3/MultipartCopy.php +167 -0
  128. includes/aws/Aws/S3/MultipartUploader.php +144 -0
  129. includes/aws/Aws/S3/MultipartUploadingTrait.php +126 -0
  130. includes/aws/Aws/S3/PermanentRedirectMiddleware.php +62 -0
  131. includes/aws/Aws/S3/PostObject.php +159 -0
  132. includes/aws/Aws/S3/PutObjectUrlMiddleware.php +57 -0
  133. includes/aws/Aws/S3/RetryableMalformedResponseParser.php +48 -0
  134. includes/aws/Aws/S3/S3Client.php +855 -0
  135. includes/aws/Aws/S3/S3UriParser.php +110 -0
  136. includes/aws/Aws/S3/SSECMiddleware.php +75 -0
  137. includes/aws/Aws/S3/StreamWrapper.php +949 -0
  138. includes/aws/Aws/S3/Transfer.php +379 -0
  139. includes/aws/Aws/Sdk.php +149 -0
  140. includes/aws/Aws/Signature/AnonymousSignature.php +26 -0
  141. includes/aws/Aws/Signature/S3SignatureV4.php +45 -0
  142. includes/aws/Aws/Signature/SignatureInterface.php +44 -0
  143. includes/aws/Aws/Signature/SignatureProvider.php +123 -0
  144. includes/aws/Aws/Signature/SignatureV4.php +368 -0
  145. includes/aws/Aws/StorageGateway/Exception/StorageGatewayException.php +9 -0
  146. includes/aws/Aws/StorageGateway/StorageGatewayClient.php +116 -0
  147. includes/aws/Aws/Support/Exception/SupportException.php +9 -0
  148. includes/aws/Aws/Support/SupportClient.php +38 -0
  149. includes/aws/Aws/TraceMiddleware.php +302 -0
  150. includes/aws/Aws/Waiter.php +266 -0
  151. includes/aws/Aws/WorkSpaces/Exception/WorkSpacesException.php +9 -0
  152. includes/aws/Aws/WorkSpaces/WorkSpacesClient.php +24 -0
  153. includes/aws/Aws/WrappedHttpHandler.php +171 -0
  154. includes/aws/Aws/data/cloudfront/2015-09-17/api-2.json.php +3 -0
  155. includes/aws/Aws/data/cloudfront/2015-09-17/examples-1.json.php +3 -0
  156. includes/aws/Aws/data/cloudfront/2015-09-17/paginators-1.json.php +3 -0
  157. includes/aws/Aws/data/cloudfront/2015-09-17/waiters-2.json.php +3 -0
  158. includes/aws/Aws/data/config/2014-11-12/api-2.json.php +3 -0
  159. includes/aws/Aws/data/config/2014-11-12/paginators-1.json.php +3 -0
  160. includes/aws/Aws/data/endpoints.json.php +3 -0
  161. includes/aws/Aws/data/manifest.json.php +3 -0
  162. includes/aws/Aws/data/s3/2006-03-01/api-2.json.php +3 -0
  163. includes/aws/Aws/data/s3/2006-03-01/paginators-1.json.php +3 -0
  164. includes/aws/Aws/data/s3/2006-03-01/waiters-2.json.php +3 -0
  165. includes/aws/Aws/functions.php +351 -0
  166. includes/aws/CHANGELOG.md +1387 -0
  167. includes/aws/GuzzleHttp/Client.php +397 -0
  168. includes/aws/GuzzleHttp/ClientInterface.php +84 -0
  169. includes/aws/GuzzleHttp/Cookie/CookieJar.php +277 -0
  170. includes/aws/GuzzleHttp/Cookie/CookieJarInterface.php +84 -0
  171. includes/aws/GuzzleHttp/Cookie/FileCookieJar.php +87 -0
  172. includes/aws/GuzzleHttp/Cookie/SessionCookieJar.php +72 -0
  173. includes/aws/GuzzleHttp/Cookie/SetCookie.php +404 -0
  174. includes/aws/GuzzleHttp/Exception/BadResponseException.php +7 -0
  175. includes/aws/GuzzleHttp/Exception/ClientException.php +7 -0
  176. includes/aws/GuzzleHttp/Exception/ConnectException.php +37 -0
  177. includes/aws/GuzzleHttp/Exception/GuzzleException.php +4 -0
  178. includes/aws/GuzzleHttp/Exception/RequestException.php +188 -0
  179. includes/aws/GuzzleHttp/Exception/SeekException.php +27 -0
  180. includes/aws/GuzzleHttp/Exception/ServerException.php +7 -0
  181. includes/aws/GuzzleHttp/Exception/TooManyRedirectsException.php +4 -0
  182. includes/aws/GuzzleHttp/Exception/TransferException.php +4 -0
  183. includes/aws/GuzzleHttp/Handler/CurlFactory.php +531 -0
  184. includes/aws/GuzzleHttp/Handler/CurlFactoryInterface.php +27 -0
  185. includes/aws/GuzzleHttp/Handler/CurlHandler.php +45 -0
  186. includes/aws/GuzzleHttp/Handler/CurlMultiHandler.php +197 -0
  187. includes/aws/GuzzleHttp/Handler/EasyHandle.php +87 -0
  188. includes/aws/GuzzleHttp/Handler/MockHandler.php +176 -0
  189. includes/aws/GuzzleHttp/Handler/Proxy.php +55 -0
  190. includes/aws/GuzzleHttp/Handler/StreamHandler.php +458 -0
  191. includes/aws/GuzzleHttp/HandlerStack.php +273 -0
  192. includes/aws/GuzzleHttp/MessageFormatter.php +182 -0
  193. includes/aws/GuzzleHttp/Middleware.php +249 -0
  194. includes/aws/GuzzleHttp/Pool.php +123 -0
  195. includes/aws/GuzzleHttp/PrepareBodyMiddleware.php +112 -0
  196. includes/aws/GuzzleHttp/Promise/AggregateException.php +16 -0
  197. includes/aws/GuzzleHttp/Promise/CancellationException.php +9 -0
  198. includes/aws/GuzzleHttp/Promise/EachPromise.php +207 -0
  199. includes/aws/GuzzleHttp/Promise/FulfilledPromise.php +80 -0
  200. includes/aws/GuzzleHttp/Promise/Promise.php +268 -0
  201. includes/aws/GuzzleHttp/Promise/PromiseInterface.php +93 -0
  202. includes/aws/GuzzleHttp/Promise/PromisorInterface.php +15 -0
  203. includes/aws/GuzzleHttp/Promise/RejectedPromise.php +84 -0
  204. includes/aws/GuzzleHttp/Promise/RejectionException.php +47 -0
  205. includes/aws/GuzzleHttp/Promise/TaskQueue.php +79 -0
  206. includes/aws/GuzzleHttp/Promise/functions.php +495 -0
  207. includes/aws/GuzzleHttp/Promise/functions_include.php +6 -0
  208. includes/aws/GuzzleHttp/Psr7/AppendStream.php +233 -0
  209. includes/aws/GuzzleHttp/Psr7/BufferStream.php +137 -0
  210. includes/aws/GuzzleHttp/Psr7/CachingStream.php +135 -0
  211. includes/aws/GuzzleHttp/Psr7/DroppingStream.php +42 -0
  212. includes/aws/GuzzleHttp/Psr7/FnStream.php +149 -0
  213. includes/aws/GuzzleHttp/Psr7/InflateStream.php +29 -0
  214. includes/aws/GuzzleHttp/Psr7/LazyOpenStream.php +39 -0
  215. includes/aws/GuzzleHttp/Psr7/LimitStream.php +155 -0
  216. includes/aws/GuzzleHttp/Psr7/MessageTrait.php +158 -0
  217. includes/aws/GuzzleHttp/Psr7/MultipartStream.php +153 -0
  218. includes/aws/GuzzleHttp/Psr7/NoSeekStream.php +22 -0
  219. includes/aws/GuzzleHttp/Psr7/PumpStream.php +165 -0
  220. includes/aws/GuzzleHttp/Psr7/Request.php +149 -0
  221. includes/aws/GuzzleHttp/Psr7/Response.php +130 -0
  222. includes/aws/GuzzleHttp/Psr7/Stream.php +245 -0
  223. includes/aws/GuzzleHttp/Psr7/StreamDecoratorTrait.php +149 -0
  224. includes/aws/GuzzleHttp/Psr7/StreamWrapper.php +121 -0
  225. includes/aws/GuzzleHttp/Psr7/Uri.php +599 -0
  226. includes/aws/GuzzleHttp/Psr7/functions.php +802 -0
  227. includes/aws/GuzzleHttp/Psr7/functions_include.php +6 -0
  228. includes/aws/GuzzleHttp/RedirectMiddleware.php +231 -0
  229. includes/aws/GuzzleHttp/RequestOptions.php +244 -0
  230. includes/aws/GuzzleHttp/RetryMiddleware.php +111 -0
  231. includes/aws/GuzzleHttp/TransferStats.php +126 -0
  232. includes/aws/GuzzleHttp/UriTemplate.php +241 -0
  233. includes/aws/GuzzleHttp/functions.php +284 -0
  234. includes/aws/GuzzleHttp/functions_include.php +6 -0
  235. includes/aws/JmesPath/AstRuntime.php +47 -0
  236. includes/aws/JmesPath/CompilerRuntime.php +83 -0
  237. includes/aws/JmesPath/DebugRuntime.php +109 -0
  238. includes/aws/JmesPath/Env.php +66 -0
  239. includes/aws/JmesPath/FnDispatcher.php +391 -0
  240. includes/aws/JmesPath/JmesPath.php +15 -0
  241. includes/aws/JmesPath/Lexer.php +436 -0
  242. includes/aws/JmesPath/Parser.php +491 -0
  243. includes/aws/JmesPath/SyntaxErrorException.php +36 -0
  244. includes/aws/JmesPath/TreeCompiler.php +400 -0
  245. includes/aws/JmesPath/TreeInterpreter.php +226 -0
  246. includes/aws/JmesPath/Utils.php +211 -0
  247. includes/aws/LICENSE.md +141 -0
  248. includes/aws/NOTICE.md +64 -0
  249. includes/aws/Psr/Http/Message/MessageInterface.php +187 -0
  250. includes/aws/Psr/Http/Message/RequestInterface.php +129 -0
  251. includes/aws/Psr/Http/Message/ResponseInterface.php +68 -0
  252. includes/aws/Psr/Http/Message/ServerRequestInterface.php +261 -0
  253. includes/aws/Psr/Http/Message/StreamInterface.php +158 -0
  254. includes/aws/Psr/Http/Message/UploadedFileInterface.php +123 -0
  255. includes/aws/Psr/Http/Message/UriInterface.php +323 -0
  256. includes/aws/README.md +158 -0
  257. includes/aws/aws-autoloader.php +305 -0
  258. includes/aws/index.php +0 -0
  259. js/fancybox.js +14 -1
  260. js/s3-browser.js +589 -0
  261. js/shortcode-editor.js +27 -23
  262. models/custom-videos.php +1 -0
  263. models/email-subscription.php +1 -1
  264. models/flowplayer.php +17 -9
  265. models/lightbox.php +1 -1
  266. models/media-browser-s3.php +298 -0
  267. models/media-browser.php +27 -0
  268. readme.txt +1900 -1890
  269. test/integration/backend/s3BrowserAjaxTest.php +62 -0
  270. test/integration/backend/settingsTest.php +5 -9
  271. test/integration/backend/testSettingsScreen.html +39 -19
  272. test/integration/fv-player-unittest-case.php +1 -1
  273. view/admin.php +10 -15
  274. view/wizard.php +3 -1
controller/backend.php CHANGED
@@ -608,23 +608,6 @@ function fv_wp_flowplayer_admin_notice() {
608
</div>';
609
}
610
611
- global $FV_Player_Pro;
612
- if( $FV_Player_Pro && version_compare($FV_Player_Pro->version,'0.5') == -1 ) :
613
- ?>
614
- <div class="error">
615
- <p><?php _e( 'FV Player: Your pro extension is installed, but it\'s not compatible with FV Player 6! Make sure you upgrade your FV Player Pro to version 0.5 or above.', 'my-text-domain' ); ?></p>
616
- </div>
617
- <?php
618
- endif;
619
-
620
- /*if( isset($_GET['page']) && $_GET['page'] == 'backend.php' ) {
621
- $options = get_option( 'fvwpflowplayer' );
622
- if( $options['key'] == 'false' ) {
623
- echo '<div class="updated"><p>';
624
- printf(__('Brand new version of Flowplayer for HTML5. <a href="http://foliovision.com/wordpress/plugins/fv-wordpress-flowplayer/buy">Licenses half price</a> in May.' ) );
625
- echo "</p></div>";
626
- }
627
- }*/
628
}
629
630
@@ -803,7 +786,7 @@ function fv_player_pro_version_check() {
803
if( isset($FV_Player_Pro) && !empty($FV_Player_Pro->version) && version_compare( str_replace('.beta','',$FV_Player_Pro->version),'7.1.14.727' ) == -1 ) :
804
?>
805
<div class="error">
806
- <p><?php _e( 'FV Player: Please upgrade to FV Player Pro version 7.1.14.727 or above!', 'fv-player-pro' ); ?></p>
807
</div>
808
<?php
809
endif;
608
</div>';
609
}
610
611
}
612
613
786
if( isset($FV_Player_Pro) && !empty($FV_Player_Pro->version) && version_compare( str_replace('.beta','',$FV_Player_Pro->version),'7.1.14.727' ) == -1 ) :
787
?>
788
<div class="error">
789
+ <p><?php _e( 'FV Player: Please upgrade to FV Player Pro version 7.1.14.727 or above!', 'fv-wordpress-flowplayer' ); ?></p>
790
</div>
791
<?php
792
endif;
controller/editor.php CHANGED
@@ -254,4 +254,4 @@ function fv_wp_flowplayer_save_to_media_library( $image_url, $post_id ) {
254
255
return $attach_id;
256
257
- }
254
255
return $attach_id;
256
257
+ }
controller/settings.php CHANGED
@@ -350,3 +350,25 @@ function flowplayer_admin_footer_wp_js_restore() {
350
</script>
351
<?php
352
}
350
</script>
351
<?php
352
}
353
+
354
+
355
+
356
+ function fv_player_get_aws_regions($translation_domain = 'fv-wordpress-flowplayer') {
357
+
358
+ return array(
359
+ 'us-east-1' => __('US East (N. Virginia)', $translation_domain),
360
+ 'us-east-2' => __('US East (Ohio)', $translation_domain),
361
+ 'us-west-1' => __('US West (N. California)', $translation_domain),
362
+ 'us-west-2' => __('US West (Oregon)', $translation_domain),
363
+ 'ca-central-1' => __('Canada (Central)', $translation_domain),
364
+ 'ap-south-1' => __('Asia Pacific (Mumbai)', $translation_domain),
365
+ 'ap-northeast-2' => __('Asia Pacific (Seoul)', $translation_domain),
366
+ 'ap-southeast-1' => __('Asia Pacific (Singapore)', $translation_domain),
367
+ 'ap-southeast-2' => __('Asia Pacific (Sydney)', $translation_domain),
368
+ 'ap-northeast-1' => __('Asia Pacific (Tokyo)', $translation_domain),
369
+ 'eu-central-1' => __('EU (Frankfurt)', $translation_domain),
370
+ 'eu-west-1' => __('EU (Ireland)', $translation_domain),
371
+ 'eu-west-2' => __('EU (London)', $translation_domain),
372
+ 'sa-east-1' => __('South America (S&atilde;o Paulo)', $translation_domain),
373
+ );
374
+ }
css/bigplay.svg CHANGED
@@ -1 +1,50 @@
1
- <?xml version="1.0" standalone="no"?>
1
+ <?xml version="1.0" standalone="no"?>
2
+ <!-- Generator: Adobe Fireworks CS6, Export SVG Extension by Aaron Beall (http://fireworks.abeall.com) . Version: 0.6.1 -->
3
+ <!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd">
4
+ <svg id="bigplay-gradient.fw-Page%201" viewBox="0 0 100 200" style="background-color:#ffffff00" version="1.1"
5
+ xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" xml:space="preserve"
6
+ x="0px" y="0px" width="100px" height="200px"
7
+ >
8
+ <defs>
9
+ <radialGradient id="gradient1" cx="50%" cy="50%" r="50%">
10
+ <stop stop-color="#222222" stop-opacity="0" offset="70%"/>
11
+ <stop stop-color="#222222" stop-opacity="0.0118" offset="70.202%"/>
12
+ <stop stop-color="#333333" stop-opacity="1" offset="85%"/>
13
+ <stop stop-color="#333333" stop-opacity="0" offset="100%"/>
14
+ </radialGradient>
15
+ <radialGradient id="gradient2" cx="50%" cy="50%" r="50%">
16
+ <stop stop-color="#bbbbbb" stop-opacity="0" offset="70%"/>
17
+ <stop stop-color="#bbbbbb" stop-opacity="0.0118" offset="70.202%"/>
18
+ <stop stop-color="#bbbbbb" stop-opacity="1" offset="85%"/>
19
+ <stop stop-color="#bbbbbb" stop-opacity="0" offset="100%"/>
20
+ </radialGradient>
21
+ <filter id="filter1" x="-100%" y="-100%" width="300%" height="300%">
22
+ <!-- Glow -->
23
+ <feColorMatrix result="out" in="SourceGraphic" type="matrix" values="0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.251 0"/>
24
+ <feMorphology result="out" in="out" operator="dilate" radius="3"/>
25
+ <feGaussianBlur result="out" in="out" stdDeviation="1.5"/>
26
+ <feBlend in="SourceGraphic" in2="out" mode="normal" result="Glow1"/>
27
+ </filter>
28
+ <filter id="filter2" x="-100%" y="-100%" width="300%" height="300%">
29
+ <!-- Glow -->
30
+ <feColorMatrix result="out" in="SourceGraphic" type="matrix" values="0 0 0 0.8667 0 0 0 0 0.8667 0 0 0 0 0.8667 0 0 0 0 0.251 0"/>
31
+ <feMorphology result="out" in="out" operator="dilate" radius="3"/>
32
+ <feGaussianBlur result="out" in="out" stdDeviation="1.5"/>
33
+ <feBlend in="SourceGraphic" in2="out" mode="normal" result="Glow2"/>
34
+ </filter>
35
+ </defs>
36
+ <g id="Background">
37
+ </g>
38
+ <g id="dark%20shadow">
39
+ <path d="M 22 50 C 22 34.5358 34.5358 22 50 22 C 65.4642 22 78 34.5358 78 50 C 78 65.4642 65.4642 78 50 78 C 34.5358 78 22 65.4642 22 50 ZM 5 50 C 5 74.8531 25.1469 95 50 95 C 74.8531 95 95 74.8531 95 50 C 95 25.1469 74.8531 5 50 5 C 25.1469 5 5 25.1469 5 50 Z" fill="url(#gradient1)"/>
40
+ <path d="M 22 150 C 22 134.5358 34.5358 122 50 122 C 65.4642 122 78 134.5358 78 150 C 78 165.4642 65.4642 178 50 178 C 34.5358 178 22 165.4642 22 150 ZM 5 150 C 5 174.8531 25.1469 195 50 195 C 74.8531 195 95 174.8531 95 150 C 95 125.1469 74.8531 105 50 105 C 25.1469 105 5 125.1469 5 150 Z" fill="url(#gradient2)"/>
41
+ </g>
42
+ <g id="dark">
43
+ <path id="Polygon" filter="url(#filter1)" d="M 72.5 49.5 L 38.75 68.9856 L 38.75 30.0144 L 72.5 49.5 Z" fill="#ffffff"/>
44
+ <path id="Ellipse" d="M 13 50.5 C 13 29.7891 29.7891 13 50.5 13 C 71.2109 13 88 29.7891 88 50.5 C 88 71.2109 71.2109 88 50.5 88 C 29.7891 88 13 71.2109 13 50.5 Z" stroke="#ffffff" stroke-width="5" fill="none"/>
45
+ </g>
46
+ <g id="light">
47
+ <path id="Polygon2" filter="url(#filter2)" d="M 72.5 149.5 L 38.75 168.9856 L 38.75 130.0144 L 72.5 149.5 Z" fill="#ffffff"/>
48
+ <path id="Ellipse2" d="M 13 150.5 C 13 129.7891 29.7891 113 50.5 113 C 71.2109 113 88 129.7891 88 150.5 C 88 171.211 71.2109 188 50.5 188 C 29.7891 188 13 171.211 13 150.5 Z" stroke="#ffffff" stroke-width="5" fill="none"/>
49
+ </g>
50
+ </svg>
css/controls.svg CHANGED
@@ -1 +1,172 @@
1
- <?xml version="1.0" standalone="no"?>
1
+ <?xml version="1.0" standalone="no"?>
2
+ <!-- Generator: Adobe Fireworks CS6, Export SVG Extension by Aaron Beall (http://fireworks.abeall.com) . Version: 0.6.1 -->
3
+ <!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd">
4
+ <svg id="controls.fw-Page%201" viewBox="0 0 144 32" style="background-color:#ffffff00" version="1.1"
5
+ xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" xml:space="preserve"
6
+ x="0px" y="0px" width="144px" height="32px"
7
+ >
8
+ <defs>
9
+ <radialGradient id="gradient1" cx="50%" cy="50%" r="50%">
10
+ <stop stop-color="#ffffff" stop-opacity="1" offset="0%"/>
11
+ <stop stop-color="#f2f2f2" stop-opacity="0.2" offset="100%"/>
12
+ </radialGradient>
13
+ <linearGradient id="gradient2" x1="50%" y1="-7.8652%" x2="50%" y2="249.6629%">
14
+ <stop stop-color="#ffffff" stop-opacity="1" offset="0%"/>
15
+ <stop stop-color="#c8c8c8" stop-opacity="1" offset="100%"/>
16
+ </linearGradient>
17
+ <linearGradient id="gradient3" x1="50%" y1="0%" x2="50%" y2="238.75%">
18
+ <stop stop-color="#ffffff" stop-opacity="1" offset="0%"/>
19
+ <stop stop-color="#c8c8c8" stop-opacity="1" offset="100%"/>
20
+ </linearGradient>
21
+ <linearGradient id="gradient4" x1="50%" y1="0%" x2="50%" y2="100%">
22
+ <stop stop-color="#ffffff" stop-opacity="1" offset="0%"/>
23
+ <stop stop-color="#c8c8c8" stop-opacity="1" offset="100%"/>
24
+ </linearGradient>
25
+ <linearGradient id="gradient5" x1="50%" y1="-33.3333%" x2="50%" y2="152.0833%">
26
+ <stop stop-color="#ffffff" stop-opacity="1" offset="0%"/>
27
+ <stop stop-color="#c8c8c8" stop-opacity="1" offset="100%"/>
28
+ </linearGradient>
29
+ <linearGradient id="gradient6" x1="50%" y1="0%" x2="50%" y2="100%">
30
+ <stop stop-color="#ffffff" stop-opacity="1" offset="0%"/>
31
+ <stop stop-color="#c8c8c8" stop-opacity="1" offset="100%"/>
32
+ </linearGradient>
33
+ <linearGradient id="gradient7" x1="50%" y1="-33.3333%" x2="50%" y2="152.0833%">
34
+ <stop stop-color="#ffffff" stop-opacity="1" offset="0%"/>
35
+ <stop stop-color="#c8c8c8" stop-opacity="1" offset="100%"/>
36
+ </linearGradient>
37
+ <linearGradient id="gradient8" x1="50%" y1="0%" x2="50%" y2="100%">
38
+ <stop stop-color="#ffffff" stop-opacity="1" offset="0%"/>
39
+ <stop stop-color="#c8c8c8" stop-opacity="1" offset="100%"/>
40
+ </linearGradient>
41
+ <linearGradient id="gradient9" x1="50%" y1="0%" x2="50%" y2="100%">
42
+ <stop stop-color="#ffffff" stop-opacity="1" offset="0%"/>
43
+ <stop stop-color="#c8c8c8" stop-opacity="1" offset="100%"/>
44
+ </linearGradient>
45
+ <linearGradient id="gradient10" x1="50%" y1="0%" x2="50%" y2="100%">
46
+ <stop stop-color="#ffffff" stop-opacity="1" offset="0%"/>
47
+ <stop stop-color="#c8c8c8" stop-opacity="1" offset="100%"/>
48
+ </linearGradient>
49
+ <linearGradient id="gradient11" x1="50%" y1="0%" x2="50%" y2="100%">
50
+ <stop stop-color="#ffffff" stop-opacity="1" offset="0%"/>
51
+ <stop stop-color="#c8c8c8" stop-opacity="1" offset="100%"/>
52
+ </linearGradient>
53
+ <linearGradient id="gradient12" x1="50%" y1="0%" x2="50%" y2="238.75%">
54
+ <stop stop-color="#ffffff" stop-opacity="1" offset="0%"/>
55
+ <stop stop-color="#c8c8c8" stop-opacity="1" offset="100%"/>
56
+ </linearGradient>
57
+ <linearGradient id="gradient13" x1="40%" y1="-140%" x2="40%" y2="98.75%">
58
+ <stop stop-color="#ffffff" stop-opacity="1" offset="0%"/>
59
+ <stop stop-color="#c8c8c8" stop-opacity="1" offset="100%"/>
60
+ </linearGradient>
61
+ <linearGradient id="gradient14" x1="50%" y1="0%" x2="50%" y2="238.75%">
62
+ <stop stop-color="#ffffff" stop-opacity="1" offset="0%"/>
63
+ <stop stop-color="#c8c8c8" stop-opacity="1" offset="100%"/>
64
+ </linearGradient>
65
+ <linearGradient id="gradient15" x1="60%" y1="-140%" x2="60%" y2="98.75%">
66
+ <stop stop-color="#ffffff" stop-opacity="1" offset="0%"/>
67
+ <stop stop-color="#c8c8c8" stop-opacity="1" offset="100%"/>
68
+ </linearGradient>
69
+ <linearGradient id="gradient16" x1="50%" y1="0%" x2="50%" y2="298.4375%">
70
+ <stop stop-color="#ffffff" stop-opacity="1" offset="0%"/>
71
+ <stop stop-color="#c8c8c8" stop-opacity="1" offset="100%"/>
72
+ </linearGradient>
73
+ <linearGradient id="gradient17" x1="50%" y1="0%" x2="50%" y2="238.75%">
74
+ <stop stop-color="#ffffff" stop-opacity="1" offset="0%"/>
75
+ <stop stop-color="#c8c8c8" stop-opacity="1" offset="100%"/>
76
+ </linearGradient>
77
+ <linearGradient id="gradient18" x1="50%" y1="-200%" x2="50%" y2="100%">
78
+ <stop stop-color="#ffffff" stop-opacity="1" offset="0%"/>
79
+ <stop stop-color="#c8c8c8" stop-opacity="1" offset="100%"/>
80
+ </linearGradient>
81
+ <linearGradient id="gradient19" x1="50%" y1="-200%" x2="50%" y2="110.9375%">
82
+ <stop stop-color="#ffffff" stop-opacity="1" offset="0%"/>
83
+ <stop stop-color="#c8c8c8" stop-opacity="1" offset="100%"/>
84
+ </linearGradient>
85
+ <linearGradient id="gradient20" x1="55%" y1="0%" x2="55%" y2="100%">
86
+ <stop stop-color="#ffffff" stop-opacity="1" offset="0%"/>
87
+ <stop stop-color="#c8c8c8" stop-opacity="1" offset="100%"/>
88
+ </linearGradient>
89
+ <linearGradient id="gradient21" x1="50%" y1="0%" x2="50%" y2="100%">
90
+ <stop stop-color="#ffffff" stop-opacity="1" offset="0%"/>
91
+ <stop stop-color="#c8c8c8" stop-opacity="1" offset="99.4444%"/>
92
+ </linearGradient>
93
+ </defs>
94
+ <g id="BG">
95
+ </g>
96
+ <g id="controls">
97
+ <path id="Line" d="M 98.5 7.5 L 109.5 7.5 " stroke="#ffffff" stroke-width="1" fill="none"/>
98
+ <path id="Line2" d="M 98.5 3.5 L 109.5 3.5 " stroke="#ffffff" stroke-width="1" fill="none"/>
99
+ <path id="Line3" d="M 98.5 11.5 L 109.5 11.5 " stroke="#ffffff" stroke-width="1" fill="none"/>
100
+ <path id="Ellipse" d="M 108 11.5 C 108 10.6716 108.4477 10 109 10 C 109.5523 10 110 10.6716 110 11.5 C 110 12.3284 109.5523 13 109 13 C 108.4477 13 108 12.3284 108 11.5 Z" fill="#ffffff"/>
101
+ <path id="Ellipse2" d="M 104 7.5 C 104 6.6716 104.4477 6 105 6 C 105.5523 6 106 6.6716 106 7.5 C 106 8.3284 105.5523 9 105 9 C 104.4477 9 104 8.3284 104 7.5 Z" fill="#ffffff"/>
102
+ <path id="Ellipse3" d="M 108 3.5 C 108 2.6716 108.4477 2 109 2 C 109.5523 2 110 2.6716 110 3.5 C 110 4.3284 109.5523 5 109 5 C 108.4477 5 108 4.3284 108 3.5 Z" fill="#ffffff"/>
103
+ </g>
104
+ <g id="backlight">
105
+ <g id="off">
106
+ <rect x="83" y="21" width="10" height="6" stroke="#ffffff" stroke-width="1" fill="#333333"/>
107
+ </g>
108
+ <g id="on">
109
+ <path id="Ellipse4" d="M 81 8 C 81 5.2385 84.134 3 88 3 C 91.866 3 95 5.2385 95 8 C 95 10.7615 91.866 13 88 13 C 84.134 13 81 10.7615 81 8 Z" fill="url(#gradient1)"/>
110
+ <rect x="83" y="5" width="10" height="6" stroke="#ffffff" stroke-width="1" fill="#333333"/>
111
+ </g>
112
+ </g>
113
+ <g id="loop">
114
+ <g id="on2">
115
+ <path d="M 73.795 4.205 C 75.2155 4.8785 76.2 6.3234 76.2 8 C 76.2 10.3196 74.3196 12.2 72 12.2 C 69.6804 12.2 67.8 10.3196 67.8 8 C 67.8 6.3234 68.7845 4.8785 70.205 4.205 L 68.875 2.875 C 67.1501 3.9289 66 5.8306 66 8 C 66 11.3138 68.6862 14 72 14 C 75.3138 14 78 11.3138 78 8 C 78 5.8306 76.8499 3.9289 75.125 2.875 L 73.795 4.205 Z" fill="url(#gradient2)"/>
116
+ <path d="M 71 2 L 66 2 L 71 7 L 71 2 Z" fill="url(#gradient3)"/>
117
+ </g>
118
+ <g id="off2">
119
+ <path d="M 73.795 20.205 C 75.2155 20.8785 76.2 22.3234 76.2 24 C 76.2 26.3196 74.3196 28.2 72 28.2 C 69.6804 28.2 67.8 26.3196 67.8 24 C 67.8 22.3234 68.7845 20.8785 70.205 20.205 L 68.875 18.875 C 67.1501 19.9289 66 21.8306 66 24 C 66 27.3138 68.6862 30 72 30 C 75.3138 30 78 27.3138 78 24 C 78 21.8306 76.8499 19.9289 75.125 18.875 L 73.795 20.205 Z" fill="#a8a8b7"/>
120
+ <path d="M 71 18 L 66 18 L 71 23 L 71 18 Z" fill="#a8a8b7"/>
121
+ </g>
122
+ </g>
123
+ <g id="cc">
124
+ <rect visibility="hidden" x="49" y="2" width="14" height="12" stroke="#b0b0b0" stroke-width="1" fill="none"/>
125
+ <text visibility="hidden" x="49" y="17" width="14" fill="#ffffff" style="font-size: 10px; color: #ffffff; font-family: Arial; text-align: center; "><tspan><![CDATA[cc]]></tspan></text>
126
+ <path d="M 55 7 C 50.2813 3.7813 50.063 12.9405 55 10 " stroke="#ffffff" stroke-width="1" fill="none"/>
127
+ <path d="M 60 7 C 55.2813 3.7813 55.063 12.9405 60 10 " stroke="#ffffff" stroke-width="1" fill="none"/>
128
+ <path d="M 50 3 L 62 3 L 62 13 L 50 13 L 50 3 ZM 49 2 L 49 14 L 63 14 L 63 2 L 49 2 Z" fill="url(#gradient4)"/>
129
+ <rect x="49" y="2" width="14" height="12" fill="none"/>
130
+ </g>
131
+ <g id="volume">
132
+ <g id="no%20sound">
133
+ <rect x="17" y="5" width="5" height="6" fill="url(#gradient5)"/>
134
+ <path d="M 21 5 L 25 2 L 25 14 L 21 11.0625 L 21 5 Z" fill="url(#gradient6)"/>
135
+ </g>
136
+ <g id="sound%20bars">
137
+ <rect x="17" y="21" width="5" height="6" fill="url(#gradient7)"/>
138
+ <path d="M 21 21 L 25 18 L 25 30 L 21 27.0625 L 21 21 Z" fill="url(#gradient8)"/>
139
+ <path d="M 27 18 C 27 18 30.0625 17.375 30 24 C 29.9375 30.625 27 30 27 30 " stroke="#ffffff" stroke-width="1" fill="none"/>
140
+ <path d="M 26 21.0079 C 26 21.0079 28.041 20.6962 27.9994 24 C 27.9577 27.3038 26 26.9921 26 26.9921 " stroke="#ffffff" stroke-width="1" fill="none"/>
141
+ </g>
142
+ </g>
143
+ <g id="play/pause">
144
+ <g id="play">
145
+ <path id="Polygon" d="M 14 8.5 L 3 14 L 3 3 L 14 8.5 Z" fill="url(#gradient9)"/>
146
+ </g>
147
+ <g id="pause">
148
+ <rect x="3" y="18" width="3" height="12" fill="url(#gradient10)"/>
149
+ <rect x="10" y="18" width="3" height="12" fill="url(#gradient11)"/>
150
+ </g>
151
+ </g>
152
+ <g id="fullscreen">
153
+ <g id="enter%201">
154
+ <path d="M 34 2 L 39 2 L 34 7 L 34 2 Z" fill="url(#gradient12)"/>
155
+ <path d="M 34 14 L 39 14 L 34 9 L 34 14 Z" fill="url(#gradient13)"/>
156
+ <path d="M 46 2 L 41 2 L 46 7 L 46 2 Z" fill="url(#gradient14)"/>
157
+ <path d="M 46 14 L 41 14 L 46 9 L 46 14 Z" fill="url(#gradient15)"/>
158
+ </g>
159
+ <g id="exit">
160
+ <path d="M 42 22 L 46 22 L 42 18 L 42 22 Z" fill="url(#gradient16)"/>
161
+ <path d="M 38 22 L 38 18 L 34 22 L 38 22 Z" fill="url(#gradient17)"/>
162
+ <path d="M 38 26 L 34 26 L 38 30 L 38 26 Z" fill="url(#gradient18)"/>
163
+ <path d="M 42 26 L 42 30 L 46 26 L 42 26 Z" fill="url(#gradient19)"/>
164
+ </g>
165
+ </g>
166
+ <g id="stop">
167
+ <rect x="115" y="3" width="10" height="10" fill="url(#gradient20)"/>
168
+ </g>
169
+ <g id="chooser">
170
+ <path d="M 135.2346 6.1522 C 136.2551 5.7295 137.4251 6.2141 137.8478 7.2346 C 138.2704 8.2551 137.7859 9.425 136.7654 9.8478 C 135.7449 10.2705 134.5749 9.7859 134.1522 8.7654 C 133.7295 7.7449 134.2141 6.5749 135.2346 6.1522 ZM 133.2735 1.4176 L 136 4.0054 L 138.7265 1.4176 L 138.8246 5.1754 L 142.5824 5.2735 L 139.9946 8 L 142.5824 10.7265 L 138.8246 10.8246 L 138.7265 14.5824 L 136 11.9946 L 133.2735 14.5824 L 133.1754 10.8246 L 129.4176 10.7265 L 132.0054 8 L 129.4176 5.2735 L 133.1754 5.1754 L 133.2735 1.4176 Z" fill="url(#gradient21)"/>
171
+ </g>
172
+ </svg>
css/flowplayer.css CHANGED
@@ -1095,6 +1095,7 @@
1095
padding: 0 !important;
1096
float: left;
1097
font-family: "Lucida Console", Monaco, monospace;
1098
}
1099
.fvp-share-bar label {
1100
text-align: center !important;
1095
padding: 0 !important;
1096
float: left;
1097
font-family: "Lucida Console", Monaco, monospace;
1098
+ list-style: none;
1099
}
1100
.fvp-share-bar label {
1101
text-align: center !important;
css/s3-browser.css ADDED
@@ -0,0 +1,456 @@
1
+ /* Amazon S3 Browser */
2
+ @charset "utf-8";
3
+
4
+
5
+ .files-div .search {
6
+
7
+ margin-top: 45px;
8
+
9
+
10
+ }
11
+
12
+ .files-div {
13
+ font-size: 14px;
14
+ z-index: -4;
15
+ border-radius:20px;
16
+ min-height:440px;
17
+ padding: 10px 10px 10px 10px;
18
+ }
19
+
20
+
21
+ /* File manager */
22
+
23
+ .filemanager {
24
+ width: 95%;
25
+ max-width:1340px;
26
+ position: relative;
27
+ }
28
+ .filemanager input[type='search'] {
29
+ width:200px!important;
30
+ }
31
+
32
+ @media all and (max-width: 965px) {
33
+ .filemanager {
34
+ margin: 30px auto 0;
35
+ padding: 1px;
36
+ }
37
+ }
38
+
39
+
40
+ /* Breadcrumps */
41
+
42
+ .filemanager .breadcrumbs {
43
+ color: #000;
44
+ font-size: 18px;
45
+ font-weight: 700;
46
+ line-height: 35px;
47
+ }
48
+ .filemanager .breadcrumbs a:link, .breadcrumbs a:visited {
49
+ color: #000;
50
+ text-decoration: none;
51
+ }
52
+ .filemanager .breadcrumbs a:hover {
53
+ text-decoration: underline;
54
+ }
55
+ .filemanager .breadcrumbs .arrow {
56
+ color: #000;
57
+ font-size: 24px;
58
+ font-weight: 700;
59
+ line-height: 20px;
60
+ }
61
+
62
+
63
+ /* Search box */
64
+
65
+ .filemanager .search {
66
+ margin-top: 0 !important;
67
+ background-color: #fff;
68
+ position: absolute;
69
+ cursor: pointer;
70
+ right: 0 !important;
71
+ font-size: 17px;
72
+ color: #ffffff !important;
73
+ display: block !important;
74
+ width: 40px !important;
75
+ height: 40px !important;
76
+ }
77
+ .filemanager .search:before {
78
+ content: '';
79
+ position: absolute;
80
+ margin-top:11px;
81
+ width: 10px;
82
+ height: 11px;
83
+ border-radius: 50%;
84
+ border: 2px solid #333;
85
+ right: 8px;
86
+ }
87
+ .filemanager .search:after {
88
+ content: '';
89
+ width: 3px;
90
+ height: 10px;
91
+ background-color: #333;
92
+ border-radius: 2px;
93
+ position: absolute;
94
+ top: 25px;
95
+ right: 6px;
96
+ -webkit-transform: rotate(-45deg);
97
+ transform: rotate(-45deg);
98
+ }
99
+ .filemanager .search input[type=search] {
100
+ color: #4D535E;
101
+ background-color: #FFF;
102
+ width: 250px;
103
+ height: 44px;
104
+ margin-left: -215px;
105
+ padding-left: 20px;
106
+ text-decoration-color: #4d535e;
107
+ font-size: 16px;
108
+ font-weight: 400;
109
+ line-height: 20px;
110
+ display: none;
111
+ outline: none;
112
+ border: none;
113
+ padding-right: 10px;
114
+ -webkit-appearance: none;
115
+ }
116
+ ::-webkit-input-placeholder { /* WebKit browsers */
117
+ color: #4d535e;
118
+ }
119
+ :-moz-placeholder { /* Mozilla Firefox 4 to 18 */
120
+ color: #4d535e;
121
+ opacity: 1;
122
+ }
123
+ ::-moz-placeholder { /* Mozilla Firefox 19+ */
124
+ color: #4d535e;
125
+ opacity: 1;
126
+ }
127
+ :-ms-input-placeholder { /* Internet Explorer 10+ */
128
+ color: #4d535e;
129
+ }
130
+
131
+
132
+ /* Content area */
133
+
134
+ .filemanager .data {
135
+ margin-top: 60px;
136
+ z-index: -3;
137
+ }
138
+ .filemanager .data.animated {
139
+ -webkit-animation: showSlowlyElement 700ms; /* Chrome, Safari, Opera */
140
+ animation: showSlowlyElement 700ms; /* Standard syntax */
141
+ }
142
+ .filemanager .data li {
143
+ border-radius: 3px;
144
+ background-color: #373743;
145
+ width: 11.5%;
146
+ height: 151px;
147
+ list-style-type: none;
148
+ margin: 0 1% 1% 0;
149
+ display: inline-block;
150
+ position: relative;
151
+ overflow: hidden;
152
+ padding: 0.3em;
153
+ z-index: 1;
154
+ cursor: pointer;
155
+ box-sizing: border-box;
156
+ border: 1px solid #ddd;
157
+ transition: 0.3s background-color;
158
+ box-shadow: inset 0 0 0 1px rgba(0,0,0,.1);
159
+ }
160
+ .filemanager .data li:hover {
161
+ background-color: #42424E;
162
+ }
163
+ .filemanager .data li a {
164
+ position: absolute;
165
+ top: 0;
166
+ left: 0;
167
+ width: 100%;
168
+ height: 100%;
169
+ text-decoration: none;
170
+ display: block;
171
+ text-align: center;
172
+ background: #eee;
173
+ box-shadow: inset 0 0 15px rgba(0,0,0,.1),inset 0 0 0 1px rgba(0,0,0,.05);
174
+ z-index: 0;
175
+ color: #333;
176
+ }
177
+ .filemanager .data li:hover a {
178
+ color: #fff;
179
+ background-color: #333;
180
+ }
181
+ .filemanager .data li .name {
182
+ font-size: 14px;
183
+ font-weight: 400;
184
+ line-height: 1.2;
185
+ width: 100%;
186
+ padding: 0 6px;
187
+ display: block;
188
+ position: absolute;
189
+ overflow: hidden;
190
+ bottom: 25px;
191
+ z-index: 1;
192
+ }
193
+ .filemanager .data li .details {
194
+ color: #b6c1c9;
195
+ font-size: 13px;
196
+ font-weight: 400;
197
+ width: 100%;
198
+ height: 13px;
199
+ bottom: 10px;
200
+ white-space: nowrap;
201
+ position: absolute;
202
+ display: block;
203
+ z-index: 1;
204
+ }
205
+ .filemanager .nothingfound {
206
+ background-color: #373743;
207
+ width: 23em;
208
+ height: 21em;
209
+ margin: 0 auto;
210
+ display: none;
211
+ font-family: Arial;
212
+ -webkit-animation: showSlowlyElement 700ms; /* Chrome, Safari, Opera */
213
+ animation: showSlowlyElement 700ms; /* Standard syntax */
214
+ }
215
+ .filemanager .nothingfound .nofiles {
216
+ margin: 30px auto;
217
+ top: 3em;
218
+ border-radius: 50%;
219
+ position:relative;
220
+ background-color: #d72f6e;
221
+ width: 11em;
222
+ height: 11em;
223
+ line-height: 11.4em;
224
+ }
225
+ .filemanager .nothingfound .nofiles:after {
226
+ content: '×';
227
+ position: absolute;
228
+ color: #ffffff;
229
+ font-size: 14em;
230
+ margin-right: 0.092em;
231
+ right: 0;
232
+ }
233
+ .filemanager .nothingfound span {
234
+ margin: 0 auto auto 6.8em;
235
+ color: #ffffff;
236
+ font-size: 16px;
237
+ font-weight: 700;
238
+ line-height: 20px;
239
+ height: 13px;
240
+ position: relative;
241
+ top: 2em;
242
+ }
243
+ @media all and (max-width:965px) {
244
+
245
+ .filemanager .data li {
246
+ width: 100%;
247
+ margin: 5px 0;
248
+ }
249
+
250
+ }
251
+
252
+ /* Chrome, Safari, Opera */
253
+ @-webkit-keyframes showSlowlyElement {
254
+ 100% { transform: scale(1); opacity: 1; }
255
+ 0% { transform: scale(1.2); opacity: 0; }
256
+ }
257
+ /* Standard syntax */
258
+ @keyframes showSlowlyElement {
259
+ 100% { transform: scale(1); opacity: 1; }
260
+ 0% { transform: scale(1.2); opacity: 0; }
261
+ }
262
+
263
+
264
+ /* Icons */
265
+
266
+ .files-div .icon {
267
+ font-size: 18px;
268
+ width: 3em;
269
+ }
270
+ .files-div .icon.folder {
271
+ display: inline-block;
272
+ margin: 1em;
273
+ background-color: transparent;
274
+ overflow: hidden;
275
+ }
276
+ .files-div .icon.folder:before {
277
+ content: '';
278
+ float: left;
279
+ background-color: #7ba1ad;
280
+ width: 1.5em;
281
+ height: 0.45em;
282
+ margin-left: 0.07em;
283
+ margin-bottom: -0.07em;
284
+ border-top-left-radius: 0.1em;
285
+ border-top-right-radius: 0.1em;
286
+ box-shadow: 1.25em 0.25em 0 0em #7ba1ad;
287
+ }
288
+ .files-div .icon.folder:after {
289
+ content: '';
290
+ float: left;
291
+ clear: left;
292
+ background-color: #a0d4e4;
293
+ width: 3em;
294
+ height: 2.25em;
295
+ border-radius: 0.1em;
296
+ }
297
+ .files-div .icon.folder.full:before {
298
+ height: 0.55em;
299
+ }
300
+ .files-div .icon.folder.full:after {
301
+ height: 2.15em;
302
+ box-shadow: 0 -0.12em 0 0 #ffffff;
303
+ }
304
+ .files-div .icon.file {
305
+ width: 2.5em;
306
+ height: 3em;
307
+ line-height: 3em;
308
+ text-align: center;
309
+ border-radius: 0.25em;
310
+ color: #FFF;
311
+ display: inline-block;
312
+ margin: 0.9em 1.2em 0.8em 1.3em;
313
+ position: relative;
314
+ overflow: hidden;
315
+ box-shadow: 1.74em -2.1em 0 0 #A4A7AC inset;
316
+ }
317
+ .files-div .icon.file:first-line {
318
+ font-size: 13px;
319
+ font-weight: 700;
320
+ }
321
+ .files-div .icon.file:after {
322
+ content: '';
323
+ position: absolute;
324
+ z-index: -1;
325
+ border-width: 0;
326
+ border-bottom: 2.6em solid #c0c0c0;
327
+ border-right: 2.22em solid rgba(0, 0, 0, 0);
328
+ top: -30.5px;
329
+ right: 0;
330
+ }
331
+ .files-div .icon.file.f-avi,
332
+ .files-div .icon.file.f-flv,
333
+ .files-div .icon.file.f-mkv,
334
+ .files-div .icon.file.f-mov,
335
+ .files-div .icon.file.f-mpeg,
336
+ .files-div .icon.file.f-mpg,
337
+ .files-div .icon.file.f-mp4,
338
+ .files-div .icon.file.f-m4v,
339
+ .files-div .icon.file.f-wmv {
340
+ box-shadow: 1.74em -2.1em 0 0 #7e70ee inset;
341
+ }
342
+ .files-div .icon.file.f-avi:after,
343
+ .files-div .icon.file.f-flv:after,
344
+ .files-div .icon.file.f-mkv:after,
345
+ .files-div .icon.file.f-mov:after,
346
+ .files-div .icon.file.f-mpeg:after,
347
+ .files-div .icon.file.f-mpg:after,
348
+ .files-div .icon.file.f-mp4:after,
349
+ .files-div .icon.file.f-m4v:after,
350
+ .files-div .icon.file.f-wmv:after {
351
+ border-bottom-color: #5649c1;
352
+ }
353
+ .files-div .icon.file.f-mp2,
354
+ .files-div .icon.file.f-mp3,
355
+ .files-div .icon.file.f-m3u,
356
+ .files-div .icon.file.f-wma,
357
+ .files-div .icon.file.f-xls,
358
+ .files-div .icon.file.f-xlsx {
359
+ box-shadow: 1.74em -2.1em 0 0 #5bab6e inset;
360
+ }
361
+ .files-div .icon.file.f-mp2:after,
362
+ .files-div .icon.file.f-mp3:after,
363
+ .files-div .icon.file.f-m3u:after,
364
+ .files-div .icon.file.f-wma:after,
365
+ .files-div .icon.file.f-xls:after,
366
+ .files-div .icon.file.f-xlsx:after {
367
+ border-bottom-color: #448353;
368
+ }
369
+ .files-div .icon.file.f-doc,
370
+ .files-div .icon.file.f-docx,
371
+ .files-div .icon.file.f-psd{
372
+ box-shadow: 1.74em -2.1em 0 0 #03689b inset;
373
+ }
374
+ .files-div .icon.file.f-doc:after,
375
+ .files-div .icon.file.f-docx:after,
376
+ .files-div .icon.file.f-psd:after {
377
+ border-bottom-color: #2980b9;
378
+ }
379
+ .files-div .icon.file.f-gif,
380
+ .files-div .icon.file.f-jpg,
381
+ .files-div .icon.file.f-jpeg,
382
+ .files-div .icon.file.f-pdf,
383
+ .files-div .icon.file.f-png {
384
+ box-shadow: 1.74em -2.1em 0 0 #e15955 inset;
385
+ }
386
+ .files-div .icon.file.f-gif:after,
387
+ .files-div .icon.file.f-jpg:after,
388
+ .files-div .icon.file.f-jpeg:after,
389
+ .files-div .icon.file.f-pdf:after,
390
+ .files-div .icon.file.f-png:after {
391
+ border-bottom-color: #c6393f;
392
+ }
393
+ .files-div .icon.file.f-deb,
394
+ .files-div .icon.file.f-dmg,
395
+ .files-div .icon.file.f-gz,
396
+ .files-div .icon.file.f-rar,
397
+ .files-div .icon.file.f-zip,
398
+ .files-div .icon.file.f-7z {
399
+ box-shadow: 1.74em -2.1em 0 0 #867c75 inset;
400
+ }
401
+ .files-div .icon.file.f-deb:after,
402
+ .files-div .icon.file.f-dmg:after,
403
+ .files-div .icon.file.f-gz:after,
404
+ .files-div .icon.file.f-rar:after,
405
+ .files-div .icon.file.f-zip:after,
406
+ .files-div .icon.file.f-7z:after {
407
+ border-bottom-color: #685f58;
408
+ }
409
+ .files-div .icon.file.f-html,
410
+ .files-div .icon.file.f-rtf,
411
+ .files-div .icon.file.f-xml,
412
+ .files-div .icon.file.f-xhtml {
413
+ box-shadow: 1.74em -2.1em 0 0 #a94bb7 inset;
414
+ }
415
+ .files-div .icon.file.f-html:after,
416
+ .files-div .icon.file.f-rtf:after,
417
+ .files-div .icon.file.f-xml:after,
418
+ .files-div .icon.file.f-xhtml:after {
419
+ border-bottom-color: #d65de8;
420
+ }
421
+ .files-div .icon.file.f-js {
422
+ box-shadow: 1.74em -2.1em 0 0 #d0c54d inset;
423
+ }
424
+ .files-div .icon.file.f-js:after {
425
+ border-bottom-color: #a69f4e;
426
+ }
427
+ .files-div .icon.file.f-css,
428
+ .files-div .icon.file.f-saas,
429
+ .files-div .icon.file.f-scss {
430
+ box-shadow: 1.74em -2.1em 0 0 #44afa6 inset;
431
+ }
432
+ .files-div .icon.file.f-css:after,
433
+ .files-div .icon.file.f-saas:after,
434
+ .files-div .icon.file.f-scss:after {
435
+ border-bottom-color: #30837c;
436
+ }
437
+
438
+ @media screen and (max-width: 600px) {
439
+ .files-div .icon {
440
+ font-size:1em!important;
441
+ margin-top:2em!important;
442
+ }
443
+ .files-div .icon.file:after {
444
+ top: -27.5px!important;
445
+ }
446
+ .filemanager .data li {
447
+
448
+ width:100%!important;
449
+ }
450
+ .files-div ul.data {
451
+
452
+ margin-left:0px!important;
453
+ margin-right:0px!important;
454
+
455
+ }
456
+ }
css/shortcode-editor.css CHANGED
@@ -144,4 +144,8 @@ a #add-format, a #add-rtmp {
144
}
145
#fv-wordpress-flowplayer-popup table td {
146
padding: 4px 2px;
147
}
144
}
145
#fv-wordpress-flowplayer-popup table td {
146
padding: 4px 2px;
147
+ }
148
+
149
+ #fv-player-shortcode-editor-editor ::placeholder {
150
+ opacity:.5;
151
}
flowplayer.php CHANGED
@@ -3,7 +3,7 @@
3
Plugin Name: FV Player
4
Plugin URI: http://foliovision.com/wordpress/plugins/fv-wordpress-flowplayer
5
Description: Formerly FV WordPress Flowplayer. Supports MP4, HLS, MPEG-DASH, WebM and OGV. Advanced features such as overlay ads or popups. Uses Flowplayer 7.2.7.
6
- Version: 7.1.15.727
7
Author URI: http://foliovision.com/
8
License: GPL-3.0
9
License URI: http://www.gnu.org/licenses/gpl-3.0.txt
@@ -26,15 +26,17 @@ License URI: http://www.gnu.org/licenses/gpl-3.0.txt
26
along with this program. If not, see <http://www.gnu.org/licenses/>.
27
*/
28
29
- $fv_wp_flowplayer_ver = '7.1.15.727';
30
$fv_wp_flowplayer_core_ver = '7.2.7.1';
31
32
- include( dirname( __FILE__ ) . '/includes/extra-functions.php' );
33
if( file_exists( dirname( __FILE__ ) . '/includes/module.php' ) ) {
34
- include( dirname( __FILE__ ) . '/includes/module.php' );
35
}
36
37
- include( dirname( __FILE__ ) . '/models/checker.php' );
38
$FV_Player_Checker = new FV_Player_Checker();
39
40
include_once(dirname( __FILE__ ) . '/models/flowplayer.php');
@@ -64,13 +66,16 @@ global $fv_fp;
64
$fv_fp = new flowplayer_frontend();
65
66
if( is_admin() ) {
67
- include( dirname( __FILE__ ) . '/controller/backend.php' );
68
- include( dirname( __FILE__ ) . '/controller/editor.php' );
69
- include( dirname( __FILE__ ) . '/controller/settings.php' );
70
-
71
register_deactivation_hook( __FILE__, 'flowplayer_deactivate' );
72
73
}
74
75
- include( dirname( __FILE__ ) . '/controller/frontend.php' );
76
- require_once( dirname( __FILE__ ) . '/controller/shortcodes.php');
3
Plugin Name: FV Player
4
Plugin URI: http://foliovision.com/wordpress/plugins/fv-wordpress-flowplayer
5
Description: Formerly FV WordPress Flowplayer. Supports MP4, HLS, MPEG-DASH, WebM and OGV. Advanced features such as overlay ads or popups. Uses Flowplayer 7.2.7.
6
+ Version: 7.2.1.727
7
Author URI: http://foliovision.com/
8
License: GPL-3.0
9
License URI: http://www.gnu.org/licenses/gpl-3.0.txt
26
along with this program. If not, see <http://www.gnu.org/licenses/>.
27
*/
28
29
+ $fv_wp_flowplayer_ver = '7.2.1.727';
30
$fv_wp_flowplayer_core_ver = '7.2.7.1';
31
32
+ include_once( dirname( __FILE__ ) . '/includes/extra-functions.php' );
33
if( file_exists( dirname( __FILE__ ) . '/includes/module.php' ) ) {
34
+ include_once( dirname( __FILE__ ) . '/includes/module.php' );
35
}
36
37
+ include_once( dirname( __FILE__ ) . '/models/checker.php' );
38
+
39
+ global $FV_Player_Checker;
40
$FV_Player_Checker = new FV_Player_Checker();
41
42
include_once(dirname( __FILE__ ) . '/models/flowplayer.php');
66
$fv_fp = new flowplayer_frontend();
67
68
if( is_admin() ) {
69
+ include_once( dirname( __FILE__ ) . '/controller/backend.php' );
70
+ include_once( dirname( __FILE__ ) . '/controller/editor.php' );
71
+ include_once( dirname( __FILE__ ) . '/controller/settings.php' );
72
+ if( version_compare(phpversion(),'5.5.0') != -1 ) {
73
+ include_once(dirname( __FILE__ ) . '/models/media-browser.php');
74
+ include_once(dirname( __FILE__ ) . '/models/media-browser-s3.php');
75
+ }
76
register_deactivation_hook( __FILE__, 'flowplayer_deactivate' );
77
78
}
79
80
+ include_once( dirname( __FILE__ ) . '/controller/frontend.php' );
81
+ include_once( dirname( __FILE__ ) . '/controller/shortcodes.php');
flowplayer/fv-flowplayer.min.js CHANGED
@@ -2701,7 +2701,7 @@ flowplayer( function(api,root) {
2701
});
2702
2703
api.on('ready', function() {
2704
- if( api.video.is_fv_recoverable && api.engine.engineName == 'html5' && ( api.video.type == 'application/x-mpegurl' || api.video.type == 'video/fv-mp4' ) ) {
2705
2706
time_delay = new Date().getTime() - time_start;
2707
@@ -2722,6 +2722,7 @@ flowplayer( function(api,root) {
2722
2723
function hls_check() {
2724
if( api.ready && api.playing && !api.loading && !api.finished ) {
2725
console.log('HLS stream stale for '+time_delay+' ms, triggering error!');
2726
fv_player_notice(root,fv_flowplayer_translations.video_reload+' <a class="fv-player-reload" href="#">&#x21bb;</a>','progress error unload');
2727
jQuery('.fv-player-reload').click( function() {
2701
});
2702
2703
api.on('ready', function() {
2704
+ if( api.video.is_fv_recoverable && api.engine.engineName == 'html5' && ( api.video.type == 'application/x-mpegurl' || api.video.type == 'video/fv-mp4' && api.video.src.match(/m3u8/) ) ) {
2705
2706
time_delay = new Date().getTime() - time_start;
2707
2722
2723
function hls_check() {
2724
if( api.ready && api.playing && !api.loading && !api.finished ) {
2725
+ clearInterval(no_progress);
2726
console.log('HLS stream stale for '+time_delay+' ms, triggering error!');
2727
fv_player_notice(root,fv_flowplayer_translations.video_reload+' <a class="fv-player-reload" href="#">&#x21bb;</a>','progress error unload');
2728
jQuery('.fv-player-reload').click( function() {
includes/aws/Aws/Api/AbstractModel.php ADDED
@@ -0,0 +1,67 @@
1
+ <?php
2
+ namespace Aws\Api;
3
+
4
+ /**
5
+ * Base class that is used by most API shapes
6
+ */
7
+ abstract class AbstractModel implements \ArrayAccess
8
+ {
9
+ /** @var array */
10
+ protected $definition;
11
+
12
+ /** @var ShapeMap */
13
+ protected $shapeMap;
14
+
15
+ /**
16
+ * @param array $definition Service description
17
+ * @param ShapeMap $shapeMap Shapemap used for creating shapes
18
+ */
19
+ public function __construct(array $definition, ShapeMap $shapeMap)
20
+ {
21
+ $this->definition = $definition;
22
+ $this->shapeMap = $shapeMap;
23
+ }
24
+
25
+ public function toArray()
26
+ {
27
+ return $this->definition;
28
+ }
29
+
30
+ public function offsetGet($offset)
31
+ {
32
+ return isset($this->definition[$offset])
33
+ ? $this->definition[$offset] : null;
34
+ }
35
+
36
+ public function offsetSet($offset, $value)
37
+ {
38
+ $this->definition[$offset] = $value;
39
+ }
40
+
41
+ public function offsetExists($offset)
42
+ {
43
+ return isset($this->definition[$offset]);
44
+ }
45
+
46
+ public function offsetUnset($offset)
47
+ {
48
+ unset($this->definition[$offset]);
49
+ }
50
+
51
+ protected function shapeAt($key)
52
+ {
53
+ if (!isset($this->definition[$key])) {
54
+ throw new \InvalidArgumentException('Expected shape definition at '
55
+ . $key);
56
+ }
57
+
58
+ return $this->shapeFor($this->definition[$key]);
59
+ }
60
+
61
+ protected function shapeFor(array $definition)
62
+ {
63
+ return isset($definition['shape'])
64
+ ? $this->shapeMap->resolve($definition)
65
+ : Shape::create($definition, $this->shapeMap);
66
+ }
67
+ }
includes/aws/Aws/Api/ApiProvider.php ADDED
@@ -0,0 +1,241 @@
1
+ <?php
2
+ namespace Aws\Api;
3
+
4
+ use Aws\Exception\UnresolvedApiException;
5
+
6
+ /**
7
+ * API providers.
8
+ *
9
+ * An API provider is a function that accepts a type, service, and version and
10
+ * returns an array of API data on success or NULL if no API data can be created
11
+ * for the provided arguments.
12
+ *
13
+ * You can wrap your calls to an API provider with the
14
+ * {@see ApiProvider::resolve} method to ensure that API data is created. If the
15
+ * API data is not created, then the resolve() method will throw a
16
+ * {@see Aws\Exception\UnresolvedApiException}.
17
+ *
18
+ * use Aws\Api\ApiProvider;
19
+ * $provider = ApiProvider::defaultProvider();
20
+ * // Returns an array or NULL.
21
+ * $data = $provider('api', 's3', '2006-03-01');
22
+ * // Returns an array or throws.
23
+ * $data = ApiProvider::resolve($provider, 'api', 'elasticfood', '2020-01-01');
24
+ *
25
+ * You can compose multiple providers into a single provider using
26
+ * {@see Aws\or_chain}. This method accepts providers as arguments and
27
+ * returns a new function that will invoke each provider until a non-null value
28
+ * is returned.
29
+ *
30
+ * $a = ApiProvider::filesystem(sys_get_temp_dir() . '/aws-beta-models');
31
+ * $b = ApiProvider::manifest();
32
+ *
33
+ * $c = \Aws\or_chain($a, $b);
34
+ * $data = $c('api', 'betaservice', '2015-08-08'); // $a handles this.
35
+ * $data = $c('api', 's3', '2006-03-01'); // $b handles this.
36
+ * $data = $c('api', 'invalid', '2014-12-15'); // Neither handles this.
37
+ */
38
+ class ApiProvider
39
+ {
40
+ /** @var array A map of public API type names to their file suffix. */
41
+ private static $typeMap = [
42
+ 'api' => 'api-2',
43
+ 'paginator' => 'paginators-1',
44
+ 'waiter' => 'waiters-2',
45
+ 'docs' => 'docs-2',
46
+ ];
47
+
48
+ /** @var array API manifest */
49
+ private $manifest;
50
+
51
+ /** @var string The directory containing service models. */
52
+ private $modelsDir;
53
+
54
+ /**
55
+ * Resolves an API provider and ensures a non-null return value.
56
+ *
57
+ * @param callable $provider Provider function to invoke.
58
+ * @param string $type Type of data ('api', 'waiter', 'paginator').
59
+ * @param string $service Service name.
60
+ * @param string $version API version.
61
+ *
62
+ * @return array
63
+ * @throws UnresolvedApiException
64
+ */
65
+ public static function resolve(callable $provider, $type, $service, $version)
66
+ {
67
+ // Execute the provider and return the result, if there is one.
68
+ $result = $provider($type, $service, $version);
69
+ if (is_array($result)) {
70
+ return $result;
71
+ }
72
+
73
+ // Throw an exception with a message depending on the inputs.
74
+ if (!isset(self::$typeMap[$type])) {
75
+ $msg = "The type must be one of: " . implode(', ', self::$typeMap);
76
+ } elseif ($service) {
77
+ $msg = "The {$service} service does not have version: {$version}.";
78
+ } else {
79
+ $msg = "You must specify a service name to retrieve its API data.";
80
+ }
81
+
82
+ throw new UnresolvedApiException($msg);
83
+ }
84
+
85
+ /**
86
+ * Default SDK API provider.
87
+ *
88
+ * This provider loads pre-built manifest data from the `data` directory.
89
+ *
90
+ * @return self
91
+ */
92
+ public static function defaultProvider()
93
+ {
94
+ return new self(__DIR__ . '/../data', \Aws\manifest());
95
+ }
96
+
97
+ /**
98
+ * Loads API data after resolving the version to the latest, compatible,
99
+ * available version based on the provided manifest data.
100
+ *
101
+ * Manifest data is essentially an associative array of service names to
102
+ * associative arrays of API version aliases.
103
+ *
104
+ * [
105
+ * ...
106
+ * 'ec2' => [
107
+ * 'latest' => '2014-10-01',
108
+ * '2014-10-01' => '2014-10-01',
109
+ * '2014-09-01' => '2014-10-01',
110
+ * '2014-06-15' => '2014-10-01',
111
+ * ...
112
+ * ],
113
+ * 'ecs' => [...],
114
+ * 'elasticache' => [...],
115
+ * ...
116
+ * ]
117
+ *
118
+ * @param string $dir Directory containing service models.
119
+ * @param array $manifest The API version manifest data.
120
+ *
121
+ * @return self
122
+ */
123
+ public static function manifest($dir, array $manifest)
124
+ {
125
+ return new self($dir, $manifest);
126
+ }
127
+
128
+ /**
129
+ * Loads API data from the specified directory.
130
+ *
131
+ * If "latest" is specified as the version, this provider must glob the
132
+ * directory to find which is the latest available version.
133
+ *
134
+ * @param string $dir Directory containing service models.
135
+ *
136
+ * @return self
137
+ * @throws \InvalidArgumentException if the provided `$dir` is invalid.
138
+ */
139
+ public static function filesystem($dir)
140
+ {
141
+ return new self($dir);
142
+ }
143
+
144
+ /**
145
+ * Retrieves a list of valid versions for the specified service.
146
+ *
147
+ * @param string $service Service name
148
+ *
149
+ * @return array
150
+ */
151
+ public function getVersions($service)
152
+ {
153
+ if (!isset($this->manifest)) {
154
+ $this->buildVersionsList($service);
155
+ }
156
+
157
+ if (!isset($this->manifest[$service]['versions'])) {
158
+ return [];
159
+ }
160
+
161
+ return array_values(array_unique($this->manifest[$service]['versions']));
162
+ }
163
+
164
+ /**
165
+ * Execute the the provider.
166
+ *
167
+ * @param string $type Type of data ('api', 'waiter', 'paginator').
168
+ * @param string $service Service name.
169
+ * @param string $version API version.
170
+ *
171
+ * @return array|null
172
+ */
173
+ public function __invoke($type, $service, $version)
174
+ {
175
+ // Resolve the type or return null.
176
+ if (isset(self::$typeMap[$type])) {
177
+ $type = self::$typeMap[$type];
178
+ } else {
179
+ return null;
180
+ }
181
+
182
+ // Resolve the version or return null.
183
+ if (!isset($this->manifest)) {
184
+ $this->buildVersionsList($service);
185
+ }
186
+
187
+ if (!isset($this->manifest[$service]['versions'][$version])) {
188
+ return null;
189
+ }
190
+
191
+ $version = $this->manifest[$service]['versions'][$version];
192
+ $path = "{$this->modelsDir}/{$service}/{$version}/{$type}.json";
193
+
194
+ try {
195
+ return \Aws\load_compiled_json($path);
196
+ } catch (\InvalidArgumentException $e) {
197
+ return null;
198
+ }
199
+ }
200
+
201
+ /**
202
+ * @param string $modelsDir Directory containing service models.
203
+ * @param array $manifest The API version manifest data.
204
+ */
205
+ private function __construct($modelsDir, array $manifest = null)
206
+ {
207
+ $this->manifest = $manifest;
208
+ $this->modelsDir = rtrim($modelsDir, '/');
209
+ if (!is_dir($this->modelsDir)) {
210
+ throw new \InvalidArgumentException(
211
+ "The specified models directory, {$modelsDir}, was not found."
212
+ );
213
+ }
214
+ }
215
+
216
+ /**
217
+ * Build the versions list for the specified service by globbing the dir.
218
+ */
219
+ private function buildVersionsList($service)
220
+ {
221
+ $dir = "{$this->modelsDir}/{$service}/";
222
+
223
+ if (!is_dir($dir)) {
224
+ return;
225
+ }
226
+
227
+ // Get versions, remove . and .., and sort in descending order.
228
+ $results = array_diff(scandir($dir, SCANDIR_SORT_DESCENDING), ['..', '.']);
229
+
230
+ if (!$results) {
231
+ $this->manifest[$service] = ['versions' => []];
232
+ } else {
233
+ $this->manifest[$service] = [
234
+ 'versions' => [
235
+ 'latest' => $results[0]
236
+ ]
237
+ ];
238
+ $this->manifest[$service]['versions'] += array_combine($results, $results);
239
+ }
240
+ }
241
+ }
includes/aws/Aws/Api/DateTimeResult.php ADDED
@@ -0,0 +1,41 @@
1
+ <?php
2
+ namespace Aws\Api;
3
+
4
+ /**
5
+ * DateTime overrides that make DateTime work more seamlessly as a string,
6
+ * with JSON documents, and with JMESPath.
7
+ */
8
+ class DateTimeResult extends \DateTime implements \JsonSerializable
9
+ {
10
+ /**
11
+ * Create a new DateTimeResult from a unix timestamp.
12
+ *
13
+ * @param $unixTimestamp
14
+ *
15
+ * @return DateTimeResult
16
+ */
17
+ public static function fromEpoch($unixTimestamp)
18
+ {
19
+ return new self(gmdate('c', $unixTimestamp));
20
+ }
21
+
22
+ /**
23
+ * Serialize the DateTimeResult as an ISO 8601 date string.
24
+ *
25
+ * @return string
26
+ */
27
+ public function __toString()
28
+ {
29
+ return $this->format('c');
30
+ }
31
+
32
+ /**
33
+ * Serialize the date as an ISO 8601 date when serializing as JSON.
34
+ *
35
+ * @return mixed|string
36
+ */
37
+ public function jsonSerialize()
38
+ {
39
+ return (string) $this;
40
+ }
41
+ }
includes/aws/Aws/Api/DocModel.php ADDED
@@ -0,0 +1,128 @@
1
+ <?php
2
+ namespace Aws\Api;
3
+
4
+ /**
5
+ * Encapsulates the documentation strings for a given service-version and
6
+ * provides methods for extracting the desired parts related to a service,
7
+ * operation, error, or shape (i.e., parameter).
8
+ */
9
+ class DocModel
10
+ {
11
+ /** @var array */
12
+ private $docs;
13
+
14
+ /**
15
+ * @param array $docs
16
+ *
17
+ * @throws \RuntimeException
18
+ */
19
+ public function __construct(array $docs)
20
+ {
21
+ if (!extension_loaded('tidy')) {
22
+ throw new \RuntimeException('The "tidy" PHP extension is required.');
23
+ }
24
+
25
+ $this->docs = $docs;
26
+ }
27
+
28
+ /**
29
+ * Convert the doc model to an array.
30
+ *
31
+ * @return array
32
+ */
33
+ public function toArray()
34
+ {
35
+ return $this->docs;
36
+ }
37
+
38
+ /**
39
+ * Retrieves documentation about the service.
40
+ *
41
+ * @return null|string
42
+ */
43
+ public function getServiceDocs()
44
+ {
45
+ return isset($this->docs['service']) ? $this->docs['service'] : null;
46
+ }
47
+
48
+ /**
49
+ * Retrieves documentation about an operation.
50
+ *
51
+ * @param string $operation Name of the operation
52
+ *
53
+ * @return null|string
54
+ */
55
+ public function getOperationDocs($operation)
56
+ {
57
+ return isset($this->docs['operations'][$operation])
58
+ ? $this->docs['operations'][$operation]
59
+ : null;
60
+ }
61
+
62
+ /**
63
+ * Retrieves documentation about an error.
64
+ *
65
+ * @param string $error Name of the error
66
+ *
67
+ * @return null|string
68
+ */
69
+ public function getErrorDocs($error)
70
+ {
71
+ return isset($this->docs['shapes'][$error]['base'])
72
+ ? $this->docs['shapes'][$error]['base']
73
+ : null;
74
+ }
75
+
76
+ /**
77
+ * Retrieves documentation about a shape, specific to the context.
78
+ *
79
+ * @param string $shapeName Name of the shape.
80
+ * @param string $parentName Name of the parent/context shape.
81
+ * @param string $ref Name used by the context to reference the shape.
82
+ *
83
+ * @return null|string
84
+ */
85
+ public function getShapeDocs($shapeName, $parentName, $ref)
86
+ {
87
+ if (!isset($this->docs['shapes'][$shapeName])) {
88
+ return '';
89
+ }
90
+
91
+ $result = '';
92
+ $d = $this->docs['shapes'][$shapeName];
93
+ if (isset($d['refs']["{$parentName}\${ref}"])) {
94
+ $result = $d['refs']["{$parentName}\${ref}"];
95
+ } elseif (isset($d['base'])) {
96
+ $result = $d['base'];
97
+ }
98
+
99
+ if (isset($d['append'])) {
100
+ $result .= $d['append'];
101
+ }
102
+
103
+ return $this->clean($result);
104
+ }
105
+
106
+ private function clean($content)
107
+ {
108
+ if (!$content) {
109
+ return '';
110
+ }
111
+
112
+ $tidy = new \Tidy();
113
+ $tidy->parseString($content, [
114
+ 'indent' => true,
115
+ 'doctype' => 'omit',
116
+ 'output-html' => true,
117
+ 'show-body-only' => true,
118
+ 'drop-empty-paras' => true,
119
+ 'drop-font-tags' => true,
120
+ 'drop-proprietary-attributes' => true,
121
+ 'hide-comments' => true,
122
+ 'logical-emphasis' => true
123
+ ]);
124
+ $tidy->cleanRepair();
125
+
126
+ return (string) $content;
127
+ }
128
+ }
includes/aws/Aws/Api/ErrorParser/JsonParserTrait.php ADDED
@@ -0,0 +1,26 @@
1
+ <?php
2
+ namespace Aws\Api\ErrorParser;
3
+
4
+ use Aws\Api\Parser\PayloadParserTrait;
5
+ use Psr\Http\Message\ResponseInterface;
6
+
7
+ /**
8
+ * Provides basic JSON error parsing functionality.
9
+ */
10
+ trait JsonParserTrait
11
+ {
12
+ use PayloadParserTrait;
13
+
14
+ private function genericHandler(ResponseInterface $response)
15
+ {
16
+ $code = (string) $response->getStatusCode();
17
+
18
+ return [
19
+ 'request_id' => (string) $response->getHeaderLine('x-amzn-requestid'),
20
+ 'code' => null,
21
+ 'message' => null,
22
+ 'type' => $code[0] == '4' ? 'client' : 'server',
23
+ 'parsed' => $this->parseJson($response->getBody())
24
+ ];
25
+ }
26
+ }
includes/aws/Aws/Api/ErrorParser/JsonRpcErrorParser.php ADDED
@@ -0,0 +1,31 @@
1
+ <?php
2
+ namespace Aws\Api\ErrorParser;
3
+
4
+ use Psr\Http\Message\ResponseInterface;
5
+
6
+ /**
7
+ * Parsers JSON-RPC errors.
8
+ */
9
+ class JsonRpcErrorParser
10
+ {
11
+ use JsonParserTrait;
12
+
13
+ public function __invoke(ResponseInterface $response)
14
+ {
15
+ $data = $this->genericHandler($response);
16
+ // Make the casing consistent across services.
17
+ if ($data['parsed']) {
18
+ $data['parsed'] = array_change_key_case($data['parsed']);
19
+ }
20
+
21
+ if (isset($data['parsed']['__type'])) {
22
+ $parts = explode('#', $data['parsed']['__type']);
23
+ $data['code'] = isset($parts[1]) ? $parts[1] : $parts[0];
24
+ $data['message'] = isset($data['parsed']['message'])
25
+ ? $data['parsed']['message']
26
+ : null;
27
+ }
28
+
29
+ return $data;
30
+ }
31
+ }
includes/aws/Aws/Api/ErrorParser/RestJsonErrorParser.php ADDED
@@ -0,0 +1,35 @@
1
+ <?php
2
+ namespace Aws\Api\ErrorParser;
3
+
4
+ use Psr\Http\Message\ResponseInterface;
5
+
6
+ /**
7
+ * Parses JSON-REST errors.
8
+ */
9
+ class RestJsonErrorParser
10
+ {
11
+ use JsonParserTrait;
12
+
13
+ public function __invoke(ResponseInterface $response)
14
+ {
15
+ $data = $this->genericHandler($response);
16
+
17
+ // Merge in error data from the JSON body
18
+ if ($json = $data['parsed']) {
19
+ $data = array_replace($data, $json);
20
+ }
21
+
22
+ // Correct error type from services like Amazon Glacier
23
+ if (!empty($data['type'])) {
24
+ $data['type'] = strtolower($data['type']);
25
+ }
26
+
27
+ // Retrieve the error code from services like Amazon Elastic Transcoder
28
+ if ($code = $response->getHeaderLine('x-amzn-errortype')) {
29
+ $colon = strpos($code, ':');
30
+ $data['code'] = $colon ? substr($code, 0, $colon) : $code;
31
+ }
32
+
33
+ return $data;
34
+ }
35
+ }
includes/aws/Aws/Api/ErrorParser/XmlErrorParser.php ADDED
@@ -0,0 +1,82 @@
1
+ <?php
2
+ namespace Aws\Api\ErrorParser;
3
+
4
+ use Aws\Api\Parser\PayloadParserTrait;
5
+ use Psr\Http\Message\ResponseInterface;
6
+
7
+ /**
8
+ * Parses XML errors.
9
+ */
10
+ class XmlErrorParser
11
+ {
12
+ use PayloadParserTrait;
13
+
14
+ public function __invoke(ResponseInterface $response)
15
+ {
16
+ $code = (string) $response->getStatusCode();
17
+
18
+ $data = [
19
+ 'type' => $code[0] == '4' ? 'client' : 'server',
20
+ 'request_id' => null,
21
+ 'code' => null,
22
+ 'message' => null,
23
+ 'parsed' => null
24
+ ];
25
+
26
+ $body = $response->getBody();
27
+ if ($body->getSize() > 0) {
28
+ $this->parseBody($this->parseXml($body), $data);
29
+ } else {
30
+ $this->parseHeaders($response, $data);
31
+ }
32
+
33
+ return $data;
34
+ }
35
+
36
+ private function parseHeaders(ResponseInterface $response, array &$data)
37
+ {
38
+ if ($response->getStatusCode() == '404') {
39
+ $data['code'] = 'NotFound';
40
+ }
41
+
42
+ $data['message'] = $response->getStatusCode() . ' '
43
+ . $response->getReasonPhrase();
44
+
45
+ if ($requestId = $response->getHeaderLine('x-amz-request-id')) {
46
+ $data['request_id'] = $requestId;
47
+ $data['message'] .= " (Request-ID: $requestId)";
48
+ }
49
+ }
50
+
51
+ private function parseBody(\SimpleXMLElement $body, array &$data)
52
+ {
53
+ $data['parsed'] = $body;
54
+
55
+ $namespaces = $body->getDocNamespaces();
56
+ if (!isset($namespaces[''])) {
57
+ $prefix = '';
58
+ } else {
59
+ // Account for the default namespace being defined and PHP not
60
+ // being able to handle it :(.
61
+ $body->registerXPathNamespace('ns', $namespaces['']);
62
+ $prefix = 'ns:';
63
+ }
64
+
65
+ if ($tempXml = $body->xpath("//{$prefix}Code[1]")) {
66
+ $data['code'] = (string) $tempXml[0];
67
+ }
68
+
69
+ if ($tempXml = $body->xpath("//{$prefix}Message[1]")) {
70
+ $data['message'] = (string) $tempXml[0];
71
+ }
72
+
73
+ $tempXml = $body->xpath("//{$prefix}RequestId[1]");
74
+ if (empty($tempXml)) {
75
+ $tempXml = $body->xpath("//{$prefix}RequestID[1]");
76
+ }
77
+
78
+ if (isset($tempXml[0])) {
79
+ $data['request_id'] = (string) $tempXml[0];
80
+ }
81
+ }
82
+ }
includes/aws/Aws/Api/ListShape.php ADDED
@@ -0,0 +1,35 @@
1
+ <?php
2
+ namespace Aws\Api;
3
+
4
+ /**
5
+ * Represents a list shape.
6
+ */
7
+ class ListShape extends Shape
8
+ {
9
+ private $member;
10
+
11
+ public function __construct(array $definition, ShapeMap $shapeMap)
12
+ {
13
+ $definition['type'] = 'list';
14
+ parent::__construct($definition, $shapeMap);
15
+ }
16
+
17
+ /**
18
+ * @return Shape
19
+ * @throws \RuntimeException if no member is specified
20
+ */
21
+ public function getMember()
22
+ {
23
+ if (!$this->member) {
24
+ if (!isset($this->definition['member'])) {
25
+ throw new \RuntimeException('No member attribute specified');
26
+ }
27
+ $this->member = Shape::create(
28
+ $this->definition['member'],
29
+ $this->shapeMap
30
+ );
31
+ }
32
+
33
+ return $this->member;
34
+ }
35
+ }
includes/aws/Aws/Api/MapShape.php ADDED
@@ -0,0 +1,54 @@
1
+ <?php
2
+ namespace Aws\Api;
3
+
4
+ /**
5
+ * Represents a map shape.
6
+ */
7
+ class MapShape extends Shape
8
+ {
9
+ /** @var Shape */
10
+ private $value;
11
+
12
+ /** @var Shape */
13
+ private $key;
14
+
15
+ public function __construct(array $definition, ShapeMap $shapeMap)
16
+ {
17
+ $definition['type'] = 'map';
18
+ parent::__construct($definition, $shapeMap);
19
+ }
20
+
21
+ /**
22
+ * @return Shape
23
+ * @throws \RuntimeException if no value is specified
24
+ */
25
+ public function getValue()
26
+ {
27
+ if (!$this->value) {
28
+ if (!isset($this->definition['value'])) {
29
+ throw new \RuntimeException('No value specified');
30
+ }
31
+
32
+ $this->value = Shape::create(
33
+ $this->definition['value'],
34
+ $this->shapeMap
35
+ );
36
+ }
37
+
38
+ return $this->value;
39
+ }
40
+
41
+ /**
42
+ * @return Shape
43
+ */
44
+ public function getKey()
45
+ {
46
+ if (!$this->key) {
47
+ $this->key = isset($this->definition['key'])
48
+ ? Shape::create($this->definition['key'], $this->shapeMap)
49
+ : new Shape(['type' => 'string'], $this->shapeMap);
50
+ }
51
+
52
+ return $this->key;
53
+ }
54
+ }
includes/aws/Aws/Api/Operation.php ADDED
@@ -0,0 +1,97 @@