Changeset 3338484
- Timestamp:
- 08/03/2025 03:36:32 PM (8 months ago)
- Location:
- advanced-responsive-video-embedder
- Files:
-
- 89 added
- 49 deleted
- 58 edited
- 1 copied
-
assets/arve.svg (deleted)
-
assets/banner-1544x500.png (modified) (previous)
-
assets/banner-772x250.png (modified) (previous)
-
assets/blueprints/blueprint-classic-editor.json (deleted)
-
assets/blueprints/blueprint.json (modified) (1 diff)
-
assets/blueprints/post-content-classic-editor.md (deleted)
-
assets/icon-128x128.png (modified) (previous)
-
assets/org.png (added)
-
assets/org.xcf (added)
-
assets/org2.png (added)
-
assets/screenshot-1.png (deleted)
-
assets/screenshot-2.png (deleted)
-
assets/screenshot-3.png (deleted)
-
assets/screenshot-4.png (deleted)
-
assets/screenshot-5.png (deleted)
-
assets/screenshot-6.png (deleted)
-
tags/1.0.5 (copied) (copied from advanced-responsive-video-embedder/trunk)
-
tags/1.0.5/advanced-responsive-video-embedder.php (deleted)
-
tags/1.0.5/build (deleted)
-
tags/1.0.5/changelog-2021.md (deleted)
-
tags/1.0.5/changelog.md (deleted)
-
tags/1.0.5/composer.json (modified) (3 diffs)
-
tags/1.0.5/composer.lock (modified) (4 diffs)
-
tags/1.0.5/license.txt (modified) (4 diffs)
-
tags/1.0.5/php/Admin (deleted)
-
tags/1.0.5/php/ElementorWidget.php (deleted)
-
tags/1.0.5/php/Video.php (deleted)
-
tags/1.0.5/php/fn-assets.php (deleted)
-
tags/1.0.5/php/fn-cache.php (deleted)
-
tags/1.0.5/php/fn-html-output.php (deleted)
-
tags/1.0.5/php/fn-misc.php (deleted)
-
tags/1.0.5/php/fn-oembed.php (deleted)
-
tags/1.0.5/php/fn-settings.php (modified) (3 diffs)
-
tags/1.0.5/php/fn-shortcode-args.php (deleted)
-
tags/1.0.5/php/fn-shortcode-data.php (deleted)
-
tags/1.0.5/php/fn-shortcodes.php (deleted)
-
tags/1.0.5/php/fn-todo-query-args.php (deleted)
-
tags/1.0.5/php/fn-url-handlers.php (deleted)
-
tags/1.0.5/php/fn-validation.php (deleted)
-
tags/1.0.5/php/init.php (modified) (1 diff)
-
tags/1.0.5/php/providers.php (deleted)
-
tags/1.0.5/php/tweaks (added)
-
tags/1.0.5/php/tweaks-standalone (added)
-
tags/1.0.5/php/tweaks-standalone/convert-jpeg-to-avif.php (added)
-
tags/1.0.5/php/tweaks-standalone/dequeue-jquery-migrate.php (added)
-
tags/1.0.5/php/tweaks-standalone/disable-auto-trash-emptying.php (added)
-
tags/1.0.5/php/tweaks-standalone/disable-cf7-autop.php (added)
-
tags/1.0.5/php/tweaks-standalone/disable-cf7-css.php (added)
-
tags/1.0.5/php/tweaks-standalone/disable-comments.php (added)
-
tags/1.0.5/php/tweaks-standalone/disable-email-login.php (added)
-
tags/1.0.5/php/tweaks-standalone/disable-emojis.php (added)
-
tags/1.0.5/php/tweaks-standalone/disable-feeds.php (added)
-
tags/1.0.5/php/tweaks-standalone/disable-non-production-emails.php (added)
-
tags/1.0.5/php/tweaks-standalone/disable-rest-api.php (added)
-
tags/1.0.5/php/tweaks-standalone/disable-ssl-verify-self.php (added)
-
tags/1.0.5/php/tweaks-standalone/disable-success-update-emails.php (added)
-
tags/1.0.5/php/tweaks-standalone/disable-xmlrpc-allow-jetpack-ips.php (added)
-
tags/1.0.5/php/tweaks-standalone/disable-xmlrpc.php (added)
-
tags/1.0.5/php/tweaks-standalone/disallow-file-edit.php (added)
-
tags/1.0.5/php/tweaks-standalone/enable-clean-upload-filenames.php (added)
-
tags/1.0.5/php/tweaks-standalone/enable-duplicate-post.php (added)
-
tags/1.0.5/php/tweaks-standalone/enable-fonts-to-uploads.php (added)
-
tags/1.0.5/php/tweaks-standalone/enable-jetpack-offline-mode.php (added)
-
tags/1.0.5/php/tweaks-standalone/enable-maintenance-mode.php (added)
-
tags/1.0.5/php/tweaks-standalone/enable-relative-urls.php (added)
-
tags/1.0.5/php/tweaks-standalone/enable-script-optimizer.php (added)
-
tags/1.0.5/php/tweaks-standalone/remove-admin-bar-logo.php (added)
-
tags/1.0.5/php/tweaks-standalone/remove-asset-attr.php (added)
-
tags/1.0.5/php/tweaks-standalone/remove-asset-ver-parameter.php (added)
-
tags/1.0.5/php/tweaks-standalone/remove-exif.php (added)
-
tags/1.0.5/php/tweaks-standalone/remove-rest-api-links.php (added)
-
tags/1.0.5/php/tweaks-standalone/remove-wp-version.php (added)
-
tags/1.0.5/php/tweaks-standalone/search-single-result-redirect.php (added)
-
tags/1.0.5/php/tweaks/admin-bar-greeting.js (added)
-
tags/1.0.5/php/tweaks/admin-bar-greeting.php (added)
-
tags/1.0.5/php/tweaks/image-quality.php (added)
-
tags/1.0.5/php/tweaks/revisions-to-keep.php (added)
-
tags/1.0.5/php/tweaks/scroll-progress-bar.css (added)
-
tags/1.0.5/php/tweaks/scroll-progress-bar.js (added)
-
tags/1.0.5/php/tweaks/scroll-progress-bar.php (added)
-
tags/1.0.5/php/tweaks/trash-keep-days.php (added)
-
tags/1.0.5/php/tweaks/user-agent.php (added)
-
tags/1.0.5/readme-src.md (added)
-
tags/1.0.5/readme.md (modified) (1 diff)
-
tags/1.0.5/readme.txt (modified) (1 diff)
-
tags/1.0.5/src (deleted)
-
tags/1.0.5/tweakmaster.php (added)
-
tags/1.0.5/vendor/autoload.php (modified) (1 diff)
-
tags/1.0.5/vendor/autoload_packages.php (modified) (1 diff)
-
tags/1.0.5/vendor/composer/autoload_real.php (modified) (2 diffs)
-
tags/1.0.5/vendor/composer/autoload_static.php (modified) (2 diffs)
-
tags/1.0.5/vendor/composer/installed.json (modified) (3 diffs)
-
tags/1.0.5/vendor/composer/installed.php (modified) (3 diffs)
-
tags/1.0.5/vendor/jetpack-autoloader/class-autoloader-handler.php (modified) (1 diff)
-
tags/1.0.5/vendor/jetpack-autoloader/class-autoloader-locator.php (modified) (1 diff)
-
tags/1.0.5/vendor/jetpack-autoloader/class-autoloader.php (modified) (1 diff)
-
tags/1.0.5/vendor/jetpack-autoloader/class-container.php (modified) (1 diff)
-
tags/1.0.5/vendor/jetpack-autoloader/class-hook-manager.php (modified) (1 diff)
-
tags/1.0.5/vendor/jetpack-autoloader/class-latest-autoloader-guard.php (modified) (1 diff)
-
tags/1.0.5/vendor/jetpack-autoloader/class-manifest-reader.php (modified) (1 diff)
-
tags/1.0.5/vendor/jetpack-autoloader/class-path-processor.php (modified) (1 diff)
-
tags/1.0.5/vendor/jetpack-autoloader/class-php-autoloader.php (modified) (1 diff)
-
tags/1.0.5/vendor/jetpack-autoloader/class-plugin-locator.php (modified) (1 diff)
-
tags/1.0.5/vendor/jetpack-autoloader/class-plugins-handler.php (modified) (1 diff)
-
tags/1.0.5/vendor/jetpack-autoloader/class-shutdown-handler.php (modified) (1 diff)
-
tags/1.0.5/vendor/jetpack-autoloader/class-version-loader.php (modified) (1 diff)
-
tags/1.0.5/vendor/jetpack-autoloader/class-version-selector.php (modified) (1 diff)
-
trunk/advanced-responsive-video-embedder.php (deleted)
-
trunk/build (deleted)
-
trunk/changelog-2021.md (deleted)
-
trunk/changelog.md (deleted)
-
trunk/composer.json (modified) (3 diffs)
-
trunk/composer.lock (modified) (4 diffs)
-
trunk/license.txt (modified) (4 diffs)
-
trunk/php/Admin (deleted)
-
trunk/php/ElementorWidget.php (deleted)
-
trunk/php/Video.php (deleted)
-
trunk/php/fn-assets.php (deleted)
-
trunk/php/fn-cache.php (deleted)
-
trunk/php/fn-html-output.php (deleted)
-
trunk/php/fn-misc.php (deleted)
-
trunk/php/fn-oembed.php (deleted)
-
trunk/php/fn-settings.php (modified) (3 diffs)
-
trunk/php/fn-shortcode-args.php (deleted)
-
trunk/php/fn-shortcode-data.php (deleted)
-
trunk/php/fn-shortcodes.php (deleted)
-
trunk/php/fn-todo-query-args.php (deleted)
-
trunk/php/fn-url-handlers.php (deleted)
-
trunk/php/fn-validation.php (deleted)
-
trunk/php/init.php (modified) (1 diff)
-
trunk/php/providers.php (deleted)
-
trunk/php/tweaks (added)
-
trunk/php/tweaks-standalone (added)
-
trunk/php/tweaks-standalone/convert-jpeg-to-avif.php (added)
-
trunk/php/tweaks-standalone/dequeue-jquery-migrate.php (added)
-
trunk/php/tweaks-standalone/disable-auto-trash-emptying.php (added)
-
trunk/php/tweaks-standalone/disable-cf7-autop.php (added)
-
trunk/php/tweaks-standalone/disable-cf7-css.php (added)
-
trunk/php/tweaks-standalone/disable-comments.php (added)
-
trunk/php/tweaks-standalone/disable-email-login.php (added)
-
trunk/php/tweaks-standalone/disable-emojis.php (added)
-
trunk/php/tweaks-standalone/disable-feeds.php (added)
-
trunk/php/tweaks-standalone/disable-non-production-emails.php (added)
-
trunk/php/tweaks-standalone/disable-rest-api.php (added)
-
trunk/php/tweaks-standalone/disable-ssl-verify-self.php (added)
-
trunk/php/tweaks-standalone/disable-success-update-emails.php (added)
-
trunk/php/tweaks-standalone/disable-xmlrpc-allow-jetpack-ips.php (added)
-
trunk/php/tweaks-standalone/disable-xmlrpc.php (added)
-
trunk/php/tweaks-standalone/disallow-file-edit.php (added)
-
trunk/php/tweaks-standalone/enable-clean-upload-filenames.php (added)
-
trunk/php/tweaks-standalone/enable-duplicate-post.php (added)
-
trunk/php/tweaks-standalone/enable-fonts-to-uploads.php (added)
-
trunk/php/tweaks-standalone/enable-jetpack-offline-mode.php (added)
-
trunk/php/tweaks-standalone/enable-maintenance-mode.php (added)
-
trunk/php/tweaks-standalone/enable-relative-urls.php (added)
-
trunk/php/tweaks-standalone/enable-script-optimizer.php (added)
-
trunk/php/tweaks-standalone/remove-admin-bar-logo.php (added)
-
trunk/php/tweaks-standalone/remove-asset-attr.php (added)
-
trunk/php/tweaks-standalone/remove-asset-ver-parameter.php (added)
-
trunk/php/tweaks-standalone/remove-exif.php (added)
-
trunk/php/tweaks-standalone/remove-rest-api-links.php (added)
-
trunk/php/tweaks-standalone/remove-wp-version.php (added)
-
trunk/php/tweaks-standalone/search-single-result-redirect.php (added)
-
trunk/php/tweaks/admin-bar-greeting.js (added)
-
trunk/php/tweaks/admin-bar-greeting.php (added)
-
trunk/php/tweaks/image-quality.php (added)
-
trunk/php/tweaks/revisions-to-keep.php (added)
-
trunk/php/tweaks/scroll-progress-bar.css (added)
-
trunk/php/tweaks/scroll-progress-bar.js (added)
-
trunk/php/tweaks/scroll-progress-bar.php (added)
-
trunk/php/tweaks/trash-keep-days.php (added)
-
trunk/php/tweaks/user-agent.php (added)
-
trunk/readme-src.md (added)
-
trunk/readme.md (modified) (1 diff)
-
trunk/readme.txt (modified) (1 diff)
-
trunk/src (deleted)
-
trunk/tweakmaster.php (added)
-
trunk/vendor/autoload.php (modified) (1 diff)
-
trunk/vendor/autoload_packages.php (modified) (1 diff)
-
trunk/vendor/composer/autoload_real.php (modified) (2 diffs)
-
trunk/vendor/composer/autoload_static.php (modified) (2 diffs)
-
trunk/vendor/composer/installed.json (modified) (3 diffs)
-
trunk/vendor/composer/installed.php (modified) (3 diffs)
-
trunk/vendor/jetpack-autoloader/class-autoloader-handler.php (modified) (1 diff)
-
trunk/vendor/jetpack-autoloader/class-autoloader-locator.php (modified) (1 diff)
-
trunk/vendor/jetpack-autoloader/class-autoloader.php (modified) (1 diff)
-
trunk/vendor/jetpack-autoloader/class-container.php (modified) (1 diff)
-
trunk/vendor/jetpack-autoloader/class-hook-manager.php (modified) (1 diff)
-
trunk/vendor/jetpack-autoloader/class-latest-autoloader-guard.php (modified) (1 diff)
-
trunk/vendor/jetpack-autoloader/class-manifest-reader.php (modified) (1 diff)
-
trunk/vendor/jetpack-autoloader/class-path-processor.php (modified) (1 diff)
-
trunk/vendor/jetpack-autoloader/class-php-autoloader.php (modified) (1 diff)
-
trunk/vendor/jetpack-autoloader/class-plugin-locator.php (modified) (1 diff)
-
trunk/vendor/jetpack-autoloader/class-plugins-handler.php (modified) (1 diff)
-
trunk/vendor/jetpack-autoloader/class-shutdown-handler.php (modified) (1 diff)
-
trunk/vendor/jetpack-autoloader/class-version-loader.php (modified) (1 diff)
-
trunk/vendor/jetpack-autoloader/class-version-selector.php (modified) (1 diff)
Legend:
- Unmodified
- Added
- Removed
-
advanced-responsive-video-embedder/assets/blueprints/blueprint.json
r3203116 r3338484 2 2 "$schema": "https://playground.wordpress.net/blueprint-schema.json", 3 3 "preferredVersions": { 4 "php": "8. 2",4 "php": "8.3", 5 5 "wp": "latest" 6 6 }, 7 7 "siteOptions": { 8 "blogname": " ARVETesting Playground",9 "blogdescription": "Test ARVE",8 "blogname": "Tweakmaster Testing Playground", 9 "blogdescription": "Test Tweakmaster", 10 10 "permalink_structure": "/%postname%/" 11 11 }, 12 "landingPage": "\/wp-admin\/post.php?post=4&action=edit", 13 "features": { 14 "networking": true 15 }, 16 "login": true, 17 "steps": [ 18 { 19 "step": "writeFile", 20 "path": "/wordpress/wp-content/post-content-classic-editor.md", 21 "data": { 22 "resource": "url", 23 "url": "https://raw.githubusercontent.com/nextgenthemes/advanced-responsive-video-embedder/refs/heads/master/.wordpress-org/blueprints/post-content-classic-editor.md" 24 } 25 }, 26 { 27 "step": "wp-cli", 28 "command": "wp post create --post_title='ARVE Test' --post_status='published' /wordpress/wp-content/post-content-classic-editor.md" 29 } 30 ] 12 "landingPage": "\/wp-admin\/post.php?options-general.php?page=nextgenthemes_tweakmaster", 13 "login": true 31 14 } -
advanced-responsive-video-embedder/tags/1.0.5/composer.json
r3338450 r3338484 1 1 { 2 "name": "nextgenthemes/advanced-responsive-video-embedder", 3 "description": "ARVE Advanced Responsive Video Embedder", 2 "name": "nextgenthemes/tweakmaster", 4 3 "type": "wordpress-plugin", 5 4 "license": "GPL-3.0", 5 "description": "TweakMaster - A collection or performance, privacy, security and other tweaks..", 6 6 "authors": [ 7 7 { 8 "name": "Nicolas Jonas", 9 "homepage": "https://nextgenthemes.com", 10 "role": "Developer" 8 "name": "Nicolas Jonas" 11 9 } 12 10 ], … … 15 13 }, 16 14 "require-dev": { 17 " nextgenthemes/wp-settings": "@dev",18 " automattic/jetpack-autoloader": "^v5.0.2"15 "automattic/jetpack-autoloader": "^v5.0.3", 16 "nextgenthemes/wp-settings": "@dev" 19 17 }, 20 18 "config": { … … 27 25 } 28 26 }, 29 "repositories": {30 "nextgenthemes/wp-settings": {31 "type": "path",32 "url": "../../../../../../dev/composer-packages/wp-settings",33 "options": {34 "symlink": false35 }36 }37 },38 27 "scripts": { 39 28 "build": [ 40 "./bin/block-json",41 29 "./bin/build-readme", 42 "npm run build:arve", 43 "npm run build:common", 44 "@composer update", 45 "@composer update --working-dir=tests" 46 ], 47 "pre-update-cmd": [ 48 "./bin/sync-wp-settings" 49 ], 50 "tests": [ 51 "cd ${HOME}/websites && NGT_PHPUNIT_LOAD_PLUGINS=\"advanced-responsive-video-embedder\" phpunit --testsuite advanced-responsive-video-embedder" 30 "cp ../advanced-responsive-video-embedder/bin/install-wp-tests.sh ./bin/", 31 "cp ../advanced-responsive-video-embedder/tests/phpunit-debug-helpers.php ./tests/", 32 "cp ../advanced-responsive-video-embedder/.gitignore ./", 33 "@composer update" 52 34 ] 53 35 } -
advanced-responsive-video-embedder/tags/1.0.5/composer.lock
r3338450 r3338484 5 5 "This file is @generated automatically" 6 6 ], 7 "content-hash": " 91159bc166283f1570929cfd93e02a88",7 "content-hash": "dc4a6d1b65d3b499ca79a68a51744651", 8 8 "packages": [], 9 9 "packages-dev": [ … … 76 76 "name": "nextgenthemes/wp-settings", 77 77 "version": "dev-master", 78 "source": { 79 "type": "git", 80 "url": "https://github.com/nextgenthemes/wp-settings.git", 81 "reference": "4e26cd875e2ba18f6f1bb523ef51d01ec7f7869d" 82 }, 78 83 "dist": { 79 "type": "path", 80 "url": "../../../../../../dev/composer-packages/wp-settings", 81 "reference": "4e26cd875e2ba18f6f1bb523ef51d01ec7f7869d" 84 "type": "zip", 85 "url": "https://api.github.com/repos/nextgenthemes/wp-settings/zipball/4e26cd875e2ba18f6f1bb523ef51d01ec7f7869d", 86 "reference": "4e26cd875e2ba18f6f1bb523ef51d01ec7f7869d", 87 "shasum": "" 82 88 }, 83 89 "require": { 84 90 "php": ">=7.4" 85 91 }, 92 "default-branch": true, 86 93 "type": "library", 87 94 "autoload": { … … 90 97 ] 91 98 }, 99 "notification-url": "https://packagist.org/downloads/", 92 100 "license": [ 93 101 "GPL-3.0" … … 98 106 } 99 107 ], 100 " transport-options": {101 "s ymlink": false,102 "relative": true103 }108 "support": { 109 "source": "https://github.com/nextgenthemes/wp-settings/tree/master" 110 }, 111 "time": "2025-08-03T12:18:07+00:00" 104 112 } 105 113 ], -
advanced-responsive-video-embedder/tags/1.0.5/license.txt
r2484697 r3338484 1 Nicolas Jonas 2 https://nextgenthemes.com 3 1 4 GNU GENERAL PUBLIC LICENSE 2 5 Version 3, 29 June 2007 3 6 4 Copyright (C) 2007 Free Software Foundation, Inc. <http ://fsf.org/>7 Copyright (C) 2007 Free Software Foundation, Inc. <https://fsf.org/> 5 8 Everyone is permitted to copy and distribute verbatim copies 6 9 of this license document, but changing it is not allowed. … … 646 649 647 650 You should have received a copy of the GNU General Public License 648 along with this program. If not, see <http ://www.gnu.org/licenses/>.651 along with this program. If not, see <https://www.gnu.org/licenses/>. 649 652 650 653 Also add information on how to contact you by electronic and paper mail. … … 665 668 if any, to sign a "copyright disclaimer" for the program, if necessary. 666 669 For more information on this, and how to apply and follow the GNU GPL, see 667 <http ://www.gnu.org/licenses/>.670 <https://www.gnu.org/licenses/>. 668 671 669 672 The GNU General Public License does not permit incorporating your program … … 672 675 the library. If this is what you want to do, use the GNU Lesser General 673 676 Public License instead of this License. But first, please read 674 <http ://www.gnu.org/philosophy/why-not-lgpl.html>.677 <https://www.gnu.org/licenses/why-not-lgpl.html>. -
advanced-responsive-video-embedder/tags/1.0.5/php/fn-settings.php
r3252812 r3338484 3 3 declare(strict_types = 1); 4 4 5 namespace Nextgenthemes\ ARVE;5 namespace Nextgenthemes\TweakMaster; 6 6 7 7 use Nextgenthemes\WP\Settings; 8 8 use Nextgenthemes\WP\SettingsData; 9 use function Nextgenthemes\WP\nextgenthemes_settings_instance;10 9 11 10 function settings_instance(): Settings { … … 18 17 array( 19 18 'namespace' => __NAMESPACE__, 20 'settings' => settings( 'settings_page' ),21 'tabs' => settings_tabs(),22 'menu_title' => __( 'ARVE', 'advanced-responsive-video-embedder' ),23 'settings_page_title' => __( 'ARVE Settings', 'advanced-responsive-video-embedder' ),24 'plugin_file' => PLUGIN_FILE,25 19 'base_url' => plugins_url( '', PLUGIN_FILE ), 26 20 'base_path' => PLUGIN_DIR, 21 'plugin_file' => PLUGIN_FILE, 22 'settings' => settings_data(), 23 'menu_title' => esc_html__( 'TweakMaster', 'tweakmaster' ), 24 'settings_page_title' => esc_html__( 'TweakMaster', 'tweakmaster' ), 25 'tabs' => array( 26 'general' => array( 'title' => __( 'General', 'tweakmaster' ) ), 27 'privacy' => array( 'title' => __( 'Privacy', 'tweakmaster' ) ), 28 'media' => array( 'title' => __( 'Media', 'tweakmaster' ) ), 29 'revisions' => array( 'title' => __( 'Revisions', 'tweakmaster' ) ), 30 'security' => array( 'title' => __( 'Security', 'tweakmaster' ) ), 31 'performance' => array( 'title' => __( 'Performance', 'tweakmaster' ) ), 32 'plugins' => array( 'title' => __( 'Plugins', 'tweakmaster' ) ), 33 'tools' => array( 'title' => __( 'Tools', 'tweakmaster' ) ), 34 ), 27 35 ) 28 36 ); … … 40 48 } 41 49 42 function settings_tabs(): array { 43 44 return array( 45 'main' => [ 46 'title' => __( 'Main', 'advanced-responsive-video-embedder' ), 47 ], 48 'pro' => [ 49 'title' => __( 'Pro', 'advanced-responsive-video-embedder' ), 50 'premium_link' => sprintf( 51 '<a href="%s">%s</a>', 52 'https://nextgenthemes.com/plugins/arve-pro/', 53 __( 'Pro Addon', 'advanced-responsive-video-embedder' ) 50 function settings_data(): SettingsData { 51 $settings = array_merge( 52 general_settings(), 53 privacy_settings(), 54 media_settings(), 55 revision_settings(), 56 security_settings(), 57 performance_settings(), 58 plugins_settings(), 59 tools_settings() 60 ); 61 62 return new SettingsData( $settings ); 63 } 64 65 function general_settings(): array { 66 return array( 67 'remove-asset-ver-parameter' => array( 68 'tab' => 'general', 69 'label' => __( 'Remove version query strings', 'tweakmaster' ), 70 'description' => __( 'Removes <code>?ver=1.2.3</code> from all styles and scripts.', 'tweakmaster' ), 71 'type' => 'boolean', 72 'default' => false, 73 ), 74 'disable-feeds' => array( 75 'tab' => 'general', 76 'label' => __( 'Disable feeds', 'tweakmaster' ), 77 'type' => 'boolean', 78 'default' => false, 79 ), 80 'disable-emojis' => array( 81 'tab' => 'general', 82 'label' => __( 'Disable emojis', 'tweakmaster' ), 83 'type' => 'boolean', 84 'default' => false, 85 ), 86 'search-single-result-redirect' => array( 87 'tab' => 'general', 88 'label' => __( 'Search single result redirect', 'tweakmaster' ), 89 'type' => 'boolean', 90 'default' => false, 91 ), 92 'disallow-file-edit' => array( 93 'tab' => 'general', 94 'label' => __( 'Disallow File Edits', 'tweakmaster' ), 95 'description' => __( 'Disables the ability to edit files in the file manager. Sets <code>DISALLOW_FILE_EDIT</code> constant to true. Does only work if the constant is already defined, usually in wp-config.php', 'tweakmaster' ), 96 'type' => 'boolean', 97 'default' => false, 98 ), 99 'admin-bar-greeting' => array( 100 'tab' => 'general', 101 'label' => __( 'Admin bar greeting', 'tweakmaster' ), 102 'description' => __( 'Replace "Howdy, {name}" with a custom message. Use <code>{name}</code> for the user\'s display name. For example <code>Hi, {name}!</code>. Leave empty for no greeting. Use <code>default</code> for the default greeting, preventing the tweak from running.', 'tweakmaster' ), 103 'type' => 'string', 104 'default' => 'default', 105 ), 106 'enable-fonts-to-uploads' => array( 107 'tab' => 'general', 108 'label' => __( 'Enable fonts to uploads', 'tweakmaster' ), 109 'description' => __( 'Move (Google) Fonts enabled in the Block Editor from wp-content/fonts to wp-content/uploads', 'tweakmaster' ), 110 'type' => 'boolean', 111 'default' => false, 112 ), 113 'disable-auto-trash-emptying' => array( 114 'tab' => 'general', 115 'label' => __( 'Disable auto trash emptying', 'tweakmaster' ), 116 'type' => 'boolean', 117 'default' => false, 118 ), 119 'trash-keep-days' => array( 120 'tab' => 'general', 121 'label' => __( 'Set trash keep days', 'tweakmaster' ), 122 'description' => __( 'Set the number of days to keep posts in the trash. Default is 30 days.', 'tweakmaster' ), 123 'type' => 'integer', 124 'default' => 30, 125 ), 126 'scroll-progress-bar' => array( 127 'tab' => 'general', 128 'label' => __( 'Scroll progress bar', 'tweakmaster' ), 129 'type' => 'boolean', 130 'default' => false, 131 ), 132 'scroll-progress-bar-progress-bg-color' => array( 133 'tab' => 'general', 134 'label' => __( 'Scroll progress color', 'tweakmaster' ), 135 'type' => 'string', 136 'description' => sprintf( 137 'And valid css will work. You can use <a href="%s" target="_blank">this color picker!</a>.', 138 'https://oklch.com' 54 139 ), 55 ], 56 'privacy' => [ 57 'title' => __( 'Extra Privacy', 'advanced-responsive-video-embedder' ), 58 'premium_link' => sprintf( 59 '<a href="%s">%s</a>', 60 'https://nextgenthemes.com/plugins/arve-privacy/', 61 __( 'Privacy Addon', 'advanced-responsive-video-embedder' ) 62 ), 63 ], 64 'sticky_videos' => [ 65 'title' => __( 'Sticky Videos', 'advanced-responsive-video-embedder' ), 66 'premium_link' => sprintf( 67 '<a href="%s">%s</a>', 68 'https://nextgenthemes.com/plugins/arve-sticky-videos/', 69 __( 'Sticky Videos Addon', 'advanced-responsive-video-embedder' ) 70 ), 71 ], 72 'random_video' => [ 73 'title' => __( 'Random Video', 'advanced-responsive-video-embedder' ), 74 'premium_link' => sprintf( 75 '<a href="%s">%s</a>', 76 'https://nextgenthemes.com/plugins/arve-random-video/', 77 __( 'Random Videos Addon', 'advanced-responsive-video-embedder' ) 78 ), 79 'reset_button' => false, 80 ], 81 'urlparams' => [ 82 'title' => __( 'URL Parameters', 'advanced-responsive-video-embedder' ), 83 ], 84 'html5' => [ 85 'title' => __( 'Video Files', 'advanced-responsive-video-embedder' ), 86 ], 87 'debug' => [ 88 'title' => __( 'Debug', 'advanced-responsive-video-embedder' ), 89 ], 90 ); 91 } 92 93 function init_nextgenthemes_settings(): void { 94 95 nextgenthemes_settings_instance( 96 plugins_url( '', PLUGIN_FILE ), 97 PLUGIN_DIR 98 ); 99 } 100 101 function settings( string $context = 'settings_page' ): SettingsData { 102 103 $settings = settings_data(); 104 105 if ( in_array( $context, array( 'gutenberg_block', 'shortcode' ), true ) ) { 106 107 foreach ( $settings->get_all() as $k => $s ) { 108 if ( ! $s->shortcode ) { 109 $settings->remove( $k ); 110 continue; 111 } 112 113 if ( 'boolean' === $s->type && $s->option ) { 114 $s->bool_option_to_select(); 115 } 140 'default' => 'var(--wp--preset--color--primary, oklch(45.44% 0.1924 270 / 78.17%))', 141 ), 142 'scroll-progress-bar-bg-color' => array( 143 'tab' => 'general', 144 'label' => __( 'Scroll progress bar background color', 'tweakmaster' ), 145 'type' => 'string', 146 'default' => 'transparent', 147 ), 148 'scroll-progress-bar-progress-height' => array( 149 'tab' => 'general', 150 'label' => __( 'Scroll progress height', 'tweakmaster' ), 151 'type' => 'string', 152 'default' => '0.4rem', 153 ), 154 'disable-ssl-verify-self' => array( 155 'tab' => 'general', 156 'label' => __( 'Disable self SSL verify', 'tweakmaster' ), 157 'type' => 'boolean', 158 'default' => false, 159 ), 160 // 'disable-auto-updates' => array( 161 // 'tab' => 'general', 162 // 'label' => __( 'Disable Auto Updates', 'tweakmaster' ), 163 // 'type' => 'boolean', 164 // 'default' => false, 165 // ), 166 'disable-comments' => array( 167 'tab' => 'general', 168 'label' => __( 'Disable Comments', 'tweakmaster' ), 169 'type' => 'boolean', 170 'default' => false, 171 ), 172 'disable-email-login' => array( 173 'tab' => 'general', 174 'label' => __( 'Disable Email Login', 'tweakmaster' ), 175 'type' => 'boolean', 176 'default' => false, 177 ), 178 'disable-rest-api' => array( 179 'tab' => 'general', 180 'label' => __( 'Disable REST API', 'tweakmaster' ), 181 'type' => 'boolean', 182 'default' => false, 183 ), 184 'disable-success-update-emails' => array( 185 'tab' => 'general', 186 'label' => __( 'Disable Success Update Emails', 'tweakmaster' ), 187 'type' => 'boolean', 188 'default' => false, 189 ), 190 'remove-admin-bar-logo' => array( 191 'tab' => 'general', 192 'label' => __( 'Remove Admin Bar WordPress Logo', 'tweakmaster' ), 193 'description' => __( 'Requires a hard refresh of the page to take effect.', 'tweakmaster' ), 194 'type' => 'boolean', 195 'default' => false, 196 ), 197 'remove-asset-attr' => array( 198 'tab' => 'general', 199 'label' => __( 'Remove Asset Attributes', 'tweakmaster' ), 200 'type' => 'boolean', 201 'default' => false, 202 ), 203 'disable-non-production-emails' => array( 204 'tab' => 'general', 205 'label' => __( 'Disable Non Production Emails', 'tweakmaster' ), 206 'description' => __( 'If WP_ENV (Trellis) or wp_get_environment_type is not production, emails sending is mocked.', 'tweakmaster' ), 207 'type' => 'boolean', 208 'default' => false, 209 ), 210 'remove-rest-api-links' => array( 211 'tab' => 'general', 212 'label' => __( 'Remove REST API links', 'tweakmaster' ), 213 'type' => 'boolean', 214 'default' => false, 215 ), 216 ); 217 } 218 219 function security_settings(): array { 220 221 ob_start(); 222 wp_generator(); 223 $generator_html = ob_get_clean(); 224 225 $remove_wp_version_description = wp_kses( 226 sprintf( 227 /* translators: %s: example of a "generator" meta tag */ 228 __( 'Remove <code>%s</code> from html head', 'tweakmaster' ), 229 esc_html( $generator_html ) 230 ), 231 array( 232 'code' => array(), 233 ) 234 ); 235 236 return array( 237 'disable-xmlrpc' => array( 238 'tab' => 'security', 239 'label' => __( 'Disable XML-RPC', 'tweakmaster' ), 240 'type' => 'boolean', 241 'default' => false, 242 ), 243 'disable-xmlrpc-allow-jetpack-ips' => array( 244 'tab' => 'security', 245 'label' => __( 'Disable XML-RPC - allow Jetpack IPs', 'tweakmaster' ), 246 'description' => __( 'Allow XML-RPC only from Jetpack IPs', 'tweakmaster' ), 247 'type' => 'boolean', 248 'default' => false, 249 ), 250 'remove-wp-version' => array( 251 'tab' => 'security', 252 'default' => false, 253 'option' => true, 254 'label' => __( 'Remove WP version', 'tweakmaster' ), 255 'type' => 'boolean', 256 // translators: %s is example html 257 'description' => $remove_wp_version_description, 258 ), 259 ); 260 } 261 262 function performance_settings(): array { 263 return array( 264 'dequeue-jquery-migrate' => array( 265 'tab' => 'performance', 266 'label' => __( 'Dequeue jQuery Migrate', 'tweakmaster' ), 267 'description' => __( 'Dequeue jQuery Migrate from the jQuery script dependencies on the frontend. This is used to help devs debug from old versions of jQuery. You really do not need this on a production site.', 'tweakmaster' ), 268 'type' => 'boolean', 269 'default' => false, 270 ), 271 'enable-script-optimizer' => array( 272 'tab' => 'performance', 273 'label' => __( 'Script Optimizer', 'tweakmaster' ), 274 'description' => __( 'Optimize script loading by moving them into the <code>head</code> and adding <code>defer</code> attribute. This may break your site. Use at your own risk!', 'tweakmaster' ), 275 'type' => 'boolean', 276 'default' => false, 277 ), 278 'enable-relative-urls' => array( 279 'tab' => 'performance', 280 'label' => __( 'Enable relative URLs', 'tweakmaster' ), 281 'description' => __( 'Enable relative URLs on the frontend. This may break your site. Use at your own risk!', 'tweakmaster' ), 282 'type' => 'boolean', 283 'default' => false, 284 ), 285 ); 286 } 287 288 function media_settings(): array { 289 return array( 290 'convert-jpeg-to-avif' => array( 291 'tab' => 'media', 292 'default' => false, 293 'label' => __( 'Convert jpeg to avif', 'tweakmaster' ), 294 'description' => __( 'Convert uploaded jpeg to avif', 'tweakmaster' ), 295 'type' => 'boolean', 296 ), 297 'enable-clean-upload-filenames' => array( 298 'tab' => 'media', 299 'default' => false, 300 'label' => __( 'Clean upload filenames', 'tweakmaster' ), 301 'description' => __( 'Sanitize media filenames to remove non-latin special characters and accents', 'tweakmaster' ), 302 'type' => 'boolean', 303 ), 304 'avif-compression' => array( 305 'tab' => 'media', 306 'default' => 82, 307 'label' => __( 'Avif compression', 'tweakmaster' ), 308 'type' => 'integer', 309 'description' => __( 'Default is 82', 'tweakmaster' ), 310 ), 311 'jpeg-compression' => array( 312 'tab' => 'media', 313 'default' => 82, 314 'label' => __( 'Jpeg compression', 'tweakmaster' ), 315 'description' => __( 'Default is 82', 'tweakmaster' ), 316 'type' => 'integer', 317 ), 318 'webp-compression' => array( 319 'tab' => 'media', 320 'default' => 86, 321 'label' => __( 'Webp compression', 'tweakmaster' ), 322 'description' => __( 'Default is 86', 'tweakmaster' ), 323 'type' => 'integer', 324 ), 325 ); 326 } 327 328 function privacy_settings(): array { 329 330 // https://github.com/WordPress/WordPress/blob/c10dbc8434d14371366e413e510cb0d54b4f367b/wp-includes/class-wp-http.php#L206 331 $default_user_agent = 'WordPress/' . get_bloginfo( 'version' ) . '; ' . get_bloginfo( 'url' ); 332 $chrome_user_agent = 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/131.0.0.0 Safari/537.36'; 333 $user_agent_description = wp_kses( 334 sprintf( 335 // translators: %1$s: Default user agent. %2$s: Chrome user agent. 336 __( 'WP really hates privacy and sends this <code>%1$s</code> to every site it makes calls to. You can empty the field, pretend to be Chrome <code>%2$s</code> or something else. <code>default</code> will change nothing.', 'tweakmaster' ), 337 esc_html( $default_user_agent ), 338 esc_html( $chrome_user_agent ) 339 ), 340 array( 341 'code' => array(), 342 ) 343 ); 344 345 return array( 346 'user-agent' => array( 347 'tab' => 'privacy', 348 'default' => 'default', 349 'option' => true, 350 'label' => __( 'Set user agent', 'tweakmaster' ), 351 'type' => 'string', 352 'description' => $user_agent_description, 353 ), 354 355 'remove-exif' => array( 356 'tab' => 'privacy', 357 'default' => false, 358 'option' => true, 359 'label' => __( 'Remove EXIF', 'tweakmaster' ), 360 'description' => __( 'Remove EXIF data from uploaded images.', 'tweakmaster' ), 361 'type' => 'boolean', 362 ), 363 ); 364 } 365 366 function plugins_settings(): array { 367 368 return array( 369 'disable-cf7-css' => array( 370 'tab' => 'plugins', 371 'default' => false, 372 'option' => true, 373 'label' => __( 'Disable Contact Form 7 CSS', 'tweakmaster' ), 374 'description' => __( 'Sets <code>wpcf7_load_css</code> filter to <code>false</code>', 'tweakmaster' ), 375 'type' => 'boolean', 376 ), 377 'disable-cf7-autop' => array( 378 'tab' => 'plugins', 379 'default' => false, 380 'option' => true, 381 'label' => __( 'Disable Contact Form 7 Autop', 'tweakmaster' ), 382 'description' => __( 'Sets <code>wpcf7_autop_or_not</code> filter to <code>false</code>', 'tweakmaster' ), 383 'type' => 'boolean', 384 ), 385 'enable-jetpack-offline-mode' => array( 386 'tab' => 'plugins', 387 'default' => false, 388 'option' => true, 389 'label' => __( 'Enable Jetpack offline mode', 'tweakmaster' ), 390 'type' => 'boolean', 391 ), 392 ); 393 } 394 395 function revision_settings(): array { 396 397 $settings = array(); 398 399 foreach ( get_revision_post_types() as $type => $name ) { 400 $settings[ 'revisions-limit-' . $type ] = array( 401 'tab' => 'revisions', 402 'default' => -1, 403 'option' => true, 404 // translators: %s is post type name 405 'label' => sprintf( __( 'Revisions for %s', 'tweakmaster' ), $name ), 406 'type' => 'integer', 407 ); 408 } 409 410 $settings['revisions-limit-all'] = array( 411 'tab' => 'revisions', 412 'default' => -1, 413 'option' => true, 414 'label' => __( 'Limit ALL revisions', 'tweakmaster' ), 415 'description' => __( 'Limit revisions for all post types. This will override the limit for each post type from above!', 'tweakmaster' ), 416 'type' => 'integer', 417 ); 418 419 return $settings; 420 } 421 422 function tools_settings(): array { 423 424 return array( 425 'enable-maintenance-mode' => array( 426 'tab' => 'tools', 427 'default' => false, 428 'label' => __( 'Enable maintenance mode', 'tweakmaster' ), 429 'type' => 'boolean', 430 ), 431 'enable-duplicate-post' => array( 432 'tab' => 'tools', 433 'default' => false, 434 'label' => __( 'Enable duplicate post', 'tweakmaster' ), 435 'type' => 'boolean', 436 ), 437 ); 438 } 439 440 function option_is_set( string $key ): bool { 441 442 $default_option = default_options()[ $key ]; 443 444 return options()[ $key ] !== $default_option; 445 } 446 447 function any_option_is_set( array $options_keys ): bool { 448 449 foreach ( $options_keys as $key ) { 450 if ( option_is_set( $key ) ) { 451 return true; 116 452 } 117 453 } 118 454 119 switch ( $context ) { 120 case 'gutenberg_block': 121 $settings->remove( 'maxwidth' ); 122 break; 123 case 'settings_page': 124 foreach ( $settings->get_all() as $k => $s ) { 125 if ( ! $s->option ) { 126 $settings->remove( $k ); 127 } 128 } 129 break; 455 return false; 456 } 457 458 /** 459 * Get post types which support revisions. 460 */ 461 function get_revision_post_types(): array { 462 463 $revision_post_types = []; 464 465 foreach ( get_post_types() as $type ) { 466 467 $object = get_post_type_object( $type ); 468 469 if ( ! post_type_supports( $type, 'revisions' ) || null === $object ) { 470 continue; 471 } 472 473 $name = ( property_exists( $object, 'labels' ) && property_exists( $object->labels, 'name' ) ) 474 ? $object->labels->name 475 : $object->name; 476 477 $revision_post_types[ $type ] = $name; 130 478 } 131 479 132 return $settings; 133 } 134 135 function get_arg_type( string $arg_name ): ?string { 136 137 $setting = settings_data()->get( $arg_name ); 138 139 if ( ! $setting ) { 140 return null; 141 } 142 143 switch ( $setting->type ) { 144 case 'string': 145 return 'string'; 146 case 'boolean': 147 return 'bool'; 148 case 'integer': 149 return 'int'; 150 default: 151 return null; 152 } 153 } 154 155 function settings_data(): SettingsData { 156 157 $properties = get_host_properties(); 158 159 foreach ( $properties as $provider => $values ) { 160 161 if ( ! empty( $values['auto_thumbnail'] ) ) { 162 $auto_thumbs[] = $values['name']; 163 } 164 165 if ( ! empty( $values['auto_title'] ) ) { 166 $auto_title[] = $values['name']; 167 } 168 169 if ( ! empty( $values['requires_src'] ) ) { 170 $embed_code_only[] = $values['name']; 171 } 172 } 173 174 $provider_list_link = 'https://nextgenthemes.com/plugins/arve-pro/#support-table'; 175 $pro_addon_link = 'https://nextgenthemes.com/plugins/arve-pro/'; 176 $auto_thumbs = implode( ', ', $auto_thumbs ); 177 $auto_title = implode( ', ', $auto_title ); 178 $embed_code_only = implode( ', ', $embed_code_only ); 179 $settings = array( 180 'url' => array( 181 'type' => 'string', 182 'default' => '', 183 'label' => __( 'Video URL / iframe Embed Code', 'advanced-responsive-video-embedder' ), 184 'option' => false, 185 'placeholder' => 'https://rumble.com/*, https://www.youtube.com/watch?v=*', 186 'description' => sprintf( 187 // Translators: %1$s Providers 188 __( 'Post the URL of the video here. For %1$s and any <a href="%2$s">unlisted</a> video hosts paste their iframe embed codes.', 'advanced-responsive-video-embedder' ), 189 esc_html( $embed_code_only ), 190 esc_url( $provider_list_link ) 191 ), 192 'shortcode' => true, 193 ), 194 'loop' => array( 195 'default' => false, 196 'shortcode' => true, 197 'option' => false, 198 'label' => __( 'Loop?', 'advanced-responsive-video-embedder' ), 199 'type' => 'boolean', 200 'description' => __( 'Note not all video hosts provide this feature.', 'advanced-responsive-video-embedder' ), 201 ), 202 'muted' => array( 203 'default' => false, 204 'shortcode' => true, 205 'option' => false, 206 'label' => __( 'Mute?', 'advanced-responsive-video-embedder' ), 207 'type' => 'boolean', 208 'description' => __( 'Note not all video hosts provide this feature.', 'advanced-responsive-video-embedder' ), 209 ), 210 'controls' => array( 211 'default' => true, 212 'label' => __( 'Show Controls?', 'advanced-responsive-video-embedder' ), 213 'type' => 'boolean', 214 'description' => __( 'Note that not all video hosts provide this feature.', 'advanced-responsive-video-embedder' ), 215 'shortcode' => true, 216 'option' => true, 217 ), 218 'title' => array( 219 'type' => 'string', 220 'default' => '', 221 'placeholder' => __( 'Video Title (Pro automatically handles this)', 'advanced-responsive-video-embedder' ), 222 'label' => __( 'Title', 'advanced-responsive-video-embedder' ), 223 'option' => false, 224 'shortcode' => true, 225 'description' => sprintf( 226 // Translators: Provider list 227 __( 'Used for SEO, is visible on top of thumbnails in Lazyload/Lightbox modes, is used as link text in link-lightbox mode. <a href="%1$s">ARVE Pro</a> is able to get them from %2$s automatically.', 'advanced-responsive-video-embedder' ), 228 esc_url( $pro_addon_link ), 229 esc_html( $auto_title ) 230 ), 231 ), 232 'description' => array( 233 'default' => '', 234 'option' => false, 235 'shortcode' => true, 236 'label' => __( 'Description', 'advanced-responsive-video-embedder' ), 237 'type' => 'string', 238 'placeholder' => __( 'Description Text (Pro automatically handles this)', 'advanced-responsive-video-embedder' ), 239 'description' => sprintf( 240 // translators: URL 241 __( 'Needed for SEO <a href="%s">ARVE Pro</a> fills this automatically', 'advanced-responsive-video-embedder' ), 242 esc_url( $pro_addon_link ) 243 ), 244 ), 245 'upload_date' => array( 246 'type' => 'string', 247 'default' => '', 248 'option' => false, 249 'shortcode' => true, 250 'label' => __( 'Upload Date', 'advanced-responsive-video-embedder' ), 251 'placeholder' => __( '2019-09-29 (Pro automatically handles this)', 'advanced-responsive-video-embedder' ), 252 'description' => sprintf( 253 // translators: URL 254 __( '<a href="%s">ARVE Pro</a> fills this automatically.', 'advanced-responsive-video-embedder' ), 255 esc_url( $pro_addon_link ) 256 ), 257 ), 258 'mode' => array( 259 'type' => 'string', 260 'default' => 'normal', 261 'tab' => 'pro', 262 'label' => __( 'Mode', 'advanced-responsive-video-embedder' ), 263 'options' => array( 264 '' => __( 'Default', 'advanced-responsive-video-embedder' ), 265 'normal' => __( 'Normal', 'advanced-responsive-video-embedder' ), 266 'lazyload' => __( 'Lazyload', 'advanced-responsive-video-embedder' ), 267 'lightbox' => __( 'Lightbox', 'advanced-responsive-video-embedder' ), 268 'link-lightbox' => __( 'Link opens Lightbox', 'advanced-responsive-video-embedder' ), 269 ), 270 'description' => sprintf( 271 // translators: URL 272 __( 'For Lazyload, Lightbox and Link mode check out <a href="%s">ARVE Pro</a>. Only use normal when Pro is not installed!', 'advanced-responsive-video-embedder' ), 273 'https://nextgenthemes.com/plugins/arve-pro/' 274 ), 275 'option' => true, 276 'shortcode' => true, 277 ), 278 'lazyload_style' => array( 279 'type' => 'string', 280 'default' => 'thumbnail', 281 'tab' => 'pro', 282 'label' => __( 'Lazyload Style', 'advanced-responsive-video-embedder' ), 283 'options' => array( 284 '' => __( 'Default', 'advanced-responsive-video-embedder' ), 285 'thumbnail' => __( 'Thumbnail', 'advanced-responsive-video-embedder' ), 286 'card' => __( 'Card', 'advanced-responsive-video-embedder' ), 287 ), 288 'description' => esc_html__( 'Chose the look of the video preview for Lazyload and Lightbox modes!', 'advanced-responsive-video-embedder' ), 289 'option' => true, 290 'shortcode' => true, 291 ), 292 'thumbnail_fallback' => array( 293 'type' => 'string', 294 'default' => plugins_url( 'src/img/thumbnail.avif', PLUGIN_FILE ), 295 'tab' => 'pro', 296 'ui' => 'image_upload', 297 'shortcode' => false, 298 'option' => true, 299 'label' => __( 'Thumbnail Fallback', 'advanced-responsive-video-embedder' ), 300 'description' => __( 'URL or media gallery image ID used for thumbnail', 'advanced-responsive-video-embedder' ), 301 ), 302 'thumbnail_post_image_fallback' => array( 303 'tab' => 'pro', 304 'default' => true, 305 'shortcode' => false, 306 'option' => true, 307 'label' => __( 'Thumbnail Featured Image Fallback', 'advanced-responsive-video-embedder' ), 308 'type' => 'boolean', 309 'description' => __( 'In case ARVE Pro can not get a thumbnail, the posts Featured image will be used instead', 'advanced-responsive-video-embedder' ), 310 ), 311 'thumbnail' => array( 312 'type' => 'string', 313 'default' => '', 314 'ui' => 'image_upload', 315 'shortcode' => true, 316 'option' => false, 317 'label' => __( 'Thumbnail', 'advanced-responsive-video-embedder' ), 318 'placeholder' => '1234, https://* (Pro automatically handles this)', 319 'description' => sprintf( 320 // Translators: 1 Link, 2 Provider list 321 __( 'Media library image ID or image URL for preview image for SEO and Lazyload modes. <a href="%1$s">ARVE Pro</a> is able to get them from %2$s automatically, leave empty in this case unless you want use a different thumbnail. Type in <code>featured</code> to use the posts featured image.', 'advanced-responsive-video-embedder' ), 322 esc_url( $pro_addon_link ), 323 esc_html( $auto_thumbs ) 324 ), 325 ), 326 'hide_title' => array( 327 'type' => 'boolean', 328 'default' => false, 329 'shortcode' => true, 330 'option' => true, 331 'tab' => 'pro', 332 'label' => __( 'Hide Title (Lazyload & Lightbox only)', 'advanced-responsive-video-embedder' ), 333 'description' => __( 'Useful when the thumbnail image already displays the video title (Lazyload & Lightbox modes).', 'advanced-responsive-video-embedder' ), 334 ), 335 'grow' => array( 336 'type' => 'boolean', 337 'default' => true, 338 'shortcode' => true, 339 'option' => true, 340 'tab' => 'pro', 341 'label' => __( 'Expand on play? (Lazyload only)', 'advanced-responsive-video-embedder' ), 342 'description' => __( 'Expands video size after clicking the thumbnail (Lazyload Mode)', 'advanced-responsive-video-embedder' ), 343 ), 344 'fullscreen' => array( 345 'type' => 'string', 346 'default' => 'disabled', 347 'tab' => 'pro', 348 'label' => __( 'Go Fullscreen on opening Lightbox?', 'advanced-responsive-video-embedder' ), 349 'description' => __( 'Makes the Browser go fullscreen when opening the Lightbox. Optionally stay in Fullscreen mode even after the Lightbox is closed', 'advanced-responsive-video-embedder' ), 350 'options' => array( 351 '' => __( 'Default', 'advanced-responsive-video-embedder' ), 352 'enabled-exit' => __( 'Enabled, exit FS on lightbox close', 'advanced-responsive-video-embedder' ), 353 'enabled-stick' => __( 'Enabled, stay FS on lightbox close', 'advanced-responsive-video-embedder' ), 354 'disabled' => __( 'Disabled', 'advanced-responsive-video-embedder' ), 355 ), 356 'shortcode' => true, 357 'option' => true, 358 ), 359 'play_icon_style' => array( 360 'type' => 'string', 361 'default' => 'youtube', 362 'tab' => 'pro', 363 'label' => __( 'Play Button', 'advanced-responsive-video-embedder' ), 364 'options' => array( 365 // Translators: 1 %s is play icon style. 366 '' => __( 'Default', 'advanced-responsive-video-embedder' ), 367 'youtube' => __( 'Youtube', 'advanced-responsive-video-embedder' ), 368 'youtube-red-diamond' => __( 'Youtube Red Diamond', 'advanced-responsive-video-embedder' ), 369 'vimeo' => __( 'Vimeo', 'advanced-responsive-video-embedder' ), 370 'circle' => __( 'Circle', 'advanced-responsive-video-embedder' ), 371 'none' => __( 'No play image', 'advanced-responsive-video-embedder' ), 372 'custom' => __( 'Custom (for PHP filter)', 'advanced-responsive-video-embedder' ), 373 ), 374 'shortcode' => true, 375 'option' => true, 376 377 ), 378 'hover_effect' => array( 379 'type' => 'string', 380 'default' => 'darken', 381 'tab' => 'pro', 382 'label' => __( 'Hover Effect (Lazyload/Lightbox only)', 'advanced-responsive-video-embedder' ), 383 'options' => array( 384 '' => __( 'Default', 'advanced-responsive-video-embedder' ), 385 'darken' => __( 'Darken', 'advanced-responsive-video-embedder' ), 386 'zoom' => __( 'Zoom Thumbnail', 'advanced-responsive-video-embedder' ), 387 'rectangle' => __( 'Move Rectangle in', 'advanced-responsive-video-embedder' ), 388 'none' => __( 'None', 'advanced-responsive-video-embedder' ), 389 'custom' => __( 'Custom (for your own CSS styles', 'advanced-responsive-video-embedder' ), 390 ), 391 'shortcode' => true, 392 'option' => true, 393 ), 394 'disable_links' => array( 395 'tab' => 'pro', 396 'default' => false, 397 'label' => __( 'Disable links', 'advanced-responsive-video-embedder' ), 398 'type' => 'boolean', 399 'description' => __( 'Prevent embeds to open new popups/tabs from links inside video embeds. Note: breaks functionality like sharing.', 'advanced-responsive-video-embedder' ), 400 401 'shortcode' => true, 402 'option' => true, 403 ), 404 'align' => array( 405 'default' => 'none', 406 'shortcode' => true, 407 'option' => true, 408 'label' => __( 'Alignment', 'advanced-responsive-video-embedder' ), 409 'type' => 'string', 410 'options' => array( 411 '' => __( 'Default', 'advanced-responsive-video-embedder' ), 412 'none' => __( 'None', 'advanced-responsive-video-embedder' ), 413 'left' => __( 'Left', 'advanced-responsive-video-embedder' ), 414 'right' => __( 'Right', 'advanced-responsive-video-embedder' ), 415 'center' => __( 'Center', 'advanced-responsive-video-embedder' ), 416 ), 417 ), 418 'arve_link' => array( 419 'default' => false, 420 'label' => __( 'ARVE Link', 'advanced-responsive-video-embedder' ), 421 'type' => 'boolean', 422 'description' => __( "Shows a small 'ARVE' link below the videos. Be the most awesome person and help promoting this plugin.", 'advanced-responsive-video-embedder' ), 423 424 'shortcode' => true, 425 'option' => true, 426 ), 427 'duration' => array( 428 'type' => 'string', 429 'default' => '', 430 'option' => false, 431 'label' => __( 'Duration', 'advanced-responsive-video-embedder' ), 432 'placeholder' => '1H2M3S', 433 'description' => __( '`1H2M3S` for 1 hour, 2 minutes and 3 seconds. `5M` for 5 minutes.', 'advanced-responsive-video-embedder' ), 434 435 'shortcode' => true, 436 ), 437 'autoplay' => array( 438 'type' => 'boolean', 439 'default' => false, 440 'shortcode' => true, 441 'option' => true, 442 'label' => __( 'Autoplay', 'advanced-responsive-video-embedder' ), 443 'description' => __( 'Do not expect this to work! Browsers (especially mobile) or user settings prevent it, some video hosts do not support it at all. Only used in normal mode. ARVE will mute HTML5 video playback in case to make autoplay work for the broadest audience.', 'advanced-responsive-video-embedder' ), 444 ), 445 'maxwidth' => array( 446 'default' => 0, 447 'type' => 'integer', 448 'label' => __( 'Maximal Width', 'advanced-responsive-video-embedder' ), 449 'description' => sprintf( 450 // Translators: $content_width value. 451 __( 'In pixels. If set to 0 (default) the $content_width value from your theme is used if present, otherwise the default is %s.', 'advanced-responsive-video-embedder' ), 452 DEFAULT_MAXWIDTH 453 ), 454 'placeholder' => '450', 455 'shortcode' => true, 456 'option' => true, 457 458 ), 459 'lightbox_maxwidth' => array( 460 'type' => 'integer', 461 'default' => 1174, 462 'placeholder' => '1174', 463 'tab' => 'pro', 464 'label' => __( 'Lightbox Maximal Width', 'advanced-responsive-video-embedder' ), 465 'description' => __( 'default 1174', 'advanced-responsive-video-embedder' ), 466 'shortcode' => true, 467 'option' => true, 468 ), 469 'sticky' => array( 470 'type' => 'boolean', 471 'default' => true, 472 'tab' => 'sticky_videos', 473 'option' => true, 474 'shortcode' => true, 475 'label' => __( 'Sticky', 'advanced-responsive-video-embedder' ), 476 'description' => __( 'Keep the video on the screen when scrolling.', 'advanced-responsive-video-embedder' ), 477 ), 478 'sticky_width' => array( 479 'type' => 'string', 480 'default' => '500px', 481 'tab' => 'sticky_videos', 482 'shortcode' => false, 483 'option' => true, 484 'label' => __( 'Sticky Video Width', 'advanced-responsive-video-embedder' ), 485 'description' => __( 'CSS value (px, vw, ...) 350px is default.', 'advanced-responsive-video-embedder' ), 486 ), 487 'sticky_max_width' => array( 488 'type' => 'string', 489 'default' => '40vw', 490 'tab' => 'sticky_videos', 491 'shortcode' => false, 492 'option' => true, 493 'label' => __( 'Sticky Video Maximal Width', 'advanced-responsive-video-embedder' ), 494 'description' => __( 'A vw (viewport width) value is recommended. The default of 40vw tells the video it can never be wider than 40% of the screens width.', 'advanced-responsive-video-embedder' ), 495 ), 496 'sticky_gap' => array( 497 'type' => 'string', 498 'default' => '0.7rem', 499 'tab' => 'sticky_videos', 500 'shortcode' => false, 501 'option' => true, 502 503 'label' => __( 'Sticky Video Corner Gap', 'advanced-responsive-video-embedder' ), 504 'description' => __( 'CSS value (px, me, rem ...). Space between browser windows corner and pinned video.', 'advanced-responsive-video-embedder' ), 505 ), 506 'sticky_navbar_selector' => array( 507 'type' => 'string', 508 'default' => '.navbar--primary', 509 'tab' => 'sticky_videos', 510 'shortcode' => false, 511 'option' => true, 512 513 'label' => __( 'Selector for fixed Navbar', 'advanced-responsive-video-embedder' ), 514 'description' => __( 'If you have a fixed navbar on the top if your site you need this. document.querySelector(x) for a fixed navbar element to account for its height when pinning videos to the top.', 'advanced-responsive-video-embedder' ), 515 ), 516 'sticky_on_mobile' => array( 517 'type' => 'boolean', 518 'default' => true, 519 'tab' => 'sticky_videos', 520 'shortcode' => true, 521 'option' => true, 522 'label' => __( 'Sticky top on smaller screens', 'advanced-responsive-video-embedder' ), 523 'description' => __( 'Stick the video to the top of screens below 768px width in portrait orientation. The Video will always be as wide as the screen ignoring the Stick Width and Stick Maxwidth settings.', 'advanced-responsive-video-embedder' ), 524 ), 525 'sticky_position' => array( 526 'tab' => 'sticky_videos', 527 'default' => 'bottom-right', 528 'label' => __( 'Sticky Video Position', 'advanced-responsive-video-embedder' ), 529 'type' => 'string', 530 'options' => array( 531 '' => __( 'Default', 'advanced-responsive-video-embedder' ), 532 'top-left' => __( 'Top left', 'advanced-responsive-video-embedder' ), 533 'top-right' => __( 'Top right', 'advanced-responsive-video-embedder' ), 534 'bottom-left' => __( 'Bottom left', 'advanced-responsive-video-embedder' ), 535 'bottom-right' => __( 'Bottom right', 'advanced-responsive-video-embedder' ), 536 ), 537 'description' => __( 'Corner the video gets pinned to on bigger screens.', 'advanced-responsive-video-embedder' ), 538 'shortcode' => true, 539 'option' => true, 540 ), 541 'align_maxwidth' => array( 542 'default' => 400, 543 'shortcode' => false, 544 'label' => __( 'Align Maximal Width', 'advanced-responsive-video-embedder' ), 545 'type' => 'integer', 546 'description' => __( 'In px, Needed! Must be 100+ to work.', 'advanced-responsive-video-embedder' ), 547 'option' => true, 548 ), 549 'aspect_ratio' => array( 550 'default' => '', 551 'option' => false, 552 'shortcode' => true, 553 'label' => __( 'Aspect Ratio', 'advanced-responsive-video-embedder' ), 554 'type' => 'string', 555 'description' => __( 'E.g. 4:3, 21:9. ARVE is usually smart enough to figure this out on its own.', 'advanced-responsive-video-embedder' ), 556 'placeholder' => '4:3, 21:9 ...', 557 ), 558 'parameters' => array( 559 'default' => '', 560 'option' => false, 561 'shortcode' => true, 562 'label' => __( 'Parameters', 'advanced-responsive-video-embedder' ), 563 'type' => 'string', 564 'placeholder' => 'example=1&foo=bar', 565 'description' => sprintf( 566 // Translators: URL 567 __( 'Provider specific player settings on iframe src. See <a href="%s">documentation.</a>', 'advanced-responsive-video-embedder' ), 568 esc_url( 'https://nextgenthemes.com/plugins/arve/documentation/#parameters' ) 569 ), 570 ), 571 'wp_video_override' => array( 572 'tab' => 'html5', 573 'default' => true, 574 'shortcode' => false, 575 'option' => true, 576 'label' => __( 'Use ARVE for video files?', 'advanced-responsive-video-embedder' ), 577 'type' => 'boolean', 578 'description' => __( 'Overwrite the default WordPress behavior.', 'advanced-responsive-video-embedder' ), 579 ), 580 'controlslist' => array( 581 'tab' => 'html5', 582 'default' => '', 583 'label' => __( 'Chrome HTML5 Player controls', 'advanced-responsive-video-embedder' ), 584 'type' => 'string', 585 'description' => __( 'controlsList attribute on <video> for example use <code>nodownload nofullscreen noremoteplayback</code> to hide the download and the fullscreen button on the chrome HTML5 video player and disable remote playback.', 'advanced-responsive-video-embedder' ), 586 'placeholder' => 'nodownload nofullscreen noremoteplayback', 587 'shortcode' => true, 588 'option' => true, 589 ), 590 'volume' => array( 591 'tab' => 'pro', 592 'default' => 100, 593 'shortcode' => true, 594 'option' => true, 595 596 'label' => __( 'Volume', 'advanced-responsive-video-embedder' ), 597 'type' => 'integer', 598 'description' => __( 'Works with video files only.', 'advanced-responsive-video-embedder' ), 599 ), 600 'always_enqueue_assets' => array( 601 'shortcode' => false, 602 'option' => true, 603 604 'default' => false, 605 'label' => __( 'Always load assets', 'advanced-responsive-video-embedder' ), 606 'type' => 'boolean', 607 'description' => __( 'Default=No ARVE will loads its scripts and styles only when the posts content contains a arve video. In case your content is loaded via AJAX at a later stage this detection will not work or the styles are not loaded for another reason you may have to enable this option', 'advanced-responsive-video-embedder' ), 608 ), 609 'youtube_nocookie' => array( 610 'default' => true, 611 'shortcode' => false, 612 'option' => true, 613 'label' => __( 'Use youtube-nocookie.com url?', 'advanced-responsive-video-embedder' ), 614 'type' => 'boolean', 615 'description' => __( 'Privacy enhanced mode, will NOT disable cookies but only sets them when a user starts to play a video.', 'advanced-responsive-video-embedder' ), 616 ), 617 'vimeo_api_id' => array( 618 'tab' => 'random_video', 619 'default' => '', 620 'shortcode' => false, 621 'option' => true, 622 623 'label' => __( 'Vimeo client identifier', 'advanced-responsive-video-embedder' ), 624 'type' => 'string', 625 'description' => sprintf( 626 // Translators: URL 627 __( 'Needed for <a href="%s">Random Video Addon</a>.', 'advanced-responsive-video-embedder' ), 628 esc_url( 'https://nextgenthemes.com/plugins/arve-random-video/' ) 629 ), 630 ), 631 'vimeo_api_secret' => array( 632 'tab' => 'random_video', 633 'default' => '', 634 'shortcode' => false, 635 'option' => true, 636 'label' => __( 'Vimeo client secret', 'advanced-responsive-video-embedder' ), 637 'type' => 'string', 638 'description' => sprintf( 639 // Translators: URL 640 __( 'Needed for <a href="%s">Random Video Addon</a>.', 'advanced-responsive-video-embedder' ), 641 esc_url( 'https://nextgenthemes.com/plugins/arve-random-video/' ) 642 ), 643 ), 644 'vimeo_api_token' => array( 645 'tab' => 'random_video', 646 'default' => '', 647 'shortcode' => false, 648 'option' => true, 649 'label' => __( 'Vimeo API Token', 'advanced-responsive-video-embedder' ), 650 'type' => 'string', 651 'description' => sprintf( 652 // Translators: URL 653 __( 'Needed for <a href="%s">Random Video Addon</a>.', 'advanced-responsive-video-embedder' ), 654 esc_url( 'https://nextgenthemes.com/plugins/arve-random-video/' ) 655 ), 656 ), 657 'random_video_url' => array( 658 'tab' => 'random_video', 659 'default' => '', 660 'placeholder' => 'https://www.youtube.com/playlist?list=PL...', 661 'option' => false, 662 'shortcode' => true, 663 'label' => esc_html__( 'Random Video URL', 'advanced-responsive-video-embedder' ), 664 'type' => 'string', 665 'description' => sprintf( 666 // Translators: URL 667 __( 'Youtube Playlist or Vimeo showcase URL<a href="%s">(Random Video Addon)</a>.', 'advanced-responsive-video-embedder' ), 668 esc_url( 'https://nextgenthemes.com/plugins/arve-random-video/' ) 669 ), 670 ), 671 'random_video_urls' => array( 672 'tab' => 'random_video', 673 'default' => '', 674 'placeholder' => 'https://youtu.be/abc, https://vimeo.com/123', 675 'option' => false, 676 'shortcode' => true, 677 'label' => esc_html__( 'Random Video URLs', 'advanced-responsive-video-embedder' ), 678 'type' => 'string', 679 'description' => sprintf( 680 // Translators: URL 681 __( 'Video URLs separated by commas. <a href="%s">(Random Video Addon)</a>.', 'advanced-responsive-video-embedder' ), 682 esc_url( 'https://nextgenthemes.com/plugins/arve-random-video/' ) 683 ), 684 ), 685 'legacy_shortcodes' => array( 686 'default' => true, 687 'shortcode' => false, 688 'option' => true, 689 'label' => __( 'Enable legacy shortcodes', 'advanced-responsive-video-embedder' ), 690 'type' => 'boolean', 691 'description' => __( 'Enable the old and deprecated <code>[youtube id="abcde" /]</code> or <code>[vimeo id="abcde" /]</code> ... style shortcodes. Only enable if you have them in your content.', 'advanced-responsive-video-embedder' ), 692 ), 693 'encrypted_media' => array( 694 'default' => false, 695 'shortcode' => true, 696 'option' => false, 697 'label' => __( 'Allow Encrypted Media', 'advanced-responsive-video-embedder' ), 698 'type' => 'boolean', 699 'description' => __( "Only needed in specific situations. Reduces privacy of the iframe embed. 'Disable Links' feature from ARVE Pro will not work with this.", 'advanced-responsive-video-embedder' ), 700 ), 701 'credentialless' => array( 702 'default' => true, 703 'shortcode' => true, 704 'option' => false, 705 'label' => __( 'Set credentialless on iframe', 'advanced-responsive-video-embedder' ), 706 'type' => 'boolean', 707 'description' => __( 'Needs to be disabled in specific situations like webvideocore.net payment popup. Reduces privacy of the iframe embeds when disabled.', 'advanced-responsive-video-embedder' ), 708 ), 709 'seo_data' => array( 710 'tab' => 'main', 711 'default' => true, 712 'shortcode' => false, 713 'option' => true, 714 'label' => __( 'Enable structured data (schema.org)', 'advanced-responsive-video-embedder' ), 715 'type' => 'boolean', 716 'description' => __( 'ARVE Pro helps you autofill the data so you do not have to manually enter things for every single video to make it complete.', 'advanced-responsive-video-embedder' ), 717 ), 718 'gutenberg_help' => array( 719 'default' => true, 720 'shortcode' => false, 721 'option' => true, 722 'label' => __( 'Enable help text?', 'advanced-responsive-video-embedder' ), 723 'type' => 'boolean', 724 'description' => __( 'Disabling this makes the interface in Gutenberg/Shortcode dialog much cleaner.', 'advanced-responsive-video-embedder' ), 725 ), 726 'feed' => array( 727 'default' => true, 728 'shortcode' => false, 729 'option' => true, 730 'label' => __( 'Use in RSS/Atom Feeds?', 'advanced-responsive-video-embedder' ), 731 'type' => 'boolean', 732 'description' => __( 'Enable the plugin in RSS/Atom feeds? Disabling will not completely diable everything but it will use native WP behavior in feeds where possible.', 'advanced-responsive-video-embedder' ), 733 ), 734 'reset_after_played' => array( 735 'tab' => 'pro', 736 'default' => 'enabled', 737 'shortcode' => false, 738 'option' => true, 739 'label' => __( 'Reset after played', 'advanced-responsive-video-embedder' ), 740 'type' => 'string', 741 'options' => array( 742 '' => __( 'Default', 'advanced-responsive-video-embedder' ), 743 'enabled' => __( 'Enabled', 'advanced-responsive-video-embedder' ), 744 'disabled' => __( 'Disabled', 'advanced-responsive-video-embedder' ), 745 'disabled-for-vimeo' => __( 'Disabled for Vimeo only', 'advanced-responsive-video-embedder' ), 746 ), 747 'description' => __( 'When enabled ARVE Pro will display the thumbnail again like it is shown before the video was loaded. When a video is displayed in a lightbox the lightbox will automatically close. If you are using Vimeo\'s "call to action" feature for example you want to disable this for vimeo.', 'advanced-responsive-video-embedder' ), 748 ), 749 'admin_bar_menu' => array( 750 'default' => false, 751 'shortcode' => false, 752 'option' => true, 753 'label' => __( 'Admin bar ARVE button', 'advanced-responsive-video-embedder' ), 754 'type' => 'boolean', 755 'description' => __( 'For quickly accessing the ARVE settings page.', 'advanced-responsive-video-embedder' ), 756 ), 757 'lightbox_aspect_ratio' => array( 758 'tab' => 'pro', 759 'default' => '', 760 'placeholder' => '9:16', 761 'shortcode' => true, 762 'option' => false, 763 'label' => __( 'Lightbox aspect ratio', 'advanced-responsive-video-embedder' ), 764 'type' => 'string', 765 'description' => __( 'The aspect ratio of the lightbox. Leave empty to use the original video aspect ratio.', 'advanced-responsive-video-embedder' ), 766 ), 767 'cache_thumbnails' => array( 768 'tab' => 'privacy', 769 'default' => false, 770 'shortcode' => false, 771 'option' => true, 772 'label' => __( 'Cache thumbnails in Media Library', 'advanced-responsive-video-embedder' ), 773 'type' => 'boolean', 774 'description' => __( 'No image hotlinking to video hosts. For Lazyload/Lightbox (Pro).', 'advanced-responsive-video-embedder' ), 775 ), 776 'invidious' => array( 777 'tab' => 'privacy', 778 'default' => false, 779 'shortcode' => true, 780 'option' => true, 781 'label' => __( 'Enable Invidious for YouTube', 'advanced-responsive-video-embedder' ), 782 'type' => 'boolean', 783 ), 784 'invidious_instance' => array( 785 'tab' => 'privacy', 786 'default' => 'https://inv.nadeko.net/', 787 'shortcode' => false, 788 'option' => true, 789 'label' => __( 'Invidious instance', 'advanced-responsive-video-embedder' ), 790 'type' => 'string', 791 'description' => sprintf( 792 // translators: %s is URL 793 __( 'Invidious instance <a href="%s" target="_blank">see here</a>.', 'advanced-responsive-video-embedder' ), 794 esc_url( 'https://docs.invidious.io/instances/' ) 795 ), 796 ), 797 'invidious_parameters' => array( 798 'tab' => 'privacy', 799 'default' => 'local=true', 800 'shortcode' => false, 801 'option' => true, 802 'label' => __( 'Invidious URL parameters', 'advanced-responsive-video-embedder' ), 803 'type' => 'string', 804 'description' => sprintf( 805 // translators: %s is URL 806 __( 'Invidious <a href="%s" target="_blank">url parameters</a>.', 'advanced-responsive-video-embedder' ), 807 esc_url( 'https://docs.invidious.io/url-parameters/' ) 808 ), 809 ), 810 'allow_referrer' => array( 811 'label' => __( 'Allow domain restricted videos (referrerpolicy)', 'advanced-responsive-video-embedder' ), 812 'tab' => 'main', 813 'default' => 'youtube, vimeo, rumble, xhamster, kick', 814 'type' => 'string', 815 'option' => true, 816 'shortcode' => false, 817 'description' => __( 'Comma separated list of lowercase hosts that will set <code>referrerpolicy="origin-when-cross-origin"</code> instead of the default <code>referrerpolicy="no-referer"</code> on <code>iframe</code>. This will make video less private for the visitor as the host will be able to see on what website they are watching on but its needed for youtube, vimeo, rumble and possible others for domain restricted videos.', 'advanced-responsive-video-embedder' ), 818 ), 819 'show_src_mismatch_errors' => array( 820 'label' => __( 'Show src mismatch errors', 'advanced-responsive-video-embedder' ), 821 'tab' => 'debug', 822 'type' => 'string', 823 'default' => 'dev-mode', 824 'option' => true, 825 'shortcode' => false, 826 'options' => array( 827 'always' => __( 'Always', 'advanced-responsive-video-embedder' ), 828 'dev-mode' => __( 'Dev Modes Only', 'advanced-responsive-video-embedder' ), 829 'never' => __( 'Never', 'advanced-responsive-video-embedder' ), 830 ), 831 ), 832 'youtube_data_api_key' => array( 833 'label' => __( 'YouTube Data API Key', 'advanced-responsive-video-embedder' ), 834 'tab' => 'pro', 835 'type' => 'string', 836 'default' => '', 837 'option' => true, 838 'shortcode' => false, 839 'description' => sprintf( 840 // translators: %s is URL 841 __( 'If you want ARVE Pro to pull video description text for Card view and SEO. You may need this if the included API key gets rate limited. Get your API key <a href="%s" target="_blank">here</a>.', 'advanced-responsive-video-embedder' ), 842 esc_url( 'https://www.youtube.com/watch?v=EPeDTRNKAVo' ) 843 ), 844 ), 845 ); 846 847 foreach ( $properties as $provider => $v ) { 848 849 if ( isset( $v['default_params'] ) ) { 850 851 $settings[ 'url_params_' . $provider ] = array( 852 'tab' => 'urlparams', 853 'default' => $v['default_params'], 854 'option' => true, 855 'shortcode' => false, 856 // Translators: %s is Provider 857 'label' => sprintf( __( '%s url parameters', 'advanced-responsive-video-embedder' ), $provider ), 858 'type' => 'string', 859 ); 860 } 861 } 862 863 $settings = new SettingsData( $settings, true ); 864 865 return $settings; 866 } 480 return $revision_post_types; 481 } -
advanced-responsive-video-embedder/tags/1.0.5/php/init.php
r3338450 r3338484 3 3 declare(strict_types = 1); 4 4 5 namespace Nextgenthemes\ ARVE;5 namespace Nextgenthemes\TweakMaster; 6 6 7 // Stop outdated addons from executing 8 remove_action( 'plugins_loaded', 'Nextgenthemes\ARVE\Pro\init', 15 ); 9 remove_action( 'plugins_loaded', 'Nextgenthemes\ARVE\RandomVideo\init', 15 ); 10 remove_action( 'plugins_loaded', 'Nextgenthemes\ARVE\Privacy\init', 16 ); 11 12 add_action( 'init', __NAMESPACE__ . '\init', 9 ); 7 add_action( 'init', __NAMESPACE__ . '\init_public', 9 ); 13 8 add_action( 'admin_init', __NAMESPACE__ . '\init_admin', 9 ); 14 9 15 function init (): void {10 function init_public(): void { 16 11 17 require_once PLUGIN_DIR . '/php/Video.php'; 18 require_once PLUGIN_DIR . '/php/fn-cache.php'; 19 require_once PLUGIN_DIR . '/php/fn-assets.php'; 20 require_once PLUGIN_DIR . '/php/fn-html-output.php'; 21 require_once PLUGIN_DIR . '/php/fn-misc.php'; 22 require_once PLUGIN_DIR . '/php/fn-oembed.php'; 23 require_once PLUGIN_DIR . '/php/fn-shortcode-data.php'; 24 require_once PLUGIN_DIR . '/php/fn-shortcode-args.php'; 25 require_once PLUGIN_DIR . '/php/fn-shortcodes.php'; 26 require_once PLUGIN_DIR . '/php/fn-url-handlers.php'; 27 require_once PLUGIN_DIR . '/php/fn-validation.php'; 28 require_once PLUGIN_DIR . '/php/fn-settings.php'; 12 require_once __DIR__ . '/fn-settings.php'; 29 13 30 add_option( 'arve_install_date', time() ); 31 maybe_delete_oembed_cache(); // Must be before update_option arve_version 32 update_option( 'arve_version', VERSION ); 14 $settings = settings_data(); 15 $settings->remove( 'scroll-progress-bar' ); // uses options api 33 16 34 add_action( 'init', __NAMESPACE__ . '\settings_instance' ); 35 add_action( 'init', __NAMESPACE__ . '\init_nextgenthemes_settings' ); 36 add_action( 'init', __NAMESPACE__ . '\register_assets' ); 37 add_action( 'init', __NAMESPACE__ . '\create_shortcodes' ); 38 add_action( 'init', __NAMESPACE__ . '\create_url_handlers' ); 39 add_filter( 'mce_css', __NAMESPACE__ . '\add_styles_to_mce' ); 40 add_filter( 'oembed_remote_get_args', __NAMESPACE__ . '\vimeo_referer', 10, 2 ); 41 add_action( 'wp_enqueue_scripts', __NAMESPACE__ . '\action_wp_enqueue_scripts' ); 42 add_filter( 'render_block_core/embed', __NAMESPACE__ . '\remove_embed_block_aspect_ratio' ); 43 add_action( 'wp_video_shortcode_override', __NAMESPACE__ . '\wp_video_shortcode_override', 10, 4 ); 44 add_filter( 'language_attributes', __NAMESPACE__ . '\html_id' ); 45 add_filter( 'oembed_dataparse', __NAMESPACE__ . '\filter_oembed_dataparse', PHP_INT_MAX, 3 ); 46 add_filter( 'embed_oembed_html', __NAMESPACE__ . '\filter_embed_oembed_html', OEMBED_HTML_PRIORITY, 4 ); 47 add_action( 'elementor/widgets/register', __NAMESPACE__ . '\register_elementor_widget' ); 17 foreach ( $settings->get_all() as $key => $setting ) { 48 18 49 foreach ( ADDON_NAMES as $addon_name ) { 50 maybe_init_addon( $addon_name ); 19 if ( 'boolean' === $setting->type && option_is_set( $key ) ) { 20 require_once TWEAKS_DIR_SA . "/$key.php"; 21 } 51 22 } 23 24 if ( any_option_is_set( [ 'jpeg-compression', 'webp-compression', 'avif-compression' ] ) ) { 25 require_once TWEAKS_DIR . '/image-quality.php'; 26 } 27 28 if ( ! defined( 'EMPTY_TRASH_DAYS' ) && option_is_set( 'trash-keep-days' ) ) { 29 require_once TWEAKS_DIR . '/set-trash-keep-days.php'; 30 } 31 32 require_once TWEAKS_DIR . '/revisions-to-keep.php'; 33 34 require_file_if_option_is_set( 'admin-bar-greeting' ); 35 require_file_if_option_is_set( 'scroll-progress-bar' ); 36 require_file_if_option_is_set( 'user-agent' ); 52 37 } 53 38 54 function maybe_init_addon( string $name): void {39 function require_file_if_option_is_set( string $key ): void { 55 40 56 $init_function_name = '\\' . __NAMESPACE__ . '\\' . $name . '\\init'; 57 $version_const_name = '\\' . __NAMESPACE__ . '\\' . $name . '\\VERSION'; 58 $req_ver_const_name = '\\' . __NAMESPACE__ . '\\' . strtoupper( $name ) . '_REQUIRED_VERSION'; 59 $version = defined( $version_const_name ) ? constant( $version_const_name ) : ''; 60 $req_ver = defined( $req_ver_const_name ) ? constant( $req_ver_const_name ) : ''; 61 62 if ( $version && version_compare( $version, $req_ver, '>=' ) && function_exists( $init_function_name ) ) { 63 $init_function_name(); 41 if ( option_is_set( $key ) ) { 42 require_once TWEAKS_DIR . "/$key.php"; 64 43 } 65 44 } 66 45 67 46 function init_admin(): void { 68 69 require_once PLUGIN_DIR . '/php/Admin/fn-admin.php'; 70 require_once PLUGIN_DIR . '/php/Admin/fn-settings-page.php'; 71 require_once PLUGIN_DIR . '/php/Admin/fn-shortcode-creator.php'; 72 require_once PLUGIN_DIR . '/php/Admin/fn-debug-info.php'; 73 74 add_action( 'nextgenthemes/arve/admin/settings/sidebar', __NAMESPACE__ . '\Admin\settings_sidebar' ); 75 add_action( 'nextgenthemes/arve/admin/settings/content', __NAMESPACE__ . '\Admin\settings_content' ); 76 77 add_action( 'admin_bar_menu', __NAMESPACE__ . '\Admin\action_admin_bar_menu', 100 ); 78 add_action( 'admin_enqueue_scripts', __NAMESPACE__ . '\Admin\admin_enqueue_scripts' ); 79 add_action( 'admin_enqueue_scripts', __NAMESPACE__ . '\Admin\admin_enqueue_styles', 99 ); 80 add_action( 'admin_init', __NAMESPACE__ . '\Admin\action_admin_init_setup_messages' ); 81 add_action( 'media_buttons', __NAMESPACE__ . '\Admin\add_media_button', 11 ); 82 83 add_action( 'register_shortcode_ui', __NAMESPACE__ . '\Admin\register_shortcode_ui' ); 84 add_action( 'wp_dashboard_setup', __NAMESPACE__ . '\Admin\add_dashboard_widget' ); 85 86 add_filter( 'plugin_action_links_' . plugin_basename( PLUGIN_FILE ), __NAMESPACE__ . '\Admin\add_action_links' ); 87 88 add_filter( 'debug_information', __NAMESPACE__ . '\Admin\add_site_health_metadata' ); 47 add_action( 'nextgenthemes/tweakmaster/admin/settings/sidebar', __NAMESPACE__ . '\code_info' ); 48 add_action( 'nextgenthemes/tweakmaster/admin/settings/content', __NAMESPACE__ . '\revisions_tab_info' ); 89 49 } 90 50 91 register_uninstall_hook( PLUGIN_FILE, __NAMESPACE__ . '\uninstall' ); 51 function code_info(): void { 92 52 93 function uninstall(): void { 53 ?> 54 <div class="ngt-sidebar-box"> 55 <p> 56 <?php 57 echo wp_kses( 58 sprintf( 59 // translators: %s: Github URL. 60 __( 'See the <a href="%s" target="_blank">code</a> and add tweaks you are missing.', 'tweakmaster' ), 61 'https://github.com/nextgenthemes/tweakmaster/tree/master/php/tweaks-standalone' 62 ), 63 [ 64 'a' => [ 65 'href' => [], 66 'target' => [], 67 ], 68 ], 69 [ 'https' ] 70 ); 71 ?> 72 </p> 73 </div> 74 <?php 75 } 94 76 95 global $wpdb; 77 function revisions_tab_info(): void { 96 78 97 if ( version_compare( $wpdb->db_version(), '8.0', '>=' ) ) { 98 $wpdb->query( "UPDATE {$wpdb->postmeta} SET meta_value = REGEXP_REPLACE( meta_value, '<template[^>]+arve_cachetime[^>]+></template>', '' )" ); 99 } 79 ?> 80 <p data-wp-bind--hidden="!context.activeTabs.revisions"> 81 <?php echo wp_kses( __( '<code>-1</code> = Unlimited revisions', 'tweakmaster' ), [ 'code' => [] ] ); ?><br> 82 <?php echo wp_kses( __( '<code>0</code> = Disable revisions', 'tweakmaster' ), [ 'code' => [] ] ); ?><br> 83 <?php echo wp_kses( __( 'Positive integer = Number of revisions', 'tweakmaster' ), [ 'code' => [] ] ); ?> 84 </p> 85 <?php 100 86 } -
advanced-responsive-video-embedder/tags/1.0.5/readme.md
r3089848 r3338484 1 # Git repository for Advanced Responsive Video Embedder (ARVE) 1 If you just want just use the plugin its on [wordpress.org](https://wordpress.org/tweakmaster). 2 2 3 # ### Level up your basic video embeds! Advanced features, privacy. Use URLs, Shortcodes or Blocks to customize videos to your needs.3 # Contributing is very easy 4 4 5 [ARVE WordPress Plugin][1] is free on [wp.org][1]. Look there for the feature set. 5 1. For a basic standalone tweak all you need to do it develop a (mu)plugin as a single file that automatically enabled/disables or otherwise tweaks something with filters or actions. 6 1. When you have your tiny tweak plugin working simply place the file into `tweakmaster/php/tweaks-standalone/` look at the naming of the files and name your tweak straight to the point. Look at the other files for coding standards. Use Namespace, filters/actions at the top of the file, avoid anonymous functions. 7 1. Then check out how settings are defined in `tweakmaster/php/fn-settings.php`. Add a setting for your tweak, the array key should be like your filename but without the `.php` ending. Most of the boolean settings simple case a tweak file to be loaded. Think of it like activating plugins. 6 8 7 [Permalink download to latest version][2]. It will at times be an alpha or beta version that passed the automatic tests but is not released to wp.org. You can upload it a WordPress site under Dashboard > Plugins -> Add New -> Upload. 9 # Advanced usage of standalone tweaks as mu-plugins 8 10 9 Feel free to file issues with the *code*, for support please file a ticket on [nextgenthemes.com/support/](https://nextgenthemes.com/support/) 11 If you do it this way, you probably should not use the Plugin at the same time. It won't work for tweaks that have settings that are not just on/off switches. Each standalone tweak can be used as mu-plugin. Simple put the files you need inside your mu-plugins folder. 10 12 11 Code contributions are welcome.13 To do this you can simply copy `.php` files you like from [tweaks-standalone/](https://github.com/nextgenthemes/tweakmaster/tree/master/php/tweaks-standalone) to your mu-plugins folder. Github has a 'download file' icon on the top right when you open files. 12 14 13 Paid addons that finance this project are available: 15 If you have WP CLI you can use these command to copy the files directly from Github to your WordPress site. 14 16 15 * [Pro](https://nextgenthemes.com/plugins/arve-pro) for Lightbox, Lazyload, Autofill of SEO data and more. 16 * [Privacy](https://nextgenthemes.com/plugins/arve-privacy) for DSGVO compliance, self hosted thumbnails, load YouTube videos via an invideo.us instance. 17 * [Sticky Videos](https://nextgenthemes.com/plugins/arve-sticky-videos/) 18 * [Random Video](https://nextgenthemes.com/plugins/arve-random-video) 17 ```sh 18 # In case you do not have a mu-plugins folder. 19 wp eval "if ( ! file_exists(WP_CONTENT_DIR . '/mu-plugins' ) ) { mkdir(WP_CONTENT_DIR . '/mu-plugins', 0755, true); }" 19 20 20 If you have an idea for a functionality or addon you like to pay for, please [reach out](https://nextgenthemes.com/contact/). 21 22 [1]: https://wordpress.org/plugins/advanced-responsive-video-embedder/ 23 [2]: https://github.com/nextgenthemes/advanced-responsive-video-embedder/releases/latest/download/arve.zip 21 # Replace the filename with any file you find in https://github.com/nextgenthemes/tweakmaster/tree/master/php/tweaks-standalone/ 22 wp eval "\$filename = 'disable-auto-trash-emptying.php'; file_put_contents( WP_CONTENT_DIR . '/mu-plugins/' . \$filename, file_get_contents( 'https://raw.githubusercontent.com/nextgenthemes/tweakmaster/refs/heads/master/php/tweaks-standalone/' . \$filename ) );" 23 ``` -
advanced-responsive-video-embedder/tags/1.0.5/readme.txt
r3338450 r3338484 1 === Advanced Responsive Video Embedder for Rumble, Odysee, YouTube, Vimeo, Kick ...===1 === TweakMaster === 2 2 Contributors: nico23 3 Donate link: https://nextgenthemes.com/donate/ 4 Tags: embed, video, lazyload, lightbox, rumble 3 Tags: performance, privacy, security, tweaks, lightweight 5 4 Requires at least: 6.6 6 5 Tested up to: 6.8 7 6 Requires PHP: 7.4 8 Stable tag: 1 0.6.139 License: GPL -3.07 Stable tag: 1.0.5 8 License: GPLv3 10 9 License URI: https://www.gnu.org/licenses/gpl-3.0.html 10 Donate link: https://nextgenthemes.com/donate 11 11 12 Level up your basic video embeds! Advanced features, privacy. Use URLs, Shortcodes or Blocks to customize videos to your needs.12 A collection of performance, privacy, security, and other tweaks. Minimalistic lightweight plugin. 13 13 14 ## Description ## 14 == Description == 15 WP Tweak is a lightweight and minimalistic WordPress plugin designed to enhance your website with a curated set of tweaks. It focuses on improving performance, bolstering privacy, strengthening security, and adding other useful optimizations—all without unnecessary bloat. Perfect for users who want a simple yet effective solution to fine-tune their WordPress experience. 15 16 16 Th e best WordPress plugin for videos? Supports close to everything you can imagine, still keeping it easy & simple.17 This plugins handles tweaks in a minimalistic way. Only files that contains tweaks that you activate are loaded! 17 18 18 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! 19 = Tweaks = 19 20 20 [youtube https://www.youtube.com/watch?v=m6mkA6Zr1vY ] 21 * **Remove version query strings**<br> 22 Removes <code>?ver=1.2.3</code> from all styles and scripts. 23 * **Disable feeds** 24 * **Disable emojis** 25 * **Search single result redirect** 26 * **Disallow File Edits**<br> 27 Disables the ability to edit files in the file manager. Sets <code>DISALLOW_FILE_EDIT</code> constant to true. Does only work if the constant is already defined, usually in wp-config.php 28 * **Admin bar greeting**<br> 29 Replace "Howdy, {name}" with a custom message. Use <code>{name}</code> for the user's display name. For example <code>Hi, {name}!</code>. Leave empty for no greeting. Use <code>default</code> for the default greeting, preventing the tweak from running. 30 * **Enable fonts to uploads**<br> 31 Move (Google) Fonts enabled in the Block Editor from wp-content/fonts to wp-content/uploads 32 * **Disable auto trash emptying** 33 * **Set trash keep days**<br> 34 Set the number of days to keep posts in the trash. Default is 30 days. 35 * **Scroll progress bar** 36 * **Scroll progress color**<br> 37 And valid css will work. You can use <a href="https://oklch.com" target="_blank">this color picker!</a>. 38 * **Scroll progress bar background color** 39 * **Scroll progress height** 40 * **Disable self SSL verify** 41 * **Disable Comments** 42 * **Disable Email Login** 43 * **Disable REST API** 44 * **Disable Success Update Emails** 45 * **Remove Admin Bar WordPress Logo**<br> 46 Requires a hard refresh of the page to take effect. 47 * **Remove Asset Attributes** 48 * **Disable Non Production Emails**<br> 49 If WP_ENV (Trellis) or wp_get_environment_type is not production, emails sending is mocked. 50 * **Remove REST API links** 51 * **Set user agent**<br> 52 WP really hates privacy and sends this <code>WordPress/1.0; https://example.org</code> to every site it makes calls to. You can empty the field, pretend to be Chrome <code>Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/131.0.0.0 Safari/537.36</code> or something else. <code>default</code> will change nothing. 53 * **Remove EXIF**<br> 54 Remove EXIF data from uploaded images. 55 * **Convert jpeg to avif**<br> 56 Convert uploaded jpeg to avif 57 * **Clean upload filenames**<br> 58 Sanitize media filenames to remove non-latin special characters and accents 59 * **Avif compression**<br> 60 Default is 82 61 * **Jpeg compression**<br> 62 Default is 82 63 * **Webp compression**<br> 64 Default is 86 65 * **Limit ALL revisions**<br> 66 Limit revisions for all post types. This will override the limit for each post type from above! 67 * **Disable XML-RPC** 68 * **Disable XML-RPC - allow Jetpack IPs**<br> 69 Allow XML-RPC only from Jetpack IPs 70 * **Remove WP version**<br> 71 Remove <code>WordPress/6.7.1; https://example.org</code> from html head 72 * **Dequeue jQuery Migrate**<br> 73 Dequeue jQuery Migrate from the jQuery script dependencies on the frontend. This is used to help devs debug from old versions of jQuery. You really do not need this on a production site. 74 * **Script Optimizer**<br> 75 Optimize script loading by moving them into the <code>head</code> and adding <code>defer</code> attribute. This may break your site. Use at your own risk! 76 * **Enable relative URLs**<br> 77 Enable relative URLs on the frontend. This may break your site. Use at your own risk! 78 * **Disable Contact Form 7 CSS**<br> 79 Sets <code>wpcf7_load_css</code> filter to <code>false</code> 80 * **Disable Contact Form 7 Autop**<br> 81 Sets <code>wpcf7_autop_or_not</code> filter to <code>false</code> 82 * **Enable Jetpack offline mode** 83 * **Enable maintenance mode** 84 * **Enable duplicate post** 21 85 22 ### Features ###23 86 24 #### Classic Editor #### 87 = Contribute to add quality tweaks to the plugin reviewed by me = 25 88 26 * Adds "Embed Video" button to help you create very powerful `[arve]` shortcodes. 27 * Takes over WordPress embeds with URLs on their own line and `[embed]` shortcodes. 28 * Can take over WP's default video file embeds. 89 Unlike WP Code's snippet database that is filled with low code quality tweaks where some do not even work at all and spam this plugin only contains high quality tweaks. If something is missing please add it. 29 90 30 #### Block Editor (Gutenberg) #### 91 It is very easy to contribute to the plugin. Check out the [Github Readme](https://github.com/nextgenthemes/tweakmaster/blob/master/readme.md). 31 92 32 * Works with Embed, YouTube, Vimeo, Shortcode ... blocks. 33 * Provides it's own powerful ARVE Block with all the features the `[arve]` shortcode offers, with a nice UI and detailed settings descriptions. 93 If you have questions on adding a more complex tweak please feel free to ask. 34 94 35 #### Elementor #### 95 == Screenshots == 96 (Maybe later) 36 97 37 * Provides a widget for the entire feature set of ARVE inside Elementor 98 == Changelog == 38 99 39 #### All #### 100 = 2025-03-29 - 1.0.3 101 * Improved: sanitize, validate correctly, fix prefixes ... 102 * Removed update disable tweak, not allowed on wp.org? 40 103 41 * Makes your video embeds [more secure and enhances visitors privacy](https://nextgenthemes.com/privacy-enhanced-and-safer-iframes-in-arve-10-0/). 42 * Magically makes videos responsive you already embedded with WordPress default features. 43 * 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. Pro can autofill this for you. 44 * No 'lock in' if you do not use the ARVE Gutenberg Block or `[arve]` shortcodes. 45 * Supports [almost every video host](https://nextgenthemes.com/plugins/arve-pro/#support-table) that supports iframe embed codes. 46 * Embeds via pasting the URL in its own line just like WordPress! 47 * Optionally use very powerful Shortcodes instead. 48 * Clean shortcode syntax `[arve url="https://youtu.be/yUCFRL43Zm4" parameters="start=30" ... /]`, no unnecessary shortcode wrapping. 49 * One shortcode or Block for all video providers. 50 * Responsive embeds with CSS, much better than with JavaScript. 51 * Tries to be as unobtrusive as possible, sets 'hide brand' variables if supported, disables related videos from other channels at the end … to help keep people on your site rather then going to YouTube or keep watching videos. 52 * Limited Autoplay (Mobile browsers usually prevent autoplay or allow it only muted. ARVE will automatically mute it but browser settings can still prevent it, even on Desktop) 53 * Custom URL parameters to use all options providers offer. 54 * Optional maximal width. 55 * Video alignment. 56 * Detailed description of options in-place. 57 * Automatic detected and custom aspect ratio. 104 = 2025-03-xx - 1.0.1-beta2 = 105 * Improved: Tweak descriptions. 106 * Fix: Admin Bar Greeting tweak. 107 * Fix: Link to GH readme. 108 * Fix: Rename `wptweak` to `tweakmaster` to fix multiple issues. 58 109 59 #### Supported Providers #### 110 = 2025-03-15 - 1.0.1-beta1 = 111 * New: Disable non production email tweak. 60 112 61 [All providers with iframe embed codes](https://nextgenthemes.com/plugins/arve/documentation/#general-iframe-embedding) 62 Alugha, Archive.org, Banned.video, Bitchute, Brightcove, Brighteon, Comedy Central, Dailymotion, Dailymotion Playlist, DTube, Facebook, Gab TV, Google Drive, mp4 or webm video files, ARVE general iframe embed, IGN, IMDB, Kickstarter, kla.tv, Livestream.com, Mail.ru, Metacafe, myspace, v.qq.com, Rumble.com, ok.ru, RuTube.ru, TED Talks, TikTok, Twitch, Viddler, Vimeo, VK, Wistia, XTube, xHamster, Yahoo, Youku, YouTube, YouTube Playlist, Kick 63 ### Reviews ### 64 65 #### ★ ★ ★ ★ ★ Great plugin, great support #### 66 I’ve been using this plugin (free version and pro add-on) for a few years now. It works very well for my purposes (mainly lazyload and lightbox functionality). Recently I had a support issue with the new version which required some intervention – it was a conflict with my theme. Nico, the developer, went above and beyond to get a fix promptly sorted out for me. Thank you Nico. 67 68 #### ★ ★ ★ ★ ★ The best there is – I have tried many… #### 69 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. 70 71 [arve url="https://www.youtube.com/watch?v=Z7g8-GxLTSc" /] 72 73 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. [review by jodani][16] 74 75 #### ★ ★ ★ ★ ★ Finally something that works #### 76 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!!!! [review by happyecho][16] 77 78 #### ★ ★ ★ ★ ★ Only Plug-in that worked #### 79 I used a lot of high ranking plug-ins but they still broke my design. Downloaded this and worked right away. Thanks! [review by crconnell89][16] 80 81 [16]: https://wordpress.org/support/plugin/advanced-responsive-video-embedder/reviews/?filter=5 82 83 ### [ARVE Pro][20] ### 84 85 **<big>10% off</big>** first year with discount code `wporg`. 86 87 This plugin is financed by purchases of [ARVE Pro][20]. 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 [purchase it][20] to get extra features and support the development. 88 89 * **Disable links in embeds (killer feature!)**<br> 90 For example: Clicking on a title in a YouTube embed will not open a new tab. **Prevent video hosts to lead your visitors away from your site!** 91 * **Lazyload**<br> 92 Make your site load **faster** by loading only an image instead of the entire video player on pageload. 93 * **Lightbox**<br> 94 Shows the Video in a Lightbox after clicking a Lazyload preview image 95 * **Link ⇾ Lightbox**<br> 96 Use simple links as triggers for opening Video Lightboxes 97 * Auto pause videos when another video is played 98 * Automatic or custom thumbnail images 99 * Automatic or custom titles on top of your thumbnails 100 * 'Expand on click' feature 101 * 2 hover & 3 play icon styles 102 * Responsive thumbnails (srcset) 103 * **Feel good about yourself**<br> 104 for supporting my 8+ years work on this plugin. Tons of hours, weekends … always worked on improving it 105 * Show the latest video of a YouTube channel by using the channel URL (updated/cached hourly) 106 * **[Get ARVE Pro][20]** 107 108 [20]: https://nextgenthemes.com/plugins/arve-pro/ 109 110 ### [ARVE Sticky Videos][23] ### 111 112 Keep videos on the screen when scrolling. 113 114 * Choose if videos should be pinned to the top of the screen. Like the YouTube app for example. 115 * For bigger screen choose a corner where a video should be pinned to. Like last.fm [for example][23]. 116 117 [23]: https://nextgenthemes.com/plugins/arve-sticky-videos/ 118 119 ### [Random Video Addon](https://nextgenthemes.com/plugins/arve-random-video/) ### 120 121 Display random video from: 122 123 * YouTube Playlist 124 * Vimeo Showcase 125 * Comma separated list of video URLs 126 127 ### [ARVE AMP][29] ### 128 129 When you use the AMP or 'AMP for WP' plugin you need this. 130 131 * It will display videos embedded with ARVE on AMP pages correctly 132 * No options, just works 133 * It creates `<amp-youtube>`, `<amp-vimeo>`, `<amp-dailymotion>` elements 134 * For all other video hosts `<amp-video-iframe>` element is used 135 * Video files are also supported with `<amp-video>` 136 137 [29]: https://nextgenthemes.com/plugins/arve-amp/ 138 139 ### Thanks ### 140 141 * Of course all the customers who bought a addon. 142 * Howard Iken of [myfloridalaw.com](https://www.myfloridalaw.com) top donor, super nice to me even if I was rude and not deserved it! 143 * [Ilya Grishkov](https://www.ilyagrishkov.com) for bringing up the idea and the first code to cache thumbnail urls. 144 * Everybody giving constructive feedback, testing beta versions. 145 * Everybody who donated back in the days when this was donation based. 146 147 ### Thanks to the developers of the software used in ARVE ### 148 149 * [Bigger Picture](https://github.com/henrygd/bigger-picture), used in [Pro Addon](https://nextgenthemes.com/plugins/arve-pro/) 150 151 ## Frequently Asked Questions ## 152 153 ### I have a problem ... ### 154 155 Please report it on [nextgenthemes.com/support/](https://nextgenthemes.com/support/) **and please do not on the wordpess.org forums, thanks.** 156 157 ### I’m experiencing these errors on Google Search Console ### 158 159 Best option to resolve these errors is to get [ARVE Pro](https://nextgenthemes.com/plugins/arve-pro/) as it fills these in for you hassle-free, only activate the add-on - done. For more options, please see the [detailed answer](https://nextgenthemes.com/plugins/arve/faq/). 160 161 ### How to get the pro version working? ### 162 163 1. Go though the purchase process on [nextgenthemes.com](https://nextgenthemes.com/plugins/arve-pro/) 164 1. 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. 165 1. After that you may want to switch your default mode to Lazyload or Lightbox on the ARVE settings page. 166 167 ### Why are my videos not filling their container? ### 168 169 You may need to adjust your 'Maximal Width' setting to your liking. 170 171 You are most likely use `align`, 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 `align` shortcode attribute. 172 173 ### Can you add a video provider? ### 174 175 Feel free to ask. 176 177 ### How do I embed videos from a unlisted providers / iframes? ### 178 179 This plugin not changes anything to usual HTML `<iframe>` embed codes you have to use the shortcodes or the Gutenberg Block. They will become `[arve url="https://..."]`. The url represents what is the `src` 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 `src` for the iframe. 180 181 ## Installation ## 182 183 Please read the [official documentation](https://wordpress.org/support/article/managing-plugins/#installing-plugins) for that. 184 185 ## Screenshots ## 186 187 1. Block Editor Example 188 2. Shortcode creation dialog in Classic Editor 189 3. Main Options 190 4. Pro Options 191 5. Video Files Options 192 6. URL Parameter Options 193 ## Changelog ## 194 195 * [ARVE Pro changelog](https://nextgenthemes.com/plugins/arve-pro/#changelog) 196 * [ARVE Random Videos changelog](https://nextgenthemes.com/plugins/arve-random-video/#changelog) 197 198 ### 2025-07-30 10.6.13 ### 199 200 * Fix: _load_textdomain_just_in_time was called incorrectly. 201 * Fix: Minor visible error on debug tab with WP_DEBUG enabled. 202 203 ### 2025-03-22 10.6.12 ### 204 205 * Fix: HTML mistake on the setting page. 206 * Improved: Hide some old errors. 207 208 ### 2025-03-21 10.6.10 ### 209 210 * Fix: Removing ARVE data from oembed cache on uninstall. 211 * Improved: Error messages and escaping for remote calls. 212 * Improved: Lots of things around caching and how the errors are (not) displayed. 213 214 ### 2025-03-17 10.6.8 ### 215 216 * Improved: ARVE now handles the execution of addons, not executing outdated addon. 217 * Improved: Added outdated messages for all addons. 218 219 ### 2025-03-16 10.6.7 ### 220 221 * Fix: Compatibility with Advanced Custom Fields WYSIWYG editors. The ARVE shortcode creation button now finally works there. 222 223 ### 2025-03-15 10.6.6 ### 224 225 * Improved: Tested with WP 6.8-beta2 226 * Improved: Updated jetpack autoloader. 227 * Improved: Cache deletion. 228 * Improved: Handling of error messaged of YouTube Data API errors. 229 * Abandoned asset wrappers. 230 * Renamed shared code package, now [nextgenthemes/wp-settings](https://packagist.org/packages/nextgenthemes/wp-settings) on Packagist. 231 232 ### 2025-03-09 10.6.5 ### 233 234 * Fix: Cache management related old YouTube video having broken thumbnails. 235 236 ### 2025-03-09 10.6.4 ### 237 238 * Fix: Link to settings page in API key notice. 239 * Improved: Link to tutorial video showing you how to get an YouTube Data API key. 240 241 ### 2025-03-09 10.6.1 ### 242 243 * Improved: Error handling. Show YouTube API errors only on the Admin screens. 244 * Improved: Cache deletion. 245 * New: Option to add your own YouTube Data API key to prevent limits of the one included in Pro. 246 247 ### 2025-03-08 10.6.0 ### 248 249 * New: Lazyload Style option (Pro Feature). 250 * Fix: Settings page conflicts with admin notices (from other plugins). 251 * Fix: `_load_textdomain_just_in_time` being triggered too early. 252 * Improved: Styles for the settings page and Classic Editor shortcode creator dialog. 253 * Improved: Simplified the way ARVE generates HTML using `WP_HTML_Tag_Processor`. 254 * Improved: `dnt=1` parameter is now part of the visible default parameters for Vimeo and Wistia. You may need to remove it or set it to `0` to get your views tracked by them. 255 256 ### 2025-01-15 10.5.4 ### 257 258 * Improved: Removed incompatibility notices for AIO SEO Pack (resolved). 259 260 ### 2025-01-11 10.5.3 ### 261 262 * Fix: Fixed, improved and restored Shortcode UI functionality. 263 264 ### 2025-01-08 10.5.2 ### 265 266 * Fix: Block errors. 267 268 ### 2025-01-02 10.5.1 ### 269 270 * Fix: Array merge with NULL error. 271 272 ### 2025-01-02 10.5.0 ### 273 274 * New: Debug option to control src mismatch errors. 275 * Improved: Removed the debug into in favor or adding data to the Site Health Info screen. 276 * Improved: Introduced a `SettingsData` and `SettingValidator` classes to make the code more robust self testing. 277 278 ### 2024-12-05 10.4.0 ### 279 280 * New: Added `credentialless="false"` parameter that can be used to remove the same named attribute from the iframe. 281 * Fix: Added `data-lenis-prevent` to the ARVE wrapper div to prevent issues with Lenis Smooth Scroll script. 282 * Fix: Viddler not working by allowing `sync-xhr`. 283 * Improved: Changes enabling latest ARVE Pro versions to use `sizes="auto"` for more efficient image loading. 284 * Improved: Featured image as fallback default change to `true` (Pro). 285 * Improved: ARVE now includes a black image with stripes used as default fallback thumbnail. 286 * Improved: Removed some legacy code, outdated addons are prevented from executing. 287 288 ### 2024-11-08 10.3.4 ### 289 290 * Fix: xHamster not working. Its direclty supported with normal URLs now. Note ARVE needs to allow referrer to be send, with this privacy enhancement disabled xHamster will see the domain you are embedding from. 291 * Fix: multisite (needs to be confirmed). 292 293 ### 2024-10-23 10.3.3 ### 294 295 * Show messages about incompatibility issue with All in One SEO Pack. 296 * Fix: Duplicated controls in ARVE Block sidebar. 297 * Fix: Help tests were not showing in Settings page. 298 299 ### 2024-08-22 10.3.2 ### 300 301 * New: URL detection for VK.com videos. 302 303 ### 2024-08-02 10.3.1 ### 304 305 * New: Add current theme and version to Debug Info. 306 * Fix: PHP error when `$GLOBALS['content_width']` is not an integer. Props Gianluca. 307 308 ### 2024-07-17 10.3.0 ### 309 * WP 6.6 marked as required. 310 * New: Brings back support for Shortcode UI that was removed previously. Note that in SCUI it uses yes/no and ARVE dialog uses true/false. There may come some improvement on that later. 311 * Fix: Remove script module and WP interactivity registering as this is done by WP in 6.6 now and caused double register and ordering issues. 312 * Fix: Make sure the ARVE shortcode modal is closed when selecting a thumbnail and reopened afterwards. 313 314 ### 2024-07-06 10.2.3 ### 315 * Fix: Help toggle in new ARVE Shortcode dialog. 316 * Improved: Show message that the ARVE Button in Classic Editor needs WP 6.6 (sorry, to be released 2024-07-16). 317 318 ### 2024-06-17 10.2.2 ### 319 * Fix: Rare src mismatch errors with YouTube. 320 * Improved: Set block api version to 3. 321 * Improved: Show message that the ARVE Block needs Gutenberg active or WP 6.6. 322 323 ### 2024-06-17 10.2.1 ### 324 * Improved: Set WP required version to 6.5 in main plugin file, previously only set in readme. 325 326 ### 2024-06-15 10.2.0 ### 327 * New: Invidious URL Parameter setting for new extra privacy addon. 328 * Fix: Encoding and JSON errors related how things were stored in oembed cache. 329 * Fix: Issue activating licenses. 330 * Improved: Yet another Setting page overhaul, dropping Alpine.js for WP Interactivity API. 331 * Improved: Bring back reset buttons for settings sections. 332 * Improved: A couple of typos. 333 * Removed Shortcode UI support. (That plugin did now have a release in 5 years, the ARVE dialog is better anyway IMO) 334 * Compatibility with latest Pro addon. 335 336 ### 2024-05-27 10.1.1 ### 337 * Improved: Changes how the referrer setting works. `no-referrer` by default `strict-origin-when-cross-origin` for selected providers. 338 * Fix: Some YouTube videos (music?) do not without without allowing reverer to be send so YouTube was added to the list to allow it by default. 339 340 ### 2024-05-24 10.1.0 ### 341 * Improved: ARVE own video IDs are no longer random, this is better for SEO and other things. 342 * New: Support for [ok.ru](http://ok.ru). 343 * New: Rutube video url detection. (only embed code worked before). 344 345 ### 2024-05-23 10.0.10 ### 346 * Fix: Videos with quotes in the title/description caused json_decode syntax error. 347 348 ### 2024-05-22 10.0.9 ### 349 * Fix: Some Vimeo videos not working without cache working. 350 * Fix: src mismatch error testing. 351 * Improved: Error display. 352 353 ### 2024-05-21 10.0.8.1 ### 354 * Fix: Do not delete cache every time. 355 356 ### 2024-05-21 10.0.8 ### 357 * Fix: Some broken Vimeo videos. And possibly other bugs. 358 359 ### 2024-05-21 10.0.7 ### 360 * Fix: Lazyload and Lightbox (Pro) were not displayed when used with video files. 361 362 ### 2024-05-17 10.0.6 ### 363 364 #### Improved 365 * Performance of oembed deletion. 366 * Move the "Delete oEmbed cache" button to the top of the Debug tab in the Settings. Press it if you have trouble with thumbnails. 367 368 ### 2024-05-15 10.0.5 ### 369 * Fix?: Initialize deletion of oembed caches later. 370 * New/Fix: Setting to allow domain restricted videos. 371 * Fix: Show Blog entries in correct order on settings page. 372 373 ### 2024-05-13 10.0.4 ### 374 * Fix: Fatal error prevention for people using outdated versions of ARVE Pro while upgrading the main plugin to version 10. Update to Pro 6.x.x is mandatory. 375 376 ### 2024-05-12 10.0.3 ### 377 * Fix: Vimeo domain restriction 378 379 ### 2024-05-12 10.0.2 ### 380 * Fix: Activation error related to script dependencies. (Elementor) 381 382 ### 2024-05-11 10.0.1 ### 383 384 #### New #### 385 * Elementor Widget. 386 * Support for Kick. 387 * Optional ARVE button on the admin bar for quick access to the ARVE Settings page. 388 * Support for new [DSGVO and Extra Privacy](https://nextgenthemes.com/plugins/arve-privacy/) addon. 389 390 #### Fixed #### 391 * Pasting iframe embed code in the URL/Embed Code field in the Block Editor. 392 393 #### Improved #### 394 * Lots code changes to modernize and make the code more robust. 395 * Better way to negate WPs own aspect ratio for embed blocks. 396 * [Further privacy enhancements](https://nextgenthemes.com/privacy-enhanced-and-safer-iframes-in-arve-10-0/). 397 * New look and UX improvement to the shortcode creation dialog in Classic Editor. 398 * Loop and Mute previously were only used for (self hosted) video files. These shortcode attributes now add `loop=1&mute1` to the iframe `src` as well. Note not every provider supports them. To loop YouTube videos the video ID was also need as the `playlist=` parameter. ARVE is doing this automatically now. 399 * Sandbox setting has been replaced with 'Enable Encrypted Media'. 400 401 ### 2024-02-29 9.10.14 ### 402 * Fix: Wrongly displayed message about outdated PHP version. 403 404 ### 2024-02-29 9.10.13.1 ### 405 * Cut development files from the distribution. 406 407 ### 2024-02-29 9.10.13 ### 408 * Improved: Make Admin notice dismiss without jQuery. May fix an extremely rare issue of dismiss failing. 409 * Tested with latest WP 6.5-nightly 410 * Plugin is no longer being tested with PHP versions below 7.2+, in theory the 9.x versions should work with PHP 5.6+. 411 412 ### 2023-09-16 9.10.12 ### 413 * Tested with latest WP 6.5-nightly 414 * Updated warning that next major version will required php 7.4+. 415 416 ### 2023-05-17 9.10.9 ### 417 * Fix: Styles not loading correctly in latest Gutenberg versions. 418 419 ### 2023-04-12 9.10.3 ### 420 * Fix: Yoast SEO compatibility and other possible issues. 421 422 ### 2023-04-11 9.10.2 ### 423 * Fix: Fatal error with WordPress 5.8.6 424 425 ### 2023-04-11 9.10.1 ### 426 * New: Warning massage that ARVE will require PHP 7.2 soon. 427 * New: Support for extra classes (Advanced section) on the ARVE block. 428 * New: You can align left/right the ARVE block now. 429 * Fix: Styles were not applied inside new Gutenberg versions. 430 * Improved: Videos are no longer playable in the Block editor, instead the block is selected when clicking on them. 431 * Improved: Some minor code changes. 432 433 ### 2023-02-05 9.9.7 ### 434 * Fix: WP Courseware Course Builder meta box was always collapsed. (Could not get the ARVE button to work for the Course Description) 435 436 ### 2023-01-25 9.9.6 ### 437 * Fix: Rumble videos not work correctly on all cases correct oembed data. 438 439 ### 2023-01-11 9.9.4 ### 440 * Fix: Invisible Shortcode creation dialog content. 441 * Fix: Hide the dialog when the WP image upload dialog is opened. 442 443 ### 2023-01-10 9.9.3 ### 444 * Fix: Issue when browser does not support `<dialog>`. 445 446 ### 2022-01-08 9.9.2 ### 447 448 * Fix: Incompatibility with Accelerated Mobile Pages by removing the jquery-ui dependency and using a native `<dialog>` for the shortcode creator modal. This may also fix layering (z-index) issues with other plugins. 449 450 ### 2022-10-28 9.8.0 ### 451 452 * New: TikTok support. 453 * Improved: Removed deprecated message because it broke the WP login when debug output was enabled. 454 455 ### 2022-10-14 9.7.17 ### 456 457 * Fix: Give errors and prevent php 8.0 and 8.1 from having errors when the aspect ratio contains non integer numbers like `0.9:1` only integers are allowed like `9:10`. 458 * Improved: Update EDD updater class. 459 460 ### 2022-09-01 9.7.16 ### 461 462 * Fix: Divi endless reload issue is hopefully finally fixed. ARVE Pro users please note this is a workaround that causes previews inside the Divi builder not have the correct data. Most noticeable thumbnails and titles. If you provide a fallback thumbnail in ARVE Pro settings it will show that while you using Divi. The plugin works correctly on the frontend. However the "Video (ARVE)" button currently does not work in Divi. 463 464 ### 2022-08-30 9.7.15 ### 465 466 * Fix: Shortcode Creator dialog with Advanced Custom Fields plugin active. 467 468 ### 2022-08-22 9.7.14 ### 469 470 * Improved: Simplified and reduced debug info. 471 * Improved: Adjustments for updated ARVE Pro version. 472 473 ### 2022-08-11 9.7.11 ### 474 475 * Fix: Block not registering. 476 477 ### 2022-08-09 9.7.10 ### 478 479 ##### Improvements for Gutenberg Block ##### ##### 480 * Introduces clickable area above the Block in the Editor. 481 * Fixed Thumbnail image overflowing. 482 * Removed maximal width setting when not aligned. This concept does not fit Gutenberg. Width should be controlled by setting the block to wide or full alignment. 483 * Introduces a recommended `block.json`. 484 * Some other minor improvements. 485 486 ### 2022-08-04 9.7.8 ### 487 488 * New: Add new 'Darken' hover effect option for Pro Addon. 489 * Removed Ustream from providers (not functional bought up by IBM) 490 491 ### 2022-04-16 9.7.7 ### 492 493 * Improved browser support to display aspect ratio correctly on older browsers. 494 495 ### 2022-02-01 9.7.4 ### 496 497 * Fix: '[Vue warn]: Cannot find element: #arve-sc-vue' JavaScript error on admin page. 498 499 ### 2022-01-29 9.7.3 ### 500 501 * Fix: Some internal errors generated for YouTube embeds. 502 503 [Older Changes](https://github.com/nextgenthemes/advanced-responsive-video-embedder/blob/master/changelog-2021.md) 113 = 2025-03-xx - 1.0.0-beta1 = 114 * Initial release. -
advanced-responsive-video-embedder/tags/1.0.5/vendor/autoload.php
r3256343 r3338484 23 23 require_once __DIR__ . '/composer/autoload_real.php'; 24 24 25 return ComposerAutoloaderInit fa4ebaf22f08a8b822c80bc4efcf7610::getLoader();25 return ComposerAutoloaderInit5aa486b2e15e5a77b655cb1dccf2d827::getLoader(); -
advanced-responsive-video-embedder/tags/1.0.5/vendor/autoload_packages.php
r3338450 r3338484 6 6 */ 7 7 8 namespace Automattic\Jetpack\Autoloader\jp fa4ebaf22f08a8b822c80bc4efcf7610\al5_0_9;8 namespace Automattic\Jetpack\Autoloader\jp5aa486b2e15e5a77b655cb1dccf2d827\al5_0_9; 9 9 10 10 // phpcs:ignore -
advanced-responsive-video-embedder/tags/1.0.5/vendor/composer/autoload_real.php
r3256343 r3338484 3 3 // autoload_real.php @generated by Composer 4 4 5 class ComposerAutoloaderInit fa4ebaf22f08a8b822c80bc4efcf76105 class ComposerAutoloaderInit5aa486b2e15e5a77b655cb1dccf2d827 6 6 { 7 7 private static $loader; … … 25 25 require __DIR__ . '/platform_check.php'; 26 26 27 spl_autoload_register(array('ComposerAutoloaderInit fa4ebaf22f08a8b822c80bc4efcf7610', 'loadClassLoader'), true, true);27 spl_autoload_register(array('ComposerAutoloaderInit5aa486b2e15e5a77b655cb1dccf2d827', 'loadClassLoader'), true, true); 28 28 self::$loader = $loader = new \Composer\Autoload\ClassLoader(\dirname(__DIR__)); 29 spl_autoload_unregister(array('ComposerAutoloaderInit fa4ebaf22f08a8b822c80bc4efcf7610', 'loadClassLoader'));29 spl_autoload_unregister(array('ComposerAutoloaderInit5aa486b2e15e5a77b655cb1dccf2d827', 'loadClassLoader')); 30 30 31 31 require __DIR__ . '/autoload_static.php'; 32 call_user_func(\Composer\Autoload\ComposerStaticInit fa4ebaf22f08a8b822c80bc4efcf7610::getInitializer($loader));32 call_user_func(\Composer\Autoload\ComposerStaticInit5aa486b2e15e5a77b655cb1dccf2d827::getInitializer($loader)); 33 33 34 34 $loader->register(true); 35 35 36 $filesToLoad = \Composer\Autoload\ComposerStaticInit fa4ebaf22f08a8b822c80bc4efcf7610::$files;36 $filesToLoad = \Composer\Autoload\ComposerStaticInit5aa486b2e15e5a77b655cb1dccf2d827::$files; 37 37 $requireFile = \Closure::bind(static function ($fileIdentifier, $file) { 38 38 if (empty($GLOBALS['__composer_autoload_files'][$fileIdentifier])) { -
advanced-responsive-video-embedder/tags/1.0.5/vendor/composer/autoload_static.php
r3256343 r3338484 5 5 namespace Composer\Autoload; 6 6 7 class ComposerStaticInit fa4ebaf22f08a8b822c80bc4efcf76107 class ComposerStaticInit5aa486b2e15e5a77b655cb1dccf2d827 8 8 { 9 9 public static $files = array ( … … 37 37 { 38 38 return \Closure::bind(function () use ($loader) { 39 $loader->prefixLengthsPsr4 = ComposerStaticInit fa4ebaf22f08a8b822c80bc4efcf7610::$prefixLengthsPsr4;40 $loader->prefixDirsPsr4 = ComposerStaticInit fa4ebaf22f08a8b822c80bc4efcf7610::$prefixDirsPsr4;41 $loader->classMap = ComposerStaticInit fa4ebaf22f08a8b822c80bc4efcf7610::$classMap;39 $loader->prefixLengthsPsr4 = ComposerStaticInit5aa486b2e15e5a77b655cb1dccf2d827::$prefixLengthsPsr4; 40 $loader->prefixDirsPsr4 = ComposerStaticInit5aa486b2e15e5a77b655cb1dccf2d827::$prefixDirsPsr4; 41 $loader->classMap = ComposerStaticInit5aa486b2e15e5a77b655cb1dccf2d827::$classMap; 42 42 43 43 }, null, ClassLoader::class); -
advanced-responsive-video-embedder/tags/1.0.5/vendor/composer/installed.json
r3338450 r3338484 73 73 "version": "dev-master", 74 74 "version_normalized": "dev-master", 75 "source": { 76 "type": "git", 77 "url": "https://github.com/nextgenthemes/wp-settings.git", 78 "reference": "4e26cd875e2ba18f6f1bb523ef51d01ec7f7869d" 79 }, 75 80 "dist": { 76 "type": "path", 77 "url": "../../../../../../dev/composer-packages/wp-settings", 78 "reference": "4e26cd875e2ba18f6f1bb523ef51d01ec7f7869d" 81 "type": "zip", 82 "url": "https://api.github.com/repos/nextgenthemes/wp-settings/zipball/4e26cd875e2ba18f6f1bb523ef51d01ec7f7869d", 83 "reference": "4e26cd875e2ba18f6f1bb523ef51d01ec7f7869d", 84 "shasum": "" 79 85 }, 80 86 "require": { 81 87 "php": ">=7.4" 82 88 }, 89 "time": "2025-08-03T12:18:07+00:00", 90 "default-branch": true, 83 91 "type": "library", 84 92 "installation-source": "dist", … … 88 96 ] 89 97 }, 98 "notification-url": "https://packagist.org/downloads/", 90 99 "license": [ 91 100 "GPL-3.0" … … 96 105 } 97 106 ], 98 "transport-options": { 99 "symlink": false, 100 "relative": true 107 "support": { 108 "source": "https://github.com/nextgenthemes/wp-settings/tree/master" 101 109 }, 102 110 "install-path": "../nextgenthemes/wp-settings" -
advanced-responsive-video-embedder/tags/1.0.5/vendor/composer/installed.php
r3338450 r3338484 1 1 <?php return array( 2 2 'root' => array( 3 'name' => 'nextgenthemes/ advanced-responsive-video-embedder',3 'name' => 'nextgenthemes/tweakmaster', 4 4 'pretty_version' => 'dev-master', 5 5 'version' => 'dev-master', 6 'reference' => ' ccd71c526402379c26ae9a45529f7222283d6cd3',6 'reference' => '9374cd33520cc47808fb8b87df216de610813745', 7 7 'type' => 'wordpress-plugin', 8 8 'install_path' => __DIR__ . '/../../', … … 20 20 'dev_requirement' => true, 21 21 ), 22 'nextgenthemes/ advanced-responsive-video-embedder' => array(22 'nextgenthemes/tweakmaster' => array( 23 23 'pretty_version' => 'dev-master', 24 24 'version' => 'dev-master', 25 'reference' => ' ccd71c526402379c26ae9a45529f7222283d6cd3',25 'reference' => '9374cd33520cc47808fb8b87df216de610813745', 26 26 'type' => 'wordpress-plugin', 27 27 'install_path' => __DIR__ . '/../../', … … 35 35 'type' => 'library', 36 36 'install_path' => __DIR__ . '/../nextgenthemes/wp-settings', 37 'aliases' => array(), 37 'aliases' => array( 38 0 => '9999999-dev', 39 ), 38 40 'dev_requirement' => true, 39 41 ), -
advanced-responsive-video-embedder/tags/1.0.5/vendor/jetpack-autoloader/class-autoloader-handler.php
r3338450 r3338484 6 6 */ 7 7 8 namespace Automattic\Jetpack\Autoloader\jp fa4ebaf22f08a8b822c80bc4efcf7610\al5_0_9;8 namespace Automattic\Jetpack\Autoloader\jp5aa486b2e15e5a77b655cb1dccf2d827\al5_0_9; 9 9 10 10 // phpcs:ignore -
advanced-responsive-video-embedder/tags/1.0.5/vendor/jetpack-autoloader/class-autoloader-locator.php
r3338450 r3338484 6 6 */ 7 7 8 namespace Automattic\Jetpack\Autoloader\jp fa4ebaf22f08a8b822c80bc4efcf7610\al5_0_9;8 namespace Automattic\Jetpack\Autoloader\jp5aa486b2e15e5a77b655cb1dccf2d827\al5_0_9; 9 9 10 10 // phpcs:ignore -
advanced-responsive-video-embedder/tags/1.0.5/vendor/jetpack-autoloader/class-autoloader.php
r3338450 r3338484 6 6 */ 7 7 8 namespace Automattic\Jetpack\Autoloader\jp fa4ebaf22f08a8b822c80bc4efcf7610\al5_0_9;8 namespace Automattic\Jetpack\Autoloader\jp5aa486b2e15e5a77b655cb1dccf2d827\al5_0_9; 9 9 10 10 // phpcs:ignore -
advanced-responsive-video-embedder/tags/1.0.5/vendor/jetpack-autoloader/class-container.php
r3338450 r3338484 6 6 */ 7 7 8 namespace Automattic\Jetpack\Autoloader\jp fa4ebaf22f08a8b822c80bc4efcf7610\al5_0_9;8 namespace Automattic\Jetpack\Autoloader\jp5aa486b2e15e5a77b655cb1dccf2d827\al5_0_9; 9 9 10 10 // phpcs:ignore -
advanced-responsive-video-embedder/tags/1.0.5/vendor/jetpack-autoloader/class-hook-manager.php
r3338450 r3338484 6 6 */ 7 7 8 namespace Automattic\Jetpack\Autoloader\jp fa4ebaf22f08a8b822c80bc4efcf7610\al5_0_9;8 namespace Automattic\Jetpack\Autoloader\jp5aa486b2e15e5a77b655cb1dccf2d827\al5_0_9; 9 9 10 10 // phpcs:ignore -
advanced-responsive-video-embedder/tags/1.0.5/vendor/jetpack-autoloader/class-latest-autoloader-guard.php
r3338450 r3338484 6 6 */ 7 7 8 namespace Automattic\Jetpack\Autoloader\jp fa4ebaf22f08a8b822c80bc4efcf7610\al5_0_9;8 namespace Automattic\Jetpack\Autoloader\jp5aa486b2e15e5a77b655cb1dccf2d827\al5_0_9; 9 9 10 10 // phpcs:ignore -
advanced-responsive-video-embedder/tags/1.0.5/vendor/jetpack-autoloader/class-manifest-reader.php
r3338450 r3338484 6 6 */ 7 7 8 namespace Automattic\Jetpack\Autoloader\jp fa4ebaf22f08a8b822c80bc4efcf7610\al5_0_9;8 namespace Automattic\Jetpack\Autoloader\jp5aa486b2e15e5a77b655cb1dccf2d827\al5_0_9; 9 9 10 10 // phpcs:ignore -
advanced-responsive-video-embedder/tags/1.0.5/vendor/jetpack-autoloader/class-path-processor.php
r3338450 r3338484 6 6 */ 7 7 8 namespace Automattic\Jetpack\Autoloader\jp fa4ebaf22f08a8b822c80bc4efcf7610\al5_0_9;8 namespace Automattic\Jetpack\Autoloader\jp5aa486b2e15e5a77b655cb1dccf2d827\al5_0_9; 9 9 10 10 // phpcs:ignore -
advanced-responsive-video-embedder/tags/1.0.5/vendor/jetpack-autoloader/class-php-autoloader.php
r3338450 r3338484 6 6 */ 7 7 8 namespace Automattic\Jetpack\Autoloader\jp fa4ebaf22f08a8b822c80bc4efcf7610\al5_0_9;8 namespace Automattic\Jetpack\Autoloader\jp5aa486b2e15e5a77b655cb1dccf2d827\al5_0_9; 9 9 10 10 // phpcs:ignore -
advanced-responsive-video-embedder/tags/1.0.5/vendor/jetpack-autoloader/class-plugin-locator.php
r3338450 r3338484 6 6 */ 7 7 8 namespace Automattic\Jetpack\Autoloader\jp fa4ebaf22f08a8b822c80bc4efcf7610\al5_0_9;8 namespace Automattic\Jetpack\Autoloader\jp5aa486b2e15e5a77b655cb1dccf2d827\al5_0_9; 9 9 10 10 // phpcs:ignore -
advanced-responsive-video-embedder/tags/1.0.5/vendor/jetpack-autoloader/class-plugins-handler.php
r3338450 r3338484 6 6 */ 7 7 8 namespace Automattic\Jetpack\Autoloader\jp fa4ebaf22f08a8b822c80bc4efcf7610\al5_0_9;8 namespace Automattic\Jetpack\Autoloader\jp5aa486b2e15e5a77b655cb1dccf2d827\al5_0_9; 9 9 10 10 // phpcs:ignore -
advanced-responsive-video-embedder/tags/1.0.5/vendor/jetpack-autoloader/class-shutdown-handler.php
r3338450 r3338484 6 6 */ 7 7 8 namespace Automattic\Jetpack\Autoloader\jp fa4ebaf22f08a8b822c80bc4efcf7610\al5_0_9;8 namespace Automattic\Jetpack\Autoloader\jp5aa486b2e15e5a77b655cb1dccf2d827\al5_0_9; 9 9 10 10 // phpcs:ignore -
advanced-responsive-video-embedder/tags/1.0.5/vendor/jetpack-autoloader/class-version-loader.php
r3338450 r3338484 6 6 */ 7 7 8 namespace Automattic\Jetpack\Autoloader\jp fa4ebaf22f08a8b822c80bc4efcf7610\al5_0_9;8 namespace Automattic\Jetpack\Autoloader\jp5aa486b2e15e5a77b655cb1dccf2d827\al5_0_9; 9 9 10 10 // phpcs:ignore -
advanced-responsive-video-embedder/tags/1.0.5/vendor/jetpack-autoloader/class-version-selector.php
r3338450 r3338484 6 6 */ 7 7 8 namespace Automattic\Jetpack\Autoloader\jp fa4ebaf22f08a8b822c80bc4efcf7610\al5_0_9;8 namespace Automattic\Jetpack\Autoloader\jp5aa486b2e15e5a77b655cb1dccf2d827\al5_0_9; 9 9 10 10 // phpcs:ignore -
advanced-responsive-video-embedder/trunk/composer.json
r3338450 r3338484 1 1 { 2 "name": "nextgenthemes/advanced-responsive-video-embedder", 3 "description": "ARVE Advanced Responsive Video Embedder", 2 "name": "nextgenthemes/tweakmaster", 4 3 "type": "wordpress-plugin", 5 4 "license": "GPL-3.0", 5 "description": "TweakMaster - A collection or performance, privacy, security and other tweaks..", 6 6 "authors": [ 7 7 { 8 "name": "Nicolas Jonas", 9 "homepage": "https://nextgenthemes.com", 10 "role": "Developer" 8 "name": "Nicolas Jonas" 11 9 } 12 10 ], … … 15 13 }, 16 14 "require-dev": { 17 " nextgenthemes/wp-settings": "@dev",18 " automattic/jetpack-autoloader": "^v5.0.2"15 "automattic/jetpack-autoloader": "^v5.0.3", 16 "nextgenthemes/wp-settings": "@dev" 19 17 }, 20 18 "config": { … … 27 25 } 28 26 }, 29 "repositories": {30 "nextgenthemes/wp-settings": {31 "type": "path",32 "url": "../../../../../../dev/composer-packages/wp-settings",33 "options": {34 "symlink": false35 }36 }37 },38 27 "scripts": { 39 28 "build": [ 40 "./bin/block-json",41 29 "./bin/build-readme", 42 "npm run build:arve", 43 "npm run build:common", 44 "@composer update", 45 "@composer update --working-dir=tests" 46 ], 47 "pre-update-cmd": [ 48 "./bin/sync-wp-settings" 49 ], 50 "tests": [ 51 "cd ${HOME}/websites && NGT_PHPUNIT_LOAD_PLUGINS=\"advanced-responsive-video-embedder\" phpunit --testsuite advanced-responsive-video-embedder" 30 "cp ../advanced-responsive-video-embedder/bin/install-wp-tests.sh ./bin/", 31 "cp ../advanced-responsive-video-embedder/tests/phpunit-debug-helpers.php ./tests/", 32 "cp ../advanced-responsive-video-embedder/.gitignore ./", 33 "@composer update" 52 34 ] 53 35 } -
advanced-responsive-video-embedder/trunk/composer.lock
r3338450 r3338484 5 5 "This file is @generated automatically" 6 6 ], 7 "content-hash": " 91159bc166283f1570929cfd93e02a88",7 "content-hash": "dc4a6d1b65d3b499ca79a68a51744651", 8 8 "packages": [], 9 9 "packages-dev": [ … … 76 76 "name": "nextgenthemes/wp-settings", 77 77 "version": "dev-master", 78 "source": { 79 "type": "git", 80 "url": "https://github.com/nextgenthemes/wp-settings.git", 81 "reference": "4e26cd875e2ba18f6f1bb523ef51d01ec7f7869d" 82 }, 78 83 "dist": { 79 "type": "path", 80 "url": "../../../../../../dev/composer-packages/wp-settings", 81 "reference": "4e26cd875e2ba18f6f1bb523ef51d01ec7f7869d" 84 "type": "zip", 85 "url": "https://api.github.com/repos/nextgenthemes/wp-settings/zipball/4e26cd875e2ba18f6f1bb523ef51d01ec7f7869d", 86 "reference": "4e26cd875e2ba18f6f1bb523ef51d01ec7f7869d", 87 "shasum": "" 82 88 }, 83 89 "require": { 84 90 "php": ">=7.4" 85 91 }, 92 "default-branch": true, 86 93 "type": "library", 87 94 "autoload": { … … 90 97 ] 91 98 }, 99 "notification-url": "https://packagist.org/downloads/", 92 100 "license": [ 93 101 "GPL-3.0" … … 98 106 } 99 107 ], 100 " transport-options": {101 "s ymlink": false,102 "relative": true103 }108 "support": { 109 "source": "https://github.com/nextgenthemes/wp-settings/tree/master" 110 }, 111 "time": "2025-08-03T12:18:07+00:00" 104 112 } 105 113 ], -
advanced-responsive-video-embedder/trunk/license.txt
r2484697 r3338484 1 Nicolas Jonas 2 https://nextgenthemes.com 3 1 4 GNU GENERAL PUBLIC LICENSE 2 5 Version 3, 29 June 2007 3 6 4 Copyright (C) 2007 Free Software Foundation, Inc. <http ://fsf.org/>7 Copyright (C) 2007 Free Software Foundation, Inc. <https://fsf.org/> 5 8 Everyone is permitted to copy and distribute verbatim copies 6 9 of this license document, but changing it is not allowed. … … 646 649 647 650 You should have received a copy of the GNU General Public License 648 along with this program. If not, see <http ://www.gnu.org/licenses/>.651 along with this program. If not, see <https://www.gnu.org/licenses/>. 649 652 650 653 Also add information on how to contact you by electronic and paper mail. … … 665 668 if any, to sign a "copyright disclaimer" for the program, if necessary. 666 669 For more information on this, and how to apply and follow the GNU GPL, see 667 <http ://www.gnu.org/licenses/>.670 <https://www.gnu.org/licenses/>. 668 671 669 672 The GNU General Public License does not permit incorporating your program … … 672 675 the library. If this is what you want to do, use the GNU Lesser General 673 676 Public License instead of this License. But first, please read 674 <http ://www.gnu.org/philosophy/why-not-lgpl.html>.677 <https://www.gnu.org/licenses/why-not-lgpl.html>. -
advanced-responsive-video-embedder/trunk/php/fn-settings.php
r3252812 r3338484 3 3 declare(strict_types = 1); 4 4 5 namespace Nextgenthemes\ ARVE;5 namespace Nextgenthemes\TweakMaster; 6 6 7 7 use Nextgenthemes\WP\Settings; 8 8 use Nextgenthemes\WP\SettingsData; 9 use function Nextgenthemes\WP\nextgenthemes_settings_instance;10 9 11 10 function settings_instance(): Settings { … … 18 17 array( 19 18 'namespace' => __NAMESPACE__, 20 'settings' => settings( 'settings_page' ),21 'tabs' => settings_tabs(),22 'menu_title' => __( 'ARVE', 'advanced-responsive-video-embedder' ),23 'settings_page_title' => __( 'ARVE Settings', 'advanced-responsive-video-embedder' ),24 'plugin_file' => PLUGIN_FILE,25 19 'base_url' => plugins_url( '', PLUGIN_FILE ), 26 20 'base_path' => PLUGIN_DIR, 21 'plugin_file' => PLUGIN_FILE, 22 'settings' => settings_data(), 23 'menu_title' => esc_html__( 'TweakMaster', 'tweakmaster' ), 24 'settings_page_title' => esc_html__( 'TweakMaster', 'tweakmaster' ), 25 'tabs' => array( 26 'general' => array( 'title' => __( 'General', 'tweakmaster' ) ), 27 'privacy' => array( 'title' => __( 'Privacy', 'tweakmaster' ) ), 28 'media' => array( 'title' => __( 'Media', 'tweakmaster' ) ), 29 'revisions' => array( 'title' => __( 'Revisions', 'tweakmaster' ) ), 30 'security' => array( 'title' => __( 'Security', 'tweakmaster' ) ), 31 'performance' => array( 'title' => __( 'Performance', 'tweakmaster' ) ), 32 'plugins' => array( 'title' => __( 'Plugins', 'tweakmaster' ) ), 33 'tools' => array( 'title' => __( 'Tools', 'tweakmaster' ) ), 34 ), 27 35 ) 28 36 ); … … 40 48 } 41 49 42 function settings_tabs(): array { 43 44 return array( 45 'main' => [ 46 'title' => __( 'Main', 'advanced-responsive-video-embedder' ), 47 ], 48 'pro' => [ 49 'title' => __( 'Pro', 'advanced-responsive-video-embedder' ), 50 'premium_link' => sprintf( 51 '<a href="%s">%s</a>', 52 'https://nextgenthemes.com/plugins/arve-pro/', 53 __( 'Pro Addon', 'advanced-responsive-video-embedder' ) 50 function settings_data(): SettingsData { 51 $settings = array_merge( 52 general_settings(), 53 privacy_settings(), 54 media_settings(), 55 revision_settings(), 56 security_settings(), 57 performance_settings(), 58 plugins_settings(), 59 tools_settings() 60 ); 61 62 return new SettingsData( $settings ); 63 } 64 65 function general_settings(): array { 66 return array( 67 'remove-asset-ver-parameter' => array( 68 'tab' => 'general', 69 'label' => __( 'Remove version query strings', 'tweakmaster' ), 70 'description' => __( 'Removes <code>?ver=1.2.3</code> from all styles and scripts.', 'tweakmaster' ), 71 'type' => 'boolean', 72 'default' => false, 73 ), 74 'disable-feeds' => array( 75 'tab' => 'general', 76 'label' => __( 'Disable feeds', 'tweakmaster' ), 77 'type' => 'boolean', 78 'default' => false, 79 ), 80 'disable-emojis' => array( 81 'tab' => 'general', 82 'label' => __( 'Disable emojis', 'tweakmaster' ), 83 'type' => 'boolean', 84 'default' => false, 85 ), 86 'search-single-result-redirect' => array( 87 'tab' => 'general', 88 'label' => __( 'Search single result redirect', 'tweakmaster' ), 89 'type' => 'boolean', 90 'default' => false, 91 ), 92 'disallow-file-edit' => array( 93 'tab' => 'general', 94 'label' => __( 'Disallow File Edits', 'tweakmaster' ), 95 'description' => __( 'Disables the ability to edit files in the file manager. Sets <code>DISALLOW_FILE_EDIT</code> constant to true. Does only work if the constant is already defined, usually in wp-config.php', 'tweakmaster' ), 96 'type' => 'boolean', 97 'default' => false, 98 ), 99 'admin-bar-greeting' => array( 100 'tab' => 'general', 101 'label' => __( 'Admin bar greeting', 'tweakmaster' ), 102 'description' => __( 'Replace "Howdy, {name}" with a custom message. Use <code>{name}</code> for the user\'s display name. For example <code>Hi, {name}!</code>. Leave empty for no greeting. Use <code>default</code> for the default greeting, preventing the tweak from running.', 'tweakmaster' ), 103 'type' => 'string', 104 'default' => 'default', 105 ), 106 'enable-fonts-to-uploads' => array( 107 'tab' => 'general', 108 'label' => __( 'Enable fonts to uploads', 'tweakmaster' ), 109 'description' => __( 'Move (Google) Fonts enabled in the Block Editor from wp-content/fonts to wp-content/uploads', 'tweakmaster' ), 110 'type' => 'boolean', 111 'default' => false, 112 ), 113 'disable-auto-trash-emptying' => array( 114 'tab' => 'general', 115 'label' => __( 'Disable auto trash emptying', 'tweakmaster' ), 116 'type' => 'boolean', 117 'default' => false, 118 ), 119 'trash-keep-days' => array( 120 'tab' => 'general', 121 'label' => __( 'Set trash keep days', 'tweakmaster' ), 122 'description' => __( 'Set the number of days to keep posts in the trash. Default is 30 days.', 'tweakmaster' ), 123 'type' => 'integer', 124 'default' => 30, 125 ), 126 'scroll-progress-bar' => array( 127 'tab' => 'general', 128 'label' => __( 'Scroll progress bar', 'tweakmaster' ), 129 'type' => 'boolean', 130 'default' => false, 131 ), 132 'scroll-progress-bar-progress-bg-color' => array( 133 'tab' => 'general', 134 'label' => __( 'Scroll progress color', 'tweakmaster' ), 135 'type' => 'string', 136 'description' => sprintf( 137 'And valid css will work. You can use <a href="%s" target="_blank">this color picker!</a>.', 138 'https://oklch.com' 54 139 ), 55 ], 56 'privacy' => [ 57 'title' => __( 'Extra Privacy', 'advanced-responsive-video-embedder' ), 58 'premium_link' => sprintf( 59 '<a href="%s">%s</a>', 60 'https://nextgenthemes.com/plugins/arve-privacy/', 61 __( 'Privacy Addon', 'advanced-responsive-video-embedder' ) 62 ), 63 ], 64 'sticky_videos' => [ 65 'title' => __( 'Sticky Videos', 'advanced-responsive-video-embedder' ), 66 'premium_link' => sprintf( 67 '<a href="%s">%s</a>', 68 'https://nextgenthemes.com/plugins/arve-sticky-videos/', 69 __( 'Sticky Videos Addon', 'advanced-responsive-video-embedder' ) 70 ), 71 ], 72 'random_video' => [ 73 'title' => __( 'Random Video', 'advanced-responsive-video-embedder' ), 74 'premium_link' => sprintf( 75 '<a href="%s">%s</a>', 76 'https://nextgenthemes.com/plugins/arve-random-video/', 77 __( 'Random Videos Addon', 'advanced-responsive-video-embedder' ) 78 ), 79 'reset_button' => false, 80 ], 81 'urlparams' => [ 82 'title' => __( 'URL Parameters', 'advanced-responsive-video-embedder' ), 83 ], 84 'html5' => [ 85 'title' => __( 'Video Files', 'advanced-responsive-video-embedder' ), 86 ], 87 'debug' => [ 88 'title' => __( 'Debug', 'advanced-responsive-video-embedder' ), 89 ], 90 ); 91 } 92 93 function init_nextgenthemes_settings(): void { 94 95 nextgenthemes_settings_instance( 96 plugins_url( '', PLUGIN_FILE ), 97 PLUGIN_DIR 98 ); 99 } 100 101 function settings( string $context = 'settings_page' ): SettingsData { 102 103 $settings = settings_data(); 104 105 if ( in_array( $context, array( 'gutenberg_block', 'shortcode' ), true ) ) { 106 107 foreach ( $settings->get_all() as $k => $s ) { 108 if ( ! $s->shortcode ) { 109 $settings->remove( $k ); 110 continue; 111 } 112 113 if ( 'boolean' === $s->type && $s->option ) { 114 $s->bool_option_to_select(); 115 } 140 'default' => 'var(--wp--preset--color--primary, oklch(45.44% 0.1924 270 / 78.17%))', 141 ), 142 'scroll-progress-bar-bg-color' => array( 143 'tab' => 'general', 144 'label' => __( 'Scroll progress bar background color', 'tweakmaster' ), 145 'type' => 'string', 146 'default' => 'transparent', 147 ), 148 'scroll-progress-bar-progress-height' => array( 149 'tab' => 'general', 150 'label' => __( 'Scroll progress height', 'tweakmaster' ), 151 'type' => 'string', 152 'default' => '0.4rem', 153 ), 154 'disable-ssl-verify-self' => array( 155 'tab' => 'general', 156 'label' => __( 'Disable self SSL verify', 'tweakmaster' ), 157 'type' => 'boolean', 158 'default' => false, 159 ), 160 // 'disable-auto-updates' => array( 161 // 'tab' => 'general', 162 // 'label' => __( 'Disable Auto Updates', 'tweakmaster' ), 163 // 'type' => 'boolean', 164 // 'default' => false, 165 // ), 166 'disable-comments' => array( 167 'tab' => 'general', 168 'label' => __( 'Disable Comments', 'tweakmaster' ), 169 'type' => 'boolean', 170 'default' => false, 171 ), 172 'disable-email-login' => array( 173 'tab' => 'general', 174 'label' => __( 'Disable Email Login', 'tweakmaster' ), 175 'type' => 'boolean', 176 'default' => false, 177 ), 178 'disable-rest-api' => array( 179 'tab' => 'general', 180 'label' => __( 'Disable REST API', 'tweakmaster' ), 181 'type' => 'boolean', 182 'default' => false, 183 ), 184 'disable-success-update-emails' => array( 185 'tab' => 'general', 186 'label' => __( 'Disable Success Update Emails', 'tweakmaster' ), 187 'type' => 'boolean', 188 'default' => false, 189 ), 190 'remove-admin-bar-logo' => array( 191 'tab' => 'general', 192 'label' => __( 'Remove Admin Bar WordPress Logo', 'tweakmaster' ), 193 'description' => __( 'Requires a hard refresh of the page to take effect.', 'tweakmaster' ), 194 'type' => 'boolean', 195 'default' => false, 196 ), 197 'remove-asset-attr' => array( 198 'tab' => 'general', 199 'label' => __( 'Remove Asset Attributes', 'tweakmaster' ), 200 'type' => 'boolean', 201 'default' => false, 202 ), 203 'disable-non-production-emails' => array( 204 'tab' => 'general', 205 'label' => __( 'Disable Non Production Emails', 'tweakmaster' ), 206 'description' => __( 'If WP_ENV (Trellis) or wp_get_environment_type is not production, emails sending is mocked.', 'tweakmaster' ), 207 'type' => 'boolean', 208 'default' => false, 209 ), 210 'remove-rest-api-links' => array( 211 'tab' => 'general', 212 'label' => __( 'Remove REST API links', 'tweakmaster' ), 213 'type' => 'boolean', 214 'default' => false, 215 ), 216 ); 217 } 218 219 function security_settings(): array { 220 221 ob_start(); 222 wp_generator(); 223 $generator_html = ob_get_clean(); 224 225 $remove_wp_version_description = wp_kses( 226 sprintf( 227 /* translators: %s: example of a "generator" meta tag */ 228 __( 'Remove <code>%s</code> from html head', 'tweakmaster' ), 229 esc_html( $generator_html ) 230 ), 231 array( 232 'code' => array(), 233 ) 234 ); 235 236 return array( 237 'disable-xmlrpc' => array( 238 'tab' => 'security', 239 'label' => __( 'Disable XML-RPC', 'tweakmaster' ), 240 'type' => 'boolean', 241 'default' => false, 242 ), 243 'disable-xmlrpc-allow-jetpack-ips' => array( 244 'tab' => 'security', 245 'label' => __( 'Disable XML-RPC - allow Jetpack IPs', 'tweakmaster' ), 246 'description' => __( 'Allow XML-RPC only from Jetpack IPs', 'tweakmaster' ), 247 'type' => 'boolean', 248 'default' => false, 249 ), 250 'remove-wp-version' => array( 251 'tab' => 'security', 252 'default' => false, 253 'option' => true, 254 'label' => __( 'Remove WP version', 'tweakmaster' ), 255 'type' => 'boolean', 256 // translators: %s is example html 257 'description' => $remove_wp_version_description, 258 ), 259 ); 260 } 261 262 function performance_settings(): array { 263 return array( 264 'dequeue-jquery-migrate' => array( 265 'tab' => 'performance', 266 'label' => __( 'Dequeue jQuery Migrate', 'tweakmaster' ), 267 'description' => __( 'Dequeue jQuery Migrate from the jQuery script dependencies on the frontend. This is used to help devs debug from old versions of jQuery. You really do not need this on a production site.', 'tweakmaster' ), 268 'type' => 'boolean', 269 'default' => false, 270 ), 271 'enable-script-optimizer' => array( 272 'tab' => 'performance', 273 'label' => __( 'Script Optimizer', 'tweakmaster' ), 274 'description' => __( 'Optimize script loading by moving them into the <code>head</code> and adding <code>defer</code> attribute. This may break your site. Use at your own risk!', 'tweakmaster' ), 275 'type' => 'boolean', 276 'default' => false, 277 ), 278 'enable-relative-urls' => array( 279 'tab' => 'performance', 280 'label' => __( 'Enable relative URLs', 'tweakmaster' ), 281 'description' => __( 'Enable relative URLs on the frontend. This may break your site. Use at your own risk!', 'tweakmaster' ), 282 'type' => 'boolean', 283 'default' => false, 284 ), 285 ); 286 } 287 288 function media_settings(): array { 289 return array( 290 'convert-jpeg-to-avif' => array( 291 'tab' => 'media', 292 'default' => false, 293 'label' => __( 'Convert jpeg to avif', 'tweakmaster' ), 294 'description' => __( 'Convert uploaded jpeg to avif', 'tweakmaster' ), 295 'type' => 'boolean', 296 ), 297 'enable-clean-upload-filenames' => array( 298 'tab' => 'media', 299 'default' => false, 300 'label' => __( 'Clean upload filenames', 'tweakmaster' ), 301 'description' => __( 'Sanitize media filenames to remove non-latin special characters and accents', 'tweakmaster' ), 302 'type' => 'boolean', 303 ), 304 'avif-compression' => array( 305 'tab' => 'media', 306 'default' => 82, 307 'label' => __( 'Avif compression', 'tweakmaster' ), 308 'type' => 'integer', 309 'description' => __( 'Default is 82', 'tweakmaster' ), 310 ), 311 'jpeg-compression' => array( 312 'tab' => 'media', 313 'default' => 82, 314 'label' => __( 'Jpeg compression', 'tweakmaster' ), 315 'description' => __( 'Default is 82', 'tweakmaster' ), 316 'type' => 'integer', 317 ), 318 'webp-compression' => array( 319 'tab' => 'media', 320 'default' => 86, 321 'label' => __( 'Webp compression', 'tweakmaster' ), 322 'description' => __( 'Default is 86', 'tweakmaster' ), 323 'type' => 'integer', 324 ), 325 ); 326 } 327 328 function privacy_settings(): array { 329 330 // https://github.com/WordPress/WordPress/blob/c10dbc8434d14371366e413e510cb0d54b4f367b/wp-includes/class-wp-http.php#L206 331 $default_user_agent = 'WordPress/' . get_bloginfo( 'version' ) . '; ' . get_bloginfo( 'url' ); 332 $chrome_user_agent = 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/131.0.0.0 Safari/537.36'; 333 $user_agent_description = wp_kses( 334 sprintf( 335 // translators: %1$s: Default user agent. %2$s: Chrome user agent. 336 __( 'WP really hates privacy and sends this <code>%1$s</code> to every site it makes calls to. You can empty the field, pretend to be Chrome <code>%2$s</code> or something else. <code>default</code> will change nothing.', 'tweakmaster' ), 337 esc_html( $default_user_agent ), 338 esc_html( $chrome_user_agent ) 339 ), 340 array( 341 'code' => array(), 342 ) 343 ); 344 345 return array( 346 'user-agent' => array( 347 'tab' => 'privacy', 348 'default' => 'default', 349 'option' => true, 350 'label' => __( 'Set user agent', 'tweakmaster' ), 351 'type' => 'string', 352 'description' => $user_agent_description, 353 ), 354 355 'remove-exif' => array( 356 'tab' => 'privacy', 357 'default' => false, 358 'option' => true, 359 'label' => __( 'Remove EXIF', 'tweakmaster' ), 360 'description' => __( 'Remove EXIF data from uploaded images.', 'tweakmaster' ), 361 'type' => 'boolean', 362 ), 363 ); 364 } 365 366 function plugins_settings(): array { 367 368 return array( 369 'disable-cf7-css' => array( 370 'tab' => 'plugins', 371 'default' => false, 372 'option' => true, 373 'label' => __( 'Disable Contact Form 7 CSS', 'tweakmaster' ), 374 'description' => __( 'Sets <code>wpcf7_load_css</code> filter to <code>false</code>', 'tweakmaster' ), 375 'type' => 'boolean', 376 ), 377 'disable-cf7-autop' => array( 378 'tab' => 'plugins', 379 'default' => false, 380 'option' => true, 381 'label' => __( 'Disable Contact Form 7 Autop', 'tweakmaster' ), 382 'description' => __( 'Sets <code>wpcf7_autop_or_not</code> filter to <code>false</code>', 'tweakmaster' ), 383 'type' => 'boolean', 384 ), 385 'enable-jetpack-offline-mode' => array( 386 'tab' => 'plugins', 387 'default' => false, 388 'option' => true, 389 'label' => __( 'Enable Jetpack offline mode', 'tweakmaster' ), 390 'type' => 'boolean', 391 ), 392 ); 393 } 394 395 function revision_settings(): array { 396 397 $settings = array(); 398 399 foreach ( get_revision_post_types() as $type => $name ) { 400 $settings[ 'revisions-limit-' . $type ] = array( 401 'tab' => 'revisions', 402 'default' => -1, 403 'option' => true, 404 // translators: %s is post type name 405 'label' => sprintf( __( 'Revisions for %s', 'tweakmaster' ), $name ), 406 'type' => 'integer', 407 ); 408 } 409 410 $settings['revisions-limit-all'] = array( 411 'tab' => 'revisions', 412 'default' => -1, 413 'option' => true, 414 'label' => __( 'Limit ALL revisions', 'tweakmaster' ), 415 'description' => __( 'Limit revisions for all post types. This will override the limit for each post type from above!', 'tweakmaster' ), 416 'type' => 'integer', 417 ); 418 419 return $settings; 420 } 421 422 function tools_settings(): array { 423 424 return array( 425 'enable-maintenance-mode' => array( 426 'tab' => 'tools', 427 'default' => false, 428 'label' => __( 'Enable maintenance mode', 'tweakmaster' ), 429 'type' => 'boolean', 430 ), 431 'enable-duplicate-post' => array( 432 'tab' => 'tools', 433 'default' => false, 434 'label' => __( 'Enable duplicate post', 'tweakmaster' ), 435 'type' => 'boolean', 436 ), 437 ); 438 } 439 440 function option_is_set( string $key ): bool { 441 442 $default_option = default_options()[ $key ]; 443 444 return options()[ $key ] !== $default_option; 445 } 446 447 function any_option_is_set( array $options_keys ): bool { 448 449 foreach ( $options_keys as $key ) { 450 if ( option_is_set( $key ) ) { 451 return true; 116 452 } 117 453 } 118 454 119 switch ( $context ) { 120 case 'gutenberg_block': 121 $settings->remove( 'maxwidth' ); 122 break; 123 case 'settings_page': 124 foreach ( $settings->get_all() as $k => $s ) { 125 if ( ! $s->option ) { 126 $settings->remove( $k ); 127 } 128 } 129 break; 455 return false; 456 } 457 458 /** 459 * Get post types which support revisions. 460 */ 461 function get_revision_post_types(): array { 462 463 $revision_post_types = []; 464 465 foreach ( get_post_types() as $type ) { 466 467 $object = get_post_type_object( $type ); 468 469 if ( ! post_type_supports( $type, 'revisions' ) || null === $object ) { 470 continue; 471 } 472 473 $name = ( property_exists( $object, 'labels' ) && property_exists( $object->labels, 'name' ) ) 474 ? $object->labels->name 475 : $object->name; 476 477 $revision_post_types[ $type ] = $name; 130 478 } 131 479 132 return $settings; 133 } 134 135 function get_arg_type( string $arg_name ): ?string { 136 137 $setting = settings_data()->get( $arg_name ); 138 139 if ( ! $setting ) { 140 return null; 141 } 142 143 switch ( $setting->type ) { 144 case 'string': 145 return 'string'; 146 case 'boolean': 147 return 'bool'; 148 case 'integer': 149 return 'int'; 150 default: 151 return null; 152 } 153 } 154 155 function settings_data(): SettingsData { 156 157 $properties = get_host_properties(); 158 159 foreach ( $properties as $provider => $values ) { 160 161 if ( ! empty( $values['auto_thumbnail'] ) ) { 162 $auto_thumbs[] = $values['name']; 163 } 164 165 if ( ! empty( $values['auto_title'] ) ) { 166 $auto_title[] = $values['name']; 167 } 168 169 if ( ! empty( $values['requires_src'] ) ) { 170 $embed_code_only[] = $values['name']; 171 } 172 } 173 174 $provider_list_link = 'https://nextgenthemes.com/plugins/arve-pro/#support-table'; 175 $pro_addon_link = 'https://nextgenthemes.com/plugins/arve-pro/'; 176 $auto_thumbs = implode( ', ', $auto_thumbs ); 177 $auto_title = implode( ', ', $auto_title ); 178 $embed_code_only = implode( ', ', $embed_code_only ); 179 $settings = array( 180 'url' => array( 181 'type' => 'string', 182 'default' => '', 183 'label' => __( 'Video URL / iframe Embed Code', 'advanced-responsive-video-embedder' ), 184 'option' => false, 185 'placeholder' => 'https://rumble.com/*, https://www.youtube.com/watch?v=*', 186 'description' => sprintf( 187 // Translators: %1$s Providers 188 __( 'Post the URL of the video here. For %1$s and any <a href="%2$s">unlisted</a> video hosts paste their iframe embed codes.', 'advanced-responsive-video-embedder' ), 189 esc_html( $embed_code_only ), 190 esc_url( $provider_list_link ) 191 ), 192 'shortcode' => true, 193 ), 194 'loop' => array( 195 'default' => false, 196 'shortcode' => true, 197 'option' => false, 198 'label' => __( 'Loop?', 'advanced-responsive-video-embedder' ), 199 'type' => 'boolean', 200 'description' => __( 'Note not all video hosts provide this feature.', 'advanced-responsive-video-embedder' ), 201 ), 202 'muted' => array( 203 'default' => false, 204 'shortcode' => true, 205 'option' => false, 206 'label' => __( 'Mute?', 'advanced-responsive-video-embedder' ), 207 'type' => 'boolean', 208 'description' => __( 'Note not all video hosts provide this feature.', 'advanced-responsive-video-embedder' ), 209 ), 210 'controls' => array( 211 'default' => true, 212 'label' => __( 'Show Controls?', 'advanced-responsive-video-embedder' ), 213 'type' => 'boolean', 214 'description' => __( 'Note that not all video hosts provide this feature.', 'advanced-responsive-video-embedder' ), 215 'shortcode' => true, 216 'option' => true, 217 ), 218 'title' => array( 219 'type' => 'string', 220 'default' => '', 221 'placeholder' => __( 'Video Title (Pro automatically handles this)', 'advanced-responsive-video-embedder' ), 222 'label' => __( 'Title', 'advanced-responsive-video-embedder' ), 223 'option' => false, 224 'shortcode' => true, 225 'description' => sprintf( 226 // Translators: Provider list 227 __( 'Used for SEO, is visible on top of thumbnails in Lazyload/Lightbox modes, is used as link text in link-lightbox mode. <a href="%1$s">ARVE Pro</a> is able to get them from %2$s automatically.', 'advanced-responsive-video-embedder' ), 228 esc_url( $pro_addon_link ), 229 esc_html( $auto_title ) 230 ), 231 ), 232 'description' => array( 233 'default' => '', 234 'option' => false, 235 'shortcode' => true, 236 'label' => __( 'Description', 'advanced-responsive-video-embedder' ), 237 'type' => 'string', 238 'placeholder' => __( 'Description Text (Pro automatically handles this)', 'advanced-responsive-video-embedder' ), 239 'description' => sprintf( 240 // translators: URL 241 __( 'Needed for SEO <a href="%s">ARVE Pro</a> fills this automatically', 'advanced-responsive-video-embedder' ), 242 esc_url( $pro_addon_link ) 243 ), 244 ), 245 'upload_date' => array( 246 'type' => 'string', 247 'default' => '', 248 'option' => false, 249 'shortcode' => true, 250 'label' => __( 'Upload Date', 'advanced-responsive-video-embedder' ), 251 'placeholder' => __( '2019-09-29 (Pro automatically handles this)', 'advanced-responsive-video-embedder' ), 252 'description' => sprintf( 253 // translators: URL 254 __( '<a href="%s">ARVE Pro</a> fills this automatically.', 'advanced-responsive-video-embedder' ), 255 esc_url( $pro_addon_link ) 256 ), 257 ), 258 'mode' => array( 259 'type' => 'string', 260 'default' => 'normal', 261 'tab' => 'pro', 262 'label' => __( 'Mode', 'advanced-responsive-video-embedder' ), 263 'options' => array( 264 '' => __( 'Default', 'advanced-responsive-video-embedder' ), 265 'normal' => __( 'Normal', 'advanced-responsive-video-embedder' ), 266 'lazyload' => __( 'Lazyload', 'advanced-responsive-video-embedder' ), 267 'lightbox' => __( 'Lightbox', 'advanced-responsive-video-embedder' ), 268 'link-lightbox' => __( 'Link opens Lightbox', 'advanced-responsive-video-embedder' ), 269 ), 270 'description' => sprintf( 271 // translators: URL 272 __( 'For Lazyload, Lightbox and Link mode check out <a href="%s">ARVE Pro</a>. Only use normal when Pro is not installed!', 'advanced-responsive-video-embedder' ), 273 'https://nextgenthemes.com/plugins/arve-pro/' 274 ), 275 'option' => true, 276 'shortcode' => true, 277 ), 278 'lazyload_style' => array( 279 'type' => 'string', 280 'default' => 'thumbnail', 281 'tab' => 'pro', 282 'label' => __( 'Lazyload Style', 'advanced-responsive-video-embedder' ), 283 'options' => array( 284 '' => __( 'Default', 'advanced-responsive-video-embedder' ), 285 'thumbnail' => __( 'Thumbnail', 'advanced-responsive-video-embedder' ), 286 'card' => __( 'Card', 'advanced-responsive-video-embedder' ), 287 ), 288 'description' => esc_html__( 'Chose the look of the video preview for Lazyload and Lightbox modes!', 'advanced-responsive-video-embedder' ), 289 'option' => true, 290 'shortcode' => true, 291 ), 292 'thumbnail_fallback' => array( 293 'type' => 'string', 294 'default' => plugins_url( 'src/img/thumbnail.avif', PLUGIN_FILE ), 295 'tab' => 'pro', 296 'ui' => 'image_upload', 297 'shortcode' => false, 298 'option' => true, 299 'label' => __( 'Thumbnail Fallback', 'advanced-responsive-video-embedder' ), 300 'description' => __( 'URL or media gallery image ID used for thumbnail', 'advanced-responsive-video-embedder' ), 301 ), 302 'thumbnail_post_image_fallback' => array( 303 'tab' => 'pro', 304 'default' => true, 305 'shortcode' => false, 306 'option' => true, 307 'label' => __( 'Thumbnail Featured Image Fallback', 'advanced-responsive-video-embedder' ), 308 'type' => 'boolean', 309 'description' => __( 'In case ARVE Pro can not get a thumbnail, the posts Featured image will be used instead', 'advanced-responsive-video-embedder' ), 310 ), 311 'thumbnail' => array( 312 'type' => 'string', 313 'default' => '', 314 'ui' => 'image_upload', 315 'shortcode' => true, 316 'option' => false, 317 'label' => __( 'Thumbnail', 'advanced-responsive-video-embedder' ), 318 'placeholder' => '1234, https://* (Pro automatically handles this)', 319 'description' => sprintf( 320 // Translators: 1 Link, 2 Provider list 321 __( 'Media library image ID or image URL for preview image for SEO and Lazyload modes. <a href="%1$s">ARVE Pro</a> is able to get them from %2$s automatically, leave empty in this case unless you want use a different thumbnail. Type in <code>featured</code> to use the posts featured image.', 'advanced-responsive-video-embedder' ), 322 esc_url( $pro_addon_link ), 323 esc_html( $auto_thumbs ) 324 ), 325 ), 326 'hide_title' => array( 327 'type' => 'boolean', 328 'default' => false, 329 'shortcode' => true, 330 'option' => true, 331 'tab' => 'pro', 332 'label' => __( 'Hide Title (Lazyload & Lightbox only)', 'advanced-responsive-video-embedder' ), 333 'description' => __( 'Useful when the thumbnail image already displays the video title (Lazyload & Lightbox modes).', 'advanced-responsive-video-embedder' ), 334 ), 335 'grow' => array( 336 'type' => 'boolean', 337 'default' => true, 338 'shortcode' => true, 339 'option' => true, 340 'tab' => 'pro', 341 'label' => __( 'Expand on play? (Lazyload only)', 'advanced-responsive-video-embedder' ), 342 'description' => __( 'Expands video size after clicking the thumbnail (Lazyload Mode)', 'advanced-responsive-video-embedder' ), 343 ), 344 'fullscreen' => array( 345 'type' => 'string', 346 'default' => 'disabled', 347 'tab' => 'pro', 348 'label' => __( 'Go Fullscreen on opening Lightbox?', 'advanced-responsive-video-embedder' ), 349 'description' => __( 'Makes the Browser go fullscreen when opening the Lightbox. Optionally stay in Fullscreen mode even after the Lightbox is closed', 'advanced-responsive-video-embedder' ), 350 'options' => array( 351 '' => __( 'Default', 'advanced-responsive-video-embedder' ), 352 'enabled-exit' => __( 'Enabled, exit FS on lightbox close', 'advanced-responsive-video-embedder' ), 353 'enabled-stick' => __( 'Enabled, stay FS on lightbox close', 'advanced-responsive-video-embedder' ), 354 'disabled' => __( 'Disabled', 'advanced-responsive-video-embedder' ), 355 ), 356 'shortcode' => true, 357 'option' => true, 358 ), 359 'play_icon_style' => array( 360 'type' => 'string', 361 'default' => 'youtube', 362 'tab' => 'pro', 363 'label' => __( 'Play Button', 'advanced-responsive-video-embedder' ), 364 'options' => array( 365 // Translators: 1 %s is play icon style. 366 '' => __( 'Default', 'advanced-responsive-video-embedder' ), 367 'youtube' => __( 'Youtube', 'advanced-responsive-video-embedder' ), 368 'youtube-red-diamond' => __( 'Youtube Red Diamond', 'advanced-responsive-video-embedder' ), 369 'vimeo' => __( 'Vimeo', 'advanced-responsive-video-embedder' ), 370 'circle' => __( 'Circle', 'advanced-responsive-video-embedder' ), 371 'none' => __( 'No play image', 'advanced-responsive-video-embedder' ), 372 'custom' => __( 'Custom (for PHP filter)', 'advanced-responsive-video-embedder' ), 373 ), 374 'shortcode' => true, 375 'option' => true, 376 377 ), 378 'hover_effect' => array( 379 'type' => 'string', 380 'default' => 'darken', 381 'tab' => 'pro', 382 'label' => __( 'Hover Effect (Lazyload/Lightbox only)', 'advanced-responsive-video-embedder' ), 383 'options' => array( 384 '' => __( 'Default', 'advanced-responsive-video-embedder' ), 385 'darken' => __( 'Darken', 'advanced-responsive-video-embedder' ), 386 'zoom' => __( 'Zoom Thumbnail', 'advanced-responsive-video-embedder' ), 387 'rectangle' => __( 'Move Rectangle in', 'advanced-responsive-video-embedder' ), 388 'none' => __( 'None', 'advanced-responsive-video-embedder' ), 389 'custom' => __( 'Custom (for your own CSS styles', 'advanced-responsive-video-embedder' ), 390 ), 391 'shortcode' => true, 392 'option' => true, 393 ), 394 'disable_links' => array( 395 'tab' => 'pro', 396 'default' => false, 397 'label' => __( 'Disable links', 'advanced-responsive-video-embedder' ), 398 'type' => 'boolean', 399 'description' => __( 'Prevent embeds to open new popups/tabs from links inside video embeds. Note: breaks functionality like sharing.', 'advanced-responsive-video-embedder' ), 400 401 'shortcode' => true, 402 'option' => true, 403 ), 404 'align' => array( 405 'default' => 'none', 406 'shortcode' => true, 407 'option' => true, 408 'label' => __( 'Alignment', 'advanced-responsive-video-embedder' ), 409 'type' => 'string', 410 'options' => array( 411 '' => __( 'Default', 'advanced-responsive-video-embedder' ), 412 'none' => __( 'None', 'advanced-responsive-video-embedder' ), 413 'left' => __( 'Left', 'advanced-responsive-video-embedder' ), 414 'right' => __( 'Right', 'advanced-responsive-video-embedder' ), 415 'center' => __( 'Center', 'advanced-responsive-video-embedder' ), 416 ), 417 ), 418 'arve_link' => array( 419 'default' => false, 420 'label' => __( 'ARVE Link', 'advanced-responsive-video-embedder' ), 421 'type' => 'boolean', 422 'description' => __( "Shows a small 'ARVE' link below the videos. Be the most awesome person and help promoting this plugin.", 'advanced-responsive-video-embedder' ), 423 424 'shortcode' => true, 425 'option' => true, 426 ), 427 'duration' => array( 428 'type' => 'string', 429 'default' => '', 430 'option' => false, 431 'label' => __( 'Duration', 'advanced-responsive-video-embedder' ), 432 'placeholder' => '1H2M3S', 433 'description' => __( '`1H2M3S` for 1 hour, 2 minutes and 3 seconds. `5M` for 5 minutes.', 'advanced-responsive-video-embedder' ), 434 435 'shortcode' => true, 436 ), 437 'autoplay' => array( 438 'type' => 'boolean', 439 'default' => false, 440 'shortcode' => true, 441 'option' => true, 442 'label' => __( 'Autoplay', 'advanced-responsive-video-embedder' ), 443 'description' => __( 'Do not expect this to work! Browsers (especially mobile) or user settings prevent it, some video hosts do not support it at all. Only used in normal mode. ARVE will mute HTML5 video playback in case to make autoplay work for the broadest audience.', 'advanced-responsive-video-embedder' ), 444 ), 445 'maxwidth' => array( 446 'default' => 0, 447 'type' => 'integer', 448 'label' => __( 'Maximal Width', 'advanced-responsive-video-embedder' ), 449 'description' => sprintf( 450 // Translators: $content_width value. 451 __( 'In pixels. If set to 0 (default) the $content_width value from your theme is used if present, otherwise the default is %s.', 'advanced-responsive-video-embedder' ), 452 DEFAULT_MAXWIDTH 453 ), 454 'placeholder' => '450', 455 'shortcode' => true, 456 'option' => true, 457 458 ), 459 'lightbox_maxwidth' => array( 460 'type' => 'integer', 461 'default' => 1174, 462 'placeholder' => '1174', 463 'tab' => 'pro', 464 'label' => __( 'Lightbox Maximal Width', 'advanced-responsive-video-embedder' ), 465 'description' => __( 'default 1174', 'advanced-responsive-video-embedder' ), 466 'shortcode' => true, 467 'option' => true, 468 ), 469 'sticky' => array( 470 'type' => 'boolean', 471 'default' => true, 472 'tab' => 'sticky_videos', 473 'option' => true, 474 'shortcode' => true, 475 'label' => __( 'Sticky', 'advanced-responsive-video-embedder' ), 476 'description' => __( 'Keep the video on the screen when scrolling.', 'advanced-responsive-video-embedder' ), 477 ), 478 'sticky_width' => array( 479 'type' => 'string', 480 'default' => '500px', 481 'tab' => 'sticky_videos', 482 'shortcode' => false, 483 'option' => true, 484 'label' => __( 'Sticky Video Width', 'advanced-responsive-video-embedder' ), 485 'description' => __( 'CSS value (px, vw, ...) 350px is default.', 'advanced-responsive-video-embedder' ), 486 ), 487 'sticky_max_width' => array( 488 'type' => 'string', 489 'default' => '40vw', 490 'tab' => 'sticky_videos', 491 'shortcode' => false, 492 'option' => true, 493 'label' => __( 'Sticky Video Maximal Width', 'advanced-responsive-video-embedder' ), 494 'description' => __( 'A vw (viewport width) value is recommended. The default of 40vw tells the video it can never be wider than 40% of the screens width.', 'advanced-responsive-video-embedder' ), 495 ), 496 'sticky_gap' => array( 497 'type' => 'string', 498 'default' => '0.7rem', 499 'tab' => 'sticky_videos', 500 'shortcode' => false, 501 'option' => true, 502 503 'label' => __( 'Sticky Video Corner Gap', 'advanced-responsive-video-embedder' ), 504 'description' => __( 'CSS value (px, me, rem ...). Space between browser windows corner and pinned video.', 'advanced-responsive-video-embedder' ), 505 ), 506 'sticky_navbar_selector' => array( 507 'type' => 'string', 508 'default' => '.navbar--primary', 509 'tab' => 'sticky_videos', 510 'shortcode' => false, 511 'option' => true, 512 513 'label' => __( 'Selector for fixed Navbar', 'advanced-responsive-video-embedder' ), 514 'description' => __( 'If you have a fixed navbar on the top if your site you need this. document.querySelector(x) for a fixed navbar element to account for its height when pinning videos to the top.', 'advanced-responsive-video-embedder' ), 515 ), 516 'sticky_on_mobile' => array( 517 'type' => 'boolean', 518 'default' => true, 519 'tab' => 'sticky_videos', 520 'shortcode' => true, 521 'option' => true, 522 'label' => __( 'Sticky top on smaller screens', 'advanced-responsive-video-embedder' ), 523 'description' => __( 'Stick the video to the top of screens below 768px width in portrait orientation. The Video will always be as wide as the screen ignoring the Stick Width and Stick Maxwidth settings.', 'advanced-responsive-video-embedder' ), 524 ), 525 'sticky_position' => array( 526 'tab' => 'sticky_videos', 527 'default' => 'bottom-right', 528 'label' => __( 'Sticky Video Position', 'advanced-responsive-video-embedder' ), 529 'type' => 'string', 530 'options' => array( 531 '' => __( 'Default', 'advanced-responsive-video-embedder' ), 532 'top-left' => __( 'Top left', 'advanced-responsive-video-embedder' ), 533 'top-right' => __( 'Top right', 'advanced-responsive-video-embedder' ), 534 'bottom-left' => __( 'Bottom left', 'advanced-responsive-video-embedder' ), 535 'bottom-right' => __( 'Bottom right', 'advanced-responsive-video-embedder' ), 536 ), 537 'description' => __( 'Corner the video gets pinned to on bigger screens.', 'advanced-responsive-video-embedder' ), 538 'shortcode' => true, 539 'option' => true, 540 ), 541 'align_maxwidth' => array( 542 'default' => 400, 543 'shortcode' => false, 544 'label' => __( 'Align Maximal Width', 'advanced-responsive-video-embedder' ), 545 'type' => 'integer', 546 'description' => __( 'In px, Needed! Must be 100+ to work.', 'advanced-responsive-video-embedder' ), 547 'option' => true, 548 ), 549 'aspect_ratio' => array( 550 'default' => '', 551 'option' => false, 552 'shortcode' => true, 553 'label' => __( 'Aspect Ratio', 'advanced-responsive-video-embedder' ), 554 'type' => 'string', 555 'description' => __( 'E.g. 4:3, 21:9. ARVE is usually smart enough to figure this out on its own.', 'advanced-responsive-video-embedder' ), 556 'placeholder' => '4:3, 21:9 ...', 557 ), 558 'parameters' => array( 559 'default' => '', 560 'option' => false, 561 'shortcode' => true, 562 'label' => __( 'Parameters', 'advanced-responsive-video-embedder' ), 563 'type' => 'string', 564 'placeholder' => 'example=1&foo=bar', 565 'description' => sprintf( 566 // Translators: URL 567 __( 'Provider specific player settings on iframe src. See <a href="%s">documentation.</a>', 'advanced-responsive-video-embedder' ), 568 esc_url( 'https://nextgenthemes.com/plugins/arve/documentation/#parameters' ) 569 ), 570 ), 571 'wp_video_override' => array( 572 'tab' => 'html5', 573 'default' => true, 574 'shortcode' => false, 575 'option' => true, 576 'label' => __( 'Use ARVE for video files?', 'advanced-responsive-video-embedder' ), 577 'type' => 'boolean', 578 'description' => __( 'Overwrite the default WordPress behavior.', 'advanced-responsive-video-embedder' ), 579 ), 580 'controlslist' => array( 581 'tab' => 'html5', 582 'default' => '', 583 'label' => __( 'Chrome HTML5 Player controls', 'advanced-responsive-video-embedder' ), 584 'type' => 'string', 585 'description' => __( 'controlsList attribute on <video> for example use <code>nodownload nofullscreen noremoteplayback</code> to hide the download and the fullscreen button on the chrome HTML5 video player and disable remote playback.', 'advanced-responsive-video-embedder' ), 586 'placeholder' => 'nodownload nofullscreen noremoteplayback', 587 'shortcode' => true, 588 'option' => true, 589 ), 590 'volume' => array( 591 'tab' => 'pro', 592 'default' => 100, 593 'shortcode' => true, 594 'option' => true, 595 596 'label' => __( 'Volume', 'advanced-responsive-video-embedder' ), 597 'type' => 'integer', 598 'description' => __( 'Works with video files only.', 'advanced-responsive-video-embedder' ), 599 ), 600 'always_enqueue_assets' => array( 601 'shortcode' => false, 602 'option' => true, 603 604 'default' => false, 605 'label' => __( 'Always load assets', 'advanced-responsive-video-embedder' ), 606 'type' => 'boolean', 607 'description' => __( 'Default=No ARVE will loads its scripts and styles only when the posts content contains a arve video. In case your content is loaded via AJAX at a later stage this detection will not work or the styles are not loaded for another reason you may have to enable this option', 'advanced-responsive-video-embedder' ), 608 ), 609 'youtube_nocookie' => array( 610 'default' => true, 611 'shortcode' => false, 612 'option' => true, 613 'label' => __( 'Use youtube-nocookie.com url?', 'advanced-responsive-video-embedder' ), 614 'type' => 'boolean', 615 'description' => __( 'Privacy enhanced mode, will NOT disable cookies but only sets them when a user starts to play a video.', 'advanced-responsive-video-embedder' ), 616 ), 617 'vimeo_api_id' => array( 618 'tab' => 'random_video', 619 'default' => '', 620 'shortcode' => false, 621 'option' => true, 622 623 'label' => __( 'Vimeo client identifier', 'advanced-responsive-video-embedder' ), 624 'type' => 'string', 625 'description' => sprintf( 626 // Translators: URL 627 __( 'Needed for <a href="%s">Random Video Addon</a>.', 'advanced-responsive-video-embedder' ), 628 esc_url( 'https://nextgenthemes.com/plugins/arve-random-video/' ) 629 ), 630 ), 631 'vimeo_api_secret' => array( 632 'tab' => 'random_video', 633 'default' => '', 634 'shortcode' => false, 635 'option' => true, 636 'label' => __( 'Vimeo client secret', 'advanced-responsive-video-embedder' ), 637 'type' => 'string', 638 'description' => sprintf( 639 // Translators: URL 640 __( 'Needed for <a href="%s">Random Video Addon</a>.', 'advanced-responsive-video-embedder' ), 641 esc_url( 'https://nextgenthemes.com/plugins/arve-random-video/' ) 642 ), 643 ), 644 'vimeo_api_token' => array( 645 'tab' => 'random_video', 646 'default' => '', 647 'shortcode' => false, 648 'option' => true, 649 'label' => __( 'Vimeo API Token', 'advanced-responsive-video-embedder' ), 650 'type' => 'string', 651 'description' => sprintf( 652 // Translators: URL 653 __( 'Needed for <a href="%s">Random Video Addon</a>.', 'advanced-responsive-video-embedder' ), 654 esc_url( 'https://nextgenthemes.com/plugins/arve-random-video/' ) 655 ), 656 ), 657 'random_video_url' => array( 658 'tab' => 'random_video', 659 'default' => '', 660 'placeholder' => 'https://www.youtube.com/playlist?list=PL...', 661 'option' => false, 662 'shortcode' => true, 663 'label' => esc_html__( 'Random Video URL', 'advanced-responsive-video-embedder' ), 664 'type' => 'string', 665 'description' => sprintf( 666 // Translators: URL 667 __( 'Youtube Playlist or Vimeo showcase URL<a href="%s">(Random Video Addon)</a>.', 'advanced-responsive-video-embedder' ), 668 esc_url( 'https://nextgenthemes.com/plugins/arve-random-video/' ) 669 ), 670 ), 671 'random_video_urls' => array( 672 'tab' => 'random_video', 673 'default' => '', 674 'placeholder' => 'https://youtu.be/abc, https://vimeo.com/123', 675 'option' => false, 676 'shortcode' => true, 677 'label' => esc_html__( 'Random Video URLs', 'advanced-responsive-video-embedder' ), 678 'type' => 'string', 679 'description' => sprintf( 680 // Translators: URL 681 __( 'Video URLs separated by commas. <a href="%s">(Random Video Addon)</a>.', 'advanced-responsive-video-embedder' ), 682 esc_url( 'https://nextgenthemes.com/plugins/arve-random-video/' ) 683 ), 684 ), 685 'legacy_shortcodes' => array( 686 'default' => true, 687 'shortcode' => false, 688 'option' => true, 689 'label' => __( 'Enable legacy shortcodes', 'advanced-responsive-video-embedder' ), 690 'type' => 'boolean', 691 'description' => __( 'Enable the old and deprecated <code>[youtube id="abcde" /]</code> or <code>[vimeo id="abcde" /]</code> ... style shortcodes. Only enable if you have them in your content.', 'advanced-responsive-video-embedder' ), 692 ), 693 'encrypted_media' => array( 694 'default' => false, 695 'shortcode' => true, 696 'option' => false, 697 'label' => __( 'Allow Encrypted Media', 'advanced-responsive-video-embedder' ), 698 'type' => 'boolean', 699 'description' => __( "Only needed in specific situations. Reduces privacy of the iframe embed. 'Disable Links' feature from ARVE Pro will not work with this.", 'advanced-responsive-video-embedder' ), 700 ), 701 'credentialless' => array( 702 'default' => true, 703 'shortcode' => true, 704 'option' => false, 705 'label' => __( 'Set credentialless on iframe', 'advanced-responsive-video-embedder' ), 706 'type' => 'boolean', 707 'description' => __( 'Needs to be disabled in specific situations like webvideocore.net payment popup. Reduces privacy of the iframe embeds when disabled.', 'advanced-responsive-video-embedder' ), 708 ), 709 'seo_data' => array( 710 'tab' => 'main', 711 'default' => true, 712 'shortcode' => false, 713 'option' => true, 714 'label' => __( 'Enable structured data (schema.org)', 'advanced-responsive-video-embedder' ), 715 'type' => 'boolean', 716 'description' => __( 'ARVE Pro helps you autofill the data so you do not have to manually enter things for every single video to make it complete.', 'advanced-responsive-video-embedder' ), 717 ), 718 'gutenberg_help' => array( 719 'default' => true, 720 'shortcode' => false, 721 'option' => true, 722 'label' => __( 'Enable help text?', 'advanced-responsive-video-embedder' ), 723 'type' => 'boolean', 724 'description' => __( 'Disabling this makes the interface in Gutenberg/Shortcode dialog much cleaner.', 'advanced-responsive-video-embedder' ), 725 ), 726 'feed' => array( 727 'default' => true, 728 'shortcode' => false, 729 'option' => true, 730 'label' => __( 'Use in RSS/Atom Feeds?', 'advanced-responsive-video-embedder' ), 731 'type' => 'boolean', 732 'description' => __( 'Enable the plugin in RSS/Atom feeds? Disabling will not completely diable everything but it will use native WP behavior in feeds where possible.', 'advanced-responsive-video-embedder' ), 733 ), 734 'reset_after_played' => array( 735 'tab' => 'pro', 736 'default' => 'enabled', 737 'shortcode' => false, 738 'option' => true, 739 'label' => __( 'Reset after played', 'advanced-responsive-video-embedder' ), 740 'type' => 'string', 741 'options' => array( 742 '' => __( 'Default', 'advanced-responsive-video-embedder' ), 743 'enabled' => __( 'Enabled', 'advanced-responsive-video-embedder' ), 744 'disabled' => __( 'Disabled', 'advanced-responsive-video-embedder' ), 745 'disabled-for-vimeo' => __( 'Disabled for Vimeo only', 'advanced-responsive-video-embedder' ), 746 ), 747 'description' => __( 'When enabled ARVE Pro will display the thumbnail again like it is shown before the video was loaded. When a video is displayed in a lightbox the lightbox will automatically close. If you are using Vimeo\'s "call to action" feature for example you want to disable this for vimeo.', 'advanced-responsive-video-embedder' ), 748 ), 749 'admin_bar_menu' => array( 750 'default' => false, 751 'shortcode' => false, 752 'option' => true, 753 'label' => __( 'Admin bar ARVE button', 'advanced-responsive-video-embedder' ), 754 'type' => 'boolean', 755 'description' => __( 'For quickly accessing the ARVE settings page.', 'advanced-responsive-video-embedder' ), 756 ), 757 'lightbox_aspect_ratio' => array( 758 'tab' => 'pro', 759 'default' => '', 760 'placeholder' => '9:16', 761 'shortcode' => true, 762 'option' => false, 763 'label' => __( 'Lightbox aspect ratio', 'advanced-responsive-video-embedder' ), 764 'type' => 'string', 765 'description' => __( 'The aspect ratio of the lightbox. Leave empty to use the original video aspect ratio.', 'advanced-responsive-video-embedder' ), 766 ), 767 'cache_thumbnails' => array( 768 'tab' => 'privacy', 769 'default' => false, 770 'shortcode' => false, 771 'option' => true, 772 'label' => __( 'Cache thumbnails in Media Library', 'advanced-responsive-video-embedder' ), 773 'type' => 'boolean', 774 'description' => __( 'No image hotlinking to video hosts. For Lazyload/Lightbox (Pro).', 'advanced-responsive-video-embedder' ), 775 ), 776 'invidious' => array( 777 'tab' => 'privacy', 778 'default' => false, 779 'shortcode' => true, 780 'option' => true, 781 'label' => __( 'Enable Invidious for YouTube', 'advanced-responsive-video-embedder' ), 782 'type' => 'boolean', 783 ), 784 'invidious_instance' => array( 785 'tab' => 'privacy', 786 'default' => 'https://inv.nadeko.net/', 787 'shortcode' => false, 788 'option' => true, 789 'label' => __( 'Invidious instance', 'advanced-responsive-video-embedder' ), 790 'type' => 'string', 791 'description' => sprintf( 792 // translators: %s is URL 793 __( 'Invidious instance <a href="%s" target="_blank">see here</a>.', 'advanced-responsive-video-embedder' ), 794 esc_url( 'https://docs.invidious.io/instances/' ) 795 ), 796 ), 797 'invidious_parameters' => array( 798 'tab' => 'privacy', 799 'default' => 'local=true', 800 'shortcode' => false, 801 'option' => true, 802 'label' => __( 'Invidious URL parameters', 'advanced-responsive-video-embedder' ), 803 'type' => 'string', 804 'description' => sprintf( 805 // translators: %s is URL 806 __( 'Invidious <a href="%s" target="_blank">url parameters</a>.', 'advanced-responsive-video-embedder' ), 807 esc_url( 'https://docs.invidious.io/url-parameters/' ) 808 ), 809 ), 810 'allow_referrer' => array( 811 'label' => __( 'Allow domain restricted videos (referrerpolicy)', 'advanced-responsive-video-embedder' ), 812 'tab' => 'main', 813 'default' => 'youtube, vimeo, rumble, xhamster, kick', 814 'type' => 'string', 815 'option' => true, 816 'shortcode' => false, 817 'description' => __( 'Comma separated list of lowercase hosts that will set <code>referrerpolicy="origin-when-cross-origin"</code> instead of the default <code>referrerpolicy="no-referer"</code> on <code>iframe</code>. This will make video less private for the visitor as the host will be able to see on what website they are watching on but its needed for youtube, vimeo, rumble and possible others for domain restricted videos.', 'advanced-responsive-video-embedder' ), 818 ), 819 'show_src_mismatch_errors' => array( 820 'label' => __( 'Show src mismatch errors', 'advanced-responsive-video-embedder' ), 821 'tab' => 'debug', 822 'type' => 'string', 823 'default' => 'dev-mode', 824 'option' => true, 825 'shortcode' => false, 826 'options' => array( 827 'always' => __( 'Always', 'advanced-responsive-video-embedder' ), 828 'dev-mode' => __( 'Dev Modes Only', 'advanced-responsive-video-embedder' ), 829 'never' => __( 'Never', 'advanced-responsive-video-embedder' ), 830 ), 831 ), 832 'youtube_data_api_key' => array( 833 'label' => __( 'YouTube Data API Key', 'advanced-responsive-video-embedder' ), 834 'tab' => 'pro', 835 'type' => 'string', 836 'default' => '', 837 'option' => true, 838 'shortcode' => false, 839 'description' => sprintf( 840 // translators: %s is URL 841 __( 'If you want ARVE Pro to pull video description text for Card view and SEO. You may need this if the included API key gets rate limited. Get your API key <a href="%s" target="_blank">here</a>.', 'advanced-responsive-video-embedder' ), 842 esc_url( 'https://www.youtube.com/watch?v=EPeDTRNKAVo' ) 843 ), 844 ), 845 ); 846 847 foreach ( $properties as $provider => $v ) { 848 849 if ( isset( $v['default_params'] ) ) { 850 851 $settings[ 'url_params_' . $provider ] = array( 852 'tab' => 'urlparams', 853 'default' => $v['default_params'], 854 'option' => true, 855 'shortcode' => false, 856 // Translators: %s is Provider 857 'label' => sprintf( __( '%s url parameters', 'advanced-responsive-video-embedder' ), $provider ), 858 'type' => 'string', 859 ); 860 } 861 } 862 863 $settings = new SettingsData( $settings, true ); 864 865 return $settings; 866 } 480 return $revision_post_types; 481 } -
advanced-responsive-video-embedder/trunk/php/init.php
r3338450 r3338484 3 3 declare(strict_types = 1); 4 4 5 namespace Nextgenthemes\ ARVE;5 namespace Nextgenthemes\TweakMaster; 6 6 7 // Stop outdated addons from executing 8 remove_action( 'plugins_loaded', 'Nextgenthemes\ARVE\Pro\init', 15 ); 9 remove_action( 'plugins_loaded', 'Nextgenthemes\ARVE\RandomVideo\init', 15 ); 10 remove_action( 'plugins_loaded', 'Nextgenthemes\ARVE\Privacy\init', 16 ); 11 12 add_action( 'init', __NAMESPACE__ . '\init', 9 ); 7 add_action( 'init', __NAMESPACE__ . '\init_public', 9 ); 13 8 add_action( 'admin_init', __NAMESPACE__ . '\init_admin', 9 ); 14 9 15 function init (): void {10 function init_public(): void { 16 11 17 require_once PLUGIN_DIR . '/php/Video.php'; 18 require_once PLUGIN_DIR . '/php/fn-cache.php'; 19 require_once PLUGIN_DIR . '/php/fn-assets.php'; 20 require_once PLUGIN_DIR . '/php/fn-html-output.php'; 21 require_once PLUGIN_DIR . '/php/fn-misc.php'; 22 require_once PLUGIN_DIR . '/php/fn-oembed.php'; 23 require_once PLUGIN_DIR . '/php/fn-shortcode-data.php'; 24 require_once PLUGIN_DIR . '/php/fn-shortcode-args.php'; 25 require_once PLUGIN_DIR . '/php/fn-shortcodes.php'; 26 require_once PLUGIN_DIR . '/php/fn-url-handlers.php'; 27 require_once PLUGIN_DIR . '/php/fn-validation.php'; 28 require_once PLUGIN_DIR . '/php/fn-settings.php'; 12 require_once __DIR__ . '/fn-settings.php'; 29 13 30 add_option( 'arve_install_date', time() ); 31 maybe_delete_oembed_cache(); // Must be before update_option arve_version 32 update_option( 'arve_version', VERSION ); 14 $settings = settings_data(); 15 $settings->remove( 'scroll-progress-bar' ); // uses options api 33 16 34 add_action( 'init', __NAMESPACE__ . '\settings_instance' ); 35 add_action( 'init', __NAMESPACE__ . '\init_nextgenthemes_settings' ); 36 add_action( 'init', __NAMESPACE__ . '\register_assets' ); 37 add_action( 'init', __NAMESPACE__ . '\create_shortcodes' ); 38 add_action( 'init', __NAMESPACE__ . '\create_url_handlers' ); 39 add_filter( 'mce_css', __NAMESPACE__ . '\add_styles_to_mce' ); 40 add_filter( 'oembed_remote_get_args', __NAMESPACE__ . '\vimeo_referer', 10, 2 ); 41 add_action( 'wp_enqueue_scripts', __NAMESPACE__ . '\action_wp_enqueue_scripts' ); 42 add_filter( 'render_block_core/embed', __NAMESPACE__ . '\remove_embed_block_aspect_ratio' ); 43 add_action( 'wp_video_shortcode_override', __NAMESPACE__ . '\wp_video_shortcode_override', 10, 4 ); 44 add_filter( 'language_attributes', __NAMESPACE__ . '\html_id' ); 45 add_filter( 'oembed_dataparse', __NAMESPACE__ . '\filter_oembed_dataparse', PHP_INT_MAX, 3 ); 46 add_filter( 'embed_oembed_html', __NAMESPACE__ . '\filter_embed_oembed_html', OEMBED_HTML_PRIORITY, 4 ); 47 add_action( 'elementor/widgets/register', __NAMESPACE__ . '\register_elementor_widget' ); 17 foreach ( $settings->get_all() as $key => $setting ) { 48 18 49 foreach ( ADDON_NAMES as $addon_name ) { 50 maybe_init_addon( $addon_name ); 19 if ( 'boolean' === $setting->type && option_is_set( $key ) ) { 20 require_once TWEAKS_DIR_SA . "/$key.php"; 21 } 51 22 } 23 24 if ( any_option_is_set( [ 'jpeg-compression', 'webp-compression', 'avif-compression' ] ) ) { 25 require_once TWEAKS_DIR . '/image-quality.php'; 26 } 27 28 if ( ! defined( 'EMPTY_TRASH_DAYS' ) && option_is_set( 'trash-keep-days' ) ) { 29 require_once TWEAKS_DIR . '/set-trash-keep-days.php'; 30 } 31 32 require_once TWEAKS_DIR . '/revisions-to-keep.php'; 33 34 require_file_if_option_is_set( 'admin-bar-greeting' ); 35 require_file_if_option_is_set( 'scroll-progress-bar' ); 36 require_file_if_option_is_set( 'user-agent' ); 52 37 } 53 38 54 function maybe_init_addon( string $name): void {39 function require_file_if_option_is_set( string $key ): void { 55 40 56 $init_function_name = '\\' . __NAMESPACE__ . '\\' . $name . '\\init'; 57 $version_const_name = '\\' . __NAMESPACE__ . '\\' . $name . '\\VERSION'; 58 $req_ver_const_name = '\\' . __NAMESPACE__ . '\\' . strtoupper( $name ) . '_REQUIRED_VERSION'; 59 $version = defined( $version_const_name ) ? constant( $version_const_name ) : ''; 60 $req_ver = defined( $req_ver_const_name ) ? constant( $req_ver_const_name ) : ''; 61 62 if ( $version && version_compare( $version, $req_ver, '>=' ) && function_exists( $init_function_name ) ) { 63 $init_function_name(); 41 if ( option_is_set( $key ) ) { 42 require_once TWEAKS_DIR . "/$key.php"; 64 43 } 65 44 } 66 45 67 46 function init_admin(): void { 68 69 require_once PLUGIN_DIR . '/php/Admin/fn-admin.php'; 70 require_once PLUGIN_DIR . '/php/Admin/fn-settings-page.php'; 71 require_once PLUGIN_DIR . '/php/Admin/fn-shortcode-creator.php'; 72 require_once PLUGIN_DIR . '/php/Admin/fn-debug-info.php'; 73 74 add_action( 'nextgenthemes/arve/admin/settings/sidebar', __NAMESPACE__ . '\Admin\settings_sidebar' ); 75 add_action( 'nextgenthemes/arve/admin/settings/content', __NAMESPACE__ . '\Admin\settings_content' ); 76 77 add_action( 'admin_bar_menu', __NAMESPACE__ . '\Admin\action_admin_bar_menu', 100 ); 78 add_action( 'admin_enqueue_scripts', __NAMESPACE__ . '\Admin\admin_enqueue_scripts' ); 79 add_action( 'admin_enqueue_scripts', __NAMESPACE__ . '\Admin\admin_enqueue_styles', 99 ); 80 add_action( 'admin_init', __NAMESPACE__ . '\Admin\action_admin_init_setup_messages' ); 81 add_action( 'media_buttons', __NAMESPACE__ . '\Admin\add_media_button', 11 ); 82 83 add_action( 'register_shortcode_ui', __NAMESPACE__ . '\Admin\register_shortcode_ui' ); 84 add_action( 'wp_dashboard_setup', __NAMESPACE__ . '\Admin\add_dashboard_widget' ); 85 86 add_filter( 'plugin_action_links_' . plugin_basename( PLUGIN_FILE ), __NAMESPACE__ . '\Admin\add_action_links' ); 87 88 add_filter( 'debug_information', __NAMESPACE__ . '\Admin\add_site_health_metadata' ); 47 add_action( 'nextgenthemes/tweakmaster/admin/settings/sidebar', __NAMESPACE__ . '\code_info' ); 48 add_action( 'nextgenthemes/tweakmaster/admin/settings/content', __NAMESPACE__ . '\revisions_tab_info' ); 89 49 } 90 50 91 register_uninstall_hook( PLUGIN_FILE, __NAMESPACE__ . '\uninstall' ); 51 function code_info(): void { 92 52 93 function uninstall(): void { 53 ?> 54 <div class="ngt-sidebar-box"> 55 <p> 56 <?php 57 echo wp_kses( 58 sprintf( 59 // translators: %s: Github URL. 60 __( 'See the <a href="%s" target="_blank">code</a> and add tweaks you are missing.', 'tweakmaster' ), 61 'https://github.com/nextgenthemes/tweakmaster/tree/master/php/tweaks-standalone' 62 ), 63 [ 64 'a' => [ 65 'href' => [], 66 'target' => [], 67 ], 68 ], 69 [ 'https' ] 70 ); 71 ?> 72 </p> 73 </div> 74 <?php 75 } 94 76 95 global $wpdb; 77 function revisions_tab_info(): void { 96 78 97 if ( version_compare( $wpdb->db_version(), '8.0', '>=' ) ) { 98 $wpdb->query( "UPDATE {$wpdb->postmeta} SET meta_value = REGEXP_REPLACE( meta_value, '<template[^>]+arve_cachetime[^>]+></template>', '' )" ); 99 } 79 ?> 80 <p data-wp-bind--hidden="!context.activeTabs.revisions"> 81 <?php echo wp_kses( __( '<code>-1</code> = Unlimited revisions', 'tweakmaster' ), [ 'code' => [] ] ); ?><br> 82 <?php echo wp_kses( __( '<code>0</code> = Disable revisions', 'tweakmaster' ), [ 'code' => [] ] ); ?><br> 83 <?php echo wp_kses( __( 'Positive integer = Number of revisions', 'tweakmaster' ), [ 'code' => [] ] ); ?> 84 </p> 85 <?php 100 86 } -
advanced-responsive-video-embedder/trunk/readme.md
r3089848 r3338484 1 # Git repository for Advanced Responsive Video Embedder (ARVE) 1 If you just want just use the plugin its on [wordpress.org](https://wordpress.org/tweakmaster). 2 2 3 # ### Level up your basic video embeds! Advanced features, privacy. Use URLs, Shortcodes or Blocks to customize videos to your needs.3 # Contributing is very easy 4 4 5 [ARVE WordPress Plugin][1] is free on [wp.org][1]. Look there for the feature set. 5 1. For a basic standalone tweak all you need to do it develop a (mu)plugin as a single file that automatically enabled/disables or otherwise tweaks something with filters or actions. 6 1. When you have your tiny tweak plugin working simply place the file into `tweakmaster/php/tweaks-standalone/` look at the naming of the files and name your tweak straight to the point. Look at the other files for coding standards. Use Namespace, filters/actions at the top of the file, avoid anonymous functions. 7 1. Then check out how settings are defined in `tweakmaster/php/fn-settings.php`. Add a setting for your tweak, the array key should be like your filename but without the `.php` ending. Most of the boolean settings simple case a tweak file to be loaded. Think of it like activating plugins. 6 8 7 [Permalink download to latest version][2]. It will at times be an alpha or beta version that passed the automatic tests but is not released to wp.org. You can upload it a WordPress site under Dashboard > Plugins -> Add New -> Upload. 9 # Advanced usage of standalone tweaks as mu-plugins 8 10 9 Feel free to file issues with the *code*, for support please file a ticket on [nextgenthemes.com/support/](https://nextgenthemes.com/support/) 11 If you do it this way, you probably should not use the Plugin at the same time. It won't work for tweaks that have settings that are not just on/off switches. Each standalone tweak can be used as mu-plugin. Simple put the files you need inside your mu-plugins folder. 10 12 11 Code contributions are welcome.13 To do this you can simply copy `.php` files you like from [tweaks-standalone/](https://github.com/nextgenthemes/tweakmaster/tree/master/php/tweaks-standalone) to your mu-plugins folder. Github has a 'download file' icon on the top right when you open files. 12 14 13 Paid addons that finance this project are available: 15 If you have WP CLI you can use these command to copy the files directly from Github to your WordPress site. 14 16 15 * [Pro](https://nextgenthemes.com/plugins/arve-pro) for Lightbox, Lazyload, Autofill of SEO data and more. 16 * [Privacy](https://nextgenthemes.com/plugins/arve-privacy) for DSGVO compliance, self hosted thumbnails, load YouTube videos via an invideo.us instance. 17 * [Sticky Videos](https://nextgenthemes.com/plugins/arve-sticky-videos/) 18 * [Random Video](https://nextgenthemes.com/plugins/arve-random-video) 17 ```sh 18 # In case you do not have a mu-plugins folder. 19 wp eval "if ( ! file_exists(WP_CONTENT_DIR . '/mu-plugins' ) ) { mkdir(WP_CONTENT_DIR . '/mu-plugins', 0755, true); }" 19 20 20 If you have an idea for a functionality or addon you like to pay for, please [reach out](https://nextgenthemes.com/contact/). 21 22 [1]: https://wordpress.org/plugins/advanced-responsive-video-embedder/ 23 [2]: https://github.com/nextgenthemes/advanced-responsive-video-embedder/releases/latest/download/arve.zip 21 # Replace the filename with any file you find in https://github.com/nextgenthemes/tweakmaster/tree/master/php/tweaks-standalone/ 22 wp eval "\$filename = 'disable-auto-trash-emptying.php'; file_put_contents( WP_CONTENT_DIR . '/mu-plugins/' . \$filename, file_get_contents( 'https://raw.githubusercontent.com/nextgenthemes/tweakmaster/refs/heads/master/php/tweaks-standalone/' . \$filename ) );" 23 ``` -
advanced-responsive-video-embedder/trunk/readme.txt
r3338450 r3338484 1 === Advanced Responsive Video Embedder for Rumble, Odysee, YouTube, Vimeo, Kick ...===1 === TweakMaster === 2 2 Contributors: nico23 3 Donate link: https://nextgenthemes.com/donate/ 4 Tags: embed, video, lazyload, lightbox, rumble 3 Tags: performance, privacy, security, tweaks, lightweight 5 4 Requires at least: 6.6 6 5 Tested up to: 6.8 7 6 Requires PHP: 7.4 8 Stable tag: 1 0.6.139 License: GPL -3.07 Stable tag: 1.0.5 8 License: GPLv3 10 9 License URI: https://www.gnu.org/licenses/gpl-3.0.html 10 Donate link: https://nextgenthemes.com/donate 11 11 12 Level up your basic video embeds! Advanced features, privacy. Use URLs, Shortcodes or Blocks to customize videos to your needs.12 A collection of performance, privacy, security, and other tweaks. Minimalistic lightweight plugin. 13 13 14 ## Description ## 14 == Description == 15 WP Tweak is a lightweight and minimalistic WordPress plugin designed to enhance your website with a curated set of tweaks. It focuses on improving performance, bolstering privacy, strengthening security, and adding other useful optimizations—all without unnecessary bloat. Perfect for users who want a simple yet effective solution to fine-tune their WordPress experience. 15 16 16 Th e best WordPress plugin for videos? Supports close to everything you can imagine, still keeping it easy & simple.17 This plugins handles tweaks in a minimalistic way. Only files that contains tweaks that you activate are loaded! 17 18 18 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! 19 = Tweaks = 19 20 20 [youtube https://www.youtube.com/watch?v=m6mkA6Zr1vY ] 21 * **Remove version query strings**<br> 22 Removes <code>?ver=1.2.3</code> from all styles and scripts. 23 * **Disable feeds** 24 * **Disable emojis** 25 * **Search single result redirect** 26 * **Disallow File Edits**<br> 27 Disables the ability to edit files in the file manager. Sets <code>DISALLOW_FILE_EDIT</code> constant to true. Does only work if the constant is already defined, usually in wp-config.php 28 * **Admin bar greeting**<br> 29 Replace "Howdy, {name}" with a custom message. Use <code>{name}</code> for the user's display name. For example <code>Hi, {name}!</code>. Leave empty for no greeting. Use <code>default</code> for the default greeting, preventing the tweak from running. 30 * **Enable fonts to uploads**<br> 31 Move (Google) Fonts enabled in the Block Editor from wp-content/fonts to wp-content/uploads 32 * **Disable auto trash emptying** 33 * **Set trash keep days**<br> 34 Set the number of days to keep posts in the trash. Default is 30 days. 35 * **Scroll progress bar** 36 * **Scroll progress color**<br> 37 And valid css will work. You can use <a href="https://oklch.com" target="_blank">this color picker!</a>. 38 * **Scroll progress bar background color** 39 * **Scroll progress height** 40 * **Disable self SSL verify** 41 * **Disable Comments** 42 * **Disable Email Login** 43 * **Disable REST API** 44 * **Disable Success Update Emails** 45 * **Remove Admin Bar WordPress Logo**<br> 46 Requires a hard refresh of the page to take effect. 47 * **Remove Asset Attributes** 48 * **Disable Non Production Emails**<br> 49 If WP_ENV (Trellis) or wp_get_environment_type is not production, emails sending is mocked. 50 * **Remove REST API links** 51 * **Set user agent**<br> 52 WP really hates privacy and sends this <code>WordPress/1.0; https://example.org</code> to every site it makes calls to. You can empty the field, pretend to be Chrome <code>Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/131.0.0.0 Safari/537.36</code> or something else. <code>default</code> will change nothing. 53 * **Remove EXIF**<br> 54 Remove EXIF data from uploaded images. 55 * **Convert jpeg to avif**<br> 56 Convert uploaded jpeg to avif 57 * **Clean upload filenames**<br> 58 Sanitize media filenames to remove non-latin special characters and accents 59 * **Avif compression**<br> 60 Default is 82 61 * **Jpeg compression**<br> 62 Default is 82 63 * **Webp compression**<br> 64 Default is 86 65 * **Limit ALL revisions**<br> 66 Limit revisions for all post types. This will override the limit for each post type from above! 67 * **Disable XML-RPC** 68 * **Disable XML-RPC - allow Jetpack IPs**<br> 69 Allow XML-RPC only from Jetpack IPs 70 * **Remove WP version**<br> 71 Remove <code>WordPress/6.7.1; https://example.org</code> from html head 72 * **Dequeue jQuery Migrate**<br> 73 Dequeue jQuery Migrate from the jQuery script dependencies on the frontend. This is used to help devs debug from old versions of jQuery. You really do not need this on a production site. 74 * **Script Optimizer**<br> 75 Optimize script loading by moving them into the <code>head</code> and adding <code>defer</code> attribute. This may break your site. Use at your own risk! 76 * **Enable relative URLs**<br> 77 Enable relative URLs on the frontend. This may break your site. Use at your own risk! 78 * **Disable Contact Form 7 CSS**<br> 79 Sets <code>wpcf7_load_css</code> filter to <code>false</code> 80 * **Disable Contact Form 7 Autop**<br> 81 Sets <code>wpcf7_autop_or_not</code> filter to <code>false</code> 82 * **Enable Jetpack offline mode** 83 * **Enable maintenance mode** 84 * **Enable duplicate post** 21 85 22 ### Features ###23 86 24 #### Classic Editor #### 87 = Contribute to add quality tweaks to the plugin reviewed by me = 25 88 26 * Adds "Embed Video" button to help you create very powerful `[arve]` shortcodes. 27 * Takes over WordPress embeds with URLs on their own line and `[embed]` shortcodes. 28 * Can take over WP's default video file embeds. 89 Unlike WP Code's snippet database that is filled with low code quality tweaks where some do not even work at all and spam this plugin only contains high quality tweaks. If something is missing please add it. 29 90 30 #### Block Editor (Gutenberg) #### 91 It is very easy to contribute to the plugin. Check out the [Github Readme](https://github.com/nextgenthemes/tweakmaster/blob/master/readme.md). 31 92 32 * Works with Embed, YouTube, Vimeo, Shortcode ... blocks. 33 * Provides it's own powerful ARVE Block with all the features the `[arve]` shortcode offers, with a nice UI and detailed settings descriptions. 93 If you have questions on adding a more complex tweak please feel free to ask. 34 94 35 #### Elementor #### 95 == Screenshots == 96 (Maybe later) 36 97 37 * Provides a widget for the entire feature set of ARVE inside Elementor 98 == Changelog == 38 99 39 #### All #### 100 = 2025-03-29 - 1.0.3 101 * Improved: sanitize, validate correctly, fix prefixes ... 102 * Removed update disable tweak, not allowed on wp.org? 40 103 41 * Makes your video embeds [more secure and enhances visitors privacy](https://nextgenthemes.com/privacy-enhanced-and-safer-iframes-in-arve-10-0/). 42 * Magically makes videos responsive you already embedded with WordPress default features. 43 * 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. Pro can autofill this for you. 44 * No 'lock in' if you do not use the ARVE Gutenberg Block or `[arve]` shortcodes. 45 * Supports [almost every video host](https://nextgenthemes.com/plugins/arve-pro/#support-table) that supports iframe embed codes. 46 * Embeds via pasting the URL in its own line just like WordPress! 47 * Optionally use very powerful Shortcodes instead. 48 * Clean shortcode syntax `[arve url="https://youtu.be/yUCFRL43Zm4" parameters="start=30" ... /]`, no unnecessary shortcode wrapping. 49 * One shortcode or Block for all video providers. 50 * Responsive embeds with CSS, much better than with JavaScript. 51 * Tries to be as unobtrusive as possible, sets 'hide brand' variables if supported, disables related videos from other channels at the end … to help keep people on your site rather then going to YouTube or keep watching videos. 52 * Limited Autoplay (Mobile browsers usually prevent autoplay or allow it only muted. ARVE will automatically mute it but browser settings can still prevent it, even on Desktop) 53 * Custom URL parameters to use all options providers offer. 54 * Optional maximal width. 55 * Video alignment. 56 * Detailed description of options in-place. 57 * Automatic detected and custom aspect ratio. 104 = 2025-03-xx - 1.0.1-beta2 = 105 * Improved: Tweak descriptions. 106 * Fix: Admin Bar Greeting tweak. 107 * Fix: Link to GH readme. 108 * Fix: Rename `wptweak` to `tweakmaster` to fix multiple issues. 58 109 59 #### Supported Providers #### 110 = 2025-03-15 - 1.0.1-beta1 = 111 * New: Disable non production email tweak. 60 112 61 [All providers with iframe embed codes](https://nextgenthemes.com/plugins/arve/documentation/#general-iframe-embedding) 62 Alugha, Archive.org, Banned.video, Bitchute, Brightcove, Brighteon, Comedy Central, Dailymotion, Dailymotion Playlist, DTube, Facebook, Gab TV, Google Drive, mp4 or webm video files, ARVE general iframe embed, IGN, IMDB, Kickstarter, kla.tv, Livestream.com, Mail.ru, Metacafe, myspace, v.qq.com, Rumble.com, ok.ru, RuTube.ru, TED Talks, TikTok, Twitch, Viddler, Vimeo, VK, Wistia, XTube, xHamster, Yahoo, Youku, YouTube, YouTube Playlist, Kick 63 ### Reviews ### 64 65 #### ★ ★ ★ ★ ★ Great plugin, great support #### 66 I’ve been using this plugin (free version and pro add-on) for a few years now. It works very well for my purposes (mainly lazyload and lightbox functionality). Recently I had a support issue with the new version which required some intervention – it was a conflict with my theme. Nico, the developer, went above and beyond to get a fix promptly sorted out for me. Thank you Nico. 67 68 #### ★ ★ ★ ★ ★ The best there is – I have tried many… #### 69 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. 70 71 [arve url="https://www.youtube.com/watch?v=Z7g8-GxLTSc" /] 72 73 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. [review by jodani][16] 74 75 #### ★ ★ ★ ★ ★ Finally something that works #### 76 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!!!! [review by happyecho][16] 77 78 #### ★ ★ ★ ★ ★ Only Plug-in that worked #### 79 I used a lot of high ranking plug-ins but they still broke my design. Downloaded this and worked right away. Thanks! [review by crconnell89][16] 80 81 [16]: https://wordpress.org/support/plugin/advanced-responsive-video-embedder/reviews/?filter=5 82 83 ### [ARVE Pro][20] ### 84 85 **<big>10% off</big>** first year with discount code `wporg`. 86 87 This plugin is financed by purchases of [ARVE Pro][20]. 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 [purchase it][20] to get extra features and support the development. 88 89 * **Disable links in embeds (killer feature!)**<br> 90 For example: Clicking on a title in a YouTube embed will not open a new tab. **Prevent video hosts to lead your visitors away from your site!** 91 * **Lazyload**<br> 92 Make your site load **faster** by loading only an image instead of the entire video player on pageload. 93 * **Lightbox**<br> 94 Shows the Video in a Lightbox after clicking a Lazyload preview image 95 * **Link ⇾ Lightbox**<br> 96 Use simple links as triggers for opening Video Lightboxes 97 * Auto pause videos when another video is played 98 * Automatic or custom thumbnail images 99 * Automatic or custom titles on top of your thumbnails 100 * 'Expand on click' feature 101 * 2 hover & 3 play icon styles 102 * Responsive thumbnails (srcset) 103 * **Feel good about yourself**<br> 104 for supporting my 8+ years work on this plugin. Tons of hours, weekends … always worked on improving it 105 * Show the latest video of a YouTube channel by using the channel URL (updated/cached hourly) 106 * **[Get ARVE Pro][20]** 107 108 [20]: https://nextgenthemes.com/plugins/arve-pro/ 109 110 ### [ARVE Sticky Videos][23] ### 111 112 Keep videos on the screen when scrolling. 113 114 * Choose if videos should be pinned to the top of the screen. Like the YouTube app for example. 115 * For bigger screen choose a corner where a video should be pinned to. Like last.fm [for example][23]. 116 117 [23]: https://nextgenthemes.com/plugins/arve-sticky-videos/ 118 119 ### [Random Video Addon](https://nextgenthemes.com/plugins/arve-random-video/) ### 120 121 Display random video from: 122 123 * YouTube Playlist 124 * Vimeo Showcase 125 * Comma separated list of video URLs 126 127 ### [ARVE AMP][29] ### 128 129 When you use the AMP or 'AMP for WP' plugin you need this. 130 131 * It will display videos embedded with ARVE on AMP pages correctly 132 * No options, just works 133 * It creates `<amp-youtube>`, `<amp-vimeo>`, `<amp-dailymotion>` elements 134 * For all other video hosts `<amp-video-iframe>` element is used 135 * Video files are also supported with `<amp-video>` 136 137 [29]: https://nextgenthemes.com/plugins/arve-amp/ 138 139 ### Thanks ### 140 141 * Of course all the customers who bought a addon. 142 * Howard Iken of [myfloridalaw.com](https://www.myfloridalaw.com) top donor, super nice to me even if I was rude and not deserved it! 143 * [Ilya Grishkov](https://www.ilyagrishkov.com) for bringing up the idea and the first code to cache thumbnail urls. 144 * Everybody giving constructive feedback, testing beta versions. 145 * Everybody who donated back in the days when this was donation based. 146 147 ### Thanks to the developers of the software used in ARVE ### 148 149 * [Bigger Picture](https://github.com/henrygd/bigger-picture), used in [Pro Addon](https://nextgenthemes.com/plugins/arve-pro/) 150 151 ## Frequently Asked Questions ## 152 153 ### I have a problem ... ### 154 155 Please report it on [nextgenthemes.com/support/](https://nextgenthemes.com/support/) **and please do not on the wordpess.org forums, thanks.** 156 157 ### I’m experiencing these errors on Google Search Console ### 158 159 Best option to resolve these errors is to get [ARVE Pro](https://nextgenthemes.com/plugins/arve-pro/) as it fills these in for you hassle-free, only activate the add-on - done. For more options, please see the [detailed answer](https://nextgenthemes.com/plugins/arve/faq/). 160 161 ### How to get the pro version working? ### 162 163 1. Go though the purchase process on [nextgenthemes.com](https://nextgenthemes.com/plugins/arve-pro/) 164 1. 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. 165 1. After that you may want to switch your default mode to Lazyload or Lightbox on the ARVE settings page. 166 167 ### Why are my videos not filling their container? ### 168 169 You may need to adjust your 'Maximal Width' setting to your liking. 170 171 You are most likely use `align`, 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 `align` shortcode attribute. 172 173 ### Can you add a video provider? ### 174 175 Feel free to ask. 176 177 ### How do I embed videos from a unlisted providers / iframes? ### 178 179 This plugin not changes anything to usual HTML `<iframe>` embed codes you have to use the shortcodes or the Gutenberg Block. They will become `[arve url="https://..."]`. The url represents what is the `src` 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 `src` for the iframe. 180 181 ## Installation ## 182 183 Please read the [official documentation](https://wordpress.org/support/article/managing-plugins/#installing-plugins) for that. 184 185 ## Screenshots ## 186 187 1. Block Editor Example 188 2. Shortcode creation dialog in Classic Editor 189 3. Main Options 190 4. Pro Options 191 5. Video Files Options 192 6. URL Parameter Options 193 ## Changelog ## 194 195 * [ARVE Pro changelog](https://nextgenthemes.com/plugins/arve-pro/#changelog) 196 * [ARVE Random Videos changelog](https://nextgenthemes.com/plugins/arve-random-video/#changelog) 197 198 ### 2025-07-30 10.6.13 ### 199 200 * Fix: _load_textdomain_just_in_time was called incorrectly. 201 * Fix: Minor visible error on debug tab with WP_DEBUG enabled. 202 203 ### 2025-03-22 10.6.12 ### 204 205 * Fix: HTML mistake on the setting page. 206 * Improved: Hide some old errors. 207 208 ### 2025-03-21 10.6.10 ### 209 210 * Fix: Removing ARVE data from oembed cache on uninstall. 211 * Improved: Error messages and escaping for remote calls. 212 * Improved: Lots of things around caching and how the errors are (not) displayed. 213 214 ### 2025-03-17 10.6.8 ### 215 216 * Improved: ARVE now handles the execution of addons, not executing outdated addon. 217 * Improved: Added outdated messages for all addons. 218 219 ### 2025-03-16 10.6.7 ### 220 221 * Fix: Compatibility with Advanced Custom Fields WYSIWYG editors. The ARVE shortcode creation button now finally works there. 222 223 ### 2025-03-15 10.6.6 ### 224 225 * Improved: Tested with WP 6.8-beta2 226 * Improved: Updated jetpack autoloader. 227 * Improved: Cache deletion. 228 * Improved: Handling of error messaged of YouTube Data API errors. 229 * Abandoned asset wrappers. 230 * Renamed shared code package, now [nextgenthemes/wp-settings](https://packagist.org/packages/nextgenthemes/wp-settings) on Packagist. 231 232 ### 2025-03-09 10.6.5 ### 233 234 * Fix: Cache management related old YouTube video having broken thumbnails. 235 236 ### 2025-03-09 10.6.4 ### 237 238 * Fix: Link to settings page in API key notice. 239 * Improved: Link to tutorial video showing you how to get an YouTube Data API key. 240 241 ### 2025-03-09 10.6.1 ### 242 243 * Improved: Error handling. Show YouTube API errors only on the Admin screens. 244 * Improved: Cache deletion. 245 * New: Option to add your own YouTube Data API key to prevent limits of the one included in Pro. 246 247 ### 2025-03-08 10.6.0 ### 248 249 * New: Lazyload Style option (Pro Feature). 250 * Fix: Settings page conflicts with admin notices (from other plugins). 251 * Fix: `_load_textdomain_just_in_time` being triggered too early. 252 * Improved: Styles for the settings page and Classic Editor shortcode creator dialog. 253 * Improved: Simplified the way ARVE generates HTML using `WP_HTML_Tag_Processor`. 254 * Improved: `dnt=1` parameter is now part of the visible default parameters for Vimeo and Wistia. You may need to remove it or set it to `0` to get your views tracked by them. 255 256 ### 2025-01-15 10.5.4 ### 257 258 * Improved: Removed incompatibility notices for AIO SEO Pack (resolved). 259 260 ### 2025-01-11 10.5.3 ### 261 262 * Fix: Fixed, improved and restored Shortcode UI functionality. 263 264 ### 2025-01-08 10.5.2 ### 265 266 * Fix: Block errors. 267 268 ### 2025-01-02 10.5.1 ### 269 270 * Fix: Array merge with NULL error. 271 272 ### 2025-01-02 10.5.0 ### 273 274 * New: Debug option to control src mismatch errors. 275 * Improved: Removed the debug into in favor or adding data to the Site Health Info screen. 276 * Improved: Introduced a `SettingsData` and `SettingValidator` classes to make the code more robust self testing. 277 278 ### 2024-12-05 10.4.0 ### 279 280 * New: Added `credentialless="false"` parameter that can be used to remove the same named attribute from the iframe. 281 * Fix: Added `data-lenis-prevent` to the ARVE wrapper div to prevent issues with Lenis Smooth Scroll script. 282 * Fix: Viddler not working by allowing `sync-xhr`. 283 * Improved: Changes enabling latest ARVE Pro versions to use `sizes="auto"` for more efficient image loading. 284 * Improved: Featured image as fallback default change to `true` (Pro). 285 * Improved: ARVE now includes a black image with stripes used as default fallback thumbnail. 286 * Improved: Removed some legacy code, outdated addons are prevented from executing. 287 288 ### 2024-11-08 10.3.4 ### 289 290 * Fix: xHamster not working. Its direclty supported with normal URLs now. Note ARVE needs to allow referrer to be send, with this privacy enhancement disabled xHamster will see the domain you are embedding from. 291 * Fix: multisite (needs to be confirmed). 292 293 ### 2024-10-23 10.3.3 ### 294 295 * Show messages about incompatibility issue with All in One SEO Pack. 296 * Fix: Duplicated controls in ARVE Block sidebar. 297 * Fix: Help tests were not showing in Settings page. 298 299 ### 2024-08-22 10.3.2 ### 300 301 * New: URL detection for VK.com videos. 302 303 ### 2024-08-02 10.3.1 ### 304 305 * New: Add current theme and version to Debug Info. 306 * Fix: PHP error when `$GLOBALS['content_width']` is not an integer. Props Gianluca. 307 308 ### 2024-07-17 10.3.0 ### 309 * WP 6.6 marked as required. 310 * New: Brings back support for Shortcode UI that was removed previously. Note that in SCUI it uses yes/no and ARVE dialog uses true/false. There may come some improvement on that later. 311 * Fix: Remove script module and WP interactivity registering as this is done by WP in 6.6 now and caused double register and ordering issues. 312 * Fix: Make sure the ARVE shortcode modal is closed when selecting a thumbnail and reopened afterwards. 313 314 ### 2024-07-06 10.2.3 ### 315 * Fix: Help toggle in new ARVE Shortcode dialog. 316 * Improved: Show message that the ARVE Button in Classic Editor needs WP 6.6 (sorry, to be released 2024-07-16). 317 318 ### 2024-06-17 10.2.2 ### 319 * Fix: Rare src mismatch errors with YouTube. 320 * Improved: Set block api version to 3. 321 * Improved: Show message that the ARVE Block needs Gutenberg active or WP 6.6. 322 323 ### 2024-06-17 10.2.1 ### 324 * Improved: Set WP required version to 6.5 in main plugin file, previously only set in readme. 325 326 ### 2024-06-15 10.2.0 ### 327 * New: Invidious URL Parameter setting for new extra privacy addon. 328 * Fix: Encoding and JSON errors related how things were stored in oembed cache. 329 * Fix: Issue activating licenses. 330 * Improved: Yet another Setting page overhaul, dropping Alpine.js for WP Interactivity API. 331 * Improved: Bring back reset buttons for settings sections. 332 * Improved: A couple of typos. 333 * Removed Shortcode UI support. (That plugin did now have a release in 5 years, the ARVE dialog is better anyway IMO) 334 * Compatibility with latest Pro addon. 335 336 ### 2024-05-27 10.1.1 ### 337 * Improved: Changes how the referrer setting works. `no-referrer` by default `strict-origin-when-cross-origin` for selected providers. 338 * Fix: Some YouTube videos (music?) do not without without allowing reverer to be send so YouTube was added to the list to allow it by default. 339 340 ### 2024-05-24 10.1.0 ### 341 * Improved: ARVE own video IDs are no longer random, this is better for SEO and other things. 342 * New: Support for [ok.ru](http://ok.ru). 343 * New: Rutube video url detection. (only embed code worked before). 344 345 ### 2024-05-23 10.0.10 ### 346 * Fix: Videos with quotes in the title/description caused json_decode syntax error. 347 348 ### 2024-05-22 10.0.9 ### 349 * Fix: Some Vimeo videos not working without cache working. 350 * Fix: src mismatch error testing. 351 * Improved: Error display. 352 353 ### 2024-05-21 10.0.8.1 ### 354 * Fix: Do not delete cache every time. 355 356 ### 2024-05-21 10.0.8 ### 357 * Fix: Some broken Vimeo videos. And possibly other bugs. 358 359 ### 2024-05-21 10.0.7 ### 360 * Fix: Lazyload and Lightbox (Pro) were not displayed when used with video files. 361 362 ### 2024-05-17 10.0.6 ### 363 364 #### Improved 365 * Performance of oembed deletion. 366 * Move the "Delete oEmbed cache" button to the top of the Debug tab in the Settings. Press it if you have trouble with thumbnails. 367 368 ### 2024-05-15 10.0.5 ### 369 * Fix?: Initialize deletion of oembed caches later. 370 * New/Fix: Setting to allow domain restricted videos. 371 * Fix: Show Blog entries in correct order on settings page. 372 373 ### 2024-05-13 10.0.4 ### 374 * Fix: Fatal error prevention for people using outdated versions of ARVE Pro while upgrading the main plugin to version 10. Update to Pro 6.x.x is mandatory. 375 376 ### 2024-05-12 10.0.3 ### 377 * Fix: Vimeo domain restriction 378 379 ### 2024-05-12 10.0.2 ### 380 * Fix: Activation error related to script dependencies. (Elementor) 381 382 ### 2024-05-11 10.0.1 ### 383 384 #### New #### 385 * Elementor Widget. 386 * Support for Kick. 387 * Optional ARVE button on the admin bar for quick access to the ARVE Settings page. 388 * Support for new [DSGVO and Extra Privacy](https://nextgenthemes.com/plugins/arve-privacy/) addon. 389 390 #### Fixed #### 391 * Pasting iframe embed code in the URL/Embed Code field in the Block Editor. 392 393 #### Improved #### 394 * Lots code changes to modernize and make the code more robust. 395 * Better way to negate WPs own aspect ratio for embed blocks. 396 * [Further privacy enhancements](https://nextgenthemes.com/privacy-enhanced-and-safer-iframes-in-arve-10-0/). 397 * New look and UX improvement to the shortcode creation dialog in Classic Editor. 398 * Loop and Mute previously were only used for (self hosted) video files. These shortcode attributes now add `loop=1&mute1` to the iframe `src` as well. Note not every provider supports them. To loop YouTube videos the video ID was also need as the `playlist=` parameter. ARVE is doing this automatically now. 399 * Sandbox setting has been replaced with 'Enable Encrypted Media'. 400 401 ### 2024-02-29 9.10.14 ### 402 * Fix: Wrongly displayed message about outdated PHP version. 403 404 ### 2024-02-29 9.10.13.1 ### 405 * Cut development files from the distribution. 406 407 ### 2024-02-29 9.10.13 ### 408 * Improved: Make Admin notice dismiss without jQuery. May fix an extremely rare issue of dismiss failing. 409 * Tested with latest WP 6.5-nightly 410 * Plugin is no longer being tested with PHP versions below 7.2+, in theory the 9.x versions should work with PHP 5.6+. 411 412 ### 2023-09-16 9.10.12 ### 413 * Tested with latest WP 6.5-nightly 414 * Updated warning that next major version will required php 7.4+. 415 416 ### 2023-05-17 9.10.9 ### 417 * Fix: Styles not loading correctly in latest Gutenberg versions. 418 419 ### 2023-04-12 9.10.3 ### 420 * Fix: Yoast SEO compatibility and other possible issues. 421 422 ### 2023-04-11 9.10.2 ### 423 * Fix: Fatal error with WordPress 5.8.6 424 425 ### 2023-04-11 9.10.1 ### 426 * New: Warning massage that ARVE will require PHP 7.2 soon. 427 * New: Support for extra classes (Advanced section) on the ARVE block. 428 * New: You can align left/right the ARVE block now. 429 * Fix: Styles were not applied inside new Gutenberg versions. 430 * Improved: Videos are no longer playable in the Block editor, instead the block is selected when clicking on them. 431 * Improved: Some minor code changes. 432 433 ### 2023-02-05 9.9.7 ### 434 * Fix: WP Courseware Course Builder meta box was always collapsed. (Could not get the ARVE button to work for the Course Description) 435 436 ### 2023-01-25 9.9.6 ### 437 * Fix: Rumble videos not work correctly on all cases correct oembed data. 438 439 ### 2023-01-11 9.9.4 ### 440 * Fix: Invisible Shortcode creation dialog content. 441 * Fix: Hide the dialog when the WP image upload dialog is opened. 442 443 ### 2023-01-10 9.9.3 ### 444 * Fix: Issue when browser does not support `<dialog>`. 445 446 ### 2022-01-08 9.9.2 ### 447 448 * Fix: Incompatibility with Accelerated Mobile Pages by removing the jquery-ui dependency and using a native `<dialog>` for the shortcode creator modal. This may also fix layering (z-index) issues with other plugins. 449 450 ### 2022-10-28 9.8.0 ### 451 452 * New: TikTok support. 453 * Improved: Removed deprecated message because it broke the WP login when debug output was enabled. 454 455 ### 2022-10-14 9.7.17 ### 456 457 * Fix: Give errors and prevent php 8.0 and 8.1 from having errors when the aspect ratio contains non integer numbers like `0.9:1` only integers are allowed like `9:10`. 458 * Improved: Update EDD updater class. 459 460 ### 2022-09-01 9.7.16 ### 461 462 * Fix: Divi endless reload issue is hopefully finally fixed. ARVE Pro users please note this is a workaround that causes previews inside the Divi builder not have the correct data. Most noticeable thumbnails and titles. If you provide a fallback thumbnail in ARVE Pro settings it will show that while you using Divi. The plugin works correctly on the frontend. However the "Video (ARVE)" button currently does not work in Divi. 463 464 ### 2022-08-30 9.7.15 ### 465 466 * Fix: Shortcode Creator dialog with Advanced Custom Fields plugin active. 467 468 ### 2022-08-22 9.7.14 ### 469 470 * Improved: Simplified and reduced debug info. 471 * Improved: Adjustments for updated ARVE Pro version. 472 473 ### 2022-08-11 9.7.11 ### 474 475 * Fix: Block not registering. 476 477 ### 2022-08-09 9.7.10 ### 478 479 ##### Improvements for Gutenberg Block ##### ##### 480 * Introduces clickable area above the Block in the Editor. 481 * Fixed Thumbnail image overflowing. 482 * Removed maximal width setting when not aligned. This concept does not fit Gutenberg. Width should be controlled by setting the block to wide or full alignment. 483 * Introduces a recommended `block.json`. 484 * Some other minor improvements. 485 486 ### 2022-08-04 9.7.8 ### 487 488 * New: Add new 'Darken' hover effect option for Pro Addon. 489 * Removed Ustream from providers (not functional bought up by IBM) 490 491 ### 2022-04-16 9.7.7 ### 492 493 * Improved browser support to display aspect ratio correctly on older browsers. 494 495 ### 2022-02-01 9.7.4 ### 496 497 * Fix: '[Vue warn]: Cannot find element: #arve-sc-vue' JavaScript error on admin page. 498 499 ### 2022-01-29 9.7.3 ### 500 501 * Fix: Some internal errors generated for YouTube embeds. 502 503 [Older Changes](https://github.com/nextgenthemes/advanced-responsive-video-embedder/blob/master/changelog-2021.md) 113 = 2025-03-xx - 1.0.0-beta1 = 114 * Initial release. -
advanced-responsive-video-embedder/trunk/vendor/autoload.php
r3256343 r3338484 23 23 require_once __DIR__ . '/composer/autoload_real.php'; 24 24 25 return ComposerAutoloaderInit fa4ebaf22f08a8b822c80bc4efcf7610::getLoader();25 return ComposerAutoloaderInit5aa486b2e15e5a77b655cb1dccf2d827::getLoader(); -
advanced-responsive-video-embedder/trunk/vendor/autoload_packages.php
r3338450 r3338484 6 6 */ 7 7 8 namespace Automattic\Jetpack\Autoloader\jp fa4ebaf22f08a8b822c80bc4efcf7610\al5_0_9;8 namespace Automattic\Jetpack\Autoloader\jp5aa486b2e15e5a77b655cb1dccf2d827\al5_0_9; 9 9 10 10 // phpcs:ignore -
advanced-responsive-video-embedder/trunk/vendor/composer/autoload_real.php
r3256343 r3338484 3 3 // autoload_real.php @generated by Composer 4 4 5 class ComposerAutoloaderInit fa4ebaf22f08a8b822c80bc4efcf76105 class ComposerAutoloaderInit5aa486b2e15e5a77b655cb1dccf2d827 6 6 { 7 7 private static $loader; … … 25 25 require __DIR__ . '/platform_check.php'; 26 26 27 spl_autoload_register(array('ComposerAutoloaderInit fa4ebaf22f08a8b822c80bc4efcf7610', 'loadClassLoader'), true, true);27 spl_autoload_register(array('ComposerAutoloaderInit5aa486b2e15e5a77b655cb1dccf2d827', 'loadClassLoader'), true, true); 28 28 self::$loader = $loader = new \Composer\Autoload\ClassLoader(\dirname(__DIR__)); 29 spl_autoload_unregister(array('ComposerAutoloaderInit fa4ebaf22f08a8b822c80bc4efcf7610', 'loadClassLoader'));29 spl_autoload_unregister(array('ComposerAutoloaderInit5aa486b2e15e5a77b655cb1dccf2d827', 'loadClassLoader')); 30 30 31 31 require __DIR__ . '/autoload_static.php'; 32 call_user_func(\Composer\Autoload\ComposerStaticInit fa4ebaf22f08a8b822c80bc4efcf7610::getInitializer($loader));32 call_user_func(\Composer\Autoload\ComposerStaticInit5aa486b2e15e5a77b655cb1dccf2d827::getInitializer($loader)); 33 33 34 34 $loader->register(true); 35 35 36 $filesToLoad = \Composer\Autoload\ComposerStaticInit fa4ebaf22f08a8b822c80bc4efcf7610::$files;36 $filesToLoad = \Composer\Autoload\ComposerStaticInit5aa486b2e15e5a77b655cb1dccf2d827::$files; 37 37 $requireFile = \Closure::bind(static function ($fileIdentifier, $file) { 38 38 if (empty($GLOBALS['__composer_autoload_files'][$fileIdentifier])) { -
advanced-responsive-video-embedder/trunk/vendor/composer/autoload_static.php
r3256343 r3338484 5 5 namespace Composer\Autoload; 6 6 7 class ComposerStaticInit fa4ebaf22f08a8b822c80bc4efcf76107 class ComposerStaticInit5aa486b2e15e5a77b655cb1dccf2d827 8 8 { 9 9 public static $files = array ( … … 37 37 { 38 38 return \Closure::bind(function () use ($loader) { 39 $loader->prefixLengthsPsr4 = ComposerStaticInit fa4ebaf22f08a8b822c80bc4efcf7610::$prefixLengthsPsr4;40 $loader->prefixDirsPsr4 = ComposerStaticInit fa4ebaf22f08a8b822c80bc4efcf7610::$prefixDirsPsr4;41 $loader->classMap = ComposerStaticInit fa4ebaf22f08a8b822c80bc4efcf7610::$classMap;39 $loader->prefixLengthsPsr4 = ComposerStaticInit5aa486b2e15e5a77b655cb1dccf2d827::$prefixLengthsPsr4; 40 $loader->prefixDirsPsr4 = ComposerStaticInit5aa486b2e15e5a77b655cb1dccf2d827::$prefixDirsPsr4; 41 $loader->classMap = ComposerStaticInit5aa486b2e15e5a77b655cb1dccf2d827::$classMap; 42 42 43 43 }, null, ClassLoader::class); -
advanced-responsive-video-embedder/trunk/vendor/composer/installed.json
r3338450 r3338484 73 73 "version": "dev-master", 74 74 "version_normalized": "dev-master", 75 "source": { 76 "type": "git", 77 "url": "https://github.com/nextgenthemes/wp-settings.git", 78 "reference": "4e26cd875e2ba18f6f1bb523ef51d01ec7f7869d" 79 }, 75 80 "dist": { 76 "type": "path", 77 "url": "../../../../../../dev/composer-packages/wp-settings", 78 "reference": "4e26cd875e2ba18f6f1bb523ef51d01ec7f7869d" 81 "type": "zip", 82 "url": "https://api.github.com/repos/nextgenthemes/wp-settings/zipball/4e26cd875e2ba18f6f1bb523ef51d01ec7f7869d", 83 "reference": "4e26cd875e2ba18f6f1bb523ef51d01ec7f7869d", 84 "shasum": "" 79 85 }, 80 86 "require": { 81 87 "php": ">=7.4" 82 88 }, 89 "time": "2025-08-03T12:18:07+00:00", 90 "default-branch": true, 83 91 "type": "library", 84 92 "installation-source": "dist", … … 88 96 ] 89 97 }, 98 "notification-url": "https://packagist.org/downloads/", 90 99 "license": [ 91 100 "GPL-3.0" … … 96 105 } 97 106 ], 98 "transport-options": { 99 "symlink": false, 100 "relative": true 107 "support": { 108 "source": "https://github.com/nextgenthemes/wp-settings/tree/master" 101 109 }, 102 110 "install-path": "../nextgenthemes/wp-settings" -
advanced-responsive-video-embedder/trunk/vendor/composer/installed.php
r3338450 r3338484 1 1 <?php return array( 2 2 'root' => array( 3 'name' => 'nextgenthemes/ advanced-responsive-video-embedder',3 'name' => 'nextgenthemes/tweakmaster', 4 4 'pretty_version' => 'dev-master', 5 5 'version' => 'dev-master', 6 'reference' => ' ccd71c526402379c26ae9a45529f7222283d6cd3',6 'reference' => '9374cd33520cc47808fb8b87df216de610813745', 7 7 'type' => 'wordpress-plugin', 8 8 'install_path' => __DIR__ . '/../../', … … 20 20 'dev_requirement' => true, 21 21 ), 22 'nextgenthemes/ advanced-responsive-video-embedder' => array(22 'nextgenthemes/tweakmaster' => array( 23 23 'pretty_version' => 'dev-master', 24 24 'version' => 'dev-master', 25 'reference' => ' ccd71c526402379c26ae9a45529f7222283d6cd3',25 'reference' => '9374cd33520cc47808fb8b87df216de610813745', 26 26 'type' => 'wordpress-plugin', 27 27 'install_path' => __DIR__ . '/../../', … … 35 35 'type' => 'library', 36 36 'install_path' => __DIR__ . '/../nextgenthemes/wp-settings', 37 'aliases' => array(), 37 'aliases' => array( 38 0 => '9999999-dev', 39 ), 38 40 'dev_requirement' => true, 39 41 ), -
advanced-responsive-video-embedder/trunk/vendor/jetpack-autoloader/class-autoloader-handler.php
r3338450 r3338484 6 6 */ 7 7 8 namespace Automattic\Jetpack\Autoloader\jp fa4ebaf22f08a8b822c80bc4efcf7610\al5_0_9;8 namespace Automattic\Jetpack\Autoloader\jp5aa486b2e15e5a77b655cb1dccf2d827\al5_0_9; 9 9 10 10 // phpcs:ignore -
advanced-responsive-video-embedder/trunk/vendor/jetpack-autoloader/class-autoloader-locator.php
r3338450 r3338484 6 6 */ 7 7 8 namespace Automattic\Jetpack\Autoloader\jp fa4ebaf22f08a8b822c80bc4efcf7610\al5_0_9;8 namespace Automattic\Jetpack\Autoloader\jp5aa486b2e15e5a77b655cb1dccf2d827\al5_0_9; 9 9 10 10 // phpcs:ignore -
advanced-responsive-video-embedder/trunk/vendor/jetpack-autoloader/class-autoloader.php
r3338450 r3338484 6 6 */ 7 7 8 namespace Automattic\Jetpack\Autoloader\jp fa4ebaf22f08a8b822c80bc4efcf7610\al5_0_9;8 namespace Automattic\Jetpack\Autoloader\jp5aa486b2e15e5a77b655cb1dccf2d827\al5_0_9; 9 9 10 10 // phpcs:ignore -
advanced-responsive-video-embedder/trunk/vendor/jetpack-autoloader/class-container.php
r3338450 r3338484 6 6 */ 7 7 8 namespace Automattic\Jetpack\Autoloader\jp fa4ebaf22f08a8b822c80bc4efcf7610\al5_0_9;8 namespace Automattic\Jetpack\Autoloader\jp5aa486b2e15e5a77b655cb1dccf2d827\al5_0_9; 9 9 10 10 // phpcs:ignore -
advanced-responsive-video-embedder/trunk/vendor/jetpack-autoloader/class-hook-manager.php
r3338450 r3338484 6 6 */ 7 7 8 namespace Automattic\Jetpack\Autoloader\jp fa4ebaf22f08a8b822c80bc4efcf7610\al5_0_9;8 namespace Automattic\Jetpack\Autoloader\jp5aa486b2e15e5a77b655cb1dccf2d827\al5_0_9; 9 9 10 10 // phpcs:ignore -
advanced-responsive-video-embedder/trunk/vendor/jetpack-autoloader/class-latest-autoloader-guard.php
r3338450 r3338484 6 6 */ 7 7 8 namespace Automattic\Jetpack\Autoloader\jp fa4ebaf22f08a8b822c80bc4efcf7610\al5_0_9;8 namespace Automattic\Jetpack\Autoloader\jp5aa486b2e15e5a77b655cb1dccf2d827\al5_0_9; 9 9 10 10 // phpcs:ignore -
advanced-responsive-video-embedder/trunk/vendor/jetpack-autoloader/class-manifest-reader.php
r3338450 r3338484 6 6 */ 7 7 8 namespace Automattic\Jetpack\Autoloader\jp fa4ebaf22f08a8b822c80bc4efcf7610\al5_0_9;8 namespace Automattic\Jetpack\Autoloader\jp5aa486b2e15e5a77b655cb1dccf2d827\al5_0_9; 9 9 10 10 // phpcs:ignore -
advanced-responsive-video-embedder/trunk/vendor/jetpack-autoloader/class-path-processor.php
r3338450 r3338484 6 6 */ 7 7 8 namespace Automattic\Jetpack\Autoloader\jp fa4ebaf22f08a8b822c80bc4efcf7610\al5_0_9;8 namespace Automattic\Jetpack\Autoloader\jp5aa486b2e15e5a77b655cb1dccf2d827\al5_0_9; 9 9 10 10 // phpcs:ignore -
advanced-responsive-video-embedder/trunk/vendor/jetpack-autoloader/class-php-autoloader.php
r3338450 r3338484 6 6 */ 7 7 8 namespace Automattic\Jetpack\Autoloader\jp fa4ebaf22f08a8b822c80bc4efcf7610\al5_0_9;8 namespace Automattic\Jetpack\Autoloader\jp5aa486b2e15e5a77b655cb1dccf2d827\al5_0_9; 9 9 10 10 // phpcs:ignore -
advanced-responsive-video-embedder/trunk/vendor/jetpack-autoloader/class-plugin-locator.php
r3338450 r3338484 6 6 */ 7 7 8 namespace Automattic\Jetpack\Autoloader\jp fa4ebaf22f08a8b822c80bc4efcf7610\al5_0_9;8 namespace Automattic\Jetpack\Autoloader\jp5aa486b2e15e5a77b655cb1dccf2d827\al5_0_9; 9 9 10 10 // phpcs:ignore -
advanced-responsive-video-embedder/trunk/vendor/jetpack-autoloader/class-plugins-handler.php
r3338450 r3338484 6 6 */ 7 7 8 namespace Automattic\Jetpack\Autoloader\jp fa4ebaf22f08a8b822c80bc4efcf7610\al5_0_9;8 namespace Automattic\Jetpack\Autoloader\jp5aa486b2e15e5a77b655cb1dccf2d827\al5_0_9; 9 9 10 10 // phpcs:ignore -
advanced-responsive-video-embedder/trunk/vendor/jetpack-autoloader/class-shutdown-handler.php
r3338450 r3338484 6 6 */ 7 7 8 namespace Automattic\Jetpack\Autoloader\jp fa4ebaf22f08a8b822c80bc4efcf7610\al5_0_9;8 namespace Automattic\Jetpack\Autoloader\jp5aa486b2e15e5a77b655cb1dccf2d827\al5_0_9; 9 9 10 10 // phpcs:ignore -
advanced-responsive-video-embedder/trunk/vendor/jetpack-autoloader/class-version-loader.php
r3338450 r3338484 6 6 */ 7 7 8 namespace Automattic\Jetpack\Autoloader\jp fa4ebaf22f08a8b822c80bc4efcf7610\al5_0_9;8 namespace Automattic\Jetpack\Autoloader\jp5aa486b2e15e5a77b655cb1dccf2d827\al5_0_9; 9 9 10 10 // phpcs:ignore -
advanced-responsive-video-embedder/trunk/vendor/jetpack-autoloader/class-version-selector.php
r3338450 r3338484 6 6 */ 7 7 8 namespace Automattic\Jetpack\Autoloader\jp fa4ebaf22f08a8b822c80bc4efcf7610\al5_0_9;8 namespace Automattic\Jetpack\Autoloader\jp5aa486b2e15e5a77b655cb1dccf2d827\al5_0_9; 9 9 10 10 // phpcs:ignore
Note: See TracChangeset
for help on using the changeset viewer.