Version Description
- Free Types version which will be available on wordpress.org only.
- Added a dismissable notice about what is going on with Types development.
- Removed the Installer dependency. Clients who buy Toolset will have to download Types 3.0+ manually for the first time.
- Users should no longer be asked to buy a subscription in order to upgrade (sorry about that).
Download this release
Release Info
Developer | zaantar |
Plugin | Toolset Types – Custom Post Types, Custom Fields and Taxonomies |
Version | 2.3 |
Comparing to | |
See all releases |
Code changes from version 2.2.23 to 2.3
- application/autoload_classmap.php +1 -0
- application/bootstrap.php +0 -17
- application/controllers/admin.php +3 -0
- application/controllers/admin_notice/free-version.php +99 -0
- application/views/admin-notices/free-version/types-3-0.phtml +95 -0
- application/views/admin-notices/free-version/types-3-1.phtml +18 -0
- package-lock.json +2265 -0
- public/css/information.css +0 -0
- public/images/ajax-loader-overlay.gif +0 -0
- public/img/toolset-logo-no-margin.png +0 -0
- public/js/feedback-on-deactivation.js +0 -0
- public/js/information.js +0 -0
- public/js/notice-dismiss.js +0 -0
- public/js/settings.js +0 -0
- public/js/slug_conflict_checker.js +0 -0
- public/page/add_term.js +0 -0
- public/page/adjust_submenu_links.js +0 -0
- public/page/edit_post_type/main.js +0 -0
- public/page/edit_taxonomy/main.js +0 -0
- public/page/field_control/main.js +0 -0
- public/page/field_control/style.css +0 -0
- public/page/field_control/viewmodels/BulkChangeManagementStatusDialogViewModel.js +0 -0
- public/page/field_control/viewmodels/ChangeAssignDialogViewModel.js +0 -0
- public/page/field_control/viewmodels/ChangeFieldTypeDialogViewModel.js +0 -0
- public/page/field_control/viewmodels/DeleteDialogViewModel.js +0 -0
- public/page/field_control/viewmodels/FieldDefinitionViewModel.js +0 -0
- public/page/field_control/viewmodels/ListingViewModel.js +0 -0
- readme.txt +68 -50
- vendor/autoload.php +1 -1
- vendor/composer/ClassLoader.php +2 -2
- vendor/composer/autoload_classmap.php +42 -24
- vendor/composer/autoload_namespaces.php +0 -1
- vendor/composer/autoload_real.php +7 -7
- vendor/composer/autoload_static.php +47 -36
- vendor/composer/installed.json +8 -130
- vendor/otgs/icons/css/otgs-icons.css +0 -196
- vendor/otgs/icons/fonts/otgs-icons.eot +0 -0
- vendor/otgs/icons/fonts/otgs-icons.svg +0 -62
- vendor/otgs/icons/fonts/otgs-icons.ttf +0 -0
- vendor/otgs/icons/fonts/otgs-icons.woff +0 -0
- vendor/otgs/icons/icons-overview.html +0 -456
- vendor/otgs/icons/otgs-icons.php +0 -20
- vendor/otgs/icons/plugin-icons/toolset/access/icon-128x128.png +0 -0
- vendor/otgs/icons/plugin-icons/toolset/access/icon-256x256.png +0 -0
- vendor/otgs/icons/plugin-icons/toolset/access/icon.svg +0 -25
- vendor/otgs/icons/plugin-icons/toolset/bootstrap/icon-128x128.png +0 -0
- vendor/otgs/icons/plugin-icons/toolset/bootstrap/icon-256x256.png +0 -0
- vendor/otgs/icons/plugin-icons/toolset/bootstrap/icon.svg +0 -25
- vendor/otgs/icons/plugin-icons/toolset/cred/icon-128x128.png +0 -0
- vendor/otgs/icons/plugin-icons/toolset/cred/icon-256x256.png +0 -0
- vendor/otgs/icons/plugin-icons/toolset/cred/icon.svg +0 -24
- vendor/otgs/icons/plugin-icons/toolset/layouts/icon-128x128.png +0 -0
- vendor/otgs/icons/plugin-icons/toolset/layouts/icon-256x256.png +0 -0
- vendor/otgs/icons/plugin-icons/toolset/layouts/icon.svg +0 -24
- vendor/otgs/icons/plugin-icons/toolset/module-manager/icon-128x128.png +0 -0
- vendor/otgs/icons/plugin-icons/toolset/module-manager/icon-256x256.png +0 -0
- vendor/otgs/icons/plugin-icons/toolset/module-manager/icon.svg +0 -24
- vendor/otgs/icons/plugin-icons/toolset/packager/icon-128x128.png +0 -0
- vendor/otgs/icons/plugin-icons/toolset/packager/icon-256x256.png +0 -0
- vendor/otgs/icons/plugin-icons/toolset/packager/icon.svg +0 -26
- vendor/otgs/icons/plugin-icons/toolset/ref-sites/icon-128x128.png +0 -0
- vendor/otgs/icons/plugin-icons/toolset/ref-sites/icon-256x256.png +0 -0
- vendor/otgs/icons/plugin-icons/toolset/ref-sites/icon.svg +0 -25
- vendor/otgs/icons/plugin-icons/toolset/support/icon-128x128.png +0 -0
- vendor/otgs/icons/plugin-icons/toolset/support/icon-256x256.png +0 -0
- vendor/otgs/icons/plugin-icons/toolset/support/icon.svg +0 -24
- vendor/otgs/icons/plugin-icons/toolset/toolset-core/icon-128x128.png +0 -0
- vendor/otgs/icons/plugin-icons/toolset/toolset-core/icon-256x256.png +0 -0
- vendor/otgs/icons/plugin-icons/toolset/toolset-core/icon.svg +0 -62
- vendor/otgs/icons/plugin-icons/toolset/types/icon-128x128.png +0 -0
- vendor/otgs/icons/plugin-icons/toolset/types/icon-256x256.png +0 -0
- vendor/otgs/icons/plugin-icons/toolset/types/icon.svg +0 -24
- vendor/otgs/icons/plugin-icons/toolset/views/icon-128x128.png +0 -0
- vendor/otgs/icons/plugin-icons/toolset/views/icon-256x256.png +0 -0
- vendor/otgs/icons/plugin-icons/toolset/views/icon.svg +0 -27
- vendor/otgs/icons/plugin-icons/wpml/acfml/icon-128.x128.png +0 -0
- vendor/otgs/icons/plugin-icons/wpml/acfml/icon-256x256.png +0 -0
- vendor/otgs/icons/plugin-icons/wpml/acfml/icon.svg +0 -43
- vendor/otgs/icons/plugin-icons/wpml/bpml/icon-128x128.png +0 -0
- vendor/otgs/icons/plugin-icons/wpml/bpml/icon-256x256.png +0 -0
- vendor/otgs/icons/plugin-icons/wpml/bpml/icon.svg +0 -40
- vendor/otgs/icons/plugin-icons/wpml/gfml/icon-128x128.png +0 -0
- vendor/otgs/icons/plugin-icons/wpml/gfml/icon-256x256.png +0 -0
- vendor/otgs/icons/plugin-icons/wpml/gfml/icon.svg +0 -39
- vendor/otgs/icons/plugin-icons/wpml/wcml/icon-128x128.png +0 -0
- vendor/otgs/icons/plugin-icons/wpml/wcml/icon-256x256.png +0 -0
- vendor/otgs/icons/plugin-icons/wpml/wcml/icon.svg +0 -38
- vendor/otgs/icons/plugin-icons/wpml/wpml-all-import/icon-128.x128.png +0 -0
- vendor/otgs/icons/plugin-icons/wpml/wpml-all-import/icon-256x256.png +0 -0
- vendor/otgs/icons/plugin-icons/wpml/wpml-all-import/icon.svg +0 -39
- vendor/otgs/icons/plugin-icons/wpml/wpml-cms-nav/icon-128x128.png +0 -0
- vendor/otgs/icons/plugin-icons/wpml/wpml-cms-nav/icon-256x256.png +0 -0
- vendor/otgs/icons/plugin-icons/wpml/wpml-cms-nav/icon.svg +0 -38
- vendor/otgs/icons/plugin-icons/wpml/wpml-core/icon-128x128.png +0 -0
- vendor/otgs/icons/plugin-icons/wpml/wpml-core/icon-256x256.png +0 -0
- vendor/otgs/icons/plugin-icons/wpml/wpml-core/icon.svg +0 -34
- vendor/otgs/icons/plugin-icons/wpml/wpml-media/icon-128x128.png +0 -0
- vendor/otgs/icons/plugin-icons/wpml/wpml-media/icon-256x256.png +0 -0
- vendor/otgs/icons/plugin-icons/wpml/wpml-media/icon.svg +0 -39
- vendor/otgs/icons/plugin-icons/wpml/wpml-sl/icon-128x128.png +0 -0
- vendor/otgs/icons/plugin-icons/wpml/wpml-sl/icon-256x256.png +0 -0
- vendor/otgs/icons/plugin-icons/wpml/wpml-sl/icon.svg +0 -39
- vendor/otgs/icons/plugin-icons/wpml/wpml-st/icon-128x128.png +0 -0
- vendor/otgs/icons/plugin-icons/wpml/wpml-st/icon-256x256.png +0 -0
- vendor/otgs/icons/plugin-icons/wpml/wpml-st/icon.svg +0 -39
- vendor/otgs/icons/plugin-icons/wpml/wpml-tm/icon-128x128.png +0 -0
- vendor/otgs/icons/plugin-icons/wpml/wpml-tm/icon-256x256.png +0 -0
- vendor/otgs/icons/plugin-icons/wpml/wpml-tm/icon.svg +0 -39
- vendor/otgs/installer/README.md +0 -63
- vendor/otgs/installer/changelog.txt +0 -188
- vendor/otgs/installer/includes/class-installer-dependencies.php +0 -291
- vendor/otgs/installer/includes/class-installer-theme.php +0 -979
- vendor/otgs/installer/includes/class-installer-upgrader-skins.php +0 -38
- vendor/otgs/installer/includes/class-otgs-installer-filename-hooks.php +0 -33
- vendor/otgs/installer/includes/class-otgs-installer-icons.php +0 -45
- vendor/otgs/installer/includes/class-otgs-installer-php-functions.php +0 -29
- vendor/otgs/installer/includes/class-otgs-installer-plugins-page-notice.php +0 -118
- vendor/otgs/installer/includes/class-otgs-installer-wp-components-hooks.php +0 -65
- vendor/otgs/installer/includes/class-otgs-installer-wp-components-sender.php +0 -47
- vendor/otgs/installer/includes/class-otgs-installer-wp-components-setting-ajax.php +0 -46
- vendor/otgs/installer/includes/class-otgs-installer-wp-components-setting-resources.php +0 -31
- vendor/otgs/installer/includes/class-otgs-installer-wp-components-setting-templates.php +0 -83
- vendor/otgs/installer/includes/class-otgs-installer-wp-components-storage.php +0 -74
- vendor/otgs/installer/includes/class-otgs-installer-wp-share-local-components-setting.php +0 -27
- vendor/otgs/installer/includes/class-translation-service-info.php +0 -40
- vendor/otgs/installer/includes/class-wp-installer-api.php +0 -134
- vendor/otgs/installer/includes/class-wp-installer-channels.php +0 -282
- vendor/otgs/installer/includes/class-wp-installer.php +0 -2776
- vendor/otgs/installer/includes/functions-core.php +0 -9
- vendor/otgs/installer/includes/functions-templates.php +0 -6
- vendor/otgs/installer/installer.php +0 -57
- vendor/otgs/installer/loader.php +0 -154
- vendor/otgs/installer/locale/installer-ar.mo +0 -0
- vendor/otgs/installer/locale/installer-de_DE.mo +0 -0
- vendor/otgs/installer/locale/installer-el.mo +0 -0
- vendor/otgs/installer/locale/installer-es_ES.mo +0 -0
- vendor/otgs/installer/locale/installer-fr_FR.mo +0 -0
- vendor/otgs/installer/locale/installer-he_IL.mo +0 -0
- vendor/otgs/installer/locale/installer-it_IT.mo +0 -0
- vendor/otgs/installer/locale/installer-ja.mo +0 -0
- vendor/otgs/installer/locale/installer-ko_KR.mo +0 -0
- vendor/otgs/installer/locale/installer-nl_NL.mo +0 -0
- vendor/otgs/installer/locale/installer-pl_PL.mo +0 -0
- vendor/otgs/installer/locale/installer-pt_BR.mo +0 -0
- vendor/otgs/installer/locale/installer-pt_PT.mo +0 -0
- vendor/otgs/installer/locale/installer-ru_RU.mo +0 -0
- vendor/otgs/installer/locale/installer-sv_SE.mo +0 -0
- vendor/otgs/installer/locale/installer-uk_UA.mo +0 -0
- vendor/otgs/installer/locale/installer-vi.mo +0 -0
- vendor/otgs/installer/locale/installer-zh_CN.mo +0 -0
- vendor/otgs/installer/locale/installer-zh_TW.mo +0 -0
- vendor/otgs/installer/locale/orig/installer.po +0 -230
- vendor/otgs/installer/phpcs.compatibility.xml +0 -19
- vendor/otgs/installer/phpcs.xml +0 -17
- vendor/otgs/installer/phpunit.xml +0 -24
- vendor/otgs/installer/repositories.xml +0 -13
- vendor/otgs/installer/res/css/admin.css +0 -339
- vendor/otgs/installer/res/css/tooltip/tooltip.css +0 -1
- vendor/otgs/installer/res/img/complete.png +0 -0
- vendor/otgs/installer/res/img/computer.png +0 -0
- vendor/otgs/installer/res/img/dn.gif +0 -0
- vendor/otgs/installer/res/img/dn2.gif +0 -0
- vendor/otgs/installer/res/img/globe.png +0 -0
- vendor/otgs/installer/res/img/icon_error.gif +0 -0
- vendor/otgs/installer/res/img/on.png +0 -0
- vendor/otgs/installer/res/img/spinner.gif +0 -0
- vendor/otgs/installer/res/js/admin.js +0 -463
- vendor/otgs/installer/res/js/channels.js +0 -261
- vendor/otgs/installer/res/js/iframeResizer.min.js +0 -10
- vendor/otgs/installer/res/js/installer_theme_install.js +0 -97
- vendor/otgs/installer/res/js/save-components-setting.js +0 -21
- vendor/otgs/installer/res/js/tooltip/tooltip.js +0 -82
- vendor/otgs/installer/templates/channel-selector.php +0 -68
- vendor/otgs/installer/templates/components-setting/commercial-tab.twig +0 -7
- vendor/otgs/installer/templates/components-setting/plugins-page.twig +0 -24
- vendor/otgs/installer/templates/downloads-list-compact.php +0 -80
- vendor/otgs/installer/templates/downloads-list.php +0 -109
- vendor/otgs/installer/templates/products-compact.php +0 -147
- vendor/otgs/installer/templates/repository-listing.php +0 -243
- vendor/otgs/installer/templates/template-service/class-otgs-installer-twig-template-service-loader.php +0 -32
- vendor/otgs/installer/templates/template-service/class-otgs-installer-twig-template-service.php +0 -27
- vendor/otgs/installer/templates/template-service/interface-iotgs-installer-template-service.php +0 -5
- vendor/toolset/toolset-common/autoload_classmap.php +20 -1
- vendor/toolset/toolset-common/bootstrap.php +22 -0
- vendor/toolset/toolset-common/changelog.md +60 -1
- vendor/toolset/toolset-common/classes/validation-cakephp.php +45 -16
- vendor/toolset/toolset-common/inc/autoloaded/admin.php +6 -0
- vendor/toolset/toolset-common/inc/autoloaded/admin/notices.php +1 -91
- vendor/toolset/toolset-common/inc/autoloaded/ajax_handler/migrate_to_m2m.php +64 -7
- vendor/toolset/toolset-common/inc/autoloaded/ajax_handler/select2_suggest_posts_by_post_type.php +117 -0
- vendor/toolset/toolset-common/inc/autoloaded/ajax_handler/select2_suggest_posts_by_title.php +67 -36
- vendor/toolset/toolset-common/inc/autoloaded/element/domain.php +1 -1
- vendor/toolset/toolset-common/inc/autoloaded/element/element.php +0 -12
- vendor/toolset/toolset-common/inc/autoloaded/element/element_factory.php +1 -0
- vendor/toolset/toolset-common/inc/autoloaded/element/i_post.php +0 -7
- vendor/toolset/toolset-common/inc/autoloaded/element/post.php +1 -1
- vendor/toolset/toolset-common/inc/autoloaded/element/post_translation_set.php +5 -1
- vendor/toolset/toolset-common/inc/autoloaded/field/definition_abstract.php +0 -36
- vendor/toolset/toolset-common/inc/autoloaded/field/definition_factory.php +0 -6
- vendor/toolset/toolset-common/inc/autoloaded/field/definition_factory_interface.php +1 -0
- vendor/toolset/toolset-common/inc/autoloaded/field/group.php +13 -0
- vendor/toolset/toolset-common/inc/autoloaded/field/group/post.php +1 -2
- vendor/toolset/toolset-common/inc/autoloaded/field/group/post_factory.php +1 -0
- vendor/toolset/toolset-common/inc/autoloaded/field/renderer/preview/post.php +32 -0
- vendor/toolset/toolset-common/inc/autoloaded/field/renderer/toolset_forms_repeatable_group.php +112 -16
- vendor/toolset/toolset-common/inc/autoloaded/field/type/definition.php +20 -17
- vendor/toolset/toolset-common/inc/autoloaded/field/type/definition_factory.php +5 -4
- vendor/toolset/toolset-common/inc/autoloaded/i_query.php +0 -16
- vendor/toolset/toolset-common/inc/autoloaded/interop/handler/installer_compatibility_reporting.php +315 -0
- vendor/toolset/toolset-common/inc/autoloaded/interop/handler_interface.php +15 -0
- vendor/toolset/toolset-common/inc/autoloaded/interop/mediator.php +24 -0
- vendor/toolset/toolset-common/inc/autoloaded/maintenance_mode/controller.php +112 -0
- vendor/toolset/toolset-common/inc/autoloaded/post_type/abstract.php +13 -6
- vendor/toolset/toolset-common/inc/autoloaded/post_type/excluded_list.php +11 -10
- vendor/toolset/toolset-common/inc/autoloaded/post_type/from_types.php +14 -1
- vendor/toolset/toolset-common/inc/autoloaded/post_type/i_post_type.php +2 -2
- vendor/toolset/toolset-common/inc/autoloaded/post_type/i_post_type_from_types.php +14 -0
- vendor/toolset/toolset-common/inc/autoloaded/post_type/list.php +25 -0
- vendor/toolset/toolset-common/inc/autoloaded/post_type/repository.php +43 -1
- vendor/toolset/toolset-common/inc/autoloaded/postmeta_access/loader.php +23 -0
- vendor/toolset/toolset-common/inc/autoloaded/postmeta_access/m2m.php +348 -0
- vendor/toolset/toolset-common/inc/autoloaded/relationship_service.php +192 -71
- vendor/toolset/toolset-common/inc/autoloaded/renderer/output_template_repository.php +26 -6
- vendor/toolset/toolset-common/inc/autoloaded/shortcode/attr/item/gui/base.php +160 -0
- vendor/toolset/toolset-common/inc/autoloaded/shortcode/attr/item/gui/factory.php +106 -0
- vendor/toolset/toolset-common/inc/autoloaded/shortcode/attr/item/gui/m2m.php +474 -0
- vendor/toolset/toolset-common/inc/autoloaded/shortcode/attr/item/gui/o2m.php +96 -0
- vendor/toolset/toolset-common/inc/autoloaded/shortcode/attr/item/gui/o2o.php +83 -0
- vendor/toolset/toolset-common/inc/autoloaded/shortcode/attr/item/gui/option.php +186 -0
- vendor/toolset/toolset-common/inc/autoloaded/shortcode/attr/item/legacy.php +33 -0
- vendor/toolset/toolset-common/inc/autoloaded/shortcode/attr/item/m2m.php +148 -5
- vendor/toolset/toolset-common/inc/autoloaded/upgrade/command/delete_obsolete_version_number_option.php +26 -0
- vendor/toolset/toolset-common/inc/autoloaded/upgrade/command/m2m_v1_database_structure_upgrade.php +97 -26
- vendor/toolset/toolset-common/inc/autoloaded/upgrade/command/m2m_v2_database_structure_upgrade.php +118 -0
- vendor/toolset/toolset-common/inc/autoloaded/upgrade/command_definition.php +1 -1
- vendor/toolset/toolset-common/inc/autoloaded/upgrade/command_definition_repository.php +22 -4
- vendor/toolset/toolset-common/inc/autoloaded/upgrade/command_interface.php +2 -0
- vendor/toolset/toolset-common/inc/autoloaded/upgrade/controller.php +65 -18
- vendor/toolset/toolset-common/inc/autoloaded/upgrade/executed_commands.php +6 -0
- vendor/toolset/toolset-common/inc/autoloaded/wp_query_adjustments/abstract.php +7 -1
- vendor/toolset/toolset-common/inc/autoloaded/wp_query_adjustments/m2m.php +316 -10
- vendor/toolset/toolset-common/inc/autoloaded/wp_query_adjustments/table_join_manager.php +97 -29
- vendor/toolset/toolset-common/inc/m2m/association/Repository.php +193 -0
- vendor/toolset/toolset-common/inc/m2m/association/association.php +18 -48
- vendor/toolset/toolset-common/inc/m2m/association/cleanup/cron_handler.php +0 -3
- vendor/toolset/toolset-common/inc/m2m/association/cleanup/post.php +10 -1
- vendor/toolset/toolset-common/inc/m2m/association/cleanup/post_type.php +75 -0
- vendor/toolset/toolset-common/inc/m2m/association/intermediary_post_persistence.php +27 -0
- vendor/toolset/toolset-common/inc/m2m/association/persistence.php +62 -0
- vendor/toolset/toolset-common/inc/m2m/association/query/association_query.php +7 -0
- vendor/toolset/toolset-common/inc/m2m/association/query/association_query_v2.php +152 -5
- vendor/toolset/toolset-common/inc/m2m/association/query/condition/exclude_relationship.php +21 -0
- vendor/toolset/toolset-common/inc/m2m/association/query/condition/has_intermediary_id.php +20 -0
- vendor/toolset/toolset-common/inc/m2m/association/query/condition/intermediary_id.php +41 -0
- vendor/toolset/toolset-common/inc/m2m/association/query/condition/relationship_id.php +12 -2
- vendor/toolset/toolset-common/inc/m2m/association/query/condition/relationship_origin.php +45 -0
- vendor/toolset/toolset-common/inc/m2m/association/query/condition_factory.php +33 -2
application/autoload_classmap.php
CHANGED
@@ -134,6 +134,7 @@ return array(
|
|
134 |
'Types_Twig_Autoloader' => dirname( __FILE__ ) . '/controllers/twig_autoloader.php',
|
135 |
'Types_Upgrade' => dirname( __FILE__ ) . '/controllers/upgrade.php',
|
136 |
'Types_Utils' => dirname( __FILE__ ) . '/controllers/admin_notice/utils.php',
|
|
|
137 |
'Types_Utils_Post_Type_Option' => dirname( __FILE__ ) . '/controllers/utils/post_type_option.php',
|
138 |
'Types_Wpml_Field_Group' => dirname( __FILE__ ) . '/models/wpml/field_group.php',
|
139 |
'Types_Wpml_Field_Group_String_Description' => dirname( __FILE__ ) . '/models/wpml/field/group/string/description.php',
|
134 |
'Types_Twig_Autoloader' => dirname( __FILE__ ) . '/controllers/twig_autoloader.php',
|
135 |
'Types_Upgrade' => dirname( __FILE__ ) . '/controllers/upgrade.php',
|
136 |
'Types_Utils' => dirname( __FILE__ ) . '/controllers/admin_notice/utils.php',
|
137 |
+
'Types_Admin_Notices_Free_Version' => dirname( __FILE__ ) . '/controllers/admin_notice/free-version.php',
|
138 |
'Types_Utils_Post_Type_Option' => dirname( __FILE__ ) . '/controllers/utils/post_type_option.php',
|
139 |
'Types_Wpml_Field_Group' => dirname( __FILE__ ) . '/models/wpml/field_group.php',
|
140 |
'Types_Wpml_Field_Group_String_Description' => dirname( __FILE__ ) . '/models/wpml/field/group/string/description.php',
|
application/bootstrap.php
CHANGED
@@ -33,23 +33,6 @@ if ( !defined( 'EDITOR_ADDON_RELPATH' ) ) {
|
|
33 |
define( 'EDITOR_ADDON_RELPATH', WPCF_EMBEDDED_TOOLSET_RELPATH . '/toolset-common/visual-editor' );
|
34 |
}
|
35 |
|
36 |
-
// installer
|
37 |
-
$installer = TYPES_ABSPATH . '/vendor/otgs/installer/loader.php';
|
38 |
-
if ( file_exists( $installer ) ) {
|
39 |
-
/** @noinspection PhpIncludeInspection */
|
40 |
-
include_once $installer;
|
41 |
-
if ( function_exists( 'WP_Installer_Setup' ) ) {
|
42 |
-
WP_Installer_Setup(
|
43 |
-
$wp_installer_instance,
|
44 |
-
array(
|
45 |
-
'plugins_install_tab' => '1',
|
46 |
-
'repositories_include' => array('toolset', 'wpml'),
|
47 |
-
'high_priority' => '0',
|
48 |
-
)
|
49 |
-
);
|
50 |
-
}
|
51 |
-
}
|
52 |
-
|
53 |
|
54 |
// Get new functions.php
|
55 |
require_once( dirname( __FILE__ ) . '/functions.php' );
|
33 |
define( 'EDITOR_ADDON_RELPATH', WPCF_EMBEDDED_TOOLSET_RELPATH . '/toolset-common/visual-editor' );
|
34 |
}
|
35 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
36 |
|
37 |
// Get new functions.php
|
38 |
require_once( dirname( __FILE__ ) . '/functions.php' );
|
application/controllers/admin.php
CHANGED
@@ -41,6 +41,9 @@ final class Types_Admin {
|
|
41 |
}
|
42 |
|
43 |
$this->init_page_extensions();
|
|
|
|
|
|
|
44 |
}
|
45 |
|
46 |
|
41 |
}
|
42 |
|
43 |
$this->init_page_extensions();
|
44 |
+
|
45 |
+
// admin notices
|
46 |
+
Toolset_Singleton_Factory::get( 'Types_Admin_Notices_Free_Version' );
|
47 |
}
|
48 |
|
49 |
|
application/controllers/admin_notice/free-version.php
ADDED
@@ -0,0 +1,99 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
<?php
|
2 |
+
|
3 |
+
/**
|
4 |
+
* Class Types_Admin_Notices_Free_Version
|
5 |
+
*
|
6 |
+
* Controls all admin notices which are only relevant for the free version of Types
|
7 |
+
*
|
8 |
+
* @since 2.3
|
9 |
+
*/
|
10 |
+
class Types_Admin_Notices_Free_Version extends Toolset_Controller_Admin_Notices {
|
11 |
+
|
12 |
+
const NOTICE_TYPES_3_0 = 'types-3-0-features';
|
13 |
+
const NOTICE_TYPES_3_1 = 'types-3-1-features';
|
14 |
+
|
15 |
+
/**
|
16 |
+
* Types_Admin_Notices_Free_Version constructor.
|
17 |
+
* (same as parent, but as we use $this to call the action it's important to overwrite it)
|
18 |
+
*
|
19 |
+
* @param Toolset_Constants|null $constants
|
20 |
+
*/
|
21 |
+
public function __construct( Toolset_Constants $constants = null ) {
|
22 |
+
if ( null === $constants ) {
|
23 |
+
$constants = new Toolset_Constants();
|
24 |
+
}
|
25 |
+
$this->constants = $constants;
|
26 |
+
|
27 |
+
add_action( 'init', array( $this, 'init' ), 1000 );
|
28 |
+
}
|
29 |
+
|
30 |
+
/**
|
31 |
+
* Init notices by screen
|
32 |
+
*/
|
33 |
+
public function init_screens() {
|
34 |
+
if( ! function_exists( 'get_current_screen' ) ) {
|
35 |
+
// loaded to early
|
36 |
+
return;
|
37 |
+
}
|
38 |
+
|
39 |
+
$this->current_screen = get_current_screen();
|
40 |
+
|
41 |
+
$this->screen_wordpress_dashboard();
|
42 |
+
}
|
43 |
+
|
44 |
+
/**
|
45 |
+
* Notices for the Wordpress Dashboard Page
|
46 |
+
*/
|
47 |
+
protected function screen_wordpress_dashboard() {
|
48 |
+
if( $this->get_current_screen_id() != 'dashboard' ) {
|
49 |
+
return;
|
50 |
+
}
|
51 |
+
|
52 |
+
$this->new_features_of_paid_types();
|
53 |
+
}
|
54 |
+
|
55 |
+
/**
|
56 |
+
* New feature of paid types
|
57 |
+
* Will only show notices if only types is active
|
58 |
+
*/
|
59 |
+
private function new_features_of_paid_types() {
|
60 |
+
if( ! $this->only_types_active() ) {
|
61 |
+
// not only types active
|
62 |
+
return;
|
63 |
+
}
|
64 |
+
|
65 |
+
// new features of paid types (here should only be the newest version,
|
66 |
+
// otherwise new clients or old on new installations see all release notices)
|
67 |
+
$this->notice_types_release_3_0();
|
68 |
+
}
|
69 |
+
|
70 |
+
/**
|
71 |
+
* Notice about Types 3.0 features
|
72 |
+
*
|
73 |
+
* @return bool|Toolset_Admin_Notice_Dismissible
|
74 |
+
*/
|
75 |
+
private function notice_types_release_3_0() {
|
76 |
+
$notice = new Toolset_Admin_Notice_Dismissible( self::NOTICE_TYPES_3_0, '', $this->constants );
|
77 |
+
$notice->set_similar_notices_key( Toolset_Admin_Notices_Manager::SIMILAR_NOTICES_FREE_PLUGIN_SHOWS_PAID_FEATURES );
|
78 |
+
$notice->set_content( TYPES_ABSPATH . '/application/views/admin-notices/free-version/types-3-0.phtml' );
|
79 |
+
Toolset_Admin_Notices_Manager::add_notice( $notice );
|
80 |
+
|
81 |
+
return $notice;
|
82 |
+
}
|
83 |
+
|
84 |
+
/**
|
85 |
+
* Notice about Types 3.1 features
|
86 |
+
*
|
87 |
+
* NOT USED YET - ADDED FOR TESTING AND KEPT IT FOR NEXT RELEASE
|
88 |
+
*
|
89 |
+
* @return bool|Toolset_Admin_Notice_Dismissible
|
90 |
+
*/
|
91 |
+
private function notice_types_release_3_1() {
|
92 |
+
$notice = new Toolset_Admin_Notice_Dismissible( self::NOTICE_TYPES_3_1, '', $this->constants );
|
93 |
+
$notice->set_similar_notices_key( Toolset_Admin_Notices_Manager::SIMILAR_NOTICES_FREE_PLUGIN_SHOWS_PAID_FEATURES );
|
94 |
+
$notice->set_content( TYPES_ABSPATH . '/application/views/admin-notices/free-version/types-3-1.phtml' );
|
95 |
+
Toolset_Admin_Notices_Manager::add_notice( $notice );
|
96 |
+
|
97 |
+
return $notice;
|
98 |
+
}
|
99 |
+
}
|
application/views/admin-notices/free-version/types-3-0.phtml
ADDED
@@ -0,0 +1,95 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
<div class="toolset-notice-wp-no-external-link-highlighting">
|
2 |
+
<h3>
|
3 |
+
<?php _e( 'A major new release of Types is available', 'wpcf' ); ?>
|
4 |
+
</h3>
|
5 |
+
|
6 |
+
<p class="toolset-list-title">
|
7 |
+
<?php _e( 'Types 3.0, released on 28th May 2018, includes major new features that will help you build advanced sites faster and easier.' , 'wpcf' ); ?>
|
8 |
+
</p>
|
9 |
+
|
10 |
+
|
11 |
+
<ul class="toolset-list">
|
12 |
+
<li>
|
13 |
+
<?php
|
14 |
+
echo Toolset_Admin_Notices_Manager::tpl_link(
|
15 |
+
__( 'Repeatable field groups', 'wpcf' ),
|
16 |
+
'https://toolset.com/documentation/getting-started-with-toolset/creating-and-displaying-repeatable-field-groups/' .
|
17 |
+
'?utm_source=typesplugin' .
|
18 |
+
'&utm_campaign=moving-types-to-toolset' .
|
19 |
+
'&utm_medium=message-about-types-3-0' .
|
20 |
+
'&utm_term=repeatable-field-groups',
|
21 |
+
true
|
22 |
+
);
|
23 |
+
?>
|
24 |
+
</li>
|
25 |
+
<li>
|
26 |
+
<?php
|
27 |
+
echo Toolset_Admin_Notices_Manager::tpl_link(
|
28 |
+
__( 'Post reference fields', 'wpcf' ),
|
29 |
+
'https://toolset.com/documentation/post-relationships/how-to-display-related-posts-with-toolset/using-post-reference-fields-to-display-information-from-a-related-post/' .
|
30 |
+
'?utm_source=typesplugin' .
|
31 |
+
'&utm_campaign=moving-types-to-toolset' .
|
32 |
+
'&utm_medium=message-about-types-3-0' .
|
33 |
+
'&utm_term=post-reference-fields',
|
34 |
+
true
|
35 |
+
);
|
36 |
+
?>
|
37 |
+
</li>
|
38 |
+
<li>
|
39 |
+
<?php
|
40 |
+
echo Toolset_Admin_Notices_Manager::tpl_link(
|
41 |
+
__( 'Many-to-many relationships', 'wpcf' ),
|
42 |
+
'https://toolset.com/documentation/post-relationships/' .
|
43 |
+
'?utm_source=typesplugin' .
|
44 |
+
'&utm_campaign=moving-types-to-toolset' .
|
45 |
+
'&utm_medium=message-about-types-3-0' .
|
46 |
+
'&utm_term=many-to-many-relationships',
|
47 |
+
true
|
48 |
+
);
|
49 |
+
?>
|
50 |
+
</li>
|
51 |
+
</ul>
|
52 |
+
|
53 |
+
|
54 |
+
<p>
|
55 |
+
<?php _e( 'This release is part of the paid Toolset package. It costs some money, but worth every penny (if you’re not 100% happy, you get your money back).', 'wpcf' ); ?>
|
56 |
+
</p>
|
57 |
+
|
58 |
+
<p>
|
59 |
+
<?php
|
60 |
+
echo Toolset_Admin_Notices_Manager::tpl_link(
|
61 |
+
__( 'Learn what’s new', 'wpcf' ),
|
62 |
+
'https://toolset.com/2018/05/toolset-post-relationships-release/' .
|
63 |
+
'?utm_source=typesplugin' .
|
64 |
+
'&utm_campaign=moving-types-to-toolset' .
|
65 |
+
'&utm_medium=message-about-types-3-0' .
|
66 |
+
'&utm_term=learn-whats-new',
|
67 |
+
true
|
68 |
+
);
|
69 |
+
?>
|
70 |
+
|
71 |
+
|
72 |
+
|
73 |
+
<?php
|
74 |
+
echo Toolset_Admin_Notices_Manager::tpl_link(
|
75 |
+
__( 'Pricing', 'wpcf' ),
|
76 |
+
'https://toolset.com/buy/' .
|
77 |
+
'?utm_source=typesplugin' .
|
78 |
+
'&utm_campaign=moving-types-to-toolset' .
|
79 |
+
'&utm_medium=message-about-types-3-0' .
|
80 |
+
'&utm_term=pricing',
|
81 |
+
true
|
82 |
+
);
|
83 |
+
?>
|
84 |
+
</p>
|
85 |
+
|
86 |
+
<p>
|
87 |
+
<input type="checkbox" id="free-plugin-offers" name="dismiss-similar-notices[]" value="<?php echo Toolset_Admin_Notices_Manager::SIMILAR_NOTICES_FREE_PLUGIN_SHOWS_PAID_FEATURES; ?>" />
|
88 |
+
<label for="free-plugin-offers"><?php _e( 'Don’t show similar offers again', 'wpcf' ); ?></label>
|
89 |
+
</p>
|
90 |
+
|
91 |
+
<p>
|
92 |
+
<span data-toolset-dismissible="<?php echo Types_Admin_Notices_Free_Version::NOTICE_TYPES_3_0; ?>"
|
93 |
+
class="toolset-button toolset-button-primary"><?php _e( 'Got it', 'wpcf' ); ?></span>
|
94 |
+
</p>
|
95 |
+
</div>
|
application/views/admin-notices/free-version/types-3-1.phtml
ADDED
@@ -0,0 +1,18 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
<?php /* not used for production yet */ ?>
|
2 |
+
<h3>
|
3 |
+
<?php _e( 'A major new release of Types is available', 'wpcf' ); ?>
|
4 |
+
</h3>
|
5 |
+
|
6 |
+
<p class="toolset-list-title">
|
7 |
+
<?php _e( 'Types 3.1, released on ...' , 'wpcf' ); ?>
|
8 |
+
</p>
|
9 |
+
|
10 |
+
<p>
|
11 |
+
<input type="checkbox" id="free-plugin-offers" name="dismiss-similar-notices[]" value="<?php echo Toolset_Admin_Notices_Manager::SIMILAR_NOTICES_FREE_PLUGIN_SHOWS_PAID_FEATURES; ?>" />
|
12 |
+
<label for="free-plugin-offers"><?php _e( 'Don’t show similar offers again', 'wpcf' ); ?></label>
|
13 |
+
</p>
|
14 |
+
|
15 |
+
<p>
|
16 |
+
<span data-toolset-dismissible="<?php echo Types_Admin_Notices_Free_Version::NOTICE_TYPES_3_1; ?>"
|
17 |
+
class="toolset-button toolset-button-primary"><?php _e( 'Got it', 'wpcf' ); ?></span>
|
18 |
+
</p>
|
package-lock.json
ADDED
@@ -0,0 +1,2265 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
{
|
2 |
+
"name": "otgs-ci",
|
3 |
+
"requires": true,
|
4 |
+
"lockfileVersion": 1,
|
5 |
+
"dependencies": {
|
6 |
+
"ansi-gray": {
|
7 |
+
"version": "0.1.1",
|
8 |
+
"resolved": "https://registry.npmjs.org/ansi-gray/-/ansi-gray-0.1.1.tgz",
|
9 |
+
"integrity": "sha1-KWLPVOyXksSFEKPetSRDaGHvclE=",
|
10 |
+
"requires": {
|
11 |
+
"ansi-wrap": "0.1.0"
|
12 |
+
}
|
13 |
+
},
|
14 |
+
"ansi-regex": {
|
15 |
+
"version": "2.1.1",
|
16 |
+
"resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-2.1.1.tgz",
|
17 |
+
"integrity": "sha1-w7M6te42DYbg5ijwRorn7yfWVN8="
|
18 |
+
},
|
19 |
+
"ansi-styles": {
|
20 |
+
"version": "2.2.1",
|
21 |
+
"resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-2.2.1.tgz",
|
22 |
+
"integrity": "sha1-tDLdM1i2NM914eRmQ2gkBTPB3b4="
|
23 |
+
},
|
24 |
+
"ansi-wrap": {
|
25 |
+
"version": "0.1.0",
|
26 |
+
"resolved": "https://registry.npmjs.org/ansi-wrap/-/ansi-wrap-0.1.0.tgz",
|
27 |
+
"integrity": "sha1-qCJQ3bABXponyoLoLqYDu/pF768="
|
28 |
+
},
|
29 |
+
"archy": {
|
30 |
+
"version": "1.0.0",
|
31 |
+
"resolved": "https://registry.npmjs.org/archy/-/archy-1.0.0.tgz",
|
32 |
+
"integrity": "sha1-+cjBN1fMHde8N5rHeyxipcKGjEA="
|
33 |
+
},
|
34 |
+
"arr-diff": {
|
35 |
+
"version": "4.0.0",
|
36 |
+
"resolved": "https://registry.npmjs.org/arr-diff/-/arr-diff-4.0.0.tgz",
|
37 |
+
"integrity": "sha1-1kYQdP6/7HHn4VI1dhoyml3HxSA="
|
38 |
+
},
|
39 |
+
"arr-flatten": {
|
40 |
+
"version": "1.1.0",
|
41 |
+
"resolved": "https://registry.npmjs.org/arr-flatten/-/arr-flatten-1.1.0.tgz",
|
42 |
+
"integrity": "sha512-L3hKV5R/p5o81R7O02IGnwpDmkp6E982XhtbuwSe3O4qOtMMMtodicASA1Cny2U+aCXcNpml+m4dPsvsJ3jatg=="
|
43 |
+
},
|
44 |
+
"arr-union": {
|
45 |
+
"version": "3.1.0",
|
46 |
+
"resolved": "https://registry.npmjs.org/arr-union/-/arr-union-3.1.0.tgz",
|
47 |
+
"integrity": "sha1-45sJrqne+Gao8gbiiK9jkZuuOcQ="
|
48 |
+
},
|
49 |
+
"array-differ": {
|
50 |
+
"version": "1.0.0",
|
51 |
+
"resolved": "https://registry.npmjs.org/array-differ/-/array-differ-1.0.0.tgz",
|
52 |
+
"integrity": "sha1-7/UuN1gknTO+QCuLuOVkuytdQDE="
|
53 |
+
},
|
54 |
+
"array-each": {
|
55 |
+
"version": "1.0.1",
|
56 |
+
"resolved": "https://registry.npmjs.org/array-each/-/array-each-1.0.1.tgz",
|
57 |
+
"integrity": "sha1-p5SvDAWrF1KEbudTofIRoFugxE8="
|
58 |
+
},
|
59 |
+
"array-slice": {
|
60 |
+
"version": "1.1.0",
|
61 |
+
"resolved": "https://registry.npmjs.org/array-slice/-/array-slice-1.1.0.tgz",
|
62 |
+
"integrity": "sha512-B1qMD3RBP7O8o0H2KbrXDyB0IccejMF15+87Lvlor12ONPRHP6gTjXMNkt/d3ZuOGbAe66hFmaCfECI24Ufp6w=="
|
63 |
+
},
|
64 |
+
"array-union": {
|
65 |
+
"version": "1.0.2",
|
66 |
+
"resolved": "https://registry.npmjs.org/array-union/-/array-union-1.0.2.tgz",
|
67 |
+
"integrity": "sha1-mjRBDk9OPaI96jdb5b5w8kd47Dk=",
|
68 |
+
"dev": true,
|
69 |
+
"requires": {
|
70 |
+
"array-uniq": "1.0.3"
|
71 |
+
}
|
72 |
+
},
|
73 |
+
"array-uniq": {
|
74 |
+
"version": "1.0.3",
|
75 |
+
"resolved": "https://registry.npmjs.org/array-uniq/-/array-uniq-1.0.3.tgz",
|
76 |
+
"integrity": "sha1-r2rId6Jcx/dOBYiUdThY39sk/bY="
|
77 |
+
},
|
78 |
+
"array-unique": {
|
79 |
+
"version": "0.3.2",
|
80 |
+
"resolved": "https://registry.npmjs.org/array-unique/-/array-unique-0.3.2.tgz",
|
81 |
+
"integrity": "sha1-qJS3XUvE9s1nnvMkSp/Y9Gri1Cg="
|
82 |
+
},
|
83 |
+
"arrify": {
|
84 |
+
"version": "1.0.1",
|
85 |
+
"resolved": "https://registry.npmjs.org/arrify/-/arrify-1.0.1.tgz",
|
86 |
+
"integrity": "sha1-iYUI2iIm84DfkEcoRWhJwVAaSw0=",
|
87 |
+
"dev": true
|
88 |
+
},
|
89 |
+
"assign-symbols": {
|
90 |
+
"version": "1.0.0",
|
91 |
+
"resolved": "https://registry.npmjs.org/assign-symbols/-/assign-symbols-1.0.0.tgz",
|
92 |
+
"integrity": "sha1-WWZ/QfrdTyDMvCu5a41Pf3jsA2c="
|
93 |
+
},
|
94 |
+
"atob": {
|
95 |
+
"version": "2.1.1",
|
96 |
+
"resolved": "https://registry.npmjs.org/atob/-/atob-2.1.1.tgz",
|
97 |
+
"integrity": "sha1-ri1acpR38onWDdf5amMUoi3Wwio="
|
98 |
+
},
|
99 |
+
"balanced-match": {
|
100 |
+
"version": "1.0.0",
|
101 |
+
"resolved": "https://registry.npmjs.org/balanced-match/-/balanced-match-1.0.0.tgz",
|
102 |
+
"integrity": "sha1-ibTRmasr7kneFk6gK4nORi1xt2c="
|
103 |
+
},
|
104 |
+
"base": {
|
105 |
+
"version": "0.11.2",
|
106 |
+
"resolved": "https://registry.npmjs.org/base/-/base-0.11.2.tgz",
|
107 |
+
"integrity": "sha512-5T6P4xPgpp0YDFvSWwEZ4NoE3aM4QBQXDzmVbraCkFj8zHM+mba8SyqB5DbZWyR7mYHo6Y7BdQo3MoA4m0TeQg==",
|
108 |
+
"requires": {
|
109 |
+
"cache-base": "1.0.1",
|
110 |
+
"class-utils": "0.3.6",
|
111 |
+
"component-emitter": "1.2.1",
|
112 |
+
"define-property": "1.0.0",
|
113 |
+
"isobject": "3.0.1",
|
114 |
+
"mixin-deep": "1.3.1",
|
115 |
+
"pascalcase": "0.1.1"
|
116 |
+
},
|
117 |
+
"dependencies": {
|
118 |
+
"define-property": {
|
119 |
+
"version": "1.0.0",
|
120 |
+
"resolved": "https://registry.npmjs.org/define-property/-/define-property-1.0.0.tgz",
|
121 |
+
"integrity": "sha1-dp66rz9KY6rTr56NMEybvnm/sOY=",
|
122 |
+
"requires": {
|
123 |
+
"is-descriptor": "1.0.2"
|
124 |
+
}
|
125 |
+
},
|
126 |
+
"is-accessor-descriptor": {
|
127 |
+
"version": "1.0.0",
|
128 |
+
"resolved": "https://registry.npmjs.org/is-accessor-descriptor/-/is-accessor-descriptor-1.0.0.tgz",
|
129 |
+
"integrity": "sha512-m5hnHTkcVsPfqx3AKlyttIPb7J+XykHvJP2B9bZDjlhLIoEq4XoK64Vg7boZlVWYK6LUY94dYPEE7Lh0ZkZKcQ==",
|
130 |
+
"requires": {
|
131 |
+
"kind-of": "6.0.2"
|
132 |
+
}
|
133 |
+
},
|
134 |
+
"is-data-descriptor": {
|
135 |
+
"version": "1.0.0",
|
136 |
+
"resolved": "https://registry.npmjs.org/is-data-descriptor/-/is-data-descriptor-1.0.0.tgz",
|
137 |
+
"integrity": "sha512-jbRXy1FmtAoCjQkVmIVYwuuqDFUbaOeDjmed1tOGPrsMhtJA4rD9tkgA0F1qJ3gRFRXcHYVkdeaP50Q5rE/jLQ==",
|
138 |
+
"requires": {
|
139 |
+
"kind-of": "6.0.2"
|
140 |
+
}
|
141 |
+
},
|
142 |
+
"is-descriptor": {
|
143 |
+
"version": "1.0.2",
|
144 |
+
"resolved": "https://registry.npmjs.org/is-descriptor/-/is-descriptor-1.0.2.tgz",
|
145 |
+
"integrity": "sha512-2eis5WqQGV7peooDyLmNEPUrps9+SXX5c9pL3xEB+4e9HnGuDa7mB7kHxHw4CbqS9k1T2hOH3miL8n8WtiYVtg==",
|
146 |
+
"requires": {
|
147 |
+
"is-accessor-descriptor": "1.0.0",
|
148 |
+
"is-data-descriptor": "1.0.0",
|
149 |
+
"kind-of": "6.0.2"
|
150 |
+
}
|
151 |
+
}
|
152 |
+
}
|
153 |
+
},
|
154 |
+
"beeper": {
|
155 |
+
"version": "1.1.1",
|
156 |
+
"resolved": "https://registry.npmjs.org/beeper/-/beeper-1.1.1.tgz",
|
157 |
+
"integrity": "sha1-5tXqjF2tABMEpwsiY4RH9pyy+Ak="
|
158 |
+
},
|
159 |
+
"brace-expansion": {
|
160 |
+
"version": "1.1.11",
|
161 |
+
"resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.11.tgz",
|
162 |
+
"integrity": "sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA==",
|
163 |
+
"requires": {
|
164 |
+
"balanced-match": "1.0.0",
|
165 |
+
"concat-map": "0.0.1"
|
166 |
+
}
|
167 |
+
},
|
168 |
+
"braces": {
|
169 |
+
"version": "2.3.2",
|
170 |
+
"resolved": "https://registry.npmjs.org/braces/-/braces-2.3.2.tgz",
|
171 |
+
"integrity": "sha512-aNdbnj9P8PjdXU4ybaWLK2IF3jc/EoDYbC7AazW6to3TRsfXxscC9UXOB5iDiEQrkyIbWp2SLQda4+QAa7nc3w==",
|
172 |
+
"requires": {
|
173 |
+
"arr-flatten": "1.1.0",
|
174 |
+
"array-unique": "0.3.2",
|
175 |
+
"extend-shallow": "2.0.1",
|
176 |
+
"fill-range": "4.0.0",
|
177 |
+
"isobject": "3.0.1",
|
178 |
+
"repeat-element": "1.1.2",
|
179 |
+
"snapdragon": "0.8.2",
|
180 |
+
"snapdragon-node": "2.1.1",
|
181 |
+
"split-string": "3.1.0",
|
182 |
+
"to-regex": "3.0.2"
|
183 |
+
},
|
184 |
+
"dependencies": {
|
185 |
+
"extend-shallow": {
|
186 |
+
"version": "2.0.1",
|
187 |
+
"resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-2.0.1.tgz",
|
188 |
+
"integrity": "sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=",
|
189 |
+
"requires": {
|
190 |
+
"is-extendable": "0.1.1"
|
191 |
+
}
|
192 |
+
}
|
193 |
+
}
|
194 |
+
},
|
195 |
+
"cache-base": {
|
196 |
+
"version": "1.0.1",
|
197 |
+
"resolved": "https://registry.npmjs.org/cache-base/-/cache-base-1.0.1.tgz",
|
198 |
+
"integrity": "sha512-AKcdTnFSWATd5/GCPRxr2ChwIJ85CeyrEyjRHlKxQ56d4XJMGym0uAiKn0xbLOGOl3+yRpOTi484dVCEc5AUzQ==",
|
199 |
+
"requires": {
|
200 |
+
"collection-visit": "1.0.0",
|
201 |
+
"component-emitter": "1.2.1",
|
202 |
+
"get-value": "2.0.6",
|
203 |
+
"has-value": "1.0.0",
|
204 |
+
"isobject": "3.0.1",
|
205 |
+
"set-value": "2.0.0",
|
206 |
+
"to-object-path": "0.3.0",
|
207 |
+
"union-value": "1.0.0",
|
208 |
+
"unset-value": "1.0.0"
|
209 |
+
}
|
210 |
+
},
|
211 |
+
"chalk": {
|
212 |
+
"version": "1.1.3",
|
213 |
+
"resolved": "https://registry.npmjs.org/chalk/-/chalk-1.1.3.tgz",
|
214 |
+
"integrity": "sha1-qBFcVeSnAv5NFQq9OHKCKn4J/Jg=",
|
215 |
+
"requires": {
|
216 |
+
"ansi-styles": "2.2.1",
|
217 |
+
"escape-string-regexp": "1.0.5",
|
218 |
+
"has-ansi": "2.0.0",
|
219 |
+
"strip-ansi": "3.0.1",
|
220 |
+
"supports-color": "2.0.0"
|
221 |
+
}
|
222 |
+
},
|
223 |
+
"class-utils": {
|
224 |
+
"version": "0.3.6",
|
225 |
+
"resolved": "https://registry.npmjs.org/class-utils/-/class-utils-0.3.6.tgz",
|
226 |
+
"integrity": "sha512-qOhPa/Fj7s6TY8H8esGu5QNpMMQxz79h+urzrNYN6mn+9BnxlDGf5QZ+XeCDsxSjPqsSR56XOZOJmpeurnLMeg==",
|
227 |
+
"requires": {
|
228 |
+
"arr-union": "3.1.0",
|
229 |
+
"define-property": "0.2.5",
|
230 |
+
"isobject": "3.0.1",
|
231 |
+
"static-extend": "0.1.2"
|
232 |
+
},
|
233 |
+
"dependencies": {
|
234 |
+
"define-property": {
|
235 |
+
"version": "0.2.5",
|
236 |
+
"resolved": "https://registry.npmjs.org/define-property/-/define-property-0.2.5.tgz",
|
237 |
+
"integrity": "sha1-w1se+RjsPJkPmlvFe+BKrOxcgRY=",
|
238 |
+
"requires": {
|
239 |
+
"is-descriptor": "0.1.6"
|
240 |
+
}
|
241 |
+
}
|
242 |
+
}
|
243 |
+
},
|
244 |
+
"clone": {
|
245 |
+
"version": "1.0.4",
|
246 |
+
"resolved": "https://registry.npmjs.org/clone/-/clone-1.0.4.tgz",
|
247 |
+
"integrity": "sha1-2jCcwmPfFZlMaIypAheco8fNfH4="
|
248 |
+
},
|
249 |
+
"clone-stats": {
|
250 |
+
"version": "0.0.1",
|
251 |
+
"resolved": "https://registry.npmjs.org/clone-stats/-/clone-stats-0.0.1.tgz",
|
252 |
+
"integrity": "sha1-uI+UqCzzi4eR1YBG6kAprYjKmdE="
|
253 |
+
},
|
254 |
+
"collection-visit": {
|
255 |
+
"version": "1.0.0",
|
256 |
+
"resolved": "https://registry.npmjs.org/collection-visit/-/collection-visit-1.0.0.tgz",
|
257 |
+
"integrity": "sha1-S8A3PBZLwykbTTaMgpzxqApZ3KA=",
|
258 |
+
"requires": {
|
259 |
+
"map-visit": "1.0.0",
|
260 |
+
"object-visit": "1.0.1"
|
261 |
+
}
|
262 |
+
},
|
263 |
+
"color-support": {
|
264 |
+
"version": "1.1.3",
|
265 |
+
"resolved": "https://registry.npmjs.org/color-support/-/color-support-1.1.3.tgz",
|
266 |
+
"integrity": "sha512-qiBjkpbMLO/HL68y+lh4q0/O1MZFj2RX6X/KmMa3+gJD3z+WwI1ZzDHysvqHGS3mP6mznPckpXmw1nI9cJjyRg=="
|
267 |
+
},
|
268 |
+
"component-emitter": {
|
269 |
+
"version": "1.2.1",
|
270 |
+
"resolved": "https://registry.npmjs.org/component-emitter/-/component-emitter-1.2.1.tgz",
|
271 |
+
"integrity": "sha1-E3kY1teCg/ffemt8WmPhQOaUJeY="
|
272 |
+
},
|
273 |
+
"concat-map": {
|
274 |
+
"version": "0.0.1",
|
275 |
+
"resolved": "https://registry.npmjs.org/concat-map/-/concat-map-0.0.1.tgz",
|
276 |
+
"integrity": "sha1-2Klr13/Wjfd5OnMDajug1UBdR3s="
|
277 |
+
},
|
278 |
+
"copy-descriptor": {
|
279 |
+
"version": "0.1.1",
|
280 |
+
"resolved": "https://registry.npmjs.org/copy-descriptor/-/copy-descriptor-0.1.1.tgz",
|
281 |
+
"integrity": "sha1-Z29us8OZl8LuGsOpJP1hJHSPV40="
|
282 |
+
},
|
283 |
+
"core-util-is": {
|
284 |
+
"version": "1.0.2",
|
285 |
+
"resolved": "https://registry.npmjs.org/core-util-is/-/core-util-is-1.0.2.tgz",
|
286 |
+
"integrity": "sha1-tf1UIgqivFq1eqtxQMlAdUUDwac="
|
287 |
+
},
|
288 |
+
"dateformat": {
|
289 |
+
"version": "2.2.0",
|
290 |
+
"resolved": "https://registry.npmjs.org/dateformat/-/dateformat-2.2.0.tgz",
|
291 |
+
"integrity": "sha1-QGXiATz5+5Ft39gu+1Bq1MZ2kGI="
|
292 |
+
},
|
293 |
+
"debug": {
|
294 |
+
"version": "2.6.9",
|
295 |
+
"resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz",
|
296 |
+
"integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==",
|
297 |
+
"requires": {
|
298 |
+
"ms": "2.0.0"
|
299 |
+
}
|
300 |
+
},
|
301 |
+
"decode-uri-component": {
|
302 |
+
"version": "0.2.0",
|
303 |
+
"resolved": "https://registry.npmjs.org/decode-uri-component/-/decode-uri-component-0.2.0.tgz",
|
304 |
+
"integrity": "sha1-6zkTMzRYd1y4TNGh+uBiEGu4dUU="
|
305 |
+
},
|
306 |
+
"defaults": {
|
307 |
+
"version": "1.0.3",
|
308 |
+
"resolved": "https://registry.npmjs.org/defaults/-/defaults-1.0.3.tgz",
|
309 |
+
"integrity": "sha1-xlYFHpgX2f8I7YgUd/P+QBnz730=",
|
310 |
+
"requires": {
|
311 |
+
"clone": "1.0.4"
|
312 |
+
}
|
313 |
+
},
|
314 |
+
"define-property": {
|
315 |
+
"version": "2.0.2",
|
316 |
+
"resolved": "https://registry.npmjs.org/define-property/-/define-property-2.0.2.tgz",
|
317 |
+
"integrity": "sha512-jwK2UV4cnPpbcG7+VRARKTZPUWowwXA8bzH5NP6ud0oeAxyYPuGZUAC7hMugpCdz4BeSZl2Dl9k66CHJ/46ZYQ==",
|
318 |
+
"requires": {
|
319 |
+
"is-descriptor": "1.0.2",
|
320 |
+
"isobject": "3.0.1"
|
321 |
+
},
|
322 |
+
"dependencies": {
|
323 |
+
"is-accessor-descriptor": {
|
324 |
+
"version": "1.0.0",
|
325 |
+
"resolved": "https://registry.npmjs.org/is-accessor-descriptor/-/is-accessor-descriptor-1.0.0.tgz",
|
326 |
+
"integrity": "sha512-m5hnHTkcVsPfqx3AKlyttIPb7J+XykHvJP2B9bZDjlhLIoEq4XoK64Vg7boZlVWYK6LUY94dYPEE7Lh0ZkZKcQ==",
|
327 |
+
"requires": {
|
328 |
+
"kind-of": "6.0.2"
|
329 |
+
}
|
330 |
+
},
|
331 |
+
"is-data-descriptor": {
|
332 |
+
"version": "1.0.0",
|
333 |
+
"resolved": "https://registry.npmjs.org/is-data-descriptor/-/is-data-descriptor-1.0.0.tgz",
|
334 |
+
"integrity": "sha512-jbRXy1FmtAoCjQkVmIVYwuuqDFUbaOeDjmed1tOGPrsMhtJA4rD9tkgA0F1qJ3gRFRXcHYVkdeaP50Q5rE/jLQ==",
|
335 |
+
"requires": {
|
336 |
+
"kind-of": "6.0.2"
|
337 |
+
}
|
338 |
+
},
|
339 |
+
"is-descriptor": {
|
340 |
+
"version": "1.0.2",
|
341 |
+
"resolved": "https://registry.npmjs.org/is-descriptor/-/is-descriptor-1.0.2.tgz",
|
342 |
+
"integrity": "sha512-2eis5WqQGV7peooDyLmNEPUrps9+SXX5c9pL3xEB+4e9HnGuDa7mB7kHxHw4CbqS9k1T2hOH3miL8n8WtiYVtg==",
|
343 |
+
"requires": {
|
344 |
+
"is-accessor-descriptor": "1.0.0",
|
345 |
+
"is-data-descriptor": "1.0.0",
|
346 |
+
"kind-of": "6.0.2"
|
347 |
+
}
|
348 |
+
}
|
349 |
+
}
|
350 |
+
},
|
351 |
+
"del": {
|
352 |
+
"version": "2.2.2",
|
353 |
+
"resolved": "https://registry.npmjs.org/del/-/del-2.2.2.tgz",
|
354 |
+
"integrity": "sha1-wSyYHQZ4RshLyvhiz/kw2Qf/0ag=",
|
355 |
+
"dev": true,
|
356 |
+
"requires": {
|
357 |
+
"globby": "5.0.0",
|
358 |
+
"is-path-cwd": "1.0.0",
|
359 |
+
"is-path-in-cwd": "1.0.1",
|
360 |
+
"object-assign": "4.1.1",
|
361 |
+
"pify": "2.3.0",
|
362 |
+
"pinkie-promise": "2.0.1",
|
363 |
+
"rimraf": "2.6.2"
|
364 |
+
},
|
365 |
+
"dependencies": {
|
366 |
+
"object-assign": {
|
367 |
+
"version": "4.1.1",
|
368 |
+
"resolved": "https://registry.npmjs.org/object-assign/-/object-assign-4.1.1.tgz",
|
369 |
+
"integrity": "sha1-IQmtx5ZYh8/AXLvUQsrIv7s2CGM=",
|
370 |
+
"dev": true
|
371 |
+
}
|
372 |
+
}
|
373 |
+
},
|
374 |
+
"deprecated": {
|
375 |
+
"version": "0.0.1",
|
376 |
+
"resolved": "https://registry.npmjs.org/deprecated/-/deprecated-0.0.1.tgz",
|
377 |
+
"integrity": "sha1-+cmvVGSvoeepcUWKi97yqpTVuxk="
|
378 |
+
},
|
379 |
+
"detect-file": {
|
380 |
+
"version": "1.0.0",
|
381 |
+
"resolved": "https://registry.npmjs.org/detect-file/-/detect-file-1.0.0.tgz",
|
382 |
+
"integrity": "sha1-8NZtA2cqglyxtzvbP+YjEMjlUrc="
|
383 |
+
},
|
384 |
+
"duplexer2": {
|
385 |
+
"version": "0.0.2",
|
386 |
+
"resolved": "https://registry.npmjs.org/duplexer2/-/duplexer2-0.0.2.tgz",
|
387 |
+
"integrity": "sha1-xhTc9n4vsUmVqRcR5aYX6KYKMds=",
|
388 |
+
"requires": {
|
389 |
+
"readable-stream": "1.1.14"
|
390 |
+
}
|
391 |
+
},
|
392 |
+
"end-of-stream": {
|
393 |
+
"version": "0.1.5",
|
394 |
+
"resolved": "https://registry.npmjs.org/end-of-stream/-/end-of-stream-0.1.5.tgz",
|
395 |
+
"integrity": "sha1-jhdyBsPICDfYVjLouTWd/osvbq8=",
|
396 |
+
"requires": {
|
397 |
+
"once": "1.3.3"
|
398 |
+
}
|
399 |
+
},
|
400 |
+
"escape-string-regexp": {
|
401 |
+
"version": "1.0.5",
|
402 |
+
"resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-1.0.5.tgz",
|
403 |
+
"integrity": "sha1-G2HAViGQqN/2rjuyzwIAyhMLhtQ="
|
404 |
+
},
|
405 |
+
"expand-brackets": {
|
406 |
+
"version": "2.1.4",
|
407 |
+
"resolved": "https://registry.npmjs.org/expand-brackets/-/expand-brackets-2.1.4.tgz",
|
408 |
+
"integrity": "sha1-t3c14xXOMPa27/D4OwQVGiJEliI=",
|
409 |
+
"requires": {
|
410 |
+
"debug": "2.6.9",
|
411 |
+
"define-property": "0.2.5",
|
412 |
+
"extend-shallow": "2.0.1",
|
413 |
+
"posix-character-classes": "0.1.1",
|
414 |
+
"regex-not": "1.0.2",
|
415 |
+
"snapdragon": "0.8.2",
|
416 |
+
"to-regex": "3.0.2"
|
417 |
+
},
|
418 |
+
"dependencies": {
|
419 |
+
"define-property": {
|
420 |
+
"version": "0.2.5",
|
421 |
+
"resolved": "https://registry.npmjs.org/define-property/-/define-property-0.2.5.tgz",
|
422 |
+
"integrity": "sha1-w1se+RjsPJkPmlvFe+BKrOxcgRY=",
|
423 |
+
"requires": {
|
424 |
+
"is-descriptor": "0.1.6"
|
425 |
+
}
|
426 |
+
},
|
427 |
+
"extend-shallow": {
|
428 |
+
"version": "2.0.1",
|
429 |
+
"resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-2.0.1.tgz",
|
430 |
+
"integrity": "sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=",
|
431 |
+
"requires": {
|
432 |
+
"is-extendable": "0.1.1"
|
433 |
+
}
|
434 |
+
}
|
435 |
+
}
|
436 |
+
},
|
437 |
+
"expand-tilde": {
|
438 |
+
"version": "2.0.2",
|
439 |
+
"resolved": "https://registry.npmjs.org/expand-tilde/-/expand-tilde-2.0.2.tgz",
|
440 |
+
"integrity": "sha1-l+gBqgUt8CRU3kawK/YhZCzchQI=",
|
441 |
+
"requires": {
|
442 |
+
"homedir-polyfill": "1.0.1"
|
443 |
+
}
|
444 |
+
},
|
445 |
+
"extend": {
|
446 |
+
"version": "3.0.1",
|
447 |
+
"resolved": "https://registry.npmjs.org/extend/-/extend-3.0.1.tgz",
|
448 |
+
"integrity": "sha1-p1Xqe8Gt/MWjHOfnYtuq3F5jZEQ="
|
449 |
+
},
|
450 |
+
"extend-shallow": {
|
451 |
+
"version": "3.0.2",
|
452 |
+
"resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-3.0.2.tgz",
|
453 |
+
"integrity": "sha1-Jqcarwc7OfshJxcnRhMcJwQCjbg=",
|
454 |
+
"requires": {
|
455 |
+
"assign-symbols": "1.0.0",
|
456 |
+
"is-extendable": "1.0.1"
|
457 |
+
},
|
458 |
+
"dependencies": {
|
459 |
+
"is-extendable": {
|
460 |
+
"version": "1.0.1",
|
461 |
+
"resolved": "https://registry.npmjs.org/is-extendable/-/is-extendable-1.0.1.tgz",
|
462 |
+
"integrity": "sha512-arnXMxT1hhoKo9k1LZdmlNyJdDDfy2v0fXjFlmok4+i8ul/6WlbVge9bhM74OpNPQPMGUToDtz+KXa1PneJxOA==",
|
463 |
+
"requires": {
|
464 |
+
"is-plain-object": "2.0.4"
|
465 |
+
}
|
466 |
+
}
|
467 |
+
}
|
468 |
+
},
|
469 |
+
"extglob": {
|
470 |
+
"version": "2.0.4",
|
471 |
+
"resolved": "https://registry.npmjs.org/extglob/-/extglob-2.0.4.tgz",
|
472 |
+
"integrity": "sha512-Nmb6QXkELsuBr24CJSkilo6UHHgbekK5UiZgfE6UHD3Eb27YC6oD+bhcT+tJ6cl8dmsgdQxnWlcry8ksBIBLpw==",
|
473 |
+
"requires": {
|
474 |
+
"array-unique": "0.3.2",
|
475 |
+
"define-property": "1.0.0",
|
476 |
+
"expand-brackets": "2.1.4",
|
477 |
+
"extend-shallow": "2.0.1",
|
478 |
+
"fragment-cache": "0.2.1",
|
479 |
+
"regex-not": "1.0.2",
|
480 |
+
"snapdragon": "0.8.2",
|
481 |
+
"to-regex": "3.0.2"
|
482 |
+
},
|
483 |
+
"dependencies": {
|
484 |
+
"define-property": {
|
485 |
+
"version": "1.0.0",
|
486 |
+
"resolved": "https://registry.npmjs.org/define-property/-/define-property-1.0.0.tgz",
|
487 |
+
"integrity": "sha1-dp66rz9KY6rTr56NMEybvnm/sOY=",
|
488 |
+
"requires": {
|
489 |
+
"is-descriptor": "1.0.2"
|
490 |
+
}
|
491 |
+
},
|
492 |
+
"extend-shallow": {
|
493 |
+
"version": "2.0.1",
|
494 |
+
"resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-2.0.1.tgz",
|
495 |
+
"integrity": "sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=",
|
496 |
+
"requires": {
|
497 |
+
"is-extendable": "0.1.1"
|
498 |
+
}
|
499 |
+
},
|
500 |
+
"is-accessor-descriptor": {
|
501 |
+
"version": "1.0.0",
|
502 |
+
"resolved": "https://registry.npmjs.org/is-accessor-descriptor/-/is-accessor-descriptor-1.0.0.tgz",
|
503 |
+
"integrity": "sha512-m5hnHTkcVsPfqx3AKlyttIPb7J+XykHvJP2B9bZDjlhLIoEq4XoK64Vg7boZlVWYK6LUY94dYPEE7Lh0ZkZKcQ==",
|
504 |
+
"requires": {
|
505 |
+
"kind-of": "6.0.2"
|
506 |
+
}
|
507 |
+
},
|
508 |
+
"is-data-descriptor": {
|
509 |
+
"version": "1.0.0",
|
510 |
+
"resolved": "https://registry.npmjs.org/is-data-descriptor/-/is-data-descriptor-1.0.0.tgz",
|
511 |
+
"integrity": "sha512-jbRXy1FmtAoCjQkVmIVYwuuqDFUbaOeDjmed1tOGPrsMhtJA4rD9tkgA0F1qJ3gRFRXcHYVkdeaP50Q5rE/jLQ==",
|
512 |
+
"requires": {
|
513 |
+
"kind-of": "6.0.2"
|
514 |
+
}
|
515 |
+
},
|
516 |
+
"is-descriptor": {
|
517 |
+
"version": "1.0.2",
|
518 |
+
"resolved": "https://registry.npmjs.org/is-descriptor/-/is-descriptor-1.0.2.tgz",
|
519 |
+
"integrity": "sha512-2eis5WqQGV7peooDyLmNEPUrps9+SXX5c9pL3xEB+4e9HnGuDa7mB7kHxHw4CbqS9k1T2hOH3miL8n8WtiYVtg==",
|
520 |
+
"requires": {
|
521 |
+
"is-accessor-descriptor": "1.0.0",
|
522 |
+
"is-data-descriptor": "1.0.0",
|
523 |
+
"kind-of": "6.0.2"
|
524 |
+
}
|
525 |
+
}
|
526 |
+
}
|
527 |
+
},
|
528 |
+
"fancy-log": {
|
529 |
+
"version": "1.3.2",
|
530 |
+
"resolved": "https://registry.npmjs.org/fancy-log/-/fancy-log-1.3.2.tgz",
|
531 |
+
"integrity": "sha1-9BEl49hPLn2JpD0G2VjI94vha+E=",
|
532 |
+
"requires": {
|
533 |
+
"ansi-gray": "0.1.1",
|
534 |
+
"color-support": "1.1.3",
|
535 |
+
"time-stamp": "1.1.0"
|
536 |
+
}
|
537 |
+
},
|
538 |
+
"fill-range": {
|
539 |
+
"version": "4.0.0",
|
540 |
+
"resolved": "https://registry.npmjs.org/fill-range/-/fill-range-4.0.0.tgz",
|
541 |
+
"integrity": "sha1-1USBHUKPmOsGpj3EAtJAPDKMOPc=",
|
542 |
+
"requires": {
|
543 |
+
"extend-shallow": "2.0.1",
|
544 |
+
"is-number": "3.0.0",
|
545 |
+
"repeat-string": "1.6.1",
|
546 |
+
"to-regex-range": "2.1.1"
|
547 |
+
},
|
548 |
+
"dependencies": {
|
549 |
+
"extend-shallow": {
|
550 |
+
"version": "2.0.1",
|
551 |
+
"resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-2.0.1.tgz",
|
552 |
+
"integrity": "sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=",
|
553 |
+
"requires": {
|
554 |
+
"is-extendable": "0.1.1"
|
555 |
+
}
|
556 |
+
}
|
557 |
+
}
|
558 |
+
},
|
559 |
+
"find-index": {
|
560 |
+
"version": "0.1.1",
|
561 |
+
"resolved": "https://registry.npmjs.org/find-index/-/find-index-0.1.1.tgz",
|
562 |
+
"integrity": "sha1-Z101iyyjiS15Whq0cjL4tuLg3eQ="
|
563 |
+
},
|
564 |
+
"findup-sync": {
|
565 |
+
"version": "2.0.0",
|
566 |
+
"resolved": "https://registry.npmjs.org/findup-sync/-/findup-sync-2.0.0.tgz",
|
567 |
+
"integrity": "sha1-kyaxSIwi0aYIhlCoaQGy2akKLLw=",
|
568 |
+
"requires": {
|
569 |
+
"detect-file": "1.0.0",
|
570 |
+
"is-glob": "3.1.0",
|
571 |
+
"micromatch": "3.1.10",
|
572 |
+
"resolve-dir": "1.0.1"
|
573 |
+
}
|
574 |
+
},
|
575 |
+
"fined": {
|
576 |
+
"version": "1.1.0",
|
577 |
+
"resolved": "https://registry.npmjs.org/fined/-/fined-1.1.0.tgz",
|
578 |
+
"integrity": "sha1-s33IRLdqL15wgeiE98CuNE8VNHY=",
|
579 |
+
"requires": {
|
580 |
+
"expand-tilde": "2.0.2",
|
581 |
+
"is-plain-object": "2.0.4",
|
582 |
+
"object.defaults": "1.1.0",
|
583 |
+
"object.pick": "1.3.0",
|
584 |
+
"parse-filepath": "1.0.2"
|
585 |
+
}
|
586 |
+
},
|
587 |
+
"first-chunk-stream": {
|
588 |
+
"version": "1.0.0",
|
589 |
+
"resolved": "https://registry.npmjs.org/first-chunk-stream/-/first-chunk-stream-1.0.0.tgz",
|
590 |
+
"integrity": "sha1-Wb+1DNkF9g18OUzT2ayqtOatk04="
|
591 |
+
},
|
592 |
+
"flagged-respawn": {
|
593 |
+
"version": "1.0.0",
|
594 |
+
"resolved": "https://registry.npmjs.org/flagged-respawn/-/flagged-respawn-1.0.0.tgz",
|
595 |
+
"integrity": "sha1-Tnmumy6zi/hrO7Vr8+ClaqX8q9c="
|
596 |
+
},
|
597 |
+
"for-in": {
|
598 |
+
"version": "1.0.2",
|
599 |
+
"resolved": "https://registry.npmjs.org/for-in/-/for-in-1.0.2.tgz",
|
600 |
+
"integrity": "sha1-gQaNKVqBQuwKxybG4iAMMPttXoA="
|
601 |
+
},
|
602 |
+
"for-own": {
|
603 |
+
"version": "1.0.0",
|
604 |
+
"resolved": "https://registry.npmjs.org/for-own/-/for-own-1.0.0.tgz",
|
605 |
+
"integrity": "sha1-xjMy9BXO3EsE2/5wz4NklMU8tEs=",
|
606 |
+
"requires": {
|
607 |
+
"for-in": "1.0.2"
|
608 |
+
}
|
609 |
+
},
|
610 |
+
"fragment-cache": {
|
611 |
+
"version": "0.2.1",
|
612 |
+
"resolved": "https://registry.npmjs.org/fragment-cache/-/fragment-cache-0.2.1.tgz",
|
613 |
+
"integrity": "sha1-QpD60n8T6Jvn8zeZxrxaCr//DRk=",
|
614 |
+
"requires": {
|
615 |
+
"map-cache": "0.2.2"
|
616 |
+
}
|
617 |
+
},
|
618 |
+
"fs.realpath": {
|
619 |
+
"version": "1.0.0",
|
620 |
+
"resolved": "https://registry.npmjs.org/fs.realpath/-/fs.realpath-1.0.0.tgz",
|
621 |
+
"integrity": "sha1-FQStJSMVjKpA20onh8sBQRmU6k8=",
|
622 |
+
"dev": true
|
623 |
+
},
|
624 |
+
"gaze": {
|
625 |
+
"version": "0.5.2",
|
626 |
+
"resolved": "https://registry.npmjs.org/gaze/-/gaze-0.5.2.tgz",
|
627 |
+
"integrity": "sha1-QLcJU30k0dRXZ9takIaJ3+aaxE8=",
|
628 |
+
"requires": {
|
629 |
+
"globule": "0.1.0"
|
630 |
+
}
|
631 |
+
},
|
632 |
+
"get-value": {
|
633 |
+
"version": "2.0.6",
|
634 |
+
"resolved": "https://registry.npmjs.org/get-value/-/get-value-2.0.6.tgz",
|
635 |
+
"integrity": "sha1-3BXKHGcjh8p2vTesCjlbogQqLCg="
|
636 |
+
},
|
637 |
+
"glob": {
|
638 |
+
"version": "4.5.3",
|
639 |
+
"resolved": "https://registry.npmjs.org/glob/-/glob-4.5.3.tgz",
|
640 |
+
"integrity": "sha1-xstz0yJsHv7wTePFbQEvAzd+4V8=",
|
641 |
+
"requires": {
|
642 |
+
"inflight": "1.0.6",
|
643 |
+
"inherits": "2.0.3",
|
644 |
+
"minimatch": "2.0.10",
|
645 |
+
"once": "1.3.3"
|
646 |
+
}
|
647 |
+
},
|
648 |
+
"glob-stream": {
|
649 |
+
"version": "3.1.18",
|
650 |
+
"resolved": "https://registry.npmjs.org/glob-stream/-/glob-stream-3.1.18.tgz",
|
651 |
+
"integrity": "sha1-kXCl8St5Awb9/lmPMT+PeVT9FDs=",
|
652 |
+
"requires": {
|
653 |
+
"glob": "4.5.3",
|
654 |
+
"glob2base": "0.0.12",
|
655 |
+
"minimatch": "2.0.10",
|
656 |
+
"ordered-read-streams": "0.1.0",
|
657 |
+
"through2": "0.6.5",
|
658 |
+
"unique-stream": "1.0.0"
|
659 |
+
},
|
660 |
+
"dependencies": {
|
661 |
+
"readable-stream": {
|
662 |
+
"version": "1.0.34",
|
663 |
+
"resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-1.0.34.tgz",
|
664 |
+
"integrity": "sha1-Elgg40vIQtLyqq+v5MKRbuMsFXw=",
|
665 |
+
"requires": {
|
666 |
+
"core-util-is": "1.0.2",
|
667 |
+
"inherits": "2.0.3",
|
668 |
+
"isarray": "0.0.1",
|
669 |
+
"string_decoder": "0.10.31"
|
670 |
+
}
|
671 |
+
},
|
672 |
+
"through2": {
|
673 |
+
"version": "0.6.5",
|
674 |
+
"resolved": "https://registry.npmjs.org/through2/-/through2-0.6.5.tgz",
|
675 |
+
"integrity": "sha1-QaucZ7KdVyCQcUEOHXp6lozTrUg=",
|
676 |
+
"requires": {
|
677 |
+
"readable-stream": "1.0.34",
|
678 |
+
"xtend": "4.0.1"
|
679 |
+
}
|
680 |
+
}
|
681 |
+
}
|
682 |
+
},
|
683 |
+
"glob-watcher": {
|
684 |
+
"version": "0.0.6",
|
685 |
+
"resolved": "https://registry.npmjs.org/glob-watcher/-/glob-watcher-0.0.6.tgz",
|
686 |
+
"integrity": "sha1-uVtKjfdLOcgymLDAXJeLTZo7cQs=",
|
687 |
+
"requires": {
|
688 |
+
"gaze": "0.5.2"
|
689 |
+
}
|
690 |
+
},
|
691 |
+
"glob2base": {
|
692 |
+
"version": "0.0.12",
|
693 |
+
"resolved": "https://registry.npmjs.org/glob2base/-/glob2base-0.0.12.tgz",
|
694 |
+
"integrity": "sha1-nUGbPijxLoOjYhZKJ3BVkiycDVY=",
|
695 |
+
"requires": {
|
696 |
+
"find-index": "0.1.1"
|
697 |
+
}
|
698 |
+
},
|
699 |
+
"global-modules": {
|
700 |
+
"version": "1.0.0",
|
701 |
+
"resolved": "https://registry.npmjs.org/global-modules/-/global-modules-1.0.0.tgz",
|
702 |
+
"integrity": "sha512-sKzpEkf11GpOFuw0Zzjzmt4B4UZwjOcG757PPvrfhxcLFbq0wpsgpOqxpxtxFiCG4DtG93M6XRVbF2oGdev7bg==",
|
703 |
+
"requires": {
|
704 |
+
"global-prefix": "1.0.2",
|
705 |
+
"is-windows": "1.0.2",
|
706 |
+
"resolve-dir": "1.0.1"
|
707 |
+
}
|
708 |
+
},
|
709 |
+
"global-prefix": {
|
710 |
+
"version": "1.0.2",
|
711 |
+
"resolved": "https://registry.npmjs.org/global-prefix/-/global-prefix-1.0.2.tgz",
|
712 |
+
"integrity": "sha1-2/dDxsFJklk8ZVVoy2btMsASLr4=",
|
713 |
+
"requires": {
|
714 |
+
"expand-tilde": "2.0.2",
|
715 |
+
"homedir-polyfill": "1.0.1",
|
716 |
+
"ini": "1.3.5",
|
717 |
+
"is-windows": "1.0.2",
|
718 |
+
"which": "1.3.1"
|
719 |
+
}
|
720 |
+
},
|
721 |
+
"globby": {
|
722 |
+
"version": "5.0.0",
|
723 |
+
"resolved": "https://registry.npmjs.org/globby/-/globby-5.0.0.tgz",
|
724 |
+
"integrity": "sha1-69hGZ8oNuzMLmbz8aOrCvFQ3Dg0=",
|
725 |
+
"dev": true,
|
726 |
+
"requires": {
|
727 |
+
"array-union": "1.0.2",
|
728 |
+
"arrify": "1.0.1",
|
729 |
+
"glob": "7.1.2",
|
730 |
+
"object-assign": "4.1.1",
|
731 |
+
"pify": "2.3.0",
|
732 |
+
"pinkie-promise": "2.0.1"
|
733 |
+
},
|
734 |
+
"dependencies": {
|
735 |
+
"glob": {
|
736 |
+
"version": "7.1.2",
|
737 |
+
"resolved": "https://registry.npmjs.org/glob/-/glob-7.1.2.tgz",
|
738 |
+
"integrity": "sha512-MJTUg1kjuLeQCJ+ccE4Vpa6kKVXkPYJ2mOCQyUuKLcLQsdrMCpBPUi8qVE6+YuaJkozeA9NusTAw3hLr8Xe5EQ==",
|
739 |
+
"dev": true,
|
740 |
+
"requires": {
|
741 |
+
"fs.realpath": "1.0.0",
|
742 |
+
"inflight": "1.0.6",
|
743 |
+
"inherits": "2.0.3",
|
744 |
+
"minimatch": "3.0.4",
|
745 |
+
"once": "1.3.3",
|
746 |
+
"path-is-absolute": "1.0.1"
|
747 |
+
}
|
748 |
+
},
|
749 |
+
"minimatch": {
|
750 |
+
"version": "3.0.4",
|
751 |
+
"resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.0.4.tgz",
|
752 |
+
"integrity": "sha512-yJHVQEhyqPLUTgt9B83PXu6W3rx4MvvHvSUvToogpwoGDOUQ+yDrR0HRot+yOCdCO7u4hX3pWft6kWBBcqh0UA==",
|
753 |
+
"dev": true,
|
754 |
+
"requires": {
|
755 |
+
"brace-expansion": "1.1.11"
|
756 |
+
}
|
757 |
+
},
|
758 |
+
"object-assign": {
|
759 |
+
"version": "4.1.1",
|
760 |
+
"resolved": "https://registry.npmjs.org/object-assign/-/object-assign-4.1.1.tgz",
|
761 |
+
"integrity": "sha1-IQmtx5ZYh8/AXLvUQsrIv7s2CGM=",
|
762 |
+
"dev": true
|
763 |
+
}
|
764 |
+
}
|
765 |
+
},
|
766 |
+
"globule": {
|
767 |
+
"version": "0.1.0",
|
768 |
+
"resolved": "https://registry.npmjs.org/globule/-/globule-0.1.0.tgz",
|
769 |
+
"integrity": "sha1-2cjt3h2nnRJaFRt5UzuXhnY0auU=",
|
770 |
+
"requires": {
|
771 |
+
"glob": "3.1.21",
|
772 |
+
"lodash": "1.0.2",
|
773 |
+
"minimatch": "0.2.14"
|
774 |
+
},
|
775 |
+
"dependencies": {
|
776 |
+
"glob": {
|
777 |
+
"version": "3.1.21",
|
778 |
+
"resolved": "https://registry.npmjs.org/glob/-/glob-3.1.21.tgz",
|
779 |
+
"integrity": "sha1-0p4KBV3qUTj00H7UDomC6DwgZs0=",
|
780 |
+
"requires": {
|
781 |
+
"graceful-fs": "1.2.3",
|
782 |
+
"inherits": "1.0.2",
|
783 |
+
"minimatch": "0.2.14"
|
784 |
+
}
|
785 |
+
},
|
786 |
+
"graceful-fs": {
|
787 |
+
"version": "1.2.3",
|
788 |
+
"resolved": "https://registry.npmjs.org/graceful-fs/-/graceful-fs-1.2.3.tgz",
|
789 |
+
"integrity": "sha1-FaSAaldUfLLS2/J/QuiajDRRs2Q="
|
790 |
+
},
|
791 |
+
"inherits": {
|
792 |
+
"version": "1.0.2",
|
793 |
+
"resolved": "https://registry.npmjs.org/inherits/-/inherits-1.0.2.tgz",
|
794 |
+
"integrity": "sha1-ykMJ2t7mtUzAuNJH6NfHoJdb3Js="
|
795 |
+
},
|
796 |
+
"minimatch": {
|
797 |
+
"version": "0.2.14",
|
798 |
+
"resolved": "https://registry.npmjs.org/minimatch/-/minimatch-0.2.14.tgz",
|
799 |
+
"integrity": "sha1-x054BXT2PG+aCQ6Q775u9TpqdWo=",
|
800 |
+
"requires": {
|
801 |
+
"lru-cache": "2.7.3",
|
802 |
+
"sigmund": "1.0.1"
|
803 |
+
}
|
804 |
+
}
|
805 |
+
}
|
806 |
+
},
|
807 |
+
"glogg": {
|
808 |
+
"version": "1.0.1",
|
809 |
+
"resolved": "https://registry.npmjs.org/glogg/-/glogg-1.0.1.tgz",
|
810 |
+
"integrity": "sha512-ynYqXLoluBKf9XGR1gA59yEJisIL7YHEH4xr3ZziHB5/yl4qWfaK8Js9jGe6gBGCSCKVqiyO30WnRZADvemUNw==",
|
811 |
+
"requires": {
|
812 |
+
"sparkles": "1.0.1"
|
813 |
+
}
|
814 |
+
},
|
815 |
+
"graceful-fs": {
|
816 |
+
"version": "3.0.11",
|
817 |
+
"resolved": "https://registry.npmjs.org/graceful-fs/-/graceful-fs-3.0.11.tgz",
|
818 |
+
"integrity": "sha1-dhPHeKGv6mLyXGMKCG1/Osu92Bg=",
|
819 |
+
"requires": {
|
820 |
+
"natives": "1.1.4"
|
821 |
+
}
|
822 |
+
},
|
823 |
+
"gulp": {
|
824 |
+
"version": "3.9.1",
|
825 |
+
"resolved": "https://registry.npmjs.org/gulp/-/gulp-3.9.1.tgz",
|
826 |
+
"integrity": "sha1-VxzkWSjdQK9lFPxAEYZgFsE4RbQ=",
|
827 |
+
"requires": {
|
828 |
+
"archy": "1.0.0",
|
829 |
+
"chalk": "1.1.3",
|
830 |
+
"deprecated": "0.0.1",
|
831 |
+
"gulp-util": "3.0.8",
|
832 |
+
"interpret": "1.1.0",
|
833 |
+
"liftoff": "2.5.0",
|
834 |
+
"minimist": "1.2.0",
|
835 |
+
"orchestrator": "0.3.8",
|
836 |
+
"pretty-hrtime": "1.0.3",
|
837 |
+
"semver": "4.3.6",
|
838 |
+
"tildify": "1.2.0",
|
839 |
+
"v8flags": "2.1.1",
|
840 |
+
"vinyl-fs": "0.3.14"
|
841 |
+
}
|
842 |
+
},
|
843 |
+
"gulp-string-replace": {
|
844 |
+
"version": "0.4.0",
|
845 |
+
"resolved": "https://registry.npmjs.org/gulp-string-replace/-/gulp-string-replace-0.4.0.tgz",
|
846 |
+
"integrity": "sha1-4K+LN+LUxQ+RXW021tly/vZE9xY=",
|
847 |
+
"dev": true,
|
848 |
+
"requires": {
|
849 |
+
"extend": "3.0.1",
|
850 |
+
"gulp-util": "3.0.8",
|
851 |
+
"replacestream": "4.0.3",
|
852 |
+
"through2": "2.0.3"
|
853 |
+
}
|
854 |
+
},
|
855 |
+
"gulp-util": {
|
856 |
+
"version": "3.0.8",
|
857 |
+
"resolved": "https://registry.npmjs.org/gulp-util/-/gulp-util-3.0.8.tgz",
|
858 |
+
"integrity": "sha1-AFTh50RQLifATBh8PsxQXdVLu08=",
|
859 |
+
"requires": {
|
860 |
+
"array-differ": "1.0.0",
|
861 |
+
"array-uniq": "1.0.3",
|
862 |
+
"beeper": "1.1.1",
|
863 |
+
"chalk": "1.1.3",
|
864 |
+
"dateformat": "2.2.0",
|
865 |
+
"fancy-log": "1.3.2",
|
866 |
+
"gulplog": "1.0.0",
|
867 |
+
"has-gulplog": "0.1.0",
|
868 |
+
"lodash._reescape": "3.0.0",
|
869 |
+
"lodash._reevaluate": "3.0.0",
|
870 |
+
"lodash._reinterpolate": "3.0.0",
|
871 |
+
"lodash.template": "3.6.2",
|
872 |
+
"minimist": "1.2.0",
|
873 |
+
"multipipe": "0.1.2",
|
874 |
+
"object-assign": "3.0.0",
|
875 |
+
"replace-ext": "0.0.1",
|
876 |
+
"through2": "2.0.3",
|
877 |
+
"vinyl": "0.5.3"
|
878 |
+
}
|
879 |
+
},
|
880 |
+
"gulplog": {
|
881 |
+
"version": "1.0.0",
|
882 |
+
"resolved": "https://registry.npmjs.org/gulplog/-/gulplog-1.0.0.tgz",
|
883 |
+
"integrity": "sha1-4oxNRdBey77YGDY86PnFkmIp/+U=",
|
884 |
+
"requires": {
|
885 |
+
"glogg": "1.0.1"
|
886 |
+
}
|
887 |
+
},
|
888 |
+
"has-ansi": {
|
889 |
+
"version": "2.0.0",
|
890 |
+
"resolved": "https://registry.npmjs.org/has-ansi/-/has-ansi-2.0.0.tgz",
|
891 |
+
"integrity": "sha1-NPUEnOHs3ysGSa8+8k5F7TVBbZE=",
|
892 |
+
"requires": {
|
893 |
+
"ansi-regex": "2.1.1"
|
894 |
+
}
|
895 |
+
},
|
896 |
+
"has-gulplog": {
|
897 |
+
"version": "0.1.0",
|
898 |
+
"resolved": "https://registry.npmjs.org/has-gulplog/-/has-gulplog-0.1.0.tgz",
|
899 |
+
"integrity": "sha1-ZBTIKRNpfaUVkDl9r7EvIpZ4Ec4=",
|
900 |
+
"requires": {
|
901 |
+
"sparkles": "1.0.1"
|
902 |
+
}
|
903 |
+
},
|
904 |
+
"has-value": {
|
905 |
+
"version": "1.0.0",
|
906 |
+
"resolved": "https://registry.npmjs.org/has-value/-/has-value-1.0.0.tgz",
|
907 |
+
"integrity": "sha1-GLKB2lhbHFxR3vJMkw7SmgvmsXc=",
|
908 |
+
"requires": {
|
909 |
+
"get-value": "2.0.6",
|
910 |
+
"has-values": "1.0.0",
|
911 |
+
"isobject": "3.0.1"
|
912 |
+
}
|
913 |
+
},
|
914 |
+
"has-values": {
|
915 |
+
"version": "1.0.0",
|
916 |
+
"resolved": "https://registry.npmjs.org/has-values/-/has-values-1.0.0.tgz",
|
917 |
+
"integrity": "sha1-lbC2P+whRmGab+V/51Yo1aOe/k8=",
|
918 |
+
"requires": {
|
919 |
+
"is-number": "3.0.0",
|
920 |
+
"kind-of": "4.0.0"
|
921 |
+
},
|
922 |
+
"dependencies": {
|
923 |
+
"kind-of": {
|
924 |
+
"version": "4.0.0",
|
925 |
+
"resolved": "https://registry.npmjs.org/kind-of/-/kind-of-4.0.0.tgz",
|
926 |
+
"integrity": "sha1-IIE989cSkosgc3hpGkUGb65y3Vc=",
|
927 |
+
"requires": {
|
928 |
+
"is-buffer": "1.1.6"
|
929 |
+
}
|
930 |
+
}
|
931 |
+
}
|
932 |
+
},
|
933 |
+
"homedir-polyfill": {
|
934 |
+
"version": "1.0.1",
|
935 |
+
"resolved": "https://registry.npmjs.org/homedir-polyfill/-/homedir-polyfill-1.0.1.tgz",
|
936 |
+
"integrity": "sha1-TCu8inWJmP7r9e1oWA921GdotLw=",
|
937 |
+
"requires": {
|
938 |
+
"parse-passwd": "1.0.0"
|
939 |
+
}
|
940 |
+
},
|
941 |
+
"inflight": {
|
942 |
+
"version": "1.0.6",
|
943 |
+
"resolved": "https://registry.npmjs.org/inflight/-/inflight-1.0.6.tgz",
|
944 |
+
"integrity": "sha1-Sb1jMdfQLQwJvJEKEHW6gWW1bfk=",
|
945 |
+
"requires": {
|
946 |
+
"once": "1.3.3",
|
947 |
+
"wrappy": "1.0.2"
|
948 |
+
}
|
949 |
+
},
|
950 |
+
"inherits": {
|
951 |
+
"version": "2.0.3",
|
952 |
+
"resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.3.tgz",
|
953 |
+
"integrity": "sha1-Yzwsg+PaQqUC9SRmAiSA9CCCYd4="
|
954 |
+
},
|
955 |
+
"ini": {
|
956 |
+
"version": "1.3.5",
|
957 |
+
"resolved": "https://registry.npmjs.org/ini/-/ini-1.3.5.tgz",
|
958 |
+
"integrity": "sha512-RZY5huIKCMRWDUqZlEi72f/lmXKMvuszcMBduliQ3nnWbx9X/ZBQO7DijMEYS9EhHBb2qacRUMtC7svLwe0lcw=="
|
959 |
+
},
|
960 |
+
"interpret": {
|
961 |
+
"version": "1.1.0",
|
962 |
+
"resolved": "https://registry.npmjs.org/interpret/-/interpret-1.1.0.tgz",
|
963 |
+
"integrity": "sha1-ftGxQQxqDg94z5XTuEQMY/eLhhQ="
|
964 |
+
},
|
965 |
+
"is-absolute": {
|
966 |
+
"version": "1.0.0",
|
967 |
+
"resolved": "https://registry.npmjs.org/is-absolute/-/is-absolute-1.0.0.tgz",
|
968 |
+
"integrity": "sha512-dOWoqflvcydARa360Gvv18DZ/gRuHKi2NU/wU5X1ZFzdYfH29nkiNZsF3mp4OJ3H4yo9Mx8A/uAGNzpzPN3yBA==",
|
969 |
+
"requires": {
|
970 |
+
"is-relative": "1.0.0",
|
971 |
+
"is-windows": "1.0.2"
|
972 |
+
}
|
973 |
+
},
|
974 |
+
"is-accessor-descriptor": {
|
975 |
+
"version": "0.1.6",
|
976 |
+
"resolved": "https://registry.npmjs.org/is-accessor-descriptor/-/is-accessor-descriptor-0.1.6.tgz",
|
977 |
+
"integrity": "sha1-qeEss66Nh2cn7u84Q/igiXtcmNY=",
|
978 |
+
"requires": {
|
979 |
+
"kind-of": "3.2.2"
|
980 |
+
},
|
981 |
+
"dependencies": {
|
982 |
+
"kind-of": {
|
983 |
+
"version": "3.2.2",
|
984 |
+
"resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz",
|
985 |
+
"integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=",
|
986 |
+
"requires": {
|
987 |
+
"is-buffer": "1.1.6"
|
988 |
+
}
|
989 |
+
}
|
990 |
+
}
|
991 |
+
},
|
992 |
+
"is-buffer": {
|
993 |
+
"version": "1.1.6",
|
994 |
+
"resolved": "https://registry.npmjs.org/is-buffer/-/is-buffer-1.1.6.tgz",
|
995 |
+
"integrity": "sha512-NcdALwpXkTm5Zvvbk7owOUSvVvBKDgKP5/ewfXEznmQFfs4ZRmanOeKBTjRVjka3QFoN6XJ+9F3USqfHqTaU5w=="
|
996 |
+
},
|
997 |
+
"is-data-descriptor": {
|
998 |
+
"version": "0.1.4",
|
999 |
+
"resolved": "https://registry.npmjs.org/is-data-descriptor/-/is-data-descriptor-0.1.4.tgz",
|
1000 |
+
"integrity": "sha1-C17mSDiOLIYCgueT8YVv7D8wG1Y=",
|
1001 |
+
"requires": {
|
1002 |
+
"kind-of": "3.2.2"
|
1003 |
+
},
|
1004 |
+
"dependencies": {
|
1005 |
+
"kind-of": {
|
1006 |
+
"version": "3.2.2",
|
1007 |
+
"resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz",
|
1008 |
+
"integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=",
|
1009 |
+
"requires": {
|
1010 |
+
"is-buffer": "1.1.6"
|
1011 |
+
}
|
1012 |
+
}
|
1013 |
+
}
|
1014 |
+
},
|
1015 |
+
"is-descriptor": {
|
1016 |
+
"version": "0.1.6",
|
1017 |
+
"resolved": "https://registry.npmjs.org/is-descriptor/-/is-descriptor-0.1.6.tgz",
|
1018 |
+
"integrity": "sha512-avDYr0SB3DwO9zsMov0gKCESFYqCnE4hq/4z3TdUlukEy5t9C0YRq7HLrsN52NAcqXKaepeCD0n+B0arnVG3Hg==",
|
1019 |
+
"requires": {
|
1020 |
+
"is-accessor-descriptor": "0.1.6",
|
1021 |
+
"is-data-descriptor": "0.1.4",
|
1022 |
+
"kind-of": "5.1.0"
|
1023 |
+
},
|
1024 |
+
"dependencies": {
|
1025 |
+
"kind-of": {
|
1026 |
+
"version": "5.1.0",
|
1027 |
+
"resolved": "https://registry.npmjs.org/kind-of/-/kind-of-5.1.0.tgz",
|
1028 |
+
"integrity": "sha512-NGEErnH6F2vUuXDh+OlbcKW7/wOcfdRHaZ7VWtqCztfHri/++YKmP51OdWeGPuqCOba6kk2OTe5d02VmTB80Pw=="
|
1029 |
+
}
|
1030 |
+
}
|
1031 |
+
},
|
1032 |
+
"is-extendable": {
|
1033 |
+
"version": "0.1.1",
|
1034 |
+
"resolved": "https://registry.npmjs.org/is-extendable/-/is-extendable-0.1.1.tgz",
|
1035 |
+
"integrity": "sha1-YrEQ4omkcUGOPsNqYX1HLjAd/Ik="
|
1036 |
+
},
|
1037 |
+
"is-extglob": {
|
1038 |
+
"version": "2.1.1",
|
1039 |
+
"resolved": "https://registry.npmjs.org/is-extglob/-/is-extglob-2.1.1.tgz",
|
1040 |
+
"integrity": "sha1-qIwCU1eR8C7TfHahueqXc8gz+MI="
|
1041 |
+
},
|
1042 |
+
"is-glob": {
|
1043 |
+
"version": "3.1.0",
|
1044 |
+
"resolved": "https://registry.npmjs.org/is-glob/-/is-glob-3.1.0.tgz",
|
1045 |
+
"integrity": "sha1-e6WuJCF4BKxwcHuWkiVnSGzD6Eo=",
|
1046 |
+
"requires": {
|
1047 |
+
"is-extglob": "2.1.1"
|
1048 |
+
}
|
1049 |
+
},
|
1050 |
+
"is-number": {
|
1051 |
+
"version": "3.0.0",
|
1052 |
+
"resolved": "https://registry.npmjs.org/is-number/-/is-number-3.0.0.tgz",
|
1053 |
+
"integrity": "sha1-JP1iAaR4LPUFYcgQJ2r8fRLXEZU=",
|
1054 |
+
"requires": {
|
1055 |
+
"kind-of": "3.2.2"
|
1056 |
+
},
|
1057 |
+
"dependencies": {
|
1058 |
+
"kind-of": {
|
1059 |
+
"version": "3.2.2",
|
1060 |
+
"resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz",
|
1061 |
+
"integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=",
|
1062 |
+
"requires": {
|
1063 |
+
"is-buffer": "1.1.6"
|
1064 |
+
}
|
1065 |
+
}
|
1066 |
+
}
|
1067 |
+
},
|
1068 |
+
"is-odd": {
|
1069 |
+
"version": "2.0.0",
|
1070 |
+
"resolved": "https://registry.npmjs.org/is-odd/-/is-odd-2.0.0.tgz",
|
1071 |
+
"integrity": "sha512-OTiixgpZAT1M4NHgS5IguFp/Vz2VI3U7Goh4/HA1adtwyLtSBrxYlcSYkhpAE07s4fKEcjrFxyvtQBND4vFQyQ==",
|
1072 |
+
"requires": {
|
1073 |
+
"is-number": "4.0.0"
|
1074 |
+
},
|
1075 |
+
"dependencies": {
|
1076 |
+
"is-number": {
|
1077 |
+
"version": "4.0.0",
|
1078 |
+
"resolved": "https://registry.npmjs.org/is-number/-/is-number-4.0.0.tgz",
|
1079 |
+
"integrity": "sha512-rSklcAIlf1OmFdyAqbnWTLVelsQ58uvZ66S/ZyawjWqIviTWCjg2PzVGw8WUA+nNuPTqb4wgA+NszrJ+08LlgQ=="
|
1080 |
+
}
|
1081 |
+
}
|
1082 |
+
},
|
1083 |
+
"is-path-cwd": {
|
1084 |
+
"version": "1.0.0",
|
1085 |
+
"resolved": "https://registry.npmjs.org/is-path-cwd/-/is-path-cwd-1.0.0.tgz",
|
1086 |
+
"integrity": "sha1-0iXsIxMuie3Tj9p2dHLmLmXxEG0=",
|
1087 |
+
"dev": true
|
1088 |
+
},
|
1089 |
+
"is-path-in-cwd": {
|
1090 |
+
"version": "1.0.1",
|
1091 |
+
"resolved": "https://registry.npmjs.org/is-path-in-cwd/-/is-path-in-cwd-1.0.1.tgz",
|
1092 |
+
"integrity": "sha512-FjV1RTW48E7CWM7eE/J2NJvAEEVektecDBVBE5Hh3nM1Jd0kvhHtX68Pr3xsDf857xt3Y4AkwVULK1Vku62aaQ==",
|
1093 |
+
"dev": true,
|
1094 |
+
"requires": {
|
1095 |
+
"is-path-inside": "1.0.1"
|
1096 |
+
}
|
1097 |
+
},
|
1098 |
+
"is-path-inside": {
|
1099 |
+
"version": "1.0.1",
|
1100 |
+
"resolved": "https://registry.npmjs.org/is-path-inside/-/is-path-inside-1.0.1.tgz",
|
1101 |
+
"integrity": "sha1-jvW33lBDej/cprToZe96pVy0gDY=",
|
1102 |
+
"dev": true,
|
1103 |
+
"requires": {
|
1104 |
+
"path-is-inside": "1.0.2"
|
1105 |
+
}
|
1106 |
+
},
|
1107 |
+
"is-plain-object": {
|
1108 |
+
"version": "2.0.4",
|
1109 |
+
"resolved": "https://registry.npmjs.org/is-plain-object/-/is-plain-object-2.0.4.tgz",
|
1110 |
+
"integrity": "sha512-h5PpgXkWitc38BBMYawTYMWJHFZJVnBquFE57xFpjB8pJFiF6gZ+bU+WyI/yqXiFR5mdLsgYNaPe8uao6Uv9Og==",
|
1111 |
+
"requires": {
|
1112 |
+
"isobject": "3.0.1"
|
1113 |
+
}
|
1114 |
+
},
|
1115 |
+
"is-relative": {
|
1116 |
+
"version": "1.0.0",
|
1117 |
+
"resolved": "https://registry.npmjs.org/is-relative/-/is-relative-1.0.0.tgz",
|
1118 |
+
"integrity": "sha512-Kw/ReK0iqwKeu0MITLFuj0jbPAmEiOsIwyIXvvbfa6QfmN9pkD1M+8pdk7Rl/dTKbH34/XBFMbgD4iMJhLQbGA==",
|
1119 |
+
"requires": {
|
1120 |
+
"is-unc-path": "1.0.0"
|
1121 |
+
}
|
1122 |
+
},
|
1123 |
+
"is-unc-path": {
|
1124 |
+
"version": "1.0.0",
|
1125 |
+
"resolved": "https://registry.npmjs.org/is-unc-path/-/is-unc-path-1.0.0.tgz",
|
1126 |
+
"integrity": "sha512-mrGpVd0fs7WWLfVsStvgF6iEJnbjDFZh9/emhRDcGWTduTfNHd9CHeUwH3gYIjdbwo4On6hunkztwOaAw0yllQ==",
|
1127 |
+
"requires": {
|
1128 |
+
"unc-path-regex": "0.1.2"
|
1129 |
+
}
|
1130 |
+
},
|
1131 |
+
"is-utf8": {
|
1132 |
+
"version": "0.2.1",
|
1133 |
+
"resolved": "https://registry.npmjs.org/is-utf8/-/is-utf8-0.2.1.tgz",
|
1134 |
+
"integrity": "sha1-Sw2hRCEE0bM2NA6AeX6GXPOffXI="
|
1135 |
+
},
|
1136 |
+
"is-windows": {
|
1137 |
+
"version": "1.0.2",
|
1138 |
+
"resolved": "https://registry.npmjs.org/is-windows/-/is-windows-1.0.2.tgz",
|
1139 |
+
"integrity": "sha512-eXK1UInq2bPmjyX6e3VHIzMLobc4J94i4AWn+Hpq3OU5KkrRC96OAcR3PRJ/pGu6m8TRnBHP9dkXQVsT/COVIA=="
|
1140 |
+
},
|
1141 |
+
"isarray": {
|
1142 |
+
"version": "0.0.1",
|
1143 |
+
"resolved": "https://registry.npmjs.org/isarray/-/isarray-0.0.1.tgz",
|
1144 |
+
"integrity": "sha1-ihis/Kmo9Bd+Cav8YDiTmwXR7t8="
|
1145 |
+
},
|
1146 |
+
"isexe": {
|
1147 |
+
"version": "2.0.0",
|
1148 |
+
"resolved": "https://registry.npmjs.org/isexe/-/isexe-2.0.0.tgz",
|
1149 |
+
"integrity": "sha1-6PvzdNxVb/iUehDcsFctYz8s+hA="
|
1150 |
+
},
|
1151 |
+
"isobject": {
|
1152 |
+
"version": "3.0.1",
|
1153 |
+
"resolved": "https://registry.npmjs.org/isobject/-/isobject-3.0.1.tgz",
|
1154 |
+
"integrity": "sha1-TkMekrEalzFjaqH5yNHMvP2reN8="
|
1155 |
+
},
|
1156 |
+
"kind-of": {
|
1157 |
+
"version": "6.0.2",
|
1158 |
+
"resolved": "https://registry.npmjs.org/kind-of/-/kind-of-6.0.2.tgz",
|
1159 |
+
"integrity": "sha512-s5kLOcnH0XqDO+FvuaLX8DDjZ18CGFk7VygH40QoKPUQhW4e2rvM0rwUq0t8IQDOwYSeLK01U90OjzBTme2QqA=="
|
1160 |
+
},
|
1161 |
+
"liftoff": {
|
1162 |
+
"version": "2.5.0",
|
1163 |
+
"resolved": "https://registry.npmjs.org/liftoff/-/liftoff-2.5.0.tgz",
|
1164 |
+
"integrity": "sha1-IAkpG7Mc6oYbvxCnwVooyvdcMew=",
|
1165 |
+
"requires": {
|
1166 |
+
"extend": "3.0.1",
|
1167 |
+
"findup-sync": "2.0.0",
|
1168 |
+
"fined": "1.1.0",
|
1169 |
+
"flagged-respawn": "1.0.0",
|
1170 |
+
"is-plain-object": "2.0.4",
|
1171 |
+
"object.map": "1.0.1",
|
1172 |
+
"rechoir": "0.6.2",
|
1173 |
+
"resolve": "1.7.1"
|
1174 |
+
}
|
1175 |
+
},
|
1176 |
+
"lodash": {
|
1177 |
+
"version": "1.0.2",
|
1178 |
+
"resolved": "https://registry.npmjs.org/lodash/-/lodash-1.0.2.tgz",
|
1179 |
+
"integrity": "sha1-j1dWDIO1n8JwvT1WG2kAQ0MOJVE="
|
1180 |
+
},
|
1181 |
+
"lodash._basecopy": {
|
1182 |
+
"version": "3.0.1",
|
1183 |
+
"resolved": "https://registry.npmjs.org/lodash._basecopy/-/lodash._basecopy-3.0.1.tgz",
|
1184 |
+
"integrity": "sha1-jaDmqHbPNEwK2KVIghEd08XHyjY="
|
1185 |
+
},
|
1186 |
+
"lodash._basetostring": {
|
1187 |
+
"version": "3.0.1",
|
1188 |
+
"resolved": "https://registry.npmjs.org/lodash._basetostring/-/lodash._basetostring-3.0.1.tgz",
|
1189 |
+
"integrity": "sha1-0YYdh3+CSlL2aYMtyvPuFVZqB9U="
|
1190 |
+
},
|
1191 |
+
"lodash._basevalues": {
|
1192 |
+
"version": "3.0.0",
|
1193 |
+
"resolved": "https://registry.npmjs.org/lodash._basevalues/-/lodash._basevalues-3.0.0.tgz",
|
1194 |
+
"integrity": "sha1-W3dXYoAr3j0yl1A+JjAIIP32Ybc="
|
1195 |
+
},
|
1196 |
+
"lodash._getnative": {
|
1197 |
+
"version": "3.9.1",
|
1198 |
+
"resolved": "https://registry.npmjs.org/lodash._getnative/-/lodash._getnative-3.9.1.tgz",
|
1199 |
+
"integrity": "sha1-VwvH3t5G1hzc3mh9ZdPuy6o6r/U="
|
1200 |
+
},
|
1201 |
+
"lodash._isiterateecall": {
|
1202 |
+
"version": "3.0.9",
|
1203 |
+
"resolved": "https://registry.npmjs.org/lodash._isiterateecall/-/lodash._isiterateecall-3.0.9.tgz",
|
1204 |
+
"integrity": "sha1-UgOte6Ql+uhCRg5pbbnPPmqsBXw="
|
1205 |
+
},
|
1206 |
+
"lodash._reescape": {
|
1207 |
+
"version": "3.0.0",
|
1208 |
+
"resolved": "https://registry.npmjs.org/lodash._reescape/-/lodash._reescape-3.0.0.tgz",
|
1209 |
+
"integrity": "sha1-Kx1vXf4HyKNVdT5fJ/rH8c3hYWo="
|
1210 |
+
},
|
1211 |
+
"lodash._reevaluate": {
|
1212 |
+
"version": "3.0.0",
|
1213 |
+
"resolved": "https://registry.npmjs.org/lodash._reevaluate/-/lodash._reevaluate-3.0.0.tgz",
|
1214 |
+
"integrity": "sha1-WLx0xAZklTrgsSTYBpltrKQx4u0="
|
1215 |
+
},
|
1216 |
+
"lodash._reinterpolate": {
|
1217 |
+
"version": "3.0.0",
|
1218 |
+
"resolved": "https://registry.npmjs.org/lodash._reinterpolate/-/lodash._reinterpolate-3.0.0.tgz",
|
1219 |
+
"integrity": "sha1-DM8tiRZq8Ds2Y8eWU4t1rG4RTZ0="
|
1220 |
+
},
|
1221 |
+
"lodash._root": {
|
1222 |
+
"version": "3.0.1",
|
1223 |
+
"resolved": "https://registry.npmjs.org/lodash._root/-/lodash._root-3.0.1.tgz",
|
1224 |
+
"integrity": "sha1-+6HEUkwZ7ppfgTa0YJ8BfPTe1pI="
|
1225 |
+
},
|
1226 |
+
"lodash.escape": {
|
1227 |
+
"version": "3.2.0",
|
1228 |
+
"resolved": "https://registry.npmjs.org/lodash.escape/-/lodash.escape-3.2.0.tgz",
|
1229 |
+
"integrity": "sha1-mV7g3BjBtIzJLv+ucaEKq1tIdpg=",
|
1230 |
+
"requires": {
|
1231 |
+
"lodash._root": "3.0.1"
|
1232 |
+
}
|
1233 |
+
},
|
1234 |
+
"lodash.isarguments": {
|
1235 |
+
"version": "3.1.0",
|
1236 |
+
"resolved": "https://registry.npmjs.org/lodash.isarguments/-/lodash.isarguments-3.1.0.tgz",
|
1237 |
+
"integrity": "sha1-L1c9hcaiQon/AGY7SRwdM4/zRYo="
|
1238 |
+
},
|
1239 |
+
"lodash.isarray": {
|
1240 |
+
"version": "3.0.4",
|
1241 |
+
"resolved": "https://registry.npmjs.org/lodash.isarray/-/lodash.isarray-3.0.4.tgz",
|
1242 |
+
"integrity": "sha1-eeTriMNqgSKvhvhEqpvNhRtfu1U="
|
1243 |
+
},
|
1244 |
+
"lodash.keys": {
|
1245 |
+
"version": "3.1.2",
|
1246 |
+
"resolved": "https://registry.npmjs.org/lodash.keys/-/lodash.keys-3.1.2.tgz",
|
1247 |
+
"integrity": "sha1-TbwEcrFWvlCgsoaFXRvQsMZWCYo=",
|
1248 |
+
"requires": {
|
1249 |
+
"lodash._getnative": "3.9.1",
|
1250 |
+
"lodash.isarguments": "3.1.0",
|
1251 |
+
"lodash.isarray": "3.0.4"
|
1252 |
+
}
|
1253 |
+
},
|
1254 |
+
"lodash.restparam": {
|
1255 |
+
"version": "3.6.1",
|
1256 |
+
"resolved": "https://registry.npmjs.org/lodash.restparam/-/lodash.restparam-3.6.1.tgz",
|
1257 |
+
"integrity": "sha1-k2pOMJ7zMKdkXtQUWYbIWuWyCAU="
|
1258 |
+
},
|
1259 |
+
"lodash.template": {
|
1260 |
+
"version": "3.6.2",
|
1261 |
+
"resolved": "https://registry.npmjs.org/lodash.template/-/lodash.template-3.6.2.tgz",
|
1262 |
+
"integrity": "sha1-+M3sxhaaJVvpCYrosMU9N4kx0U8=",
|
1263 |
+
"requires": {
|
1264 |
+
"lodash._basecopy": "3.0.1",
|
1265 |
+
"lodash._basetostring": "3.0.1",
|
1266 |
+
"lodash._basevalues": "3.0.0",
|
1267 |
+
"lodash._isiterateecall": "3.0.9",
|
1268 |
+
"lodash._reinterpolate": "3.0.0",
|
1269 |
+
"lodash.escape": "3.2.0",
|
1270 |
+
"lodash.keys": "3.1.2",
|
1271 |
+
"lodash.restparam": "3.6.1",
|
1272 |
+
"lodash.templatesettings": "3.1.1"
|
1273 |
+
}
|
1274 |
+
},
|
1275 |
+
"lodash.templatesettings": {
|
1276 |
+
"version": "3.1.1",
|
1277 |
+
"resolved": "https://registry.npmjs.org/lodash.templatesettings/-/lodash.templatesettings-3.1.1.tgz",
|
1278 |
+
"integrity": "sha1-+zB4RHU7Zrnxr6VOJix0UwfbqOU=",
|
1279 |
+
"requires": {
|
1280 |
+
"lodash._reinterpolate": "3.0.0",
|
1281 |
+
"lodash.escape": "3.2.0"
|
1282 |
+
}
|
1283 |
+
},
|
1284 |
+
"lru-cache": {
|
1285 |
+
"version": "2.7.3",
|
1286 |
+
"resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-2.7.3.tgz",
|
1287 |
+
"integrity": "sha1-bUUk6LlV+V1PW1iFHOId1y+06VI="
|
1288 |
+
},
|
1289 |
+
"make-iterator": {
|
1290 |
+
"version": "1.0.1",
|
1291 |
+
"resolved": "https://registry.npmjs.org/make-iterator/-/make-iterator-1.0.1.tgz",
|
1292 |
+
"integrity": "sha512-pxiuXh0iVEq7VM7KMIhs5gxsfxCux2URptUQaXo4iZZJxBAzTPOLE2BumO5dbfVYq/hBJFBR/a1mFDmOx5AGmw==",
|
1293 |
+
"requires": {
|
1294 |
+
"kind-of": "6.0.2"
|
1295 |
+
}
|
1296 |
+
},
|
1297 |
+
"map-cache": {
|
1298 |
+
"version": "0.2.2",
|
1299 |
+
"resolved": "https://registry.npmjs.org/map-cache/-/map-cache-0.2.2.tgz",
|
1300 |
+
"integrity": "sha1-wyq9C9ZSXZsFFkW7TyasXcmKDb8="
|
1301 |
+
},
|
1302 |
+
"map-visit": {
|
1303 |
+
"version": "1.0.0",
|
1304 |
+
"resolved": "https://registry.npmjs.org/map-visit/-/map-visit-1.0.0.tgz",
|
1305 |
+
"integrity": "sha1-7Nyo8TFE5mDxtb1B8S80edmN+48=",
|
1306 |
+
"requires": {
|
1307 |
+
"object-visit": "1.0.1"
|
1308 |
+
}
|
1309 |
+
},
|
1310 |
+
"micromatch": {
|
1311 |
+
"version": "3.1.10",
|
1312 |
+
"resolved": "https://registry.npmjs.org/micromatch/-/micromatch-3.1.10.tgz",
|
1313 |
+
"integrity": "sha512-MWikgl9n9M3w+bpsY3He8L+w9eF9338xRl8IAO5viDizwSzziFEyUzo2xrrloB64ADbTf8uA8vRqqttDTOmccg==",
|
1314 |
+
"requires": {
|
1315 |
+
"arr-diff": "4.0.0",
|
1316 |
+
"array-unique": "0.3.2",
|
1317 |
+
"braces": "2.3.2",
|
1318 |
+
"define-property": "2.0.2",
|
1319 |
+
"extend-shallow": "3.0.2",
|
1320 |
+
"extglob": "2.0.4",
|
1321 |
+
"fragment-cache": "0.2.1",
|
1322 |
+
"kind-of": "6.0.2",
|
1323 |
+
"nanomatch": "1.2.9",
|
1324 |
+
"object.pick": "1.3.0",
|
1325 |
+
"regex-not": "1.0.2",
|
1326 |
+
"snapdragon": "0.8.2",
|
1327 |
+
"to-regex": "3.0.2"
|
1328 |
+
}
|
1329 |
+
},
|
1330 |
+
"minimatch": {
|
1331 |
+
"version": "2.0.10",
|
1332 |
+
"resolved": "https://registry.npmjs.org/minimatch/-/minimatch-2.0.10.tgz",
|
1333 |
+
"integrity": "sha1-jQh8OcazjAAbl/ynzm0OHoCvusc=",
|
1334 |
+
"requires": {
|
1335 |
+
"brace-expansion": "1.1.11"
|
1336 |
+
}
|
1337 |
+
},
|
1338 |
+
"minimist": {
|
1339 |
+
"version": "1.2.0",
|
1340 |
+
"resolved": "https://registry.npmjs.org/minimist/-/minimist-1.2.0.tgz",
|
1341 |
+
"integrity": "sha1-o1AIsg9BOD7sH7kU9M1d95omQoQ="
|
1342 |
+
},
|
1343 |
+
"mixin-deep": {
|
1344 |
+
"version": "1.3.1",
|
1345 |
+
"resolved": "https://registry.npmjs.org/mixin-deep/-/mixin-deep-1.3.1.tgz",
|
1346 |
+
"integrity": "sha512-8ZItLHeEgaqEvd5lYBXfm4EZSFCX29Jb9K+lAHhDKzReKBQKj3R+7NOF6tjqYi9t4oI8VUfaWITJQm86wnXGNQ==",
|
1347 |
+
"requires": {
|
1348 |
+
"for-in": "1.0.2",
|
1349 |
+
"is-extendable": "1.0.1"
|
1350 |
+
},
|
1351 |
+
"dependencies": {
|
1352 |
+
"is-extendable": {
|
1353 |
+
"version": "1.0.1",
|
1354 |
+
"resolved": "https://registry.npmjs.org/is-extendable/-/is-extendable-1.0.1.tgz",
|
1355 |
+
"integrity": "sha512-arnXMxT1hhoKo9k1LZdmlNyJdDDfy2v0fXjFlmok4+i8ul/6WlbVge9bhM74OpNPQPMGUToDtz+KXa1PneJxOA==",
|
1356 |
+
"requires": {
|
1357 |
+
"is-plain-object": "2.0.4"
|
1358 |
+
}
|
1359 |
+
}
|
1360 |
+
}
|
1361 |
+
},
|
1362 |
+
"mkdirp": {
|
1363 |
+
"version": "0.5.1",
|
1364 |
+
"resolved": "https://registry.npmjs.org/mkdirp/-/mkdirp-0.5.1.tgz",
|
1365 |
+
"integrity": "sha1-MAV0OOrGz3+MR2fzhkjWaX11yQM=",
|
1366 |
+
"requires": {
|
1367 |
+
"minimist": "0.0.8"
|
1368 |
+
},
|
1369 |
+
"dependencies": {
|
1370 |
+
"minimist": {
|
1371 |
+
"version": "0.0.8",
|
1372 |
+
"resolved": "https://registry.npmjs.org/minimist/-/minimist-0.0.8.tgz",
|
1373 |
+
"integrity": "sha1-hX/Kv8M5fSYluCKCYuhqp6ARsF0="
|
1374 |
+
}
|
1375 |
+
}
|
1376 |
+
},
|
1377 |
+
"ms": {
|
1378 |
+
"version": "2.0.0",
|
1379 |
+
"resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz",
|
1380 |
+
"integrity": "sha1-VgiurfwAvmwpAd9fmGF4jeDVl8g="
|
1381 |
+
},
|
1382 |
+
"multipipe": {
|
1383 |
+
"version": "0.1.2",
|
1384 |
+
"resolved": "https://registry.npmjs.org/multipipe/-/multipipe-0.1.2.tgz",
|
1385 |
+
"integrity": "sha1-Ko8t33Du1WTf8tV/HhoTfZ8FB4s=",
|
1386 |
+
"requires": {
|
1387 |
+
"duplexer2": "0.0.2"
|
1388 |
+
}
|
1389 |
+
},
|
1390 |
+
"nanomatch": {
|
1391 |
+
"version": "1.2.9",
|
1392 |
+
"resolved": "https://registry.npmjs.org/nanomatch/-/nanomatch-1.2.9.tgz",
|
1393 |
+
"integrity": "sha512-n8R9bS8yQ6eSXaV6jHUpKzD8gLsin02w1HSFiegwrs9E098Ylhw5jdyKPaYqvHknHaSCKTPp7C8dGCQ0q9koXA==",
|
1394 |
+
"requires": {
|
1395 |
+
"arr-diff": "4.0.0",
|
1396 |
+
"array-unique": "0.3.2",
|
1397 |
+
"define-property": "2.0.2",
|
1398 |
+
"extend-shallow": "3.0.2",
|
1399 |
+
"fragment-cache": "0.2.1",
|
1400 |
+
"is-odd": "2.0.0",
|
1401 |
+
"is-windows": "1.0.2",
|
1402 |
+
"kind-of": "6.0.2",
|
1403 |
+
"object.pick": "1.3.0",
|
1404 |
+
"regex-not": "1.0.2",
|
1405 |
+
"snapdragon": "0.8.2",
|
1406 |
+
"to-regex": "3.0.2"
|
1407 |
+
}
|
1408 |
+
},
|
1409 |
+
"natives": {
|
1410 |
+
"version": "1.1.4",
|
1411 |
+
"resolved": "https://registry.npmjs.org/natives/-/natives-1.1.4.tgz",
|
1412 |
+
"integrity": "sha512-Q29yeg9aFKwhLVdkTAejM/HvYG0Y1Am1+HUkFQGn5k2j8GS+v60TVmZh6nujpEAj/qql+wGUrlryO8bF+b1jEg=="
|
1413 |
+
},
|
1414 |
+
"object-assign": {
|
1415 |
+
"version": "3.0.0",
|
1416 |
+
"resolved": "https://registry.npmjs.org/object-assign/-/object-assign-3.0.0.tgz",
|
1417 |
+
"integrity": "sha1-m+3VygiXlJvKR+f/QIBi1Un1h/I="
|
1418 |
+
},
|
1419 |
+
"object-copy": {
|
1420 |
+
"version": "0.1.0",
|
1421 |
+
"resolved": "https://registry.npmjs.org/object-copy/-/object-copy-0.1.0.tgz",
|
1422 |
+
"integrity": "sha1-fn2Fi3gb18mRpBupde04EnVOmYw=",
|
1423 |
+
"requires": {
|
1424 |
+
"copy-descriptor": "0.1.1",
|
1425 |
+
"define-property": "0.2.5",
|
1426 |
+
"kind-of": "3.2.2"
|
1427 |
+
},
|
1428 |
+
"dependencies": {
|
1429 |
+
"define-property": {
|
1430 |
+
"version": "0.2.5",
|
1431 |
+
"resolved": "https://registry.npmjs.org/define-property/-/define-property-0.2.5.tgz",
|
1432 |
+
"integrity": "sha1-w1se+RjsPJkPmlvFe+BKrOxcgRY=",
|
1433 |
+
"requires": {
|
1434 |
+
"is-descriptor": "0.1.6"
|
1435 |
+
}
|
1436 |
+
},
|
1437 |
+
"kind-of": {
|
1438 |
+
"version": "3.2.2",
|
1439 |
+
"resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz",
|
1440 |
+
"integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=",
|
1441 |
+
"requires": {
|
1442 |
+
"is-buffer": "1.1.6"
|
1443 |
+
}
|
1444 |
+
}
|
1445 |
+
}
|
1446 |
+
},
|
1447 |
+
"object-visit": {
|
1448 |
+
"version": "1.0.1",
|
1449 |
+
"resolved": "https://registry.npmjs.org/object-visit/-/object-visit-1.0.1.tgz",
|
1450 |
+
"integrity": "sha1-95xEk68MU3e1n+OdOV5BBC3QRbs=",
|
1451 |
+
"requires": {
|
1452 |
+
"isobject": "3.0.1"
|
1453 |
+
}
|
1454 |
+
},
|
1455 |
+
"object.defaults": {
|
1456 |
+
"version": "1.1.0",
|
1457 |
+
"resolved": "https://registry.npmjs.org/object.defaults/-/object.defaults-1.1.0.tgz",
|
1458 |
+
"integrity": "sha1-On+GgzS0B96gbaFtiNXNKeQ1/s8=",
|
1459 |
+
"requires": {
|
1460 |
+
"array-each": "1.0.1",
|
1461 |
+
"array-slice": "1.1.0",
|
1462 |
+
"for-own": "1.0.0",
|
1463 |
+
"isobject": "3.0.1"
|
1464 |
+
}
|
1465 |
+
},
|
1466 |
+
"object.map": {
|
1467 |
+
"version": "1.0.1",
|
1468 |
+
"resolved": "https://registry.npmjs.org/object.map/-/object.map-1.0.1.tgz",
|
1469 |
+
"integrity": "sha1-z4Plncj8wK1fQlDh94s7gb2AHTc=",
|
1470 |
+
"requires": {
|
1471 |
+
"for-own": "1.0.0",
|
1472 |
+
"make-iterator": "1.0.1"
|
1473 |
+
}
|
1474 |
+
},
|
1475 |
+
"object.pick": {
|
1476 |
+
"version": "1.3.0",
|
1477 |
+
"resolved": "https://registry.npmjs.org/object.pick/-/object.pick-1.3.0.tgz",
|
1478 |
+
"integrity": "sha1-h6EKxMFpS9Lhy/U1kaZhQftd10c=",
|
1479 |
+
"requires": {
|
1480 |
+
"isobject": "3.0.1"
|
1481 |
+
}
|
1482 |
+
},
|
1483 |
+
"once": {
|
1484 |
+
"version": "1.3.3",
|
1485 |
+
"resolved": "https://registry.npmjs.org/once/-/once-1.3.3.tgz",
|
1486 |
+
"integrity": "sha1-suJhVXzkwxTsgwTz+oJmPkKXyiA=",
|
1487 |
+
"requires": {
|
1488 |
+
"wrappy": "1.0.2"
|
1489 |
+
}
|
1490 |
+
},
|
1491 |
+
"orchestrator": {
|
1492 |
+
"version": "0.3.8",
|
1493 |
+
"resolved": "https://registry.npmjs.org/orchestrator/-/orchestrator-0.3.8.tgz",
|
1494 |
+
"integrity": "sha1-FOfp4nZPcxX7rBhOUGx6pt+UrX4=",
|
1495 |
+
"requires": {
|
1496 |
+
"end-of-stream": "0.1.5",
|
1497 |
+
"sequencify": "0.0.7",
|
1498 |
+
"stream-consume": "0.1.1"
|
1499 |
+
}
|
1500 |
+
},
|
1501 |
+
"ordered-read-streams": {
|
1502 |
+
"version": "0.1.0",
|
1503 |
+
"resolved": "https://registry.npmjs.org/ordered-read-streams/-/ordered-read-streams-0.1.0.tgz",
|
1504 |
+
"integrity": "sha1-/VZamvjrRHO6abbtijQ1LLVS8SY="
|
1505 |
+
},
|
1506 |
+
"os-homedir": {
|
1507 |
+
"version": "1.0.2",
|
1508 |
+
"resolved": "https://registry.npmjs.org/os-homedir/-/os-homedir-1.0.2.tgz",
|
1509 |
+
"integrity": "sha1-/7xJiDNuDoM94MFox+8VISGqf7M="
|
1510 |
+
},
|
1511 |
+
"parse-filepath": {
|
1512 |
+
"version": "1.0.2",
|
1513 |
+
"resolved": "https://registry.npmjs.org/parse-filepath/-/parse-filepath-1.0.2.tgz",
|
1514 |
+
"integrity": "sha1-pjISf1Oq89FYdvWHLz/6x2PWyJE=",
|
1515 |
+
"requires": {
|
1516 |
+
"is-absolute": "1.0.0",
|
1517 |
+
"map-cache": "0.2.2",
|
1518 |
+
"path-root": "0.1.1"
|
1519 |
+
}
|
1520 |
+
},
|
1521 |
+
"parse-passwd": {
|
1522 |
+
"version": "1.0.0",
|
1523 |
+
"resolved": "https://registry.npmjs.org/parse-passwd/-/parse-passwd-1.0.0.tgz",
|
1524 |
+
"integrity": "sha1-bVuTSkVpk7I9N/QKOC1vFmao5cY="
|
1525 |
+
},
|
1526 |
+
"pascalcase": {
|
1527 |
+
"version": "0.1.1",
|
1528 |
+
"resolved": "https://registry.npmjs.org/pascalcase/-/pascalcase-0.1.1.tgz",
|
1529 |
+
"integrity": "sha1-s2PlXoAGym/iF4TS2yK9FdeRfxQ="
|
1530 |
+
},
|
1531 |
+
"path-is-absolute": {
|
1532 |
+
"version": "1.0.1",
|
1533 |
+
"resolved": "https://registry.npmjs.org/path-is-absolute/-/path-is-absolute-1.0.1.tgz",
|
1534 |
+
"integrity": "sha1-F0uSaHNVNP+8es5r9TpanhtcX18=",
|
1535 |
+
"dev": true
|
1536 |
+
},
|
1537 |
+
"path-is-inside": {
|
1538 |
+
"version": "1.0.2",
|
1539 |
+
"resolved": "https://registry.npmjs.org/path-is-inside/-/path-is-inside-1.0.2.tgz",
|
1540 |
+
"integrity": "sha1-NlQX3t5EQw0cEa9hAn+s8HS9/FM=",
|
1541 |
+
"dev": true
|
1542 |
+
},
|
1543 |
+
"path-parse": {
|
1544 |
+
"version": "1.0.5",
|
1545 |
+
"resolved": "https://registry.npmjs.org/path-parse/-/path-parse-1.0.5.tgz",
|
1546 |
+
"integrity": "sha1-PBrfhx6pzWyUMbbqK9dKD/BVxME="
|
1547 |
+
},
|
1548 |
+
"path-root": {
|
1549 |
+
"version": "0.1.1",
|
1550 |
+
"resolved": "https://registry.npmjs.org/path-root/-/path-root-0.1.1.tgz",
|
1551 |
+
"integrity": "sha1-mkpoFMrBwM1zNgqV8yCDyOpHRbc=",
|
1552 |
+
"requires": {
|
1553 |
+
"path-root-regex": "0.1.2"
|
1554 |
+
}
|
1555 |
+
},
|
1556 |
+
"path-root-regex": {
|
1557 |
+
"version": "0.1.2",
|
1558 |
+
"resolved": "https://registry.npmjs.org/path-root-regex/-/path-root-regex-0.1.2.tgz",
|
1559 |
+
"integrity": "sha1-v8zcjfWxLcUsi0PsONGNcsBLqW0="
|
1560 |
+
},
|
1561 |
+
"pify": {
|
1562 |
+
"version": "2.3.0",
|
1563 |
+
"resolved": "https://registry.npmjs.org/pify/-/pify-2.3.0.tgz",
|
1564 |
+
"integrity": "sha1-7RQaasBDqEnqWISY59yosVMw6Qw=",
|
1565 |
+
"dev": true
|
1566 |
+
},
|
1567 |
+
"pinkie": {
|
1568 |
+
"version": "2.0.4",
|
1569 |
+
"resolved": "https://registry.npmjs.org/pinkie/-/pinkie-2.0.4.tgz",
|
1570 |
+
"integrity": "sha1-clVrgM+g1IqXToDnckjoDtT3+HA=",
|
1571 |
+
"dev": true
|
1572 |
+
},
|
1573 |
+
"pinkie-promise": {
|
1574 |
+
"version": "2.0.1",
|
1575 |
+
"resolved": "https://registry.npmjs.org/pinkie-promise/-/pinkie-promise-2.0.1.tgz",
|
1576 |
+
"integrity": "sha1-ITXW36ejWMBprJsXh3YogihFD/o=",
|
1577 |
+
"dev": true,
|
1578 |
+
"requires": {
|
1579 |
+
"pinkie": "2.0.4"
|
1580 |
+
}
|
1581 |
+
},
|
1582 |
+
"posix-character-classes": {
|
1583 |
+
"version": "0.1.1",
|
1584 |
+
"resolved": "https://registry.npmjs.org/posix-character-classes/-/posix-character-classes-0.1.1.tgz",
|
1585 |
+
"integrity": "sha1-AerA/jta9xoqbAL+q7jB/vfgDqs="
|
1586 |
+
},
|
1587 |
+
"pretty-hrtime": {
|
1588 |
+
"version": "1.0.3",
|
1589 |
+
"resolved": "https://registry.npmjs.org/pretty-hrtime/-/pretty-hrtime-1.0.3.tgz",
|
1590 |
+
"integrity": "sha1-t+PqQkNaTJsnWdmeDyAesZWALuE="
|
1591 |
+
},
|
1592 |
+
"process-nextick-args": {
|
1593 |
+
"version": "2.0.0",
|
1594 |
+
"resolved": "https://registry.npmjs.org/process-nextick-args/-/process-nextick-args-2.0.0.tgz",
|
1595 |
+
"integrity": "sha512-MtEC1TqN0EU5nephaJ4rAtThHtC86dNN9qCuEhtshvpVBkAW5ZO7BASN9REnF9eoXGcRub+pFuKEpOHE+HbEMw=="
|
1596 |
+
},
|
1597 |
+
"readable-stream": {
|
1598 |
+
"version": "1.1.14",
|
1599 |
+
"resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-1.1.14.tgz",
|
1600 |
+
"integrity": "sha1-fPTFTvZI44EwhMY23SB54WbAgdk=",
|
1601 |
+
"requires": {
|
1602 |
+
"core-util-is": "1.0.2",
|
1603 |
+
"inherits": "2.0.3",
|
1604 |
+
"isarray": "0.0.1",
|
1605 |
+
"string_decoder": "0.10.31"
|
1606 |
+
}
|
1607 |
+
},
|
1608 |
+
"rechoir": {
|
1609 |
+
"version": "0.6.2",
|
1610 |
+
"resolved": "https://registry.npmjs.org/rechoir/-/rechoir-0.6.2.tgz",
|
1611 |
+
"integrity": "sha1-hSBLVNuoLVdC4oyWdW70OvUOM4Q=",
|
1612 |
+
"requires": {
|
1613 |
+
"resolve": "1.7.1"
|
1614 |
+
}
|
1615 |
+
},
|
1616 |
+
"regex-not": {
|
1617 |
+
"version": "1.0.2",
|
1618 |
+
"resolved": "https://registry.npmjs.org/regex-not/-/regex-not-1.0.2.tgz",
|
1619 |
+
"integrity": "sha512-J6SDjUgDxQj5NusnOtdFxDwN/+HWykR8GELwctJ7mdqhcyy1xEc4SRFHUXvxTp661YaVKAjfRLZ9cCqS6tn32A==",
|
1620 |
+
"requires": {
|
1621 |
+
"extend-shallow": "3.0.2",
|
1622 |
+
"safe-regex": "1.1.0"
|
1623 |
+
}
|
1624 |
+
},
|
1625 |
+
"repeat-element": {
|
1626 |
+
"version": "1.1.2",
|
1627 |
+
"resolved": "https://registry.npmjs.org/repeat-element/-/repeat-element-1.1.2.tgz",
|
1628 |
+
"integrity": "sha1-7wiaF40Ug7quTZPrmLT55OEdmQo="
|
1629 |
+
},
|
1630 |
+
"repeat-string": {
|
1631 |
+
"version": "1.6.1",
|
1632 |
+
"resolved": "https://registry.npmjs.org/repeat-string/-/repeat-string-1.6.1.tgz",
|
1633 |
+
"integrity": "sha1-jcrkcOHIirwtYA//Sndihtp15jc="
|
1634 |
+
},
|
1635 |
+
"replace-ext": {
|
1636 |
+
"version": "0.0.1",
|
1637 |
+
"resolved": "https://registry.npmjs.org/replace-ext/-/replace-ext-0.0.1.tgz",
|
1638 |
+
"integrity": "sha1-KbvZIHinOfC8zitO5B6DeVNSKSQ="
|
1639 |
+
},
|
1640 |
+
"replacestream": {
|
1641 |
+
"version": "4.0.3",
|
1642 |
+
"resolved": "https://registry.npmjs.org/replacestream/-/replacestream-4.0.3.tgz",
|
1643 |
+
"integrity": "sha512-AC0FiLS352pBBiZhd4VXB1Ab/lh0lEgpP+GGvZqbQh8a5cmXVoTe5EX/YeTFArnp4SRGTHh1qCHu9lGs1qG8sA==",
|
1644 |
+
"dev": true,
|
1645 |
+
"requires": {
|
1646 |
+
"escape-string-regexp": "1.0.5",
|
1647 |
+
"object-assign": "4.1.1",
|
1648 |
+
"readable-stream": "2.3.6"
|
1649 |
+
},
|
1650 |
+
"dependencies": {
|
1651 |
+
"isarray": {
|
1652 |
+
"version": "1.0.0",
|
1653 |
+
"resolved": "https://registry.npmjs.org/isarray/-/isarray-1.0.0.tgz",
|
1654 |
+
"integrity": "sha1-u5NdSFgsuhaMBoNJV6VKPgcSTxE=",
|
1655 |
+
"dev": true
|
1656 |
+
},
|
1657 |
+
"object-assign": {
|
1658 |
+
"version": "4.1.1",
|
1659 |
+
"resolved": "https://registry.npmjs.org/object-assign/-/object-assign-4.1.1.tgz",
|
1660 |
+
"integrity": "sha1-IQmtx5ZYh8/AXLvUQsrIv7s2CGM=",
|
1661 |
+
"dev": true
|
1662 |
+
},
|
1663 |
+
"readable-stream": {
|
1664 |
+
"version": "2.3.6",
|
1665 |
+
"resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-2.3.6.tgz",
|
1666 |
+
"integrity": "sha512-tQtKA9WIAhBF3+VLAseyMqZeBjW0AHJoxOtYqSUZNJxauErmLbVm2FW1y+J/YA9dUrAC39ITejlZWhVIwawkKw==",
|
1667 |
+
"dev": true,
|
1668 |
+
"requires": {
|
1669 |
+
"core-util-is": "1.0.2",
|
1670 |
+
"inherits": "2.0.3",
|
1671 |
+
"isarray": "1.0.0",
|
1672 |
+
"process-nextick-args": "2.0.0",
|
1673 |
+
"safe-buffer": "5.1.2",
|
1674 |
+
"string_decoder": "1.1.1",
|
1675 |
+
"util-deprecate": "1.0.2"
|
1676 |
+
}
|
1677 |
+
},
|
1678 |
+
"string_decoder": {
|
1679 |
+
"version": "1.1.1",
|
1680 |
+
"resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-1.1.1.tgz",
|
1681 |
+
"integrity": "sha512-n/ShnvDi6FHbbVfviro+WojiFzv+s8MPMHBczVePfUpDJLwoLT0ht1l4YwBCbi8pJAveEEdnkHyPyTP/mzRfwg==",
|
1682 |
+
"dev": true,
|
1683 |
+
"requires": {
|
1684 |
+
"safe-buffer": "5.1.2"
|
1685 |
+
}
|
1686 |
+
}
|
1687 |
+
}
|
1688 |
+
},
|
1689 |
+
"resolve": {
|
1690 |
+
"version": "1.7.1",
|
1691 |
+
"resolved": "https://registry.npmjs.org/resolve/-/resolve-1.7.1.tgz",
|
1692 |
+
"integrity": "sha512-c7rwLofp8g1U+h1KNyHL/jicrKg1Ek4q+Lr33AL65uZTinUZHe30D5HlyN5V9NW0JX1D5dXQ4jqW5l7Sy/kGfw==",
|
1693 |
+
"requires": {
|
1694 |
+
"path-parse": "1.0.5"
|
1695 |
+
}
|
1696 |
+
},
|
1697 |
+
"resolve-dir": {
|
1698 |
+
"version": "1.0.1",
|
1699 |
+
"resolved": "https://registry.npmjs.org/resolve-dir/-/resolve-dir-1.0.1.tgz",
|
1700 |
+
"integrity": "sha1-eaQGRMNivoLybv/nOcm7U4IEb0M=",
|
1701 |
+
"requires": {
|
1702 |
+
"expand-tilde": "2.0.2",
|
1703 |
+
"global-modules": "1.0.0"
|
1704 |
+
}
|
1705 |
+
},
|
1706 |
+
"resolve-url": {
|
1707 |
+
"version": "0.2.1",
|
1708 |
+
"resolved": "https://registry.npmjs.org/resolve-url/-/resolve-url-0.2.1.tgz",
|
1709 |
+
"integrity": "sha1-LGN/53yJOv0qZj/iGqkIAGjiBSo="
|
1710 |
+
},
|
1711 |
+
"ret": {
|
1712 |
+
"version": "0.1.15",
|
1713 |
+
"resolved": "https://registry.npmjs.org/ret/-/ret-0.1.15.tgz",
|
1714 |
+
"integrity": "sha512-TTlYpa+OL+vMMNG24xSlQGEJ3B/RzEfUlLct7b5G/ytav+wPrplCpVMFuwzXbkecJrb6IYo1iFb0S9v37754mg=="
|
1715 |
+
},
|
1716 |
+
"rimraf": {
|
1717 |
+
"version": "2.6.2",
|
1718 |
+
"resolved": "https://registry.npmjs.org/rimraf/-/rimraf-2.6.2.tgz",
|
1719 |
+
"integrity": "sha512-lreewLK/BlghmxtfH36YYVg1i8IAce4TI7oao75I1g245+6BctqTVQiBP3YUJ9C6DQOXJmkYR9X9fCLtCOJc5w==",
|
1720 |
+
"dev": true,
|
1721 |
+
"requires": {
|
1722 |
+
"glob": "7.1.2"
|
1723 |
+
},
|
1724 |
+
"dependencies": {
|
1725 |
+
"glob": {
|
1726 |
+
"version": "7.1.2",
|
1727 |
+
"resolved": "https://registry.npmjs.org/glob/-/glob-7.1.2.tgz",
|
1728 |
+
"integrity": "sha512-MJTUg1kjuLeQCJ+ccE4Vpa6kKVXkPYJ2mOCQyUuKLcLQsdrMCpBPUi8qVE6+YuaJkozeA9NusTAw3hLr8Xe5EQ==",
|
1729 |
+
"dev": true,
|
1730 |
+
"requires": {
|
1731 |
+
"fs.realpath": "1.0.0",
|
1732 |
+
"inflight": "1.0.6",
|
1733 |
+
"inherits": "2.0.3",
|
1734 |
+
"minimatch": "3.0.4",
|
1735 |
+
"once": "1.3.3",
|
1736 |
+
"path-is-absolute": "1.0.1"
|
1737 |
+
}
|
1738 |
+
},
|
1739 |
+
"minimatch": {
|
1740 |
+
"version": "3.0.4",
|
1741 |
+
"resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.0.4.tgz",
|
1742 |
+
"integrity": "sha512-yJHVQEhyqPLUTgt9B83PXu6W3rx4MvvHvSUvToogpwoGDOUQ+yDrR0HRot+yOCdCO7u4hX3pWft6kWBBcqh0UA==",
|
1743 |
+
"dev": true,
|
1744 |
+
"requires": {
|
1745 |
+
"brace-expansion": "1.1.11"
|
1746 |
+
}
|
1747 |
+
}
|
1748 |
+
}
|
1749 |
+
},
|
1750 |
+
"safe-buffer": {
|
1751 |
+
"version": "5.1.2",
|
1752 |
+
"resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.1.2.tgz",
|
1753 |
+
"integrity": "sha512-Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g=="
|
1754 |
+
},
|
1755 |
+
"safe-regex": {
|
1756 |
+
"version": "1.1.0",
|
1757 |
+
"resolved": "https://registry.npmjs.org/safe-regex/-/safe-regex-1.1.0.tgz",
|
1758 |
+
"integrity": "sha1-QKNmnzsHfR6UPURinhV91IAjvy4=",
|
1759 |
+
"requires": {
|
1760 |
+
"ret": "0.1.15"
|
1761 |
+
}
|
1762 |
+
},
|
1763 |
+
"semver": {
|
1764 |
+
"version": "4.3.6",
|
1765 |
+
"resolved": "https://registry.npmjs.org/semver/-/semver-4.3.6.tgz",
|
1766 |
+
"integrity": "sha1-MAvG4OhjdPe6YQaLWx7NV/xlMto="
|
1767 |
+
},
|
1768 |
+
"sequencify": {
|
1769 |
+
"version": "0.0.7",
|
1770 |
+
"resolved": "https://registry.npmjs.org/sequencify/-/sequencify-0.0.7.tgz",
|
1771 |
+
"integrity": "sha1-kM/xnQLgcCf9dn9erT57ldHnOAw="
|
1772 |
+
},
|
1773 |
+
"set-value": {
|
1774 |
+
"version": "2.0.0",
|
1775 |
+
"resolved": "https://registry.npmjs.org/set-value/-/set-value-2.0.0.tgz",
|
1776 |
+
"integrity": "sha512-hw0yxk9GT/Hr5yJEYnHNKYXkIA8mVJgd9ditYZCe16ZczcaELYYcfvaXesNACk2O8O0nTiPQcQhGUQj8JLzeeg==",
|
1777 |
+
"requires": {
|
1778 |
+
"extend-shallow": "2.0.1",
|
1779 |
+
"is-extendable": "0.1.1",
|
1780 |
+
"is-plain-object": "2.0.4",
|
1781 |
+
"split-string": "3.1.0"
|
1782 |
+
},
|
1783 |
+
"dependencies": {
|
1784 |
+
"extend-shallow": {
|
1785 |
+
"version": "2.0.1",
|
1786 |
+
"resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-2.0.1.tgz",
|
1787 |
+
"integrity": "sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=",
|
1788 |
+
"requires": {
|
1789 |
+
"is-extendable": "0.1.1"
|
1790 |
+
}
|
1791 |
+
}
|
1792 |
+
}
|
1793 |
+
},
|
1794 |
+
"sigmund": {
|
1795 |
+
"version": "1.0.1",
|
1796 |
+
"resolved": "https://registry.npmjs.org/sigmund/-/sigmund-1.0.1.tgz",
|
1797 |
+
"integrity": "sha1-P/IfGYytIXX587eBhT/ZTQ0ZtZA="
|
1798 |
+
},
|
1799 |
+
"snapdragon": {
|
1800 |
+
"version": "0.8.2",
|
1801 |
+
"resolved": "https://registry.npmjs.org/snapdragon/-/snapdragon-0.8.2.tgz",
|
1802 |
+
"integrity": "sha512-FtyOnWN/wCHTVXOMwvSv26d+ko5vWlIDD6zoUJ7LW8vh+ZBC8QdljveRP+crNrtBwioEUWy/4dMtbBjA4ioNlg==",
|
1803 |
+
"requires": {
|
1804 |
+
"base": "0.11.2",
|
1805 |
+
"debug": "2.6.9",
|
1806 |
+
"define-property": "0.2.5",
|
1807 |
+
"extend-shallow": "2.0.1",
|
1808 |
+
"map-cache": "0.2.2",
|
1809 |
+
"source-map": "0.5.7",
|
1810 |
+
"source-map-resolve": "0.5.2",
|
1811 |
+
"use": "3.1.0"
|
1812 |
+
},
|
1813 |
+
"dependencies": {
|
1814 |
+
"define-property": {
|
1815 |
+
"version": "0.2.5",
|
1816 |
+
"resolved": "https://registry.npmjs.org/define-property/-/define-property-0.2.5.tgz",
|
1817 |
+
"integrity": "sha1-w1se+RjsPJkPmlvFe+BKrOxcgRY=",
|
1818 |
+
"requires": {
|
1819 |
+
"is-descriptor": "0.1.6"
|
1820 |
+
}
|
1821 |
+
},
|
1822 |
+
"extend-shallow": {
|
1823 |
+
"version": "2.0.1",
|
1824 |
+
"resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-2.0.1.tgz",
|
1825 |
+
"integrity": "sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=",
|
1826 |
+
"requires": {
|
1827 |
+
"is-extendable": "0.1.1"
|
1828 |
+
}
|
1829 |
+
}
|
1830 |
+
}
|
1831 |
+
},
|
1832 |
+
"snapdragon-node": {
|
1833 |
+
"version": "2.1.1",
|
1834 |
+
"resolved": "https://registry.npmjs.org/snapdragon-node/-/snapdragon-node-2.1.1.tgz",
|
1835 |
+
"integrity": "sha512-O27l4xaMYt/RSQ5TR3vpWCAB5Kb/czIcqUFOM/C4fYcLnbZUc1PkjTAMjof2pBWaSTwOUd6qUHcFGVGj7aIwnw==",
|
1836 |
+
"requires": {
|
1837 |
+
"define-property": "1.0.0",
|
1838 |
+
"isobject": "3.0.1",
|
1839 |
+
"snapdragon-util": "3.0.1"
|
1840 |
+
},
|
1841 |
+
"dependencies": {
|
1842 |
+
"define-property": {
|
1843 |
+
"version": "1.0.0",
|
1844 |
+
"resolved": "https://registry.npmjs.org/define-property/-/define-property-1.0.0.tgz",
|
1845 |
+
"integrity": "sha1-dp66rz9KY6rTr56NMEybvnm/sOY=",
|
1846 |
+
"requires": {
|
1847 |
+
"is-descriptor": "1.0.2"
|
1848 |
+
}
|
1849 |
+
},
|
1850 |
+
"is-accessor-descriptor": {
|
1851 |
+
"version": "1.0.0",
|
1852 |
+
"resolved": "https://registry.npmjs.org/is-accessor-descriptor/-/is-accessor-descriptor-1.0.0.tgz",
|
1853 |
+
"integrity": "sha512-m5hnHTkcVsPfqx3AKlyttIPb7J+XykHvJP2B9bZDjlhLIoEq4XoK64Vg7boZlVWYK6LUY94dYPEE7Lh0ZkZKcQ==",
|
1854 |
+
"requires": {
|
1855 |
+
"kind-of": "6.0.2"
|
1856 |
+
}
|
1857 |
+
},
|
1858 |
+
"is-data-descriptor": {
|
1859 |
+
"version": "1.0.0",
|
1860 |
+
"resolved": "https://registry.npmjs.org/is-data-descriptor/-/is-data-descriptor-1.0.0.tgz",
|
1861 |
+
"integrity": "sha512-jbRXy1FmtAoCjQkVmIVYwuuqDFUbaOeDjmed1tOGPrsMhtJA4rD9tkgA0F1qJ3gRFRXcHYVkdeaP50Q5rE/jLQ==",
|
1862 |
+
"requires": {
|
1863 |
+
"kind-of": "6.0.2"
|
1864 |
+
}
|
1865 |
+
},
|
1866 |
+
"is-descriptor": {
|
1867 |
+
"version": "1.0.2",
|
1868 |
+
"resolved": "https://registry.npmjs.org/is-descriptor/-/is-descriptor-1.0.2.tgz",
|
1869 |
+
"integrity": "sha512-2eis5WqQGV7peooDyLmNEPUrps9+SXX5c9pL3xEB+4e9HnGuDa7mB7kHxHw4CbqS9k1T2hOH3miL8n8WtiYVtg==",
|
1870 |
+
"requires": {
|
1871 |
+
"is-accessor-descriptor": "1.0.0",
|
1872 |
+
"is-data-descriptor": "1.0.0",
|
1873 |
+
"kind-of": "6.0.2"
|
1874 |
+
}
|
1875 |
+
}
|
1876 |
+
}
|
1877 |
+
},
|
1878 |
+
"snapdragon-util": {
|
1879 |
+
"version": "3.0.1",
|
1880 |
+
"resolved": "https://registry.npmjs.org/snapdragon-util/-/snapdragon-util-3.0.1.tgz",
|
1881 |
+
"integrity": "sha512-mbKkMdQKsjX4BAL4bRYTj21edOf8cN7XHdYUJEe+Zn99hVEYcMvKPct1IqNe7+AZPirn8BCDOQBHQZknqmKlZQ==",
|
1882 |
+
"requires": {
|
1883 |
+
"kind-of": "3.2.2"
|
1884 |
+
},
|
1885 |
+
"dependencies": {
|
1886 |
+
"kind-of": {
|
1887 |
+
"version": "3.2.2",
|
1888 |
+
"resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz",
|
1889 |
+
"integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=",
|
1890 |
+
"requires": {
|
1891 |
+
"is-buffer": "1.1.6"
|
1892 |
+
}
|
1893 |
+
}
|
1894 |
+
}
|
1895 |
+
},
|
1896 |
+
"source-map": {
|
1897 |
+
"version": "0.5.7",
|
1898 |
+
"resolved": "https://registry.npmjs.org/source-map/-/source-map-0.5.7.tgz",
|
1899 |
+
"integrity": "sha1-igOdLRAh0i0eoUyA2OpGi6LvP8w="
|
1900 |
+
},
|
1901 |
+
"source-map-resolve": {
|
1902 |
+
"version": "0.5.2",
|
1903 |
+
"resolved": "https://registry.npmjs.org/source-map-resolve/-/source-map-resolve-0.5.2.tgz",
|
1904 |
+
"integrity": "sha512-MjqsvNwyz1s0k81Goz/9vRBe9SZdB09Bdw+/zYyO+3CuPk6fouTaxscHkgtE8jKvf01kVfl8riHzERQ/kefaSA==",
|
1905 |
+
"requires": {
|
1906 |
+
"atob": "2.1.1",
|
1907 |
+
"decode-uri-component": "0.2.0",
|
1908 |
+
"resolve-url": "0.2.1",
|
1909 |
+
"source-map-url": "0.4.0",
|
1910 |
+
"urix": "0.1.0"
|
1911 |
+
}
|
1912 |
+
},
|
1913 |
+
"source-map-url": {
|
1914 |
+
"version": "0.4.0",
|
1915 |
+
"resolved": "https://registry.npmjs.org/source-map-url/-/source-map-url-0.4.0.tgz",
|
1916 |
+
"integrity": "sha1-PpNdfd1zYxuXZZlW1VEo6HtQhKM="
|
1917 |
+
},
|
1918 |
+
"sparkles": {
|
1919 |
+
"version": "1.0.1",
|
1920 |
+
"resolved": "https://registry.npmjs.org/sparkles/-/sparkles-1.0.1.tgz",
|
1921 |
+
"integrity": "sha512-dSO0DDYUahUt/0/pD/Is3VIm5TGJjludZ0HVymmhYF6eNA53PVLhnUk0znSYbH8IYBuJdCE+1luR22jNLMaQdw=="
|
1922 |
+
},
|
1923 |
+
"split-string": {
|
1924 |
+
"version": "3.1.0",
|
1925 |
+
"resolved": "https://registry.npmjs.org/split-string/-/split-string-3.1.0.tgz",
|
1926 |
+
"integrity": "sha512-NzNVhJDYpwceVVii8/Hu6DKfD2G+NrQHlS/V/qgv763EYudVwEcMQNxd2lh+0VrUByXN/oJkl5grOhYWvQUYiw==",
|
1927 |
+
"requires": {
|
1928 |
+
"extend-shallow": "3.0.2"
|
1929 |
+
}
|
1930 |
+
},
|
1931 |
+
"static-extend": {
|
1932 |
+
"version": "0.1.2",
|
1933 |
+
"resolved": "https://registry.npmjs.org/static-extend/-/static-extend-0.1.2.tgz",
|
1934 |
+
"integrity": "sha1-YICcOcv/VTNyJv1eC1IPNB8ftcY=",
|
1935 |
+
"requires": {
|
1936 |
+
"define-property": "0.2.5",
|
1937 |
+
"object-copy": "0.1.0"
|
1938 |
+
},
|
1939 |
+
"dependencies": {
|
1940 |
+
"define-property": {
|
1941 |
+
"version": "0.2.5",
|
1942 |
+
"resolved": "https://registry.npmjs.org/define-property/-/define-property-0.2.5.tgz",
|
1943 |
+
"integrity": "sha1-w1se+RjsPJkPmlvFe+BKrOxcgRY=",
|
1944 |
+
"requires": {
|
1945 |
+
"is-descriptor": "0.1.6"
|
1946 |
+
}
|
1947 |
+
}
|
1948 |
+
}
|
1949 |
+
},
|
1950 |
+
"stream-consume": {
|
1951 |
+
"version": "0.1.1",
|
1952 |
+
"resolved": "https://registry.npmjs.org/stream-consume/-/stream-consume-0.1.1.tgz",
|
1953 |
+
"integrity": "sha512-tNa3hzgkjEP7XbCkbRXe1jpg+ievoa0O4SCFlMOYEscGSS4JJsckGL8swUyAa/ApGU3Ae4t6Honor4HhL+tRyg=="
|
1954 |
+
},
|
1955 |
+
"string_decoder": {
|
1956 |
+
"version": "0.10.31",
|
1957 |
+
"resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-0.10.31.tgz",
|
1958 |
+
"integrity": "sha1-YuIDvEF2bGwoyfyEMB2rHFMQ+pQ="
|
1959 |
+
},
|
1960 |
+
"strip-ansi": {
|
1961 |
+
"version": "3.0.1",
|
1962 |
+
"resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-3.0.1.tgz",
|
1963 |
+
"integrity": "sha1-ajhfuIU9lS1f8F0Oiq+UJ43GPc8=",
|
1964 |
+
"requires": {
|
1965 |
+
"ansi-regex": "2.1.1"
|
1966 |
+
}
|
1967 |
+
},
|
1968 |
+
"strip-bom": {
|
1969 |
+
"version": "1.0.0",
|
1970 |
+
"resolved": "https://registry.npmjs.org/strip-bom/-/strip-bom-1.0.0.tgz",
|
1971 |
+
"integrity": "sha1-hbiGLzhEtabV7IRnqTWYFzo295Q=",
|
1972 |
+
"requires": {
|
1973 |
+
"first-chunk-stream": "1.0.0",
|
1974 |
+
"is-utf8": "0.2.1"
|
1975 |
+
}
|
1976 |
+
},
|
1977 |
+
"supports-color": {
|
1978 |
+
"version": "2.0.0",
|
1979 |
+
"resolved": "https://registry.npmjs.org/supports-color/-/supports-color-2.0.0.tgz",
|
1980 |
+
"integrity": "sha1-U10EXOa2Nj+kARcIRimZXp3zJMc="
|
1981 |
+
},
|
1982 |
+
"through2": {
|
1983 |
+
"version": "2.0.3",
|
1984 |
+
"resolved": "https://registry.npmjs.org/through2/-/through2-2.0.3.tgz",
|
1985 |
+
"integrity": "sha1-AARWmzfHx0ujnEPzzteNGtlBQL4=",
|
1986 |
+
"requires": {
|
1987 |
+
"readable-stream": "2.3.6",
|
1988 |
+
"xtend": "4.0.1"
|
1989 |
+
},
|
1990 |
+
"dependencies": {
|
1991 |
+
"isarray": {
|
1992 |
+
"version": "1.0.0",
|
1993 |
+
"resolved": "https://registry.npmjs.org/isarray/-/isarray-1.0.0.tgz",
|
1994 |
+
"integrity": "sha1-u5NdSFgsuhaMBoNJV6VKPgcSTxE="
|
1995 |
+
},
|
1996 |
+
"readable-stream": {
|
1997 |
+
"version": "2.3.6",
|
1998 |
+
"resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-2.3.6.tgz",
|
1999 |
+
"integrity": "sha512-tQtKA9WIAhBF3+VLAseyMqZeBjW0AHJoxOtYqSUZNJxauErmLbVm2FW1y+J/YA9dUrAC39ITejlZWhVIwawkKw==",
|
2000 |
+
"requires": {
|
2001 |
+
"core-util-is": "1.0.2",
|
2002 |
+
"inherits": "2.0.3",
|
2003 |
+
"isarray": "1.0.0",
|
2004 |
+
"process-nextick-args": "2.0.0",
|
2005 |
+
"safe-buffer": "5.1.2",
|
2006 |
+
"string_decoder": "1.1.1",
|
2007 |
+
"util-deprecate": "1.0.2"
|
2008 |
+
}
|
2009 |
+
},
|
2010 |
+
"string_decoder": {
|
2011 |
+
"version": "1.1.1",
|
2012 |
+
"resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-1.1.1.tgz",
|
2013 |
+
"integrity": "sha512-n/ShnvDi6FHbbVfviro+WojiFzv+s8MPMHBczVePfUpDJLwoLT0ht1l4YwBCbi8pJAveEEdnkHyPyTP/mzRfwg==",
|
2014 |
+
"requires": {
|
2015 |
+
"safe-buffer": "5.1.2"
|
2016 |
+
}
|
2017 |
+
}
|
2018 |
+
}
|
2019 |
+
},
|
2020 |
+
"tildify": {
|
2021 |
+
"version": "1.2.0",
|
2022 |
+
"resolved": "https://registry.npmjs.org/tildify/-/tildify-1.2.0.tgz",
|
2023 |
+
"integrity": "sha1-3OwD9V3Km3qj5bBPIYF+tW5jWIo=",
|
2024 |
+
"requires": {
|
2025 |
+
"os-homedir": "1.0.2"
|
2026 |
+
}
|
2027 |
+
},
|
2028 |
+
"time-stamp": {
|
2029 |
+
"version": "1.1.0",
|
2030 |
+
"resolved": "https://registry.npmjs.org/time-stamp/-/time-stamp-1.1.0.tgz",
|
2031 |
+
"integrity": "sha1-dkpaEa9QVhkhsTPztE5hhofg9cM="
|
2032 |
+
},
|
2033 |
+
"to-object-path": {
|
2034 |
+
"version": "0.3.0",
|
2035 |
+
"resolved": "https://registry.npmjs.org/to-object-path/-/to-object-path-0.3.0.tgz",
|
2036 |
+
"integrity": "sha1-KXWIt7Dn4KwI4E5nL4XB9JmeF68=",
|
2037 |
+
"requires": {
|
2038 |
+
"kind-of": "3.2.2"
|
2039 |
+
},
|
2040 |
+
"dependencies": {
|
2041 |
+
"kind-of": {
|
2042 |
+
"version": "3.2.2",
|
2043 |
+
"resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz",
|
2044 |
+
"integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=",
|
2045 |
+
"requires": {
|
2046 |
+
"is-buffer": "1.1.6"
|
2047 |
+
}
|
2048 |
+
}
|
2049 |
+
}
|
2050 |
+
},
|
2051 |
+
"to-regex": {
|
2052 |
+
"version": "3.0.2",
|
2053 |
+
"resolved": "https://registry.npmjs.org/to-regex/-/to-regex-3.0.2.tgz",
|
2054 |
+
"integrity": "sha512-FWtleNAtZ/Ki2qtqej2CXTOayOH9bHDQF+Q48VpWyDXjbYxA4Yz8iDB31zXOBUlOHHKidDbqGVrTUvQMPmBGBw==",
|
2055 |
+
"requires": {
|
2056 |
+
"define-property": "2.0.2",
|
2057 |
+
"extend-shallow": "3.0.2",
|
2058 |
+
"regex-not": "1.0.2",
|
2059 |
+
"safe-regex": "1.1.0"
|
2060 |
+
}
|
2061 |
+
},
|
2062 |
+
"to-regex-range": {
|
2063 |
+
"version": "2.1.1",
|
2064 |
+
"resolved": "https://registry.npmjs.org/to-regex-range/-/to-regex-range-2.1.1.tgz",
|
2065 |
+
"integrity": "sha1-fIDBe53+vlmeJzZ+DU3VWQFB2zg=",
|
2066 |
+
"requires": {
|
2067 |
+
"is-number": "3.0.0",
|
2068 |
+
"repeat-string": "1.6.1"
|
2069 |
+
}
|
2070 |
+
},
|
2071 |
+
"unc-path-regex": {
|
2072 |
+
"version": "0.1.2",
|
2073 |
+
"resolved": "https://registry.npmjs.org/unc-path-regex/-/unc-path-regex-0.1.2.tgz",
|
2074 |
+
"integrity": "sha1-5z3T17DXxe2G+6xrCufYxqadUPo="
|
2075 |
+
},
|
2076 |
+
"union-value": {
|
2077 |
+
"version": "1.0.0",
|
2078 |
+
"resolved": "https://registry.npmjs.org/union-value/-/union-value-1.0.0.tgz",
|
2079 |
+
"integrity": "sha1-XHHDTLW61dzr4+oM0IIHulqhrqQ=",
|
2080 |
+
"requires": {
|
2081 |
+
"arr-union": "3.1.0",
|
2082 |
+
"get-value": "2.0.6",
|
2083 |
+
"is-extendable": "0.1.1",
|
2084 |
+
"set-value": "0.4.3"
|
2085 |
+
},
|
2086 |
+
"dependencies": {
|
2087 |
+
"extend-shallow": {
|
2088 |
+
"version": "2.0.1",
|
2089 |
+
"resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-2.0.1.tgz",
|
2090 |
+
"integrity": "sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=",
|
2091 |
+
"requires": {
|
2092 |
+
"is-extendable": "0.1.1"
|
2093 |
+
}
|
2094 |
+
},
|
2095 |
+
"set-value": {
|
2096 |
+
"version": "0.4.3",
|
2097 |
+
"resolved": "https://registry.npmjs.org/set-value/-/set-value-0.4.3.tgz",
|
2098 |
+
"integrity": "sha1-fbCPnT0i3H945Trzw79GZuzfzPE=",
|
2099 |
+
"requires": {
|
2100 |
+
"extend-shallow": "2.0.1",
|
2101 |
+
"is-extendable": "0.1.1",
|
2102 |
+
"is-plain-object": "2.0.4",
|
2103 |
+
"to-object-path": "0.3.0"
|
2104 |
+
}
|
2105 |
+
}
|
2106 |
+
}
|
2107 |
+
},
|
2108 |
+
"unique-stream": {
|
2109 |
+
"version": "1.0.0",
|
2110 |
+
"resolved": "https://registry.npmjs.org/unique-stream/-/unique-stream-1.0.0.tgz",
|
2111 |
+
"integrity": "sha1-1ZpKdUJ0R9mqbJHnAmP40mpLEEs="
|
2112 |
+
},
|
2113 |
+
"unset-value": {
|
2114 |
+
"version": "1.0.0",
|
2115 |
+
"resolved": "https://registry.npmjs.org/unset-value/-/unset-value-1.0.0.tgz",
|
2116 |
+
"integrity": "sha1-g3aHP30jNRef+x5vw6jtDfyKtVk=",
|
2117 |
+
"requires": {
|
2118 |
+
"has-value": "0.3.1",
|
2119 |
+
"isobject": "3.0.1"
|
2120 |
+
},
|
2121 |
+
"dependencies": {
|
2122 |
+
"has-value": {
|
2123 |
+
"version": "0.3.1",
|
2124 |
+
"resolved": "https://registry.npmjs.org/has-value/-/has-value-0.3.1.tgz",
|
2125 |
+
"integrity": "sha1-ex9YutpiyoJ+wKIHgCVlSEWZXh8=",
|
2126 |
+
"requires": {
|
2127 |
+
"get-value": "2.0.6",
|
2128 |
+
"has-values": "0.1.4",
|
2129 |
+
"isobject": "2.1.0"
|
2130 |
+
},
|
2131 |
+
"dependencies": {
|
2132 |
+
"isobject": {
|
2133 |
+
"version": "2.1.0",
|
2134 |
+
"resolved": "https://registry.npmjs.org/isobject/-/isobject-2.1.0.tgz",
|
2135 |
+
"integrity": "sha1-8GVWEJaj8dou9GJy+BXIQNh+DIk=",
|
2136 |
+
"requires": {
|
2137 |
+
"isarray": "1.0.0"
|
2138 |
+
}
|
2139 |
+
}
|
2140 |
+
}
|
2141 |
+
},
|
2142 |
+
"has-values": {
|
2143 |
+
"version": "0.1.4",
|
2144 |
+
"resolved": "https://registry.npmjs.org/has-values/-/has-values-0.1.4.tgz",
|
2145 |
+
"integrity": "sha1-bWHeldkd/Km5oCCJrThL/49it3E="
|
2146 |
+
},
|
2147 |
+
"isarray": {
|
2148 |
+
"version": "1.0.0",
|
2149 |
+
"resolved": "https://registry.npmjs.org/isarray/-/isarray-1.0.0.tgz",
|
2150 |
+
"integrity": "sha1-u5NdSFgsuhaMBoNJV6VKPgcSTxE="
|
2151 |
+
}
|
2152 |
+
}
|
2153 |
+
},
|
2154 |
+
"urix": {
|
2155 |
+
"version": "0.1.0",
|
2156 |
+
"resolved": "https://registry.npmjs.org/urix/-/urix-0.1.0.tgz",
|
2157 |
+
"integrity": "sha1-2pN/emLiH+wf0Y1Js1wpNQZ6bHI="
|
2158 |
+
},
|
2159 |
+
"use": {
|
2160 |
+
"version": "3.1.0",
|
2161 |
+
"resolved": "https://registry.npmjs.org/use/-/use-3.1.0.tgz",
|
2162 |
+
"integrity": "sha512-6UJEQM/L+mzC3ZJNM56Q4DFGLX/evKGRg15UJHGB9X5j5Z3AFbgZvjUh2yq/UJUY4U5dh7Fal++XbNg1uzpRAw==",
|
2163 |
+
"requires": {
|
2164 |
+
"kind-of": "6.0.2"
|
2165 |
+
}
|
2166 |
+
},
|
2167 |
+
"user-home": {
|
2168 |
+
"version": "1.1.1",
|
2169 |
+
"resolved": "https://registry.npmjs.org/user-home/-/user-home-1.1.1.tgz",
|
2170 |
+
"integrity": "sha1-K1viOjK2Onyd640PKNSFcko98ZA="
|
2171 |
+
},
|
2172 |
+
"util-deprecate": {
|
2173 |
+
"version": "1.0.2",
|
2174 |
+
"resolved": "https://registry.npmjs.org/util-deprecate/-/util-deprecate-1.0.2.tgz",
|
2175 |
+
"integrity": "sha1-RQ1Nyfpw3nMnYvvS1KKJgUGaDM8="
|
2176 |
+
},
|
2177 |
+
"v8flags": {
|
2178 |
+
"version": "2.1.1",
|
2179 |
+
"resolved": "https://registry.npmjs.org/v8flags/-/v8flags-2.1.1.tgz",
|
2180 |
+
"integrity": "sha1-qrGh+jDUX4jdMhFIh1rALAtV5bQ=",
|
2181 |
+
"requires": {
|
2182 |
+
"user-home": "1.1.1"
|
2183 |
+
}
|
2184 |
+
},
|
2185 |
+
"vinyl": {
|
2186 |
+
"version": "0.5.3",
|
2187 |
+
"resolved": "https://registry.npmjs.org/vinyl/-/vinyl-0.5.3.tgz",
|
2188 |
+
"integrity": "sha1-sEVbOPxeDPMNQyUTLkYZcMIJHN4=",
|
2189 |
+
"requires": {
|
2190 |
+
"clone": "1.0.4",
|
2191 |
+
"clone-stats": "0.0.1",
|
2192 |
+
"replace-ext": "0.0.1"
|
2193 |
+
}
|
2194 |
+
},
|
2195 |
+
"vinyl-fs": {
|
2196 |
+
"version": "0.3.14",
|
2197 |
+
"resolved": "https://registry.npmjs.org/vinyl-fs/-/vinyl-fs-0.3.14.tgz",
|
2198 |
+
"integrity": "sha1-mmhRzhysHBzqX+hsCTHWIMLPqeY=",
|
2199 |
+
"requires": {
|
2200 |
+
"defaults": "1.0.3",
|
2201 |
+
"glob-stream": "3.1.18",
|
2202 |
+
"glob-watcher": "0.0.6",
|
2203 |
+
"graceful-fs": "3.0.11",
|
2204 |
+
"mkdirp": "0.5.1",
|
2205 |
+
"strip-bom": "1.0.0",
|
2206 |
+
"through2": "0.6.5",
|
2207 |
+
"vinyl": "0.4.6"
|
2208 |
+
},
|
2209 |
+
"dependencies": {
|
2210 |
+
"clone": {
|
2211 |
+
"version": "0.2.0",
|
2212 |
+
"resolved": "https://registry.npmjs.org/clone/-/clone-0.2.0.tgz",
|
2213 |
+
"integrity": "sha1-xhJqkK1Pctv1rNskPMN3JP6T/B8="
|
2214 |
+
},
|
2215 |
+
"readable-stream": {
|
2216 |
+
"version": "1.0.34",
|
2217 |
+
"resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-1.0.34.tgz",
|
2218 |
+
"integrity": "sha1-Elgg40vIQtLyqq+v5MKRbuMsFXw=",
|
2219 |
+
"requires": {
|
2220 |
+
"core-util-is": "1.0.2",
|
2221 |
+
"inherits": "2.0.3",
|
2222 |
+
"isarray": "0.0.1",
|
2223 |
+
"string_decoder": "0.10.31"
|
2224 |
+
}
|
2225 |
+
},
|
2226 |
+
"through2": {
|
2227 |
+
"version": "0.6.5",
|
2228 |
+
"resolved": "https://registry.npmjs.org/through2/-/through2-0.6.5.tgz",
|
2229 |
+
"integrity": "sha1-QaucZ7KdVyCQcUEOHXp6lozTrUg=",
|
2230 |
+
"requires": {
|
2231 |
+
"readable-stream": "1.0.34",
|
2232 |
+
"xtend": "4.0.1"
|
2233 |
+
}
|
2234 |
+
},
|
2235 |
+
"vinyl": {
|
2236 |
+
"version": "0.4.6",
|
2237 |
+
"resolved": "https://registry.npmjs.org/vinyl/-/vinyl-0.4.6.tgz",
|
2238 |
+
"integrity": "sha1-LzVsh6VQolVGHza76ypbqL94SEc=",
|
2239 |
+
"requires": {
|
2240 |
+
"clone": "0.2.0",
|
2241 |
+
"clone-stats": "0.0.1"
|
2242 |
+
}
|
2243 |
+
}
|
2244 |
+
}
|
2245 |
+
},
|
2246 |
+
"which": {
|
2247 |
+
"version": "1.3.1",
|
2248 |
+
"resolved": "https://registry.npmjs.org/which/-/which-1.3.1.tgz",
|
2249 |
+
"integrity": "sha512-HxJdYWq1MTIQbJ3nw0cqssHoTNU267KlrDuGZ1WYlxDStUtKUhOaJmh112/TZmHxxUfuJqPXSOm7tDyas0OSIQ==",
|
2250 |
+
"requires": {
|
2251 |
+
"isexe": "2.0.0"
|
2252 |
+
}
|
2253 |
+
},
|
2254 |
+
"wrappy": {
|
2255 |
+
"version": "1.0.2",
|
2256 |
+
"resolved": "https://registry.npmjs.org/wrappy/-/wrappy-1.0.2.tgz",
|
2257 |
+
"integrity": "sha1-tSQ9jz7BqjXxNkYFvA0QNuMKtp8="
|
2258 |
+
},
|
2259 |
+
"xtend": {
|
2260 |
+
"version": "4.0.1",
|
2261 |
+
"resolved": "https://registry.npmjs.org/xtend/-/xtend-4.0.1.tgz",
|
2262 |
+
"integrity": "sha1-pcbVMr5lbiPbgg77lDofBJmNY68="
|
2263 |
+
}
|
2264 |
+
}
|
2265 |
+
}
|
public/css/information.css
CHANGED
File without changes
|
public/images/ajax-loader-overlay.gif
CHANGED
File without changes
|
public/img/toolset-logo-no-margin.png
CHANGED
File without changes
|
public/js/feedback-on-deactivation.js
CHANGED
File without changes
|
public/js/information.js
CHANGED
File without changes
|
public/js/notice-dismiss.js
CHANGED
File without changes
|
public/js/settings.js
CHANGED
File without changes
|
public/js/slug_conflict_checker.js
CHANGED
File without changes
|
public/page/add_term.js
CHANGED
File without changes
|
public/page/adjust_submenu_links.js
CHANGED
File without changes
|
public/page/edit_post_type/main.js
CHANGED
File without changes
|
public/page/edit_taxonomy/main.js
CHANGED
File without changes
|
public/page/field_control/main.js
CHANGED
File without changes
|
public/page/field_control/style.css
CHANGED
File without changes
|
public/page/field_control/viewmodels/BulkChangeManagementStatusDialogViewModel.js
CHANGED
File without changes
|
public/page/field_control/viewmodels/ChangeAssignDialogViewModel.js
CHANGED
File without changes
|
public/page/field_control/viewmodels/ChangeFieldTypeDialogViewModel.js
CHANGED
File without changes
|
public/page/field_control/viewmodels/DeleteDialogViewModel.js
CHANGED
File without changes
|
public/page/field_control/viewmodels/FieldDefinitionViewModel.js
CHANGED
File without changes
|
public/page/field_control/viewmodels/ListingViewModel.js
CHANGED
File without changes
|
readme.txt
CHANGED
@@ -1,46 +1,53 @@
|
|
1 |
=== Toolset Types - Custom Post Types, Custom Fields and Taxonomies ===
|
2 |
Contributors: AmirHelzer, brucepearson, christianglingener, jadpm, zaantar, jmilczarek, kouratoras, displaynone
|
3 |
-
Donate link: http://
|
4 |
Tags: CMS, custom field, custom fields, custom post type, custom post types, field, fields post, post type, post types, taxonomies, taxonomy, toolset
|
5 |
Text Domain: wpcf
|
6 |
Domain Path: /embedded/locale
|
7 |
License: GPLv2
|
8 |
Requires at least: 3.7
|
|
|
9 |
Tested up to: 4.9
|
10 |
-
Stable tag: 2.
|
11 |
-
|
12 |
The complete and reliable plugin for managing custom post types, custom taxonomies and custom fields.
|
13 |
|
14 |
== Description ==
|
15 |
|
16 |
**Toolset Types let’s you add custom post types, custom fields and custom taxonomies to the WordPress admin. A convenient dashboard lets you control everything from one place.**
|
17 |
|
18 |
-
[
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
19 |
|
20 |
= COMPLETE DOCUMENTATION, POWERFUL API, SIMPLE GUI FOR NON-CODERS =
|
21 |
-
If you're an experienced PHP developer, you'll appreciate Types comprehensive [fields API](https://
|
22 |
|
23 |
-
You will find detailed guides on [adding custom post types, fields and taxonomy to the front-end](https://
|
24 |
|
25 |
-
* [Creating templates for single custom posts](https://
|
26 |
-
* [Creating templates for custom post type archives](https://
|
27 |
-
* [Creating custom user profiles](https://
|
28 |
-
* [Create taxonomy term archives](https://
|
29 |
|
30 |
-
and [more](https://
|
31 |
|
32 |
-
**Too much technical stuff to learn?** The full [Toolset](
|
33 |
|
34 |
= CUSTOM FIELDS FOR CONTENT, TAXONOMY TERMS AND USERS =
|
35 |
Types lets you add custom fields for posts (meaning, WordPress posts, pages and custom content types), taxonomy terms and users. You can add any field types to different user profiles.
|
36 |
|
37 |
= ACCESS CONTROL FOR FIELDS =
|
38 |
-
Using [Access](https://
|
39 |
|
40 |
For example, when you build a membership site, the site admin will be able to change membership levels for everyone and users will see their membership fields as read-only.
|
41 |
|
42 |
= RELIABLE SUPPORT =
|
43 |
-
To get support for Types, please join our [technical support forum](
|
44 |
|
45 |
= CUSTOM FIELDS =
|
46 |
|
@@ -83,7 +90,7 @@ Types lets you define parent / child relationship between different post types.
|
|
83 |
|
84 |
= MULTILINGUAL READY =
|
85 |
|
86 |
-
Types is the only custom fields and post types plugin that's built multilingual-ready. It plays perfectly with [WPML](http://wpml.org). You'll be able to translate everything, including texts and labels in the WordPress admin and user-content for front-page.
|
87 |
|
88 |
= BUILT FOR STABILITY =
|
89 |
|
@@ -104,10 +111,15 @@ By default, WordPress will either display your blog posts or a specific page on
|
|
104 |
To display custom post types on the home-page, you have two options:
|
105 |
|
106 |
1. If you're comfortable with PHP and WordPress API, edit the site's template files (probably index.php) and load the custom post types there. Different themes do this differently, so we can't really say what single approach works best. You should look at [get_posts](http://codex.wordpress.org/Template_Tags/get_posts), which is part of the WordPress Template Tags system.
|
107 |
-
|
|
|
108 |
|
109 |
We're sorry, but we don't know of any third option which is both free and requires no coding.
|
110 |
|
|
|
|
|
|
|
|
|
111 |
= Can I use Types without Views? =
|
112 |
|
113 |
Sure you can! Types, by itself, replaces several other plugins that define custom types and fields. We believe that it does it much better, but it's up to you to decide.
|
@@ -158,6 +170,12 @@ Additionally, Types is the only plugin that lets you define parent/child relatio
|
|
158 |
|
159 |
== Changelog ==
|
160 |
|
|
|
|
|
|
|
|
|
|
|
|
|
161 |
= 2.2.23 =
|
162 |
* Fixed issue with Toolset registration
|
163 |
|
@@ -563,7 +581,7 @@ Additionally, Types is the only plugin that lets you define parent/child relatio
|
|
563 |
= 1.7.5 =
|
564 |
|
565 |
* Release date: 2015-07-15
|
566 |
-
* Fixed a problem with Custom Fields Group edit screen to allow (again) underscore in Custom Fields names. https://
|
567 |
|
568 |
= 1.7.4 =
|
569 |
|
@@ -573,7 +591,7 @@ Additionally, Types is the only plugin that lets you define parent/child relatio
|
|
573 |
= 1.7.3 =
|
574 |
|
575 |
* Release date: 2015-06-25
|
576 |
-
* Fixed problem with "View All" in menu builder for Custom Post Types. https://
|
577 |
|
578 |
= 1.7.2 =
|
579 |
|
@@ -590,7 +608,7 @@ Additionally, Types is the only plugin that lets you define parent/child relatio
|
|
590 |
= 1.7 =
|
591 |
|
592 |
* Release date: 2015-06-15
|
593 |
-
* Added the word "mode" to the list of words reserved by WordPress. https://
|
594 |
* Added the feature that automatically creates a slug for the Custom Post Type and Custom Taxonomy.
|
595 |
* Added bulk delete options to Custom Field Groups listing page.
|
596 |
* Added bulk delete options to Custom Post Types listing page.
|
@@ -599,24 +617,24 @@ Additionally, Types is the only plugin that lets you define parent/child relatio
|
|
599 |
* Added the duplicate option for Custom Post Type and Custom Taxonomy.
|
600 |
* Added the "Excerpt" field to the Child Posts table.
|
601 |
* Added the "wpcf_field_image_max_width" filter which allows user to change image width on admin listing pages.
|
602 |
-
* Added the option to specify the custom archive slug for the Custom Post Type http://
|
603 |
* All custom fields on Custom Post Type listing pages are now sortable.
|
604 |
* Changes to the Types fields GUI for easier support.
|
605 |
* Fixed a problem with Custom Post Type, Custom Taxonomy and Custom Fields Group editing pages where forms would "freeze" after validation fails.
|
606 |
-
* Fixed a problem with selecting an image for the Custom Image Field in the Child Posts table, after using the "Add New", "Save All" and "Save" buttons. https://
|
607 |
-
* Fixed a problem with multi-line field not being wrapped with P (paragraph) HTML tag https://
|
608 |
* Fixed problem with fields being covered by colorbox on the Custom Post Type editing page.
|
609 |
* Fixed an issue where a wrong message was displayed when minimum number of characters has not been reached.
|
610 |
|
611 |
= 1.6.6.6 =
|
612 |
|
613 |
* Release date: 2015-06-10
|
614 |
-
* Fixed problem with "playlist" word. https://
|
615 |
|
616 |
= 1.6.6.5 =
|
617 |
|
618 |
* Release date: 2015-05-20
|
619 |
-
* Fixed problem with Uncaught ReferenceError: pagenow is not defined. http://
|
620 |
|
621 |
= 1.6.6.4 =
|
622 |
|
@@ -631,7 +649,7 @@ Additionally, Types is the only plugin that lets you define parent/child relatio
|
|
631 |
= 1.6.6.2 =
|
632 |
|
633 |
* Release date: 2015-04-10
|
634 |
-
* Fixed problem with File Field which do not work when edited from the Parent Post Type. https://
|
635 |
|
636 |
= 1.6.6.1 =
|
637 |
|
@@ -641,16 +659,16 @@ Additionally, Types is the only plugin that lets you define parent/child relatio
|
|
641 |
= 1.6.6 =
|
642 |
|
643 |
* Release date: 2015-04-02
|
644 |
-
* Fixed problem with shortcode "playlist" used in WYSIWYG field. http://
|
645 |
-
* Fixed empty title problem for filter "wpt_field_options" on user edit/add screen https://
|
646 |
-
* Added ability to create CPT without title and editor. https://
|
647 |
* Added Skype field validation.
|
648 |
* Fixed problem with loading custom CSS when user meta group is inactive or not assign to certain user role.
|
649 |
* Added ability to add to menu link to archive of post type.
|
650 |
-
* Added ability to setup meta box callback function. https://
|
651 |
* Added ability to add HTML5 placeholder attribute for custom post fields.
|
652 |
-
* Fixed problem with CPT labels. https://
|
653 |
-
* Added a filters to the post title as option text in the select dropdown for post parents. wpcf_pr_belongs_items for array of options and wpcf_pr_belongs_item for one option. https://
|
654 |
* Added ability to choose custom fields to display it on custom posts admin list.
|
655 |
* Fixed problem with saving parent data into child data. On parent edit screen.
|
656 |
* Added check group name for Custom Fields and User Fields.
|
@@ -660,57 +678,57 @@ Additionally, Types is the only plugin that lets you define parent/child relatio
|
|
660 |
|
661 |
* Release date: 2015-02-24
|
662 |
* Fixed Installer patch to plugins.
|
663 |
-
* Fixed problem with "Access Control and User Roles" menu in Types, when Access is active http://
|
664 |
* Changed utm_media used in links on "Getting Started" pages.
|
665 |
|
666 |
= 1.6.5 =
|
667 |
|
668 |
* Release date: 2015-02-10
|
669 |
* Changed in relationships, now all posts are showed, even those which have show_ui to false.
|
670 |
-
* Added ability to hide custom post types on post relationships list. https://
|
671 |
* Fixed a problem with deleting last children on post relationships table.
|
672 |
-
* Added filter to allow use "?" in image url. https://
|
673 |
-
* Added option for child table, when editing parent to allow show only list of children instead edit form. http://
|
674 |
* Fixed a problem with slug in custom fields, when field have special chars.
|
675 |
* Fixed wrong display message about custom fields not manageable by Types.
|
676 |
-
* Fixed a conflict with Formidable-Pro plugin https://
|
677 |
* Fixed creating new post in relationships. WP 4.1 need real title not faked by one space.
|
678 |
-
* Fixed problem with validate fields on user create page. http://
|
679 |
* Improved Edit CPT and Edit CT screens to be more compatible with WP Admin UI
|
680 |
-
* Fixed problem with default label which contains single quote character (eg. French) https://
|
681 |
* Improved display list of custom fields groups.
|
682 |
|
683 |
= 1.6.4 =
|
684 |
|
685 |
* Release date: 2014-11-17
|
686 |
* Fixed an issue with dependency between custom taxonomies and custom posts when importing data from the "Custom Post Type UI" plugin.
|
687 |
-
* Fixed an issue with editing checkboxes with the option "save 0 to the database" selected, created for Custom Posts. http://
|
688 |
-
* Fixed an issue with PHP notices being thrown when relative URLs to images were used. http://
|
689 |
* Fixed the example file which adds the Google Map field to Types and allows users to enter coordinates to display a map on the front-end.
|
690 |
* Added the "wpcf_delete_relation_meta" filter which allows deletion of all post relationships when deleting a custom post type.
|
691 |
-
* Fixed an issue with the file name being changed when the file was uploaded. https://icanlocalize.basecamphq.com/projects/7393061-toolset/todo_items/189560556/comments http://
|
692 |
-
* Fixed a problem with duplicate slugs on "Edit Group" screen. https://icanlocalize.basecamphq.com/projects/7393061-toolset/todo_items/187118123/comments http://
|
693 |
* Fixed a problem with default description not disappearing for non-English placeholders. https://icanlocalize.basecamphq.com/projects/7393061-toolset/todo_items/189787190/comments
|
694 |
* Fixed a problem with Custom Taxonomy metaboxes still appearing on the Custom Post editing page even after removing a Custom Taxonomy from a Custom Post Type.
|
695 |
* Fixed embedding OTGS CSS for the admin area. https://wordpress.org/support/topic/four-stylesheets-being-loaded-at-frontend
|
696 |
-
* Fixed a problem with Checkbox field value not being saved. https://
|
697 |
-
* Added the option to select posts with the "Private" post status as parents in a parent-child Custom Post Types relationships. http://
|
698 |
* Fixed a problem with the date-picker. https://icanlocalize.basecamphq.com/projects/7393061-toolset/todo_items/191190651/comments
|
699 |
* Fixed a problem with label menu in wp-admin for child posts.
|
700 |
* Fixed a problem with child table when edit parent post and children do not have title.
|
701 |
-
* Prevent to chose repetitive field in child table on edit parent screen. http://
|
702 |
-
* Added a dynamic "posted x minutes/hours ago" for Types fields. https://
|
703 |
-
* Improved post relation table by using more precise labels. http://
|
704 |
* Fixed a problem with display checkbox value from database if checkbox is empty.
|
705 |
|
706 |
= 1.6.3 =
|
707 |
|
708 |
* Release date: 2014-10-23
|
709 |
* Added the message to ask users to answer a short survey for feedback on their work using the Types plugin.
|
710 |
-
* Fixed a problem where the custom field group’s description was missing from the post/page editing page. http://
|
711 |
-
* Fixed a problem where the field descriptions weren’t displayed on the user profile editing page. http://
|
712 |
* Fixed a problem where users weren’t able to untick the single and multiple checkbox fields on the user profile editing page.
|
713 |
-
* Fixed a problem where the value of date field couldn’t be cleared and added new button which clears the date field value. http://
|
714 |
* Replaced the deprecated like_escape function with the wpdb::esc_like function.
|
715 |
* Fixed a problem where the parent-child relations between custom post types persisted after deleting and re-creating a custom post type.
|
716 |
* Fixed a problem where date picker scripts were being enqueued in the front end. https://wordpress.org/support/topic/datepicker-css-enqueued-on-public
|
1 |
=== Toolset Types - Custom Post Types, Custom Fields and Taxonomies ===
|
2 |
Contributors: AmirHelzer, brucepearson, christianglingener, jadpm, zaantar, jmilczarek, kouratoras, displaynone
|
3 |
+
Donate link: http://toolset.com
|
4 |
Tags: CMS, custom field, custom fields, custom post type, custom post types, field, fields post, post type, post types, taxonomies, taxonomy, toolset
|
5 |
Text Domain: wpcf
|
6 |
Domain Path: /embedded/locale
|
7 |
License: GPLv2
|
8 |
Requires at least: 3.7
|
9 |
+
Requires PHP: 5.3
|
10 |
Tested up to: 4.9
|
11 |
+
Stable tag: 2.3
|
|
|
12 |
The complete and reliable plugin for managing custom post types, custom taxonomies and custom fields.
|
13 |
|
14 |
== Description ==
|
15 |
|
16 |
**Toolset Types let’s you add custom post types, custom fields and custom taxonomies to the WordPress admin. A convenient dashboard lets you control everything from one place.**
|
17 |
|
18 |
+
[youtube https://www.youtube.com/watch?v=Akzybh3uyXA]
|
19 |
+
|
20 |
+
= TYPES 3.0 AVAILABLE =
|
21 |
+
We have [released Types 3.0](https://toolset.com/2018/05/toolset-post-relationships-release/) with completely rewritten post relationships (many-to-many post relationships, repeatable field groups and much more).
|
22 |
+
|
23 |
+
However, Types since version 3.0 is a [part of the complete Toolset package](https://toolset.com/2017/11/types-plugin-is-moving-to-be-a-part-of-the-complete-toolset-package/) and it is available only with a [Toolset account](https://toolset.com).
|
24 |
+
|
25 |
+
We will keep supporting the free version of Types with security and compatibility updates and bug fixes through 2018.
|
26 |
|
27 |
= COMPLETE DOCUMENTATION, POWERFUL API, SIMPLE GUI FOR NON-CODERS =
|
28 |
+
If you're an experienced PHP developer, you'll appreciate Types comprehensive [fields API](https://toolset.com/documentation/customizing-sites-using-php/functions/).
|
29 |
|
30 |
+
You will find detailed guides on [adding custom post types, fields and taxonomy to the front-end](https://toolset.com/documentation/customizing-sites-using-php/), including:
|
31 |
|
32 |
+
* [Creating templates for single custom posts](https://toolset.com/documentation/customizing-sites-using-php/creating-templates-single-custom-posts/)
|
33 |
+
* [Creating templates for custom post type archives](https://toolset.com/documentation/customizing-sites-using-php/creating-templates-custom-post-type-archives/)
|
34 |
+
* [Creating custom user profiles](https://toolset.com/documentation/customizing-sites-using-php/creating-custom-user-profiles/)
|
35 |
+
* [Create taxonomy term archives](https://toolset.com/documentation/customizing-sites-using-php/creating-taxonomy-term-archives/)
|
36 |
|
37 |
+
and [more](https://toolset.com/documentation/customizing-sites-using-php/).
|
38 |
|
39 |
+
**Too much technical stuff to learn?** The full [Toolset](https://toolset.com) package lets you build complete WordPress sites from within the admin dashboard.
|
40 |
|
41 |
= CUSTOM FIELDS FOR CONTENT, TAXONOMY TERMS AND USERS =
|
42 |
Types lets you add custom fields for posts (meaning, WordPress posts, pages and custom content types), taxonomy terms and users. You can add any field types to different user profiles.
|
43 |
|
44 |
= ACCESS CONTROL FOR FIELDS =
|
45 |
+
Using [Access](https://toolset.com/home/toolset-components/#access), you will be able to control what fields different users can edit and view. This way, you can make some field groups read-only for certain users, and fully-editable for other users.
|
46 |
|
47 |
For example, when you build a membership site, the site admin will be able to change membership levels for everyone and users will see their membership fields as read-only.
|
48 |
|
49 |
= RELIABLE SUPPORT =
|
50 |
+
To get support for Types, please join our [technical support forum](https://toolset.com/forums/). You will receive support directly from our developers, helping you deliver great sites on time and correctly.
|
51 |
|
52 |
= CUSTOM FIELDS =
|
53 |
|
90 |
|
91 |
= MULTILINGUAL READY =
|
92 |
|
93 |
+
Types is the only custom fields and post types plugin that's built multilingual-ready. It plays perfectly with [WPML](http://wpml.org). You'll be able to translate everything, including texts and labels in the WordPress admin and user-content for front-page. See the [guide for translating Toolset](https://toolset.com/documentation/translating-sites-built-with-toolset/).
|
94 |
|
95 |
= BUILT FOR STABILITY =
|
96 |
|
111 |
To display custom post types on the home-page, you have two options:
|
112 |
|
113 |
1. If you're comfortable with PHP and WordPress API, edit the site's template files (probably index.php) and load the custom post types there. Different themes do this differently, so we can't really say what single approach works best. You should look at [get_posts](http://codex.wordpress.org/Template_Tags/get_posts), which is part of the WordPress Template Tags system.
|
114 |
+
|
115 |
+
2. If you want to build sites right away, without becoming an expert in WordPress API and try our [Toolset Views](https://toolset.com/home/views-create-elegant-displays-for-your-content/). You'll be able to load whatever content you need from the database and display it anywhere and in whatever way you choose.
|
116 |
|
117 |
We're sorry, but we don't know of any third option which is both free and requires no coding.
|
118 |
|
119 |
+
= How can I create repeating field groups?=
|
120 |
+
|
121 |
+
The paid version of Types, available through [Toolset](https://toolset.com) Website lets you create infinitely nested groups of repeating fields.
|
122 |
+
|
123 |
= Can I use Types without Views? =
|
124 |
|
125 |
Sure you can! Types, by itself, replaces several other plugins that define custom types and fields. We believe that it does it much better, but it's up to you to decide.
|
170 |
|
171 |
== Changelog ==
|
172 |
|
173 |
+
= 2.3 =
|
174 |
+
* Free Types version which will be available on wordpress.org only.
|
175 |
+
* Added a dismissable notice about what is going on with Types development.
|
176 |
+
* Removed the Installer dependency. Clients who buy Toolset will have to download Types 3.0+ manually for the first time.
|
177 |
+
* Users should no longer be asked to buy a subscription in order to upgrade (sorry about that).
|
178 |
+
|
179 |
= 2.2.23 =
|
180 |
* Fixed issue with Toolset registration
|
181 |
|
581 |
= 1.7.5 =
|
582 |
|
583 |
* Release date: 2015-07-15
|
584 |
+
* Fixed a problem with Custom Fields Group edit screen to allow (again) underscore in Custom Fields names. https://toolset.com/forums/topic/underscores-in-custom-field-names-possible-bug/
|
585 |
|
586 |
= 1.7.4 =
|
587 |
|
591 |
= 1.7.3 =
|
592 |
|
593 |
* Release date: 2015-06-25
|
594 |
+
* Fixed problem with "View All" in menu builder for Custom Post Types. https://toolset.com/forums/topic/appearance-menu-php-errornotice/
|
595 |
|
596 |
= 1.7.2 =
|
597 |
|
608 |
= 1.7 =
|
609 |
|
610 |
* Release date: 2015-06-15
|
611 |
+
* Added the word "mode" to the list of words reserved by WordPress. https://toolset.com/forums/topic/when-types-is-activated-i-cant-filter-articles-by-category-in-the-wp-backend/
|
612 |
* Added the feature that automatically creates a slug for the Custom Post Type and Custom Taxonomy.
|
613 |
* Added bulk delete options to Custom Field Groups listing page.
|
614 |
* Added bulk delete options to Custom Post Types listing page.
|
617 |
* Added the duplicate option for Custom Post Type and Custom Taxonomy.
|
618 |
* Added the "Excerpt" field to the Child Posts table.
|
619 |
* Added the "wpcf_field_image_max_width" filter which allows user to change image width on admin listing pages.
|
620 |
+
* Added the option to specify the custom archive slug for the Custom Post Type http://toolset.com/forums/topic/specify-cpt-archive-slug-as-string/
|
621 |
* All custom fields on Custom Post Type listing pages are now sortable.
|
622 |
* Changes to the Types fields GUI for easier support.
|
623 |
* Fixed a problem with Custom Post Type, Custom Taxonomy and Custom Fields Group editing pages where forms would "freeze" after validation fails.
|
624 |
+
* Fixed a problem with selecting an image for the Custom Image Field in the Child Posts table, after using the "Add New", "Save All" and "Save" buttons. https://toolset.com/forums/topic/featured-image-cannot-be-changed-after-first-save/
|
625 |
+
* Fixed a problem with multi-line field not being wrapped with P (paragraph) HTML tag https://toolset.com/forums/topic/multi-line-text-fields-are-missing-paragraph-tags/
|
626 |
* Fixed problem with fields being covered by colorbox on the Custom Post Type editing page.
|
627 |
* Fixed an issue where a wrong message was displayed when minimum number of characters has not been reached.
|
628 |
|
629 |
= 1.6.6.6 =
|
630 |
|
631 |
* Release date: 2015-06-10
|
632 |
+
* Fixed problem with "playlist" word. https://toolset.com/forums/topic/front-end-warning-from-wysiwyg-php/
|
633 |
|
634 |
= 1.6.6.5 =
|
635 |
|
636 |
* Release date: 2015-05-20
|
637 |
+
* Fixed problem with Uncaught ReferenceError: pagenow is not defined. http://toolset.com/forums/topic/nextgen-gallery-broken-urgent/
|
638 |
|
639 |
= 1.6.6.4 =
|
640 |
|
649 |
= 1.6.6.2 =
|
650 |
|
651 |
* Release date: 2015-04-10
|
652 |
+
* Fixed problem with File Field which do not work when edited from the Parent Post Type. https://toolset.com/forums/topic/1-6-6-seems-to-break-child-fields-when-parent-has-an-image-field/
|
653 |
|
654 |
= 1.6.6.1 =
|
655 |
|
659 |
= 1.6.6 =
|
660 |
|
661 |
* Release date: 2015-04-02
|
662 |
+
* Fixed problem with shortcode "playlist" used in WYSIWYG field. http://toolset.com/forums/topic/media-play-list-not-outputting-from-custom-wysiwyg-field-js-error/
|
663 |
+
* Fixed empty title problem for filter "wpt_field_options" on user edit/add screen https://toolset.com/forums/topic/populate-select-field-in-wpcf-um-group/
|
664 |
+
* Added ability to create CPT without title and editor. https://toolset.com/forums/topic/inaccurate-warning-message-when-creatingediting-a-cpt/
|
665 |
* Added Skype field validation.
|
666 |
* Fixed problem with loading custom CSS when user meta group is inactive or not assign to certain user role.
|
667 |
* Added ability to add to menu link to archive of post type.
|
668 |
+
* Added ability to setup meta box callback function. https://toolset.com/forums/topic/add-support-for-meta_box_cb-in-custom-taxonomy/
|
669 |
* Added ability to add HTML5 placeholder attribute for custom post fields.
|
670 |
+
* Fixed problem with CPT labels. https://toolset.com/forums/topic/after-save-cpts-cutom-labels-always-revert-to-default-label/
|
671 |
+
* Added a filters to the post title as option text in the select dropdown for post parents. wpcf_pr_belongs_items for array of options and wpcf_pr_belongs_item for one option. https://toolset.com/forums/topic/help-to-distinguish-duplicate-titles-in-post-relationship/
|
672 |
* Added ability to choose custom fields to display it on custom posts admin list.
|
673 |
* Fixed problem with saving parent data into child data. On parent edit screen.
|
674 |
* Added check group name for Custom Fields and User Fields.
|
678 |
|
679 |
* Release date: 2015-02-24
|
680 |
* Fixed Installer patch to plugins.
|
681 |
+
* Fixed problem with "Access Control and User Roles" menu in Types, when Access is active http://toolset.com/forums/topic/update-issues-fatal-error-require_once-failed-opening-required-wpcf_access_/
|
682 |
* Changed utm_media used in links on "Getting Started" pages.
|
683 |
|
684 |
= 1.6.5 =
|
685 |
|
686 |
* Release date: 2015-02-10
|
687 |
* Changed in relationships, now all posts are showed, even those which have show_ui to false.
|
688 |
+
* Added ability to hide custom post types on post relationships list. https://toolset.com/forums/topic/post-relationship-doesnt-show-post-type-events-created-by-events-espresso/ using filter add_filter('wpcf_show_ui_hide_in_relationships', '__return_false');
|
689 |
* Fixed a problem with deleting last children on post relationships table.
|
690 |
+
* Added filter to allow use "?" in image url. https://toolset.com/forums/topic/image-custom-field-is-not-storing-image-path-with-parameters/
|
691 |
+
* Added option for child table, when editing parent to allow show only list of children instead edit form. http://toolset.com/forums/topic/miss-settings-for-post-relationship-child-options/
|
692 |
* Fixed a problem with slug in custom fields, when field have special chars.
|
693 |
* Fixed wrong display message about custom fields not manageable by Types.
|
694 |
+
* Fixed a conflict with Formidable-Pro plugin https://toolset.com/forums/topic/plugin-conflict/
|
695 |
* Fixed creating new post in relationships. WP 4.1 need real title not faked by one space.
|
696 |
+
* Fixed problem with validate fields on user create page. http://toolset.com/forums/topic/custom-usermeta-bypassed-even-required-is-set/
|
697 |
* Improved Edit CPT and Edit CT screens to be more compatible with WP Admin UI
|
698 |
+
* Fixed problem with default label which contains single quote character (eg. French) https://toolset.com/forums/topic/default-label-always-shown/
|
699 |
* Improved display list of custom fields groups.
|
700 |
|
701 |
= 1.6.4 =
|
702 |
|
703 |
* Release date: 2014-11-17
|
704 |
* Fixed an issue with dependency between custom taxonomies and custom posts when importing data from the "Custom Post Type UI" plugin.
|
705 |
+
* Fixed an issue with editing checkboxes with the option "save 0 to the database" selected, created for Custom Posts. http://toolset.com/forums/topic/checkbox-custom-field-doesnt-save-value-since-upgrade-to-version-1-6-2/ http://toolset.com/forums/topic/types-checkbox-field-not-saving-after-save-0-to-the-database/
|
706 |
+
* Fixed an issue with PHP notices being thrown when relative URLs to images were used. http://toolset.com/forums/topic/php-notice-undefined-index-host-in-image-php/
|
707 |
* Fixed the example file which adds the Google Map field to Types and allows users to enter coordinates to display a map on the front-end.
|
708 |
* Added the "wpcf_delete_relation_meta" filter which allows deletion of all post relationships when deleting a custom post type.
|
709 |
+
* Fixed an issue with the file name being changed when the file was uploaded. https://icanlocalize.basecamphq.com/projects/7393061-toolset/todo_items/189560556/comments http://toolset.com/forums/topic/types-1-6-update-breaks-layout-that-worked-in-types-1-5-7/
|
710 |
+
* Fixed a problem with duplicate slugs on "Edit Group" screen. https://icanlocalize.basecamphq.com/projects/7393061-toolset/todo_items/187118123/comments http://toolset.com/forums/topic/cant-add-more-custom-fields/
|
711 |
* Fixed a problem with default description not disappearing for non-English placeholders. https://icanlocalize.basecamphq.com/projects/7393061-toolset/todo_items/189787190/comments
|
712 |
* Fixed a problem with Custom Taxonomy metaboxes still appearing on the Custom Post editing page even after removing a Custom Taxonomy from a Custom Post Type.
|
713 |
* Fixed embedding OTGS CSS for the admin area. https://wordpress.org/support/topic/four-stylesheets-being-loaded-at-frontend
|
714 |
+
* Fixed a problem with Checkbox field value not being saved. https://toolset.com/forums/topic/checkbox-value-not-saved/
|
715 |
+
* Added the option to select posts with the "Private" post status as parents in a parent-child Custom Post Types relationships. http://toolset.com/forums/topic/cred-child-form-not-working-with-private-ctp/
|
716 |
* Fixed a problem with the date-picker. https://icanlocalize.basecamphq.com/projects/7393061-toolset/todo_items/191190651/comments
|
717 |
* Fixed a problem with label menu in wp-admin for child posts.
|
718 |
* Fixed a problem with child table when edit parent post and children do not have title.
|
719 |
+
* Prevent to chose repetitive field in child table on edit parent screen. http://toolset.com/forums/topic/wp-types-select-child-fields-to-be-displayed-specific-fields-not-working/
|
720 |
+
* Added a dynamic "posted x minutes/hours ago" for Types fields. https://toolset.com/forums/topic/adding-a-dynamic-posted-x-minuteshours-ago-in-a-view/
|
721 |
+
* Improved post relation table by using more precise labels. http://toolset.com/forums/topic/displaying-the-best-names-of-cpts-in-applicable-contexts/
|
722 |
* Fixed a problem with display checkbox value from database if checkbox is empty.
|
723 |
|
724 |
= 1.6.3 =
|
725 |
|
726 |
* Release date: 2014-10-23
|
727 |
* Added the message to ask users to answer a short survey for feedback on their work using the Types plugin.
|
728 |
+
* Fixed a problem where the custom field group’s description was missing from the post/page editing page. http://toolset.com/forums/topic/custom-field-group-descriptions-no-longer-visible-in-cpt-add-newedit-screen/
|
729 |
+
* Fixed a problem where the field descriptions weren’t displayed on the user profile editing page. http://toolset.com/forums/topic/checkbox-description-fields-no-longer-display-in-types-1-6-2/
|
730 |
* Fixed a problem where users weren’t able to untick the single and multiple checkbox fields on the user profile editing page.
|
731 |
+
* Fixed a problem where the value of date field couldn’t be cleared and added new button which clears the date field value. http://toolset.com/forums/topic/problem-2-after-update/
|
732 |
* Replaced the deprecated like_escape function with the wpdb::esc_like function.
|
733 |
* Fixed a problem where the parent-child relations between custom post types persisted after deleting and re-creating a custom post type.
|
734 |
* Fixed a problem where date picker scripts were being enqueued in the front end. https://wordpress.org/support/topic/datepicker-css-enqueued-on-public
|
vendor/autoload.php
CHANGED
@@ -4,4 +4,4 @@
|
|
4 |
|
5 |
require_once __DIR__ . '/composer/autoload_real.php';
|
6 |
|
7 |
-
return
|
4 |
|
5 |
require_once __DIR__ . '/composer/autoload_real.php';
|
6 |
|
7 |
+
return ComposerAutoloaderInitddd6f71ce3d43f91bd17c1a0b9e5f071::getLoader();
|
vendor/composer/ClassLoader.php
CHANGED
@@ -379,9 +379,9 @@ class ClassLoader
|
|
379 |
$subPath = substr($subPath, 0, $lastPos);
|
380 |
$search = $subPath.'\\';
|
381 |
if (isset($this->prefixDirsPsr4[$search])) {
|
|
|
382 |
foreach ($this->prefixDirsPsr4[$search] as $dir) {
|
383 |
-
$
|
384 |
-
if (file_exists($file = $dir . DIRECTORY_SEPARATOR . substr($logicalPathPsr4, $length))) {
|
385 |
return $file;
|
386 |
}
|
387 |
}
|
379 |
$subPath = substr($subPath, 0, $lastPos);
|
380 |
$search = $subPath.'\\';
|
381 |
if (isset($this->prefixDirsPsr4[$search])) {
|
382 |
+
$pathEnd = DIRECTORY_SEPARATOR . substr($logicalPathPsr4, $lastPos + 1);
|
383 |
foreach ($this->prefixDirsPsr4[$search] as $dir) {
|
384 |
+
if (file_exists($file = $dir . $pathEnd)) {
|
|
|
385 |
return $file;
|
386 |
}
|
387 |
}
|
vendor/composer/autoload_classmap.php
CHANGED
@@ -96,7 +96,6 @@ return array(
|
|
96 |
'FieldFactory' => $vendorDir . '/toolset/toolset-common/toolset-forms/classes/class.field_factory.php',
|
97 |
'FormAbstract' => $vendorDir . '/toolset/toolset-common/toolset-forms/classes/abstract.form.php',
|
98 |
'FormFactory' => $vendorDir . '/toolset/toolset-common/toolset-forms/classes/class.form_factory.php',
|
99 |
-
'IOTGS_Installer_Template_Service' => $vendorDir . '/otgs/installer/templates/template-service/interface-iotgs-installer-template-service.php',
|
100 |
'IToolset_Association' => $vendorDir . '/toolset/toolset-common/inc/m2m/association/interface.php',
|
101 |
'IToolset_Association_Query_Condition' => $vendorDir . '/toolset/toolset-common/inc/m2m/association/query/condition/interface.php',
|
102 |
'IToolset_Association_Query_Element_Selector' => $vendorDir . '/toolset/toolset-common/inc/m2m/association/query/element_selector/interface.php',
|
@@ -111,7 +110,6 @@ return array(
|
|
111 |
'IToolset_Post_Type_From_Types' => $vendorDir . '/toolset/toolset-common/inc/autoloaded/post_type/i_post_type_from_types.php',
|
112 |
'IToolset_Post_Type_Registered' => $vendorDir . '/toolset/toolset-common/inc/autoloaded/post_type/i_post_type_registered.php',
|
113 |
'IToolset_Potential_Association_Query' => $vendorDir . '/toolset/toolset-common/inc/m2m/potential_association/query_interface.php',
|
114 |
-
'IToolset_Query' => $vendorDir . '/toolset/toolset-common/inc/autoloaded/i_query.php',
|
115 |
'IToolset_Query_Condition' => $vendorDir . '/toolset/toolset-common/inc/m2m/query/condition/interface.php',
|
116 |
'IToolset_Relationship_Database_Issue' => $vendorDir . '/toolset/toolset-common/inc/m2m/database/issue/interface.php',
|
117 |
'IToolset_Relationship_Definition' => $vendorDir . '/toolset/toolset-common/inc/m2m/relationship/definition/interface.php',
|
@@ -121,22 +119,18 @@ return array(
|
|
121 |
'IToolset_Relationship_Role' => $vendorDir . '/toolset/toolset-common/inc/m2m/relationship/role/interface.php',
|
122 |
'IToolset_Relationship_Role_Parent_Child' => $vendorDir . '/toolset/toolset-common/inc/m2m/relationship/role/parent_child_interface.php',
|
123 |
'IToolset_Upgrade_Command' => $vendorDir . '/toolset/toolset-common/inc/autoloaded/upgrade/command_interface.php',
|
124 |
-
'
|
125 |
-
'
|
126 |
-
'
|
127 |
-
'
|
128 |
-
'
|
129 |
-
'
|
130 |
-
'
|
131 |
-
'
|
132 |
-
'
|
133 |
-
'
|
134 |
-
'
|
135 |
-
'
|
136 |
-
'OTGS_Installer_WP_Components_Setting_Resources' => $vendorDir . '/otgs/installer/includes/class-otgs-installer-wp-components-setting-resources.php',
|
137 |
-
'OTGS_Installer_WP_Components_Setting_Templates' => $vendorDir . '/otgs/installer/includes/class-otgs-installer-wp-components-setting-templates.php',
|
138 |
-
'OTGS_Installer_WP_Components_Storage' => $vendorDir . '/otgs/installer/includes/class-otgs-installer-wp-components-storage.php',
|
139 |
-
'OTGS_Installer_WP_Share_Local_Components_Setting' => $vendorDir . '/otgs/installer/includes/class-otgs-installer-wp-share-local-components-setting.php',
|
140 |
'ReCaptchaResponse' => $vendorDir . '/toolset/toolset-common/toolset-forms/js/recaptcha-php-1.11/recaptchalib.php',
|
141 |
'Toolset_Admin_Bar_Menu' => $vendorDir . '/toolset/toolset-common/inc/toolset.admin.bar.menu.class.php',
|
142 |
'Toolset_Admin_Controller' => $vendorDir . '/toolset/toolset-common/inc/autoloaded/admin.php',
|
@@ -160,6 +154,7 @@ return array(
|
|
160 |
'Toolset_Ajax_Handler_Interface' => $vendorDir . '/toolset/toolset-common/inc/autoloaded/ajax_handler/interface.php',
|
161 |
'Toolset_Ajax_Handler_Intermediary_Post_Cleanup' => $vendorDir . '/toolset/toolset-common/inc/autoloaded/ajax_handler/intermediary_post_cleanup.php',
|
162 |
'Toolset_Ajax_Handler_Migrate_To_M2M' => $vendorDir . '/toolset/toolset-common/inc/autoloaded/ajax_handler/migrate_to_m2m.php',
|
|
|
163 |
'Toolset_Ajax_Handler_Select2_Suggest_Posts_By_Title' => $vendorDir . '/toolset/toolset-common/inc/autoloaded/ajax_handler/select2_suggest_posts_by_title.php',
|
164 |
'Toolset_Ajax_Handler_Select2_Suggest_Terms' => $vendorDir . '/toolset/toolset-common/inc/autoloaded/ajax_handler/select2_suggest_terms.php',
|
165 |
'Toolset_Ajax_Handler_Select2_Suggest_Users' => $vendorDir . '/toolset/toolset-common/inc/autoloaded/ajax_handler/select2_suggest_users.php',
|
@@ -173,6 +168,7 @@ return array(
|
|
173 |
'Toolset_Association_Cleanup_Dangling_Intermediary_Posts' => $vendorDir . '/toolset/toolset-common/inc/m2m/association/cleanup/dangling_intermediary_posts.php',
|
174 |
'Toolset_Association_Cleanup_Factory' => $vendorDir . '/toolset/toolset-common/inc/m2m/association/cleanup/factory.php',
|
175 |
'Toolset_Association_Cleanup_Post' => $vendorDir . '/toolset/toolset-common/inc/m2m/association/cleanup/post.php',
|
|
|
176 |
'Toolset_Association_Cleanup_Troubleshooting_Section' => $vendorDir . '/toolset/toolset-common/inc/m2m/association/cleanup/troubleshooting_section.php',
|
177 |
'Toolset_Association_Factory' => $vendorDir . '/toolset/toolset-common/inc/m2m/association/factory.php',
|
178 |
'Toolset_Association_Intermediary_Post_Persistence' => $vendorDir . '/toolset/toolset-common/inc/m2m/association/intermediary_post_persistence.php',
|
@@ -185,21 +181,26 @@ return array(
|
|
185 |
'Toolset_Association_Query_Condition_Element_Status' => $vendorDir . '/toolset/toolset-common/inc/m2m/association/query/condition/element_status.php',
|
186 |
'Toolset_Association_Query_Condition_Empty_Intermediary' => $vendorDir . '/toolset/toolset-common/inc/m2m/association/query/condition/empty_intermediary.php',
|
187 |
'Toolset_Association_Query_Condition_Exclude_Element' => $vendorDir . '/toolset/toolset-common/inc/m2m/association/query/condition/exclude_element.php',
|
|
|
188 |
'Toolset_Association_Query_Condition_Factory' => $vendorDir . '/toolset/toolset-common/inc/m2m/association/query/condition_factory.php',
|
189 |
'Toolset_Association_Query_Condition_Has_Active_Relationship' => $vendorDir . '/toolset/toolset-common/inc/m2m/association/query/condition/has_active_relationship.php',
|
190 |
'Toolset_Association_Query_Condition_Has_Domain' => $vendorDir . '/toolset/toolset-common/inc/m2m/association/query/condition/has_domain.php',
|
191 |
'Toolset_Association_Query_Condition_Has_Domain_And_Type' => $vendorDir . '/toolset/toolset-common/inc/m2m/association/query/condition/has_domain_and_type.php',
|
|
|
192 |
'Toolset_Association_Query_Condition_Has_Legacy_Relationship' => $vendorDir . '/toolset/toolset-common/inc/m2m/association/query/condition/has_legacy_relationship.php',
|
193 |
'Toolset_Association_Query_Condition_Has_Type' => $vendorDir . '/toolset/toolset-common/inc/m2m/association/query/condition/has_type.php',
|
|
|
194 |
'Toolset_Association_Query_Condition_Postmeta' => $vendorDir . '/toolset/toolset-common/inc/m2m/association/query/condition/postmeta.php',
|
195 |
'Toolset_Association_Query_Condition_Relationship_Flag' => $vendorDir . '/toolset/toolset-common/inc/m2m/association/query/condition/relationship_flag.php',
|
196 |
'Toolset_Association_Query_Condition_Relationship_Id' => $vendorDir . '/toolset/toolset-common/inc/m2m/association/query/condition/relationship_id.php',
|
|
|
197 |
'Toolset_Association_Query_Condition_Search' => $vendorDir . '/toolset/toolset-common/inc/m2m/association/query/condition/search.php',
|
198 |
'Toolset_Association_Query_Condition_Wp_Query' => $vendorDir . '/toolset/toolset-common/inc/m2m/association/query/condition/wp_query.php',
|
199 |
'Toolset_Association_Query_Element_Selector_Abstract' => $vendorDir . '/toolset/toolset-common/inc/m2m/association/query/element_selector/abstract.php',
|
200 |
'Toolset_Association_Query_Element_Selector_Default' => $vendorDir . '/toolset/toolset-common/inc/m2m/association/query/element_selector/default.php',
|
201 |
'Toolset_Association_Query_Element_Selector_Provider' => $vendorDir . '/toolset/toolset-common/inc/m2m/association/query/element_selector/provider.php',
|
202 |
'Toolset_Association_Query_Element_Selector_Wpml' => $vendorDir . '/toolset/toolset-common/inc/m2m/association/query/element_selector/wpml.php',
|
|
|
203 |
'Toolset_Association_Query_Orderby' => $vendorDir . '/toolset/toolset-common/inc/m2m/association/query/orderby/abstract.php',
|
204 |
'Toolset_Association_Query_Orderby_Factory' => $vendorDir . '/toolset/toolset-common/inc/m2m/association/query/orderby_factory.php',
|
205 |
'Toolset_Association_Query_Orderby_Nothing' => $vendorDir . '/toolset/toolset-common/inc/m2m/association/query/orderby/nothing.php',
|
@@ -316,6 +317,7 @@ return array(
|
|
316 |
'Toolset_Field_Renderer_Preview_Date' => $vendorDir . '/toolset/toolset-common/inc/autoloaded/field/renderer/preview/date.php',
|
317 |
'Toolset_Field_Renderer_Preview_File' => $vendorDir . '/toolset/toolset-common/inc/autoloaded/field/renderer/preview/file.php',
|
318 |
'Toolset_Field_Renderer_Preview_Image' => $vendorDir . '/toolset/toolset-common/inc/autoloaded/field/renderer/preview/image.php',
|
|
|
319 |
'Toolset_Field_Renderer_Preview_Radio' => $vendorDir . '/toolset/toolset-common/inc/autoloaded/field/renderer/preview/radio.php',
|
320 |
'Toolset_Field_Renderer_Preview_Skype' => $vendorDir . '/toolset/toolset-common/inc/autoloaded/field/renderer/preview/skype.php',
|
321 |
'Toolset_Field_Renderer_Preview_Textfield' => $vendorDir . '/toolset/toolset-common/inc/autoloaded/field/renderer/preview/textfield.php',
|
@@ -358,17 +360,25 @@ return array(
|
|
358 |
'Toolset_Post_Type_Factory' => $vendorDir . '/toolset/toolset-common/inc/autoloaded/post_type/factory.php',
|
359 |
'Toolset_Post_Type_From_Types' => $vendorDir . '/toolset/toolset-common/inc/autoloaded/post_type/from_types.php',
|
360 |
'Toolset_Post_Type_Labels' => $vendorDir . '/toolset/toolset-common/inc/autoloaded/post_type/labels.php',
|
|
|
361 |
'Toolset_Post_Type_Query' => $vendorDir . '/toolset/toolset-common/inc/autoloaded/post_type/query.php',
|
362 |
'Toolset_Post_Type_Query_Factory' => $vendorDir . '/toolset/toolset-common/inc/autoloaded/post_type/query_factory.php',
|
363 |
'Toolset_Post_Type_Registered' => $vendorDir . '/toolset/toolset-common/inc/autoloaded/post_type/registered.php',
|
364 |
'Toolset_Post_Type_Repository' => $vendorDir . '/toolset/toolset-common/inc/autoloaded/post_type/repository.php',
|
|
|
|
|
|
|
365 |
'Toolset_Potential_Association_Query_Factory' => $vendorDir . '/toolset/toolset-common/inc/m2m/potential_association/query_factory.php',
|
|
|
|
|
|
|
366 |
'Toolset_Potential_Association_Query_Posts' => $vendorDir . '/toolset/toolset-common/inc/m2m/potential_association/query_posts.php',
|
367 |
'Toolset_Promotion' => $vendorDir . '/toolset/toolset-common/inc/toolset.promotion.class.php',
|
368 |
'Toolset_Public_API_Loader' => $vendorDir . '/toolset/toolset-common/inc/public_api/loader.php',
|
369 |
'Toolset_Query_Comparison_Operator' => $vendorDir . '/toolset/toolset-common/inc/m2m/query/comparison_operator.php',
|
370 |
'Toolset_Query_Condition_And' => $vendorDir . '/toolset/toolset-common/inc/m2m/query/condition/and.php',
|
371 |
'Toolset_Query_Condition_Contradiction' => $vendorDir . '/toolset/toolset-common/inc/m2m/query/condition/contradiction.php',
|
|
|
372 |
'Toolset_Query_Condition_Operator' => $vendorDir . '/toolset/toolset-common/inc/m2m/query/condition/operator.php',
|
373 |
'Toolset_Query_Condition_Or' => $vendorDir . '/toolset/toolset-common/inc/m2m/query/condition/or.php',
|
374 |
'Toolset_Query_Condition_Tautology' => $vendorDir . '/toolset/toolset-common/inc/m2m/query/condition/tautology.php',
|
@@ -402,10 +412,13 @@ return array(
|
|
402 |
'Toolset_Relationship_Query_Cardinality_Match_Operators' => $vendorDir . '/toolset/toolset-common/inc/m2m/relationship/query/cardinality_match/operators.php',
|
403 |
'Toolset_Relationship_Query_Cardinality_Match_Single' => $vendorDir . '/toolset/toolset-common/inc/m2m/relationship/query/cardinality_match/single.php',
|
404 |
'Toolset_Relationship_Query_Condition' => $vendorDir . '/toolset/toolset-common/inc/m2m/relationship/query/condition/abstract.php',
|
|
|
|
|
405 |
'Toolset_Relationship_Query_Condition_Factory' => $vendorDir . '/toolset/toolset-common/inc/m2m/relationship/query/condition_factory.php',
|
406 |
'Toolset_Relationship_Query_Condition_Has_Active_Types' => $vendorDir . '/toolset/toolset-common/inc/m2m/relationship/query/condition/has_active_types.php',
|
407 |
'Toolset_Relationship_Query_Condition_Has_Cardinality' => $vendorDir . '/toolset/toolset-common/inc/m2m/relationship/query/condition/has_cardinality.php',
|
408 |
'Toolset_Relationship_Query_Condition_Has_Domain' => $vendorDir . '/toolset/toolset-common/inc/m2m/relationship/query/condition/has_domain.php',
|
|
|
409 |
'Toolset_Relationship_Query_Condition_Is_Active' => $vendorDir . '/toolset/toolset-common/inc/m2m/relationship/query/condition/is_active.php',
|
410 |
'Toolset_Relationship_Query_Condition_Is_Boolean_Flag' => $vendorDir . '/toolset/toolset-common/inc/m2m/relationship/query/condition/is_boolean_flag.php',
|
411 |
'Toolset_Relationship_Query_Condition_Is_Legacy' => $vendorDir . '/toolset/toolset-common/inc/m2m/relationship/query/condition/is_legacy.php',
|
@@ -434,11 +447,18 @@ return array(
|
|
434 |
'Toolset_Settings_Screen' => $vendorDir . '/toolset/toolset-common/inc/toolset.settings.screen.class.php',
|
435 |
'Toolset_Shortcode_Attr_Field' => $vendorDir . '/toolset/toolset-common/inc/autoloaded/shortcode/attr/field.php',
|
436 |
'Toolset_Shortcode_Attr_Interface' => $vendorDir . '/toolset/toolset-common/inc/autoloaded/shortcode/attr/interface.php',
|
|
|
|
|
|
|
|
|
|
|
|
|
437 |
'Toolset_Shortcode_Attr_Item_Id' => $vendorDir . '/toolset/toolset-common/inc/autoloaded/shortcode/attr/item/id.php',
|
438 |
'Toolset_Shortcode_Attr_Item_Legacy' => $vendorDir . '/toolset/toolset-common/inc/autoloaded/shortcode/attr/item/legacy.php',
|
439 |
'Toolset_Shortcode_Attr_Item_M2M' => $vendorDir . '/toolset/toolset-common/inc/autoloaded/shortcode/attr/item/m2m.php',
|
440 |
'Toolset_Shortcode_Generator' => $vendorDir . '/toolset/toolset-common/inc/toolset.shortcode.generator.class.php',
|
441 |
'Toolset_Shortcode_Transformer' => $vendorDir . '/toolset/toolset-common/inc/toolset.shortcode.transformer.class.php',
|
|
|
442 |
'Toolset_Stack' => $vendorDir . '/toolset/toolset-common/expression-parser/parser.php',
|
443 |
'Toolset_Style' => $vendorDir . '/toolset/toolset-common/inc/toolset.assets.manager.class.php',
|
444 |
'Toolset_Template_Dialog_Box' => $vendorDir . '/toolset/toolset-common/utility/gui-base/template_dialog_box.php',
|
@@ -449,8 +469,10 @@ return array(
|
|
449 |
'Toolset_Twig_Extensions' => $vendorDir . '/toolset/toolset-common/utility/gui-base/twig_extensions.php',
|
450 |
'Toolset_Upgrade_Command_Definition' => $vendorDir . '/toolset/toolset-common/inc/autoloaded/upgrade/command_definition.php',
|
451 |
'Toolset_Upgrade_Command_Definition_Repository' => $vendorDir . '/toolset/toolset-common/inc/autoloaded/upgrade/command_definition_repository.php',
|
|
|
452 |
'Toolset_Upgrade_Command_Factory' => $vendorDir . '/toolset/toolset-common/inc/autoloaded/upgrade/command_factory.php',
|
453 |
'Toolset_Upgrade_Command_M2M_V1_Database_Structure_Upgrade' => $vendorDir . '/toolset/toolset-common/inc/autoloaded/upgrade/command/m2m_v1_database_structure_upgrade.php',
|
|
|
454 |
'Toolset_Upgrade_Controller' => $vendorDir . '/toolset/toolset-common/inc/autoloaded/upgrade/controller.php',
|
455 |
'Toolset_Upgrade_Executed_Commands' => $vendorDir . '/toolset/toolset-common/inc/autoloaded/upgrade/executed_commands.php',
|
456 |
'Toolset_User_Editors_Editor_Abstract' => $vendorDir . '/toolset/toolset-common/user-editors/editor/abstract.php',
|
@@ -496,7 +518,6 @@ return array(
|
|
496 |
'Toolset_Wp_Query_Adjustments_Table_Join_Manager' => $vendorDir . '/toolset/toolset-common/inc/autoloaded/wp_query_adjustments/table_join_manager.php',
|
497 |
'Toolset_Wpdb_User' => $vendorDir . '/toolset/toolset-common/inc/autoloaded/wpdb_user.php',
|
498 |
'Toolset_Wpml_Utils' => $vendorDir . '/toolset/toolset-common/inc/autoloaded/wpml_utils.php',
|
499 |
-
'Translation_Service_Info' => $vendorDir . '/otgs/installer/includes/class-translation-service-info.php',
|
500 |
'Twig_Autoloader' => $vendorDir . '/twig/twig/lib/Twig/Autoloader.php',
|
501 |
'Twig_BaseNodeVisitor' => $vendorDir . '/twig/twig/lib/Twig/BaseNodeVisitor.php',
|
502 |
'Twig_CacheInterface' => $vendorDir . '/twig/twig/lib/Twig/CacheInterface.php',
|
@@ -696,6 +717,7 @@ return array(
|
|
696 |
'Twig_Util_TemplateDirIterator' => $vendorDir . '/twig/twig/lib/Twig/Util/TemplateDirIterator.php',
|
697 |
'Types_Admin' => $baseDir . '/application/controllers/admin.php',
|
698 |
'Types_Admin_Menu' => $baseDir . '/application/controllers/admin_menu.php',
|
|
|
699 |
'Types_Ajax' => $baseDir . '/application/controllers/ajax.php',
|
700 |
'Types_Ajax_Handler_Abstract' => $baseDir . '/application/controllers/ajax/handler/abstract.php',
|
701 |
'Types_Ajax_Handler_Check_Slug_Conflicts' => $baseDir . '/application/controllers/ajax/handler/check_slug_conflicts.php',
|
@@ -848,14 +870,10 @@ return array(
|
|
848 |
'WPToolset_Field_Wysiwyg' => $vendorDir . '/toolset/toolset-common/toolset-forms/classes/class.wysiwyg.php',
|
849 |
'WPToolset_Forms_Bootstrap' => $vendorDir . '/toolset/toolset-common/toolset-forms/bootstrap.php',
|
850 |
'WPToolset_Forms_Conditional' => $vendorDir . '/toolset/toolset-common/toolset-forms/classes/class.conditional.php',
|
|
|
851 |
'WPToolset_Forms_Repetitive' => $vendorDir . '/toolset/toolset-common/toolset-forms/classes/class.repetitive.php',
|
852 |
'WPToolset_Forms_Validation' => $vendorDir . '/toolset/toolset-common/toolset-forms/classes/class.validation.php',
|
853 |
'WPToolset_Types' => $vendorDir . '/toolset/toolset-common/toolset-forms/classes/class.types.php',
|
854 |
'WPV_Handle_Users_Functions' => $vendorDir . '/toolset/toolset-common/toolset-forms/classes/class.conditional.php',
|
855 |
'WPV_wpcf_switch_post_from_attr_id' => $vendorDir . '/toolset/toolset-common/inc/toolset.object.relationship.class.php',
|
856 |
-
'WP_Installer' => $vendorDir . '/otgs/installer/includes/class-wp-installer.php',
|
857 |
-
'WP_Installer_API' => $vendorDir . '/otgs/installer/includes/class-wp-installer-api.php',
|
858 |
-
'WP_Installer_Channels' => $vendorDir . '/otgs/installer/includes/class-wp-installer-channels.php',
|
859 |
-
'xrstf\\Composer52\\AutoloadGenerator' => $vendorDir . '/xrstf/composer-php52/lib/xrstf/Composer52/AutoloadGenerator.php',
|
860 |
-
'xrstf\\Composer52\\Generator' => $vendorDir . '/xrstf/composer-php52/lib/xrstf/Composer52/Generator.php',
|
861 |
);
|
96 |
'FieldFactory' => $vendorDir . '/toolset/toolset-common/toolset-forms/classes/class.field_factory.php',
|
97 |
'FormAbstract' => $vendorDir . '/toolset/toolset-common/toolset-forms/classes/abstract.form.php',
|
98 |
'FormFactory' => $vendorDir . '/toolset/toolset-common/toolset-forms/classes/class.form_factory.php',
|
|
|
99 |
'IToolset_Association' => $vendorDir . '/toolset/toolset-common/inc/m2m/association/interface.php',
|
100 |
'IToolset_Association_Query_Condition' => $vendorDir . '/toolset/toolset-common/inc/m2m/association/query/condition/interface.php',
|
101 |
'IToolset_Association_Query_Element_Selector' => $vendorDir . '/toolset/toolset-common/inc/m2m/association/query/element_selector/interface.php',
|
110 |
'IToolset_Post_Type_From_Types' => $vendorDir . '/toolset/toolset-common/inc/autoloaded/post_type/i_post_type_from_types.php',
|
111 |
'IToolset_Post_Type_Registered' => $vendorDir . '/toolset/toolset-common/inc/autoloaded/post_type/i_post_type_registered.php',
|
112 |
'IToolset_Potential_Association_Query' => $vendorDir . '/toolset/toolset-common/inc/m2m/potential_association/query_interface.php',
|
|
|
113 |
'IToolset_Query_Condition' => $vendorDir . '/toolset/toolset-common/inc/m2m/query/condition/interface.php',
|
114 |
'IToolset_Relationship_Database_Issue' => $vendorDir . '/toolset/toolset-common/inc/m2m/database/issue/interface.php',
|
115 |
'IToolset_Relationship_Definition' => $vendorDir . '/toolset/toolset-common/inc/m2m/relationship/definition/interface.php',
|
119 |
'IToolset_Relationship_Role' => $vendorDir . '/toolset/toolset-common/inc/m2m/relationship/role/interface.php',
|
120 |
'IToolset_Relationship_Role_Parent_Child' => $vendorDir . '/toolset/toolset-common/inc/m2m/relationship/role/parent_child_interface.php',
|
121 |
'IToolset_Upgrade_Command' => $vendorDir . '/toolset/toolset-common/inc/autoloaded/upgrade/command_interface.php',
|
122 |
+
'OTGS\\Toolset\\Common\\Condition\\Installer\\IsAvailable' => $vendorDir . '/toolset/toolset-common/utility/condition/plugin/installer/is_available.php',
|
123 |
+
'OTGS\\Toolset\\Common\\Condition\\Installer\\IsToolsetSubscriptionValid' => $vendorDir . '/toolset/toolset-common/utility/condition/plugin/installer/is_toolset_subscription_valid.php',
|
124 |
+
'OTGS\\Toolset\\Common\\Interop\\HandlerInterface' => $vendorDir . '/toolset/toolset-common/inc/autoloaded/interop/handler_interface.php',
|
125 |
+
'OTGS\\Toolset\\Common\\Interop\\Handler\\InstallerCompatibilityReporting' => $vendorDir . '/toolset/toolset-common/inc/autoloaded/interop/handler/installer_compatibility_reporting.php',
|
126 |
+
'OTGS\\Toolset\\Common\\Interop\\Mediator' => $vendorDir . '/toolset/toolset-common/inc/autoloaded/interop/mediator.php',
|
127 |
+
'OTGS\\Toolset\\Common\\M2M\\Association\\Repository' => $vendorDir . '/toolset/toolset-common/inc/m2m/association/Repository.php',
|
128 |
+
'OTGS\\Toolset\\Common\\M2M\\PotentialAssociation\\CardinalityPostQuery' => $vendorDir . '/toolset/toolset-common/inc/m2m/potential_association/cardinality_post_query.php',
|
129 |
+
'OTGS\\Toolset\\Common\\M2M\\PotentialAssociation\\JoinManager' => $vendorDir . '/toolset/toolset-common/inc/m2m/potential_association/join_manager.php',
|
130 |
+
'OTGS\\Toolset\\Common\\M2M\\PotentialAssociation\\WpQueryAdjustment' => $vendorDir . '/toolset/toolset-common/inc/m2m/potential_association/wp_query_adjustment.php',
|
131 |
+
'OTGS\\Toolset\\Common\\M2M\\PublicApiService' => $vendorDir . '/toolset/toolset-common/inc/m2m/public_api_service.php',
|
132 |
+
'OTGS\\Toolset\\Common\\MaintenanceMode\\Controller' => $vendorDir . '/toolset/toolset-common/inc/autoloaded/maintenance_mode/controller.php',
|
133 |
+
'OTGS\\Toolset\\Common\\Utility\\Admin\\Notices\\Builder' => $vendorDir . '/toolset/toolset-common/utility/admin/notices/Builder.php',
|
|
|
|
|
|
|
|
|
134 |
'ReCaptchaResponse' => $vendorDir . '/toolset/toolset-common/toolset-forms/js/recaptcha-php-1.11/recaptchalib.php',
|
135 |
'Toolset_Admin_Bar_Menu' => $vendorDir . '/toolset/toolset-common/inc/toolset.admin.bar.menu.class.php',
|
136 |
'Toolset_Admin_Controller' => $vendorDir . '/toolset/toolset-common/inc/autoloaded/admin.php',
|
154 |
'Toolset_Ajax_Handler_Interface' => $vendorDir . '/toolset/toolset-common/inc/autoloaded/ajax_handler/interface.php',
|
155 |
'Toolset_Ajax_Handler_Intermediary_Post_Cleanup' => $vendorDir . '/toolset/toolset-common/inc/autoloaded/ajax_handler/intermediary_post_cleanup.php',
|
156 |
'Toolset_Ajax_Handler_Migrate_To_M2M' => $vendorDir . '/toolset/toolset-common/inc/autoloaded/ajax_handler/migrate_to_m2m.php',
|
157 |
+
'Toolset_Ajax_Handler_Select2_Suggest_Posts_By_Post_Type' => $vendorDir . '/toolset/toolset-common/inc/autoloaded/ajax_handler/select2_suggest_posts_by_post_type.php',
|
158 |
'Toolset_Ajax_Handler_Select2_Suggest_Posts_By_Title' => $vendorDir . '/toolset/toolset-common/inc/autoloaded/ajax_handler/select2_suggest_posts_by_title.php',
|
159 |
'Toolset_Ajax_Handler_Select2_Suggest_Terms' => $vendorDir . '/toolset/toolset-common/inc/autoloaded/ajax_handler/select2_suggest_terms.php',
|
160 |
'Toolset_Ajax_Handler_Select2_Suggest_Users' => $vendorDir . '/toolset/toolset-common/inc/autoloaded/ajax_handler/select2_suggest_users.php',
|
168 |
'Toolset_Association_Cleanup_Dangling_Intermediary_Posts' => $vendorDir . '/toolset/toolset-common/inc/m2m/association/cleanup/dangling_intermediary_posts.php',
|
169 |
'Toolset_Association_Cleanup_Factory' => $vendorDir . '/toolset/toolset-common/inc/m2m/association/cleanup/factory.php',
|
170 |
'Toolset_Association_Cleanup_Post' => $vendorDir . '/toolset/toolset-common/inc/m2m/association/cleanup/post.php',
|
171 |
+
'Toolset_Association_Cleanup_Post_Type' => $vendorDir . '/toolset/toolset-common/inc/m2m/association/cleanup/post_type.php',
|
172 |
'Toolset_Association_Cleanup_Troubleshooting_Section' => $vendorDir . '/toolset/toolset-common/inc/m2m/association/cleanup/troubleshooting_section.php',
|
173 |
'Toolset_Association_Factory' => $vendorDir . '/toolset/toolset-common/inc/m2m/association/factory.php',
|
174 |
'Toolset_Association_Intermediary_Post_Persistence' => $vendorDir . '/toolset/toolset-common/inc/m2m/association/intermediary_post_persistence.php',
|
181 |
'Toolset_Association_Query_Condition_Element_Status' => $vendorDir . '/toolset/toolset-common/inc/m2m/association/query/condition/element_status.php',
|
182 |
'Toolset_Association_Query_Condition_Empty_Intermediary' => $vendorDir . '/toolset/toolset-common/inc/m2m/association/query/condition/empty_intermediary.php',
|
183 |
'Toolset_Association_Query_Condition_Exclude_Element' => $vendorDir . '/toolset/toolset-common/inc/m2m/association/query/condition/exclude_element.php',
|
184 |
+
'Toolset_Association_Query_Condition_Exclude_Relationship' => $vendorDir . '/toolset/toolset-common/inc/m2m/association/query/condition/exclude_relationship.php',
|
185 |
'Toolset_Association_Query_Condition_Factory' => $vendorDir . '/toolset/toolset-common/inc/m2m/association/query/condition_factory.php',
|
186 |
'Toolset_Association_Query_Condition_Has_Active_Relationship' => $vendorDir . '/toolset/toolset-common/inc/m2m/association/query/condition/has_active_relationship.php',
|
187 |
'Toolset_Association_Query_Condition_Has_Domain' => $vendorDir . '/toolset/toolset-common/inc/m2m/association/query/condition/has_domain.php',
|
188 |
'Toolset_Association_Query_Condition_Has_Domain_And_Type' => $vendorDir . '/toolset/toolset-common/inc/m2m/association/query/condition/has_domain_and_type.php',
|
189 |
+
'Toolset_Association_Query_Condition_Has_Intermediary_Id' => $vendorDir . '/toolset/toolset-common/inc/m2m/association/query/condition/has_intermediary_id.php',
|
190 |
'Toolset_Association_Query_Condition_Has_Legacy_Relationship' => $vendorDir . '/toolset/toolset-common/inc/m2m/association/query/condition/has_legacy_relationship.php',
|
191 |
'Toolset_Association_Query_Condition_Has_Type' => $vendorDir . '/toolset/toolset-common/inc/m2m/association/query/condition/has_type.php',
|
192 |
+
'Toolset_Association_Query_Condition_Intermediary_Id' => $vendorDir . '/toolset/toolset-common/inc/m2m/association/query/condition/intermediary_id.php',
|
193 |
'Toolset_Association_Query_Condition_Postmeta' => $vendorDir . '/toolset/toolset-common/inc/m2m/association/query/condition/postmeta.php',
|
194 |
'Toolset_Association_Query_Condition_Relationship_Flag' => $vendorDir . '/toolset/toolset-common/inc/m2m/association/query/condition/relationship_flag.php',
|
195 |
'Toolset_Association_Query_Condition_Relationship_Id' => $vendorDir . '/toolset/toolset-common/inc/m2m/association/query/condition/relationship_id.php',
|
196 |
+
'Toolset_Association_Query_Condition_Relationship_Origin' => $vendorDir . '/toolset/toolset-common/inc/m2m/association/query/condition/relationship_origin.php',
|
197 |
'Toolset_Association_Query_Condition_Search' => $vendorDir . '/toolset/toolset-common/inc/m2m/association/query/condition/search.php',
|
198 |
'Toolset_Association_Query_Condition_Wp_Query' => $vendorDir . '/toolset/toolset-common/inc/m2m/association/query/condition/wp_query.php',
|
199 |
'Toolset_Association_Query_Element_Selector_Abstract' => $vendorDir . '/toolset/toolset-common/inc/m2m/association/query/element_selector/abstract.php',
|
200 |
'Toolset_Association_Query_Element_Selector_Default' => $vendorDir . '/toolset/toolset-common/inc/m2m/association/query/element_selector/default.php',
|
201 |
'Toolset_Association_Query_Element_Selector_Provider' => $vendorDir . '/toolset/toolset-common/inc/m2m/association/query/element_selector/provider.php',
|
202 |
'Toolset_Association_Query_Element_Selector_Wpml' => $vendorDir . '/toolset/toolset-common/inc/m2m/association/query/element_selector/wpml.php',
|
203 |
+
'Toolset_Association_Query_Element_Selector_Wpml_Lang_All' => $vendorDir . '/toolset/toolset-common/inc/m2m/association/query/element_selector/wpml_lang_all.php',
|
204 |
'Toolset_Association_Query_Orderby' => $vendorDir . '/toolset/toolset-common/inc/m2m/association/query/orderby/abstract.php',
|
205 |
'Toolset_Association_Query_Orderby_Factory' => $vendorDir . '/toolset/toolset-common/inc/m2m/association/query/orderby_factory.php',
|
206 |
'Toolset_Association_Query_Orderby_Nothing' => $vendorDir . '/toolset/toolset-common/inc/m2m/association/query/orderby/nothing.php',
|
317 |
'Toolset_Field_Renderer_Preview_Date' => $vendorDir . '/toolset/toolset-common/inc/autoloaded/field/renderer/preview/date.php',
|
318 |
'Toolset_Field_Renderer_Preview_File' => $vendorDir . '/toolset/toolset-common/inc/autoloaded/field/renderer/preview/file.php',
|
319 |
'Toolset_Field_Renderer_Preview_Image' => $vendorDir . '/toolset/toolset-common/inc/autoloaded/field/renderer/preview/image.php',
|
320 |
+
'Toolset_Field_Renderer_Preview_Post' => $vendorDir . '/toolset/toolset-common/inc/autoloaded/field/renderer/preview/post.php',
|
321 |
'Toolset_Field_Renderer_Preview_Radio' => $vendorDir . '/toolset/toolset-common/inc/autoloaded/field/renderer/preview/radio.php',
|
322 |
'Toolset_Field_Renderer_Preview_Skype' => $vendorDir . '/toolset/toolset-common/inc/autoloaded/field/renderer/preview/skype.php',
|
323 |
'Toolset_Field_Renderer_Preview_Textfield' => $vendorDir . '/toolset/toolset-common/inc/autoloaded/field/renderer/preview/textfield.php',
|
360 |
'Toolset_Post_Type_Factory' => $vendorDir . '/toolset/toolset-common/inc/autoloaded/post_type/factory.php',
|
361 |
'Toolset_Post_Type_From_Types' => $vendorDir . '/toolset/toolset-common/inc/autoloaded/post_type/from_types.php',
|
362 |
'Toolset_Post_Type_Labels' => $vendorDir . '/toolset/toolset-common/inc/autoloaded/post_type/labels.php',
|
363 |
+
'Toolset_Post_Type_List' => $vendorDir . '/toolset/toolset-common/inc/autoloaded/post_type/list.php',
|
364 |
'Toolset_Post_Type_Query' => $vendorDir . '/toolset/toolset-common/inc/autoloaded/post_type/query.php',
|
365 |
'Toolset_Post_Type_Query_Factory' => $vendorDir . '/toolset/toolset-common/inc/autoloaded/post_type/query_factory.php',
|
366 |
'Toolset_Post_Type_Registered' => $vendorDir . '/toolset/toolset-common/inc/autoloaded/post_type/registered.php',
|
367 |
'Toolset_Post_Type_Repository' => $vendorDir . '/toolset/toolset-common/inc/autoloaded/post_type/repository.php',
|
368 |
+
'Toolset_Postmeta_Access_Loader' => $vendorDir . '/toolset/toolset-common/inc/autoloaded/postmeta_access/loader.php',
|
369 |
+
'Toolset_Postmeta_Access_M2m' => $vendorDir . '/toolset/toolset-common/inc/autoloaded/postmeta_access/m2m.php',
|
370 |
+
'Toolset_Potential_Association_Query_Arguments' => $vendorDir . '/toolset/toolset-common/inc/m2m/potential_association/query_arguments.php',
|
371 |
'Toolset_Potential_Association_Query_Factory' => $vendorDir . '/toolset/toolset-common/inc/m2m/potential_association/query_factory.php',
|
372 |
+
'Toolset_Potential_Association_Query_Filter_Interface' => $vendorDir . '/toolset/toolset-common/inc/m2m/potential_association/filters/interface.php',
|
373 |
+
'Toolset_Potential_Association_Query_Filter_Posts_Author' => $vendorDir . '/toolset/toolset-common/inc/m2m/potential_association/filters/post/author.php',
|
374 |
+
'Toolset_Potential_Association_Query_Filter_Search_String' => $vendorDir . '/toolset/toolset-common/inc/m2m/potential_association/filters/search_string.php',
|
375 |
'Toolset_Potential_Association_Query_Posts' => $vendorDir . '/toolset/toolset-common/inc/m2m/potential_association/query_posts.php',
|
376 |
'Toolset_Promotion' => $vendorDir . '/toolset/toolset-common/inc/toolset.promotion.class.php',
|
377 |
'Toolset_Public_API_Loader' => $vendorDir . '/toolset/toolset-common/inc/public_api/loader.php',
|
378 |
'Toolset_Query_Comparison_Operator' => $vendorDir . '/toolset/toolset-common/inc/m2m/query/comparison_operator.php',
|
379 |
'Toolset_Query_Condition_And' => $vendorDir . '/toolset/toolset-common/inc/m2m/query/condition/and.php',
|
380 |
'Toolset_Query_Condition_Contradiction' => $vendorDir . '/toolset/toolset-common/inc/m2m/query/condition/contradiction.php',
|
381 |
+
'Toolset_Query_Condition_Not' => $vendorDir . '/toolset/toolset-common/inc/m2m/query/condition/not.php',
|
382 |
'Toolset_Query_Condition_Operator' => $vendorDir . '/toolset/toolset-common/inc/m2m/query/condition/operator.php',
|
383 |
'Toolset_Query_Condition_Or' => $vendorDir . '/toolset/toolset-common/inc/m2m/query/condition/or.php',
|
384 |
'Toolset_Query_Condition_Tautology' => $vendorDir . '/toolset/toolset-common/inc/m2m/query/condition/tautology.php',
|
412 |
'Toolset_Relationship_Query_Cardinality_Match_Operators' => $vendorDir . '/toolset/toolset-common/inc/m2m/relationship/query/cardinality_match/operators.php',
|
413 |
'Toolset_Relationship_Query_Cardinality_Match_Single' => $vendorDir . '/toolset/toolset-common/inc/m2m/relationship/query/cardinality_match/single.php',
|
414 |
'Toolset_Relationship_Query_Condition' => $vendorDir . '/toolset/toolset-common/inc/m2m/relationship/query/condition/abstract.php',
|
415 |
+
'Toolset_Relationship_Query_Condition_Exclude_Relationship' => $vendorDir . '/toolset/toolset-common/inc/m2m/relationship/query/condition/exclude_relationship.php',
|
416 |
+
'Toolset_Relationship_Query_Condition_Exclude_Type' => $vendorDir . '/toolset/toolset-common/inc/m2m/relationship/query/condition/exclude_type.php',
|
417 |
'Toolset_Relationship_Query_Condition_Factory' => $vendorDir . '/toolset/toolset-common/inc/m2m/relationship/query/condition_factory.php',
|
418 |
'Toolset_Relationship_Query_Condition_Has_Active_Types' => $vendorDir . '/toolset/toolset-common/inc/m2m/relationship/query/condition/has_active_types.php',
|
419 |
'Toolset_Relationship_Query_Condition_Has_Cardinality' => $vendorDir . '/toolset/toolset-common/inc/m2m/relationship/query/condition/has_cardinality.php',
|
420 |
'Toolset_Relationship_Query_Condition_Has_Domain' => $vendorDir . '/toolset/toolset-common/inc/m2m/relationship/query/condition/has_domain.php',
|
421 |
+
'Toolset_Relationship_Query_Condition_Intermediary_Type' => $vendorDir . '/toolset/toolset-common/inc/m2m/relationship/query/condition/intermediary_type.php',
|
422 |
'Toolset_Relationship_Query_Condition_Is_Active' => $vendorDir . '/toolset/toolset-common/inc/m2m/relationship/query/condition/is_active.php',
|
423 |
'Toolset_Relationship_Query_Condition_Is_Boolean_Flag' => $vendorDir . '/toolset/toolset-common/inc/m2m/relationship/query/condition/is_boolean_flag.php',
|
424 |
'Toolset_Relationship_Query_Condition_Is_Legacy' => $vendorDir . '/toolset/toolset-common/inc/m2m/relationship/query/condition/is_legacy.php',
|
447 |
'Toolset_Settings_Screen' => $vendorDir . '/toolset/toolset-common/inc/toolset.settings.screen.class.php',
|
448 |
'Toolset_Shortcode_Attr_Field' => $vendorDir . '/toolset/toolset-common/inc/autoloaded/shortcode/attr/field.php',
|
449 |
'Toolset_Shortcode_Attr_Interface' => $vendorDir . '/toolset/toolset-common/inc/autoloaded/shortcode/attr/interface.php',
|
450 |
+
'Toolset_Shortcode_Attr_Item_Gui_Base' => $vendorDir . '/toolset/toolset-common/inc/autoloaded/shortcode/attr/item/gui/base.php',
|
451 |
+
'Toolset_Shortcode_Attr_Item_Gui_Factory' => $vendorDir . '/toolset/toolset-common/inc/autoloaded/shortcode/attr/item/gui/factory.php',
|
452 |
+
'Toolset_Shortcode_Attr_Item_Gui_M2m' => $vendorDir . '/toolset/toolset-common/inc/autoloaded/shortcode/attr/item/gui/m2m.php',
|
453 |
+
'Toolset_Shortcode_Attr_Item_Gui_O2m' => $vendorDir . '/toolset/toolset-common/inc/autoloaded/shortcode/attr/item/gui/o2m.php',
|
454 |
+
'Toolset_Shortcode_Attr_Item_Gui_O2o' => $vendorDir . '/toolset/toolset-common/inc/autoloaded/shortcode/attr/item/gui/o2o.php',
|
455 |
+
'Toolset_Shortcode_Attr_Item_Gui_Option' => $vendorDir . '/toolset/toolset-common/inc/autoloaded/shortcode/attr/item/gui/option.php',
|
456 |
'Toolset_Shortcode_Attr_Item_Id' => $vendorDir . '/toolset/toolset-common/inc/autoloaded/shortcode/attr/item/id.php',
|
457 |
'Toolset_Shortcode_Attr_Item_Legacy' => $vendorDir . '/toolset/toolset-common/inc/autoloaded/shortcode/attr/item/legacy.php',
|
458 |
'Toolset_Shortcode_Attr_Item_M2M' => $vendorDir . '/toolset/toolset-common/inc/autoloaded/shortcode/attr/item/m2m.php',
|
459 |
'Toolset_Shortcode_Generator' => $vendorDir . '/toolset/toolset-common/inc/toolset.shortcode.generator.class.php',
|
460 |
'Toolset_Shortcode_Transformer' => $vendorDir . '/toolset/toolset-common/inc/toolset.shortcode.transformer.class.php',
|
461 |
+
'Toolset_Singleton_Factory' => $vendorDir . '/toolset/toolset-common/utility/singleton_factory_pre_php_5_6.php',
|
462 |
'Toolset_Stack' => $vendorDir . '/toolset/toolset-common/expression-parser/parser.php',
|
463 |
'Toolset_Style' => $vendorDir . '/toolset/toolset-common/inc/toolset.assets.manager.class.php',
|
464 |
'Toolset_Template_Dialog_Box' => $vendorDir . '/toolset/toolset-common/utility/gui-base/template_dialog_box.php',
|
469 |
'Toolset_Twig_Extensions' => $vendorDir . '/toolset/toolset-common/utility/gui-base/twig_extensions.php',
|
470 |
'Toolset_Upgrade_Command_Definition' => $vendorDir . '/toolset/toolset-common/inc/autoloaded/upgrade/command_definition.php',
|
471 |
'Toolset_Upgrade_Command_Definition_Repository' => $vendorDir . '/toolset/toolset-common/inc/autoloaded/upgrade/command_definition_repository.php',
|
472 |
+
'Toolset_Upgrade_Command_Delete_Obsolete_Upgrade_Options' => $vendorDir . '/toolset/toolset-common/inc/autoloaded/upgrade/command/delete_obsolete_version_number_option.php',
|
473 |
'Toolset_Upgrade_Command_Factory' => $vendorDir . '/toolset/toolset-common/inc/autoloaded/upgrade/command_factory.php',
|
474 |
'Toolset_Upgrade_Command_M2M_V1_Database_Structure_Upgrade' => $vendorDir . '/toolset/toolset-common/inc/autoloaded/upgrade/command/m2m_v1_database_structure_upgrade.php',
|
475 |
+
'Toolset_Upgrade_Command_M2M_V2_Database_Structure_Upgrade' => $vendorDir . '/toolset/toolset-common/inc/autoloaded/upgrade/command/m2m_v2_database_structure_upgrade.php',
|
476 |
'Toolset_Upgrade_Controller' => $vendorDir . '/toolset/toolset-common/inc/autoloaded/upgrade/controller.php',
|
477 |
'Toolset_Upgrade_Executed_Commands' => $vendorDir . '/toolset/toolset-common/inc/autoloaded/upgrade/executed_commands.php',
|
478 |
'Toolset_User_Editors_Editor_Abstract' => $vendorDir . '/toolset/toolset-common/user-editors/editor/abstract.php',
|
518 |
'Toolset_Wp_Query_Adjustments_Table_Join_Manager' => $vendorDir . '/toolset/toolset-common/inc/autoloaded/wp_query_adjustments/table_join_manager.php',
|
519 |
'Toolset_Wpdb_User' => $vendorDir . '/toolset/toolset-common/inc/autoloaded/wpdb_user.php',
|
520 |
'Toolset_Wpml_Utils' => $vendorDir . '/toolset/toolset-common/inc/autoloaded/wpml_utils.php',
|
|
|
521 |
'Twig_Autoloader' => $vendorDir . '/twig/twig/lib/Twig/Autoloader.php',
|
522 |
'Twig_BaseNodeVisitor' => $vendorDir . '/twig/twig/lib/Twig/BaseNodeVisitor.php',
|
523 |
'Twig_CacheInterface' => $vendorDir . '/twig/twig/lib/Twig/CacheInterface.php',
|
717 |
'Twig_Util_TemplateDirIterator' => $vendorDir . '/twig/twig/lib/Twig/Util/TemplateDirIterator.php',
|
718 |
'Types_Admin' => $baseDir . '/application/controllers/admin.php',
|
719 |
'Types_Admin_Menu' => $baseDir . '/application/controllers/admin_menu.php',
|
720 |
+
'Types_Admin_Notices_Free_Version' => $baseDir . '/application/controllers/admin_notice/free-version.php',
|
721 |
'Types_Ajax' => $baseDir . '/application/controllers/ajax.php',
|
722 |
'Types_Ajax_Handler_Abstract' => $baseDir . '/application/controllers/ajax/handler/abstract.php',
|
723 |
'Types_Ajax_Handler_Check_Slug_Conflicts' => $baseDir . '/application/controllers/ajax/handler/check_slug_conflicts.php',
|
870 |
'WPToolset_Field_Wysiwyg' => $vendorDir . '/toolset/toolset-common/toolset-forms/classes/class.wysiwyg.php',
|
871 |
'WPToolset_Forms_Bootstrap' => $vendorDir . '/toolset/toolset-common/toolset-forms/bootstrap.php',
|
872 |
'WPToolset_Forms_Conditional' => $vendorDir . '/toolset/toolset-common/toolset-forms/classes/class.conditional.php',
|
873 |
+
'WPToolset_Forms_Conditional_RFG' => $vendorDir . '/toolset/toolset-common/toolset-forms/classes/class.conditional.rfg.php',
|
874 |
'WPToolset_Forms_Repetitive' => $vendorDir . '/toolset/toolset-common/toolset-forms/classes/class.repetitive.php',
|
875 |
'WPToolset_Forms_Validation' => $vendorDir . '/toolset/toolset-common/toolset-forms/classes/class.validation.php',
|
876 |
'WPToolset_Types' => $vendorDir . '/toolset/toolset-common/toolset-forms/classes/class.types.php',
|
877 |
'WPV_Handle_Users_Functions' => $vendorDir . '/toolset/toolset-common/toolset-forms/classes/class.conditional.php',
|
878 |
'WPV_wpcf_switch_post_from_attr_id' => $vendorDir . '/toolset/toolset-common/inc/toolset.object.relationship.class.php',
|
|
|
|
|
|
|
|
|
|
|
879 |
);
|
vendor/composer/autoload_namespaces.php
CHANGED
@@ -6,6 +6,5 @@ $vendorDir = dirname(dirname(__FILE__));
|
|
6 |
$baseDir = dirname($vendorDir);
|
7 |
|
8 |
return array(
|
9 |
-
'xrstf\\Composer52' => array($vendorDir . '/xrstf/composer-php52/lib'),
|
10 |
'Twig_' => array($vendorDir . '/twig/twig/lib'),
|
11 |
);
|
6 |
$baseDir = dirname($vendorDir);
|
7 |
|
8 |
return array(
|
|
|
9 |
'Twig_' => array($vendorDir . '/twig/twig/lib'),
|
10 |
);
|
vendor/composer/autoload_real.php
CHANGED
@@ -2,7 +2,7 @@
|
|
2 |
|
3 |
// autoload_real.php @generated by Composer
|
4 |
|
5 |
-
class
|
6 |
{
|
7 |
private static $loader;
|
8 |
|
@@ -19,15 +19,15 @@ class ComposerAutoloaderInitb4ac95941783ab1f27185069ef17cdb2
|
|
19 |
return self::$loader;
|
20 |
}
|
21 |
|
22 |
-
spl_autoload_register(array('
|
23 |
self::$loader = $loader = new \Composer\Autoload\ClassLoader();
|
24 |
-
spl_autoload_unregister(array('
|
25 |
|
26 |
$useStaticLoader = PHP_VERSION_ID >= 50600 && !defined('HHVM_VERSION') && (!function_exists('zend_loader_file_encoded') || !zend_loader_file_encoded());
|
27 |
if ($useStaticLoader) {
|
28 |
require_once __DIR__ . '/autoload_static.php';
|
29 |
|
30 |
-
call_user_func(\Composer\Autoload\
|
31 |
} else {
|
32 |
$map = require __DIR__ . '/autoload_namespaces.php';
|
33 |
foreach ($map as $namespace => $path) {
|
@@ -48,19 +48,19 @@ class ComposerAutoloaderInitb4ac95941783ab1f27185069ef17cdb2
|
|
48 |
$loader->register(true);
|
49 |
|
50 |
if ($useStaticLoader) {
|
51 |
-
$includeFiles = Composer\Autoload\
|
52 |
} else {
|
53 |
$includeFiles = require __DIR__ . '/autoload_files.php';
|
54 |
}
|
55 |
foreach ($includeFiles as $fileIdentifier => $file) {
|
56 |
-
|
57 |
}
|
58 |
|
59 |
return $loader;
|
60 |
}
|
61 |
}
|
62 |
|
63 |
-
function
|
64 |
{
|
65 |
if (empty($GLOBALS['__composer_autoload_files'][$fileIdentifier])) {
|
66 |
require $file;
|
2 |
|
3 |
// autoload_real.php @generated by Composer
|
4 |
|
5 |
+
class ComposerAutoloaderInitddd6f71ce3d43f91bd17c1a0b9e5f071
|
6 |
{
|
7 |
private static $loader;
|
8 |
|
19 |
return self::$loader;
|
20 |
}
|
21 |
|
22 |
+
spl_autoload_register(array('ComposerAutoloaderInitddd6f71ce3d43f91bd17c1a0b9e5f071', 'loadClassLoader'), true, true);
|
23 |
self::$loader = $loader = new \Composer\Autoload\ClassLoader();
|
24 |
+
spl_autoload_unregister(array('ComposerAutoloaderInitddd6f71ce3d43f91bd17c1a0b9e5f071', 'loadClassLoader'));
|
25 |
|
26 |
$useStaticLoader = PHP_VERSION_ID >= 50600 && !defined('HHVM_VERSION') && (!function_exists('zend_loader_file_encoded') || !zend_loader_file_encoded());
|
27 |
if ($useStaticLoader) {
|
28 |
require_once __DIR__ . '/autoload_static.php';
|
29 |
|
30 |
+
call_user_func(\Composer\Autoload\ComposerStaticInitddd6f71ce3d43f91bd17c1a0b9e5f071::getInitializer($loader));
|
31 |
} else {
|
32 |
$map = require __DIR__ . '/autoload_namespaces.php';
|
33 |
foreach ($map as $namespace => $path) {
|
48 |
$loader->register(true);
|
49 |
|
50 |
if ($useStaticLoader) {
|
51 |
+
$includeFiles = Composer\Autoload\ComposerStaticInitddd6f71ce3d43f91bd17c1a0b9e5f071::$files;
|
52 |
} else {
|
53 |
$includeFiles = require __DIR__ . '/autoload_files.php';
|
54 |
}
|
55 |
foreach ($includeFiles as $fileIdentifier => $file) {
|
56 |
+
composerRequireddd6f71ce3d43f91bd17c1a0b9e5f071($fileIdentifier, $file);
|
57 |
}
|
58 |
|
59 |
return $loader;
|
60 |
}
|
61 |
}
|
62 |
|
63 |
+
function composerRequireddd6f71ce3d43f91bd17c1a0b9e5f071($fileIdentifier, $file)
|
64 |
{
|
65 |
if (empty($GLOBALS['__composer_autoload_files'][$fileIdentifier])) {
|
66 |
require $file;
|
vendor/composer/autoload_static.php
CHANGED
@@ -4,7 +4,7 @@
|
|
4 |
|
5 |
namespace Composer\Autoload;
|
6 |
|
7 |
-
class
|
8 |
{
|
9 |
public static $files = array (
|
10 |
'a52c1eba913b4ecdd3571194b37baea9' => __DIR__ . '/../..' . '/application/functions.php',
|
@@ -25,13 +25,6 @@ class ComposerStaticInitb4ac95941783ab1f27185069ef17cdb2
|
|
25 |
);
|
26 |
|
27 |
public static $prefixesPsr0 = array (
|
28 |
-
'x' =>
|
29 |
-
array (
|
30 |
-
'xrstf\\Composer52' =>
|
31 |
-
array (
|
32 |
-
0 => __DIR__ . '/..' . '/xrstf/composer-php52/lib',
|
33 |
-
),
|
34 |
-
),
|
35 |
'T' =>
|
36 |
array (
|
37 |
'Twig_' =>
|
@@ -132,7 +125,6 @@ class ComposerStaticInitb4ac95941783ab1f27185069ef17cdb2
|
|
132 |
'FieldFactory' => __DIR__ . '/..' . '/toolset/toolset-common/toolset-forms/classes/class.field_factory.php',
|
133 |
'FormAbstract' => __DIR__ . '/..' . '/toolset/toolset-common/toolset-forms/classes/abstract.form.php',
|
134 |
'FormFactory' => __DIR__ . '/..' . '/toolset/toolset-common/toolset-forms/classes/class.form_factory.php',
|
135 |
-
'IOTGS_Installer_Template_Service' => __DIR__ . '/..' . '/otgs/installer/templates/template-service/interface-iotgs-installer-template-service.php',
|
136 |
'IToolset_Association' => __DIR__ . '/..' . '/toolset/toolset-common/inc/m2m/association/interface.php',
|
137 |
'IToolset_Association_Query_Condition' => __DIR__ . '/..' . '/toolset/toolset-common/inc/m2m/association/query/condition/interface.php',
|
138 |
'IToolset_Association_Query_Element_Selector' => __DIR__ . '/..' . '/toolset/toolset-common/inc/m2m/association/query/element_selector/interface.php',
|
@@ -147,7 +139,6 @@ class ComposerStaticInitb4ac95941783ab1f27185069ef17cdb2
|
|
147 |
'IToolset_Post_Type_From_Types' => __DIR__ . '/..' . '/toolset/toolset-common/inc/autoloaded/post_type/i_post_type_from_types.php',
|
148 |
'IToolset_Post_Type_Registered' => __DIR__ . '/..' . '/toolset/toolset-common/inc/autoloaded/post_type/i_post_type_registered.php',
|
149 |
'IToolset_Potential_Association_Query' => __DIR__ . '/..' . '/toolset/toolset-common/inc/m2m/potential_association/query_interface.php',
|
150 |
-
'IToolset_Query' => __DIR__ . '/..' . '/toolset/toolset-common/inc/autoloaded/i_query.php',
|
151 |
'IToolset_Query_Condition' => __DIR__ . '/..' . '/toolset/toolset-common/inc/m2m/query/condition/interface.php',
|
152 |
'IToolset_Relationship_Database_Issue' => __DIR__ . '/..' . '/toolset/toolset-common/inc/m2m/database/issue/interface.php',
|
153 |
'IToolset_Relationship_Definition' => __DIR__ . '/..' . '/toolset/toolset-common/inc/m2m/relationship/definition/interface.php',
|
@@ -157,22 +148,18 @@ class ComposerStaticInitb4ac95941783ab1f27185069ef17cdb2
|
|
157 |
'IToolset_Relationship_Role' => __DIR__ . '/..' . '/toolset/toolset-common/inc/m2m/relationship/role/interface.php',
|
158 |
'IToolset_Relationship_Role_Parent_Child' => __DIR__ . '/..' . '/toolset/toolset-common/inc/m2m/relationship/role/parent_child_interface.php',
|
159 |
'IToolset_Upgrade_Command' => __DIR__ . '/..' . '/toolset/toolset-common/inc/autoloaded/upgrade/command_interface.php',
|
160 |
-
'
|
161 |
-
'
|
162 |
-
'
|
163 |
-
'
|
164 |
-
'
|
165 |
-
'
|
166 |
-
'
|
167 |
-
'
|
168 |
-
'
|
169 |
-
'
|
170 |
-
'
|
171 |
-
'
|
172 |
-
'OTGS_Installer_WP_Components_Setting_Resources' => __DIR__ . '/..' . '/otgs/installer/includes/class-otgs-installer-wp-components-setting-resources.php',
|
173 |
-
'OTGS_Installer_WP_Components_Setting_Templates' => __DIR__ . '/..' . '/otgs/installer/includes/class-otgs-installer-wp-components-setting-templates.php',
|
174 |
-
'OTGS_Installer_WP_Components_Storage' => __DIR__ . '/..' . '/otgs/installer/includes/class-otgs-installer-wp-components-storage.php',
|
175 |
-
'OTGS_Installer_WP_Share_Local_Components_Setting' => __DIR__ . '/..' . '/otgs/installer/includes/class-otgs-installer-wp-share-local-components-setting.php',
|
176 |
'ReCaptchaResponse' => __DIR__ . '/..' . '/toolset/toolset-common/toolset-forms/js/recaptcha-php-1.11/recaptchalib.php',
|
177 |
'Toolset_Admin_Bar_Menu' => __DIR__ . '/..' . '/toolset/toolset-common/inc/toolset.admin.bar.menu.class.php',
|
178 |
'Toolset_Admin_Controller' => __DIR__ . '/..' . '/toolset/toolset-common/inc/autoloaded/admin.php',
|
@@ -196,6 +183,7 @@ class ComposerStaticInitb4ac95941783ab1f27185069ef17cdb2
|
|
196 |
'Toolset_Ajax_Handler_Interface' => __DIR__ . '/..' . '/toolset/toolset-common/inc/autoloaded/ajax_handler/interface.php',
|
197 |
'Toolset_Ajax_Handler_Intermediary_Post_Cleanup' => __DIR__ . '/..' . '/toolset/toolset-common/inc/autoloaded/ajax_handler/intermediary_post_cleanup.php',
|
198 |
'Toolset_Ajax_Handler_Migrate_To_M2M' => __DIR__ . '/..' . '/toolset/toolset-common/inc/autoloaded/ajax_handler/migrate_to_m2m.php',
|
|
|
199 |
'Toolset_Ajax_Handler_Select2_Suggest_Posts_By_Title' => __DIR__ . '/..' . '/toolset/toolset-common/inc/autoloaded/ajax_handler/select2_suggest_posts_by_title.php',
|
200 |
'Toolset_Ajax_Handler_Select2_Suggest_Terms' => __DIR__ . '/..' . '/toolset/toolset-common/inc/autoloaded/ajax_handler/select2_suggest_terms.php',
|
201 |
'Toolset_Ajax_Handler_Select2_Suggest_Users' => __DIR__ . '/..' . '/toolset/toolset-common/inc/autoloaded/ajax_handler/select2_suggest_users.php',
|
@@ -209,6 +197,7 @@ class ComposerStaticInitb4ac95941783ab1f27185069ef17cdb2
|
|
209 |
'Toolset_Association_Cleanup_Dangling_Intermediary_Posts' => __DIR__ . '/..' . '/toolset/toolset-common/inc/m2m/association/cleanup/dangling_intermediary_posts.php',
|
210 |
'Toolset_Association_Cleanup_Factory' => __DIR__ . '/..' . '/toolset/toolset-common/inc/m2m/association/cleanup/factory.php',
|
211 |
'Toolset_Association_Cleanup_Post' => __DIR__ . '/..' . '/toolset/toolset-common/inc/m2m/association/cleanup/post.php',
|
|
|
212 |
'Toolset_Association_Cleanup_Troubleshooting_Section' => __DIR__ . '/..' . '/toolset/toolset-common/inc/m2m/association/cleanup/troubleshooting_section.php',
|
213 |
'Toolset_Association_Factory' => __DIR__ . '/..' . '/toolset/toolset-common/inc/m2m/association/factory.php',
|
214 |
'Toolset_Association_Intermediary_Post_Persistence' => __DIR__ . '/..' . '/toolset/toolset-common/inc/m2m/association/intermediary_post_persistence.php',
|
@@ -221,21 +210,26 @@ class ComposerStaticInitb4ac95941783ab1f27185069ef17cdb2
|
|
221 |
'Toolset_Association_Query_Condition_Element_Status' => __DIR__ . '/..' . '/toolset/toolset-common/inc/m2m/association/query/condition/element_status.php',
|
222 |
'Toolset_Association_Query_Condition_Empty_Intermediary' => __DIR__ . '/..' . '/toolset/toolset-common/inc/m2m/association/query/condition/empty_intermediary.php',
|
223 |
'Toolset_Association_Query_Condition_Exclude_Element' => __DIR__ . '/..' . '/toolset/toolset-common/inc/m2m/association/query/condition/exclude_element.php',
|
|
|
224 |
'Toolset_Association_Query_Condition_Factory' => __DIR__ . '/..' . '/toolset/toolset-common/inc/m2m/association/query/condition_factory.php',
|
225 |
'Toolset_Association_Query_Condition_Has_Active_Relationship' => __DIR__ . '/..' . '/toolset/toolset-common/inc/m2m/association/query/condition/has_active_relationship.php',
|
226 |
'Toolset_Association_Query_Condition_Has_Domain' => __DIR__ . '/..' . '/toolset/toolset-common/inc/m2m/association/query/condition/has_domain.php',
|
227 |
'Toolset_Association_Query_Condition_Has_Domain_And_Type' => __DIR__ . '/..' . '/toolset/toolset-common/inc/m2m/association/query/condition/has_domain_and_type.php',
|
|
|
228 |
'Toolset_Association_Query_Condition_Has_Legacy_Relationship' => __DIR__ . '/..' . '/toolset/toolset-common/inc/m2m/association/query/condition/has_legacy_relationship.php',
|
229 |
'Toolset_Association_Query_Condition_Has_Type' => __DIR__ . '/..' . '/toolset/toolset-common/inc/m2m/association/query/condition/has_type.php',
|
|
|
230 |
'Toolset_Association_Query_Condition_Postmeta' => __DIR__ . '/..' . '/toolset/toolset-common/inc/m2m/association/query/condition/postmeta.php',
|
231 |
'Toolset_Association_Query_Condition_Relationship_Flag' => __DIR__ . '/..' . '/toolset/toolset-common/inc/m2m/association/query/condition/relationship_flag.php',
|
232 |
'Toolset_Association_Query_Condition_Relationship_Id' => __DIR__ . '/..' . '/toolset/toolset-common/inc/m2m/association/query/condition/relationship_id.php',
|
|
|
233 |
'Toolset_Association_Query_Condition_Search' => __DIR__ . '/..' . '/toolset/toolset-common/inc/m2m/association/query/condition/search.php',
|
234 |
'Toolset_Association_Query_Condition_Wp_Query' => __DIR__ . '/..' . '/toolset/toolset-common/inc/m2m/association/query/condition/wp_query.php',
|
235 |
'Toolset_Association_Query_Element_Selector_Abstract' => __DIR__ . '/..' . '/toolset/toolset-common/inc/m2m/association/query/element_selector/abstract.php',
|
236 |
'Toolset_Association_Query_Element_Selector_Default' => __DIR__ . '/..' . '/toolset/toolset-common/inc/m2m/association/query/element_selector/default.php',
|
237 |
'Toolset_Association_Query_Element_Selector_Provider' => __DIR__ . '/..' . '/toolset/toolset-common/inc/m2m/association/query/element_selector/provider.php',
|
238 |
'Toolset_Association_Query_Element_Selector_Wpml' => __DIR__ . '/..' . '/toolset/toolset-common/inc/m2m/association/query/element_selector/wpml.php',
|
|
|
239 |
'Toolset_Association_Query_Orderby' => __DIR__ . '/..' . '/toolset/toolset-common/inc/m2m/association/query/orderby/abstract.php',
|
240 |
'Toolset_Association_Query_Orderby_Factory' => __DIR__ . '/..' . '/toolset/toolset-common/inc/m2m/association/query/orderby_factory.php',
|
241 |
'Toolset_Association_Query_Orderby_Nothing' => __DIR__ . '/..' . '/toolset/toolset-common/inc/m2m/association/query/orderby/nothing.php',
|
@@ -352,6 +346,7 @@ class ComposerStaticInitb4ac95941783ab1f27185069ef17cdb2
|
|
352 |
'Toolset_Field_Renderer_Preview_Date' => __DIR__ . '/..' . '/toolset/toolset-common/inc/autoloaded/field/renderer/preview/date.php',
|
353 |
'Toolset_Field_Renderer_Preview_File' => __DIR__ . '/..' . '/toolset/toolset-common/inc/autoloaded/field/renderer/preview/file.php',
|
354 |
'Toolset_Field_Renderer_Preview_Image' => __DIR__ . '/..' . '/toolset/toolset-common/inc/autoloaded/field/renderer/preview/image.php',
|
|
|
355 |
'Toolset_Field_Renderer_Preview_Radio' => __DIR__ . '/..' . '/toolset/toolset-common/inc/autoloaded/field/renderer/preview/radio.php',
|
356 |
'Toolset_Field_Renderer_Preview_Skype' => __DIR__ . '/..' . '/toolset/toolset-common/inc/autoloaded/field/renderer/preview/skype.php',
|
357 |
'Toolset_Field_Renderer_Preview_Textfield' => __DIR__ . '/..' . '/toolset/toolset-common/inc/autoloaded/field/renderer/preview/textfield.php',
|
@@ -394,17 +389,25 @@ class ComposerStaticInitb4ac95941783ab1f27185069ef17cdb2
|
|
394 |
'Toolset_Post_Type_Factory' => __DIR__ . '/..' . '/toolset/toolset-common/inc/autoloaded/post_type/factory.php',
|
395 |
'Toolset_Post_Type_From_Types' => __DIR__ . '/..' . '/toolset/toolset-common/inc/autoloaded/post_type/from_types.php',
|
396 |
'Toolset_Post_Type_Labels' => __DIR__ . '/..' . '/toolset/toolset-common/inc/autoloaded/post_type/labels.php',
|
|
|
397 |
'Toolset_Post_Type_Query' => __DIR__ . '/..' . '/toolset/toolset-common/inc/autoloaded/post_type/query.php',
|
398 |
'Toolset_Post_Type_Query_Factory' => __DIR__ . '/..' . '/toolset/toolset-common/inc/autoloaded/post_type/query_factory.php',
|
399 |
'Toolset_Post_Type_Registered' => __DIR__ . '/..' . '/toolset/toolset-common/inc/autoloaded/post_type/registered.php',
|
400 |
'Toolset_Post_Type_Repository' => __DIR__ . '/..' . '/toolset/toolset-common/inc/autoloaded/post_type/repository.php',
|
|
|
|
|
|
|
401 |
'Toolset_Potential_Association_Query_Factory' => __DIR__ . '/..' . '/toolset/toolset-common/inc/m2m/potential_association/query_factory.php',
|
|
|
|
|
|
|
402 |
'Toolset_Potential_Association_Query_Posts' => __DIR__ . '/..' . '/toolset/toolset-common/inc/m2m/potential_association/query_posts.php',
|
403 |
'Toolset_Promotion' => __DIR__ . '/..' . '/toolset/toolset-common/inc/toolset.promotion.class.php',
|
404 |
'Toolset_Public_API_Loader' => __DIR__ . '/..' . '/toolset/toolset-common/inc/public_api/loader.php',
|
405 |
'Toolset_Query_Comparison_Operator' => __DIR__ . '/..' . '/toolset/toolset-common/inc/m2m/query/comparison_operator.php',
|
406 |
'Toolset_Query_Condition_And' => __DIR__ . '/..' . '/toolset/toolset-common/inc/m2m/query/condition/and.php',
|
407 |
'Toolset_Query_Condition_Contradiction' => __DIR__ . '/..' . '/toolset/toolset-common/inc/m2m/query/condition/contradiction.php',
|
|
|
408 |
'Toolset_Query_Condition_Operator' => __DIR__ . '/..' . '/toolset/toolset-common/inc/m2m/query/condition/operator.php',
|
409 |
'Toolset_Query_Condition_Or' => __DIR__ . '/..' . '/toolset/toolset-common/inc/m2m/query/condition/or.php',
|
410 |
'Toolset_Query_Condition_Tautology' => __DIR__ . '/..' . '/toolset/toolset-common/inc/m2m/query/condition/tautology.php',
|
@@ -438,10 +441,13 @@ class ComposerStaticInitb4ac95941783ab1f27185069ef17cdb2
|
|
438 |
'Toolset_Relationship_Query_Cardinality_Match_Operators' => __DIR__ . '/..' . '/toolset/toolset-common/inc/m2m/relationship/query/cardinality_match/operators.php',
|
439 |
'Toolset_Relationship_Query_Cardinality_Match_Single' => __DIR__ . '/..' . '/toolset/toolset-common/inc/m2m/relationship/query/cardinality_match/single.php',
|
440 |
'Toolset_Relationship_Query_Condition' => __DIR__ . '/..' . '/toolset/toolset-common/inc/m2m/relationship/query/condition/abstract.php',
|
|
|
|
|
441 |
'Toolset_Relationship_Query_Condition_Factory' => __DIR__ . '/..' . '/toolset/toolset-common/inc/m2m/relationship/query/condition_factory.php',
|
442 |
'Toolset_Relationship_Query_Condition_Has_Active_Types' => __DIR__ . '/..' . '/toolset/toolset-common/inc/m2m/relationship/query/condition/has_active_types.php',
|
443 |
'Toolset_Relationship_Query_Condition_Has_Cardinality' => __DIR__ . '/..' . '/toolset/toolset-common/inc/m2m/relationship/query/condition/has_cardinality.php',
|
444 |
'Toolset_Relationship_Query_Condition_Has_Domain' => __DIR__ . '/..' . '/toolset/toolset-common/inc/m2m/relationship/query/condition/has_domain.php',
|
|
|
445 |
'Toolset_Relationship_Query_Condition_Is_Active' => __DIR__ . '/..' . '/toolset/toolset-common/inc/m2m/relationship/query/condition/is_active.php',
|
446 |
'Toolset_Relationship_Query_Condition_Is_Boolean_Flag' => __DIR__ . '/..' . '/toolset/toolset-common/inc/m2m/relationship/query/condition/is_boolean_flag.php',
|
447 |
'Toolset_Relationship_Query_Condition_Is_Legacy' => __DIR__ . '/..' . '/toolset/toolset-common/inc/m2m/relationship/query/condition/is_legacy.php',
|
@@ -470,11 +476,18 @@ class ComposerStaticInitb4ac95941783ab1f27185069ef17cdb2
|
|
470 |
'Toolset_Settings_Screen' => __DIR__ . '/..' . '/toolset/toolset-common/inc/toolset.settings.screen.class.php',
|
471 |
'Toolset_Shortcode_Attr_Field' => __DIR__ . '/..' . '/toolset/toolset-common/inc/autoloaded/shortcode/attr/field.php',
|
472 |
'Toolset_Shortcode_Attr_Interface' => __DIR__ . '/..' . '/toolset/toolset-common/inc/autoloaded/shortcode/attr/interface.php',
|
|
|
|
|
|
|
|
|
|
|
|
|
473 |
'Toolset_Shortcode_Attr_Item_Id' => __DIR__ . '/..' . '/toolset/toolset-common/inc/autoloaded/shortcode/attr/item/id.php',
|
474 |
'Toolset_Shortcode_Attr_Item_Legacy' => __DIR__ . '/..' . '/toolset/toolset-common/inc/autoloaded/shortcode/attr/item/legacy.php',
|
475 |
'Toolset_Shortcode_Attr_Item_M2M' => __DIR__ . '/..' . '/toolset/toolset-common/inc/autoloaded/shortcode/attr/item/m2m.php',
|
476 |
'Toolset_Shortcode_Generator' => __DIR__ . '/..' . '/toolset/toolset-common/inc/toolset.shortcode.generator.class.php',
|
477 |
'Toolset_Shortcode_Transformer' => __DIR__ . '/..' . '/toolset/toolset-common/inc/toolset.shortcode.transformer.class.php',
|
|
|
478 |
'Toolset_Stack' => __DIR__ . '/..' . '/toolset/toolset-common/expression-parser/parser.php',
|
479 |
'Toolset_Style' => __DIR__ . '/..' . '/toolset/toolset-common/inc/toolset.assets.manager.class.php',
|
480 |
'Toolset_Template_Dialog_Box' => __DIR__ . '/..' . '/toolset/toolset-common/utility/gui-base/template_dialog_box.php',
|
@@ -485,8 +498,10 @@ class ComposerStaticInitb4ac95941783ab1f27185069ef17cdb2
|
|
485 |
'Toolset_Twig_Extensions' => __DIR__ . '/..' . '/toolset/toolset-common/utility/gui-base/twig_extensions.php',
|
486 |
'Toolset_Upgrade_Command_Definition' => __DIR__ . '/..' . '/toolset/toolset-common/inc/autoloaded/upgrade/command_definition.php',
|
487 |
'Toolset_Upgrade_Command_Definition_Repository' => __DIR__ . '/..' . '/toolset/toolset-common/inc/autoloaded/upgrade/command_definition_repository.php',
|
|
|
488 |
'Toolset_Upgrade_Command_Factory' => __DIR__ . '/..' . '/toolset/toolset-common/inc/autoloaded/upgrade/command_factory.php',
|
489 |
'Toolset_Upgrade_Command_M2M_V1_Database_Structure_Upgrade' => __DIR__ . '/..' . '/toolset/toolset-common/inc/autoloaded/upgrade/command/m2m_v1_database_structure_upgrade.php',
|
|
|
490 |
'Toolset_Upgrade_Controller' => __DIR__ . '/..' . '/toolset/toolset-common/inc/autoloaded/upgrade/controller.php',
|
491 |
'Toolset_Upgrade_Executed_Commands' => __DIR__ . '/..' . '/toolset/toolset-common/inc/autoloaded/upgrade/executed_commands.php',
|
492 |
'Toolset_User_Editors_Editor_Abstract' => __DIR__ . '/..' . '/toolset/toolset-common/user-editors/editor/abstract.php',
|
@@ -532,7 +547,6 @@ class ComposerStaticInitb4ac95941783ab1f27185069ef17cdb2
|
|
532 |
'Toolset_Wp_Query_Adjustments_Table_Join_Manager' => __DIR__ . '/..' . '/toolset/toolset-common/inc/autoloaded/wp_query_adjustments/table_join_manager.php',
|
533 |
'Toolset_Wpdb_User' => __DIR__ . '/..' . '/toolset/toolset-common/inc/autoloaded/wpdb_user.php',
|
534 |
'Toolset_Wpml_Utils' => __DIR__ . '/..' . '/toolset/toolset-common/inc/autoloaded/wpml_utils.php',
|
535 |
-
'Translation_Service_Info' => __DIR__ . '/..' . '/otgs/installer/includes/class-translation-service-info.php',
|
536 |
'Twig_Autoloader' => __DIR__ . '/..' . '/twig/twig/lib/Twig/Autoloader.php',
|
537 |
'Twig_BaseNodeVisitor' => __DIR__ . '/..' . '/twig/twig/lib/Twig/BaseNodeVisitor.php',
|
538 |
'Twig_CacheInterface' => __DIR__ . '/..' . '/twig/twig/lib/Twig/CacheInterface.php',
|
@@ -732,6 +746,7 @@ class ComposerStaticInitb4ac95941783ab1f27185069ef17cdb2
|
|
732 |
'Twig_Util_TemplateDirIterator' => __DIR__ . '/..' . '/twig/twig/lib/Twig/Util/TemplateDirIterator.php',
|
733 |
'Types_Admin' => __DIR__ . '/../..' . '/application/controllers/admin.php',
|
734 |
'Types_Admin_Menu' => __DIR__ . '/../..' . '/application/controllers/admin_menu.php',
|
|
|
735 |
'Types_Ajax' => __DIR__ . '/../..' . '/application/controllers/ajax.php',
|
736 |
'Types_Ajax_Handler_Abstract' => __DIR__ . '/../..' . '/application/controllers/ajax/handler/abstract.php',
|
737 |
'Types_Ajax_Handler_Check_Slug_Conflicts' => __DIR__ . '/../..' . '/application/controllers/ajax/handler/check_slug_conflicts.php',
|
@@ -884,25 +899,21 @@ class ComposerStaticInitb4ac95941783ab1f27185069ef17cdb2
|
|
884 |
'WPToolset_Field_Wysiwyg' => __DIR__ . '/..' . '/toolset/toolset-common/toolset-forms/classes/class.wysiwyg.php',
|
885 |
'WPToolset_Forms_Bootstrap' => __DIR__ . '/..' . '/toolset/toolset-common/toolset-forms/bootstrap.php',
|
886 |
'WPToolset_Forms_Conditional' => __DIR__ . '/..' . '/toolset/toolset-common/toolset-forms/classes/class.conditional.php',
|
|
|
887 |
'WPToolset_Forms_Repetitive' => __DIR__ . '/..' . '/toolset/toolset-common/toolset-forms/classes/class.repetitive.php',
|
888 |
'WPToolset_Forms_Validation' => __DIR__ . '/..' . '/toolset/toolset-common/toolset-forms/classes/class.validation.php',
|
889 |
'WPToolset_Types' => __DIR__ . '/..' . '/toolset/toolset-common/toolset-forms/classes/class.types.php',
|
890 |
'WPV_Handle_Users_Functions' => __DIR__ . '/..' . '/toolset/toolset-common/toolset-forms/classes/class.conditional.php',
|
891 |
'WPV_wpcf_switch_post_from_attr_id' => __DIR__ . '/..' . '/toolset/toolset-common/inc/toolset.object.relationship.class.php',
|
892 |
-
'WP_Installer' => __DIR__ . '/..' . '/otgs/installer/includes/class-wp-installer.php',
|
893 |
-
'WP_Installer_API' => __DIR__ . '/..' . '/otgs/installer/includes/class-wp-installer-api.php',
|
894 |
-
'WP_Installer_Channels' => __DIR__ . '/..' . '/otgs/installer/includes/class-wp-installer-channels.php',
|
895 |
-
'xrstf\\Composer52\\AutoloadGenerator' => __DIR__ . '/..' . '/xrstf/composer-php52/lib/xrstf/Composer52/AutoloadGenerator.php',
|
896 |
-
'xrstf\\Composer52\\Generator' => __DIR__ . '/..' . '/xrstf/composer-php52/lib/xrstf/Composer52/Generator.php',
|
897 |
);
|
898 |
|
899 |
public static function getInitializer(ClassLoader $loader)
|
900 |
{
|
901 |
return \Closure::bind(function () use ($loader) {
|
902 |
-
$loader->prefixLengthsPsr4 =
|
903 |
-
$loader->prefixDirsPsr4 =
|
904 |
-
$loader->prefixesPsr0 =
|
905 |
-
$loader->classMap =
|
906 |
|
907 |
}, null, ClassLoader::class);
|
908 |
}
|
4 |
|
5 |
namespace Composer\Autoload;
|
6 |
|
7 |
+
class ComposerStaticInitddd6f71ce3d43f91bd17c1a0b9e5f071
|
8 |
{
|
9 |
public static $files = array (
|
10 |
'a52c1eba913b4ecdd3571194b37baea9' => __DIR__ . '/../..' . '/application/functions.php',
|
25 |
);
|
26 |
|
27 |
public static $prefixesPsr0 = array (
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
28 |
'T' =>
|
29 |
array (
|
30 |
'Twig_' =>
|
125 |
'FieldFactory' => __DIR__ . '/..' . '/toolset/toolset-common/toolset-forms/classes/class.field_factory.php',
|
126 |
'FormAbstract' => __DIR__ . '/..' . '/toolset/toolset-common/toolset-forms/classes/abstract.form.php',
|
127 |
'FormFactory' => __DIR__ . '/..' . '/toolset/toolset-common/toolset-forms/classes/class.form_factory.php',
|
|
|
128 |
'IToolset_Association' => __DIR__ . '/..' . '/toolset/toolset-common/inc/m2m/association/interface.php',
|
129 |
'IToolset_Association_Query_Condition' => __DIR__ . '/..' . '/toolset/toolset-common/inc/m2m/association/query/condition/interface.php',
|
130 |
'IToolset_Association_Query_Element_Selector' => __DIR__ . '/..' . '/toolset/toolset-common/inc/m2m/association/query/element_selector/interface.php',
|
139 |
'IToolset_Post_Type_From_Types' => __DIR__ . '/..' . '/toolset/toolset-common/inc/autoloaded/post_type/i_post_type_from_types.php',
|
140 |
'IToolset_Post_Type_Registered' => __DIR__ . '/..' . '/toolset/toolset-common/inc/autoloaded/post_type/i_post_type_registered.php',
|
141 |
'IToolset_Potential_Association_Query' => __DIR__ . '/..' . '/toolset/toolset-common/inc/m2m/potential_association/query_interface.php',
|
|
|
142 |
'IToolset_Query_Condition' => __DIR__ . '/..' . '/toolset/toolset-common/inc/m2m/query/condition/interface.php',
|
143 |
'IToolset_Relationship_Database_Issue' => __DIR__ . '/..' . '/toolset/toolset-common/inc/m2m/database/issue/interface.php',
|
144 |
'IToolset_Relationship_Definition' => __DIR__ . '/..' . '/toolset/toolset-common/inc/m2m/relationship/definition/interface.php',
|
148 |
'IToolset_Relationship_Role' => __DIR__ . '/..' . '/toolset/toolset-common/inc/m2m/relationship/role/interface.php',
|
149 |
'IToolset_Relationship_Role_Parent_Child' => __DIR__ . '/..' . '/toolset/toolset-common/inc/m2m/relationship/role/parent_child_interface.php',
|
150 |
'IToolset_Upgrade_Command' => __DIR__ . '/..' . '/toolset/toolset-common/inc/autoloaded/upgrade/command_interface.php',
|
151 |
+
'OTGS\\Toolset\\Common\\Condition\\Installer\\IsAvailable' => __DIR__ . '/..' . '/toolset/toolset-common/utility/condition/plugin/installer/is_available.php',
|
152 |
+
'OTGS\\Toolset\\Common\\Condition\\Installer\\IsToolsetSubscriptionValid' => __DIR__ . '/..' . '/toolset/toolset-common/utility/condition/plugin/installer/is_toolset_subscription_valid.php',
|
153 |
+
'OTGS\\Toolset\\Common\\Interop\\HandlerInterface' => __DIR__ . '/..' . '/toolset/toolset-common/inc/autoloaded/interop/handler_interface.php',
|
154 |
+
'OTGS\\Toolset\\Common\\Interop\\Handler\\InstallerCompatibilityReporting' => __DIR__ . '/..' . '/toolset/toolset-common/inc/autoloaded/interop/handler/installer_compatibility_reporting.php',
|
155 |
+
'OTGS\\Toolset\\Common\\Interop\\Mediator' => __DIR__ . '/..' . '/toolset/toolset-common/inc/autoloaded/interop/mediator.php',
|
156 |
+
'OTGS\\Toolset\\Common\\M2M\\Association\\Repository' => __DIR__ . '/..' . '/toolset/toolset-common/inc/m2m/association/Repository.php',
|
157 |
+
'OTGS\\Toolset\\Common\\M2M\\PotentialAssociation\\CardinalityPostQuery' => __DIR__ . '/..' . '/toolset/toolset-common/inc/m2m/potential_association/cardinality_post_query.php',
|
158 |
+
'OTGS\\Toolset\\Common\\M2M\\PotentialAssociation\\JoinManager' => __DIR__ . '/..' . '/toolset/toolset-common/inc/m2m/potential_association/join_manager.php',
|
159 |
+
'OTGS\\Toolset\\Common\\M2M\\PotentialAssociation\\WpQueryAdjustment' => __DIR__ . '/..' . '/toolset/toolset-common/inc/m2m/potential_association/wp_query_adjustment.php',
|
160 |
+
'OTGS\\Toolset\\Common\\M2M\\PublicApiService' => __DIR__ . '/..' . '/toolset/toolset-common/inc/m2m/public_api_service.php',
|
161 |
+
'OTGS\\Toolset\\Common\\MaintenanceMode\\Controller' => __DIR__ . '/..' . '/toolset/toolset-common/inc/autoloaded/maintenance_mode/controller.php',
|
162 |
+
'OTGS\\Toolset\\Common\\Utility\\Admin\\Notices\\Builder' => __DIR__ . '/..' . '/toolset/toolset-common/utility/admin/notices/Builder.php',
|
|
|
|
|
|
|
|
|
163 |
'ReCaptchaResponse' => __DIR__ . '/..' . '/toolset/toolset-common/toolset-forms/js/recaptcha-php-1.11/recaptchalib.php',
|
164 |
'Toolset_Admin_Bar_Menu' => __DIR__ . '/..' . '/toolset/toolset-common/inc/toolset.admin.bar.menu.class.php',
|
165 |
'Toolset_Admin_Controller' => __DIR__ . '/..' . '/toolset/toolset-common/inc/autoloaded/admin.php',
|
183 |
'Toolset_Ajax_Handler_Interface' => __DIR__ . '/..' . '/toolset/toolset-common/inc/autoloaded/ajax_handler/interface.php',
|
184 |
'Toolset_Ajax_Handler_Intermediary_Post_Cleanup' => __DIR__ . '/..' . '/toolset/toolset-common/inc/autoloaded/ajax_handler/intermediary_post_cleanup.php',
|
185 |
'Toolset_Ajax_Handler_Migrate_To_M2M' => __DIR__ . '/..' . '/toolset/toolset-common/inc/autoloaded/ajax_handler/migrate_to_m2m.php',
|
186 |
+
'Toolset_Ajax_Handler_Select2_Suggest_Posts_By_Post_Type' => __DIR__ . '/..' . '/toolset/toolset-common/inc/autoloaded/ajax_handler/select2_suggest_posts_by_post_type.php',
|
187 |
'Toolset_Ajax_Handler_Select2_Suggest_Posts_By_Title' => __DIR__ . '/..' . '/toolset/toolset-common/inc/autoloaded/ajax_handler/select2_suggest_posts_by_title.php',
|
188 |
'Toolset_Ajax_Handler_Select2_Suggest_Terms' => __DIR__ . '/..' . '/toolset/toolset-common/inc/autoloaded/ajax_handler/select2_suggest_terms.php',
|
189 |
'Toolset_Ajax_Handler_Select2_Suggest_Users' => __DIR__ . '/..' . '/toolset/toolset-common/inc/autoloaded/ajax_handler/select2_suggest_users.php',
|
197 |
'Toolset_Association_Cleanup_Dangling_Intermediary_Posts' => __DIR__ . '/..' . '/toolset/toolset-common/inc/m2m/association/cleanup/dangling_intermediary_posts.php',
|
198 |
'Toolset_Association_Cleanup_Factory' => __DIR__ . '/..' . '/toolset/toolset-common/inc/m2m/association/cleanup/factory.php',
|
199 |
'Toolset_Association_Cleanup_Post' => __DIR__ . '/..' . '/toolset/toolset-common/inc/m2m/association/cleanup/post.php',
|
200 |
+
'Toolset_Association_Cleanup_Post_Type' => __DIR__ . '/..' . '/toolset/toolset-common/inc/m2m/association/cleanup/post_type.php',
|
201 |
'Toolset_Association_Cleanup_Troubleshooting_Section' => __DIR__ . '/..' . '/toolset/toolset-common/inc/m2m/association/cleanup/troubleshooting_section.php',
|
202 |
'Toolset_Association_Factory' => __DIR__ . '/..' . '/toolset/toolset-common/inc/m2m/association/factory.php',
|
203 |
'Toolset_Association_Intermediary_Post_Persistence' => __DIR__ . '/..' . '/toolset/toolset-common/inc/m2m/association/intermediary_post_persistence.php',
|
210 |
'Toolset_Association_Query_Condition_Element_Status' => __DIR__ . '/..' . '/toolset/toolset-common/inc/m2m/association/query/condition/element_status.php',
|
211 |
'Toolset_Association_Query_Condition_Empty_Intermediary' => __DIR__ . '/..' . '/toolset/toolset-common/inc/m2m/association/query/condition/empty_intermediary.php',
|
212 |
'Toolset_Association_Query_Condition_Exclude_Element' => __DIR__ . '/..' . '/toolset/toolset-common/inc/m2m/association/query/condition/exclude_element.php',
|
213 |
+
'Toolset_Association_Query_Condition_Exclude_Relationship' => __DIR__ . '/..' . '/toolset/toolset-common/inc/m2m/association/query/condition/exclude_relationship.php',
|
214 |
'Toolset_Association_Query_Condition_Factory' => __DIR__ . '/..' . '/toolset/toolset-common/inc/m2m/association/query/condition_factory.php',
|
215 |
'Toolset_Association_Query_Condition_Has_Active_Relationship' => __DIR__ . '/..' . '/toolset/toolset-common/inc/m2m/association/query/condition/has_active_relationship.php',
|
216 |
'Toolset_Association_Query_Condition_Has_Domain' => __DIR__ . '/..' . '/toolset/toolset-common/inc/m2m/association/query/condition/has_domain.php',
|
217 |
'Toolset_Association_Query_Condition_Has_Domain_And_Type' => __DIR__ . '/..' . '/toolset/toolset-common/inc/m2m/association/query/condition/has_domain_and_type.php',
|
218 |
+
'Toolset_Association_Query_Condition_Has_Intermediary_Id' => __DIR__ . '/..' . '/toolset/toolset-common/inc/m2m/association/query/condition/has_intermediary_id.php',
|
219 |
'Toolset_Association_Query_Condition_Has_Legacy_Relationship' => __DIR__ . '/..' . '/toolset/toolset-common/inc/m2m/association/query/condition/has_legacy_relationship.php',
|
220 |
'Toolset_Association_Query_Condition_Has_Type' => __DIR__ . '/..' . '/toolset/toolset-common/inc/m2m/association/query/condition/has_type.php',
|
221 |
+
'Toolset_Association_Query_Condition_Intermediary_Id' => __DIR__ . '/..' . '/toolset/toolset-common/inc/m2m/association/query/condition/intermediary_id.php',
|
222 |
'Toolset_Association_Query_Condition_Postmeta' => __DIR__ . '/..' . '/toolset/toolset-common/inc/m2m/association/query/condition/postmeta.php',
|
223 |
'Toolset_Association_Query_Condition_Relationship_Flag' => __DIR__ . '/..' . '/toolset/toolset-common/inc/m2m/association/query/condition/relationship_flag.php',
|
224 |
'Toolset_Association_Query_Condition_Relationship_Id' => __DIR__ . '/..' . '/toolset/toolset-common/inc/m2m/association/query/condition/relationship_id.php',
|
225 |
+
'Toolset_Association_Query_Condition_Relationship_Origin' => __DIR__ . '/..' . '/toolset/toolset-common/inc/m2m/association/query/condition/relationship_origin.php',
|
226 |
'Toolset_Association_Query_Condition_Search' => __DIR__ . '/..' . '/toolset/toolset-common/inc/m2m/association/query/condition/search.php',
|
227 |
'Toolset_Association_Query_Condition_Wp_Query' => __DIR__ . '/..' . '/toolset/toolset-common/inc/m2m/association/query/condition/wp_query.php',
|
228 |
'Toolset_Association_Query_Element_Selector_Abstract' => __DIR__ . '/..' . '/toolset/toolset-common/inc/m2m/association/query/element_selector/abstract.php',
|
229 |
'Toolset_Association_Query_Element_Selector_Default' => __DIR__ . '/..' . '/toolset/toolset-common/inc/m2m/association/query/element_selector/default.php',
|
230 |
'Toolset_Association_Query_Element_Selector_Provider' => __DIR__ . '/..' . '/toolset/toolset-common/inc/m2m/association/query/element_selector/provider.php',
|
231 |
'Toolset_Association_Query_Element_Selector_Wpml' => __DIR__ . '/..' . '/toolset/toolset-common/inc/m2m/association/query/element_selector/wpml.php',
|
232 |
+
'Toolset_Association_Query_Element_Selector_Wpml_Lang_All' => __DIR__ . '/..' . '/toolset/toolset-common/inc/m2m/association/query/element_selector/wpml_lang_all.php',
|
233 |
'Toolset_Association_Query_Orderby' => __DIR__ . '/..' . '/toolset/toolset-common/inc/m2m/association/query/orderby/abstract.php',
|
234 |
'Toolset_Association_Query_Orderby_Factory' => __DIR__ . '/..' . '/toolset/toolset-common/inc/m2m/association/query/orderby_factory.php',
|
235 |
'Toolset_Association_Query_Orderby_Nothing' => __DIR__ . '/..' . '/toolset/toolset-common/inc/m2m/association/query/orderby/nothing.php',
|
346 |
'Toolset_Field_Renderer_Preview_Date' => __DIR__ . '/..' . '/toolset/toolset-common/inc/autoloaded/field/renderer/preview/date.php',
|
347 |
'Toolset_Field_Renderer_Preview_File' => __DIR__ . '/..' . '/toolset/toolset-common/inc/autoloaded/field/renderer/preview/file.php',
|
348 |
'Toolset_Field_Renderer_Preview_Image' => __DIR__ . '/..' . '/toolset/toolset-common/inc/autoloaded/field/renderer/preview/image.php',
|
349 |
+
'Toolset_Field_Renderer_Preview_Post' => __DIR__ . '/..' . '/toolset/toolset-common/inc/autoloaded/field/renderer/preview/post.php',
|
350 |
'Toolset_Field_Renderer_Preview_Radio' => __DIR__ . '/..' . '/toolset/toolset-common/inc/autoloaded/field/renderer/preview/radio.php',
|
351 |
'Toolset_Field_Renderer_Preview_Skype' => __DIR__ . '/..' . '/toolset/toolset-common/inc/autoloaded/field/renderer/preview/skype.php',
|
352 |
'Toolset_Field_Renderer_Preview_Textfield' => __DIR__ . '/..' . '/toolset/toolset-common/inc/autoloaded/field/renderer/preview/textfield.php',
|
389 |
'Toolset_Post_Type_Factory' => __DIR__ . '/..' . '/toolset/toolset-common/inc/autoloaded/post_type/factory.php',
|
390 |
'Toolset_Post_Type_From_Types' => __DIR__ . '/..' . '/toolset/toolset-common/inc/autoloaded/post_type/from_types.php',
|
391 |
'Toolset_Post_Type_Labels' => __DIR__ . '/..' . '/toolset/toolset-common/inc/autoloaded/post_type/labels.php',
|
392 |
+
'Toolset_Post_Type_List' => __DIR__ . '/..' . '/toolset/toolset-common/inc/autoloaded/post_type/list.php',
|
393 |
'Toolset_Post_Type_Query' => __DIR__ . '/..' . '/toolset/toolset-common/inc/autoloaded/post_type/query.php',
|
394 |
'Toolset_Post_Type_Query_Factory' => __DIR__ . '/..' . '/toolset/toolset-common/inc/autoloaded/post_type/query_factory.php',
|
395 |
'Toolset_Post_Type_Registered' => __DIR__ . '/..' . '/toolset/toolset-common/inc/autoloaded/post_type/registered.php',
|
396 |
'Toolset_Post_Type_Repository' => __DIR__ . '/..' . '/toolset/toolset-common/inc/autoloaded/post_type/repository.php',
|
397 |
+
'Toolset_Postmeta_Access_Loader' => __DIR__ . '/..' . '/toolset/toolset-common/inc/autoloaded/postmeta_access/loader.php',
|
398 |
+
'Toolset_Postmeta_Access_M2m' => __DIR__ . '/..' . '/toolset/toolset-common/inc/autoloaded/postmeta_access/m2m.php',
|
399 |
+
'Toolset_Potential_Association_Query_Arguments' => __DIR__ . '/..' . '/toolset/toolset-common/inc/m2m/potential_association/query_arguments.php',
|
400 |
'Toolset_Potential_Association_Query_Factory' => __DIR__ . '/..' . '/toolset/toolset-common/inc/m2m/potential_association/query_factory.php',
|
401 |
+
'Toolset_Potential_Association_Query_Filter_Interface' => __DIR__ . '/..' . '/toolset/toolset-common/inc/m2m/potential_association/filters/interface.php',
|
402 |
+
'Toolset_Potential_Association_Query_Filter_Posts_Author' => __DIR__ . '/..' . '/toolset/toolset-common/inc/m2m/potential_association/filters/post/author.php',
|
403 |
+
'Toolset_Potential_Association_Query_Filter_Search_String' => __DIR__ . '/..' . '/toolset/toolset-common/inc/m2m/potential_association/filters/search_string.php',
|
404 |
'Toolset_Potential_Association_Query_Posts' => __DIR__ . '/..' . '/toolset/toolset-common/inc/m2m/potential_association/query_posts.php',
|
405 |
'Toolset_Promotion' => __DIR__ . '/..' . '/toolset/toolset-common/inc/toolset.promotion.class.php',
|
406 |
'Toolset_Public_API_Loader' => __DIR__ . '/..' . '/toolset/toolset-common/inc/public_api/loader.php',
|
407 |
'Toolset_Query_Comparison_Operator' => __DIR__ . '/..' . '/toolset/toolset-common/inc/m2m/query/comparison_operator.php',
|
408 |
'Toolset_Query_Condition_And' => __DIR__ . '/..' . '/toolset/toolset-common/inc/m2m/query/condition/and.php',
|
409 |
'Toolset_Query_Condition_Contradiction' => __DIR__ . '/..' . '/toolset/toolset-common/inc/m2m/query/condition/contradiction.php',
|
410 |
+
'Toolset_Query_Condition_Not' => __DIR__ . '/..' . '/toolset/toolset-common/inc/m2m/query/condition/not.php',
|
411 |
'Toolset_Query_Condition_Operator' => __DIR__ . '/..' . '/toolset/toolset-common/inc/m2m/query/condition/operator.php',
|
412 |
'Toolset_Query_Condition_Or' => __DIR__ . '/..' . '/toolset/toolset-common/inc/m2m/query/condition/or.php',
|
413 |
'Toolset_Query_Condition_Tautology' => __DIR__ . '/..' . '/toolset/toolset-common/inc/m2m/query/condition/tautology.php',
|
441 |
'Toolset_Relationship_Query_Cardinality_Match_Operators' => __DIR__ . '/..' . '/toolset/toolset-common/inc/m2m/relationship/query/cardinality_match/operators.php',
|
442 |
'Toolset_Relationship_Query_Cardinality_Match_Single' => __DIR__ . '/..' . '/toolset/toolset-common/inc/m2m/relationship/query/cardinality_match/single.php',
|
443 |
'Toolset_Relationship_Query_Condition' => __DIR__ . '/..' . '/toolset/toolset-common/inc/m2m/relationship/query/condition/abstract.php',
|
444 |
+
'Toolset_Relationship_Query_Condition_Exclude_Relationship' => __DIR__ . '/..' . '/toolset/toolset-common/inc/m2m/relationship/query/condition/exclude_relationship.php',
|
445 |
+
'Toolset_Relationship_Query_Condition_Exclude_Type' => __DIR__ . '/..' . '/toolset/toolset-common/inc/m2m/relationship/query/condition/exclude_type.php',
|
446 |
'Toolset_Relationship_Query_Condition_Factory' => __DIR__ . '/..' . '/toolset/toolset-common/inc/m2m/relationship/query/condition_factory.php',
|
447 |
'Toolset_Relationship_Query_Condition_Has_Active_Types' => __DIR__ . '/..' . '/toolset/toolset-common/inc/m2m/relationship/query/condition/has_active_types.php',
|
448 |
'Toolset_Relationship_Query_Condition_Has_Cardinality' => __DIR__ . '/..' . '/toolset/toolset-common/inc/m2m/relationship/query/condition/has_cardinality.php',
|
449 |
'Toolset_Relationship_Query_Condition_Has_Domain' => __DIR__ . '/..' . '/toolset/toolset-common/inc/m2m/relationship/query/condition/has_domain.php',
|
450 |
+
'Toolset_Relationship_Query_Condition_Intermediary_Type' => __DIR__ . '/..' . '/toolset/toolset-common/inc/m2m/relationship/query/condition/intermediary_type.php',
|
451 |
'Toolset_Relationship_Query_Condition_Is_Active' => __DIR__ . '/..' . '/toolset/toolset-common/inc/m2m/relationship/query/condition/is_active.php',
|
452 |
'Toolset_Relationship_Query_Condition_Is_Boolean_Flag' => __DIR__ . '/..' . '/toolset/toolset-common/inc/m2m/relationship/query/condition/is_boolean_flag.php',
|
453 |
'Toolset_Relationship_Query_Condition_Is_Legacy' => __DIR__ . '/..' . '/toolset/toolset-common/inc/m2m/relationship/query/condition/is_legacy.php',
|
476 |
'Toolset_Settings_Screen' => __DIR__ . '/..' . '/toolset/toolset-common/inc/toolset.settings.screen.class.php',
|
477 |
'Toolset_Shortcode_Attr_Field' => __DIR__ . '/..' . '/toolset/toolset-common/inc/autoloaded/shortcode/attr/field.php',
|
478 |
'Toolset_Shortcode_Attr_Interface' => __DIR__ . '/..' . '/toolset/toolset-common/inc/autoloaded/shortcode/attr/interface.php',
|
479 |
+
'Toolset_Shortcode_Attr_Item_Gui_Base' => __DIR__ . '/..' . '/toolset/toolset-common/inc/autoloaded/shortcode/attr/item/gui/base.php',
|
480 |
+
'Toolset_Shortcode_Attr_Item_Gui_Factory' => __DIR__ . '/..' . '/toolset/toolset-common/inc/autoloaded/shortcode/attr/item/gui/factory.php',
|
481 |
+
'Toolset_Shortcode_Attr_Item_Gui_M2m' => __DIR__ . '/..' . '/toolset/toolset-common/inc/autoloaded/shortcode/attr/item/gui/m2m.php',
|
482 |
+
'Toolset_Shortcode_Attr_Item_Gui_O2m' => __DIR__ . '/..' . '/toolset/toolset-common/inc/autoloaded/shortcode/attr/item/gui/o2m.php',
|
483 |
+
'Toolset_Shortcode_Attr_Item_Gui_O2o' => __DIR__ . '/..' . '/toolset/toolset-common/inc/autoloaded/shortcode/attr/item/gui/o2o.php',
|
484 |
+
'Toolset_Shortcode_Attr_Item_Gui_Option' => __DIR__ . '/..' . '/toolset/toolset-common/inc/autoloaded/shortcode/attr/item/gui/option.php',
|
485 |
'Toolset_Shortcode_Attr_Item_Id' => __DIR__ . '/..' . '/toolset/toolset-common/inc/autoloaded/shortcode/attr/item/id.php',
|
486 |
'Toolset_Shortcode_Attr_Item_Legacy' => __DIR__ . '/..' . '/toolset/toolset-common/inc/autoloaded/shortcode/attr/item/legacy.php',
|
487 |
'Toolset_Shortcode_Attr_Item_M2M' => __DIR__ . '/..' . '/toolset/toolset-common/inc/autoloaded/shortcode/attr/item/m2m.php',
|
488 |
'Toolset_Shortcode_Generator' => __DIR__ . '/..' . '/toolset/toolset-common/inc/toolset.shortcode.generator.class.php',
|
489 |
'Toolset_Shortcode_Transformer' => __DIR__ . '/..' . '/toolset/toolset-common/inc/toolset.shortcode.transformer.class.php',
|
490 |
+
'Toolset_Singleton_Factory' => __DIR__ . '/..' . '/toolset/toolset-common/utility/singleton_factory_pre_php_5_6.php',
|
491 |
'Toolset_Stack' => __DIR__ . '/..' . '/toolset/toolset-common/expression-parser/parser.php',
|
492 |
'Toolset_Style' => __DIR__ . '/..' . '/toolset/toolset-common/inc/toolset.assets.manager.class.php',
|
493 |
'Toolset_Template_Dialog_Box' => __DIR__ . '/..' . '/toolset/toolset-common/utility/gui-base/template_dialog_box.php',
|
498 |
'Toolset_Twig_Extensions' => __DIR__ . '/..' . '/toolset/toolset-common/utility/gui-base/twig_extensions.php',
|
499 |
'Toolset_Upgrade_Command_Definition' => __DIR__ . '/..' . '/toolset/toolset-common/inc/autoloaded/upgrade/command_definition.php',
|
500 |
'Toolset_Upgrade_Command_Definition_Repository' => __DIR__ . '/..' . '/toolset/toolset-common/inc/autoloaded/upgrade/command_definition_repository.php',
|
501 |
+
'Toolset_Upgrade_Command_Delete_Obsolete_Upgrade_Options' => __DIR__ . '/..' . '/toolset/toolset-common/inc/autoloaded/upgrade/command/delete_obsolete_version_number_option.php',
|
502 |
'Toolset_Upgrade_Command_Factory' => __DIR__ . '/..' . '/toolset/toolset-common/inc/autoloaded/upgrade/command_factory.php',
|
503 |
'Toolset_Upgrade_Command_M2M_V1_Database_Structure_Upgrade' => __DIR__ . '/..' . '/toolset/toolset-common/inc/autoloaded/upgrade/command/m2m_v1_database_structure_upgrade.php',
|
504 |
+
'Toolset_Upgrade_Command_M2M_V2_Database_Structure_Upgrade' => __DIR__ . '/..' . '/toolset/toolset-common/inc/autoloaded/upgrade/command/m2m_v2_database_structure_upgrade.php',
|
505 |
'Toolset_Upgrade_Controller' => __DIR__ . '/..' . '/toolset/toolset-common/inc/autoloaded/upgrade/controller.php',
|
506 |
'Toolset_Upgrade_Executed_Commands' => __DIR__ . '/..' . '/toolset/toolset-common/inc/autoloaded/upgrade/executed_commands.php',
|
507 |
'Toolset_User_Editors_Editor_Abstract' => __DIR__ . '/..' . '/toolset/toolset-common/user-editors/editor/abstract.php',
|
547 |
'Toolset_Wp_Query_Adjustments_Table_Join_Manager' => __DIR__ . '/..' . '/toolset/toolset-common/inc/autoloaded/wp_query_adjustments/table_join_manager.php',
|
548 |
'Toolset_Wpdb_User' => __DIR__ . '/..' . '/toolset/toolset-common/inc/autoloaded/wpdb_user.php',
|
549 |
'Toolset_Wpml_Utils' => __DIR__ . '/..' . '/toolset/toolset-common/inc/autoloaded/wpml_utils.php',
|
|
|
550 |
'Twig_Autoloader' => __DIR__ . '/..' . '/twig/twig/lib/Twig/Autoloader.php',
|
551 |
'Twig_BaseNodeVisitor' => __DIR__ . '/..' . '/twig/twig/lib/Twig/BaseNodeVisitor.php',
|
552 |
'Twig_CacheInterface' => __DIR__ . '/..' . '/twig/twig/lib/Twig/CacheInterface.php',
|
746 |
'Twig_Util_TemplateDirIterator' => __DIR__ . '/..' . '/twig/twig/lib/Twig/Util/TemplateDirIterator.php',
|
747 |
'Types_Admin' => __DIR__ . '/../..' . '/application/controllers/admin.php',
|
748 |
'Types_Admin_Menu' => __DIR__ . '/../..' . '/application/controllers/admin_menu.php',
|
749 |
+
'Types_Admin_Notices_Free_Version' => __DIR__ . '/../..' . '/application/controllers/admin_notice/free-version.php',
|
750 |
'Types_Ajax' => __DIR__ . '/../..' . '/application/controllers/ajax.php',
|
751 |
'Types_Ajax_Handler_Abstract' => __DIR__ . '/../..' . '/application/controllers/ajax/handler/abstract.php',
|
752 |
'Types_Ajax_Handler_Check_Slug_Conflicts' => __DIR__ . '/../..' . '/application/controllers/ajax/handler/check_slug_conflicts.php',
|
899 |
'WPToolset_Field_Wysiwyg' => __DIR__ . '/..' . '/toolset/toolset-common/toolset-forms/classes/class.wysiwyg.php',
|
900 |
'WPToolset_Forms_Bootstrap' => __DIR__ . '/..' . '/toolset/toolset-common/toolset-forms/bootstrap.php',
|
901 |
'WPToolset_Forms_Conditional' => __DIR__ . '/..' . '/toolset/toolset-common/toolset-forms/classes/class.conditional.php',
|
902 |
+
'WPToolset_Forms_Conditional_RFG' => __DIR__ . '/..' . '/toolset/toolset-common/toolset-forms/classes/class.conditional.rfg.php',
|
903 |
'WPToolset_Forms_Repetitive' => __DIR__ . '/..' . '/toolset/toolset-common/toolset-forms/classes/class.repetitive.php',
|
904 |
'WPToolset_Forms_Validation' => __DIR__ . '/..' . '/toolset/toolset-common/toolset-forms/classes/class.validation.php',
|
905 |
'WPToolset_Types' => __DIR__ . '/..' . '/toolset/toolset-common/toolset-forms/classes/class.types.php',
|
906 |
'WPV_Handle_Users_Functions' => __DIR__ . '/..' . '/toolset/toolset-common/toolset-forms/classes/class.conditional.php',
|
907 |
'WPV_wpcf_switch_post_from_attr_id' => __DIR__ . '/..' . '/toolset/toolset-common/inc/toolset.object.relationship.class.php',
|
|
|
|
|
|
|
|
|
|
|
908 |
);
|
909 |
|
910 |
public static function getInitializer(ClassLoader $loader)
|
911 |
{
|
912 |
return \Closure::bind(function () use ($loader) {
|
913 |
+
$loader->prefixLengthsPsr4 = ComposerStaticInitddd6f71ce3d43f91bd17c1a0b9e5f071::$prefixLengthsPsr4;
|
914 |
+
$loader->prefixDirsPsr4 = ComposerStaticInitddd6f71ce3d43f91bd17c1a0b9e5f071::$prefixDirsPsr4;
|
915 |
+
$loader->prefixesPsr0 = ComposerStaticInitddd6f71ce3d43f91bd17c1a0b9e5f071::$prefixesPsr0;
|
916 |
+
$loader->classMap = ComposerStaticInitddd6f71ce3d43f91bd17c1a0b9e5f071::$classMap;
|
917 |
|
918 |
}, null, ClassLoader::class);
|
919 |
}
|
vendor/composer/installed.json
CHANGED
@@ -118,39 +118,6 @@
|
|
118 |
"zikula"
|
119 |
]
|
120 |
},
|
121 |
-
{
|
122 |
-
"name": "xrstf/composer-php52",
|
123 |
-
"version": "v1.0.20",
|
124 |
-
"version_normalized": "1.0.20.0",
|
125 |
-
"source": {
|
126 |
-
"type": "git",
|
127 |
-
"url": "https://github.com/composer-php52/composer-php52.git",
|
128 |
-
"reference": "bd41459d5e27df8d33057842b32377c39e97a5a8"
|
129 |
-
},
|
130 |
-
"dist": {
|
131 |
-
"type": "zip",
|
132 |
-
"url": "https://api.github.com/repos/composer-php52/composer-php52/zipball/bd41459d5e27df8d33057842b32377c39e97a5a8",
|
133 |
-
"reference": "bd41459d5e27df8d33057842b32377c39e97a5a8",
|
134 |
-
"shasum": ""
|
135 |
-
},
|
136 |
-
"time": "2016-04-16T21:52:24+00:00",
|
137 |
-
"type": "library",
|
138 |
-
"extra": {
|
139 |
-
"branch-alias": {
|
140 |
-
"dev-default": "1.x-dev"
|
141 |
-
}
|
142 |
-
},
|
143 |
-
"installation-source": "dist",
|
144 |
-
"autoload": {
|
145 |
-
"psr-0": {
|
146 |
-
"xrstf\\Composer52": "lib/"
|
147 |
-
}
|
148 |
-
},
|
149 |
-
"notification-url": "https://packagist.org/downloads/",
|
150 |
-
"license": [
|
151 |
-
"MIT"
|
152 |
-
]
|
153 |
-
},
|
154 |
{
|
155 |
"name": "roave/security-advisories",
|
156 |
"version": "dev-master",
|
@@ -291,96 +258,6 @@
|
|
291 |
],
|
292 |
"description": "Prevents installation of composer packages with known security vulnerabilities: no API, simply require it"
|
293 |
},
|
294 |
-
{
|
295 |
-
"name": "otgs/icons",
|
296 |
-
"version": "dev-master",
|
297 |
-
"version_normalized": "9999999-dev",
|
298 |
-
"source": {
|
299 |
-
"type": "git",
|
300 |
-
"url": "https://git.onthegosystems.com/otgs-public/otgs-icons.git",
|
301 |
-
"reference": "622ab3c0549b70c87fa20de1c302ffcc07ea8f9c"
|
302 |
-
},
|
303 |
-
"time": "2018-04-06T08:47:19+00:00",
|
304 |
-
"type": "library",
|
305 |
-
"installation-source": "source",
|
306 |
-
"notification-url": "https://packagist.org/downloads/",
|
307 |
-
"license": [
|
308 |
-
"GPL-2.0"
|
309 |
-
],
|
310 |
-
"description": "Toolset and WPML icons"
|
311 |
-
},
|
312 |
-
{
|
313 |
-
"name": "otgs/installer",
|
314 |
-
"version": "1.8.10",
|
315 |
-
"version_normalized": "1.8.10.0",
|
316 |
-
"source": {
|
317 |
-
"type": "git",
|
318 |
-
"url": "ssh://git@git.onthegosystems.com:10022/installer/installer.git",
|
319 |
-
"reference": "28bcba8a8d54c28c8f4a51f095b438dfb3a3fdfd"
|
320 |
-
},
|
321 |
-
"require": {
|
322 |
-
"composer/installers": "~1.0",
|
323 |
-
"otgs/icons": "dev-master",
|
324 |
-
"php": ">=5.2.0",
|
325 |
-
"roave/security-advisories": "dev-master",
|
326 |
-
"xrstf/composer-php52": "1.*"
|
327 |
-
},
|
328 |
-
"require-dev": {
|
329 |
-
"otgs/build-tools": "~0.1",
|
330 |
-
"otgs/build-tools-ci": "~0.7",
|
331 |
-
"otgs/unit-tests-framework": "~1.2.0",
|
332 |
-
"sebastian/phpcpd": "^3.0"
|
333 |
-
},
|
334 |
-
"time": "2018-04-06T09:28:44+00:00",
|
335 |
-
"type": "library",
|
336 |
-
"extra": {
|
337 |
-
"branch-alias": {
|
338 |
-
"dev-master": "1.8.x-dev",
|
339 |
-
"dev-develop": "1.8.x-dev"
|
340 |
-
}
|
341 |
-
},
|
342 |
-
"installation-source": "source",
|
343 |
-
"autoload": {
|
344 |
-
"classmap": [
|
345 |
-
"includes/",
|
346 |
-
"templates/"
|
347 |
-
]
|
348 |
-
},
|
349 |
-
"scripts": {
|
350 |
-
"test": [
|
351 |
-
"phpunit"
|
352 |
-
],
|
353 |
-
"post-install-cmd": [
|
354 |
-
"xrstf\\Composer52\\Generator::onPostInstallCmd",
|
355 |
-
"OTGS\\Composer\\Scripts\\Install::PHPCSStandards"
|
356 |
-
],
|
357 |
-
"post-update-cmd": [
|
358 |
-
"xrstf\\Composer52\\Generator::onPostInstallCmd",
|
359 |
-
"OTGS\\Composer\\Scripts\\Install::PHPCSStandards"
|
360 |
-
],
|
361 |
-
"post-autoload-dump": [
|
362 |
-
"xrstf\\Composer52\\Generator::onPostInstallCmd"
|
363 |
-
]
|
364 |
-
},
|
365 |
-
"license": [
|
366 |
-
"GPL-2.0-or-later"
|
367 |
-
],
|
368 |
-
"authors": [
|
369 |
-
{
|
370 |
-
"name": "Mihai Grigori",
|
371 |
-
"email": "mihai@wpml.org",
|
372 |
-
"homepage": "http://www.wp-types.com"
|
373 |
-
}
|
374 |
-
],
|
375 |
-
"description": "Installs and updates WPML and Toolset dependencies automatically",
|
376 |
-
"homepage": "https://git.onthegosystems.com/installer/installer",
|
377 |
-
"keywords": [
|
378 |
-
"install",
|
379 |
-
"plugins",
|
380 |
-
"update",
|
381 |
-
"utils"
|
382 |
-
]
|
383 |
-
},
|
384 |
{
|
385 |
"name": "toolset/onthego-resources",
|
386 |
"version": "dev-master",
|
@@ -431,12 +308,12 @@
|
|
431 |
},
|
432 |
{
|
433 |
"name": "toolset/toolset-common",
|
434 |
-
"version": "2.
|
435 |
-
"version_normalized": "2.
|
436 |
"source": {
|
437 |
"type": "git",
|
438 |
"url": "ssh://git@git.onthegosystems.com:10022/toolset/toolset-common.git",
|
439 |
-
"reference": "
|
440 |
},
|
441 |
"require": {
|
442 |
"php": ">=5.2.0"
|
@@ -445,9 +322,10 @@
|
|
445 |
"10up/wp_mock": "~0.2.0",
|
446 |
"otgs/build-tools-ci": "~0.7.0",
|
447 |
"otgs/unit-tests-framework": "~1.2.0",
|
448 |
-
"phpunit/php-token-stream": "<2.0"
|
|
|
449 |
},
|
450 |
-
"time": "2018-
|
451 |
"type": "library",
|
452 |
"extra": {
|
453 |
"branch-alias": {
|
@@ -490,8 +368,8 @@
|
|
490 |
"authors": [
|
491 |
{
|
492 |
"name": "Bruce Pearson, Juan de Paco, Riccardo Strobbia, Francesco Livolsi, Jan Štětina, Christian Glingener",
|
493 |
-
"email": "
|
494 |
-
"homepage": "
|
495 |
}
|
496 |
],
|
497 |
"description": "A set of libraries for Toolset Plugins",
|
118 |
"zikula"
|
119 |
]
|
120 |
},
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
121 |
{
|
122 |
"name": "roave/security-advisories",
|
123 |
"version": "dev-master",
|
258 |
],
|
259 |
"description": "Prevents installation of composer packages with known security vulnerabilities: no API, simply require it"
|
260 |
},
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
261 |
{
|
262 |
"name": "toolset/onthego-resources",
|
263 |
"version": "dev-master",
|
308 |
},
|
309 |
{
|
310 |
"name": "toolset/toolset-common",
|
311 |
+
"version": "2.8",
|
312 |
+
"version_normalized": "2.8.0.0",
|
313 |
"source": {
|
314 |
"type": "git",
|
315 |
"url": "ssh://git@git.onthegosystems.com:10022/toolset/toolset-common.git",
|
316 |
+
"reference": "289283b3a015b6ed5d16ad478ee3dde8604e5933"
|
317 |
},
|
318 |
"require": {
|
319 |
"php": ">=5.2.0"
|
322 |
"10up/wp_mock": "~0.2.0",
|
323 |
"otgs/build-tools-ci": "~0.7.0",
|
324 |
"otgs/unit-tests-framework": "~1.2.0",
|
325 |
+
"phpunit/php-token-stream": "<2.0",
|
326 |
+
"sebastian/phpcpd": "^3.0"
|
327 |
},
|
328 |
+
"time": "2018-05-29T08:04:45+00:00",
|
329 |
"type": "library",
|
330 |
"extra": {
|
331 |
"branch-alias": {
|
368 |
"authors": [
|
369 |
{
|
370 |
"name": "Bruce Pearson, Juan de Paco, Riccardo Strobbia, Francesco Livolsi, Jan Štětina, Christian Glingener",
|
371 |
+
"email": "juan.d@onthegosystems.com",
|
372 |
+
"homepage": "https://toolset.com"
|
373 |
}
|
374 |
],
|
375 |
"description": "A set of libraries for Toolset Plugins",
|
vendor/otgs/icons/css/otgs-icons.css
DELETED
@@ -1,196 +0,0 @@
|
|
1 |
-
@charset "UTF-8";
|
2 |
-
|
3 |
-
@font-face {
|
4 |
-
font-family: "otgs-icons";
|
5 |
-
src:url("fonts/otgs-icons.eot");
|
6 |
-
src:url("fonts/otgs-icons.eot?#iefix") format("embedded-opentype"),
|
7 |
-
url("fonts/otgs-icons.woff") format("woff"),
|
8 |
-
url("fonts/otgs-icons.ttf") format("truetype"),
|
9 |
-
url("fonts/otgs-icons.svg#otgs-icons") format("svg");
|
10 |
-
font-weight: normal;
|
11 |
-
font-style: normal;
|
12 |
-
|
13 |
-
}
|
14 |
-
|
15 |
-
[data-icon]:before {
|
16 |
-
font-family: "otgs-icons" !important;
|
17 |
-
content: attr(data-icon);
|
18 |
-
font-style: normal !important;
|
19 |
-
font-weight: normal !important;
|
20 |
-
font-variant: normal !important;
|
21 |
-
text-transform: none !important;
|
22 |
-
speak: none;
|
23 |
-
line-height: 1;
|
24 |
-
-webkit-font-smoothing: antialiased;
|
25 |
-
-moz-osx-font-smoothing: grayscale;
|
26 |
-
}
|
27 |
-
|
28 |
-
[class^="otgs-ico-"]:before,
|
29 |
-
[class*=" otgs-ico-"]:before {
|
30 |
-
font-family: "otgs-icons" !important;
|
31 |
-
font-style: normal !important;
|
32 |
-
font-weight: normal !important;
|
33 |
-
font-variant: normal !important;
|
34 |
-
text-transform: none !important;
|
35 |
-
speak: none;
|
36 |
-
line-height: 1;
|
37 |
-
-webkit-font-smoothing: antialiased;
|
38 |
-
-moz-osx-font-smoothing: grayscale;
|
39 |
-
}
|
40 |
-
|
41 |
-
.otgs-ico-note-add:before {
|
42 |
-
content: "\61";
|
43 |
-
}
|
44 |
-
.otgs-ico-note-add-o:before {
|
45 |
-
content: "\62";
|
46 |
-
}
|
47 |
-
.otgs-ico-translated:before {
|
48 |
-
content: "\63";
|
49 |
-
}
|
50 |
-
.otgs-ico-yes:before {
|
51 |
-
content: "\64";
|
52 |
-
}
|
53 |
-
.otgs-ico-in-progress:before {
|
54 |
-
content: "\65";
|
55 |
-
}
|
56 |
-
.otgs-ico-copy:before {
|
57 |
-
content: "\66";
|
58 |
-
}
|
59 |
-
.otgs-ico-copy-o:before {
|
60 |
-
content: "\67";
|
61 |
-
}
|
62 |
-
.otgs-ico-note-edit:before {
|
63 |
-
content: "\69";
|
64 |
-
}
|
65 |
-
.otgs-ico-note-edit-o:before {
|
66 |
-
content: "\6a";
|
67 |
-
}
|
68 |
-
.otgs-ico-add:before {
|
69 |
-
content: "\6b";
|
70 |
-
}
|
71 |
-
.otgs-ico-refresh:before {
|
72 |
-
content: "\6c";
|
73 |
-
}
|
74 |
-
.otgs-ico-no:before {
|
75 |
-
content: "\6e";
|
76 |
-
}
|
77 |
-
.otgs-ico-not-translated:before {
|
78 |
-
content: "\6f";
|
79 |
-
}
|
80 |
-
.otgs-ico-delete:before {
|
81 |
-
content: "\70";
|
82 |
-
}
|
83 |
-
.otgs-ico-waiting:before {
|
84 |
-
content: "\71";
|
85 |
-
}
|
86 |
-
.otgs-ico-warning:before {
|
87 |
-
content: "\73";
|
88 |
-
}
|
89 |
-
.otgs-ico-original:before {
|
90 |
-
content: "\74";
|
91 |
-
}
|
92 |
-
.otgs-ico-needs-update:before {
|
93 |
-
content: "\75";
|
94 |
-
}
|
95 |
-
.otgs-ico-cred:before {
|
96 |
-
content: "\77";
|
97 |
-
}
|
98 |
-
.otgs-ico-layouts:before {
|
99 |
-
content: "\78";
|
100 |
-
}
|
101 |
-
.otgs-ico-module-manager:before {
|
102 |
-
content: "\79";
|
103 |
-
}
|
104 |
-
.otgs-ico-toolset:before {
|
105 |
-
content: "\7a";
|
106 |
-
}
|
107 |
-
.otgs-ico-types:before {
|
108 |
-
content: "\41";
|
109 |
-
}
|
110 |
-
.otgs-ico-views:before {
|
111 |
-
content: "\42";
|
112 |
-
}
|
113 |
-
.otgs-ico-edit:before {
|
114 |
-
content: "\68";
|
115 |
-
}
|
116 |
-
.otgs-ico-duplicate:before {
|
117 |
-
content: "\6d";
|
118 |
-
}
|
119 |
-
.otgs-ico-basket:before {
|
120 |
-
content: "\72";
|
121 |
-
}
|
122 |
-
.otgs-ico-discoverwp:before {
|
123 |
-
content: "\43";
|
124 |
-
}
|
125 |
-
.otgs-ico-wpml:before {
|
126 |
-
content: "\44";
|
127 |
-
}
|
128 |
-
.otgs-ico-otgs:before {
|
129 |
-
content: "\45";
|
130 |
-
}
|
131 |
-
.otgs-ico-wrench:before {
|
132 |
-
content: "\46";
|
133 |
-
}
|
134 |
-
.otgs-ico-link:before {
|
135 |
-
content: "\47";
|
136 |
-
}
|
137 |
-
.otgs-ico-envelope-o:before {
|
138 |
-
content: "\48";
|
139 |
-
}
|
140 |
-
.otgs-ico-user:before {
|
141 |
-
content: "\49";
|
142 |
-
}
|
143 |
-
.otgs-ico-wpml-cms-nav:before {
|
144 |
-
content: "\4a";
|
145 |
-
}
|
146 |
-
.otgs-ico-wpml-media:before {
|
147 |
-
content: "\4b";
|
148 |
-
}
|
149 |
-
.otgs-ico-wpml-string-translation:before {
|
150 |
-
content: "\4c";
|
151 |
-
}
|
152 |
-
.otgs-ico-wpml-translation-management:before {
|
153 |
-
content: "\4d";
|
154 |
-
}
|
155 |
-
.otgs-ico-picture:before {
|
156 |
-
content: "\4e";
|
157 |
-
}
|
158 |
-
.otgs-ico-toolset-training:before {
|
159 |
-
content: "\4f";
|
160 |
-
}
|
161 |
-
.otgs-ico-access-title:before {
|
162 |
-
content: "\50";
|
163 |
-
}
|
164 |
-
.otgs-ico-views-title:before {
|
165 |
-
content: "\51";
|
166 |
-
}
|
167 |
-
.otgs-ico-cred-title:before {
|
168 |
-
content: "\52";
|
169 |
-
}
|
170 |
-
.otgs-ico-layouts-title:before {
|
171 |
-
content: "\53";
|
172 |
-
}
|
173 |
-
.otgs-ico-types-title:before {
|
174 |
-
content: "\54";
|
175 |
-
}
|
176 |
-
.otgs-ico-module-manager-title:before {
|
177 |
-
content: "\55";
|
178 |
-
}
|
179 |
-
.otgs-ico-access:before {
|
180 |
-
content: "\76";
|
181 |
-
}
|
182 |
-
.otgs-ico-bullhorn:before {
|
183 |
-
content: "\56";
|
184 |
-
}
|
185 |
-
.otgs-ico-comment:before {
|
186 |
-
content: "\57";
|
187 |
-
}
|
188 |
-
.otgs-ico-quote:before {
|
189 |
-
content: "\58";
|
190 |
-
}
|
191 |
-
.otgs-ico-thumbsup:before {
|
192 |
-
content: "\59";
|
193 |
-
}
|
194 |
-
.otgs-ico-star:before {
|
195 |
-
content: "\5a";
|
196 |
-
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
vendor/otgs/icons/fonts/otgs-icons.eot
DELETED
Binary file
|
vendor/otgs/icons/fonts/otgs-icons.svg
DELETED
@@ -1,62 +0,0 @@
|
|
1 |
-
<?xml version="1.0" standalone="no"?>
|
2 |
-
<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd">
|
3 |
-
<svg xmlns="http://www.w3.org/2000/svg">
|
4 |
-
<metadata>Generated by Fontastic.me</metadata>
|
5 |
-
<defs>
|
6 |
-
<font id="otgs-icons" horiz-adv-x="512">
|
7 |
-
<font-face font-family="otgs-icons" units-per-em="512" ascent="480" descent="-32"/>
|
8 |
-
<missing-glyph horiz-adv-x="512" />
|
9 |
-
|
10 |
-
<glyph glyph-name="note-add" unicode="a" d="M394 304c-49 0-89 39-89 89l0 59-180 0c-36 0-65-29-65-65l0-261c0-70 66-66 66-66l261 0c36 0 65 29 65 65l0 179z m-92-91l-29 0 0-29c0-15-12-27-27-27-16 0-28 12-28 27l0 29-30 0c-16 0-28 12-28 28 0 15 12 27 28 27l29 0 0 29c0 15 12 27 27 27 15 0 27-12 27-27l0-29 29 0c16 0 28-12 28-27 1-14-11-28-26-28z m97 132l52 0-110 109 0-51c2-33 28-58 58-58z"/>
|
11 |
-
<glyph glyph-name="note-add-o" unicode="b" d="M242 324c16 0 28-12 28-27l0-29 29 0c15 0 27-12 27-27 0-16-12-28-27-28l-29 0 0-29c0-15-12-27-28-27-15 0-27 12-27 27l0 29-29 0c-15 0-27 12-27 28 0 15 12 27 27 27l29 0 0 29c0 14 12 27 27 27z m77 140l-196 0c-44 0-80-36-80-80l0-258c0-65 51-82 80-82l259 0c45 0 81 36 81 81l0 194z m0-48l97-99-25 0c-39 0-72 33-72 72z m111-293c0-26-20-46-46-46l-259 0c-14 0-48 5-48 49l0 258c0 26 20 46 46 46l162 0 0-41c0-58 48-104 104-104l41 0z"/>
|
12 |
-
<glyph glyph-name="translated" unicode="c" d="M439 384c-19 19-50 19-70 0l-156-154-70 70c-18 19-49 19-70 0-18-18-18-49 0-70l104-104c19-18 52-18 70 0l190 188c20 21 20 51 2 70z"/>
|
13 |
-
<glyph glyph-name="yes" unicode="d" d="M111 44c-7 0-36 2-58 23-15 15-24 35-24 61l0 256c0 44 36 80 80 80l179 0 0-34-177 0c-26 0-46-20-46-46l0-258c0-15 5-29 12-36 13-13 34-11 36-11l259 0c26 0 46 20 46 46l0 179 34 0 0-179c0-45-36-81-80-81l-259 0c0 0-2 0-2 0z m123 108c-9 0-17 3-24 10l-91 89c-13 14-13 34 0 48 14 13 35 13 48 0l60-60 140 213c10 16 31 21 48 11 15-11 20-31 10-48l-164-249c-5-9-15-14-25-16 0 2 0 2-2 2z"/>
|
14 |
-
<glyph glyph-name="in-progress" unicode="e" d="M329 203l0-15c-1-9-8-16-17-17l-17 0c-1 0-3 0-5-2-2 0-3-2-5-3-7-7-7-16-2-23l4-3 7-7 3-3c5-7 5-17 0-24l-12-12c-7-5-17-5-24 0l-5 3-7 7-3 4c0 0-2 0-2 1-2 2-5 2-7 2 0 0 0 0-1 0-2 0-4 0-6 0 0 0-1 0-1-2 0 0 0 0-2 0-2 0-2-1-3-3-2-2-4-5-4-9l0-17c-2-8-8-15-17-17l-15 0c-9 2-16 9-17 17l0 17c0 4-2 7-5 11-4 3-9 5-14 5 0 0 0 0-2 0 0 0-2 0-2 0 0 0-1 0-1 0 0 0-2 0-2 0 0 0 0 0-2 0 0 0 0 0-1-2l-9-9-3-3c-7-5-17-5-24 0l-12 12c-5 7-5 17 0 24l3 3 7 7 4 3c1 4 3 7 3 11 0 7-5 13-12 15 0 0 0 0-2 0 0 0-1 0-1 0l-19 0c-9 2-16 9-17 17l0 16c1 8 8 17 17 17l17 0c3 0 7 1 10 5 4 3 5 8 5 13 0 0 0 2 0 2 0 0 0 2 0 2 0 0 0 0 0 1 0 0 0 0 0 2l-12 7-3 3c-5 7-5 17 0 24l12 12c7 5 17 5 24 0l3-3 7-7 3-3c4-2 7-4 11-4 3 0 8 2 10 4 2 1 3 3 3 5 0 0 0 1 0 1 0 0 0 2 0 2 0 0 0 2 0 2 0 0 0 2 0 2l0 18c2 9 9 16 17 17l16 0c8-1 15-8 17-17l0-17c0-3 1-7 5-10 2-2 3-3 5-3 5-2 12-2 17 1l12 12c7 5 17 5 24 0l12-12c5-7 5-17 0-24l0-3-10-10c-2-2-2-4-4-5 0-2-2-4-2-5 0-6 4-11 7-14 2-2 5-2 7-4l22 0c9 0 16-6 17-15z m-134 31c-21 0-38-17-38-38 0-20 17-37 38-37 20 0 37 17 37 37 2 21-17 38-37 38z m257 94l-5-11c-3-5-10-8-17-6l-3 1-7 2-4 2c-1 0-1 0-3 0-2 0-3 0-5-2-5-2-9-9-7-15l2-2 5-10c2-7-2-14-7-17l-10-5c-7-2-14 0-17 6l-2 4-2 7-1 3c0 0 0 0 0 2-2 1-2 3-4 3-1 0-1 0-3 0 0 0-2 0-2 0-2 0-2 0-3-2-2-1-4-3-5-5l-2-1-2-7-5-2c-3-5-10-8-17-7l-10 5c-5 4-9 11-7 17l2 4 1 5 2 3c0 2 0 5 0 9-2 3-3 5-7 7 0 0 0 0-2 0 0 0 0 0-1 0 0 0 0 0-2 0 0 0 0 0-2 0 0 0 0 0-1 0l-9-5-3-2c-7-2-14 2-17 7l-5 10c-2 7 1 14 6 17l11 5 3 2c2 2 3 3 5 5 2 5 0 10-3 14 0 0 0 0-2 0l-9 3-3 2c-5 3-8 10-7 17l5 10c4 5 11 9 17 7l2-2 7-2 3-1c2 0 5 0 9 0 3 1 7 5 7 8 0 0 0 0 0 2 0 0 0 0 0 2l-5 12-2 3c-2 7 2 14 7 17l10 5c7 2 14-1 17-7l2-3 1-7 2-3c2-2 4-4 7-5 2 0 5 0 7 0 2 0 3 1 3 1 0 0 0 0 0 2 0 0 0 0 0 2 0 0 0 0 0 1l2 2 2 7 1 3c4 6 11 9 17 7l11-5c5-3 8-10 6-17l-1-3-2-7-2-4c0-1 0-5 0-8 0-2 2-4 2-4 3-3 9-5 12-3l14 7 3 2c7 1 14-2 17-7l5-10c2-7 0-14-7-18l-3-1-7-2-3-2c-2 0-2-1-4-3-1-2-1-2-1-3-2-4-2-9 1-12 2-2 2-4 4-4l8-3 4-2c7-3 10-10 8-15z m-83 56c-14 5-31-2-36-15-5-14 2-31 15-36 14-5 31 2 36 15 5 14 0 31-15 36z"/>
|
15 |
-
<glyph glyph-name="copy" unicode="f" d="M420 398l41 0-86 87 0-41c0-26 21-46 45-46z m-4-33c-39 0-71 33-71 70l0 48-144 0c-29 0-51-22-51-51l0-277c0-56 53-53 53-53l208 0c29 0 52 23 52 52l0 211z m-10-106l-51-51c-5-5-12-1-12 5l0 23-113 0c-10 0-18 8-18 18l0 22c0 11 8 19 18 19l113 0 0 22c0 7 9 11 12 6l51-52c0 0 4-3 0 0 4-5 4-8 0-12z m0 11c4-4 0 0 0 0z m-281-132l0 222-17 0c-24 0-52-25-52-49l0-241c0-48 53-51 53-51l181 0c24 0 39 25 39 49l0 2-145 0c-24 0-59 15-59 68z"/>
|
16 |
-
<glyph glyph-name="copy-o" unicode="g" d="M387 271l-47 48c-5 5-12 2-12-5l0-20-108 0c-10 0-17-9-17-18l0-20c0-10 7-17 17-17l108 0 0-21c0-5 7-8 12-5l47 48c2 4 2 9 0 10 0 0 2-1 0 0z m-44 221l-145 0c-29 0-53-21-60-48l-27 0c-32 0-60-28-60-60l0-290c0-19 5-34 17-45 16-15 36-15 43-15 0 0 2 0 2 0l189 0c29 0 53 21 58 48l31 0c32 0 60 27 60 60l0 240z m0-36l72-74-19 0c-29 0-53 24-53 53z m-41-398l-191 0c0 0-15 0-26 9-6 5-8 15-8 27l0 290c0 19 15 34 34 34l26 0 0-276c0-48 37-62 59-62l137 0c-4-13-16-22-31-22z m125 82c0-19-16-34-34-34l-193 0c-11 0-36 3-36 36l0 290c0 19 15 34 34 34l121 0 0-31c0-42 34-78 79-78l29 0z"/>
|
17 |
-
<glyph glyph-name="note-edit" unicode="i" d="M399 345l52 0-110 109 0-51c2-33 28-58 58-58z m-5-41c-49 0-89 39-89 89l0 59-180 0c-36 0-65-29-65-65l0-261c0-70 66-66 66-66l261 0c36 0 65 29 65 65l0 179z m-133-128l-107 107c-7 7-7 19 0 26l29 29c6 7 18 7 25 0l108-108c7-6 7-18 0-25l-29-29c-5-9-17-9-26 0z m31-22l44 44 21-65z"/>
|
18 |
-
<glyph glyph-name="note-edit-o" unicode="j" d="M333 189l-43-42 62-22z m-14 275l-196 0c-44 0-80-36-80-80l0-258c0-65 51-82 80-82l259 0c45 0 81 36 81 81l0 194z m0-48l97-99-25 0c-39 0-72 33-72 72z m111-293c0-26-20-46-46-46l-259 0c-14 0-48 5-48 49l0 258c0 26 20 46 46 46l162 0 0-41c0-58 48-104 104-104l41 0z m-171 46l-105 106c-7 7-7 19 0 25l29 29c6 7 18 7 25 0l106-105c7-7 7-19 0-26l-29-29c-7-7-19-7-26 0z"/>
|
19 |
-
<glyph glyph-name="add" unicode="k" d="M297 215l123 0c19 0 32 15 32 32l0 18c0 18-15 32-32 32l-123 0 0 123c0 19-15 32-32 32l-18 0c-18 0-32-15-32-32l0-123-123 0c-19 0-32-15-32-32l0-18c0-18 15-32 32-32l123 0 0-123c0-19 15-32 32-32l18 0c18 0 32 15 32 32z"/>
|
20 |
-
<glyph glyph-name="refresh" unicode="l" d="M258 437c-103 0-185-82-185-184l-30 0c-9 0-12-6-5-12l27-28 27-25c7-7 17-7 24 0l55 54c6 7 3 12-5 12l-33 0c0 69 56 125 125 125 34 0 66-14 88-36l41 41c-34 32-78 53-129 53z m-4-362c101 0 185 82 185 184l30 0c9 0 12 6 5 12l-27 28-27 25c-7 7-17 7-24 0l-55-54c-6-7-5-12 5-12l33 0c0-69-56-125-125-125-34 0-66 14-88 36l-41-41c34-32 78-53 129-53z"/>
|
21 |
-
<glyph glyph-name="no" unicode="n" d="M464 384c0 44-36 80-80 80l-261 0c-44 0-80-36-80-80l0-258c0-25 8-46 24-61 20-21 49-22 58-22 1 0 1 0 1 0l258 0c44 0 80 36 80 80z m-34-261c0-26-20-46-46-46l-259 0c0 0-21 0-36 12-9 8-12 20-12 36l0 259c0 26 20 46 46 46l261 0c26 0 46-20 46-46z"/>
|
22 |
-
<glyph glyph-name="not-translated" unicode="o" d="M329 256l111 111c16 15 16 43 0 60l-15 15c-15 17-43 17-60 0l-109-113-111 111c-15 16-43 16-58 0l-15-15c-16-15-16-43 0-58l111-111-111-111c-16-15-16-43 0-60l15-15c15-15 43-15 60 0l111 111 111-111c15-15 42-15 59 0l16 15c15 16 15 43 0 60z"/>
|
23 |
-
<glyph glyph-name="delete" unicode="p" d="M403 428l-99 0c0 14-10 24-24 24l-50 0c-13 0-23-10-23-24l-98 0c-13 0-24-10-24-24 0-13 11-23 24-23l295 0c14 0 24 10 24 23 0 14-12 24-25 24z m-295-71l0-243c0-30 25-56 56-56l186 0c31 0 56 26 56 56l0 243z m83-226c0-8-7-15-15-15-9 0-16 7-16 15l0 151c0 8 7 15 16 15 8 0 15-7 15-15z m80 0c0-8-6-15-15-15-9 0-15 7-15 15l0 151c0 8 6 15 15 15 9 0 15-7 15-15z m82 0c0-8-7-15-15-15-9 0-15 7-15 15l0 151c0 8 6 15 15 15 8 0 15-7 15-15z"/>
|
24 |
-
<glyph glyph-name="waiting" unicode="q" d="M439 90c-2 0-4 4-4 6-2 6-2 12-3 18-17 70-62 115-130 135-3 2-5 4-5 7 0 3 2 5 5 7 72 19 123 78 133 152 0 3 2 7 7 7 9 1 12 10 10 17-1 8-8 13-19 13-100 0-201 0-302 0-18 0-35 0-54 0-10 0-17-5-19-13-2-9 3-14 14-17l3-4c4-8 4-15 7-22 19-68 61-113 130-133 3-2 5-4 5-7 0-3 0-5-5-7-72-19-123-78-133-152 0-3-2-7-7-7-9-1-14-15-11-23 2-7 9-16 18-16 59 0 117 0 177 0 60 0 118 0 177 0 11 0 18 10 19 19 2 7-5 19-13 20z m-33 328c-3-10-12-34-15-43l-270 0c-3 6-5 11-7 16-3 7-3 19-6 27m122-196c14 0 41 2 57 0 24-5 46-15 65-33 12-10 22-22 30-35l-252 0c22 34 59 61 100 68z"/>
|
25 |
-
<glyph glyph-name="warning" unicode="s" d="M447 126l-165 285c-14 24-36 24-52 0l-165-285c-14-24-2-44 25-44l330 0c29 0 41 20 27 44z m-165 14l-48 0 0 31 48 0z m-6 51l-39 0-5 126 50 0z"/>
|
26 |
-
<glyph glyph-name="original" unicode="t" d="M256 452c-108 0-196-88-196-196 0-108 88-196 196-196 108 0 196 88 196 196 0 108-88 196-196 196z m138-112l4-5c10-19 17-40 20-62l0-7-73 0 0 7c0 17-2 32-5 48l-2 7 7 1c15 4 30 6 44 11z m-65 59c16-8 29-17 41-29 0 0 2-1 2-1l9-9-11-3c-8-2-18-4-29-5l-5 0-1 5c-4 12-7 25-12 36l-7 17z m-13-131l-125 0 0 7c0 15 2 30 5 44l2 5 5 0c17-1 36-1 55-1 18 0 37 0 54 1l5 0 2-5c2-14 4-29 5-44l0-7z m7-24l0-7c0-15-2-30-6-44l-1-5-5 0c-17 1-36 1-55 1-19 0-38 0-55-1l-5 0-1 5c-2 14-4 29-6 44l0 7z m-120 111c4 10 7 20 10 29 5 12 12 22 17 29l2 2 2 0c7 1 13 1 20 1 7 0 14 0 22-1l2 0 2-2c7-7 12-17 17-29 3-9 7-19 10-29l2-7-9 0c-15-2-30-2-47-2-17 0-33 0-48 2l-7 0z m-63 14c0 0 2 1 2 1 12 12 25 23 41 29l15 9-7-17c-5-10-8-22-12-36l-2-5-5 2c-10 1-20 3-29 5l-12 3z m-44-94c1 22 8 42 20 61l2 5 5-1c14-4 27-7 44-11l7-1-2-7c-3-16-5-31-5-48l0-7-71 0z m22-103l-2 5c-10 19-17 40-20 62l0 7 73 0 0-7c0-17 2-32 5-48l2-7-7-1c-15-4-31-6-44-11z m65-59c-16 8-29 17-41 29 0 0-2 1-2 1l-7 9 10 3c9 2 19 4 29 5l5 2 2-5c4-14 7-26 12-36l7-15z m126 44c-4-10-7-20-10-29-5-12-12-22-17-29l-2-2-2 0c-7-1-13-1-22-1-7 0-14 0-20 1l-2 0-2 2c-7 7-12 17-17 29-3 9-7 19-10 29l-2 7 7 0c15 2 31 2 48 2 17 0 32 0 47-2l9 0z m63-12c0 0-2-2-2-2-12-12-25-22-41-29l-15-8 7 15c5 10 8 22 12 36l2 5 5-2c10-1 20-3 29-5l10-3z m44 92c-1-22-8-42-20-61l-3-5-6 1c-13 4-27 7-44 11l-7 1 2 7c2 16 3 31 5 48l0 7 73 0z"/>
|
27 |
-
<glyph glyph-name="needs-update" unicode="u" d="M258 437c-103 0-185-82-185-184l-30 0c-9 0-12-6-5-12l27-28 27-25c7-7 17-7 24 0l55 54c6 7 3 12-5 12l-33 0c0 69 56 125 125 125 34 0 66-14 88-36l41 41c-34 32-78 53-129 53z m-4-362c101 0 185 82 185 184l30 0c9 0 12 6 5 12l-27 28-27 25c-7 7-17 7-24 0l-55-54c-6-7-5-12 5-12l33 0c0-69-56-125-125-125-34 0-66 14-88 36l-41-41c34-32 78-53 129-53z m19 260l-5-115-36 0-5 115z m0-163l-44 0 0 29 44 0z"/>
|
28 |
-
<glyph glyph-name="cred" unicode="w" d="M384 427l0 85-85 0 0-85-86 0 0 85-85 0 0-85-85 0 0-427 426 0 0 427z m-32-329c0-1 0-2-1-3 0 0 0-1 0-2-1-1-1-1-2-2-1-1-1-1-1-2-1-1-2-2-2-2-1-1-2-2-3-2l-1 0c-1-1-2-2-4-3-1 0-2-2-4-2 0-1-2-1-3-2l0 0c-1-1-2-1-2-1l-2 0c-2-1-3-2-6-2l0 0c-2-1-5-2-7-2l0 0c-3-1-5-2-8-3l-1 0c-3 0-5-1-8-1l-1 0c-2-1-4-1-7-1l-2 0c-2 0-5 0-7 0l-1 0c-3 0-6-1-9-1l-1 0c-2 0-5 0-7 0l-1 0c-1 0-3 0-4 0-1 0-2 0-3 0l-1 0c-2 0-4 0-6 0l-2 0c-2 0-3 0-5 1l-2 0c-2 0-3 0-5 0l-1 0c-2 0-3 1-5 1l-2 0c-2 0-3 1-5 1-2 0-4 0-6 1l-1 0c-3 1-5 1-6 2l-1 0c-3 0-5 1-7 2l-1 0c0 0-1 0-2 0l-2 1c-1 0-1 1-2 1l-1 1 0 0-6 2-2 1-2-3-10 5-2 2-1 1-2 1 0 1-2 2 0 1 0 3-1 1 0 1-1 1 0 3c0 1 0 2 0 2l-1 56c0-1 0-2 0-2l0-4 1-1 6-5 1-1 2-2 5-3 2-5 5-3 2 0 6-3c0 0 1-1 2-1l1-1c1 0 2 0 3 0l1-1c3-1 5-2 7-2l1 0c2-1 3-1 5-2l2 0c1 0 3 0 5-1l1 0c2 0 4-1 6-1l1 0c2 0 3-1 5-1l2 0c2 0 3 0 5 0l2 0c1 0 2 0 5-1l1 0c2 0 4 0 6 0 2 0 3 0 5 0 1 0 3 0 4 0 2 0 5 0 7 0l2 0c2 0 5 0 8 1l1 0c3 0 5 0 8 0l1 0c2 0 5 1 7 1l1 0c3 1 6 1 8 2l1 0c3 0 5 1 8 2l1 0c2 0 4 1 6 2l1 0c2 1 3 1 5 2l1 1c1 0 2 0 2 0l2 1c0 1 2 1 3 2 1 0 3 2 4 2 2 1 3 2 4 3l1 0c0 1 2 2 3 2 0 1 1 2 2 3l0 0c1 1 2 2 2 2 1 1 1 2 1 2l0 1c0 1 1 2 1 2 0 1 0 2 1 3l0 2 0-56z m0 80c0-2 0-2-1-3 0-1 0-1 0-2-1-1-1-2-2-2-1-1-1-2-1-2-1-1-2-2-2-3-1 0-2-1-3-2l-1 0c-1 0-2-1-4-2-1-1-2-2-4-3 0 0-2 0-3-1l-1-1c-1-1-1-1-2-1l-2 0c-2 0-3-1-5-2l-1 0c-2 0-4-1-6-2l-1 0c-2-1-5-1-8-2l-1 0c-2-1-5-1-7-1l-2 0c-2-1-4-1-7-1l-1 0c-3 0-5-1-8-1l-1 0c-3 0-6-1-8-1l-2 0c-2 0-5 0-7 0l-1 0c-1 0-3 0-3 0-2 0-3 0-4 0l-1 0c-2 0-4 0-6 0l-2 0c-2 0-3 0-4 1l-2 0c-3 0-4 1-6 1l-1 0c-1 0-3 1-5 1l-1 0c-2 0-4 0-6 0-2 0-4 1-6 2l-1 0c-2 0-4 0-6 1l-1 0c-2 1-4 2-7 2l0 0c-1 0-2 1-3 1l-2 1c0 0-1 0-2 0l0 1-1 0-4 2-3-3-11 6 0 2-3 3-1 1-1 1-3 2 0 2 0 1-1 1 0 1-1 1 0 3c0 1 0 1 0 2l-1 56c0-1 0-2 0-3l0-3 7-7 1 0 2-2 12-7 2-1 6-2c0 0 1-1 2-1l1-1c1 0 2-1 3-1l1 0c3-1 5-2 7-2l1 0c2-1 3-1 5-2l2 0c1 0 3 0 5-1l1 0c2 0 4-1 6-1l1 0c2 0 3-1 5-1l2 0c2 0 3 0 5 0l2 0c1 0 2 0 5-1l1 0c2 0 4 0 6 0 2 0 3 0 5 0 1 0 3 0 4 0 2 0 5 0 7 0l2 0c2 0 5 0 8 1l1 0c3 0 5 0 8 0l1 0c2 0 5 1 7 1l1 0c3 1 6 1 8 2l1 0c3 0 5 1 8 2l1 0c2 0 4 1 6 2l1 0c2 0 3 1 5 2l1 1c1 0 2 0 2 0l2 1c0 1 2 1 3 1 1 1 3 3 4 3 2 1 3 2 4 2l1 1c0 1 2 2 3 2 0 1 1 2 2 2l0 1c1 1 2 2 2 2 1 1 1 2 1 2l0 1c0 1 1 2 1 2 0 1 1 2 1 3l0 2 0-56z m0 79c0-2 0-2-1-3 0-1 0-2 0-2-1-1-1-2-2-2-1-1-1-2-1-3-1 0-2-1-2-2-1 0-2-1-3-2l-1 0c-1-1-2-1-4-2-1-1-2-2-4-3 0 0-2 0-3-1l-1-1c-1-1-1-1-2-1l-2 0c-2 0-3-1-5-2l-1 0c-2 0-4-1-6-2l-1-3c-2-1-5-2-8-3l-1 0c-2 0-5-1-7-1l-2 0c-2-1-4-1-7-1l-1 0c-3 0-5 0-8 0l-1 0c-3 0-6-1-8-1l-2 0c-2 0-5 0-7 0l-1 0c-1 0-3 0-3 0-2 0-3 0-4 0l-1 0c-2 0-4 0-6 0l-2 0c-2 0-3 0-4 1l-2 0c-3 0-4 0-6 0l-1 0c-1 0-3 1-5 1l-1 0c-2 0-4 1-6 1-2 0-4 0-6 1l-1 0c-2 1-4 1-6 2l0 0c-3 0-5 1-7 2l-1 0c0 0-1 0-2 0l-2 1c-1 0-1 1-2 1l-1 1 0 0-2 0-2 2-3 1-1 1-7 3-2 2-3 1-2 3-1 1-2 2-2 2 0 1 0 1-1 2 0 0-1 1 0 3c0 1 0 1 0 2l-1 48c0 0 0 0 0 1 0 0 0 0 0 1l0 6c0-1 0-1 0-2l0-1c5 19 45 34 95 34 50-1 91-17 95-37 0 0 0 1 0 2l0 1 1-55z"/>
|
29 |
-
<glyph glyph-name="layouts" unicode="x" d="M384 427l0 85-85 0 0-85-86 0 0 85-85 0 0-85-85 0 0-427 426 0 0 427z m-208-370l-79 0 0 193 79 0z m236 0l-216 0 0 193 216 0z m0 214l-315 0 0 83 315 0z"/>
|
30 |
-
<glyph glyph-name="module-manager" unicode="y" d="M384 427l0 85-85 0 0-85-86 0 0 85-85 0 0-85-85 0 0-427 426 0 0 427z m-142-381l-130 76 0 138 130-78c0 0 0-136 0-136z m156 76l-130-76 0 132 130 78z m0 165l-140-84-144 85 141 82z"/>
|
31 |
-
<glyph glyph-name="toolset" unicode="z" d="M410 410l0 102-103 0 0-102-102 0 0 102-103 0 0-102-68 0 0-410 444 0 0 410z m-315-232c0-4-1-7-4-9-3-2-6-3-11-3l-3 0-3-14-6 0 8 36 8 0c3 0 6-1 8-3 2-1 3-4 3-7z m-17-7l2 0c3 0 5 0 7 1 2 2 2 3 2 6 0 2 0 3-1 4 0 1-2 1-4 1l-3 0z m23-19l-5 0 8 38 5 0z m19 27l-3-15c0-2 0-4 0-4 0-2 1-4 2-4 2 0 3 1 4 2 1 1 2 2 3 4 1 1 1 3 2 6l2 11 6 0-6-27-4 0 0 6c-1-2-3-4-4-4-1-1-3-2-4-2-3 0-4 1-5 2-1 1-2 3-2 5 0 1 0 3 1 3 0 1 0 2 0 3l3 14z m44 0l-1-3-4-1c0-1 0-2 0-3 0-3-1-6-3-8-1-1-4-2-8-2 0 0-1 0-2 0-2-1-3-2-3-3 0 0 0-1 1-1 0 0 1 0 2 0l3-1c3-1 5-1 6-2 1-1 2-3 2-5 0-3-1-6-3-7-3-2-6-3-11-3-3 0-5 1-7 2-2 1-3 2-3 5 0 1 1 3 2 4 1 1 3 3 5 3-1 1-2 2-2 3 0 1 1 2 1 3 1 0 2 2 4 2-2 1-4 4-4 6 0 4 2 6 3 8 2 1 5 3 8 3 1 0 3 0 4-1l10 0z m-20-26c-2-1-3-1-4-2-1 0-2-1-2-3 0-1 1-2 1-2 2-1 3-2 4-2 3 0 5 1 7 2 1 1 2 2 2 4 0 0-1 1-1 1-1 1-3 1-4 1z m7 23c-1 0-2-1-3-1-1-1-1-2-2-3 0-1 0-2 0-3 0-1 0-2 1-3 0 0 1-1 2-1 1 0 2 1 3 1 0 1 1 2 2 3 0 1 0 2 0 3 0 3-1 4-3 4z m17-24l-5 0 5 27 6 0z m2 34c0 1 0 2 1 3 0 0 1 1 3 1 1 0 1 0 2-1 0 0 0-1 0-1 0-1 0-3-1-3 0-1-1-1-2-1-1 0-2 0-2 0-1 0-1 1-1 2z m22-34l3 17c1 2 1 2 1 3 0 3-1 4-3 4-1 0-2-1-4-1-1-1-2-3-2-4-2-2-2-4-3-6l-2-11-6 0 6 26 5 0-1-5c1 2 3 4 4 4 1 1 3 1 5 1 2 0 4 0 5-1 1-2 1-3 1-5 0-2 0-3 0-5l-4-16z m30 9c0-3-1-5-2-6-2-2-5-3-8-3-3 0-6 1-8 2l0 5c2-1 5-2 7-2 2 0 3 1 4 1 1 1 2 2 2 3 0 1 0 2-1 2 0 1-2 1-3 3-3 1-4 2-5 3 0 1-1 2-1 4 0 2 1 4 3 6 2 1 4 2 7 2 3 0 5-1 8-2l-1-4c-3 1-5 1-7 1-1 0-2 0-3 0 0-1-1-1-1-2 0-1 0-2 1-2 0-1 2-1 3-2 2-2 3-2 4-3 0 0 1-1 1-2 0-2 0-3 0-4z m14-20c-2 0-3 0-4 0l0 5c1-1 2-1 3-1 2 0 3 2 5 5l5 25-5 0 1 2 4 2 1 2c0 4 1 6 3 7 2 1 4 3 6 3 2 0 4-1 6-2l-2-4c-1 1-2 1-4 1-1 0-2-1-2-1-1-1-2-2-2-4l-1-2 6 0-1-4-6 0-5-26c-1-3-2-5-3-7-1 0-3-1-5-1z m44 29c0-4-1-7-2-10-1-2-3-4-5-6-2-2-4-2-7-2-3 0-5 1-7 3-2 1-3 4-3 7 0 4 1 6 2 9 1 3 3 5 5 6 2 2 4 3 7 3 4 0 6-1 8-3 1-2 2-5 2-7z m-6 0c0 1 0 2-1 4-1 1-2 1-3 1-2 0-3 0-4-1-1-2-3-3-3-5-1-2-1-4-1-6 0-2 0-4 1-4 0-1 2-2 3-2 2 0 3 1 4 2 1 1 2 3 3 4 1 2 1 4 1 7z m27 10c1 0 2 0 3-1l-1-5c-1 0-2 1-3 1-2 0-4-1-5-3-2-2-3-4-4-8l-2-12-6 0 6 27 5 0-1-5c1 2 3 3 4 4 1 1 3 2 4 2z m-203-90l-6 0-1 21 0 7c-1-3-2-5-3-7l-9-21-6 0-1 36 5 0 1-21c0-2 0-5-1-8 2 3 3 6 4 8l9 21 6 0 0-21 0-8c1 1 1 3 2 4 0 2 1 3 2 4l8 20 6 0z m37 18c0-4 0-7-1-10-1-2-3-4-5-6-3-2-5-2-7-2-3 0-6 1-8 3-1 1-2 4-2 7 0 4 0 6 1 9 1 3 3 5 5 6 3 2 5 3 8 3 3 0 5-1 7-3 2-2 2-5 2-7z m-5 0c0 1-1 2-1 4-1 1-2 1-4 1-2 0-3 0-4-1-1-2-2-3-3-5 0-2-1-4-1-6 0-2 1-4 1-4 1-1 2-2 4-2 1 0 3 1 4 2 1 1 2 3 3 4 0 2 1 4 1 7z m26 10c2 0 2 0 3-1l-1-5c-1 0-2 1-2 1-2 0-4-1-6-3-2-2-3-4-3-8l-3-12-6 0 6 27 4 0 0-5c1 2 3 3 4 4 2 1 3 2 4 2z m16 0c3 0 5-2 6-5 0 2 1 5 1 6l2 9 6 0-8-38-5 0 1 4c-1-1-3-2-4-3-1-1-3-1-4-1-3 0-4 0-6 2-1 2-2 4-2 7 0 3 1 6 2 9 1 3 3 5 5 7 1 2 4 3 6 3z m-3-23c1 0 3 1 4 2 1 1 2 3 3 5 0 3 1 5 1 7 0 1-1 3-1 3-1 1-2 1-4 1-1 0-2 0-4-1-1-2-2-3-2-6-1-2-2-4-2-6 1-3 2-5 5-5z m45 21c0-4-1-7-4-9-3-2-6-3-11-3l-3 0-3-14-6 0 8 36 8 0c3 0 6-1 8-3 2-1 3-4 3-7z m-17-7l2 0c3 0 5 0 7 1 2 2 2 3 2 6 0 2 0 3-1 4 0 1-2 1-4 1l-3 0z m36 9c1 0 1 0 3-1l-2-5c-1 0-1 1-2 1-2 0-4-1-6-3-1-2-2-4-3-8l-3-12-6 0 6 27 5 0-1-5c1 2 3 3 4 4 2 1 3 2 5 2z m12-28c-3 0-5 2-7 3-2 2-3 5-3 8 0 3 1 6 2 9 1 3 3 5 5 6 2 2 4 2 7 2 3 0 5 0 6-1 2-2 3-3 3-5 0-3-1-6-4-7-3-2-7-3-12-3l-1 0 0-1c0-1 1-3 1-4 1-1 3-1 4-1 1 0 3 0 4 0 1 1 2 1 4 2l0-5c-2 0-3-1-5-1 0-2-2-2-4-2z m4 24c-2 0-3-1-4-2-2-2-3-4-3-6l0 0c3 0 5 0 7 1 2 1 3 2 3 3 0 1 0 2-1 2 0 1-1 2-2 2z m28-15c0-3-1-5-3-6-2-2-4-3-8-3-3 0-5 1-8 2l0 5c3-2 5-3 8-3 1 0 3 1 4 2 1 0 1 1 1 2 0 1 0 2 0 3-1 0-2 1-4 2-2 1-3 2-4 3-1 2-1 3-1 4 0 3 1 5 3 6 1 1 4 2 6 2 4 0 6 0 9-2l-2-4c-2 1-4 2-6 2-1 0-2 0-3-1 0 0-1-1-1-2 0-1 0-1 1-2 0 0 1-1 3-2 2-1 3-2 3-2 1-1 1-1 2-3 0-1 0-2 0-3z m22 0c0-3-1-5-3-6-1-2-4-3-8-3-2 0-5 1-8 2l0 5c3-2 6-3 8-3 2 0 3 1 4 2 1 0 2 1 2 2 0 1-1 2-1 3-1 0-2 1-3 2-3 1-4 2-5 3-1 2-1 3-1 4 0 3 1 5 3 6 1 1 4 2 7 2 3 0 5 0 8-2l-2-4c-2 1-4 2-6 2-1 0-2 0-3-1 0 0-1-1-1-2 0-1 0-1 1-2 0 0 1-1 3-2 2-1 3-2 4-2 0-1 1-1 1-3 0-1 0-2 0-3z m-201-48c0-5 0-8-2-12-2-3-4-5-7-7-3-2-7-3-10-3l-10 0 7 35 9 0c5 0 8-1 11-3 1-2 2-6 2-10z m-19-17c2 0 5 0 7 2 2 1 4 3 5 6 1 2 2 5 2 8 0 3-1 5-3 7-1 2-3 2-6 2l-3 0-6-25z m33-6c-4 0-6 2-8 3-2 2-3 5-3 8 0 3 1 6 2 9 1 3 3 5 5 6 2 2 5 2 7 2 3 0 5 0 7-1 1-2 2-3 2-6 0-2-1-5-4-6-3-2-6-3-11-3l-1 0 0-1c0-1 0-3 1-4 1-1 2-1 4-1 1 0 2 0 3 0 1 1 2 1 4 2l0-5c-2 0-3-1-5-1 0-2-2-2-3-2z m3 24c-1 0-2-1-4-3-1-1-2-3-3-5l1 0c3 0 5 0 6 1 2 1 3 2 3 3 0 1 0 2 0 2-1 1-1 2-3 2z m15-23l-3 27 6 0 1-14c0-3 0-6 0-8 1 1 1 2 2 4 1 2 1 2 2 4l7 14 6 0-14-27c0 0-7 0-7 0z m31-1c-3 0-6 2-7 3-2 2-3 5-3 8 0 3 0 6 1 9 2 3 3 5 6 6 2 2 4 2 7 2 3 0 5 0 6-1 2-2 3-3 3-6 0-2-2-5-4-6-3-2-7-3-12-3l-1 0 0-1c0-1 1-3 1-4 1-1 2-1 4-1 1 0 2 0 4 0 1 1 2 1 4 2l0-5c-2 0-3-1-5-1-1-2-3-2-4-2z m3 24c-1 0-2-1-4-3-1-1-2-3-3-5l1 0c2 0 5 0 6 1 2 1 3 2 3 3 0 1 0 2 0 2-1 1-1 2-3 2z m17-23l-6 0 8 38 6 0z m32 17c0-4-1-7-2-10-1-2-3-4-5-6-2-2-5-2-7-2-3 0-6 1-7 3-2 1-3 4-3 7 0 4 0 6 2 9 1 3 2 5 5 6 2 2 4 3 7 3 4 0 6-1 7-3 2-2 3-4 3-7z m-6 0c0 1 0 2-1 3-1 2-2 2-3 2-2 0-3 0-4-2-2-1-3-2-3-4-1-2-1-4-1-6 0-2 0-4 1-4 0-1 1-2 3-2 2 0 3 1 4 2 1 1 2 3 3 4 1 3 1 4 1 7z m22-18c-3 0-5 2-7 4 0-1 0-2 0-4l-2-12-6 0 8 39 4 0 0-4c2 3 5 5 8 5 3 0 4-1 6-3 1-1 2-4 2-6 0-4-1-7-2-9-1-3-3-6-4-7-2-2-5-3-7-3z m3 23c-1 0-3 0-4-2-1-1-2-2-3-5-1-2-1-4-1-6 0-2 0-3 1-3 0-1 1-1 3-1 2 0 3 0 4 1 1 1 2 3 3 5 1 3 1 5 1 7 0 3-2 4-4 4z m31 5c3 0 6-1 6-5 1 1 3 3 4 4 2 1 3 1 5 1 2 0 4 0 5-1 1-2 1-3 1-6 0-1 0-2 0-4l-4-16-5 0 3 17c1 1 1 2 1 3 0 2-1 3-3 3-2 0-4-1-5-3-2-2-3-5-4-8l-2-11-6 0 4 16c0 1 0 2 0 3 0 2-1 3-2 3-2 0-4-1-6-3-1-2-2-4-3-7l-2-12-6 0 6 27 4 0 0-5c3 2 5 4 9 4z m36-28c-3 0-5 2-7 3-2 2-3 5-3 8 0 3 1 6 2 9 1 3 3 5 5 6 2 2 4 2 7 2 3 0 5 0 6-1 2-2 3-3 3-6 0-2-1-5-4-6-3-2-6-3-12-3l-1 0 0-1c0-1 1-3 1-4 2-1 3-1 4-1 2 0 3 0 4 0 1 1 2 1 4 2l0-5c-2 0-3-1-5-1-1-2-2-2-4-2z m4 24c-2 0-3-1-5-3-1-1-2-3-3-5l1 0c3 0 5 0 7 1 1 1 2 2 2 3 0 1 0 2-1 2 1 1 0 2-1 2z m26-23l4 17c0 1 0 2 0 3 0 2-1 3-2 3-2 0-3 0-4-1-1 0-2-2-3-4-1-1-1-3-2-5l-2-12-6 0 6 27 4 0 0-5c1 1 3 3 4 4 1 1 3 1 4 1 3 0 4-1 5-2 1-1 2-3 2-5 0-1 0-3-1-4l-3-16z m23 4c1 0 2 0 4 1l0-5c-1 0-2-1-3-1-1 0-1 0-3 0-4 0-6 2-6 6 0 1 0 1 0 3l3 14-4 0 1 2 4 3 3 5 3 0-1-5 7 0-1-5-7 0-3-13c0-2 0-2 0-3 0 0 0-1 0-1 1-1 2-1 3-1z m-256 218l-22 0 13 63-18 0 4 18 57 0-4-18-18 0z m52-1c-7 0-13 3-17 7-4 4-6 10-6 17 0 8 1 15 4 21 3 7 7 11 13 14 5 4 11 6 18 6 7 0 14-3 17-7 4-4 7-10 7-17 0-8-2-15-5-21-3-7-7-11-12-15-5-3-12-5-19-5z m9 49c-3 0-6-3-8-8-2-5-3-11-3-17 0-5 1-8 4-8 3 0 6 3 8 8 2 5 4 10 4 17 0 3-1 4-2 6-1 1-2 2-3 2z m56-49c-8 0-14 3-18 7-4 4-6 10-6 17 0 8 2 15 4 21 3 7 7 11 13 14 5 4 11 6 18 6 8 0 14-3 18-7 4-4 6-10 6-17 0-8-2-15-5-21-2-7-6-11-12-15-5-3-11-5-18-5z m8 49c-3 0-5-3-8-8-2-5-3-11-3-17 0-5 2-8 4-8 3 0 6 3 8 8 3 5 4 10 4 17 0 3-1 4-1 6-1 1-2 2-4 2z m50-48l-21 0 19 86 21 0z m60 22c0-7-2-13-7-16-5-4-12-6-21-6-8 0-15 1-19 3l0 17c3-1 6-2 9-4 3 0 6-1 9-1 2 0 4 1 5 1 1 1 2 2 2 3 0 1-1 2-1 4-1 1-4 2-8 4-4 2-6 5-8 8-2 2-3 6-3 10 0 6 2 11 7 15 4 3 11 5 19 5 4 0 8-1 11-1 3-2 7-3 10-5l-7-14c-2 2-5 3-8 4-2 2-4 2-6 2-3 0-4-2-4-4 0-2 0-3 1-3 1-1 3-2 6-3 9-5 13-12 13-19z m33-23c-8 0-14 3-18 7-5 4-6 10-6 18 0 8 1 15 4 21 3 6 8 11 13 14 5 3 11 5 18 5 7 0 12-2 16-5 4-3 6-7 6-12 0-8-3-14-8-18-6-4-15-5-25-5l-4 0 0-1c0-5 3-8 9-8 3 0 6 0 9 1 3 1 5 2 9 4l0-15c-4-2-8-3-11-5-3 0-7-1-12-1z m9 50c-3 0-5-1-7-4-1-2-2-5-3-8l2 0c4 0 6 0 9 2 2 2 3 4 3 6 0 2 0 3-1 3-1 1-2 1-3 1z m54-33c3 0 6 1 10 3l0-16c-5-2-11-3-18-3-5 0-10 1-13 3-3 3-4 7-4 12 0 3 1 6 1 10l5 22-9 0 3 10 12 5 7 13 14 0-3-13 16 0-3-15-16 0-5-22c0-2-1-4-1-5 1-2 2-4 4-4z"/>
|
32 |
-
<glyph glyph-name="types" unicode="A" d="M384 427l0 85-85 0 0-85-86 0 0 85-85 0 0-85-85 0 0-427 426 0 0 427z m-292-141c0 4 3 8 5 10 1 1 6 3 10 3l9 0c6 0 11-1 12 0 2 2 4 5 5 10l1 6c2 4 3 8 5 9 3 2 7 3 12 3l52 0c6 0 9-2 11-3 1-1 3-4 4-9l2-7c1-6 3-8 5-9 2 0 8 0 16 0l97 0c8 0 10-6 10-13l0-16-162 0c-10 0-17 1-20 0-2-2-7-6-12-15l-62-117z m335-48l-63-124-252 0 64 124c2 4 5 7 7 9 2 1 5 2 11 2l227 0c6 0 9-2 9-3 0-1-1-4-3-8z"/>
|
33 |
-
<glyph glyph-name="views" unicode="B" d="M384 427l0 85-85 0 0-85-86 0 0 85-85 0 0-85-85 0 0-427 426 0 0 427z m-279-214c0 0 137 187 307 0-1 0-138-192-307 0z m152 56c-32 0-57-26-57-58 0-32 25-57 57-57 32 0 58 25 58 57 1 32-26 58-58 58z m0-95c-21 0-38 17-38 38 0 21 17 38 38 38 22 0 39-17 39-38 0-21-17-38-39-38z"/>
|
34 |
-
<glyph glyph-name="edit" unicode="h" d="M273 140l-198 200c-14 13-14 35 0 49l55 55c13 13 36 13 47 0l198-202c14-13 14-35 0-47l-54-55c-12-12-34-12-48 0z m138 41l-80-80 116-41z"/>
|
35 |
-
<glyph glyph-name="duplicate" unicode="m" d="M90 49c-5 0-27 2-42 16-12 10-17 25-17 44l0 290c0 33 27 60 59 60l64 0 0-26-64 0c-18 0-34-15-34-34l0-290c0-12 4-20 9-27 10-10 25-9 25-9l55 0 0-25-55 1c2 0 0 0 0 0z m388 304l-108 108-1-2-142 0c-32 0-60-27-60-60l0-290c0-48 38-61 60-61l191 0c33 0 60 27 60 60z m-34-1l-21 0c-29 0-53 23-53 52l0 21z m8-244c0-19-15-35-34-35l-191 0 0-12 0 12c-10 0-34 4-34 36l0 290c0 19 15 34 34 34l119 0 0-30c0-43 35-77 77-77l31 0 0-218z"/>
|
36 |
-
<glyph glyph-name="basket" unicode="r" d="M184 413l-75-99 50 0 58 77c-16 2-28 10-33 22z m41-10c2 0 2 0 4 0 13 3 22 15 22 27 0 0 0 0 0 2 0 1 0 3 0 5-4 14-14 22-27 22-2 0-4 0-7 0-14-3-24-17-21-31 0 0 0-1 0-1 4-14 14-23 28-23-2-1 0-1 1-1z m178-89l-75 99c-5-12-17-22-31-24l58-77 48 0z m-120 89c2 0 2 0 4 0 1 0 1 0 3 0 12 0 24 8 27 22 0 0 0 2 0 2 2 13-6 27-20 30-2 0-5 0-7 0-12 0-24-8-27-22 0-2 0-3 0-5 0 0 0 0 0-2 0-10 8-22 20-25z m128-101l-351 0 51-249 288 0 52 249z"/>
|
37 |
-
<glyph glyph-name="discoverwp" unicode="C" d="M319 333c-7 8-15 17-25 22-11 5-23 9-35 9-8 0-15 0-22 0-5 0-12 0-17 0 0-2 0-6 0-12 0-7 0-14-2-21l0-24-1-19-4-70-1-20-2-24c0-7 0-14 0-20 0-7 0-11 0-12 3 0 8-2 14-2 5 0 12-2 18-2 28-1 52 7 69 26 17 19 27 49 29 89 0 15 0 30-4 44-3 15-10 27-17 36z m-61 150c-125 0-226-102-226-227 0-125 101-225 226-225 124 0 225 100 225 225 0 125-101 227-225 227z m140-230c-2-23-5-41-12-58-7-18-17-31-29-43-12-12-26-21-43-26-15-5-32-8-49-7-19 2-35 2-48 4-14 2-24 2-34 2-7 0-12 0-17 1-6 0-11 0-14 0 2 16 3 33 5 50 2 17 2 36 3 58l2 53c0 18 2 37 2 54 0 4 0 5 0 9-7-2-12-4-17-5 0 0-4-4-5-5l-11-12c-13-16-15-23-22-29 0 0 9 58 16 105 0 4 1 6 1 7 5-8 12-24 17-34 28 5 55 9 84 9 9 0 19 0 31-2 20-2 41-3 58-9 17-5 32-11 44-22 12-10 21-24 27-41 9-15 12-36 11-59z"/>
|
38 |
-
<glyph glyph-name="wpml" unicode="D" d="M305 227c4-39 36-68 74-68 49 0 70 46 77 82 29 153-89 269-227 252-77-8-186-92-171-227 14-119 150-213 295-150 63 27 91-89 19-92-14 8-12 31-17 46-2 5-5 10-9 14-3 3-6 5-11 6-11 0-21-10-21-25 0-10 3-21 9-26 1-1 3-3 5-5 15-17 49-22 68-15 46 15 41 97-15 106-36 5-52-14-74-19-145-33-230 102-213 208 10 70 72 128 135 140 70 14 150-10 155-63 9-72-84-91-79-164z"/>
|
39 |
-
<glyph glyph-name="otgs" unicode="E" d="M123 265c0-29 5-53 15-72 10-21 26-34 46-45 21-10 43-15 65-15 36 0 67 12 91 38 24 24 35 56 35 92 0 37-11 68-35 92-17 17-40 29-64 34l0 89-59 0 0-91c-12-3-24-6-34-13-21-10-35-26-46-46-9-21-14-41-14-63z m85 52c4 4 7 7 12 11l0-103 60 0 0 104c5-3 10-6 15-12 12-13 17-32 17-56 0-25-5-44-17-56-12-14-25-19-42-19-17 0-31 7-43 19-12 13-17 32-17 56-4 24 3 43 15 56z m183 123l-39-49c41-29 66-77 66-132 0-90-73-162-162-162-89 0-162 74-162 162 0 52 22 96 60 125l-40 51c-51-41-83-104-83-174 0-126 100-227 225-227 125 0 225 101 225 225 0 76-36 140-90 181z"/>
|
40 |
-
<glyph glyph-name="wrench" unicode="F" d="M63 365l50-49c20-21 56-19 78 3 22 22 24 58 4 79l-50 49c10 4 21 4 31 4 65 0 118-53 118-118 0-19-4-36-12-50l158-157c14-13 14-37-1-53-16-15-40-17-53-1l-159 157c-15-7-32-12-50-12-64 0-117 53-117 118 0 10 1 20 3 30z m330-264c0-11 8-21 20-21 10 0 20 9 20 21 0 10-8 20-20 20-12 0-20-10-20-20z"/>
|
41 |
-
<glyph glyph-name="link" unicode="G" d="M299 398l-60-58c-12-12-12-29 0-41l10-11 63 64 38-38-63-63 10-10c12-12 29-12 41 0l60 59c12 12 12 29 0 41l-60 60c-10 9-29 9-39-3z m-69-193c-6-7-18-7-27 0-7 7-7 19 0 27l80 80c7 7 19 7 28 0 6-7 6-18 0-27z m-17-91l60 60c12 12 12 29 0 41l-10 10-63-63-38 38 63 63-12 10c-12 12-29 12-41 0l-59-60c-12-12-12-29 0-41l59-59c12-11 31-11 41 1z"/>
|
42 |
-
<glyph glyph-name="envelope-o" unicode="H" d="M413 365l-328 0 0-218 342 0 0 218z m-14-13l-131-132c-7-7-17-7-22 0l-133 132z m-300-6l89-88-89-89z m10-186l87 87 38-37c5-5 13-9 20-9 7 0 16 4 21 9l37 37 87-87z m304 9l-89 89 89 88z"/>
|
43 |
-
<glyph glyph-name="user" unicode="I" d="M386 121l-258-2c0 0-2 14-2 28 0 13 14 17 14 17 17 8 70 29 73 31l0 13 7 2c0 0 2 22 2 26 0 0-9 18-12 29 0 0-7 0-9 6-1 9 0 14-1 19-2 5 3 12 7 10 0 0-9 41 0 53 5 12 8 33 49 40 0 0 24-4 24-7 0 0 20-14 27-34 4-14 2-41 0-48 0 0 7 1 5-7-1-12-1-36-10-31 0 0 0-25-8-30 0 0-2-21 1-21l5 0c0 0 2-17 7-20 0 0 67-23 75-33 7-12 4-41 4-41z"/>
|
44 |
-
<glyph glyph-name="wpml-cms-nav" unicode="J" d="M232 104l-152 152 152 152m48-304l152 152-152 152"/>
|
45 |
-
<glyph glyph-name="wpml-media" unicode="K" d="M335 425l46 0 0-340-46 0z m-103-67l46 0 0-271-46 0z m-101-68l46 0 0-203-46 0z"/>
|
46 |
-
<glyph glyph-name="wpml-string-translation" unicode="L" d="M294 131c-18 0-35 4-52 11-41 17-80 37-117 58-19 10-40 20-58 30-9 4-11 14-7 23 3 8 13 12 22 6 19-10 37-20 58-30 37-21 77-41 116-57 31-13 63-10 89 7 29 19 44 50 44 87 0 46-37 84-84 84-35 0-63-29-63-63 0-26 23-48 48-48 19 0 34 15 34 34 0 14-12 26-25 26-9 0-16 6-16 15 0 9 7 15 16 15 30 0 56-25 56-56 0-37-31-66-67-66-44 0-80 35-80 80 0 53 43 95 96 95 63 0 116-51 116-116 0-46-22-89-58-112-21-16-45-23-68-23z"/>
|
47 |
-
<glyph glyph-name="wpml-translation-management" unicode="M" d="M381 292c-12 0-24-7-29-19l-135 0c-4 15-12 27-24 36l51 22c0 0 0-2 0-2 3-17 21-29 38-25 17 3 29 20 25 37-3 17-20 29-37 26-11-2-17-9-23-15l-76-33c-4 2-9 2-14 2-34 0-60-27-60-60 0-32 28-60 60-60 9 0 17 2 24 6l118-45c5-7 12-14 20-15 17-4 34 8 38 25 3 17-9 35-26 38-17 3-34-9-37-26 0-1 0-1 0-3l-96 36c10 10 17 24 19 41l129 0c2-16 16-29 33-29 17 0 32 13 32 32 0 19-12 31-30 31z"/>
|
48 |
-
<glyph glyph-name="picture" unicode="N" d="M427 116l-342 0 0 280 342 0z m-311 31l282 0 0 218-282 0z m150 25c33 0 79 0 96 0l0 38-65 92-63-89-41 40-53-50 0-29c34-2 104-2 126-2"/>
|
49 |
-
<glyph glyph-name="toolset-training" unicode="O" d="M384 427l0 85-85 0 0-85-86 0 0 85-85 0 0-85-85 0 0-427 426 0 0 427z m-33-284c0-19-17-29-38-39 0 0-29-14-58-14-28 0-57 14-57 14-24 11-39 19-39 39l0 51 66-23c9-3 20-5 30-5 11 0 22 2 30 5l66 23z m33-3l6 21c0 3 2 5 5 5 3 0 5-2 5-5l6-21z m22 103l0-60c0-6-5-10-11-10-5 0-10 4-10 10l0 52-106-36c-13-6-35-6-48 0l-153 55 28 11 125 53c13 6 35 6 48 0l125-53 30-12z"/>
|
50 |
-
<glyph glyph-name="access-title" unicode="P" d="M155 101l-19 0-5-12-16 0 30 60 20 0 5-60-15 0z m-13 12l12 0 0 17 0 4c0 2 0 4 0 6-1-3-2-5-3-7z m55-25c-6 0-10 2-13 6-2 3-4 7-4 14 0 5 1 10 3 14 2 5 5 8 9 11 3 2 8 3 13 3 5 0 10-1 15-3l-5-12c-4 2-7 3-10 3-2 0-3-1-4-2-2-1-3-3-4-6-1-3-2-5-2-8 0-2 1-4 2-5 1-1 2-2 4-2 1 0 3 0 5 1 2 0 4 1 6 3l0-13c-2-1-4-2-7-3-2 0-5-1-8-1z m42 0c-6 0-10 2-13 6-3 3-4 7-4 14 0 5 0 10 3 14 2 5 5 8 9 11 3 2 8 3 13 3 5 0 10-1 15-3l-6-12c-3 2-6 3-9 3-2 0-3-1-4-2-2-1-3-3-4-6-1-3-2-5-2-8 0-2 1-4 2-5 1-1 2-2 4-2 1 0 3 0 5 1 2 0 4 1 6 3l0-13c-2-1-5-2-7-3-2 0-5-1-8-1z m43 0c-6 0-10 2-13 5-4 3-5 8-5 14 0 5 1 11 3 15 3 5 6 8 9 11 5 2 9 3 14 3 6 0 10-1 13-3 2-3 4-6 4-10 0-5-2-9-6-12-5-3-11-4-19-4l-2 0 0-1c0-4 2-6 6-6 3 0 4 1 7 1 2 0 4 2 7 3l0-11c-4-1-6-3-9-3-2-1-5-2-9-2z m7 38c-2 0-4-1-5-3-1-2-2-4-3-7l2 0c2 0 5 1 7 2 1 1 2 3 2 5 0 1-1 1-1 2-1 1-1 1-2 1z m56-21c0-5-1-10-5-12-3-3-9-5-15-5-6 0-11 1-15 3l0 13c3-2 5-3 7-3 3 0 5-1 7-1 2 0 3 1 4 1 1 0 2 1 2 2 0 1-1 2-1 3-1 1-3 2-6 3-2 1-5 3-6 5-1 3-2 5-2 8 0 5 2 8 5 11 3 2 8 3 14 3 3 0 6 0 9-1 2 0 5-1 7-3l-5-10c-2 1-4 2-6 3-2 0-3 1-5 1-2 0-3-1-3-3 0-1 0-2 1-2 1 0 3-1 5-2 5-4 8-8 8-14z m42 0c0-5-2-10-5-12-3-3-9-5-15-5-6 0-11 1-15 3l0 13c3-2 5-3 7-3 3 0 5-1 7-1 2 0 3 1 4 1 1 0 1 1 1 2 0 1 0 2 0 3-1 1-3 2-6 3-2 1-5 3-6 5-2 3-2 5-2 8 0 5 2 8 5 11 3 2 8 3 14 3 3 0 6 0 8-1 3 0 6-1 8-3l-5-10c-2 1-4 2-6 3-2 0-4 1-5 1-2 0-3-1-3-3 0-1 0-2 1-2 1 0 3-1 4-2 6-4 9-8 9-14z m-132 286c-13 0-25-11-25-25l0-16 50 0 0 16c0 14-11 25-25 25z m82 65l0 56-56 0 0-56-56 0 0 56-56 0 0-56-55 0 0-279 279 0 0 279z m-20-220c0-7-5-12-12-12l-101 0c-7 0-13 5-13 12l0 101c0 7 6 13 13 13l7 0 0 16c0 25 20 45 44 45 24 0 44-20 44-45l0-16 5 0c7 0 13-6 13-13z"/>
|
51 |
-
<glyph glyph-name="views-title" unicode="Q" d="M178 149l17 0-30-60-18 0-4 60 16 0 1-33 0-2c0-3 0-7-1-10l1 0c0 2 1 4 2 7 0 2 1 4 2 6z m27-60l-16 0 10 46 16 0z m-4 57c0 2 1 5 2 6 2 2 4 3 7 3 3 0 5-1 6-2 1-1 2-2 2-4 0-3-1-5-2-7-2-1-4-2-7-2-5 0-8 1-8 6z m36-58c-5 0-10 2-13 5-3 3-5 8-5 14 0 5 1 11 3 15 3 5 6 8 10 11 4 2 8 3 14 3 5 0 9-1 12-3 3-3 5-6 5-10 0-5-3-9-7-12-4-3-10-4-19-4l-2 0 0-1c0-4 2-6 7-6 2 0 4 1 6 1 2 0 5 2 7 3l0-11c-3-1-6-3-8-3-3-2-6-2-10-2z m7 38c-2 0-3-1-5-3-1-2-2-4-3-7l2 0c3 0 5 1 7 2 2 1 2 3 2 5 0 1 0 1-1 2 0 1-1 1-2 1z m54-37l1 18c0 2 0 5 1 8 0 4 0 7 1 9l-1 0c-2-6-3-11-5-16l-8-20-17 0-2 47 15 0 0-21c0-5 0-8-1-11l1 0c1 5 2 9 3 12l7 20 18 0-1-20c0-3 0-7-1-12l0 0c0 1 1 2 1 2 0 1 0 3 1 6 1 3 5 11 10 24l16 0-22-47-17 0z m72 16c0-5-2-10-6-12-3-3-8-5-15-5-6 0-11 1-14 3l0 12c2-1 4-2 7-2 2-1 4-1 6-1 2 0 3 0 4 1 1 0 2 1 2 2 0 1-1 2-1 2-1 1-3 2-5 3-3 2-5 4-7 6-1 2-2 5-2 7 0 5 2 9 5 11 4 3 8 4 14 4 4 0 6-1 9-1 2 0 5-2 7-3l-5-11c-2 2-4 3-5 3-2 1-4 1-6 1-1 0-3-1-3-3 0-1 1-1 2-1 0-1 2-2 4-3 6-3 9-7 9-13z m-30 351l0 56-56 0 0-56-56 0 0 56-56 0 0-56-56 0 0-279 280 0 0 279z m-183-140c0 0 90 122 201 0-1 0-90-126-201 0z m100 37c-21 0-38-17-38-38 0-21 17-38 38-38 21 0 38 17 38 38 0 21-17 38-38 38z m0-63c-14 0-25 12-25 26 0 14 11 25 25 25 14 0 25-11 25-25 0-14-11-26-25-26z"/>
|
52 |
-
<glyph glyph-name="cred-title" unicode="R" d="M340 456l0 56-56 0 0-56-56 0 0 56-56 0 0-56-56 0 0-279 280 0 0 279z m-21-215c0-1 0-1-1-2 0 0 0-1 0-1-1-1-1-1-1-2 0 0 0 0-1-1 0 0-1-1-1-1-1-1-1-1-2-2l-1 0c0 0-1-1-2-1-1-1-2-2-3-2 0 0-1 0-2-1l0 0c-1-1-1-1-2-1l0 0c-2 0-3-1-4-1l-1 0c-1-1-2-1-4-2l0 0c-2 0-4-1-5-1l-1 0c-2-1-3-1-5-1l-1 0c-1 0-3 0-5 0l-1 0c-1 0-3-1-4-1l-1 0c-2 0-4 0-6 0l-1 0c-1 0-3 0-4 0l-1 0c-1 0-2 0-2 0-1 0-2 0-2 0l-1 0c-1 0-3 0-4 0l-1 0c-1 0-2 0-3 0l-2 0c-1 0-2 1-3 1l-1 0c-1 0-2 0-3 0l-1 0c-1 0-2 0-4 0-1 0-2 1-3 1l-1 0c-2 1-3 1-4 1l-1 0c-1 1-3 1-4 2l-1 0c0 0-1 0-2 0l0 1c-1 0-1 0-2 0l0 1-1 0-1 0-2 1-1 0-1 1-1 1-2 1-1 0-3 2-4 4-1 1 0 0-1 1 0 1 0 1 0 1c0 1 0 1 0 2l0 36c0 0 0-1 0-1l0-3 0 0 1-1 1-1 1-1 0 0 1-1 1-1 1-1 1 0 1-1 1-1 1 0 1 0 1-1 2-1 1 0 1-1 2-1 1 0c0 0 1-1 1-1l1 0c0 0 1-1 2-1l1 0c1 0 3-1 4-1l0 0c2-1 3-1 4-1l1 0c1-1 2-1 4-1l0 0c2 0 3-1 4-1l1 0c1 0 2 0 3 0l1 0c2 0 2-1 4-1l1 0c1 0 2 0 3 0l1 0c1 0 3 0 4 0 1 0 2 0 3 0 1 0 2 0 3 0 1 0 3 0 4 0l1 0c2 0 4 0 6 0l1 0c1 0 3 1 4 1l1 0c2 0 4 0 5 0l1 0c1 1 3 1 5 1l1 0c1 1 3 1 5 2l0 0c2 0 3 1 4 1l1 0c1 0 2 1 4 1l0 1c0 0 1 0 1 0l1 1c1 0 2 0 2 1 1 0 3 1 3 2 1 0 2 0 3 1l0 0c1 1 2 1 2 2 1 0 1 1 2 1l0 1c0 0 1 1 1 1 0 1 0 1 1 1l0 1c0 0 0 1 0 1 0 1 0 1 1 2l0 1 0-36z m0 52c0-1 0-1-1-2 0 0 0-1 0-1-1 0-1-1-1-1 0-1 0-1-1-2 0 0-1-1-1-1-1-1-1-1-2-2l-1 0c0 0-1-1-2-1-1 0-2-1-3-2 0 0-1 0-2-1l-1 0c0-1-1-1-1-1l-1 0c-1 0-2-1-4-1l0 0c-2-1-3-1-4-2l-1 0c-1 0-3 0-5-1l0 0c-2 0-4-1-5-1l-1 0c-2 0-3 0-5 0l-1 0c-1 0-3-1-5-1l-1 0c-1 0-3 0-5 0l-1 0c-1 0-3 0-5 0l0 0c-1 0-2 0-3 0 0 0-1 0-2 0l0 0c-2 0-3 0-5 0l-1 0c-1 0-2 0-3 0l-1 0c-1 0-2 1-4 1l0 0c-1 0-2 0-4 0l0 0c-2 0-3 1-4 1-2 0-3 0-4 1l-1 0c-1 0-3 0-4 0l-1 0c-1 1-2 1-4 2l0 0c-1 0-1 0-2 0l-1 1c0 0-1 0-1 0l-1 1 0 0-3 1-1 1-2 1-1 0-2 1-1 0-1 1-1 1-2 1 0 1-1 0 0 1-2 1 0 1-1 0 0 1 0 1 0 1 0 2c0 0 0 0 0 1l-1 36c0 0 0-1 0-1l0-2 3-4 1 0 0-1 2-2 1 0 1 0 2-1 1-1 2-1 1 0 1-1 1-1 2-1 1 0c1 0 1 0 2 0l1-1c0 0 0 0 1 0l1-1c2 0 3-1 4-1l1 0c1-1 2-1 4-1l1 0c1-1 2-1 3-1l1 0c1 0 2-1 4-1l0 0c1 0 2 0 4 0l1 0c1 0 2-1 3-1l1 0c1 0 2 0 4 0l0 0c2 0 3 0 5 0 1 0 2 0 2 0 1 0 2 0 3 0 2 0 4 0 5 0l1 0c2 0 4 0 5 0l1 0c2 0 4 1 5 1l1 0c1 0 3 0 5 0l0 0c2 1 4 1 6 1l0 0c2 1 3 1 5 2l1 0c1 0 2 1 4 1l0 0c2 1 3 1 4 2l1 0c0 0 0 0 1 0l1 1c0 0 1 0 2 1 1 0 2 1 3 2 1 0 1 1 2 1l1 1c0 0 1 0 2 1 0 0 1 1 1 1l1 1c0 0 0 1 0 1 1 1 1 1 1 2l0 0c0 1 1 1 1 1 0 1 0 1 0 2l0 1 1-36z m0 52c0-1 0-1-1-2 0 0 0-1 0-1-1-1-1-1-1-2 0 0 0-1-1-1 0-1-1-1-1-2-1 0-1 0-2-1l-1 0c0 0-1-1-2-1-1-1-2-2-3-2 0-1-1-1-2-1l-1-1c0 0-1 0-1 0l-1 0c-1-1-2-1-4-1l0 0c-2-1-3-1-4-2l-1 0c-1 0-3-1-5-1l0 0c-2-1-4-1-5-1l-1 0c-2-1-3-1-5-1l-1 0c-1 0-3 0-5 0l-1 0c-1 0-3-1-5-1l-1 0c-1 0-3 0-5 0l0 0c-1 0-2 0-3 0 0 0-1 0-2 0l0 0c-2 0-3 0-5 0l-1 0c-1 0-2 0-3 1l-1 0c-1 0-2 0-4 0l0 0c-1 0-2 1-4 1l0 0c-2 0-3 0-4 0-2 0-3 1-4 1l-1 0c-1 1-3 1-4 1l-1 0c-1 1-2 1-4 2l0 0c-1 0-1 0-2 0l-1 0c0 0-1 1-1 1l-1 0 0 0-1 1-1 0-1 1-1 0-2 1-1 1-1 0-1 1-1 0-1 1-1 0-1 1-2 2 0 0-1 1 0 0-1 1 0 1-1 0 0 1 0 0 0 1 0 2c0 1 0 1 0 2l-1 31c0 0 0 0 0 1 0 0 0 0 0 0l0 4c0 0 0-1 0-1l0-1c3 13 29 23 62 22 33 0 60-11 62-24 0 1 0 1 0 2l0 1 1-37z m-134-209c-3 0-5-1-8-3-2-2-4-5-5-9-2-3-2-8-2-12 0-4 1-6 2-8 2-2 4-3 7-3 2 0 4 0 7 1 2 0 5 1 8 3l0-13c-5-3-12-4-18-4-7 0-13 2-16 6-4 4-6 10-6 17 0 8 1 14 4 20 3 6 7 11 11 14 5 3 11 4 17 4 7 0 14-1 19-5l-6-13c-2 2-4 3-7 4-3 1-4 1-7 1z m39-25l-5-22-16 0 13 59 16 0c7 0 12-1 16-4 3-3 5-7 5-12 0-4-1-8-3-11-1-3-4-6-8-7l9-21 2-4-17 0-8 22z m2 12l2 0c3 0 5 1 6 2 2 2 2 4 2 6 0 2 0 3-1 4-1 1-2 1-4 1l-2 0z m67-34l-35 0 12 59 36 0-3-13-20 0-1-9 18 0-3-13-18 0-3-11 20 0z m65 37c0-7-1-14-4-20-3-5-7-10-12-13-5-3-11-5-18-5l-19 0 12 60 18 0c7 0 13-2 17-6 4-3 6-8 6-16z m-32-24c3 0 6 1 8 3 3 2 4 5 6 9 1 3 2 7 2 12 0 3-1 6-3 8-1 1-3 2-6 2l-3 0-7-33 3 0z"/>
|
53 |
-
<glyph glyph-name="layouts-title" unicode="S" d="M95 89l13 59 16 0-10-46 20 0-3-13z m83 0l-12 0 0 5 0 0c-2-2-4-4-5-5-2-1-4-1-6-1-5 0-8 1-10 5-3 3-3 7-3 13 0 4 0 9 2 15 2 5 5 8 8 11 3 3 6 4 10 4 2 0 4-1 6-1 2-1 3-3 5-6l0 0 2 6 13 0z m-16 12c1 0 2 1 3 2 2 2 3 4 3 7 0 3 1 5 1 8 0 2-1 3-1 4 0 1-1 1-2 1-2 0-4-2-6-5-2-3-2-7-2-11 0-4 1-6 4-6z m30 34l16 0 2-22 0-6 0 0c1 3 2 6 2 7 1 0 4 8 10 22l17 0-27-52c-3-5-6-9-10-11-3-2-7-3-12-3-2 0-5 0-7 0l0 13c2-1 3-1 5-1 2 0 4 1 6 2 1 1 3 2 4 4l1 2z m64-47c-6 0-10 1-13 5-3 3-5 7-5 13 0 5 1 10 4 15 2 5 5 8 9 11 4 2 8 3 14 3 5 0 10-1 13-4 3-3 5-8 5-13 0-6-1-11-4-16-2-4-5-8-9-10-4-3-9-4-14-4z m7 36c-3 0-5-2-6-5-1-4-2-9-2-13 0-4 1-6 3-6 2 0 4 2 5 6 2 3 3 8 3 13 0 2-1 3-1 4-1 1-2 1-2 1z m42-20c0-1 1-2 1-3 1 0 2 0 3 0 1 0 3 0 4 3 1 2 2 5 3 9l5 22 16 0-10-47-13 0 1 7-1 0c-1-2-3-4-5-6-2-1-5-1-7-1-4 0-7 0-9 3-3 3-3 6-3 10 0 3 0 6 0 9l6 25 15 0-5-25c0-2-1-4-1-6z m56-3c2 0 4 0 7 2l0-12c-4-2-8-3-14-3-4 0-7 1-9 3-2 2-3 4-3 8 0 2 0 5 1 8l3 16-7 0 2 8 9 4 6 10 10 0-2-10 12 0-3-12-11 0-4-15c0-3 0-4 0-5 0-1 1-2 3-2z m51 4c0-5-1-10-5-12-3-3-9-5-15-5-6 0-11 1-15 3l0 13c3-2 5-3 7-3 3 0 5-1 7-1 2 0 3 1 4 1 1 0 2 1 2 2 0 1-1 2-1 3-1 1-3 2-5 3-3 1-6 3-7 5-1 3-2 5-2 8 0 5 2 8 5 11 4 2 8 3 14 3 3 0 6 0 9-1 2 0 5-1 7-3l-5-10c-2 1-4 2-6 3-2 0-3 1-5 1-2 0-3-1-3-3 0-1 0-2 1-2 1 0 3-1 5-2 5-4 8-8 8-14z m-72 351l0 56-56 0 0-56-56 0 0 56-56 0 0-56-56 0 0-279 280 0 0 279z m-137-242l-51 0 0 127 51 0z m155 0l-142 0 0 127 142 0z m0 140l-206 0 0 54 206 0z"/>
|
54 |
-
<glyph glyph-name="types-title" unicode="T" d="M165 89l-16 0 10 46-13 0 2 13 42 0-2-13-13 0z m24 46l16 0 2-22 0-6 0 0c1 3 2 6 2 7 0 0 4 8 10 22l17 0-27-52c-3-5-6-9-10-11-4-2-8-3-12-3-3 0-5 0-7 0l0 12c2-1 3-1 5-1 2 0 4 1 6 2 1 1 3 2 4 5l1 1z m68-47c-3 0-7 2-9 6l0 0c-1-5-1-10-3-15l-2-11-15 0 14 67 12 0 0-5 0 0c3 4 6 6 11 6 4 0 7-1 10-5 2-3 4-7 4-12 0-6-1-11-3-16-2-5-5-9-7-11-3-3-8-4-12-4z m2 35c-2 0-3-1-4-2-1-1-2-4-3-7 0-2-1-5-1-7 0-2 1-4 1-5 1-1 2-1 3-1 1 0 3 1 4 2 1 2 2 4 3 6 0 3 1 5 1 8-1 4-2 6-4 6z m44-35c-5 0-10 1-13 5-3 3-5 8-5 13 0 6 1 11 4 15 2 5 5 8 9 11 4 3 8 4 14 4 5 0 9-1 12-4 3-2 5-5 5-9 0-6-3-10-7-13-4-2-10-4-19-4l-2 0 0 0c0-5 2-6 7-6 2 0 4 0 6 1 2 0 5 1 7 3l0-11c-3-2-6-3-8-4-3-1-6-1-10-1z m7 38c-2 0-3-1-5-3-1-2-2-4-2-7l1 0c3 0 5 1 7 2 2 1 2 3 2 5 0 1 0 1-1 2 0 1-1 1-2 1z m57-21c0-5-2-10-5-12-4-3-9-5-16-5-6 0-10 1-14 3l0 13c2-2 5-3 7-3 2 0 4-1 6-1 2 0 4 1 5 1 0 0 1 1 1 2 0 1-1 2-1 3-1 1-2 2-5 3-3 1-5 3-7 5-1 3-1 5-1 8 0 5 1 8 5 11 3 2 8 3 14 3 3 0 6 0 8-1 2 0 5-1 7-3l-5-10c-2 1-3 2-5 3-2 0-4 1-5 1-2 0-4-1-4-3 0-1 1-2 2-2 1 0 2-1 4-2 6-4 9-8 9-14z m-27 351l0 56-56 0 0-56-56 0 0 56-56 0 0-56-56 0 0-279 280 0 0 279z m-191-92c0 3 1 6 3 6 1 1 4 2 7 2l5 0c4 0 7 0 8 1 2 1 3 3 3 6l1 4c1 3 2 5 4 6 1 1 4 2 8 2l34 0c3 0 5-1 7-2 0-1 1-3 2-6l1-5c1-3 2-5 4-5 1-1 5-1 10-1l64 0c5 0 7-3 7-8l0-10-107 0c-7 0-11 0-13-1-1-1-5-3-8-9l-40-77z m219-31l-41-82-165 0 42 82c2 3 3 4 5 5 1 1 3 2 7 2l148 0c4 0 6-1 6-2 0-1-1-2-2-5z"/>
|
55 |
-
<glyph glyph-name="module-manager-title" unicode="U" d="M127 89l0 43 0 0c-2-11-3-18-4-21l-5-22-14 0 12 60 22 0 0-42 0 0 20 42 21 0-13-60-14 0 4 23c2 6 3 12 5 17l0 3 0 0-20-43z m74-1c-6 0-11 2-13 5-3 3-5 8-5 13 0 6 1 11 3 15 3 5 5 9 9 11 5 3 9 4 14 4 6 0 11-1 13-5 3-3 5-7 5-13 0-5-1-10-3-15-2-5-5-9-9-11-5-2-9-4-14-4z m6 37c-2 0-4-2-5-6-2-4-3-8-3-13 0-4 1-5 3-5 3 0 5 1 6 5 1 4 2 8 2 13 0 2 0 3-1 4 0 1-1 2-2 2z m47 11c2 0 4 0 5-1 2-1 3-2 5-5l0 0 0 1c0 4 1 7 1 9l3 12 15 0-13-64-13 0 1 6-1 0c-1-3-3-4-5-5-2-1-3-1-6-1-4 0-7 1-10 4-2 3-3 8-3 13 0 5 1 10 3 15 2 5 5 9 7 12 3 3 7 4 11 4z m-1-35c2 0 3 1 4 3 1 1 2 4 3 6 0 3 1 5 1 8 0 4-1 6-4 6-1 0-2-1-3-2-1-1-3-4-4-7-1-2-1-5-1-7 1-5 2-7 4-7z m48 4c0-2 0-2 1-3 0-1 1-1 2-1 1 0 3 1 4 3 2 3 2 5 3 9l5 22 16 0-10-46-12 0 0 6 0 0c-2-2-4-4-6-5-1-1-4-2-7-2-4 0-7 1-9 4-2 2-3 5-3 9 0 3 0 7 1 10l5 24 16 0-5-25c-1-2-1-4-1-5z m49-16l-16 0 13 64 16 0z m32-1c-5 0-10 2-13 5-4 3-5 8-5 14 0 5 1 11 3 15 3 5 6 8 10 11 4 2 8 3 14 3 5 0 9-1 12-3 2-3 4-6 4-10 0-5-2-9-6-12-4-3-10-4-19-4l-2 0 0-1c0-4 2-6 6-6 3 0 5 1 7 1 2 0 5 2 7 3l0-11c-3-1-6-3-9-3-2-1-6-2-9-2z m7 38c-2 0-4-1-5-3-1-2-2-4-3-7l2 0c2 0 5 1 7 2 1 1 2 3 2 5 0 1-1 1-1 2 0 1-1 1-2 1z m-290-102l0 43-1 0c-2-11-3-18-4-21l-4-22-15 0 13 60 21 0 0-43 1 0 19 43 22 0-13-60-15 0 5 23c1 6 3 12 4 17l1 3-1 0-19-43z m92 0l-12 0 0 5 0 0c-2-2-4-3-5-4-2-1-4-2-6-2-5 0-8 2-10 5-3 3-3 7-3 13 0 5 0 10 2 15 2 5 5 9 8 11 3 3 6 4 10 4 2 0 4 0 6-1 2-1 3-3 5-5l0 0 3 5 12 0z m-17 12c1 0 3 1 4 3 1 1 2 3 3 6 0 3 1 5 1 8 0 2-1 3-1 4-1 1-2 2-3 2-2 0-3-2-5-5-2-4-3-8-3-12 1-4 2-6 4-6z m60 19c0 2 0 2-1 3 0 1-1 1-2 1-2 0-3-1-4-3-2-2-3-5-4-9l-4-23-16 0 10 47 12 0 0-7 0 0c2 3 4 5 5 6 2 1 5 2 8 2 4 0 7-2 9-4 2-2 3-6 3-10 0-3-1-6-1-9l-5-25-16 0 5 25c1 3 1 5 1 6z m60-31l-12 0 0 5 0 0c-2-2-4-3-6-4-1-1-3-2-6-2-4 0-7 2-9 5-3 3-4 7-4 13 0 5 1 10 3 15 2 5 5 9 8 11 2 3 6 4 10 4 2 0 4 0 6-1 2-1 3-3 5-5l0 0 2 5 13 0z m-17 12c1 0 3 1 4 3 1 1 2 3 2 6 1 3 1 5 1 8 0 2 0 3-1 4 0 1-1 2-2 2-2 0-4-2-5-5-2-4-3-8-3-12 1-4 2-6 4-6z m78 35l-2-9-6-2c0-1 0-2 0-4 0-5-2-9-5-12-4-4-8-5-14-5-2 0-4 0-5 1 0-1-1-1-1-1-1-1-1-1-1-2 0-1 2-2 5-2l5-1c5 0 9-2 11-4 2-2 3-4 3-8 0-6-2-10-7-13-5-3-11-5-20-5-5 0-10 1-14 3-3 3-5 6-5 9 0 3 1 5 3 7 2 2 5 4 9 4-1 1-2 2-2 3-1 1-1 2-1 3 0 2 0 4 2 5 1 2 3 3 6 4-4 3-6 7-6 12 0 5 2 10 6 13 3 2 8 4 14 4 2 0 3 0 5 0 1-1 2-1 3-1l17 0z m-42-53c0-2 2-4 7-4 3 0 6 1 8 2 2 1 2 2 2 3 0 1 0 2-1 2-1 1-2 1-5 1l-4 1c-3-1-4-1-5-2-2-1-2-2-2-3z m12 35c0-3 1-4 3-4 2 0 3 1 4 3 1 2 1 4 1 6 0 3-1 4-2 4-1 0-2-1-3-1-1-1-1-3-2-4 0-2-1-3-1-4z m48-30c-5 0-10 2-13 5-3 3-5 8-5 13 0 6 1 12 3 16 3 4 6 8 10 10 4 3 8 4 14 4 5 0 9-1 12-4 3-2 4-5 4-9 0-5-2-10-6-12-4-3-10-5-19-5l-2 0 0 0c0-4 2-6 6-6 3 0 5 0 7 1 2 0 5 2 7 3l0-11c-3-1-6-3-8-3-3-1-6-2-10-2z m7 38c-2 0-3-1-5-3-1-2-2-4-3-7l2 0c3 0 5 1 7 2 2 1 2 3 2 5 0 1 0 1-1 2 0 1-1 1-2 1z m57 10c1 0 3 0 3 0l-3-16c-1 0-3 1-5 1-3 0-5-1-7-3-1-2-2-5-3-9l-4-20-16 0 9 46 13 0-1-8 1 0c1 4 3 5 5 7 2 1 5 2 8 2z m-97 385l0 56-56 0 0-56-56 0 0 56-56 0 0-56-56 0 0-279 280 0 0 279z m-93-249l-85 49 0 91 85-51z m102 49l-85-48 0 86 85 51z m0 108l-92-54-94 55 93 54z"/>
|
56 |
-
<glyph glyph-name="access" unicode="v" d="M259 327c-21 0-38-17-38-38l0-24 76 0 0 24c0 21-18 38-38 38z m125 100l0 85-85 0 0-85-86 0 0 85-85 0 0-85-85 0 0-427 426 0 0 427z m-30-336c0-11-8-19-19-19l-154 0c-11 0-20 8-20 19l0 154c0 11 9 20 20 20l10 0 0 24c0 37 31 68 68 68 37 0 67-31 67-68l0-24 8 0c11 0 19-9 19-20l0-154z"/>
|
57 |
-
<glyph glyph-name="bullhorn" unicode="V" d="M401 316c-32 73-83 130-109 119-44-18 26-103-189-191-19-8-24-38-16-56 8-18 33-36 52-29 3 2 15 6 15 6 13-18 27-8 32-19l23-53c5-10 15-20 22-17l41 16c7 2 12 9 10 16-1 1-1 2-1 2-3 7-16 9-20 18-3 8-15 34-18 43-5 11 5 21 19 22 98 10 117-50 150-37 26 11 21 86-11 160z m-11-120c-6-3-45 28-69 85-25 58-22 110-16 113 6 2 43-35 68-92 25-58 23-104 17-106z"/>
|
58 |
-
<glyph glyph-name="comment" unicode="W" d="M79 58l0 24c1 35 27 65 63 69 1 0 2 0 3-1 34-24 80-24 114 0 1 1 2 1 4 1 35-4 62-34 62-69l0-24m-196 171c0 41 33 73 73 73 40 0 73-32 73-73 0-40-33-72-73-72-40 0-73 32-73 72z m296 213l-144 0c-10 0-18-8-18-18l0-84c0-10 8-18 18-18l0 0 0-42c0-2 2-4 4-4 1 0 2 0 2 1l41 44 3 1 94 0c10 0 18 8 18 18l0 84c0 10-8 18-18 18z"/>
|
59 |
-
<glyph glyph-name="quote" unicode="X" d="M395 290c0 77-62 139-139 139-77 0-139-62-139-139 0-66 47-122 109-135l0-63c0-5 4-9 9-9 3 0 5 1 7 3l109 102c0 0 0 0-1 0 28 26 45 62 45 102z m-121 4l0 48 47 0 0-41c0-7-1-14-2-20-2-6-5-12-8-17-7-10-15-19-24-26l-13 11c14 11 24 27 26 44l-26 0z m-59-56c0 0 0 0 0 0l-13 11c14 11 24 27 26 44l-26 0 0 49 47 0 0-41c0-7-1-14-3-20-1-6-4-12-7-18-7-9-15-18-24-25z"/>
|
60 |
-
<glyph glyph-name="thumbsup" unicode="Y" d="M321 267c-6 8-58 90-60 97-1 19 0 38 1 57 0 12-37 29-46 7-6-12-25-57-23-69 2-13 6-44 11-67l-108 0c-14 1-26-10-27-24 0 0 0 0 0 0-1-14 5-26 16-33-6-6-9-14-8-22 1-10 7-20 17-26-6-5-9-13-9-21 1-11 8-21 17-27-5-5-7-12-6-20 2-19 19-33 38-31l170 0c9 0 16 4 23 9 5 3 10 7 16 10l83 1c4 0 8 4 8 8l0 124c0 4-2 7-6 7-14 1-94 4-107 20z"/>
|
61 |
-
<glyph glyph-name="star" unicode="Z" d="M262 433l45-108 118-10c5-1 9-5 8-11 0-2-1-4-3-6l-89-77 27-115c1-5-2-9-7-11-3 0-5 0-7 2l-101 60-101-60c-4-3-10-2-12 3-2 2-2 4-2 7l27 114-89 77c-4 4-4 10-1 13 2 2 4 3 6 4l118 10 46 108c1 5 7 7 12 5 2-1 4-3 5-5z"/>
|
62 |
-
</font></defs></svg>
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
vendor/otgs/icons/fonts/otgs-icons.ttf
DELETED
Binary file
|
vendor/otgs/icons/fonts/otgs-icons.woff
DELETED
Binary file
|
vendor/otgs/icons/icons-overview.html
DELETED
@@ -1,456 +0,0 @@
|
|
1 |
-
<!DOCTYPE html>
|
2 |
-
<html lang="en">
|
3 |
-
<head>
|
4 |
-
<meta charset="utf-8">
|
5 |
-
<meta http-equiv="X-UA-Compatible" content="IE=edge,chrome=1">
|
6 |
-
<meta name="viewport" content="width=device-width,initial-scale=1">
|
7 |
-
<title>Font Reference - otgs-icons</title>
|
8 |
-
<link href="http://fonts.googleapis.com/css?family=Dosis:400,500,700" rel="stylesheet" type="text/css">
|
9 |
-
<link rel="stylesheet" href="styles.css">
|
10 |
-
<style type="text/css">html,body,div,span,applet,object,iframe,h1,h2,h3,h4,h5,h6,p,blockquote,pre,a,abbr,acronym,address,big,cite,code,del,dfn,em,img,ins,kbd,q,s,samp,small,strike,strong,sub,sup,tt,var,dl,dt,dd,ol,ul,li,fieldset,form,label,legend,table,caption,tbody,tfoot,thead,tr,th,td{margin:0;padding:0;border:0;outline:0;font-weight:inherit;font-style:inherit;font-family:inherit;font-size:100%;vertical-align:baseline}body{line-height:1;color:#000;background:#fff}ol,ul{list-style:none}table{border-collapse:separate;border-spacing:0;vertical-align:middle}caption,th,td{text-align:left;font-weight:normal;vertical-align:middle}a img{border:none}*{-webkit-box-sizing:border-box;-moz-box-sizing:border-box;box-sizing:border-box}body{font-family:'Dosis','Tahoma',sans-serif}.container{margin:15px auto;width:80%}h1{margin:40px 0 20px;font-weight:700;font-size:38px;line-height:32px;color:#fb565e}h2{font-size:18px;padding:0 0 21px 5px;margin:45px 0 0 0;text-transform:uppercase;font-weight:500}.small{font-size:14px;color:#a5adb4;}.small a{color:#a5adb4;}.small a:hover{color:#fb565e}.glyphs.character-mapping{margin:0 0 20px 0;padding:20px 0 20px 30px;color:rgba(0,0,0,0.5);border:1px solid #d8e0e5;-webkit-border-radius:3px;border-radius:3px;}.glyphs.character-mapping li{margin:0 30px 20px 0;display:inline-block;width:90px}.glyphs.character-mapping .icon{margin:10px 0 10px 15px;padding:15px;position:relative;width:55px;height:55px;color:#162a36 !important;overflow:hidden;-webkit-border-radius:3px;border-radius:3px;font-size:32px;}.glyphs.character-mapping .icon svg{fill:#000}.glyphs.character-mapping input{margin:0;padding:5px 0;line-height:12px;font-size:12px;display:block;width:100%;border:1px solid #d8e0e5;-webkit-border-radius:5px;border-radius:5px;text-align:center;outline:0;}.glyphs.character-mapping input:focus{border:1px solid #fbde4a;-webkit-box-shadow:inset 0 0 3px #fbde4a;box-shadow:inset 0 0 3px #fbde4a}.glyphs.character-mapping input:hover{-webkit-box-shadow:inset 0 0 3px #fbde4a;box-shadow:inset 0 0 3px #fbde4a}.glyphs.css-mapping{margin:0 0 60px 0;padding:30px 0 20px 30px;color:rgba(0,0,0,0.5);border:1px solid #d8e0e5;-webkit-border-radius:3px;border-radius:3px;}.glyphs.css-mapping li{margin:0 30px 20px 0;padding:0;display:inline-block;overflow:hidden}.glyphs.css-mapping .icon{margin:0;margin-right:10px;padding:13px;height:50px;width:50px;color:#162a36 !important;overflow:hidden;float:left;font-size:24px}.glyphs.css-mapping input{margin:0;margin-top:5px;padding:8px;line-height:16px;font-size:16px;display:block;width:150px;height:40px;border:1px solid #d8e0e5;-webkit-border-radius:5px;border-radius:5px;background:#fff;outline:0;float:right;}.glyphs.css-mapping input:focus{border:1px solid #fbde4a;-webkit-box-shadow:inset 0 0 3px #fbde4a;box-shadow:inset 0 0 3px #fbde4a}.glyphs.css-mapping input:hover{-webkit-box-shadow:inset 0 0 3px #fbde4a;box-shadow:inset 0 0 3px #fbde4a}</style>
|
11 |
-
</head>
|
12 |
-
<body>
|
13 |
-
<div class="container">
|
14 |
-
<h1>otgs-icons</h1>
|
15 |
-
<p class="small">This font was created with<a href="http://fontastic.me/">Fontastic</a></p>
|
16 |
-
<h2>CSS mapping</h2>
|
17 |
-
<ul class="glyphs css-mapping">
|
18 |
-
<li>
|
19 |
-
<div class="icon otgs-ico-note-add"></div>
|
20 |
-
<input type="text" readonly="readonly" value="note-add">
|
21 |
-
</li>
|
22 |
-
<li>
|
23 |
-
<div class="icon otgs-ico-note-add-o"></div>
|
24 |
-
<input type="text" readonly="readonly" value="note-add-o">
|
25 |
-
</li>
|
26 |
-
<li>
|
27 |
-
<div class="icon otgs-ico-translated"></div>
|
28 |
-
<input type="text" readonly="readonly" value="translated">
|
29 |
-
</li>
|
30 |
-
<li>
|
31 |
-
<div class="icon otgs-ico-yes"></div>
|
32 |
-
<input type="text" readonly="readonly" value="yes">
|
33 |
-
</li>
|
34 |
-
<li>
|
35 |
-
<div class="icon otgs-ico-in-progress"></div>
|
36 |
-
<input type="text" readonly="readonly" value="in-progress">
|
37 |
-
</li>
|
38 |
-
<li>
|
39 |
-
<div class="icon otgs-ico-copy"></div>
|
40 |
-
<input type="text" readonly="readonly" value="copy">
|
41 |
-
</li>
|
42 |
-
<li>
|
43 |
-
<div class="icon otgs-ico-copy-o"></div>
|
44 |
-
<input type="text" readonly="readonly" value="copy-o">
|
45 |
-
</li>
|
46 |
-
<li>
|
47 |
-
<div class="icon otgs-ico-note-edit"></div>
|
48 |
-
<input type="text" readonly="readonly" value="note-edit">
|
49 |
-
</li>
|
50 |
-
<li>
|
51 |
-
<div class="icon otgs-ico-note-edit-o"></div>
|
52 |
-
<input type="text" readonly="readonly" value="note-edit-o">
|
53 |
-
</li>
|
54 |
-
<li>
|
55 |
-
<div class="icon otgs-ico-add"></div>
|
56 |
-
<input type="text" readonly="readonly" value="add">
|
57 |
-
</li>
|
58 |
-
<li>
|
59 |
-
<div class="icon otgs-ico-refresh"></div>
|
60 |
-
<input type="text" readonly="readonly" value="refresh">
|
61 |
-
</li>
|
62 |
-
<li>
|
63 |
-
<div class="icon otgs-ico-no"></div>
|
64 |
-
<input type="text" readonly="readonly" value="no">
|
65 |
-
</li>
|
66 |
-
<li>
|
67 |
-
<div class="icon otgs-ico-not-translated"></div>
|
68 |
-
<input type="text" readonly="readonly" value="not-translated">
|
69 |
-
</li>
|
70 |
-
<li>
|
71 |
-
<div class="icon otgs-ico-delete"></div>
|
72 |
-
<input type="text" readonly="readonly" value="delete">
|
73 |
-
</li>
|
74 |
-
<li>
|
75 |
-
<div class="icon otgs-ico-waiting"></div>
|
76 |
-
<input type="text" readonly="readonly" value="waiting">
|
77 |
-
</li>
|
78 |
-
<li>
|
79 |
-
<div class="icon otgs-ico-warning"></div>
|
80 |
-
<input type="text" readonly="readonly" value="warning">
|
81 |
-
</li>
|
82 |
-
<li>
|
83 |
-
<div class="icon otgs-ico-original"></div>
|
84 |
-
<input type="text" readonly="readonly" value="original">
|
85 |
-
</li>
|
86 |
-
<li>
|
87 |
-
<div class="icon otgs-ico-needs-update"></div>
|
88 |
-
<input type="text" readonly="readonly" value="needs-update">
|
89 |
-
</li>
|
90 |
-
<li>
|
91 |
-
<div class="icon otgs-ico-cred"></div>
|
92 |
-
<input type="text" readonly="readonly" value="cred">
|
93 |
-
</li>
|
94 |
-
<li>
|
95 |
-
<div class="icon otgs-ico-layouts"></div>
|
96 |
-
<input type="text" readonly="readonly" value="layouts">
|
97 |
-
</li>
|
98 |
-
<li>
|
99 |
-
<div class="icon otgs-ico-module-manager"></div>
|
100 |
-
<input type="text" readonly="readonly" value="module-manager">
|
101 |
-
</li>
|
102 |
-
<li>
|
103 |
-
<div class="icon otgs-ico-toolset"></div>
|
104 |
-
<input type="text" readonly="readonly" value="toolset">
|
105 |
-
</li>
|
106 |
-
<li>
|
107 |
-
<div class="icon otgs-ico-types"></div>
|
108 |
-
<input type="text" readonly="readonly" value="types">
|
109 |
-
</li>
|
110 |
-
<li>
|
111 |
-
<div class="icon otgs-ico-views"></div>
|
112 |
-
<input type="text" readonly="readonly" value="views">
|
113 |
-
</li>
|
114 |
-
<li>
|
115 |
-
<div class="icon otgs-ico-edit"></div>
|
116 |
-
<input type="text" readonly="readonly" value="edit">
|
117 |
-
</li>
|
118 |
-
<li>
|
119 |
-
<div class="icon otgs-ico-duplicate"></div>
|
120 |
-
<input type="text" readonly="readonly" value="duplicate">
|
121 |
-
</li>
|
122 |
-
<li>
|
123 |
-
<div class="icon otgs-ico-basket"></div>
|
124 |
-
<input type="text" readonly="readonly" value="basket">
|
125 |
-
</li>
|
126 |
-
<li>
|
127 |
-
<div class="icon otgs-ico-discoverwp"></div>
|
128 |
-
<input type="text" readonly="readonly" value="discoverwp">
|
129 |
-
</li>
|
130 |
-
<li>
|
131 |
-
<div class="icon otgs-ico-wpml"></div>
|
132 |
-
<input type="text" readonly="readonly" value="wpml">
|
133 |
-
</li>
|
134 |
-
<li>
|
135 |
-
<div class="icon otgs-ico-otgs"></div>
|
136 |
-
<input type="text" readonly="readonly" value="otgs">
|
137 |
-
</li>
|
138 |
-
<li>
|
139 |
-
<div class="icon otgs-ico-wrench"></div>
|
140 |
-
<input type="text" readonly="readonly" value="wrench">
|
141 |
-
</li>
|
142 |
-
<li>
|
143 |
-
<div class="icon otgs-ico-link"></div>
|
144 |
-
<input type="text" readonly="readonly" value="link">
|
145 |
-
</li>
|
146 |
-
<li>
|
147 |
-
<div class="icon otgs-ico-envelope-o"></div>
|
148 |
-
<input type="text" readonly="readonly" value="envelope-o">
|
149 |
-
</li>
|
150 |
-
<li>
|
151 |
-
<div class="icon otgs-ico-user"></div>
|
152 |
-
<input type="text" readonly="readonly" value="user">
|
153 |
-
</li>
|
154 |
-
<li>
|
155 |
-
<div class="icon otgs-ico-wpml-cms-nav"></div>
|
156 |
-
<input type="text" readonly="readonly" value="wpml-cms-nav">
|
157 |
-
</li>
|
158 |
-
<li>
|
159 |
-
<div class="icon otgs-ico-wpml-media"></div>
|
160 |
-
<input type="text" readonly="readonly" value="wpml-media">
|
161 |
-
</li>
|
162 |
-
<li>
|
163 |
-
<div class="icon otgs-ico-wpml-string-translation"></div>
|
164 |
-
<input type="text" readonly="readonly" value="wpml-string-translation">
|
165 |
-
</li>
|
166 |
-
<li>
|
167 |
-
<div class="icon otgs-ico-wpml-translation-management"></div>
|
168 |
-
<input type="text" readonly="readonly" value="wpml-translation-management">
|
169 |
-
</li>
|
170 |
-
<li>
|
171 |
-
<div class="icon otgs-ico-picture"></div>
|
172 |
-
<input type="text" readonly="readonly" value="picture">
|
173 |
-
</li>
|
174 |
-
<li>
|
175 |
-
<div class="icon otgs-ico-toolset-training"></div>
|
176 |
-
<input type="text" readonly="readonly" value="toolset-training">
|
177 |
-
</li>
|
178 |
-
<li>
|
179 |
-
<div class="icon otgs-ico-access-title"></div>
|
180 |
-
<input type="text" readonly="readonly" value="access-title">
|
181 |
-
</li>
|
182 |
-
<li>
|
183 |
-
<div class="icon otgs-ico-views-title"></div>
|
184 |
-
<input type="text" readonly="readonly" value="views-title">
|
185 |
-
</li>
|
186 |
-
<li>
|
187 |
-
<div class="icon otgs-ico-cred-title"></div>
|
188 |
-
<input type="text" readonly="readonly" value="cred-title">
|
189 |
-
</li>
|
190 |
-
<li>
|
191 |
-
<div class="icon otgs-ico-layouts-title"></div>
|
192 |
-
<input type="text" readonly="readonly" value="layouts-title">
|
193 |
-
</li>
|
194 |
-
<li>
|
195 |
-
<div class="icon otgs-ico-types-title"></div>
|
196 |
-
<input type="text" readonly="readonly" value="types-title">
|
197 |
-
</li>
|
198 |
-
<li>
|
199 |
-
<div class="icon otgs-ico-module-manager-title"></div>
|
200 |
-
<input type="text" readonly="readonly" value="module-manager-title">
|
201 |
-
</li>
|
202 |
-
<li>
|
203 |
-
<div class="icon otgs-ico-access"></div>
|
204 |
-
<input type="text" readonly="readonly" value="access">
|
205 |
-
</li>
|
206 |
-
<li>
|
207 |
-
<div class="icon otgs-ico-bullhorn"></div>
|
208 |
-
<input type="text" readonly="readonly" value="bullhorn">
|
209 |
-
</li>
|
210 |
-
<li>
|
211 |
-
<div class="icon otgs-ico-comment"></div>
|
212 |
-
<input type="text" readonly="readonly" value="comment">
|
213 |
-
</li>
|
214 |
-
<li>
|
215 |
-
<div class="icon otgs-ico-quote"></div>
|
216 |
-
<input type="text" readonly="readonly" value="quote">
|
217 |
-
</li>
|
218 |
-
<li>
|
219 |
-
<div class="icon otgs-ico-thumbsup"></div>
|
220 |
-
<input type="text" readonly="readonly" value="thumbsup">
|
221 |
-
</li>
|
222 |
-
<li>
|
223 |
-
<div class="icon otgs-ico-star"></div>
|
224 |
-
<input type="text" readonly="readonly" value="star">
|
225 |
-
</li>
|
226 |
-
</ul>
|
227 |
-
<h2>Character mapping</h2>
|
228 |
-
<ul class="glyphs character-mapping">
|
229 |
-
<li>
|
230 |
-
<div data-icon="a" class="icon"></div>
|
231 |
-
<input type="text" readonly="readonly" value="a">
|
232 |
-
</li>
|
233 |
-
<li>
|
234 |
-
<div data-icon="b" class="icon"></div>
|
235 |
-
<input type="text" readonly="readonly" value="b">
|
236 |
-
</li>
|
237 |
-
<li>
|
238 |
-
<div data-icon="c" class="icon"></div>
|
239 |
-
<input type="text" readonly="readonly" value="c">
|
240 |
-
</li>
|
241 |
-
<li>
|
242 |
-
<div data-icon="d" class="icon"></div>
|
243 |
-
<input type="text" readonly="readonly" value="d">
|
244 |
-
</li>
|
245 |
-
<li>
|
246 |
-
<div data-icon="e" class="icon"></div>
|
247 |
-
<input type="text" readonly="readonly" value="e">
|
248 |
-
</li>
|
249 |
-
<li>
|
250 |
-
<div data-icon="f" class="icon"></div>
|
251 |
-
<input type="text" readonly="readonly" value="f">
|
252 |
-
</li>
|
253 |
-
<li>
|
254 |
-
<div data-icon="g" class="icon"></div>
|
255 |
-
<input type="text" readonly="readonly" value="g">
|
256 |
-
</li>
|
257 |
-
<li>
|
258 |
-
<div data-icon="i" class="icon"></div>
|
259 |
-
<input type="text" readonly="readonly" value="i">
|
260 |
-
</li>
|
261 |
-
<li>
|
262 |
-
<div data-icon="j" class="icon"></div>
|
263 |
-
<input type="text" readonly="readonly" value="j">
|
264 |
-
</li>
|
265 |
-
<li>
|
266 |
-
<div data-icon="k" class="icon"></div>
|
267 |
-
<input type="text" readonly="readonly" value="k">
|
268 |
-
</li>
|
269 |
-
<li>
|
270 |
-
<div data-icon="l" class="icon"></div>
|
271 |
-
<input type="text" readonly="readonly" value="l">
|
272 |
-
</li>
|
273 |
-
<li>
|
274 |
-
<div data-icon="n" class="icon"></div>
|
275 |
-
<input type="text" readonly="readonly" value="n">
|
276 |
-
</li>
|
277 |
-
<li>
|
278 |
-
<div data-icon="o" class="icon"></div>
|
279 |
-
<input type="text" readonly="readonly" value="o">
|
280 |
-
</li>
|
281 |
-
<li>
|
282 |
-
<div data-icon="p" class="icon"></div>
|
283 |
-
<input type="text" readonly="readonly" value="p">
|
284 |
-
</li>
|
285 |
-
<li>
|
286 |
-
<div data-icon="q" class="icon"></div>
|
287 |
-
<input type="text" readonly="readonly" value="q">
|
288 |
-
</li>
|
289 |
-
<li>
|
290 |
-
<div data-icon="s" class="icon"></div>
|
291 |
-
<input type="text" readonly="readonly" value="s">
|
292 |
-
</li>
|
293 |
-
<li>
|
294 |
-
<div data-icon="t" class="icon"></div>
|
295 |
-
<input type="text" readonly="readonly" value="t">
|
296 |
-
</li>
|
297 |
-
<li>
|
298 |
-
<div data-icon="u" class="icon"></div>
|
299 |
-
<input type="text" readonly="readonly" value="u">
|
300 |
-
</li>
|
301 |
-
<li>
|
302 |
-
<div data-icon="w" class="icon"></div>
|
303 |
-
<input type="text" readonly="readonly" value="w">
|
304 |
-
</li>
|
305 |
-
<li>
|
306 |
-
<div data-icon="x" class="icon"></div>
|
307 |
-
<input type="text" readonly="readonly" value="x">
|
308 |
-
</li>
|
309 |
-
<li>
|
310 |
-
<div data-icon="y" class="icon"></div>
|
311 |
-
<input type="text" readonly="readonly" value="y">
|
312 |
-
</li>
|
313 |
-
<li>
|
314 |
-
<div data-icon="z" class="icon"></div>
|
315 |
-
<input type="text" readonly="readonly" value="z">
|
316 |
-
</li>
|
317 |
-
<li>
|
318 |
-
<div data-icon="A" class="icon"></div>
|
319 |
-
<input type="text" readonly="readonly" value="A">
|
320 |
-
</li>
|
321 |
-
<li>
|
322 |
-
<div data-icon="B" class="icon"></div>
|
323 |
-
<input type="text" readonly="readonly" value="B">
|
324 |
-
</li>
|
325 |
-
<li>
|
326 |
-
<div data-icon="h" class="icon"></div>
|
327 |
-
<input type="text" readonly="readonly" value="h">
|
328 |
-
</li>
|
329 |
-
<li>
|
330 |
-
<div data-icon="m" class="icon"></div>
|
331 |
-
<input type="text" readonly="readonly" value="m">
|
332 |
-
</li>
|
333 |
-
<li>
|
334 |
-
<div data-icon="r" class="icon"></div>
|
335 |
-
<input type="text" readonly="readonly" value="r">
|
336 |
-
</li>
|
337 |
-
<li>
|
338 |
-
<div data-icon="C" class="icon"></div>
|
339 |
-
<input type="text" readonly="readonly" value="C">
|
340 |
-
</li>
|
341 |
-
<li>
|
342 |
-
<div data-icon="D" class="icon"></div>
|
343 |
-
<input type="text" readonly="readonly" value="D">
|
344 |
-
</li>
|
345 |
-
<li>
|
346 |
-
<div data-icon="E" class="icon"></div>
|
347 |
-
<input type="text" readonly="readonly" value="E">
|
348 |
-
</li>
|
349 |
-
<li>
|
350 |
-
<div data-icon="F" class="icon"></div>
|
351 |
-
<input type="text" readonly="readonly" value="F">
|
352 |
-
</li>
|
353 |
-
<li>
|
354 |
-
<div data-icon="G" class="icon"></div>
|
355 |
-
<input type="text" readonly="readonly" value="G">
|
356 |
-
</li>
|
357 |
-
<li>
|
358 |
-
<div data-icon="H" class="icon"></div>
|
359 |
-
<input type="text" readonly="readonly" value="H">
|
360 |
-
</li>
|
361 |
-
<li>
|
362 |
-
<div data-icon="I" class="icon"></div>
|
363 |
-
<input type="text" readonly="readonly" value="I">
|
364 |
-
</li>
|
365 |
-
<li>
|
366 |
-
<div data-icon="J" class="icon"></div>
|
367 |
-
<input type="text" readonly="readonly" value="J">
|
368 |
-
</li>
|
369 |
-
<li>
|
370 |
-
<div data-icon="K" class="icon"></div>
|
371 |
-
<input type="text" readonly="readonly" value="K">
|
372 |
-
</li>
|
373 |
-
<li>
|
374 |
-
<div data-icon="L" class="icon"></div>
|
375 |
-
<input type="text" readonly="readonly" value="L">
|
376 |
-
</li>
|
377 |
-
<li>
|
378 |
-
<div data-icon="M" class="icon"></div>
|
379 |
-
<input type="text" readonly="readonly" value="M">
|
380 |
-
</li>
|
381 |
-
<li>
|
382 |
-
<div data-icon="N" class="icon"></div>
|
383 |
-
<input type="text" readonly="readonly" value="N">
|
384 |
-
</li>
|
385 |
-
<li>
|
386 |
-
<div data-icon="O" class="icon"></div>
|
387 |
-
<input type="text" readonly="readonly" value="O">
|
388 |
-
</li>
|
389 |
-
<li>
|
390 |
-
<div data-icon="P" class="icon"></div>
|
391 |
-
<input type="text" readonly="readonly" value="P">
|
392 |
-
</li>
|
393 |
-
<li>
|
394 |
-
<div data-icon="Q" class="icon"></div>
|
395 |
-
<input type="text" readonly="readonly" value="Q">
|
396 |
-
</li>
|
397 |
-
<li>
|
398 |
-
<div data-icon="R" class="icon"></div>
|
399 |
-
<input type="text" readonly="readonly" value="R">
|
400 |
-
</li>
|
401 |
-
<li>
|
402 |
-
<div data-icon="S" class="icon"></div>
|
403 |
-
<input type="text" readonly="readonly" value="S">
|
404 |
-
</li>
|
405 |
-
<li>
|
406 |
-
<div data-icon="T" class="icon"></div>
|
407 |
-
<input type="text" readonly="readonly" value="T">
|
408 |
-
</li>
|
409 |
-
<li>
|
410 |
-
<div data-icon="U" class="icon"></div>
|
411 |
-
<input type="text" readonly="readonly" value="U">
|
412 |
-
</li>
|
413 |
-
<li>
|
414 |
-
<div data-icon="v" class="icon"></div>
|
415 |
-
<input type="text" readonly="readonly" value="v">
|
416 |
-
</li>
|
417 |
-
<li>
|
418 |
-
<div data-icon="V" class="icon"></div>
|
419 |
-
<input type="text" readonly="readonly" value="V">
|
420 |
-
</li>
|
421 |
-
<li>
|
422 |
-
<div data-icon="W" class="icon"></div>
|
423 |
-
<input type="text" readonly="readonly" value="W">
|
424 |
-
</li>
|
425 |
-
<li>
|
426 |
-
<div data-icon="X" class="icon"></div>
|
427 |
-
<input type="text" readonly="readonly" value="X">
|
428 |
-
</li>
|
429 |
-
<li>
|
430 |
-
<div data-icon="Y" class="icon"></div>
|
431 |
-
<input type="text" readonly="readonly" value="Y">
|
432 |
-
</li>
|
433 |
-
<li>
|
434 |
-
<div data-icon="Z" class="icon"></div>
|
435 |
-
<input type="text" readonly="readonly" value="Z">
|
436 |
-
</li>
|
437 |
-
</ul>
|
438 |
-
</div>
|
439 |
-
<script>(function() {
|
440 |
-
var glyphs, i, len, ref;
|
441 |
-
|
442 |
-
ref = document.getElementsByClassName('glyphs');
|
443 |
-
for (i = 0, len = ref.length; i < len; i++) {
|
444 |
-
glyphs = ref[i];
|
445 |
-
glyphs.addEventListener('click', function(event) {
|
446 |
-
if (event.target.tagName === 'INPUT') {
|
447 |
-
return event.target.select();
|
448 |
-
}
|
449 |
-
});
|
450 |
-
}
|
451 |
-
|
452 |
-
}).call(this);
|
453 |
-
|
454 |
-
</script>
|
455 |
-
</body>
|
456 |
-
</html>
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
vendor/otgs/icons/otgs-icons.php
DELETED
@@ -1,20 +0,0 @@
|
|
1 |
-
<?php
|
2 |
-
/**
|
3 |
-
* Include this file to use OTGS-Icons
|
4 |
-
*/
|
5 |
-
|
6 |
-
if( !defined( 'OTGS_ICONS_ROOT_URL' ) )
|
7 |
-
return;
|
8 |
-
|
9 |
-
if( !defined( 'OTGS_ICONS_VERSION' ) )
|
10 |
-
define( 'OTGS_ICONS_VERSION', '1.0' );
|
11 |
-
|
12 |
-
if( ! has_action( 'wp_enqueue_scripts', 'otgs_icons' ) )
|
13 |
-
add_action( 'wp_enqueue_scripts', 'otgs_icons' );
|
14 |
-
|
15 |
-
if( ! function_exists( 'otgs_icons' ) ) {
|
16 |
-
function otgs_icons() {
|
17 |
-
wp_register_style( 'otgs-icons', OTGS_ICONS_ROOT_URL . '/css/otgs-icons.css', array(), OTGS_ICONS_VERSION );
|
18 |
-
wp_enqueue_style( 'otgs-icons' );
|
19 |
-
}
|
20 |
-
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
vendor/otgs/icons/plugin-icons/toolset/access/icon-128x128.png
DELETED
Binary file
|
vendor/otgs/icons/plugin-icons/toolset/access/icon-256x256.png
DELETED
Binary file
|
vendor/otgs/icons/plugin-icons/toolset/access/icon.svg
DELETED
@@ -1,25 +0,0 @@
|
|
1 |
-
<svg xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" viewBox="0 0 320 320">
|
2 |
-
<defs>
|
3 |
-
<path id="a" d="M312.5 317.5H7.5c-2.8 0-5-2.2-5-5V7.5c0-2.8 2.2-5 5-5h305c2.8 0 5 2.2 5 5v305c0 2.8-2.2 5-5 5z"/>
|
4 |
-
</defs>
|
5 |
-
<clipPath id="b">
|
6 |
-
<use xlink:href="#a" overflow="visible"/>
|
7 |
-
</clipPath>
|
8 |
-
<g clip-path="url(#b)">
|
9 |
-
<linearGradient id="c" gradientUnits="userSpaceOnUse" x1="160.009" y1="332.14" x2="160.009" y2="-6.196">
|
10 |
-
<stop offset="0" stop-color="#d63900"/>
|
11 |
-
<stop offset="1" stop-color="#f05a29"/>
|
12 |
-
</linearGradient>
|
13 |
-
<path fill="url(#c)" d="M-9.2-6.2h338.3v338.3H-9.2z"/>
|
14 |
-
<g opacity=".3">
|
15 |
-
<path fill="#F5944C" d="M-9.2 262.6c0-88.2 0-176.5-.1-264.7 0-3.5.7-4.2 4.2-4.2 91.8.1 183.5.1 275.3.1 1.1 2.1 2.1 4.3 3.2 6.4 8.2 15.5 14.6 31.6 20.2 48.2-1.4 1.5-3.8 3.1-5 4.7-8.3 10.8-18.2 20-27.5 29.9-15.4 16.4-32.2 31.3-49.8 45.4-32.4 26-67.5 48-102.4 70.4-14.6 9.4-29.6 18.2-44.4 27.3-17.3 10.6-35.2 20.2-53.5 28.8-6.6 2.9-13.1 6.2-20.2 7.7z"/>
|
16 |
-
<path fill="#EF6E44" d="M293.8 51c-.1-.3-.1-2.5-.3-2.7-1.3 1.2-4 3.4-5.1 4.8-6.6 8.5-18.2 20-27.4 29.8-15.4 16.4-32.2 31.3-49.8 45.4-32.4 26-67.5 48-102.4 70.4-14.6 9.4-29.6 18.2-44.4 27.3-17.3 10.6-35.2 20.2-53.5 28.8-6.4 3-12.9 6.3-20 7.8 0 22.7.1 45.3-.1 68 0 .9.1 1.5.3 2h96.3c5.1-4 10.9-6.7 16.4-10 34.9-20.8 65.9-46.9 97.9-71.8 33.7-32.4 68.1-65 85.7-108.8 5.6-13.9 8.8-28.4 10.1-43.5 1.3-16.6-.5-31.5-3.7-47.5z"/>
|
17 |
-
<path opacity=".6" fill="#FFD059" d="M329.2-6.2h-59c1.1 2.1 2.1 4.3 3.2 6.4 7.8 14.9 14.8 32.3 20.2 48.2 1.3-2 2.1-3.5 3.3-5 4-4.9 7.8-10 11.7-15 7.6-9.7 13.9-20.3 20.7-30.5"/>
|
18 |
-
</g>
|
19 |
-
</g>
|
20 |
-
<path fill-rule="evenodd" clip-rule="evenodd" fill="#FFF" stroke="#FFF" stroke-miterlimit="10" d="M286.3 191.7c1 0 2-.1 3-.2.9-.1 1.7-.3 2.3-.5v4.4c-.6.3-1.5.6-2.8.7-1.2.2-2.3.3-3.3.3-7.4 0-11-3.9-11-11.6v-22.6H269v-2.8l5.5-2.4 2.4-8.1h3.3v8.8h11v4.5h-11v22.4c0 2.3.5 4.1 1.6 5.3 1.1 1.2 2.6 1.8 4.5 1.8m-35.6-29.9c-3.1 0-5.5 1-7.3 3-1.8 2-2.9 4.7-3.2 8.3h19.9c0-3.6-.8-6.4-2.4-8.4-1.6-1.9-3.9-2.9-7-2.9zm1.6 34.7c-5.6 0-10.1-1.7-13.3-5.1-3.3-3.4-4.9-8.2-4.9-14.3 0-6.1 1.5-11 4.5-14.6 3-3.6 7.1-5.4 12.2-5.4 4.8 0 8.5 1.6 11.3 4.7 2.8 3.1 4.2 7.3 4.2 12.4v3.6h-26.2c.1 4.5 1.2 7.9 3.4 10.2 2.1 2.3 5.2 3.5 9 3.5 4.1 0 8.1-.9 12.2-2.6v5.1c-2 .9-4 1.5-5.8 1.9-1.8.4-4 .6-6.6.6zm-21.6-11.1c0 3.5-1.3 6.3-4 8.2-2.6 1.9-6.3 2.9-11.1 2.9-5 0-9-.8-11.8-2.4v-5.3c1.8.9 3.8 1.7 5.9 2.2 2.1.5 4.1.8 6.1.8 3 0 5.3-.5 6.9-1.4 1.6-1 2.4-2.4 2.4-4.4 0-1.5-.6-2.8-1.9-3.8-1.3-1.1-3.8-2.3-7.5-3.7-3.5-1.3-6.1-2.5-7.6-3.5s-2.6-2.1-3.3-3.4c-.7-1.3-1.1-2.7-1.1-4.5 0-3.1 1.3-5.5 3.8-7.3 2.5-1.8 6-2.7 10.4-2.7 4.1 0 8.1.8 12 2.5l-2 4.7c-3.8-1.6-7.3-2.4-10.4-2.4-2.7 0-4.8.4-6.2 1.3-1.4.9-2.1 2-2.1 3.5 0 1 .3 1.9.8 2.6.5.7 1.4 1.4 2.5 2 1.2.6 3.4 1.6 6.7 2.8 4.5 1.6 7.6 3.3 9.2 5 1.5 1.7 2.3 3.8 2.3 6.3zm-33 10.4H192v-54h5.8v54zm-39.3-19.1c0 4.9 1 8.6 2.9 11.1s4.8 3.8 8.6 3.8 6.6-1.3 8.6-3.8 2.9-6.2 2.9-11.1c0-4.8-1-8.5-2.9-11-2-2.5-4.8-3.8-8.7-3.8-3.8 0-6.6 1.2-8.5 3.7-1.9 2.5-2.9 6.2-2.9 11.1zm29 0c0 6.2-1.6 11.1-4.7 14.5-3.1 3.5-7.4 5.2-13 5.2-3.4 0-6.4-.8-9.1-2.4-2.6-1.6-4.7-3.9-6.1-6.9-1.4-3-2.2-6.5-2.2-10.5 0-6.2 1.6-11 4.7-14.5s7.4-5.2 12.9-5.2c5.3 0 9.6 1.8 12.7 5.3 3.2 3.7 4.8 8.5 4.8 14.5zm-68.1 0c0 4.9 1 8.6 2.9 11.1s4.8 3.8 8.6 3.8 6.6-1.3 8.6-3.8 2.9-6.2 2.9-11.1c0-4.8-1-8.5-2.9-11-2-2.5-4.8-3.8-8.7-3.8-3.8 0-6.6 1.2-8.5 3.7-2 2.5-2.9 6.2-2.9 11.1zm29 0c0 6.2-1.6 11.1-4.7 14.5-3.1 3.5-7.4 5.2-13 5.2-3.4 0-6.4-.8-9.1-2.4-2.6-1.6-4.7-3.9-6.1-6.9-1.4-3-2.2-6.5-2.2-10.5 0-6.2 1.6-11 4.7-14.5s7.4-5.2 12.9-5.2c5.3 0 9.6 1.8 12.7 5.3 3.2 3.7 4.8 8.5 4.8 14.5zm-50.2 19.1h-5.9v-45.5H84V145h30.2v5.2H98.1v45.6zm-14.7-.5H28.5v-50.6h9.1v-9.1h15.9v9.1h7.4v-9.1h15.9V150h-5.1v-9.3H66v9.1H48.4v-9.1h-5.7v9.1h-9.1v40.4h49.8v5.1z"/>
|
21 |
-
<g fill="#FFD059">
|
22 |
-
<path d="M268.7 44.5c-2.9 0-5.3 2.4-5.3 5.3v3.5H274v-3.5c-.1-2.9-2.4-5.3-5.3-5.3z"/>
|
23 |
-
<path d="M286.3 30.5v-12h-12v12h-12v-12h-12v12h-12v60h60v-60h-12zM282 77.7c0 1.5-1.2 2.7-2.7 2.7h-21.6c-1.5 0-2.7-1.2-2.7-2.7V56c0-1.5 1.2-2.7 2.7-2.7h1.5v-3.5c0-5.2 4.3-9.5 9.5-9.5s9.5 4.3 9.5 9.5v3.5h1.1c1.5 0 2.7 1.2 2.7 2.7v21.7z"/>
|
24 |
-
</g>
|
25 |
-
</svg>
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
vendor/otgs/icons/plugin-icons/toolset/bootstrap/icon-128x128.png
DELETED
Binary file
|
vendor/otgs/icons/plugin-icons/toolset/bootstrap/icon-256x256.png
DELETED
Binary file
|
vendor/otgs/icons/plugin-icons/toolset/bootstrap/icon.svg
DELETED
@@ -1,25 +0,0 @@
|
|
1 |
-
<svg xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" viewBox="0 0 320 320">
|
2 |
-
<defs>
|
3 |
-
<path id="a" d="M312.5 317.5H7.5c-2.8 0-5-2.2-5-5V7.5c0-2.8 2.2-5 5-5h305c2.8 0 5 2.2 5 5v305c0 2.8-2.2 5-5 5z"/>
|
4 |
-
</defs>
|
5 |
-
<clipPath id="b">
|
6 |
-
<use xlink:href="#a" overflow="visible"/>
|
7 |
-
</clipPath>
|
8 |
-
<g clip-path="url(#b)">
|
9 |
-
<linearGradient id="c" gradientUnits="userSpaceOnUse" x1="160.009" y1="332.14" x2="160.009" y2="-6.196">
|
10 |
-
<stop offset="0" stop-color="#d63900"/>
|
11 |
-
<stop offset="1" stop-color="#f05a29"/>
|
12 |
-
</linearGradient>
|
13 |
-
<path fill="url(#c)" d="M-9.2-6.2h338.3v338.3H-9.2z"/>
|
14 |
-
<g opacity=".3">
|
15 |
-
<path fill="#F5944C" d="M-9.2 262.6c0-88.2 0-176.5-.1-264.7 0-3.5.7-4.2 4.2-4.2 91.8.1 183.5.1 275.3.1 1.1 2.1 2.1 4.3 3.2 6.4 8.2 15.5 14.6 31.6 20.2 48.2-1.4 1.5-3.8 3.1-5 4.7-8.3 10.8-18.2 20-27.5 29.9-15.4 16.4-32.2 31.3-49.8 45.4-32.4 26-67.5 48-102.4 70.4-14.6 9.4-29.6 18.2-44.4 27.3-17.3 10.6-35.2 20.2-53.5 28.8-6.6 2.9-13.1 6.2-20.2 7.7z"/>
|
16 |
-
<path fill="#EF6E44" d="M293.8 51c-.1-.3-.1-2.5-.3-2.7-1.3 1.2-4 3.4-5.1 4.8-6.6 8.5-18.2 20-27.4 29.8-15.4 16.4-32.2 31.3-49.8 45.4-32.4 26-67.5 48-102.4 70.4-14.6 9.4-29.6 18.2-44.4 27.3-17.3 10.6-35.2 20.2-53.5 28.8-6.4 3-12.9 6.3-20 7.8 0 22.7.1 45.3-.1 68 0 .9.1 1.5.3 2h96.3c5.1-4 10.9-6.7 16.4-10 34.9-20.8 65.9-46.9 97.9-71.8 33.7-32.4 68.1-65 85.7-108.8 5.6-13.9 8.8-28.4 10.1-43.5 1.3-16.6-.5-31.5-3.7-47.5z"/>
|
17 |
-
<path opacity=".6" fill="#FFD059" d="M329.2-6.2h-59c1.1 2.1 2.1 4.3 3.2 6.4 7.8 14.9 14.8 32.3 20.2 48.2 1.3-2 2.1-3.5 3.3-5 4-4.9 7.8-10 11.7-15 7.6-9.7 13.9-20.3 20.7-30.5"/>
|
18 |
-
</g>
|
19 |
-
</g>
|
20 |
-
<path fill-rule="evenodd" clip-rule="evenodd" fill="#FFF" stroke="#FFF" stroke-miterlimit="10" d="M286.3 191.7c1 0 2-.1 3-.2.9-.1 1.7-.3 2.3-.5v4.4c-.6.3-1.5.6-2.8.7-1.2.2-2.3.3-3.3.3-7.4 0-11-3.9-11-11.6v-22.6H269v-2.8l5.5-2.4 2.4-8.1h3.3v8.8h11v4.5h-11v22.4c0 2.3.5 4.1 1.6 5.3 1.1 1.2 2.6 1.8 4.5 1.8m-35.6-29.9c-3.1 0-5.5 1-7.3 3-1.8 2-2.9 4.7-3.2 8.3h19.9c0-3.6-.8-6.4-2.4-8.4-1.6-1.9-3.9-2.9-7-2.9zm1.6 34.7c-5.6 0-10.1-1.7-13.3-5.1-3.3-3.4-4.9-8.2-4.9-14.3 0-6.1 1.5-11 4.5-14.6 3-3.6 7.1-5.4 12.2-5.4 4.8 0 8.5 1.6 11.3 4.7 2.8 3.1 4.2 7.3 4.2 12.4v3.6h-26.2c.1 4.5 1.2 7.9 3.4 10.2 2.1 2.3 5.2 3.5 9 3.5 4.1 0 8.1-.9 12.2-2.6v5.1c-2 .9-4 1.5-5.8 1.9-1.8.4-4 .6-6.6.6zm-21.6-11.1c0 3.5-1.3 6.3-4 8.2-2.6 1.9-6.3 2.9-11.1 2.9-5 0-9-.8-11.8-2.4v-5.3c1.8.9 3.8 1.7 5.9 2.2 2.1.5 4.1.8 6.1.8 3 0 5.3-.5 6.9-1.4 1.6-1 2.4-2.4 2.4-4.4 0-1.5-.6-2.8-1.9-3.8-1.3-1.1-3.8-2.3-7.5-3.7-3.5-1.3-6.1-2.5-7.6-3.5s-2.6-2.1-3.3-3.4c-.7-1.3-1.1-2.7-1.1-4.5 0-3.1 1.3-5.5 3.8-7.3 2.5-1.8 6-2.7 10.4-2.7 4.1 0 8.1.8 12 2.5l-2 4.7c-3.8-1.6-7.3-2.4-10.4-2.4-2.7 0-4.8.4-6.2 1.3-1.4.9-2.1 2-2.1 3.5 0 1 .3 1.9.8 2.6.5.7 1.4 1.4 2.5 2 1.2.6 3.4 1.6 6.7 2.8 4.5 1.6 7.6 3.3 9.2 5 1.5 1.7 2.3 3.8 2.3 6.3zm-33 10.4H192v-54h5.8v54zm-39.3-19.1c0 4.9 1 8.6 2.9 11.1s4.8 3.8 8.6 3.8 6.6-1.3 8.6-3.8 2.9-6.2 2.9-11.1c0-4.8-1-8.5-2.9-11-2-2.5-4.8-3.8-8.7-3.8-3.8 0-6.6 1.2-8.5 3.7-1.9 2.5-2.9 6.2-2.9 11.1zm29 0c0 6.2-1.6 11.1-4.7 14.5-3.1 3.5-7.4 5.2-13 5.2-3.4 0-6.4-.8-9.1-2.4-2.6-1.6-4.7-3.9-6.1-6.9-1.4-3-2.2-6.5-2.2-10.5 0-6.2 1.6-11 4.7-14.5s7.4-5.2 12.9-5.2c5.3 0 9.6 1.8 12.7 5.3 3.2 3.7 4.8 8.5 4.8 14.5zm-68.1 0c0 4.9 1 8.6 2.9 11.1s4.8 3.8 8.6 3.8 6.6-1.3 8.6-3.8 2.9-6.2 2.9-11.1c0-4.8-1-8.5-2.9-11-2-2.5-4.8-3.8-8.7-3.8-3.8 0-6.6 1.2-8.5 3.7-2 2.5-2.9 6.2-2.9 11.1zm29 0c0 6.2-1.6 11.1-4.7 14.5-3.1 3.5-7.4 5.2-13 5.2-3.4 0-6.4-.8-9.1-2.4-2.6-1.6-4.7-3.9-6.1-6.9-1.4-3-2.2-6.5-2.2-10.5 0-6.2 1.6-11 4.7-14.5s7.4-5.2 12.9-5.2c5.3 0 9.6 1.8 12.7 5.3 3.2 3.7 4.8 8.5 4.8 14.5zm-50.2 19.1h-5.9v-45.5H84V145h30.2v5.2H98.1v45.6zm-14.7-.5H28.5v-50.6h9.1v-9.1h15.9v9.1h7.4v-9.1h15.9V150h-5.1v-9.3H66v9.1H48.4v-9.1h-5.7v9.1h-9.1v40.4h49.8v5.1z"/>
|
21 |
-
<g fill="#FFD059">
|
22 |
-
<path d="M278.1 57.9h-18.9v-2.5l-4.7 4.7 4.7 4.7v-2.5h18.9v2.5l4.7-4.7-4.7-4.7z"/>
|
23 |
-
<path d="M286.3 30.5v-12h-12v12h-12v-12h-12v12h-12v60h60v-60h-12zm2.7 42c0 1.8-1.4 3.2-3.2 3.2H271c.2 1.2 1.2 4.5 6.1 4.5v1.6h-17.5v-1.6c4.9 0 5.9-3.3 6.1-4.5h-15.2c-1.8 0-3.2-1.4-3.2-3.2V47.9c0-1.8 1.4-3.2 3.2-3.2h35.2c1.8 0 3.2 1.4 3.2 3.2v24.6h.1z"/>
|
24 |
-
</g>
|
25 |
-
</svg>
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
vendor/otgs/icons/plugin-icons/toolset/cred/icon-128x128.png
DELETED
Binary file
|
vendor/otgs/icons/plugin-icons/toolset/cred/icon-256x256.png
DELETED
Binary file
|
vendor/otgs/icons/plugin-icons/toolset/cred/icon.svg
DELETED
@@ -1,24 +0,0 @@
|
|
1 |
-
<svg xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" viewBox="0 0 320 320">
|
2 |
-
<defs>
|
3 |
-
<path id="a" d="M312.5 317.5H7.5c-2.8 0-5-2.2-5-5V7.5c0-2.8 2.2-5 5-5h305c2.8 0 5 2.2 5 5v305c0 2.8-2.2 5-5 5z"/>
|
4 |
-
</defs>
|
5 |
-
<clipPath id="b">
|
6 |
-
<use xlink:href="#a" overflow="visible"/>
|
7 |
-
</clipPath>
|
8 |
-
<g clip-path="url(#b)">
|
9 |
-
<linearGradient id="c" gradientUnits="userSpaceOnUse" x1="160.009" y1="332.14" x2="160.009" y2="-6.196">
|
10 |
-
<stop offset="0" stop-color="#d63900"/>
|
11 |
-
<stop offset="1" stop-color="#f05a29"/>
|
12 |
-
</linearGradient>
|
13 |
-
<path fill="url(#c)" d="M-9.2-6.2h338.3v338.3H-9.2z"/>
|
14 |
-
<g opacity=".3">
|
15 |
-
<path fill="#F5944C" d="M-9.2 262.6c0-88.2 0-176.5-.1-264.7 0-3.5.7-4.2 4.2-4.2 91.8.1 183.5.1 275.3.1 1.1 2.1 2.1 4.3 3.2 6.4 8.2 15.5 14.6 31.6 20.2 48.2-1.4 1.5-3.8 3.1-5 4.7-8.3 10.8-18.2 20-27.5 29.9-15.4 16.4-32.2 31.3-49.8 45.4-32.4 26-67.5 48-102.4 70.4-14.6 9.4-29.6 18.2-44.4 27.3-17.3 10.6-35.2 20.2-53.5 28.8-6.6 2.9-13.1 6.2-20.2 7.7z"/>
|
16 |
-
<path fill="#EF6E44" d="M293.8 51c-.1-.3-.1-2.5-.3-2.7-1.3 1.2-4 3.4-5.1 4.8-6.6 8.5-18.2 20-27.4 29.8-15.4 16.4-32.2 31.3-49.8 45.4-32.4 26-67.5 48-102.4 70.4-14.6 9.4-29.6 18.2-44.4 27.3-17.3 10.6-35.2 20.2-53.5 28.8-6.4 3-12.9 6.3-20 7.8 0 22.7.1 45.3-.1 68 0 .9.1 1.5.3 2h96.3c5.1-4 10.9-6.7 16.4-10 34.9-20.8 65.9-46.9 97.9-71.8 33.7-32.4 68.1-65 85.7-108.8 5.6-13.9 8.8-28.4 10.1-43.5 1.3-16.6-.5-31.5-3.7-47.5z"/>
|
17 |
-
<path opacity=".6" fill="#FFD059" d="M329.2-6.2h-59c1.1 2.1 2.1 4.3 3.2 6.4 7.8 14.9 14.8 32.3 20.2 48.2 1.3-2 2.1-3.5 3.3-5 4-4.9 7.8-10 11.7-15 7.6-9.7 13.9-20.3 20.7-30.5"/>
|
18 |
-
</g>
|
19 |
-
</g>
|
20 |
-
<path fill-rule="evenodd" clip-rule="evenodd" fill="#FFF" stroke="#FFF" stroke-miterlimit="10" d="M286.3 191.7c1 0 2-.1 3-.2.9-.1 1.7-.3 2.3-.5v4.4c-.6.3-1.5.6-2.8.7-1.2.2-2.3.3-3.3.3-7.4 0-11-3.9-11-11.6v-22.6H269v-2.8l5.5-2.4 2.4-8.1h3.3v8.8h11v4.5h-11v22.4c0 2.3.5 4.1 1.6 5.3 1.1 1.2 2.6 1.8 4.5 1.8m-35.6-29.9c-3.1 0-5.5 1-7.3 3-1.8 2-2.9 4.7-3.2 8.3h19.9c0-3.6-.8-6.4-2.4-8.4-1.6-1.9-3.9-2.9-7-2.9zm1.6 34.7c-5.6 0-10.1-1.7-13.3-5.1-3.3-3.4-4.9-8.2-4.9-14.3 0-6.1 1.5-11 4.5-14.6 3-3.6 7.1-5.4 12.2-5.4 4.8 0 8.5 1.6 11.3 4.7 2.8 3.1 4.2 7.3 4.2 12.4v3.6h-26.2c.1 4.5 1.2 7.9 3.4 10.2 2.1 2.3 5.2 3.5 9 3.5 4.1 0 8.1-.9 12.2-2.6v5.1c-2 .9-4 1.5-5.8 1.9-1.8.4-4 .6-6.6.6zm-21.6-11.1c0 3.5-1.3 6.3-4 8.2-2.6 1.9-6.3 2.9-11.1 2.9-5 0-9-.8-11.8-2.4v-5.3c1.8.9 3.8 1.7 5.9 2.2 2.1.5 4.1.8 6.1.8 3 0 5.3-.5 6.9-1.4 1.6-1 2.4-2.4 2.4-4.4 0-1.5-.6-2.8-1.9-3.8-1.3-1.1-3.8-2.3-7.5-3.7-3.5-1.3-6.1-2.5-7.6-3.5s-2.6-2.1-3.3-3.4c-.7-1.3-1.1-2.7-1.1-4.5 0-3.1 1.3-5.5 3.8-7.3 2.5-1.8 6-2.7 10.4-2.7 4.1 0 8.1.8 12 2.5l-2 4.7c-3.8-1.6-7.3-2.4-10.4-2.4-2.7 0-4.8.4-6.2 1.3-1.4.9-2.1 2-2.1 3.5 0 1 .3 1.9.8 2.6.5.7 1.4 1.4 2.5 2 1.2.6 3.4 1.6 6.7 2.8 4.5 1.6 7.6 3.3 9.2 5 1.5 1.7 2.3 3.8 2.3 6.3zm-33 10.4H192v-54h5.8v54zm-39.3-19.1c0 4.9 1 8.6 2.9 11.1s4.8 3.8 8.6 3.8 6.6-1.3 8.6-3.8 2.9-6.2 2.9-11.1c0-4.8-1-8.5-2.9-11-2-2.5-4.8-3.8-8.7-3.8-3.8 0-6.6 1.2-8.5 3.7-1.9 2.5-2.9 6.2-2.9 11.1zm29 0c0 6.2-1.6 11.1-4.7 14.5-3.1 3.5-7.4 5.2-13 5.2-3.4 0-6.4-.8-9.1-2.4-2.6-1.6-4.7-3.9-6.1-6.9-1.4-3-2.2-6.5-2.2-10.5 0-6.2 1.6-11 4.7-14.5s7.4-5.2 12.9-5.2c5.3 0 9.6 1.8 12.7 5.3 3.2 3.7 4.8 8.5 4.8 14.5zm-68.1 0c0 4.9 1 8.6 2.9 11.1s4.8 3.8 8.6 3.8 6.6-1.3 8.6-3.8 2.9-6.2 2.9-11.1c0-4.8-1-8.5-2.9-11-2-2.5-4.8-3.8-8.7-3.8-3.8 0-6.6 1.2-8.5 3.7-2 2.5-2.9 6.2-2.9 11.1zm29 0c0 6.2-1.6 11.1-4.7 14.5-3.1 3.5-7.4 5.2-13 5.2-3.4 0-6.4-.8-9.1-2.4-2.6-1.6-4.7-3.9-6.1-6.9-1.4-3-2.2-6.5-2.2-10.5 0-6.2 1.6-11 4.7-14.5s7.4-5.2 12.9-5.2c5.3 0 9.6 1.8 12.7 5.3 3.2 3.7 4.8 8.5 4.8 14.5zm-50.2 19.1h-5.9v-45.5H84V145h30.2v5.2H98.1v45.6zm-14.7-.5H28.5v-50.6h9.1v-9.1h15.9v9.1h7.4v-9.1h15.9V150h-5.1v-9.3H66v9.1H48.4v-9.1h-5.7v9.1h-9.1v40.4h49.8v5.1z"/>
|
21 |
-
<g>
|
22 |
-
<path fill="#FFD059" d="M286.3 30.3v-12h-12v12h-12v-12h-12v12h-12v60h60v-60h-12zm-4.4 46.3c0 .2 0 .3-.1.4 0 .1-.1.2-.1.3-.1.1-.1.2-.2.3-.1.1-.1.2-.2.3l-.3.3c-.1.1-.2.2-.4.3h-.1c-.1.1-.3.2-.5.3-.2.1-.4.3-.6.4-.1.1-.3.1-.4.2l-.1.1c-.1.1-.2.1-.3.1h-.2c-.3.1-.5.2-.8.3h-.1l-.9.3h-.1c-.3.1-.7.2-1.1.3h-.1c-.4.1-.7.2-1.1.2h-.2c-.3.1-.6.1-1 .1h-.2c-.3 0-.7.1-1 .1h-.2c-.4 0-.8.1-1.2.1h-3.7c-.2 0-.4 0-.6-.1H265.8c-.3 0-.5-.1-.8-.1h-.1c-.2 0-.4-.1-.7-.1h-.2c-.3 0-.5-.1-.8-.1-.3 0-.5-.1-.8-.2h-.2c-.3-.1-.6-.1-.8-.2h-.2l-.9-.3h-.1c-.1 0-.2-.1-.4-.1l-.2-.1c-.1 0-.2-.1-.3-.1l-.1-.1h-.1l-.2-.1-.2-.1-.2-.1-.2-.1-.2-.1-.2-.1-.2-.1-.2-.1-.2-.1-.2-.1-.2-.1-.2-.1-.2-.1-.1-.1-.1-.1-.1-.1-.2.1-.1-.1-.1-.1-.1-.1-.1-.1-.1-.1-.1-.2-.1-.1-.1-.2v-.1l-.1-.2v-.4-.3l-.1-7.8v.8l.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.2.1.2.1.2.1.2.1.2.1.2.1.2.1.2.1.2.1.2.1.2.1.2.1.2.1.2.1c.1 0 .2.1.3.1l.2.1c.1 0 .2.1.4.1l.2.1.9.3h.1c.3.1.5.1.8.2h.2c.3.1.5.1.8.2h.1c.3 0 .5.1.8.1h.2c.2 0 .4.1.7.1h.2c.3 0 .5.1.8.1h.2c.2 0 .4 0 .7.1H270.2c.4 0 .8 0 1.2-.1h.2c.3 0 .7-.1 1-.1h.2c.3 0 .7-.1 1-.1h.1c.4-.1.8-.1 1.2-.2h.1c.4-.1.7-.2 1.1-.3h.1l.9-.3h.1c.3-.1.5-.2.8-.3l.1-.1c.1 0 .2-.1.3-.1l.2-.1c.1-.1.3-.1.4-.2.2-.1.5-.3.7-.4.2-.1.3-.2.5-.3l.1-.1c.1-.1.3-.2.4-.3l.3-.3.1-.1c.1-.1.2-.2.2-.3.1-.1.1-.2.2-.3v-.1c0-.1.1-.2.1-.3 0-.1 0-.2.1-.4v-.2l.1 7.8-.1.6zm0-11.2c0 .2 0 .3-.1.4 0 .1-.1.2-.1.3-.1.1-.1.2-.2.3-.1.1-.1.2-.2.3l-.3.3c-.1.1-.2.2-.4.3h-.1c-.1.1-.3.2-.5.3-.2.1-.4.3-.6.4-.1.1-.3.1-.4.2l-.1.1c-.1.1-.2.1-.3.1h-.2c-.3.1-.5.2-.8.3h-.1l-.9.3h-.1c-.3.1-.7.2-1.1.3h-.1c-.4.1-.7.2-1.1.2h-.2c-.3.1-.6.1-1 .1h-.2c-.3 0-.7.1-1 .1h-.2c-.4 0-.8.1-1.2.1h-3.7c-.2 0-.4 0-.6-.1h-.2c-.3 0-.5-.1-.8-.1h-.1c-.2 0-.4-.1-.7-.1h-.2c-.3 0-.5-.1-.8-.1-.3 0-.5-.1-.8-.2h-.2c-.3-.1-.6-.1-.8-.2h-.2l-.9-.3h-.1c-.1 0-.2-.1-.4-.1l-.2-.1c-.1 0-.2-.1-.3-.1l-.1-.1h-.1l-.2-.1-.2-.1-.2-.1-.2-.1-.2-.1-.2-.1-.2-.1-.2-.1-.2-.1-.2-.1-.2-.1-.2-.1-.2-.1-.1-.1-.1-.1-.1-.1-.1-.1-.1-.1-.1-.1-.1-.1-.1-.1-.1-.1-.1-.2-.1-.1-.1-.2v-.1l-.1-.2v-.4-.3L255 57v.8l.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.2.1.2.1.2.1.2.1.2.1.2.1.2.1.2.1.2.1.2.1.2.1.2.1.2.1.2.1c.1 0 .2.1.3.1l.2.1c.1 0 .2.1.4.1l.2.1.9.3h.1c.3.1.5.1.8.2h.2c.3.1.5.1.8.2h.1c.3 0 .5.1.8.1h.2c.2 0 .4.1.7.1h.2c.3 0 .5.1.8.1h.2c.2 0 .4 0 .7.1H270.2c.4 0 .8 0 1.2-.1h.2c.3 0 .7-.1 1-.1h.2c.3 0 .7-.1 1-.1h.1c.4-.1.8-.1 1.2-.2h.1c.4-.1.7-.2 1.1-.3h.1l.9-.3h.1c.3-.1.5-.2.8-.3l.1-.1c.1 0 .2-.1.3-.1l.2-.1c.1-.1.3-.1.4-.2.2-.1.5-.3.7-.4.2-.1.3-.2.5-.3l.1-.1c.1-.1.3-.2.4-.3l.3-.3.1-.1c.1-.1.2-.2.2-.3.1-.1.1-.2.2-.3v-.1c0-.1.1-.2.1-.3 0-.1 0-.2.1-.4V57l.1 7.8-.1.6zm0-11.2c0 .2 0 .3-.1.4 0 .1-.1.2-.1.3-.1.1-.1.2-.2.3-.1.1-.1.2-.2.3l-.3.3c-.1.1-.2.2-.4.3h-.1c-.1.1-.3.2-.5.3-.2.1-.4.3-.6.4-.1.1-.3.1-.4.2l-.1.1c-.1.1-.2.1-.3.1h-.2c-.3.1-.5.2-.8.3h-.1l-.9.3h-.1c-.3.1-.7.2-1.1.3h-.1c-.4.1-.7.2-1.1.2h-.2c-.3.1-.6.1-1 .1h-.2c-.3 0-.7.1-1 .1h-.2c-.4 0-.8.1-1.2.1h-3.6c-.2 0-.4 0-.6-.1h-.2c-.3 0-.5-.1-.8-.1h-.1c-.2 0-.4-.1-.7-.1h-.2c-.3 0-.5-.1-.8-.1-.3 0-.5-.1-.8-.2h-.2c-.3-.1-.6-.1-.8-.2h-.2l-.9-.3h-.1c-.1 0-.2-.1-.4-.1l-.2-.1c-.1 0-.2-.1-.3-.1l-.1-.1h-.1l-.2-.1-.2-.1-.2-.1-.2-.1-.2-.1-.2-.1-.2-.1-.2-.1-.2-.1-.2-.1-.2-.1-.2-.1-.2-.1-.1-.1-.1-.1-.1-.1-.1-.1-.1-.1-.1-.1-.1-.1-.1-.1-.1-.1-.1-.2-.1-.1-.1-.2v-.1l-.1-.2v-.4-.3l-.1-6.8v-.1-1 .5c.6-2.8 6.3-4.9 13.3-4.8 7 .1 12.8 2.4 13.4 5.2v-.5l.1 7.8-.2.5z"/>
|
23 |
-
</g>
|
24 |
-
</svg>
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
vendor/otgs/icons/plugin-icons/toolset/layouts/icon-128x128.png
DELETED
Binary file
|
vendor/otgs/icons/plugin-icons/toolset/layouts/icon-256x256.png
DELETED
Binary file
|
vendor/otgs/icons/plugin-icons/toolset/layouts/icon.svg
DELETED
@@ -1,24 +0,0 @@
|
|
1 |
-
<svg xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" viewBox="0 0 320 320">
|
2 |
-
<defs>
|
3 |
-
<path id="a" d="M312.5 317.5H7.5c-2.8 0-5-2.2-5-5V7.5c0-2.8 2.2-5 5-5h305c2.8 0 5 2.2 5 5v305c0 2.8-2.2 5-5 5z"/>
|
4 |
-
</defs>
|
5 |
-
<clipPath id="b">
|
6 |
-
<use xlink:href="#a" overflow="visible"/>
|
7 |
-
</clipPath>
|
8 |
-
<g clip-path="url(#b)">
|
9 |
-
<linearGradient id="c" gradientUnits="userSpaceOnUse" x1="160.009" y1="332.14" x2="160.009" y2="-6.196">
|
10 |
-
<stop offset="0" stop-color="#d63900"/>
|
11 |
-
<stop offset="1" stop-color="#f05a29"/>
|
12 |
-
</linearGradient>
|
13 |
-
<path fill="url(#c)" d="M-9.2-6.2h338.3v338.3H-9.2z"/>
|
14 |
-
<g opacity=".3">
|
15 |
-
<path fill="#F5944C" d="M-9.2 262.6c0-88.2 0-176.5-.1-264.7 0-3.5.7-4.2 4.2-4.2 91.8.1 183.5.1 275.3.1 1.1 2.1 2.1 4.3 3.2 6.4 8.2 15.5 14.6 31.6 20.2 48.2-1.4 1.5-3.8 3.1-5 4.7-8.3 10.8-18.2 20-27.5 29.9-15.4 16.4-32.2 31.3-49.8 45.4-32.4 26-67.5 48-102.4 70.4-14.6 9.4-29.6 18.2-44.4 27.3-17.3 10.6-35.2 20.2-53.5 28.8-6.6 2.9-13.1 6.2-20.2 7.7z"/>
|
16 |
-
<path fill="#EF6E44" d="M293.8 51c-.1-.3-.1-2.5-.3-2.7-1.3 1.2-4 3.4-5.1 4.8-6.6 8.5-18.2 20-27.4 29.8-15.4 16.4-32.2 31.3-49.8 45.4-32.4 26-67.5 48-102.4 70.4-14.6 9.4-29.6 18.2-44.4 27.3-17.3 10.6-35.2 20.2-53.5 28.8-6.4 3-12.9 6.3-20 7.8 0 22.7.1 45.3-.1 68 0 .9.1 1.5.3 2h96.3c5.1-4 10.9-6.7 16.4-10 34.9-20.8 65.9-46.9 97.9-71.8 33.7-32.4 68.1-65 85.7-108.8 5.6-13.9 8.8-28.4 10.1-43.5 1.3-16.6-.5-31.5-3.7-47.5z"/>
|
17 |
-
<path opacity=".6" fill="#FFD059" d="M329.2-6.2h-59c1.1 2.1 2.1 4.3 3.2 6.4 7.8 14.9 14.8 32.3 20.2 48.2 1.3-2 2.1-3.5 3.3-5 4-4.9 7.8-10 11.7-15 7.6-9.7 13.9-20.3 20.7-30.5"/>
|
18 |
-
</g>
|
19 |
-
</g>
|
20 |
-
<path fill-rule="evenodd" clip-rule="evenodd" fill="#FFF" stroke="#FFF" stroke-miterlimit="10" d="M286.3 191.7c1 0 2-.1 3-.2.9-.1 1.7-.3 2.3-.5v4.4c-.6.3-1.5.6-2.8.7-1.2.2-2.3.3-3.3.3-7.4 0-11-3.9-11-11.6v-22.6H269v-2.8l5.5-2.4 2.4-8.1h3.3v8.8h11v4.5h-11v22.4c0 2.3.5 4.1 1.6 5.3 1.1 1.2 2.6 1.8 4.5 1.8m-35.6-29.9c-3.1 0-5.5 1-7.3 3-1.8 2-2.9 4.7-3.2 8.3h19.9c0-3.6-.8-6.4-2.4-8.4-1.6-1.9-3.9-2.9-7-2.9zm1.6 34.7c-5.6 0-10.1-1.7-13.3-5.1-3.3-3.4-4.9-8.2-4.9-14.3 0-6.1 1.5-11 4.5-14.6 3-3.6 7.1-5.4 12.2-5.4 4.8 0 8.5 1.6 11.3 4.7 2.8 3.1 4.2 7.3 4.2 12.4v3.6h-26.2c.1 4.5 1.2 7.9 3.4 10.2 2.1 2.3 5.2 3.5 9 3.5 4.1 0 8.1-.9 12.2-2.6v5.1c-2 .9-4 1.5-5.8 1.9-1.8.4-4 .6-6.6.6zm-21.6-11.1c0 3.5-1.3 6.3-4 8.2-2.6 1.9-6.3 2.9-11.1 2.9-5 0-9-.8-11.8-2.4v-5.3c1.8.9 3.8 1.7 5.9 2.2 2.1.5 4.1.8 6.1.8 3 0 5.3-.5 6.9-1.4 1.6-1 2.4-2.4 2.4-4.4 0-1.5-.6-2.8-1.9-3.8-1.3-1.1-3.8-2.3-7.5-3.7-3.5-1.3-6.1-2.5-7.6-3.5s-2.6-2.1-3.3-3.4c-.7-1.3-1.1-2.7-1.1-4.5 0-3.1 1.3-5.5 3.8-7.3 2.5-1.8 6-2.7 10.4-2.7 4.1 0 8.1.8 12 2.5l-2 4.7c-3.8-1.6-7.3-2.4-10.4-2.4-2.7 0-4.8.4-6.2 1.3-1.4.9-2.1 2-2.1 3.5 0 1 .3 1.9.8 2.6.5.7 1.4 1.4 2.5 2 1.2.6 3.4 1.6 6.7 2.8 4.5 1.6 7.6 3.3 9.2 5 1.5 1.7 2.3 3.8 2.3 6.3zm-33 10.4H192v-54h5.8v54zm-39.3-19.1c0 4.9 1 8.6 2.9 11.1s4.8 3.8 8.6 3.8 6.6-1.3 8.6-3.8 2.9-6.2 2.9-11.1c0-4.8-1-8.5-2.9-11-2-2.5-4.8-3.8-8.7-3.8-3.8 0-6.6 1.2-8.5 3.7-1.9 2.5-2.9 6.2-2.9 11.1zm29 0c0 6.2-1.6 11.1-4.7 14.5-3.1 3.5-7.4 5.2-13 5.2-3.4 0-6.4-.8-9.1-2.4-2.6-1.6-4.7-3.9-6.1-6.9-1.4-3-2.2-6.5-2.2-10.5 0-6.2 1.6-11 4.7-14.5s7.4-5.2 12.9-5.2c5.3 0 9.6 1.8 12.7 5.3 3.2 3.7 4.8 8.5 4.8 14.5zm-68.1 0c0 4.9 1 8.6 2.9 11.1s4.8 3.8 8.6 3.8 6.6-1.3 8.6-3.8 2.9-6.2 2.9-11.1c0-4.8-1-8.5-2.9-11-2-2.5-4.8-3.8-8.7-3.8-3.8 0-6.6 1.2-8.5 3.7-2 2.5-2.9 6.2-2.9 11.1zm29 0c0 6.2-1.6 11.1-4.7 14.5-3.1 3.5-7.4 5.2-13 5.2-3.4 0-6.4-.8-9.1-2.4-2.6-1.6-4.7-3.9-6.1-6.9-1.4-3-2.2-6.5-2.2-10.5 0-6.2 1.6-11 4.7-14.5s7.4-5.2 12.9-5.2c5.3 0 9.6 1.8 12.7 5.3 3.2 3.7 4.8 8.5 4.8 14.5zm-50.2 19.1h-5.9v-45.5H84V145h30.2v5.2H98.1v45.6zm-14.7-.5H28.5v-50.6h9.1v-9.1h15.9v9.1h7.4v-9.1h15.9V150h-5.1v-9.3H66v9.1H48.4v-9.1h-5.7v9.1h-9.1v40.4h49.8v5.1z"/>
|
21 |
-
<g>
|
22 |
-
<path fill="#FFD059" d="M286 30.2v-12h-12v12h-12v-12h-12v12h-12v60h60v-60h-12zm-29.3 52h-11V55h11v27.2zm33.3 0h-30.5V55H290v27.2zm0-30h-44.3V40.5H290v11.7z"/>
|
23 |
-
</g>
|
24 |
-
</svg>
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
vendor/otgs/icons/plugin-icons/toolset/module-manager/icon-128x128.png
DELETED
Binary file
|
vendor/otgs/icons/plugin-icons/toolset/module-manager/icon-256x256.png
DELETED
Binary file
|
vendor/otgs/icons/plugin-icons/toolset/module-manager/icon.svg
DELETED
@@ -1,24 +0,0 @@
|
|
1 |
-
<svg xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" viewBox="0 0 320 320">
|
2 |
-
<defs>
|
3 |
-
<path id="a" d="M312.5 317.5H7.5c-2.8 0-5-2.2-5-5V7.5c0-2.8 2.2-5 5-5h305c2.8 0 5 2.2 5 5v305c0 2.8-2.2 5-5 5z"/>
|
4 |
-
</defs>
|
5 |
-
<clipPath id="b">
|
6 |
-
<use xlink:href="#a" overflow="visible"/>
|
7 |
-
</clipPath>
|
8 |
-
<g clip-path="url(#b)">
|
9 |
-
<linearGradient id="c" gradientUnits="userSpaceOnUse" x1="160.009" y1="332.14" x2="160.009" y2="-6.196">
|
10 |
-
<stop offset="0" stop-color="#d63900"/>
|
11 |
-
<stop offset="1" stop-color="#f05a29"/>
|
12 |
-
</linearGradient>
|
13 |
-
<path fill="url(#c)" d="M-9.2-6.2h338.3v338.3H-9.2z"/>
|
14 |
-
<g opacity=".3">
|
15 |
-
<path fill="#F5944C" d="M-9.2 262.6c0-88.2 0-176.5-.1-264.7 0-3.5.7-4.2 4.2-4.2 91.8.1 183.5.1 275.3.1 1.1 2.1 2.1 4.3 3.2 6.4 8.2 15.5 14.6 31.6 20.2 48.2-1.4 1.5-3.8 3.1-5 4.7-8.3 10.8-18.2 20-27.5 29.9-15.4 16.4-32.2 31.3-49.8 45.4-32.4 26-67.5 48-102.4 70.4-14.6 9.4-29.6 18.2-44.4 27.3-17.3 10.6-35.2 20.2-53.5 28.8-6.6 2.9-13.1 6.2-20.2 7.7z"/>
|
16 |
-
<path fill="#EF6E44" d="M293.8 51c-.1-.3-.1-2.5-.3-2.7-1.3 1.2-4 3.4-5.1 4.8-6.6 8.5-18.2 20-27.4 29.8-15.4 16.4-32.2 31.3-49.8 45.4-32.4 26-67.5 48-102.4 70.4-14.6 9.4-29.6 18.2-44.4 27.3-17.3 10.6-35.2 20.2-53.5 28.8-6.4 3-12.9 6.3-20 7.8 0 22.7.1 45.3-.1 68 0 .9.1 1.5.3 2h96.3c5.1-4 10.9-6.7 16.4-10 34.9-20.8 65.9-46.9 97.9-71.8 33.7-32.4 68.1-65 85.7-108.8 5.6-13.9 8.8-28.4 10.1-43.5 1.3-16.6-.5-31.5-3.7-47.5z"/>
|
17 |
-
<path opacity=".6" fill="#FFD059" d="M329.2-6.2h-59c1.1 2.1 2.1 4.3 3.2 6.4 7.8 14.9 14.8 32.3 20.2 48.2 1.3-2 2.1-3.5 3.3-5 4-4.9 7.8-10 11.7-15 7.6-9.7 13.9-20.3 20.7-30.5"/>
|
18 |
-
</g>
|
19 |
-
</g>
|
20 |
-
<path fill-rule="evenodd" clip-rule="evenodd" fill="#FFF" stroke="#FFF" stroke-miterlimit="10" d="M286.3 191.7c1 0 2-.1 3-.2.9-.1 1.7-.3 2.3-.5v4.4c-.6.3-1.5.6-2.8.7-1.2.2-2.3.3-3.3.3-7.4 0-11-3.9-11-11.6v-22.6H269v-2.8l5.5-2.4 2.4-8.1h3.3v8.8h11v4.5h-11v22.4c0 2.3.5 4.1 1.6 5.3 1.1 1.2 2.6 1.8 4.5 1.8m-35.6-29.9c-3.1 0-5.5 1-7.3 3-1.8 2-2.9 4.7-3.2 8.3h19.9c0-3.6-.8-6.4-2.4-8.4-1.6-1.9-3.9-2.9-7-2.9zm1.6 34.7c-5.6 0-10.1-1.7-13.3-5.1-3.3-3.4-4.9-8.2-4.9-14.3 0-6.1 1.5-11 4.5-14.6 3-3.6 7.1-5.4 12.2-5.4 4.8 0 8.5 1.6 11.3 4.7 2.8 3.1 4.2 7.3 4.2 12.4v3.6h-26.2c.1 4.5 1.2 7.9 3.4 10.2 2.1 2.3 5.2 3.5 9 3.5 4.1 0 8.1-.9 12.2-2.6v5.1c-2 .9-4 1.5-5.8 1.9-1.8.4-4 .6-6.6.6zm-21.6-11.1c0 3.5-1.3 6.3-4 8.2-2.6 1.9-6.3 2.9-11.1 2.9-5 0-9-.8-11.8-2.4v-5.3c1.8.9 3.8 1.7 5.9 2.2 2.1.5 4.1.8 6.1.8 3 0 5.3-.5 6.9-1.4 1.6-1 2.4-2.4 2.4-4.4 0-1.5-.6-2.8-1.9-3.8-1.3-1.1-3.8-2.3-7.5-3.7-3.5-1.3-6.1-2.5-7.6-3.5s-2.6-2.1-3.3-3.4c-.7-1.3-1.1-2.7-1.1-4.5 0-3.1 1.3-5.5 3.8-7.3 2.5-1.8 6-2.7 10.4-2.7 4.1 0 8.1.8 12 2.5l-2 4.7c-3.8-1.6-7.3-2.4-10.4-2.4-2.7 0-4.8.4-6.2 1.3-1.4.9-2.1 2-2.1 3.5 0 1 .3 1.9.8 2.6.5.7 1.4 1.4 2.5 2 1.2.6 3.4 1.6 6.7 2.8 4.5 1.6 7.6 3.3 9.2 5 1.5 1.7 2.3 3.8 2.3 6.3zm-33 10.4H192v-54h5.8v54zm-39.3-19.1c0 4.9 1 8.6 2.9 11.1s4.8 3.8 8.6 3.8 6.6-1.3 8.6-3.8 2.9-6.2 2.9-11.1c0-4.8-1-8.5-2.9-11-2-2.5-4.8-3.8-8.7-3.8-3.8 0-6.6 1.2-8.5 3.7-1.9 2.5-2.9 6.2-2.9 11.1zm29 0c0 6.2-1.6 11.1-4.7 14.5-3.1 3.5-7.4 5.2-13 5.2-3.4 0-6.4-.8-9.1-2.4-2.6-1.6-4.7-3.9-6.1-6.9-1.4-3-2.2-6.5-2.2-10.5 0-6.2 1.6-11 4.7-14.5s7.4-5.2 12.9-5.2c5.3 0 9.6 1.8 12.7 5.3 3.2 3.7 4.8 8.5 4.8 14.5zm-68.1 0c0 4.9 1 8.6 2.9 11.1s4.8 3.8 8.6 3.8 6.6-1.3 8.6-3.8 2.9-6.2 2.9-11.1c0-4.8-1-8.5-2.9-11-2-2.5-4.8-3.8-8.7-3.8-3.8 0-6.6 1.2-8.5 3.7-2 2.5-2.9 6.2-2.9 11.1zm29 0c0 6.2-1.6 11.1-4.7 14.5-3.1 3.5-7.4 5.2-13 5.2-3.4 0-6.4-.8-9.1-2.4-2.6-1.6-4.7-3.9-6.1-6.9-1.4-3-2.2-6.5-2.2-10.5 0-6.2 1.6-11 4.7-14.5s7.4-5.2 12.9-5.2c5.3 0 9.6 1.8 12.7 5.3 3.2 3.7 4.8 8.5 4.8 14.5zm-50.2 19.1h-5.9v-45.5H84V145h30.2v5.2H98.1v45.6zm-14.7-.5H28.5v-50.6h9.1v-9.1h15.9v9.1h7.4v-9.1h15.9V150h-5.1v-9.3H66v9.1H48.4v-9.1h-5.7v9.1h-9.1v40.4h49.8v5.1z"/>
|
21 |
-
<g>
|
22 |
-
<path fill="#FFD059" d="M286 30.3v-12h-12v12h-12v-12h-12v12h-12v60h60v-60h-12zm-19.9 53.5l-18.4-10.6V53.9l18.4 10.9v19zM288 73.2l-18.3 10.6V65.2l18.3-11v19zm0-23.2l-19.7 11.8-20.3-12 19.8-11.5L288 50z"/>
|
23 |
-
</g>
|
24 |
-
</svg>
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
vendor/otgs/icons/plugin-icons/toolset/packager/icon-128x128.png
DELETED
Binary file
|
vendor/otgs/icons/plugin-icons/toolset/packager/icon-256x256.png
DELETED
Binary file
|
vendor/otgs/icons/plugin-icons/toolset/packager/icon.svg
DELETED
@@ -1,26 +0,0 @@
|
|
1 |
-
<svg xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" viewBox="0 0 320 320">
|
2 |
-
<defs>
|
3 |
-
<path id="a" d="M312.5 317.5H7.5c-2.8 0-5-2.2-5-5V7.5c0-2.8 2.2-5 5-5h305c2.8 0 5 2.2 5 5v305c0 2.8-2.2 5-5 5z"/>
|
4 |
-
</defs>
|
5 |
-
<clipPath id="b">
|
6 |
-
<use xlink:href="#a" overflow="visible"/>
|
7 |
-
</clipPath>
|
8 |
-
<g clip-path="url(#b)">
|
9 |
-
<linearGradient id="c" gradientUnits="userSpaceOnUse" x1="160.009" y1="332.14" x2="160.009" y2="-6.196">
|
10 |
-
<stop offset="0" stop-color="#d63900"/>
|
11 |
-
<stop offset="1" stop-color="#f05a29"/>
|
12 |
-
</linearGradient>
|
13 |
-
<path fill="url(#c)" d="M-9.2-6.2h338.3v338.3H-9.2z"/>
|
14 |
-
<g opacity=".3">
|
15 |
-
<path fill="#F5944C" d="M-9.2 262.6c0-88.2 0-176.5-.1-264.7 0-3.5.7-4.2 4.2-4.2 91.8.1 183.5.1 275.3.1 1.1 2.1 2.1 4.3 3.2 6.4 8.2 15.5 14.6 31.6 20.2 48.2-1.4 1.5-3.8 3.1-5 4.7-8.3 10.8-18.2 20-27.5 29.9-15.4 16.4-32.2 31.3-49.8 45.4-32.4 26-67.5 48-102.4 70.4-14.6 9.4-29.6 18.2-44.4 27.3-17.3 10.6-35.2 20.2-53.5 28.8-6.6 2.9-13.1 6.2-20.2 7.7z"/>
|
16 |
-
<path fill="#EF6E44" d="M293.8 51c-.1-.3-.1-2.5-.3-2.7-1.3 1.2-4 3.4-5.1 4.8-6.6 8.5-18.2 20-27.4 29.8-15.4 16.4-32.2 31.3-49.8 45.4-32.4 26-67.5 48-102.4 70.4-14.6 9.4-29.6 18.2-44.4 27.3-17.3 10.6-35.2 20.2-53.5 28.8-6.4 3-12.9 6.3-20 7.8 0 22.7.1 45.3-.1 68 0 .9.1 1.5.3 2h96.3c5.1-4 10.9-6.7 16.4-10 34.9-20.8 65.9-46.9 97.9-71.8 33.7-32.4 68.1-65 85.7-108.8 5.6-13.9 8.8-28.4 10.1-43.5 1.3-16.6-.5-31.5-3.7-47.5z"/>
|
17 |
-
<path opacity=".6" fill="#FFD059" d="M329.2-6.2h-59c1.1 2.1 2.1 4.3 3.2 6.4 7.8 14.9 14.8 32.3 20.2 48.2 1.3-2 2.1-3.5 3.3-5 4-4.9 7.8-10 11.7-15 7.6-9.7 13.9-20.3 20.7-30.5"/>
|
18 |
-
</g>
|
19 |
-
</g>
|
20 |
-
<path fill-rule="evenodd" clip-rule="evenodd" fill="#FFF" stroke="#FFF" stroke-miterlimit="10" d="M286.3 191.7c1 0 2-.1 3-.2.9-.1 1.7-.3 2.3-.5v4.4c-.6.3-1.5.6-2.8.7-1.2.2-2.3.3-3.3.3-7.4 0-11-3.9-11-11.6v-22.6H269v-2.8l5.5-2.4 2.4-8.1h3.3v8.8h11v4.5h-11v22.4c0 2.3.5 4.1 1.6 5.3 1.1 1.2 2.6 1.8 4.5 1.8m-35.6-29.9c-3.1 0-5.5 1-7.3 3-1.8 2-2.9 4.7-3.2 8.3h19.9c0-3.6-.8-6.4-2.4-8.4-1.6-1.9-3.9-2.9-7-2.9zm1.6 34.7c-5.6 0-10.1-1.7-13.3-5.1-3.3-3.4-4.9-8.2-4.9-14.3 0-6.1 1.5-11 4.5-14.6 3-3.6 7.1-5.4 12.2-5.4 4.8 0 8.5 1.6 11.3 4.7 2.8 3.1 4.2 7.3 4.2 12.4v3.6h-26.2c.1 4.5 1.2 7.9 3.4 10.2 2.1 2.3 5.2 3.5 9 3.5 4.1 0 8.1-.9 12.2-2.6v5.1c-2 .9-4 1.5-5.8 1.9-1.8.4-4 .6-6.6.6zm-21.6-11.1c0 3.5-1.3 6.3-4 8.2-2.6 1.9-6.3 2.9-11.1 2.9-5 0-9-.8-11.8-2.4v-5.3c1.8.9 3.8 1.7 5.9 2.2 2.1.5 4.1.8 6.1.8 3 0 5.3-.5 6.9-1.4 1.6-1 2.4-2.4 2.4-4.4 0-1.5-.6-2.8-1.9-3.8-1.3-1.1-3.8-2.3-7.5-3.7-3.5-1.3-6.1-2.5-7.6-3.5s-2.6-2.1-3.3-3.4c-.7-1.3-1.1-2.7-1.1-4.5 0-3.1 1.3-5.5 3.8-7.3 2.5-1.8 6-2.7 10.4-2.7 4.1 0 8.1.8 12 2.5l-2 4.7c-3.8-1.6-7.3-2.4-10.4-2.4-2.7 0-4.8.4-6.2 1.3-1.4.9-2.1 2-2.1 3.5 0 1 .3 1.9.8 2.6.5.7 1.4 1.4 2.5 2 1.2.6 3.4 1.6 6.7 2.8 4.5 1.6 7.6 3.3 9.2 5 1.5 1.7 2.3 3.8 2.3 6.3zm-33 10.4H192v-54h5.8v54zm-39.3-19.1c0 4.9 1 8.6 2.9 11.1s4.8 3.8 8.6 3.8 6.6-1.3 8.6-3.8 2.9-6.2 2.9-11.1c0-4.8-1-8.5-2.9-11-2-2.5-4.8-3.8-8.7-3.8-3.8 0-6.6 1.2-8.5 3.7-1.9 2.5-2.9 6.2-2.9 11.1zm29 0c0 6.2-1.6 11.1-4.7 14.5-3.1 3.5-7.4 5.2-13 5.2-3.4 0-6.4-.8-9.1-2.4-2.6-1.6-4.7-3.9-6.1-6.9-1.4-3-2.2-6.5-2.2-10.5 0-6.2 1.6-11 4.7-14.5s7.4-5.2 12.9-5.2c5.3 0 9.6 1.8 12.7 5.3 3.2 3.7 4.8 8.5 4.8 14.5zm-68.1 0c0 4.9 1 8.6 2.9 11.1s4.8 3.8 8.6 3.8 6.6-1.3 8.6-3.8 2.9-6.2 2.9-11.1c0-4.8-1-8.5-2.9-11-2-2.5-4.8-3.8-8.7-3.8-3.8 0-6.6 1.2-8.5 3.7-2 2.5-2.9 6.2-2.9 11.1zm29 0c0 6.2-1.6 11.1-4.7 14.5-3.1 3.5-7.4 5.2-13 5.2-3.4 0-6.4-.8-9.1-2.4-2.6-1.6-4.7-3.9-6.1-6.9-1.4-3-2.2-6.5-2.2-10.5 0-6.2 1.6-11 4.7-14.5s7.4-5.2 12.9-5.2c5.3 0 9.6 1.8 12.7 5.3 3.2 3.7 4.8 8.5 4.8 14.5zm-50.2 19.1h-5.9v-45.5H84V145h30.2v5.2H98.1v45.6zm-14.7-.5H28.5v-50.6h9.1v-9.1h15.9v9.1h7.4v-9.1h15.9V150h-5.1v-9.3H66v9.1H48.4v-9.1h-5.7v9.1h-9.1v40.4h49.8v5.1z"/>
|
21 |
-
<g fill="#FFD059">
|
22 |
-
<path d="M254.4 69.6h8.3v7.3h10.8v-7.3h8.3l-13.6-11z"/>
|
23 |
-
<path d="M286.7 30.5V18.2h-12.3v12.3H262V18.2h-12.3v12.3h-12.3v61.7H299V30.5h-12.3zm1.9 49.5c.1 1.2-.9 2.3-2.2 2.3h-36.7c-1.2 0-2.3-1-2.3-2.3V53.9l7.9-7.9h25.3l7.9 7.9c.1 0 .1 26.1.1 26.1z"/>
|
24 |
-
<path d="M256.8 49.9l-3.5 3.5h29.8l-3.4-3.5z"/>
|
25 |
-
</g>
|
26 |
-
</svg>
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
vendor/otgs/icons/plugin-icons/toolset/ref-sites/icon-128x128.png
DELETED
Binary file
|
vendor/otgs/icons/plugin-icons/toolset/ref-sites/icon-256x256.png
DELETED
Binary file
|
vendor/otgs/icons/plugin-icons/toolset/ref-sites/icon.svg
DELETED
@@ -1,25 +0,0 @@
|
|
1 |
-
<svg xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" viewBox="0 0 320 320">
|
2 |
-
<defs>
|
3 |
-
<path id="a" d="M312.5 317.5H7.5c-2.8 0-5-2.2-5-5V7.5c0-2.8 2.2-5 5-5h305c2.8 0 5 2.2 5 5v305c0 2.8-2.2 5-5 5z"/>
|
4 |
-
</defs>
|
5 |
-
<clipPath id="b">
|
6 |
-
<use xlink:href="#a" overflow="visible"/>
|
7 |
-
</clipPath>
|
8 |
-
<g clip-path="url(#b)">
|
9 |
-
<linearGradient id="c" gradientUnits="userSpaceOnUse" x1="160.009" y1="332.14" x2="160.009" y2="-6.196">
|
10 |
-
<stop offset="0" stop-color="#d63900"/>
|
11 |
-
<stop offset="1" stop-color="#f05a29"/>
|
12 |
-
</linearGradient>
|
13 |
-
<path fill="url(#c)" d="M-9.2-6.2h338.3v338.3H-9.2z"/>
|
14 |
-
<g opacity=".3">
|
15 |
-
<path fill="#F5944C" d="M-9.2 262.6c0-88.2 0-176.5-.1-264.7 0-3.5.7-4.2 4.2-4.2 91.8.1 183.5.1 275.3.1 1.1 2.1 2.1 4.3 3.2 6.4 8.2 15.5 14.6 31.6 20.2 48.2-1.4 1.5-3.8 3.1-5 4.7-8.3 10.8-18.2 20-27.5 29.9-15.4 16.4-32.2 31.3-49.8 45.4-32.4 26-67.5 48-102.4 70.4-14.6 9.4-29.6 18.2-44.4 27.3-17.3 10.6-35.2 20.2-53.5 28.8-6.6 2.9-13.1 6.2-20.2 7.7z"/>
|
16 |
-
<path fill="#EF6E44" d="M293.8 51c-.1-.3-.1-2.5-.3-2.7-1.3 1.2-4 3.4-5.1 4.8-6.6 8.5-18.2 20-27.4 29.8-15.4 16.4-32.2 31.3-49.8 45.4-32.4 26-67.5 48-102.4 70.4-14.6 9.4-29.6 18.2-44.4 27.3-17.3 10.6-35.2 20.2-53.5 28.8-6.4 3-12.9 6.3-20 7.8 0 22.7.1 45.3-.1 68 0 .9.1 1.5.3 2h96.3c5.1-4 10.9-6.7 16.4-10 34.9-20.8 65.9-46.9 97.9-71.8 33.7-32.4 68.1-65 85.7-108.8 5.6-13.9 8.8-28.4 10.1-43.5 1.3-16.6-.5-31.5-3.7-47.5z"/>
|
17 |
-
<path opacity=".6" fill="#FFD059" d="M329.2-6.2h-59c1.1 2.1 2.1 4.3 3.2 6.4 7.8 14.9 14.8 32.3 20.2 48.2 1.3-2 2.1-3.5 3.3-5 4-4.9 7.8-10 11.7-15 7.6-9.7 13.9-20.3 20.7-30.5"/>
|
18 |
-
</g>
|
19 |
-
</g>
|
20 |
-
<path fill-rule="evenodd" clip-rule="evenodd" fill="#FFF" stroke="#FFF" stroke-miterlimit="10" d="M286.3 191.7c1 0 2-.1 3-.2.9-.1 1.7-.3 2.3-.5v4.4c-.6.3-1.5.6-2.8.7-1.2.2-2.3.3-3.3.3-7.4 0-11-3.9-11-11.6v-22.6H269v-2.8l5.5-2.4 2.4-8.1h3.3v8.8h11v4.5h-11v22.4c0 2.3.5 4.1 1.6 5.3 1.1 1.2 2.6 1.8 4.5 1.8m-35.6-29.9c-3.1 0-5.5 1-7.3 3-1.8 2-2.9 4.7-3.2 8.3h19.9c0-3.6-.8-6.4-2.4-8.4-1.6-1.9-3.9-2.9-7-2.9zm1.6 34.7c-5.6 0-10.1-1.7-13.3-5.1-3.3-3.4-4.9-8.2-4.9-14.3 0-6.1 1.5-11 4.5-14.6 3-3.6 7.1-5.4 12.2-5.4 4.8 0 8.5 1.6 11.3 4.7 2.8 3.1 4.2 7.3 4.2 12.4v3.6h-26.2c.1 4.5 1.2 7.9 3.4 10.2 2.1 2.3 5.2 3.5 9 3.5 4.1 0 8.1-.9 12.2-2.6v5.1c-2 .9-4 1.5-5.8 1.9-1.8.4-4 .6-6.6.6zm-21.6-11.1c0 3.5-1.3 6.3-4 8.2-2.6 1.9-6.3 2.9-11.1 2.9-5 0-9-.8-11.8-2.4v-5.3c1.8.9 3.8 1.7 5.9 2.2 2.1.5 4.1.8 6.1.8 3 0 5.3-.5 6.9-1.4 1.6-1 2.4-2.4 2.4-4.4 0-1.5-.6-2.8-1.9-3.8-1.3-1.1-3.8-2.3-7.5-3.7-3.5-1.3-6.1-2.5-7.6-3.5s-2.6-2.1-3.3-3.4c-.7-1.3-1.1-2.7-1.1-4.5 0-3.1 1.3-5.5 3.8-7.3 2.5-1.8 6-2.7 10.4-2.7 4.1 0 8.1.8 12 2.5l-2 4.7c-3.8-1.6-7.3-2.4-10.4-2.4-2.7 0-4.8.4-6.2 1.3-1.4.9-2.1 2-2.1 3.5 0 1 .3 1.9.8 2.6.5.7 1.4 1.4 2.5 2 1.2.6 3.4 1.6 6.7 2.8 4.5 1.6 7.6 3.3 9.2 5 1.5 1.7 2.3 3.8 2.3 6.3zm-33 10.4H192v-54h5.8v54zm-39.3-19.1c0 4.9 1 8.6 2.9 11.1s4.8 3.8 8.6 3.8 6.6-1.3 8.6-3.8 2.9-6.2 2.9-11.1c0-4.8-1-8.5-2.9-11-2-2.5-4.8-3.8-8.7-3.8-3.8 0-6.6 1.2-8.5 3.7-1.9 2.5-2.9 6.2-2.9 11.1zm29 0c0 6.2-1.6 11.1-4.7 14.5-3.1 3.5-7.4 5.2-13 5.2-3.4 0-6.4-.8-9.1-2.4-2.6-1.6-4.7-3.9-6.1-6.9-1.4-3-2.2-6.5-2.2-10.5 0-6.2 1.6-11 4.7-14.5s7.4-5.2 12.9-5.2c5.3 0 9.6 1.8 12.7 5.3 3.2 3.7 4.8 8.5 4.8 14.5zm-68.1 0c0 4.9 1 8.6 2.9 11.1s4.8 3.8 8.6 3.8 6.6-1.3 8.6-3.8 2.9-6.2 2.9-11.1c0-4.8-1-8.5-2.9-11-2-2.5-4.8-3.8-8.7-3.8-3.8 0-6.6 1.2-8.5 3.7-2 2.5-2.9 6.2-2.9 11.1zm29 0c0 6.2-1.6 11.1-4.7 14.5-3.1 3.5-7.4 5.2-13 5.2-3.4 0-6.4-.8-9.1-2.4-2.6-1.6-4.7-3.9-6.1-6.9-1.4-3-2.2-6.5-2.2-10.5 0-6.2 1.6-11 4.7-14.5s7.4-5.2 12.9-5.2c5.3 0 9.6 1.8 12.7 5.3 3.2 3.7 4.8 8.5 4.8 14.5zm-50.2 19.1h-5.9v-45.5H84V145h30.2v5.2H98.1v45.6zm-14.7-.5H28.5v-50.6h9.1v-9.1h15.9v9.1h7.4v-9.1h15.9V150h-5.1v-9.3H66v9.1H48.4v-9.1h-5.7v9.1h-9.1v40.4h49.8v5.1z"/>
|
21 |
-
<g fill="#FFD059">
|
22 |
-
<path d="M287.1 29.6V17.1h-12.5v12.5h-12.5V17.1h-12.5v12.5H237v62.7h62.7V29.6h-12.6zm-17.4 55.5l-10.9-14.3h5.4v-6.1h10.9v6.1h5.3l-10.7 14.3zm5.4-24.4v2.7h-10.9v-2.7h10.9zm-10.8-1.4v-2.7h10.9v2.7h-10.9zm28.4 17.4c0 1.4-1.2 2.6-2.6 2.6h-7.8v-3h7.5V46.6h-41.6v29.7h8.4v3h-8.8c-1.4 0-2.6-1.2-2.6-2.6V43.3c0-1.4 1.2-2.6 2.6-2.6h42.4c1.4 0 2.6 1.2 2.6 2.6v33.4z"/>
|
23 |
-
<path d="M277.8 42.5h11.9v2.2h-11.9zM248.1 42.5h2.4v2.2h-2.4z"/>
|
24 |
-
</g>
|
25 |
-
</svg>
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
vendor/otgs/icons/plugin-icons/toolset/support/icon-128x128.png
DELETED
Binary file
|
vendor/otgs/icons/plugin-icons/toolset/support/icon-256x256.png
DELETED
Binary file
|
vendor/otgs/icons/plugin-icons/toolset/support/icon.svg
DELETED
@@ -1,24 +0,0 @@
|
|
1 |
-
<svg xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" viewBox="0 0 320 320">
|
2 |
-
<defs>
|
3 |
-
<path id="a" d="M312.5 317.5H7.5c-2.8 0-5-2.2-5-5V7.5c0-2.8 2.2-5 5-5h305c2.8 0 5 2.2 5 5v305c0 2.8-2.2 5-5 5z"/>
|
4 |
-
</defs>
|
5 |
-
<clipPath id="b">
|
6 |
-
<use xlink:href="#a" overflow="visible"/>
|
7 |
-
</clipPath>
|
8 |
-
<g clip-path="url(#b)">
|
9 |
-
<linearGradient id="c" gradientUnits="userSpaceOnUse" x1="160.009" y1="332.14" x2="160.009" y2="-6.196">
|
10 |
-
<stop offset="0" stop-color="#d63900"/>
|
11 |
-
<stop offset="1" stop-color="#f05a29"/>
|
12 |
-
</linearGradient>
|
13 |
-
<path fill="url(#c)" d="M-9.2-6.2h338.3v338.3H-9.2z"/>
|
14 |
-
<g opacity=".3">
|
15 |
-
<path fill="#F5944C" d="M-9.2 262.6c0-88.2 0-176.5-.1-264.7 0-3.5.7-4.2 4.2-4.2 91.8.1 183.5.1 275.3.1 1.1 2.1 2.1 4.3 3.2 6.4 8.2 15.5 14.6 31.6 20.2 48.2-1.4 1.5-3.8 3.1-5 4.7-8.3 10.8-18.2 20-27.5 29.9-15.4 16.4-32.2 31.3-49.8 45.4-32.4 26-67.5 48-102.4 70.4-14.6 9.4-29.6 18.2-44.4 27.3-17.3 10.6-35.2 20.2-53.5 28.8-6.6 2.9-13.1 6.2-20.2 7.7z"/>
|
16 |
-
<path fill="#EF6E44" d="M293.8 51c-.1-.3-.1-2.5-.3-2.7-1.3 1.2-4 3.4-5.1 4.8-6.6 8.5-18.2 20-27.4 29.8-15.4 16.4-32.2 31.3-49.8 45.4-32.4 26-67.5 48-102.4 70.4-14.6 9.4-29.6 18.2-44.4 27.3-17.3 10.6-35.2 20.2-53.5 28.8-6.4 3-12.9 6.3-20 7.8 0 22.7.1 45.3-.1 68 0 .9.1 1.5.3 2h96.3c5.1-4 10.9-6.7 16.4-10 34.9-20.8 65.9-46.9 97.9-71.8 33.7-32.4 68.1-65 85.7-108.8 5.6-13.9 8.8-28.4 10.1-43.5 1.3-16.6-.5-31.5-3.7-47.5z"/>
|
17 |
-
<path opacity=".6" fill="#FFD059" d="M329.2-6.2h-59c1.1 2.1 2.1 4.3 3.2 6.4 7.8 14.9 14.8 32.3 20.2 48.2 1.3-2 2.1-3.5 3.3-5 4-4.9 7.8-10 11.7-15 7.6-9.7 13.9-20.3 20.7-30.5"/>
|
18 |
-
</g>
|
19 |
-
</g>
|
20 |
-
<path fill-rule="evenodd" clip-rule="evenodd" fill="#FFF" stroke="#FFF" stroke-miterlimit="10" d="M286.3 191.7c1 0 2-.1 3-.2.9-.1 1.7-.3 2.3-.5v4.4c-.6.3-1.5.6-2.8.7-1.2.2-2.3.3-3.3.3-7.4 0-11-3.9-11-11.6v-22.6H269v-2.8l5.5-2.4 2.4-8.1h3.3v8.8h11v4.5h-11v22.4c0 2.3.5 4.1 1.6 5.3 1.1 1.2 2.6 1.8 4.5 1.8m-35.6-29.9c-3.1 0-5.5 1-7.3 3-1.8 2-2.9 4.7-3.2 8.3h19.9c0-3.6-.8-6.4-2.4-8.4-1.6-1.9-3.9-2.9-7-2.9zm1.6 34.7c-5.6 0-10.1-1.7-13.3-5.1-3.3-3.4-4.9-8.2-4.9-14.3 0-6.1 1.5-11 4.5-14.6 3-3.6 7.1-5.4 12.2-5.4 4.8 0 8.5 1.6 11.3 4.7 2.8 3.1 4.2 7.3 4.2 12.4v3.6h-26.2c.1 4.5 1.2 7.9 3.4 10.2 2.1 2.3 5.2 3.5 9 3.5 4.1 0 8.1-.9 12.2-2.6v5.1c-2 .9-4 1.5-5.8 1.9-1.8.4-4 .6-6.6.6zm-21.6-11.1c0 3.5-1.3 6.3-4 8.2-2.6 1.9-6.3 2.9-11.1 2.9-5 0-9-.8-11.8-2.4v-5.3c1.8.9 3.8 1.7 5.9 2.2 2.1.5 4.1.8 6.1.8 3 0 5.3-.5 6.9-1.4 1.6-1 2.4-2.4 2.4-4.4 0-1.5-.6-2.8-1.9-3.8-1.3-1.1-3.8-2.3-7.5-3.7-3.5-1.3-6.1-2.5-7.6-3.5s-2.6-2.1-3.3-3.4c-.7-1.3-1.1-2.7-1.1-4.5 0-3.1 1.3-5.5 3.8-7.3 2.5-1.8 6-2.7 10.4-2.7 4.1 0 8.1.8 12 2.5l-2 4.7c-3.8-1.6-7.3-2.4-10.4-2.4-2.7 0-4.8.4-6.2 1.3-1.4.9-2.1 2-2.1 3.5 0 1 .3 1.9.8 2.6.5.7 1.4 1.4 2.5 2 1.2.6 3.4 1.6 6.7 2.8 4.5 1.6 7.6 3.3 9.2 5 1.5 1.7 2.3 3.8 2.3 6.3zm-33 10.4H192v-54h5.8v54zm-39.3-19.1c0 4.9 1 8.6 2.9 11.1s4.8 3.8 8.6 3.8 6.6-1.3 8.6-3.8 2.9-6.2 2.9-11.1c0-4.8-1-8.5-2.9-11-2-2.5-4.8-3.8-8.7-3.8-3.8 0-6.6 1.2-8.5 3.7-1.9 2.5-2.9 6.2-2.9 11.1zm29 0c0 6.2-1.6 11.1-4.7 14.5-3.1 3.5-7.4 5.2-13 5.2-3.4 0-6.4-.8-9.1-2.4-2.6-1.6-4.7-3.9-6.1-6.9-1.4-3-2.2-6.5-2.2-10.5 0-6.2 1.6-11 4.7-14.5s7.4-5.2 12.9-5.2c5.3 0 9.6 1.8 12.7 5.3 3.2 3.7 4.8 8.5 4.8 14.5zm-68.1 0c0 4.9 1 8.6 2.9 11.1s4.8 3.8 8.6 3.8 6.6-1.3 8.6-3.8 2.9-6.2 2.9-11.1c0-4.8-1-8.5-2.9-11-2-2.5-4.8-3.8-8.7-3.8-3.8 0-6.6 1.2-8.5 3.7-2 2.5-2.9 6.2-2.9 11.1zm29 0c0 6.2-1.6 11.1-4.7 14.5-3.1 3.5-7.4 5.2-13 5.2-3.4 0-6.4-.8-9.1-2.4-2.6-1.6-4.7-3.9-6.1-6.9-1.4-3-2.2-6.5-2.2-10.5 0-6.2 1.6-11 4.7-14.5s7.4-5.2 12.9-5.2c5.3 0 9.6 1.8 12.7 5.3 3.2 3.7 4.8 8.5 4.8 14.5zm-50.2 19.1h-5.9v-45.5H84V145h30.2v5.2H98.1v45.6zm-14.7-.5H28.5v-50.6h9.1v-9.1h15.9v9.1h7.4v-9.1h15.9V150h-5.1v-9.3H66v9.1H48.4v-9.1h-5.7v9.1h-9.1v40.4h49.8v5.1z"/>
|
21 |
-
<g>
|
22 |
-
<path fill="#FFD059" d="M286.9 28.5V16h-12.5v12.5h-12.5V16h-12.5v12.5h-12.5v62.6h62.6V28.5h-12.6zm1.3 38.1c-.2.2-.5.6-.5.9-.6 4.4-2.5 8.2-5.8 11.2-1.6 1.5-3.5 2.3-5.7 2-.8-.1-1.3.1-1.7.9-1.9 3-7.2 3-9.2 0-1.4-2.1-.6-4.7 1.9-5.9 2.8-1.4 6-.5 7.7 2.2.1.2.4.3.6.3h2.4c.3 0 .6-.1.8-.2 3.6-2.3 5.5-5.7 6.4-9.9h-.7c-1.5 0-2.2-.6-2.2-2.2V54.7c0-1 .2-1.9 1.2-2.4-1.5-4.5-6.8-10.5-15-10.6-7.4-.1-13.3 4.8-15.5 10.6 1.2.5 1.3 1.5 1.3 2.6v10.9c0 1.7-.8 2.4-2.5 2.3-3.1-.3-5.5-2.5-6.1-5.9-.6-3.5 0-6.6 3.1-8.9.2-.2.4-.6.5-.9 2-5.6 5.5-9.8 10.9-12.4 8.6-4 18.8-1.2 24.3 6.5 1.3 1.9 2.4 3.9 3.1 6.1.1.3.3.6.6.8 3.8 3 4 10 .1 13.2z"/>
|
23 |
-
</g>
|
24 |
-
</svg>
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
vendor/otgs/icons/plugin-icons/toolset/toolset-core/icon-128x128.png
DELETED
Binary file
|
vendor/otgs/icons/plugin-icons/toolset/toolset-core/icon-256x256.png
DELETED
Binary file
|
vendor/otgs/icons/plugin-icons/toolset/toolset-core/icon.svg
DELETED
@@ -1,62 +0,0 @@
|
|
1 |
-
<svg xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" id="icon" viewBox="0 0 320 320">
|
2 |
-
<style>
|
3 |
-
.st0{clip-path:url(#SVGID_2_)}.st1{fill:url(#SVGID_3_)}.st2{opacity:.3}.st3{fill:#f5944c}.st4{fill:#ef6e44}.st5{opacity:.6;fill:#ffd059}.st6{fill-rule:evenodd;clip-rule:evenodd;fill:#fff;stroke:#fff;stroke-miterlimit:10}.st7{display:none}.st8{display:inline}.st10,.st9{fill:#ffd059}.st10{display:inline}
|
4 |
-
</style>
|
5 |
-
<defs>
|
6 |
-
<path id="SVGID_1_" d="M312.5 317.5H7.5c-2.8 0-5-2.2-5-5V7.5c0-2.8 2.2-5 5-5h305c2.8 0 5 2.2 5 5v305c0 2.8-2.2 5-5 5z"/>
|
7 |
-
</defs>
|
8 |
-
<clipPath id="SVGID_2_">
|
9 |
-
<use overflow="visible" xlink:href="#SVGID_1_"/>
|
10 |
-
</clipPath>
|
11 |
-
<g class="st0">
|
12 |
-
<linearGradient id="SVGID_3_" x1="160.009" x2="160.009" y1="332.14" y2="-6.196" gradientUnits="userSpaceOnUse">
|
13 |
-
<stop offset="0" stop-color="#d63900"/>
|
14 |
-
<stop offset="1" stop-color="#f05a29"/>
|
15 |
-
</linearGradient>
|
16 |
-
<path d="M-9.2-6.2h338.3v338.3H-9.2z" class="st1"/>
|
17 |
-
<g class="st2">
|
18 |
-
<path d="M-9.2 262.6c0-88.2 0-176.5-.1-264.7 0-3.5.7-4.2 4.2-4.2 91.8.1 183.5.1 275.3.1 1.1 2.1 2.1 4.3 3.2 6.4 8.2 15.5 14.6 31.6 20.2 48.2-1.4 1.5-3.8 3.1-5 4.7-8.3 10.8-18.2 20-27.5 29.9-15.4 16.4-32.2 31.3-49.8 45.4-32.4 26-67.5 48-102.4 70.4-14.6 9.4-29.6 18.2-44.4 27.3-17.3 10.6-35.2 20.2-53.5 28.8-6.6 2.9-13.1 6.2-20.2 7.7z" class="st3"/>
|
19 |
-
<path d="M293.8 51c-.1-.3-.1-2.5-.3-2.7-1.3 1.2-4 3.4-5.1 4.8-6.6 8.5-18.2 20-27.4 29.8-15.4 16.4-32.2 31.3-49.8 45.4-32.4 26-67.5 48-102.4 70.4-14.6 9.4-29.6 18.2-44.4 27.3-17.3 10.6-35.2 20.2-53.5 28.8-6.4 3-12.9 6.3-20 7.8 0 22.7.1 45.3-.1 68 0 .9.1 1.5.3 2h96.3c5.1-4 10.9-6.7 16.4-10 34.9-20.8 65.9-46.9 97.9-71.8 33.7-32.4 68.1-65 85.7-108.8 5.6-13.9 8.8-28.4 10.1-43.5 1.3-16.6-.5-31.5-3.7-47.5z" class="st4"/>
|
20 |
-
<path d="M329.2-6.2h-59c1.1 2.1 2.1 4.3 3.2 6.4 7.8 14.9 14.8 32.3 20.2 48.2 1.3-2 2.1-3.5 3.3-5 4-4.9 7.8-10 11.7-15 7.6-9.7 13.9-20.3 20.7-30.5" class="st5"/>
|
21 |
-
</g>
|
22 |
-
</g>
|
23 |
-
<path d="M286.3 185.7c1 0 2-.1 3-.2.9-.1 1.7-.3 2.3-.5v4.4c-.6.3-1.5.6-2.8.7-1.2.2-2.3.3-3.3.3-7.4 0-11-3.9-11-11.6v-22.6H269v-2.8l5.5-2.4 2.4-8.1h3.3v8.8h11v4.5h-11v22.4c0 2.3.5 4.1 1.6 5.3 1.1 1.2 2.6 1.8 4.5 1.8m-35.6-29.9c-3.1 0-5.5 1-7.3 3-1.8 2-2.9 4.7-3.2 8.3h19.9c0-3.6-.8-6.4-2.4-8.4-1.6-1.9-3.9-2.9-7-2.9zm1.6 34.7c-5.6 0-10.1-1.7-13.3-5.1-3.3-3.4-4.9-8.2-4.9-14.3 0-6.1 1.5-11 4.5-14.6 3-3.6 7.1-5.4 12.2-5.4 4.8 0 8.5 1.6 11.3 4.7 2.8 3.1 4.2 7.3 4.2 12.4v3.6h-26.2c.1 4.5 1.2 7.9 3.4 10.2 2.1 2.3 5.2 3.5 9 3.5 4.1 0 8.1-.9 12.2-2.6v5.1c-2 .9-4 1.5-5.8 1.9-1.8.4-4 .6-6.6.6zm-21.6-11.1c0 3.5-1.3 6.3-4 8.2-2.6 1.9-6.3 2.9-11.1 2.9-5 0-9-.8-11.8-2.4v-5.3c1.8.9 3.8 1.7 5.9 2.2 2.1.5 4.1.8 6.1.8 3 0 5.3-.5 6.9-1.4 1.6-1 2.4-2.4 2.4-4.4 0-1.5-.6-2.8-1.9-3.8-1.3-1.1-3.8-2.3-7.5-3.7-3.5-1.3-6.1-2.5-7.6-3.5s-2.6-2.1-3.3-3.4c-.7-1.3-1.1-2.7-1.1-4.5 0-3.1 1.3-5.5 3.8-7.3 2.5-1.8 6-2.7 10.4-2.7 4.1 0 8.1.8 12 2.5l-2 4.7c-3.8-1.6-7.3-2.4-10.4-2.4-2.7 0-4.8.4-6.2 1.3-1.4.9-2.1 2-2.1 3.5 0 1 .3 1.9.8 2.6.5.7 1.4 1.4 2.5 2 1.2.6 3.4 1.6 6.7 2.8 4.5 1.6 7.6 3.3 9.2 5 1.5 1.7 2.3 3.8 2.3 6.3zm-33 10.4H192v-54h5.8v54zm-39.3-19.1c0 4.9 1 8.6 2.9 11.1s4.8 3.8 8.6 3.8 6.6-1.3 8.6-3.8 2.9-6.2 2.9-11.1c0-4.8-1-8.5-2.9-11-2-2.5-4.8-3.8-8.7-3.8-3.8 0-6.6 1.2-8.5 3.7-1.9 2.5-2.9 6.2-2.9 11.1zm29 0c0 6.2-1.6 11.1-4.7 14.5-3.1 3.5-7.4 5.2-13 5.2-3.4 0-6.4-.8-9.1-2.4-2.6-1.6-4.7-3.9-6.1-6.9-1.4-3-2.2-6.5-2.2-10.5 0-6.2 1.6-11 4.7-14.5s7.4-5.2 12.9-5.2c5.3 0 9.6 1.8 12.7 5.3 3.2 3.7 4.8 8.5 4.8 14.5zm-68.1 0c0 4.9 1 8.6 2.9 11.1s4.8 3.8 8.6 3.8 6.6-1.3 8.6-3.8 2.9-6.2 2.9-11.1c0-4.8-1-8.5-2.9-11-2-2.5-4.8-3.8-8.7-3.8-3.8 0-6.6 1.2-8.5 3.7-2 2.5-2.9 6.2-2.9 11.1zm29 0c0 6.2-1.6 11.1-4.7 14.5-3.1 3.5-7.4 5.2-13 5.2-3.4 0-6.4-.8-9.1-2.4-2.6-1.6-4.7-3.9-6.1-6.9-1.4-3-2.2-6.5-2.2-10.5 0-6.2 1.6-11 4.7-14.5s7.4-5.2 12.9-5.2c5.3 0 9.6 1.8 12.7 5.3 3.2 3.7 4.8 8.5 4.8 14.5zm-50.2 19.1h-5.9v-45.5H84V139h30.2v5.2H98.1v45.6zm-14.7-.5H28.5v-50.6h9.1v-9.1h15.9v9.1h7.4v-9.1h15.9V144h-5.1v-9.3H66v9.1H48.4v-9.1h-5.7v9.1h-9.1v40.4h49.8v5.1z" class="st6"/>
|
24 |
-
<g id="view" class="st7">
|
25 |
-
<g class="st8">
|
26 |
-
<path d="M286 30.3v-12h-12v12h-12v-12h-12v12h-12v60h60v-60h-12zm-39.3 30.2s19.4-26.3 43.2 0c-.1 0-19.4 27-43.2 0z" class="st9"/>
|
27 |
-
<path d="M268.2 52.5c-4.5 0-8.1 3.6-8.1 8.1s3.6 8.1 8.1 8.1 8.1-3.6 8.1-8.1c.1-4.5-3.6-8.1-8.1-8.1zm0 13.5c-3 0-5.4-2.4-5.4-5.4 0-3 2.4-5.4 5.4-5.4 3 0 5.4 2.4 5.4 5.4 0 3-2.4 5.4-5.4 5.4z" class="st9"/>
|
28 |
-
</g>
|
29 |
-
</g>
|
30 |
-
<g id="access" class="st7">
|
31 |
-
<path d="M268.7 44.5c-2.9 0-5.3 2.4-5.3 5.3v3.5H274v-3.5c-.1-2.9-2.4-5.3-5.3-5.3z" class="st10"/>
|
32 |
-
<path d="M286.3 30.5v-12h-12v12h-12v-12h-12v12h-12v60h60v-60h-12zM282 77.7c0 1.5-1.2 2.7-2.7 2.7h-21.6c-1.5 0-2.7-1.2-2.7-2.7V56c0-1.5 1.2-2.7 2.7-2.7h1.5v-3.5c0-5.2 4.3-9.5 9.5-9.5s9.5 4.3 9.5 9.5v3.5h1.1c1.5 0 2.7 1.2 2.7 2.7v21.7z" class="st10"/>
|
33 |
-
</g>
|
34 |
-
<g id="btstrp" class="st7">
|
35 |
-
<path d="M278.1 57.9h-18.9v-2.5l-4.7 4.7 4.7 4.7v-2.5h18.9v2.5l4.7-4.7-4.7-4.7z" class="st10"/>
|
36 |
-
<path d="M286.3 30.5v-12h-12v12h-12v-12h-12v12h-12v60h60v-60h-12zm2.7 42c0 1.8-1.4 3.2-3.2 3.2H271c.2 1.2 1.2 4.5 6.1 4.5v1.6h-17.5v-1.6c4.9 0 5.9-3.3 6.1-4.5h-15.2c-1.8 0-3.2-1.4-3.2-3.2V47.9c0-1.8 1.4-3.2 3.2-3.2h35.2c1.8 0 3.2 1.4 3.2 3.2v24.6h.1z" class="st10"/>
|
37 |
-
</g>
|
38 |
-
<g id="cred" class="st7">
|
39 |
-
<path d="M286.3 30.3v-12h-12v12h-12v-12h-12v12h-12v60h60v-60h-12zm-4.4 46.3c0 .2 0 .3-.1.4 0 .1-.1.2-.1.3-.1.1-.1.2-.2.3-.1.1-.1.2-.2.3l-.3.3c-.1.1-.2.2-.4.3h-.1c-.1.1-.3.2-.5.3-.2.1-.4.3-.6.4-.1.1-.3.1-.4.2l-.1.1c-.1.1-.2.1-.3.1h-.2c-.3.1-.5.2-.8.3h-.1l-.9.3h-.1c-.3.1-.7.2-1.1.3h-.1c-.4.1-.7.2-1.1.2h-.2c-.3.1-.6.1-1 .1h-.2c-.3 0-.7.1-1 .1h-.2c-.4 0-.8.1-1.2.1h-3.7c-.2 0-.4 0-.6-.1h-.3c-.3 0-.5-.1-.8-.1h-.1c-.2 0-.4-.1-.7-.1h-.2c-.3 0-.5-.1-.8-.1-.3 0-.5-.1-.8-.2h-.2c-.3-.1-.6-.1-.8-.2h-.2l-.9-.3h-.1c-.1 0-.2-.1-.4-.1l-.2-.1c-.1 0-.2-.1-.3-.1l-.1-.1h-.1l-.2-.1-.2-.1-.2-.1-.2-.1-.2-.1-.2-.1-.2-.1-.2-.1-.2-.1-.2-.1-.2-.1-.2-.1-.2-.1-.1-.1-.1-.1-.1-.1-.2.1-.1-.1-.1-.1-.1-.1-.1-.1-.1-.1-.1-.2-.1-.1-.1-.2v-.1l-.1-.2V76l-.1-7.8v.8l.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.2.1.2.1.2.1.2.1.2.1.2.1.2.1.2.1.2.1.2.1.2.1.2.1.2.1.2.1c.1 0 .2.1.3.1l.2.1c.1 0 .2.1.4.1l.2.1.9.3h.1c.3.1.5.1.8.2h.2c.3.1.5.1.8.2h.1c.3 0 .5.1.8.1h.2c.2 0 .4.1.7.1h.2c.3 0 .5.1.8.1h.2c.2 0 .4 0 .7.1h3.5c.4 0 .8 0 1.2-.1h.2c.3 0 .7-.1 1-.1h.2c.3 0 .7-.1 1-.1h.1c.4-.1.8-.1 1.2-.2h.1c.4-.1.7-.2 1.1-.3h.1l.9-.3h.1c.3-.1.5-.2.8-.3l.1-.1c.1 0 .2-.1.3-.1l.2-.1c.1-.1.3-.1.4-.2.2-.1.5-.3.7-.4.2-.1.3-.2.5-.3l.1-.1c.1-.1.3-.2.4-.3l.3-.3.1-.1c.1-.1.2-.2.2-.3.1-.1.1-.2.2-.3v-.1c0-.1.1-.2.1-.3 0-.1 0-.2.1-.4v-.2l.1 7.8-.1.6zm0-11.2c0 .2 0 .3-.1.4 0 .1-.1.2-.1.3-.1.1-.1.2-.2.3-.1.1-.1.2-.2.3l-.3.3c-.1.1-.2.2-.4.3h-.1c-.1.1-.3.2-.5.3-.2.1-.4.3-.6.4-.1.1-.3.1-.4.2l-.1.1c-.1.1-.2.1-.3.1h-.2c-.3.1-.5.2-.8.3h-.1l-.9.3h-.1c-.3.1-.7.2-1.1.3h-.1c-.4.1-.7.2-1.1.2h-.2c-.3.1-.6.1-1 .1h-.2c-.3 0-.7.1-1 .1h-.2c-.4 0-.8.1-1.2.1h-3.7c-.2 0-.4 0-.6-.1h-.2c-.3 0-.5-.1-.8-.1h-.1c-.2 0-.4-.1-.7-.1h-.2c-.3 0-.5-.1-.8-.1-.3 0-.5-.1-.8-.2h-.2c-.3-.1-.6-.1-.8-.2h-.2l-.9-.3h-.1c-.1 0-.2-.1-.4-.1l-.2-.1c-.1 0-.2-.1-.3-.1l-.1-.1h-.1l-.2-.1-.2-.1-.2-.1-.2-.1-.2-.1-.2-.1-.2-.1-.2-.1-.2-.1-.2-.1-.2-.1-.2-.1-.2-.1-.1-.1-.1-.1-.1-.1-.1-.1-.1-.1-.1-.1-.1-.1-.1-.1-.1-.1-.1-.2-.1-.1-.1-.2v-.1l-.1-.2v-.7L255 57v.8l.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.2.1.2.1.2.1.2.1.2.1.2.1.2.1.2.1.2.1.2.1.2.1.2.1.2.1.2.1c.1 0 .2.1.3.1l.2.1c.1 0 .2.1.4.1l.2.1.9.3h.1c.3.1.5.1.8.2h.2c.3.1.5.1.8.2h.1c.3 0 .5.1.8.1h.2c.2 0 .4.1.7.1h.2c.3 0 .5.1.8.1h.2c.2 0 .4 0 .7.1h3.5c.4 0 .8 0 1.2-.1h.2c.3 0 .7-.1 1-.1h.2c.3 0 .7-.1 1-.1h.1c.4-.1.8-.1 1.2-.2h.1c.4-.1.7-.2 1.1-.3h.1l.9-.3h.1c.3-.1.5-.2.8-.3l.1-.1c.1 0 .2-.1.3-.1l.2-.1c.1-.1.3-.1.4-.2.2-.1.5-.3.7-.4.2-.1.3-.2.5-.3l.1-.1c.1-.1.3-.2.4-.3l.3-.3.1-.1c.1-.1.2-.2.2-.3.1-.1.1-.2.2-.3v-.1c0-.1.1-.2.1-.3 0-.1 0-.2.1-.4V57l.1 7.8-.1.6zm0-11.2c0 .2 0 .3-.1.4 0 .1-.1.2-.1.3-.1.1-.1.2-.2.3-.1.1-.1.2-.2.3l-.3.3c-.1.1-.2.2-.4.3h-.1c-.1.1-.3.2-.5.3-.2.1-.4.3-.6.4-.1.1-.3.1-.4.2l-.1.1c-.1.1-.2.1-.3.1h-.2c-.3.1-.5.2-.8.3h-.1l-.9.3h-.1c-.3.1-.7.2-1.1.3h-.1c-.4.1-.7.2-1.1.2h-.2c-.3.1-.6.1-1 .1h-.2c-.3 0-.7.1-1 .1h-.2c-.4 0-.8.1-1.2.1h-3.6c-.2 0-.4 0-.6-.1h-.2c-.3 0-.5-.1-.8-.1h-.1c-.2 0-.4-.1-.7-.1h-.2c-.3 0-.5-.1-.8-.1-.3 0-.5-.1-.8-.2h-.2c-.3-.1-.6-.1-.8-.2h-.2l-.9-.3h-.1c-.1 0-.2-.1-.4-.1l-.2-.1c-.1 0-.2-.1-.3-.1l-.1-.1h-.1l-.2-.1-.2-.1-.2-.1-.2-.1-.2-.1-.2-.1-.2-.1-.2-.1-.2-.1-.2-.1-.2-.1-.2-.1-.2-.1-.1-.1-.1-.1-.1-.1-.1-.1-.1-.1-.1-.1-.1-.1-.1-.1-.1-.1-.1-.2-.1-.1-.1-.2v-.1l-.1-.2v-.7l-.1-6.8v-1.1.5c.6-2.8 6.3-4.9 13.3-4.8 7 .1 12.8 2.4 13.4 5.2v-.5l.1 7.8-.2.5z" class="st10"/>
|
40 |
-
</g>
|
41 |
-
<g id="layout" class="st7">
|
42 |
-
<path d="M286 30.2v-12h-12v12h-12v-12h-12v12h-12v60h60v-60h-12zm-29.3 52h-11V55h11v27.2zm33.3 0h-30.5V55H290v27.2zm0-30h-44.3V40.5H290v11.7z" class="st10"/>
|
43 |
-
</g>
|
44 |
-
<g id="module" class="st7">
|
45 |
-
<path d="M286 30.3v-12h-12v12h-12v-12h-12v12h-12v60h60v-60h-12zm-19.9 53.5l-18.4-10.6V53.9l18.4 10.9v19zM288 73.2l-18.3 10.6V65.2l18.3-11v19zm0-23.2l-19.7 11.8-20.3-12 19.8-11.5L288 50z" class="st10"/>
|
46 |
-
</g>
|
47 |
-
<g id="Packager" class="st7">
|
48 |
-
<path d="M254.4 69.6h8.3v7.3h10.8v-7.3h8.3l-13.6-11z" class="st10"/>
|
49 |
-
<path d="M286.7 30.5V18.2h-12.3v12.3H262V18.2h-12.3v12.3h-12.3v61.7H299V30.5h-12.3zm1.9 49.5c.1 1.2-.9 2.3-2.2 2.3h-36.7c-1.2 0-2.3-1-2.3-2.3V53.9l7.9-7.9h25.3l7.9 7.9.1 26.1z" class="st10"/>
|
50 |
-
<path d="M256.8 49.9l-3.5 3.5h29.8l-3.4-3.5z" class="st10"/>
|
51 |
-
</g>
|
52 |
-
<g id="Toolset_refsite" class="st7">
|
53 |
-
<path d="M287.1 29.6V17.1h-12.5v12.5h-12.5V17.1h-12.5v12.5H237v62.7h62.7V29.6h-12.6zm-17.4 55.5l-10.9-14.3h5.4v-6.1h10.9v6.1h5.3l-10.7 14.3zm5.4-24.4v2.7h-10.9v-2.7h10.9zm-10.8-1.4v-2.7h10.9v2.7h-10.9zm28.4 17.4c0 1.4-1.2 2.6-2.6 2.6h-7.8v-3h7.5V46.6h-41.6v29.7h8.4v3h-8.8c-1.4 0-2.6-1.2-2.6-2.6V43.3c0-1.4 1.2-2.6 2.6-2.6h42.4c1.4 0 2.6 1.2 2.6 2.6v33.4z" class="st10"/>
|
54 |
-
<path d="M277.8 42.5h11.9v2.2h-11.9zm-29.7 0h2.4v2.2h-2.4z" class="st10"/>
|
55 |
-
</g>
|
56 |
-
<g id="Toolset_support" class="st7">
|
57 |
-
<path d="M286.9 28.5V16h-12.5v12.5h-12.5V16h-12.5v12.5h-12.5v62.6h62.6V28.5h-12.6zm1.3 38.1c-.2.2-.5.6-.5.9-.6 4.4-2.5 8.2-5.8 11.2-1.6 1.5-3.5 2.3-5.7 2-.8-.1-1.3.1-1.7.9-1.9 3-7.2 3-9.2 0-1.4-2.1-.6-4.7 1.9-5.9 2.8-1.4 6-.5 7.7 2.2.1.2.4.3.6.3h2.4c.3 0 .6-.1.8-.2 3.6-2.3 5.5-5.7 6.4-9.9h-.7c-1.5 0-2.2-.6-2.2-2.2V54.7c0-1 .2-1.9 1.2-2.4-1.5-4.5-6.8-10.5-15-10.6-7.4-.1-13.3 4.8-15.5 10.6 1.2.5 1.3 1.5 1.3 2.6v10.9c0 1.7-.8 2.4-2.5 2.3-3.1-.3-5.5-2.5-6.1-5.9-.6-3.5 0-6.6 3.1-8.9.2-.2.4-.6.5-.9 2-5.6 5.5-9.8 10.9-12.4 8.6-4 18.8-1.2 24.3 6.5 1.3 1.9 2.4 3.9 3.1 6.1.1.3.3.6.6.8 3.8 3 4 10 .1 13.2z" class="st10"/>
|
58 |
-
</g>
|
59 |
-
<g id="Types_logo" class="st7">
|
60 |
-
<path d="M286.9 28.9V16.3h-12.5v12.5h-12.5V16.3h-12.5v12.5h-12.5v62.6h62.6V28.9h-12.6zm-42.8 20.6c0-.6.4-1.2.6-1.4.2-.2.9-.4 1.6-.4h1.3c.9 0 1.5.1 1.8-.1.3-.2.5-.6.7-1.4l.2-.9c.2-.6.4-1.2.7-1.3.3-.2.9-.4 1.8-.4h7.6c.8 0 1.3.3 1.5.4.2.2.4.7.6 1.3l.2 1c.2.8.4 1.1.7 1.3.3.2 1.1.1 2.4.1h14.3c1 0 1.4.8 1.4 1.9v2.3h-23.9c-1.5 0-2.4-.1-2.8.2-.4.2-1.1.9-1.8 2.1l-9.1 17.2V49.5zm49.1 7.1l-9.1 18.2h-36.9l9.4-18.3c.3-.6.6-1.1.9-1.2.3-.2.9-.3 1.7-.3h33.3c.8 0 1.2.2 1.3.5-.1 0-.3.4-.6 1.1z" class="st10"/>
|
61 |
-
</g>
|
62 |
-
</svg>
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
vendor/otgs/icons/plugin-icons/toolset/types/icon-128x128.png
DELETED
Binary file
|
vendor/otgs/icons/plugin-icons/toolset/types/icon-256x256.png
DELETED
Binary file
|
vendor/otgs/icons/plugin-icons/toolset/types/icon.svg
DELETED
@@ -1,24 +0,0 @@
|
|
1 |
-
<svg xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" viewBox="0 0 320 320">
|
2 |
-
<defs>
|
3 |
-
<path id="a" d="M312.5 317.5H7.5c-2.8 0-5-2.2-5-5V7.5c0-2.8 2.2-5 5-5h305c2.8 0 5 2.2 5 5v305c0 2.8-2.2 5-5 5z"/>
|
4 |
-
</defs>
|
5 |
-
<clipPath id="b">
|
6 |
-
<use xlink:href="#a" overflow="visible"/>
|
7 |
-
</clipPath>
|
8 |
-
<g clip-path="url(#b)">
|
9 |
-
<linearGradient id="c" gradientUnits="userSpaceOnUse" x1="160.009" y1="332.14" x2="160.009" y2="-6.196">
|
10 |
-
<stop offset="0" stop-color="#d63900"/>
|
11 |
-
<stop offset="1" stop-color="#f05a29"/>
|
12 |
-
</linearGradient>
|
13 |
-
<path fill="url(#c)" d="M-9.2-6.2h338.3v338.3H-9.2z"/>
|
14 |
-
<g opacity=".3">
|
15 |
-
<path fill="#F5944C" d="M-9.2 262.6c0-88.2 0-176.5-.1-264.7 0-3.5.7-4.2 4.2-4.2 91.8.1 183.5.1 275.3.1 1.1 2.1 2.1 4.3 3.2 6.4 8.2 15.5 14.6 31.6 20.2 48.2-1.4 1.5-3.8 3.1-5 4.7-8.3 10.8-18.2 20-27.5 29.9-15.4 16.4-32.2 31.3-49.8 45.4-32.4 26-67.5 48-102.4 70.4-14.6 9.4-29.6 18.2-44.4 27.3-17.3 10.6-35.2 20.2-53.5 28.8-6.6 2.9-13.1 6.2-20.2 7.7z"/>
|
16 |
-
<path fill="#EF6E44" d="M293.8 51c-.1-.3-.1-2.5-.3-2.7-1.3 1.2-4 3.4-5.1 4.8-6.6 8.5-18.2 20-27.4 29.8-15.4 16.4-32.2 31.3-49.8 45.4-32.4 26-67.5 48-102.4 70.4-14.6 9.4-29.6 18.2-44.4 27.3-17.3 10.6-35.2 20.2-53.5 28.8-6.4 3-12.9 6.3-20 7.8 0 22.7.1 45.3-.1 68 0 .9.1 1.5.3 2h96.3c5.1-4 10.9-6.7 16.4-10 34.9-20.8 65.9-46.9 97.9-71.8 33.7-32.4 68.1-65 85.7-108.8 5.6-13.9 8.8-28.4 10.1-43.5 1.3-16.6-.5-31.5-3.7-47.5z"/>
|
17 |
-
<path opacity=".6" fill="#FFD059" d="M329.2-6.2h-59c1.1 2.1 2.1 4.3 3.2 6.4 7.8 14.9 14.8 32.3 20.2 48.2 1.3-2 2.1-3.5 3.3-5 4-4.9 7.8-10 11.7-15 7.6-9.7 13.9-20.3 20.7-30.5"/>
|
18 |
-
</g>
|
19 |
-
</g>
|
20 |
-
<path fill-rule="evenodd" clip-rule="evenodd" fill="#FFF" stroke="#FFF" stroke-miterlimit="10" d="M286.3 191.7c1 0 2-.1 3-.2.9-.1 1.7-.3 2.3-.5v4.4c-.6.3-1.5.6-2.8.7-1.2.2-2.3.3-3.3.3-7.4 0-11-3.9-11-11.6v-22.6H269v-2.8l5.5-2.4 2.4-8.1h3.3v8.8h11v4.5h-11v22.4c0 2.3.5 4.1 1.6 5.3 1.1 1.2 2.6 1.8 4.5 1.8m-35.6-29.9c-3.1 0-5.5 1-7.3 3-1.8 2-2.9 4.7-3.2 8.3h19.9c0-3.6-.8-6.4-2.4-8.4-1.6-1.9-3.9-2.9-7-2.9zm1.6 34.7c-5.6 0-10.1-1.7-13.3-5.1-3.3-3.4-4.9-8.2-4.9-14.3 0-6.1 1.5-11 4.5-14.6 3-3.6 7.1-5.4 12.2-5.4 4.8 0 8.5 1.6 11.3 4.7 2.8 3.1 4.2 7.3 4.2 12.4v3.6h-26.2c.1 4.5 1.2 7.9 3.4 10.2 2.1 2.3 5.2 3.5 9 3.5 4.1 0 8.1-.9 12.2-2.6v5.1c-2 .9-4 1.5-5.8 1.9-1.8.4-4 .6-6.6.6zm-21.6-11.1c0 3.5-1.3 6.3-4 8.2-2.6 1.9-6.3 2.9-11.1 2.9-5 0-9-.8-11.8-2.4v-5.3c1.8.9 3.8 1.7 5.9 2.2 2.1.5 4.1.8 6.1.8 3 0 5.3-.5 6.9-1.4 1.6-1 2.4-2.4 2.4-4.4 0-1.5-.6-2.8-1.9-3.8-1.3-1.1-3.8-2.3-7.5-3.7-3.5-1.3-6.1-2.5-7.6-3.5s-2.6-2.1-3.3-3.4c-.7-1.3-1.1-2.7-1.1-4.5 0-3.1 1.3-5.5 3.8-7.3 2.5-1.8 6-2.7 10.4-2.7 4.1 0 8.1.8 12 2.5l-2 4.7c-3.8-1.6-7.3-2.4-10.4-2.4-2.7 0-4.8.4-6.2 1.3-1.4.9-2.1 2-2.1 3.5 0 1 .3 1.9.8 2.6.5.7 1.4 1.4 2.5 2 1.2.6 3.4 1.6 6.7 2.8 4.5 1.6 7.6 3.3 9.2 5 1.5 1.7 2.3 3.8 2.3 6.3zm-33 10.4H192v-54h5.8v54zm-39.3-19.1c0 4.9 1 8.6 2.9 11.1s4.8 3.8 8.6 3.8 6.6-1.3 8.6-3.8 2.9-6.2 2.9-11.1c0-4.8-1-8.5-2.9-11-2-2.5-4.8-3.8-8.7-3.8-3.8 0-6.6 1.2-8.5 3.7-1.9 2.5-2.9 6.2-2.9 11.1zm29 0c0 6.2-1.6 11.1-4.7 14.5-3.1 3.5-7.4 5.2-13 5.2-3.4 0-6.4-.8-9.1-2.4-2.6-1.6-4.7-3.9-6.1-6.9-1.4-3-2.2-6.5-2.2-10.5 0-6.2 1.6-11 4.7-14.5s7.4-5.2 12.9-5.2c5.3 0 9.6 1.8 12.7 5.3 3.2 3.7 4.8 8.5 4.8 14.5zm-68.1 0c0 4.9 1 8.6 2.9 11.1s4.8 3.8 8.6 3.8 6.6-1.3 8.6-3.8 2.9-6.2 2.9-11.1c0-4.8-1-8.5-2.9-11-2-2.5-4.8-3.8-8.7-3.8-3.8 0-6.6 1.2-8.5 3.7-2 2.5-2.9 6.2-2.9 11.1zm29 0c0 6.2-1.6 11.1-4.7 14.5-3.1 3.5-7.4 5.2-13 5.2-3.4 0-6.4-.8-9.1-2.4-2.6-1.6-4.7-3.9-6.1-6.9-1.4-3-2.2-6.5-2.2-10.5 0-6.2 1.6-11 4.7-14.5s7.4-5.2 12.9-5.2c5.3 0 9.6 1.8 12.7 5.3 3.2 3.7 4.8 8.5 4.8 14.5zm-50.2 19.1h-5.9v-45.5H84V145h30.2v5.2H98.1v45.6zm-14.7-.5H28.5v-50.6h9.1v-9.1h15.9v9.1h7.4v-9.1h15.9V150h-5.1v-9.3H66v9.1H48.4v-9.1h-5.7v9.1h-9.1v40.4h49.8v5.1z"/>
|
21 |
-
<g>
|
22 |
-
<path fill="#FFD059" d="M286.9 28.9V16.3h-12.5v12.5h-12.5V16.3h-12.5v12.5h-12.5v62.6h62.6V28.9h-12.6zm-42.8 20.6c0-.6.4-1.2.6-1.4.2-.2.9-.4 1.6-.4h1.3c.9 0 1.5.1 1.8-.1.3-.2.5-.6.7-1.4l.2-.9c.2-.6.4-1.2.7-1.3.3-.2.9-.4 1.8-.4h7.6c.8 0 1.3.3 1.5.4.2.2.4.7.6 1.3l.2 1c.2.8.4 1.1.7 1.3.3.2 1.1.1 2.4.1h14.3c1 0 1.4.8 1.4 1.9v2.3h-23.9c-1.5 0-2.4-.1-2.8.2-.4.2-1.1.9-1.8 2.1l-9.1 17.2V49.5zm49.1 7.1l-9.1 18.2h-36.9l9.4-18.3c.3-.6.6-1.1.9-1.2.3-.2.9-.3 1.7-.3h33.3c.8 0 1.2.2 1.3.5-.1 0-.3.4-.6 1.1z"/>
|
23 |
-
</g>
|
24 |
-
</svg>
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
vendor/otgs/icons/plugin-icons/toolset/views/icon-128x128.png
DELETED
Binary file
|
vendor/otgs/icons/plugin-icons/toolset/views/icon-256x256.png
DELETED
Binary file
|
vendor/otgs/icons/plugin-icons/toolset/views/icon.svg
DELETED
@@ -1,27 +0,0 @@
|
|
1 |
-
<svg xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" viewBox="0 0 320 320">
|
2 |
-
<defs>
|
3 |
-
<path id="a" d="M312.5 317.5H7.5c-2.8 0-5-2.2-5-5V7.5c0-2.8 2.2-5 5-5h305c2.8 0 5 2.2 5 5v305c0 2.8-2.2 5-5 5z"/>
|
4 |
-
</defs>
|
5 |
-
<clipPath id="b">
|
6 |
-
<use xlink:href="#a" overflow="visible"/>
|
7 |
-
</clipPath>
|
8 |
-
<g clip-path="url(#b)">
|
9 |
-
<linearGradient id="c" gradientUnits="userSpaceOnUse" x1="160.009" y1="332.14" x2="160.009" y2="-6.196">
|
10 |
-
<stop offset="0" stop-color="#d63900"/>
|
11 |
-
<stop offset="1" stop-color="#f05a29"/>
|
12 |
-
</linearGradient>
|
13 |
-
<path fill="url(#c)" d="M-9.2-6.2h338.3v338.3H-9.2z"/>
|
14 |
-
<g opacity=".3">
|
15 |
-
<path fill="#F5944C" d="M-9.2 262.6c0-88.2 0-176.5-.1-264.7 0-3.5.7-4.2 4.2-4.2 91.8.1 183.5.1 275.3.1 1.1 2.1 2.1 4.3 3.2 6.4 8.2 15.5 14.6 31.6 20.2 48.2-1.4 1.5-3.8 3.1-5 4.7-8.3 10.8-18.2 20-27.5 29.9-15.4 16.4-32.2 31.3-49.8 45.4-32.4 26-67.5 48-102.4 70.4-14.6 9.4-29.6 18.2-44.4 27.3-17.3 10.6-35.2 20.2-53.5 28.8-6.6 2.9-13.1 6.2-20.2 7.7z"/>
|
16 |
-
<path fill="#EF6E44" d="M293.8 51c-.1-.3-.1-2.5-.3-2.7-1.3 1.2-4 3.4-5.1 4.8-6.6 8.5-18.2 20-27.4 29.8-15.4 16.4-32.2 31.3-49.8 45.4-32.4 26-67.5 48-102.4 70.4-14.6 9.4-29.6 18.2-44.4 27.3-17.3 10.6-35.2 20.2-53.5 28.8-6.4 3-12.9 6.3-20 7.8 0 22.7.1 45.3-.1 68 0 .9.1 1.5.3 2h96.3c5.1-4 10.9-6.7 16.4-10 34.9-20.8 65.9-46.9 97.9-71.8 33.7-32.4 68.1-65 85.7-108.8 5.6-13.9 8.8-28.4 10.1-43.5 1.3-16.6-.5-31.5-3.7-47.5z"/>
|
17 |
-
<path opacity=".6" fill="#FFD059" d="M329.2-6.2h-59c1.1 2.1 2.1 4.3 3.2 6.4 7.8 14.9 14.8 32.3 20.2 48.2 1.3-2 2.1-3.5 3.3-5 4-4.9 7.8-10 11.7-15 7.6-9.7 13.9-20.3 20.7-30.5"/>
|
18 |
-
</g>
|
19 |
-
</g>
|
20 |
-
<path fill-rule="evenodd" clip-rule="evenodd" fill="#FFF" stroke="#FFF" stroke-miterlimit="10" d="M286.3 191.7c1 0 2-.1 3-.2.9-.1 1.7-.3 2.3-.5v4.4c-.6.3-1.5.6-2.8.7-1.2.2-2.3.3-3.3.3-7.4 0-11-3.9-11-11.6v-22.6H269v-2.8l5.5-2.4 2.4-8.1h3.3v8.8h11v4.5h-11v22.4c0 2.3.5 4.1 1.6 5.3 1.1 1.2 2.6 1.8 4.5 1.8m-35.6-29.9c-3.1 0-5.5 1-7.3 3-1.8 2-2.9 4.7-3.2 8.3h19.9c0-3.6-.8-6.4-2.4-8.4-1.6-1.9-3.9-2.9-7-2.9zm1.6 34.7c-5.6 0-10.1-1.7-13.3-5.1-3.3-3.4-4.9-8.2-4.9-14.3 0-6.1 1.5-11 4.5-14.6 3-3.6 7.1-5.4 12.2-5.4 4.8 0 8.5 1.6 11.3 4.7 2.8 3.1 4.2 7.3 4.2 12.4v3.6h-26.2c.1 4.5 1.2 7.9 3.4 10.2 2.1 2.3 5.2 3.5 9 3.5 4.1 0 8.1-.9 12.2-2.6v5.1c-2 .9-4 1.5-5.8 1.9-1.8.4-4 .6-6.6.6zm-21.6-11.1c0 3.5-1.3 6.3-4 8.2-2.6 1.9-6.3 2.9-11.1 2.9-5 0-9-.8-11.8-2.4v-5.3c1.8.9 3.8 1.7 5.9 2.2 2.1.5 4.1.8 6.1.8 3 0 5.3-.5 6.9-1.4 1.6-1 2.4-2.4 2.4-4.4 0-1.5-.6-2.8-1.9-3.8-1.3-1.1-3.8-2.3-7.5-3.7-3.5-1.3-6.1-2.5-7.6-3.5s-2.6-2.1-3.3-3.4c-.7-1.3-1.1-2.7-1.1-4.5 0-3.1 1.3-5.5 3.8-7.3 2.5-1.8 6-2.7 10.4-2.7 4.1 0 8.1.8 12 2.5l-2 4.7c-3.8-1.6-7.3-2.4-10.4-2.4-2.7 0-4.8.4-6.2 1.3-1.4.9-2.1 2-2.1 3.5 0 1 .3 1.9.8 2.6.5.7 1.4 1.4 2.5 2 1.2.6 3.4 1.6 6.7 2.8 4.5 1.6 7.6 3.3 9.2 5 1.5 1.7 2.3 3.8 2.3 6.3zm-33 10.4H192v-54h5.8v54zm-39.3-19.1c0 4.9 1 8.6 2.9 11.1s4.8 3.8 8.6 3.8 6.6-1.3 8.6-3.8 2.9-6.2 2.9-11.1c0-4.8-1-8.5-2.9-11-2-2.5-4.8-3.8-8.7-3.8-3.8 0-6.6 1.2-8.5 3.7-1.9 2.5-2.9 6.2-2.9 11.1zm29 0c0 6.2-1.6 11.1-4.7 14.5-3.1 3.5-7.4 5.2-13 5.2-3.4 0-6.4-.8-9.1-2.4-2.6-1.6-4.7-3.9-6.1-6.9-1.4-3-2.2-6.5-2.2-10.5 0-6.2 1.6-11 4.7-14.5s7.4-5.2 12.9-5.2c5.3 0 9.6 1.8 12.7 5.3 3.2 3.7 4.8 8.5 4.8 14.5zm-68.1 0c0 4.9 1 8.6 2.9 11.1s4.8 3.8 8.6 3.8 6.6-1.3 8.6-3.8 2.9-6.2 2.9-11.1c0-4.8-1-8.5-2.9-11-2-2.5-4.8-3.8-8.7-3.8-3.8 0-6.6 1.2-8.5 3.7-2 2.5-2.9 6.2-2.9 11.1zm29 0c0 6.2-1.6 11.1-4.7 14.5-3.1 3.5-7.4 5.2-13 5.2-3.4 0-6.4-.8-9.1-2.4-2.6-1.6-4.7-3.9-6.1-6.9-1.4-3-2.2-6.5-2.2-10.5 0-6.2 1.6-11 4.7-14.5s7.4-5.2 12.9-5.2c5.3 0 9.6 1.8 12.7 5.3 3.2 3.7 4.8 8.5 4.8 14.5zm-50.2 19.1h-5.9v-45.5H84V145h30.2v5.2H98.1v45.6zm-14.7-.5H28.5v-50.6h9.1v-9.1h15.9v9.1h7.4v-9.1h15.9V150h-5.1v-9.3H66v9.1H48.4v-9.1h-5.7v9.1h-9.1v40.4h49.8v5.1z"/>
|
21 |
-
<g>
|
22 |
-
<g fill="#FFD059">
|
23 |
-
<path d="M286 30.3v-12h-12v12h-12v-12h-12v12h-12v60h60v-60h-12zm-39.3 30.2s19.4-26.3 43.2 0c-.1 0-19.4 27-43.2 0z"/>
|
24 |
-
<path d="M268.2 52.5c-4.5 0-8.1 3.6-8.1 8.1s3.6 8.1 8.1 8.1 8.1-3.6 8.1-8.1c.1-4.5-3.6-8.1-8.1-8.1zm0 13.5c-3 0-5.4-2.4-5.4-5.4 0-3 2.4-5.4 5.4-5.4 3 0 5.4 2.4 5.4 5.4 0 3-2.4 5.4-5.4 5.4z"/>
|
25 |
-
</g>
|
26 |
-
</g>
|
27 |
-
</svg>
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
vendor/otgs/icons/plugin-icons/wpml/acfml/icon-128.x128.png
DELETED
Binary file
|
vendor/otgs/icons/plugin-icons/wpml/acfml/icon-256x256.png
DELETED
Binary file
|
vendor/otgs/icons/plugin-icons/wpml/acfml/icon.svg
DELETED
@@ -1,43 +0,0 @@
|
|
1 |
-
<svg xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" id="icon" viewBox="0 0 320 320">
|
2 |
-
<style>
|
3 |
-
.st0{clip-path:url(#SVGID_2_)}.st1{fill:url(#bg_2_)}.st2{opacity:.15}.st3{fill:none}.st4,.st5{fill:#fff}.st5{stroke:#fff;stroke-width:.75;stroke-miterlimit:10}.st6{fill:#29a8e0}
|
4 |
-
</style>
|
5 |
-
<defs>
|
6 |
-
<path id="SVGID_1_" d="M312.5 317.5H7.5c-2.8 0-5-2.2-5-5V7.5c0-2.8 2.2-5 5-5h305c2.8 0 5 2.2 5 5v305c0 2.8-2.2 5-5 5z"/>
|
7 |
-
</defs>
|
8 |
-
<clipPath id="SVGID_2_">
|
9 |
-
<use overflow="visible" xlink:href="#SVGID_1_"/>
|
10 |
-
</clipPath>
|
11 |
-
<g class="st0">
|
12 |
-
<g id="bg_1_">
|
13 |
-
<g id="mask">
|
14 |
-
<linearGradient id="bg_2_" x1="321" x2="-1" y1="161.1" y2="161.1" gradientTransform="matrix(1 0 0 -1 0 321)" gradientUnits="userSpaceOnUse">
|
15 |
-
<stop offset="0" stop-color="#33879e"/>
|
16 |
-
<stop offset=".29" stop-color="#3389a1" stop-opacity=".82"/>
|
17 |
-
<stop offset=".52" stop-color="#318dab" stop-opacity=".69"/>
|
18 |
-
<stop offset=".72" stop-color="#2f96bb" stop-opacity=".57"/>
|
19 |
-
<stop offset=".91" stop-color="#2ba1d2" stop-opacity=".45"/>
|
20 |
-
<stop offset="1" stop-color="#29a8e0" stop-opacity=".4"/>
|
21 |
-
</linearGradient>
|
22 |
-
<path id="bg" d="M-1-.3h322v320.5H-1V-.3z" class="st1"/>
|
23 |
-
<g>
|
24 |
-
<g id="earth" class="st2">
|
25 |
-
<path d="M18 299.1c-9.1 10.7-9.1 10.7 3.7 20.9v.1h84.5l39.6-16.1-73.4-52.6c0 .6-.3 1.5-1 2.7.3.9 1 1.7 1.1 2.7 0 .2-.1.5-.2.6-.7 1.2-1.7 2.2-2.4 3.4-.3.5-.2 1.1-.5 1.7-.1.1-.1.2-.2.2-1.1 1.1-2.2 1-3.7.8-.7-.1-1.9-.2-2.8.1.3 0 .7 0 1.1.3.4.3.6.8.9 1.5.5 1.4.4 3.1-.8 3.3-1.3.2-4.3-3.5-4.6-4.6v-.1c-.5-1.6.3-2.9 1-4.1.6-1.1.8-1.8.3-3.6-.4-1.5-1.2-3.1-1.6-3.9-.5-1-.9-1.6-.9-2 0-.1.1-.2.1-.4.4-.2.9-.2 3.7 1.1 2.7 1.1 9 3.8 9.6 2.9-.2-.7-.7-2.8.2-3.3L57 240.4c.7.7 1.4 1.3 2 2 1.1 1.2.9 1.8.9 2-.2.8-.8.4-1.9-.2-.7-.4-.9-.3-1.1 0-.3.7.3 1.4 0 2-1.6-1.2-5.4-7.3-8.2-11.9l-3.3-2.4-.2-.1-2.4 1.7c.7 1.6 1.4 3.2 1.6 4.7.4 1.9 1.9 10.9-.8 21.9-.2 1.1-.6 2.3-1 3.4-1.5 4.7-7.8 2.2-9.6 6.4-.7 1.6-1 3.3-1.1 5.1-.2 2-.3 4.2-.9 6.1l5.5 10.7c2.5 2 4.9 4.2 5.5 7.8.2 1.3.3 2.3.1 3-.6 1.9-2.8 2.8-8 5-2.8-4.2-1.6-10.2-5.9-13.7-.7.1-1.5.2-2.2.4-.1 0-.2 0-.2.1-3-2-1.5-7.3-5.9-8.3-1.5-.3-1.5-.3-8.5 5.1l-1.1-.6c-.5-2.4-.3-4.9-.6-7.3l-.3 13.1c2.9-.4 7.1-.7 8.6 2.7zm31.1 7.8c1.4-2.4 1.9-3.3 3.8-5.9 2-2.7 5.6-1.6 8-3.3 3.4-2.4-.7-6.1 1.5-8.6 3.3 1.6 3.3 1.6 4.2-.2 0-.1 2.1-4.7-.5-11.4-1-2.4-1.5-3.9-1.8-5.1-.3-1.4-.2-2.2.2-3.3 2.2-1.1 4.1.6 5.6 2.8 2.2 3.3 3.5 7.9 3.5 8 1.9 10.4 2.6 14.5 2.8 16.2.1 1.1 0 1.2-.2 1.4-.1 0-.2 0-.2-.1-.5-.2-.9-.4-1.6-1.2-.6 1.1-.4 2.7-1.7 3.4-1.6 1-4 .5-5 2.5-.7 1.5-.7 3.3-2 4.5-.1.1-1.2.7-2.3-.3-1.2-1.1-1.1-5.2-3.1-3.9-.2 1.7 1.1 2.9 1.4 4.6-1.3 1.4-3.2 2.1-4 3.9-5.2-1.1-.8-4.9.6-6.1-6.1 2-6.7 2.8-6.9 3.3 1 2.5 3 4.5 4 7.1.3 1 .3 2.5-.2 3.4-1.5 2.5-3.1 1.9-4.3.6-.8-.9-1.3-2-1.6-3.1l-1.1-2v.2c-.4-.4-.8-1-.9-2 0-1.3.3-2.8 1.8-5.4zm16.5-21.7c.2 0 .5.2.5.5s-.2.5-.3.6c-.5-.4-.6-.7-.2-1.1zM52.2 184.4c-1-2.1-1.9-4.2-2.7-6.4-1.1-2.9-2.3-5.8-3.4-8.6-3.2-7.9-6.7-15.7-12.3-22.1-.4.1-.9.2-1.2.2 1.9 3.2 3.7 4.2 4.4 4.7 1.3 5.6 1.3 5.6.5 7.2-2-.8-2.4-3.7-4.7-4.2-.9-.2-2.8 1.1-3.5 3.7-.8 2.9.1 7.2 6.2 12.5 0 .1-.7 2.4-3.2 5-6.4-2.9-6.4-2.9-7-2.8-.4.7-.6 1.8-.5 2.6-.2.2-.5.2-.7.4-10 5.3-10.1 5.4-10.3 6-1.3 3.7-1.2 7.3-.9 11l39.3-9.2z" class="st3"/>
|
26 |
-
<path d="M62.8 263.8c-.1 0-.2.1-.2.1 0-.1.1-.1.2-.1zM18.1 103.7c.1 0 .2 0 .2.1l-.2-.2v.1zM163.8 318.1l-9.3-24.8c-1.2.3-2.4.3-3.6 0l-1.2 3.4-2.5 7.1 9.5 8.1 7.1 6.2zM91.3 78.1L37 52.1l103.4 64.7zM84 121.3L43.8 67 33.6 53.2c-.3.3-.6.6-1.1.8l33.3 126.2L84 121.3zM125.7 172.4c.5 1 .7 2 .6 3.1l2.3.3 62.5 8.6-41-57.8c-.2.2-.5.2-.7.4-1.7.7-3.5.7-5.1.1L123 169.6c1.2.6 2.2 1.5 2.7 2.8zM66.3 181.3l47.3-5.9c-.1-2.1.8-4.2 2.5-5.5l-31.5-47.7-18.3 59.1zM113.7 176.2l-47.2 5.9L149 282c.3-.2.7-.5 1.1-.7.2-.1.3-.2.5-.2l-29.3-100c-2.8.7-5.9-.7-7.2-3.5-.2-.4-.3-.9-.4-1.4zM51.5 227.9c.2.2.4.5.6.7.1.4.2.6 0 1.2l95.3 54c.2-.4.6-.8 1-1.1L129.8 260l-61-74.1c.5.9 1 1.9 1.3 2.9-.2.3-.4.7-.6 1-.1.1-.1.2-.2.2 4.4 14.4 5.5 18.4 5.7 19.7.1.5 0 .7-.1.9-6.1-3-10.6-7.1-14.3-11.8a56.8 56.8 0 0 1-6.7-11L17.5 205c.7 1.6.6 3.3-.1 4.9.9.4 1.9.8 2.7 1.4.2-.3.6-.7.8-1l1.3 2.1c2.2-.6 2.9-3.8 5.9-3 1.9.6 3.2 1.8 4.3 3.1l.7-1.8c-.4-1.3-.8-2.6-1.3-3.8.7.3 1.2.7 2.3 1.6 2.2 1.9 6.6 6.5 17.4 19.4zM77 239.2c.2-.1.6 0 .7.5.1.5-.4 2.5-.8 2.3-.5-.2-.7-2.4.1-2.8zM142 300.2l4.6 3.3 3.7-10.3c-1.4-.6-2.5-1.7-3.3-3.2-.8-1.8-.7-3.8.1-5.4l-3-1.7L75.6 244v.1c.1.3-.1 1-.3 1.8-.4 1.1-1 2.3-1.4 3.4 0-.2-.1-.2-.1-.4-.3-1.6-.5-2.5-.3-3.4.2-1.3.9-1.6 1.2-1.7.2 0 .2-.1.4-.1l-23.2-13.1c-.6 3-.2 4.2 1.3 6l88.8 63.6zM135.7 320.1l9.9-15.2-37.4 15.2zM212.4 250.1l-54.2 34.1c.1.1.2.2.2.4 1.5 3.2.1 6.9-3.1 8.4l9.6 25.6 48.7-67.3c-.5-.3-.9-.7-1.2-1.2zM9.1 296.9l.3-14.4c-.2 0-.6.1-.7.2-2.4 1.3-5.3 4.9-6.6 8.3l1.6 6.9c1 .5 2.4.7 4.2.7-.1-.3-.2-.8-.2-1.2.2-.1.7-.3 1.4-.5zM18.9 100.2c6.3 2.8 14.3 11.2 14.4 11.3.1.2-.1.5 0 .7-.3.1-.8.2-1.2.3l-.7.8c-.8-.1-2-.6-2.7-1-.1.8-.6 1.8-1.1 2.4-.8-.4-1.9-.8-2.7-1.1 3.3 4 8.8 6.1 10 11.8 12.8 5.1 13.7 6.9 15 9.5-4.1 3.1-2.1 6.7.2 10.4 1.8 2.8 3.8 5.5 3.7 8.4-1.4.1-2.8-.2-4.2-.1-.4 1.4 0 2.9-.6 4.2-.3-.1-.8-.1-1.1-.2l-.1.6c.7 5.5 3.5 9.5 7 13.1 3.3 3.3 7.2 6.3 10.2 9.8L31.7 54.5c-.7.3-1.5.5-2.2.5l-3.4 14.5-7.2 30.7zm34.9 67.4c-2-1-2.4-4.3-1.5-4.5.1 0 .3 0 .6.7.6 1.2 1.1 3.7 1.1 4 0-.1-.1-.2-.2-.2zM163.5 320.1l.7-.6-17.4-14.8-10.1 15.4zM17.3 103.5l.2-.7c-.8-.8-1.6-1.6-2.2-2.4.3-.2.7-.7 1.1-.9.6.1 1.2.2 1.8.5L22 83.3 28.7 55c-3.5-.3-6.1-3.4-5.8-6.9 0-.3.1-.6.2-1M124.8 179.1c-.6.7-1.3 1.3-2.2 1.7-.2.1-.3.2-.5.2l29.3 100c2.4-.6 5 .4 6.5 2.4l54.2-34.1c-.1-.1-.2-.2-.2-.4-.9-2-.7-4.3.4-6l-87.5-63.8zM191.6 185.3l-65.5-9.1c-.2.7-.4 1.5-.8 2.1l73.5 53.7 14 10.2c.6-.7 1.2-1.2 2-1.6l-23.2-55.3zM17 204.2l36.3-17.1c-.3-.7-.6-1.2-.9-1.9l-39.5 9.1c.2 2.4.6 4.7.6 7 1.6.5 2.8 1.5 3.5 2.9zM140.3 121.6H85.2l31.6 47.8.5-.2c1.7-.7 3.5-.7 5.1-.1l21.1-42.4a6.69 6.69 0 0 1-3.2-5.1zM84.7 120.8h55.7c.1-.9.3-1.8.7-2.6L34.8 51.7c-.2.3-.4.7-.6 1l18.3 24.6 32.2 43.5zM225.2 320.1l-7.4-67.4c-1.3.1-2.6-.3-3.7-1l-17.6 24.4-31.2 43.2 2 .8h57.9z" class="st3"/>
|
27 |
-
<path d="M18.3 299c-1.5-3.4-5.7-3.1-8.4-2.4l.3-13.1c.2 2.4.1 4.9.6 7.3l1.1.6c7-5.5 7-5.5 8.5-5.1 4.5 1 2.9 6.3 5.9 8.3.1 0 .2 0 .2-.1.6-.2 1.5-.3 2.2-.4 4.3 3.5 3.2 9.5 5.9 13.7 5.2-2.2 7.4-3.1 8-5 .2-.8.2-1.7-.1-3-.7-3.5-3-5.7-5.5-7.8l-5.5-10.7c.5-2 .6-4.1.9-6.1.2-1.8.5-3.5 1.1-5.1 1.8-4.2 8.1-1.7 9.6-6.4.4-1.1.6-2.3 1-3.4 2.7-11 1.1-20.1.8-21.9-.3-1.6-.9-3.1-1.6-4.7l2.4-1.7.2.1 3.3 2.4c2.8 4.6 6.6 10.7 8.2 11.9.2-.7-.4-1.4 0-2 .2-.3.3-.4 1.1 0 1.1.6 1.7 1 1.9.2.1-.2.2-.8-.9-2-.6-.7-1.3-1.4-2-2L72.1 251c-.8.5-.4 2.5-.2 3.3.6-1.2.9-2.1 1-2.7l73.4 52.6-39.8 16.2h1.9l37.4-15.2-9.9 15.2h1l10.1-15.5 17.4 14.9-.6.6h3.9l-2-.8 31.2-43.2 17.6-24.4c1.1.7 2.4 1.1 3.7 1l7.4 67.4h.9l-7.4-67.5a6.33 6.33 0 0 0 4.6-8.9c-1.4-3-4.7-4.4-7.8-3.3l-23.2-55.6v-.1l-41.6-58.6c2.7-2.2 3.2-6.1 1.1-8.9a6.2 6.2 0 0 0-7.6-1.8c-.8.4-1.5.9-2.1 1.6L91.7 77.5l-56.3-27c.4-1.5.3-3-.3-4.5 1.3-3.3-.3-7-3.5-8.3-3.2-1.3-6.9.3-8.2 3.5-.7 1.6-.6 3.5.1 5.1l-24-6.5v.7L23.1 47a6.5 6.5 0 0 0 4.6 7.8c.3.1.6.1 1 .2L22 83.3l-3.9 16.6c-.7-.2-1.2-.4-1.8-.5-.3.2-.7.7-1.1.9.7.9 1.5 1.6 2.2 2.4l-.2.7c-10.8-2.3-13.6-2.8-17.8-1.7v-.1c.2 72.8.6 145.6.8 218.4m8.9-23.1c-.7.2-1.2.4-1.4.5.1.3.2.8.2 1.2-1.9.1-3.3-.2-4.2-.7L2.1 291c1.3-3.4 4.2-7 6.5-8.3.2-.1.5-.2.7-.2l-.2 14.4zm4.5-114.4c.4-.7.5-.8 10.3-6 .2-.2.5-.2.7-.4-.1-.8.1-2 .5-2.6.7-.1.7-.1 7 2.8 2.4-2.5 3.2-4.9 3.2-5-6.1-5.2-7-9.6-6.2-12.5.7-2.5 2.7-3.8 3.5-3.7 2.4.6 2.6 3.3 4.7 4.2.8-1.6.8-1.6-.5-7.2-.7-.4-2.5-1.5-4.4-4.7.4-.1.9-.2 1.2-.2 5.6 6.4 9.1 14.1 12.3 22.1 1.1 2.9 2.3 5.8 3.4 8.6.9 2.2 1.8 4.3 2.7 6.4l-39.3 9.1c-.3-3.6-.4-7.3.9-10.9zm.1 18.8c-.2-2.4-.4-4.7-.7-7l39.6-9.1c.3.7.6 1.3.9 1.9l-36.4 17.1c-.8-1.4-2-2.4-3.4-2.9zm32.5 30.2l.6-.5c.3.5.7 1.1 1 1.7l-1.6-1.2zM34 208.3c-1.1-.9-1.6-1.2-2.3-1.6.5 1.2.9 2.5 1.3 3.8l-.7 1.8c-1.1-1.4-2.4-2.6-4.3-3.1-2.9-.8-3.7 2.4-5.9 3l-1.3-2.1c-.2.3-.6.7-.8 1-.8-.6-1.7-1-2.7-1.4.6-1.5.7-3.3.1-4.9l36.3-17.1c2 3.9 4.1 7.7 6.7 11 3.7 4.8 8.3 8.9 14.4 11.9.1-.2.2-.4.1-.9-.2-1.4-1.4-5.3-5.7-19.7.1-.1.1-.2.2-.2.2-.3.4-.7.6-1-.3-1-.8-2-1.3-2.9l61 74.1 18.6 22.6c-.4.3-.6.7-1 1.1l-95.3-54c.2-.7.1-.8 0-1.2-.2-.2-.4-.5-.7-.7-10.7-13-15.1-17.6-17.3-19.5zM211.8 249c.1.2.2.2.2.4l-54.2 34.1c-1.5-2-4.1-3-6.5-2.4l-29.3-100c.2-.1.3-.1.5-.2.9-.4 1.6-1 2.2-1.7l87.4 63.9c-1 1.7-1.2 4-.3 5.9zm-61.2 32.2c-.2.1-.3.1-.5.2-.4.2-.7.4-1.1.7L66.5 182l47.2-5.9c.1.5.2 1 .5 1.5 1.3 2.8 4.3 4.2 7.2 3.6l29.2 100zm-37-105.8l-47.3 5.9 18.3-59.1 31.5 47.7a6.55 6.55 0 0 0-2.5 5.5zm32.8 127.9l-4.6-3.3-88.7-63.5c-1.5-1.8-2-3-1.3-6L75 243.7c-.1 0-.2.1-.4.1-.3.1-1.1.4-1.3 1.6-.1.9 0 1.9.4 3.4 0 .2.1.2.1.4.4-1.1 1-2.3 1.4-3.4.2-.8.4-1.5.3-1.8v-.1l68.5 38.8 3 1.7c-.8 1.6-.9 3.6-.1 5.4.6 1.5 1.9 2.6 3.3 3.2l-3.8 10.3zm10.2 8.8l-9.5-8.1 2.6-7.2 1.2-3.4c1.1.3 2.4.3 3.6 0l9.3 24.8-7.2-6.1zm8.3 6.5l-9.6-25.5c3.2-1.5 4.6-5.2 3.1-8.4-.1-.2-.2-.2-.2-.4l54.2-34.1c.3.4.6.8 1.1 1.1l-48.6 67.3zm49.9-77.9c-.8.4-1.5 1-2 1.6l-14-10.2-73.5-53.7c.4-.7.7-1.4.8-2.1l65.5 9.1 23.2 55.3zm-70.6-113.6c1.5.7 3.4.7 5.1-.1.2-.1.5-.2.7-.4l41 57.8-62.5-8.6-2.3-.3c.1-1.1-.1-2.1-.6-3.1a7.3 7.3 0 0 0-2.6-2.9l21.2-42.4zm-.7-.3l-21.1 42.4c-1.6-.7-3.5-.7-5.1.1l-.5.2-31.5-47.8h55.2c.1.7.2 1.6.6 2.2.4 1.2 1.3 2.2 2.4 2.9zM91.3 78.1l49.2 38.8L37 52.1l54.3 26zM34.8 51.7l106.4 66.6c-.4.8-.7 1.7-.7 2.6H84.7L52.4 77.4 34.2 52.7c.2-.4.4-.7.6-1zm-1.2 1.5L43.8 67 84 121.3l-18.3 58.9L32.4 54.1c.5-.3.9-.5 1.2-.9zm-4.1 1.7c.7 0 1.5-.2 2.2-.5L65.1 181c-3.1-3.4-7-6.4-10.2-9.8-3.4-3.5-6.3-7.5-7-13.1l.1-.6c.4.1.8.1 1.1.2.6-1.4.2-2.9.6-4.2 1.4-.2 2.8.2 4.2.1.1-2.8-2-5.6-3.7-8.4-2.4-3.7-4.4-7.3-.2-10.4-1.3-2.5-2.3-4.3-15-9.5-1.1-5.8-6.7-7.9-10-11.8.8.3 1.9.7 2.7 1.1.5-.6 1-1.6 1.1-2.4.7.4 1.8.8 2.7 1l.7-.8c.3-.1.8-.2 1.2-.3 0-.2.1-.5 0-.7-.1-.1-8-8.6-14.4-11.3l7-30.5 3.5-14.7z" class="st4"/>
|
28 |
-
<path d="M18.1 103.7v-.2l.2.2h-.2zM48.3 314v-.2l1.1 2c.2.9.8 2.2 1.6 3.1 1.2 1.4 2.8 2 4.3-.6.5-.9.5-2.4.2-3.4-.9-2.6-2.9-4.6-4-7.1.3-.5.8-1.3 6.9-3.3-1.5 1.1-5.9 5-.7 6.1.8-1.8 2.7-2.5 4-3.9-.2-1.6-1.6-2.8-1.4-4.6 2-1.3 1.9 2.8 3.1 3.9 1.1 1 2.1.5 2.3.3 1.2-1.2 1.2-3 2-4.5 1.1-2 3.4-1.6 5-2.5 1.3-.7 1.1-2.3 1.7-3.4.7.8 1.1 1.1 1.6 1.2.1 0 .2.1.2.1.2-.2.3-.3.2-1.4-.2-1.7-.9-5.8-2.8-16.2 0-.1-1.3-4.7-3.5-8-1.5-2.2-3.4-3.8-5.6-2.8-.4 1.1-.5 2.2-.2 3.3.2 1.1.8 2.7 1.8 5.1 2.6 6.7.5 11.3.5 11.4-.9 1.7-.9 1.7-4.2.2-2.2 2.6 1.9 6.4-1.5 8.6-2.4 1.7-6 .6-8 3.3-2 2.5-2.4 3.5-3.8 5.9-1.5 2.5-1.8 4.2-1.7 5.2.1 1.3.6 1.8.9 2.2zM53.8 167.6c.1 0 .1.1.2.1 0-.3-.5-2.8-1.1-4-.2-.6-.5-.6-.6-.6-.8.3-.5 3.6 1.5 4.5zM59 252.5c.4.7 1.2 2.4 1.6 3.9.5 1.8.2 2.6-.3 3.6-.6 1.1-1.4 2.4-1 4.1v.1c.3 1.1 3.3 4.8 4.6 4.6 1.2-.2 1.3-2 .8-3.3-.2-.6-.5-1.1-.9-1.5s-.7-.3-1.1-.3c1-.3 2.2-.2 2.8-.1 1.5.2 2.5.3 3.7-.8.1-.1.1-.2.2-.2.3-.5.2-1.1.5-1.7.7-1.2 1.8-2.2 2.4-3.4.1-.1.2-.3.2-.6-.1-1-.7-1.8-1.1-2.7-.7.8-6.9-1.7-9.6-2.9-2.8-1.2-3.3-1.2-3.7-1.1-.1.1-.2.2-.1.4.1.3.5.9 1 1.9z" class="st4"/>
|
29 |
-
<path d="M62.6 263.9c.1 0 .2-.1.2-.1-.1 0-.2 0-.2.1z" class="st4"/>
|
30 |
-
</g>
|
31 |
-
</g>
|
32 |
-
</g>
|
33 |
-
</g>
|
34 |
-
<path id="logo" d="M76.9 207.1c.9 1.8.8 4.6 1.7 6.4.6.3 1.3.6 1.8.9 7.6-1.1 7.8-10.2 3.9-14.6-1.8-1.7-4.5-2.5-7.8-1-16.8 7.2-32.9 2.6-42.6-7.5-5.3-5.3-8.8-12.1-9.8-19.5-2.6-23.5 16.6-38.4 29.8-40.1 11.8-1.4 23 2.8 30.5 10.4 8.1 8.1 12.5 20.3 9.9 34.4-1.1 6.4-4.9 14.5-13.5 14.5-3.4 0-6.8-1.5-9.2-4.1-2.3-2.2-3.7-5.2-3.9-8.4-.8-12.7 15.5-16.3 14.5-29-.1-2.3-1.1-4.2-2.8-6-4.9-4.7-14.9-6.5-23.9-4.7-11.2 2.3-21.9 12.5-23.9 24.8-1.6 10 2 21.2 9.3 28.9 6.5 6.5 16 10.1 27.5 7.3 3.8-.8 6.7-4.4 12.7-3.4 2.2.3 4 1.4 5.3 2.8 4.9 4.6 4.1 14.2-2.3 16.5-3.3 1.1-9.3.2-11.9-2.6l-.1-.1c-.3-.1-.6-.5-.9-.8-1-.8-1.7-2.5-1.6-4.4.1-2.6 1.8-4.7 3.8-4.5.8.1 1.5.5 2 1 .7.9 1.3 1.7 1.5 2.8m112.9-35.5c.7-.9 1-2 1.4-3.1.5-2.1.5-4.4-.1-6.4-.2-1.1-.7-2.3-1.4-3.1-.7-1-1.7-1.7-2.9-2.2-1.1-.6-2.5-.8-4.2-.8h-3.1a1 1 0 0 0-1 1v16.9c0 .6.5 1 1 1h2c2.2 0 4-.3 5.3-1 1.1-.2 2.3-1.1 3-2.3m9.2-7.3c0 2.3-.5 4.2-1.4 6-.8 1.7-2.1 3.1-3.7 4.2-1.6 1-3.1 2-5.1 2.5-2 .6-3.9.8-5.9.8h-3.7a1 1 0 0 0-1 1v11.9c0 .7.1 1.4.5 1.8.2.6.7.9 1.5 1.3.5.1 1 .2 2 .5.6.1 1 .1 1.6.2.6 0 1 .5 1 1s-.5 1-1 1h-16.3a1 1 0 0 1-1-1v-.1c0-.6.5-1 .9-1 .3 0 .7-.1 1.1-.1.9-.1 1.6-.2 2-.5a3 3 0 0 0 1.4-1.1c.2-.6.5-1.1.5-2v-31c0-.7-.1-1.4-.3-2-.2-.6-.7-1-1.4-1.3-.8-.2-1.6-.5-2.3-.6-.3 0-.7-.1-.9-.1-.6-.1-.9-.6-.9-1v-.1c0-.6.5-1 1-1H186c3.9 0 7.1.9 9.6 2.9l.1.1c2 2 3.3 4.6 3.3 7.7zm-36.8-8.4c-.6 0-1 .1-1.7.5-.7.2-1.1.5-1.7.8l-.1.1c-.7.5-1.1.9-1.7 1.5-.5.6-.7 1.4-1.1 2.4v.1c-1.4 4.7-3.1 10.1-4.9 16.4-1.7 6.1-3.8 12.4-5.9 19.3-.1.5-.6.8-1 .8h-1.3c-.5 0-.9-.3-1-.8l-9.5-29.4c-.1-.6-.8-.9-1.4-.7-.3.1-.6.3-.7.7l-10 29.4c-.1.5-.6.7-1 .7h-1c-.5 0-.9-.3-1-.8-2-6.9-3.9-13.9-6-21.3-2.2-7.7-3.6-12.7-4.2-15.4-.1-.6-.5-1-.7-1.6 0-.1-.1-.2-.1-.2-.8-1-2-1.7-3.2-2-.3-.1-.7-.1-.9-.2-.5-.1-.9-.6-.9-1v-.2c0-.6.5-1 1-1h15.4c.6 0 1 .5 1 1v.1c0 .6-.5 1-1 1-1.1.1-2.1.2-2.9.5-1 .2-1.6.6-1.6 1 0 .1 0 .5.1.8.1.2.1.6.1.8.5 1.8 1.4 4.7 2.5 8.8l4.2 15c.3 1 1.7 1 2.1 0l9.3-27.9c.1-.5.6-.7 1-.7h1.4c.5 0 .9.3 1 .8l9.4 28.6c.3 1 1.8 1 2.1 0l2.8-9.9c1-3.8 2-6.9 2.5-9.6.5-1.8.8-3.2.9-3.9.1-.7.1-1.3.1-1.8 0-.7-.5-1.3-1.4-1.7-.8-.5-2-.7-3.6-.8-.6-.1-1-.6-1-1 0-.6.5-1 1-1H161c.6 0 1 .5 1 1l.2.8zM292 184l-.8 11.8c0 .6-.5 1-1 1h-31.4a1 1 0 0 1-1-1v-.1c0-.6.5-1 .9-1 .3 0 .7-.1 1.1-.1.9-.1 1.6-.2 2-.5a3 3 0 0 0 1.4-1.1c.2-.6.5-1.1.5-2v-30.8c0-.7-.1-1.3-.5-1.8-.3-.6-.7-.9-1.4-1.3-.5-.2-1-.5-2-.7l-1.3-.3c-.5-.1-.9-.6-.9-1v-.2c0-.6.5-1 1-1h16c.6 0 1 .5 1 1v.1c0 .6-.3 1-.9 1-.3.1-.8.1-1.3.2-.9.1-1.6.5-2 .5-.7.2-1.1.6-1.4 1.3-.2.6-.5 1.3-.5 1.8v28.9c0 1.4.1 2.3.1 3.1.1.7.5 1.4.9 1.7.5.5 1.1.6 2.1.7s2.2.1 3.8.1c.8 0 1.6 0 2.3-.1.7 0 1.5-.1 2.3-.2h.1c.7-.1 1.3-.3 1.8-.5.6-.2.9-.5 1.3-.7.1 0 .1-.1.2-.2.8-.9 1.7-2.3 2.9-4.1.9-1.5 1.5-2.9 2-3.9.1-.5.6-.7 1-.7h1.6l.1.1zm-38.2 12.9H236a1 1 0 0 1 0-2c.5 0 1-.1 1.7-.2 1-.1 1.8-.3 2.2-.6.6-.5 1-.8 1.4-1.4.3-.5.5-1 .5-1.8v-31.3h-.5l-14.6 35.9c-.1.5-.6.7-1 .7-.5 0-.9-.2-1-.7L211 158.6h-.5v25.7c0 2.5.1 4.4.5 5.6.3 1.3.8 2.2 1.5 2.9.5.5 1.4.8 2.8 1.3.8.2 1.4.3 1.8.5.5.1.9.6.9 1v.1c0 .6-.5 1-1 1h-14.8c-.7 0-1.3-.7-1-1.4v-.1c.1-.3.5-.7.8-.7.5-.1.8-.2 1.5-.5 1-.2 1.8-.6 2.3-1 .7-.6 1.1-1.4 1.5-2.6.2-1.1.5-3.1.5-5.9v-22.2c0-1.3-.1-2.3-.5-3.1-.3-.8-.7-1.5-1.4-2-.6-.6-1.4-.9-2.2-1.3h-.1l-1.7-.3c-.6-.1-.9-.6-.9-1.1v-.1c0-.6.5-1 1-1h12.7c.5 0 .8.2 1 .7l11 28.9c.3.9 1.7.9 2.1 0l9.4-24.3c.5-1 .7-2 1-3.1v-.1l.3-1.3c.1-.5.6-.8 1-.8h12.1c.6 0 1 .5 1 1v.1c0 .6-.5 1-.9 1-.3 0-.8.1-1.1.2-.8.1-1.5.3-2 .5-.7.2-1.1.6-1.4 1.3-.2.6-.5 1.1-.5 1.8v31.1c0 .7.1 1.4.5 1.8.2.5.7.9 1.4 1.3.5.2 1 .5 2 .6.5.1.9.1 1.3.2.6.1.9.6.9 1v1.6z" class="st5"/>
|
35 |
-
</g>
|
36 |
-
<g class="st0">
|
37 |
-
<path d="M146.2 2.5h-.1l171.4 171.4.5-.5V2.5z" class="st6"/>
|
38 |
-
</g>
|
39 |
-
<g id="ACF">
|
40 |
-
<path d="M227.9 65.5c.7-1.9 1.3-3.7 1.9-5.5 3.1-8.8 6.3-17.6 9.4-26.4.1-.6.6-1 1.2-.9h6.4c.4-.1.9.2 1 .7 3.5 9.7 6.9 19.4 10.4 29.1.3.9.6 1.9.9 2.9h-6.8c-.3 0-.7-.4-.8-.7l-1.2-3.3c-.1-.4-.5-.8-.9-.7h-11.7c-.5-.1-1 .3-1.1.8-.4 1.2-.8 2.4-1.2 3.5-.1.2-.3.4-.6.5h-6.9zm19.8-11.6l-4.1-11.3h-.2l-4 11.3h8.3zM279.1 36.2c-3.3-2.7-7.6-3.9-11.9-3.4-5.3.6-9.3 3.3-12.2 7.8a3.9 3.9 0 0 0-.3 3.9c2.2 6 4.4 12 6.5 18.1.2.6.6 1.1 1.2 1.4 2.8 1.3 6 1.7 9.1 1.2 4.8-.7 9-3.5 11.4-7.6-1.4-1.4-2.8-2.7-4.2-4.1-.3-.3-.5-.7-.7-1.1-2.8 5.9-8.2 6.9-11.6 5.9a9.6 9.6 0 0 1-6.7-11.8 9.6 9.6 0 0 1 18.2-1l4.9-5.1c.1 0-2.5-3.4-3.7-4.2z" class="st4"/>
|
41 |
-
<path d="M283 54.1c-.3-.3-.5-.8-.5-1.2 0-2.2-.1-4.4 0-6.6 0-.5.3-1 .6-1.4l3-3c.5-.4.7-1.1.3-1.6 0 0 0-.1-.1-.1l-3.8-5c-.1-.8-.1-1.7 0-2.5h21.8v6.6h-15.1v7.4h14.5v6.7h-14.6v11.8h-6.7c-.2 0 0-1.6 0-1.7.2-.7 4.3-5.6 4.2-5.7l-3.6-3.7z" class="st4"/>
|
42 |
-
</g>
|
43 |
-
</svg>
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
vendor/otgs/icons/plugin-icons/wpml/bpml/icon-128x128.png
DELETED
Binary file
|
vendor/otgs/icons/plugin-icons/wpml/bpml/icon-256x256.png
DELETED
Binary file
|
vendor/otgs/icons/plugin-icons/wpml/bpml/icon.svg
DELETED
@@ -1,40 +0,0 @@
|
|
1 |
-
<svg xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" id="icon" viewBox="0 0 320 320">
|
2 |
-
<style>
|
3 |
-
.st0{clip-path:url(#SVGID_2_)}.st1{fill:url(#bg_2_)}.st2{opacity:.15}.st3{fill:none}.st4,.st5{fill:#fff}.st5{stroke:#fff;stroke-width:.75;stroke-miterlimit:10}.st6{fill:#f2bd2e}
|
4 |
-
</style>
|
5 |
-
<defs>
|
6 |
-
<path id="SVGID_1_" d="M312.5 317.5H7.5c-2.8 0-5-2.2-5-5V7.5c0-2.8 2.2-5 5-5h305c2.8 0 5 2.2 5 5v305c0 2.8-2.2 5-5 5z"/>
|
7 |
-
</defs>
|
8 |
-
<clipPath id="SVGID_2_">
|
9 |
-
<use overflow="visible" xlink:href="#SVGID_1_"/>
|
10 |
-
</clipPath>
|
11 |
-
<g class="st0">
|
12 |
-
<g id="bg_1_">
|
13 |
-
<g id="mask">
|
14 |
-
<linearGradient id="bg_2_" x1="321" x2="-1" y1="161.097" y2="161.097" gradientTransform="matrix(1 0 0 -1 0 321)" gradientUnits="userSpaceOnUse">
|
15 |
-
<stop offset="0" stop-color="#33879e"/>
|
16 |
-
<stop offset=".295" stop-color="#3389a1" stop-opacity=".823"/>
|
17 |
-
<stop offset=".52" stop-color="#318dab" stop-opacity=".688"/>
|
18 |
-
<stop offset=".722" stop-color="#2f96bb" stop-opacity=".567"/>
|
19 |
-
<stop offset=".909" stop-color="#2ba1d2" stop-opacity=".455"/>
|
20 |
-
<stop offset="1" stop-color="#29a8e0" stop-opacity=".4"/>
|
21 |
-
</linearGradient>
|
22 |
-
<path id="bg" d="M-1-.3h322v320.5H-1V-.3z" class="st1"/>
|
23 |
-
<g id="earth" class="st2">
|
24 |
-
<path d="M18 299.1c-9.1 10.7-9.1 10.7 3.7 20.9v.1h84.5l39.6-16.1-73.4-52.6c0 .6-.3 1.5-1 2.7.3.9 1 1.7 1.1 2.7 0 .2-.1.5-.2.6-.7 1.2-1.7 2.2-2.4 3.4-.3.5-.2 1.1-.5 1.7-.1.1-.1.2-.2.2-1.1 1.1-2.2 1-3.7.8-.7-.1-1.9-.2-2.8.1.3 0 .7 0 1.1.3.4.3.6.8.9 1.5.5 1.4.4 3.1-.8 3.3-1.3.2-4.3-3.5-4.6-4.6v-.1c-.5-1.6.3-2.9 1-4.1.6-1.1.8-1.8.3-3.6-.4-1.5-1.2-3.1-1.6-3.9-.5-1-.9-1.6-.9-2 0-.1.1-.2.1-.4.4-.2.9-.2 3.7 1.1 2.7 1.1 9 3.8 9.6 2.9-.2-.7-.7-2.8.2-3.3L57 240.4c.7.7 1.4 1.3 2 2 1.1 1.2.9 1.8.9 2-.2.8-.8.4-1.9-.2-.7-.4-.9-.3-1.1 0-.3.7.3 1.4 0 2-1.6-1.2-5.4-7.3-8.2-11.9l-3.3-2.4-.2-.1-2.4 1.7c.7 1.6 1.4 3.2 1.6 4.7.4 1.9 1.9 10.9-.8 21.9-.2 1.1-.6 2.3-1 3.4-1.5 4.7-7.8 2.2-9.6 6.4-.7 1.6-1 3.3-1.1 5.1-.2 2-.3 4.2-.9 6.1l5.5 10.7c2.5 2 4.9 4.2 5.5 7.8.2 1.3.3 2.3.1 3-.6 1.9-2.8 2.8-8 5-2.8-4.2-1.6-10.2-5.9-13.7-.7.1-1.5.2-2.2.4-.1 0-.2 0-.2.1-3-2-1.5-7.3-5.9-8.3-1.5-.3-1.5-.3-8.5 5.1l-1.1-.6c-.5-2.4-.3-4.9-.6-7.3l-.3 13.1c2.9-.4 7.1-.7 8.6 2.7zm31.1 7.8c1.4-2.4 1.9-3.3 3.8-5.9 2-2.7 5.6-1.6 8-3.3 3.4-2.4-.7-6.1 1.5-8.6 3.3 1.6 3.3 1.6 4.2-.2 0-.1 2.1-4.7-.5-11.4-1-2.4-1.5-3.9-1.8-5.1-.3-1.4-.2-2.2.2-3.3 2.2-1.1 4.1.6 5.6 2.8 2.2 3.3 3.5 7.9 3.5 8 1.9 10.4 2.6 14.5 2.8 16.2.1 1.1 0 1.2-.2 1.4-.1 0-.2 0-.2-.1-.5-.2-.9-.4-1.6-1.2-.6 1.1-.4 2.7-1.7 3.4-1.6 1-4 .5-5 2.5-.7 1.5-.7 3.3-2 4.5-.1.1-1.2.7-2.3-.3-1.2-1.1-1.1-5.2-3.1-3.9-.2 1.7 1.1 2.9 1.4 4.6-1.3 1.4-3.2 2.1-4 3.9-5.2-1.1-.8-4.9.6-6.1-6.1 2-6.7 2.8-6.9 3.3 1 2.5 3 4.5 4 7.1.3 1 .3 2.5-.2 3.4-1.5 2.5-3.1 1.9-4.3.6-.8-.9-1.3-2-1.6-3.1l-1.1-2v.2c-.4-.4-.8-1-.9-2 0-1.3.3-2.8 1.8-5.4zm16.5-21.7c.2 0 .5.2.5.5s-.2.5-.3.6c-.5-.4-.6-.7-.2-1.1zM52.2 184.4c-1-2.1-1.9-4.2-2.7-6.4-1.1-2.9-2.3-5.8-3.4-8.6-3.2-7.9-6.7-15.7-12.3-22.1-.4.1-.9.2-1.2.2 1.9 3.2 3.7 4.2 4.4 4.7 1.3 5.6 1.3 5.6.5 7.2-2-.8-2.4-3.7-4.7-4.2-.9-.2-2.8 1.1-3.5 3.7-.8 2.9.1 7.2 6.2 12.5 0 .1-.7 2.4-3.2 5-6.4-2.9-6.4-2.9-7-2.8-.4.7-.6 1.8-.5 2.6-.2.2-.5.2-.7.4-10 5.3-10.1 5.4-10.3 6-1.3 3.7-1.2 7.3-.9 11l39.3-9.2z" class="st3"/>
|
25 |
-
<path d="M62.8 263.8c-.1 0-.2.1-.2.1 0-.1.1-.1.2-.1zM18.1 103.7c.1 0 .2 0 .2.1l-.2-.2v.1zm145.7 214.4l-9.3-24.8c-1.2.3-2.4.3-3.6 0l-1.2 3.4-2.5 7.1 9.5 8.1 7.1 6.2zm-72.5-240L37 52.1l103.4 64.7zM84 121.3L43.8 67 33.6 53.2c-.3.3-.6.6-1.1.8l33.3 126.2L84 121.3zm41.7 51.1c.5 1 .7 2 .6 3.1l2.3.3 62.5 8.6-41-57.8c-.2.2-.5.2-.7.4-1.7.7-3.5.7-5.1.1L123 169.6c1.2.6 2.2 1.5 2.7 2.8zm-59.4 8.9l47.3-5.9c-.1-2.1.8-4.2 2.5-5.5l-31.5-47.7-18.3 59.1zm47.4-5.1l-47.2 5.9L149 282c.3-.2.7-.5 1.1-.7.2-.1.3-.2.5-.2l-29.3-100c-2.8.7-5.9-.7-7.2-3.5-.2-.4-.3-.9-.4-1.4zm-62.2 51.7c.2.2.4.5.6.7.1.4.2.6 0 1.2l95.3 54c.2-.4.6-.8 1-1.1L129.8 260l-61-74.1c.5.9 1 1.9 1.3 2.9-.2.3-.4.7-.6 1-.1.1-.1.2-.2.2 4.4 14.4 5.5 18.4 5.7 19.7.1.5 0 .7-.1.9-6.1-3-10.6-7.1-14.3-11.8-2.7-3.4-4.9-7.2-6.7-11L17.5 205c.7 1.6.6 3.3-.1 4.9.9.4 1.9.8 2.7 1.4.2-.3.6-.7.8-1l1.3 2.1c2.2-.6 2.9-3.8 5.9-3 1.9.6 3.2 1.8 4.3 3.1l.7-1.8c-.4-1.3-.8-2.6-1.3-3.8.7.3 1.2.7 2.3 1.6 2.2 1.9 6.6 6.5 17.4 19.4zM77 239.2c.2-.1.6 0 .7.5.1.5-.4 2.5-.8 2.3-.5-.2-.7-2.4.1-2.8zm65 61l4.6 3.3 3.7-10.3c-1.4-.6-2.5-1.7-3.3-3.2-.8-1.8-.7-3.8.1-5.4l-3-1.7L75.6 244v.1c.1.3-.1 1-.3 1.8-.4 1.1-1 2.3-1.4 3.4 0-.2-.1-.2-.1-.4-.3-1.6-.5-2.5-.3-3.4.2-1.3.9-1.6 1.2-1.7.2 0 .2-.1.4-.1l-23.2-13.1c-.6 3-.2 4.2 1.3 6l88.8 63.6zm-6.3 19.9l9.9-15.2-37.4 15.2zm76.7-70l-54.2 34.1c.1.1.2.2.2.4 1.5 3.2.1 6.9-3.1 8.4l9.6 25.6 48.7-67.3c-.5-.3-.9-.7-1.2-1.2zM9.1 296.9l.3-14.4c-.2 0-.6.1-.7.2-2.4 1.3-5.3 4.9-6.6 8.3l1.6 6.9c1 .5 2.4.7 4.2.7-.1-.3-.2-.8-.2-1.2.2-.1.7-.3 1.4-.5zm9.8-196.7c6.3 2.8 14.3 11.2 14.4 11.3.1.2-.1.5 0 .7-.3.1-.8.2-1.2.3l-.7.8c-.8-.1-2-.6-2.7-1-.1.8-.6 1.8-1.1 2.4-.8-.4-1.9-.8-2.7-1.1 3.3 4 8.8 6.1 10 11.8 12.8 5.1 13.7 6.9 15 9.5-4.1 3.1-2.1 6.7.2 10.4 1.8 2.8 3.8 5.5 3.7 8.4-1.4.1-2.8-.2-4.2-.1-.4 1.4 0 2.9-.6 4.2-.3-.1-.8-.1-1.1-.2l-.1.6c.7 5.5 3.5 9.5 7 13.1 3.3 3.3 7.2 6.3 10.2 9.8L31.7 54.5c-.7.3-1.5.5-2.2.5l-3.4 14.5-7.2 30.7zm34.9 67.4c-2-1-2.4-4.3-1.5-4.5.1 0 .3 0 .6.7.6 1.2 1.1 3.7 1.1 4 0-.1-.1-.2-.2-.2zm109.7 152.5l.7-.6-17.4-14.8-10.1 15.4zM17.3 103.5l.2-.7c-.8-.8-1.6-1.6-2.2-2.4.3-.2.7-.7 1.1-.9.6.1 1.2.2 1.8.5L22 83.3 28.7 55c-3.5-.3-6.1-3.4-5.8-6.9 0-.3.1-.6.2-1m101.7 132c-.6.7-1.3 1.3-2.2 1.7-.2.1-.3.2-.5.2l29.3 100c2.4-.6 5 .4 6.5 2.4l54.2-34.1c-.1-.1-.2-.2-.2-.4-.9-2-.7-4.3.4-6l-87.5-63.8zm66.8 6.2l-65.5-9.1c-.2.7-.4 1.5-.8 2.1l73.5 53.7 14 10.2c.6-.7 1.2-1.2 2-1.6l-23.2-55.3zM17 204.2l36.3-17.1c-.3-.7-.6-1.2-.9-1.9l-39.5 9.1c.2 2.4.6 4.7.6 7 1.6.5 2.8 1.5 3.5 2.9zm123.3-82.6H85.2l31.6 47.8.5-.2c1.7-.7 3.5-.7 5.1-.1l21.1-42.4c-1.1-.7-2-1.6-2.6-2.9-.3-.6-.5-1.4-.6-2.2zm-55.6-.8h55.7c.1-.9.3-1.8.7-2.6L34.8 51.7c-.2.3-.4.7-.6 1l18.3 24.6 32.2 43.5zm140.5 199.3l-7.4-67.4c-1.3.1-2.6-.3-3.7-1l-17.6 24.4-31.2 43.2 2 .8h57.9z" class="st3"/>
|
26 |
-
<path d="M18.3 299c-1.5-3.4-5.7-3.1-8.4-2.4l.3-13.1c.2 2.4.1 4.9.6 7.3l1.1.6c7-5.5 7-5.5 8.5-5.1 4.5 1 2.9 6.3 5.9 8.3.1 0 .2 0 .2-.1.6-.2 1.5-.3 2.2-.4 4.3 3.5 3.2 9.5 5.9 13.7 5.2-2.2 7.4-3.1 8-5 .2-.8.2-1.7-.1-3-.7-3.5-3-5.7-5.5-7.8l-5.5-10.7c.5-2 .6-4.1.9-6.1.2-1.8.5-3.5 1.1-5.1 1.8-4.2 8.1-1.7 9.6-6.4.4-1.1.6-2.3 1-3.4 2.7-11 1.1-20.1.8-21.9-.3-1.6-.9-3.1-1.6-4.7l2.4-1.7.2.1 3.3 2.4c2.8 4.6 6.6 10.7 8.2 11.9.2-.7-.4-1.4 0-2 .2-.3.3-.4 1.1 0 1.1.6 1.7 1 1.9.2.1-.2.2-.8-.9-2-.6-.7-1.3-1.4-2-2L72.1 251c-.8.5-.4 2.5-.2 3.3.6-1.2.9-2.1 1-2.7l73.4 52.6-39.8 16.2h1.9l37.4-15.2-9.9 15.2h1l10.1-15.5 17.4 14.9-.6.6h3.9l-2-.8 31.2-43.2 17.6-24.4c1.1.7 2.4 1.1 3.7 1l7.4 67.4h.9l-7.4-67.5c3.4-.6 5.7-3.9 5.1-7.3-.1-.5-.3-1.1-.5-1.6-1.4-3-4.7-4.4-7.8-3.3l-23.2-55.6v-.1l-41.6-58.6c2.7-2.2 3.2-6.1 1.1-8.9-1.8-2.3-5-3.1-7.6-1.8-.8.4-1.5.9-2.1 1.6L91.7 77.5l-56.3-27c.4-1.5.3-3-.3-4.5 1.3-3.3-.3-7-3.5-8.3-3.2-1.3-6.9.3-8.2 3.5-.7 1.6-.6 3.5.1 5.1l-24-6.5v.7L23.1 47c-.8 3.4 1.2 6.9 4.6 7.8.3.1.6.1 1 .2L22 83.3l-3.9 16.6c-.7-.2-1.2-.4-1.8-.5-.3.2-.7.7-1.1.9.7.9 1.5 1.6 2.2 2.4l-.2.7c-10.8-2.3-13.6-2.8-17.8-1.7v-.1c.2 72.8.6 145.6.8 218.4m8.9-23.1c-.7.2-1.2.4-1.4.5.1.3.2.8.2 1.2-1.9.1-3.3-.2-4.2-.7L2.1 291c1.3-3.4 4.2-7 6.5-8.3.2-.1.5-.2.7-.2l-.2 14.4zm4.5-114.4c.4-.7.5-.8 10.3-6 .2-.2.5-.2.7-.4-.1-.8.1-2 .5-2.6.7-.1.7-.1 7 2.8 2.4-2.5 3.2-4.9 3.2-5-6.1-5.2-7-9.6-6.2-12.5.7-2.5 2.7-3.8 3.5-3.7 2.4.6 2.6 3.3 4.7 4.2.8-1.6.8-1.6-.5-7.2-.7-.4-2.5-1.5-4.4-4.7.4-.1.9-.2 1.2-.2 5.6 6.4 9.1 14.1 12.3 22.1 1.1 2.9 2.3 5.8 3.4 8.6.9 2.2 1.8 4.3 2.7 6.4l-39.3 9.1c-.3-3.6-.4-7.3.9-10.9zm.1 18.8c-.2-2.4-.4-4.7-.7-7l39.6-9.1c.3.7.6 1.3.9 1.9l-36.4 17.1c-.8-1.4-2-2.4-3.4-2.9zm32.5 30.2l.6-.5c.3.5.7 1.1 1 1.7l-1.6-1.2zM34 208.3c-1.1-.9-1.6-1.2-2.3-1.6.5 1.2.9 2.5 1.3 3.8l-.7 1.8c-1.1-1.4-2.4-2.6-4.3-3.1-2.9-.8-3.7 2.4-5.9 3l-1.3-2.1c-.2.3-.6.7-.8 1-.8-.6-1.7-1-2.7-1.4.6-1.5.7-3.3.1-4.9l36.3-17.1c2 3.9 4.1 7.7 6.7 11 3.7 4.8 8.3 8.9 14.4 11.9.1-.2.2-.4.1-.9-.2-1.4-1.4-5.3-5.7-19.7.1-.1.1-.2.2-.2.2-.3.4-.7.6-1-.3-1-.8-2-1.3-2.9l61 74.1 18.6 22.6c-.4.3-.6.7-1 1.1l-95.3-54c.2-.7.1-.8 0-1.2-.2-.2-.4-.5-.7-.7-10.7-13-15.1-17.6-17.3-19.5zM211.8 249c.1.2.2.2.2.4l-54.2 34.1c-1.5-2-4.1-3-6.5-2.4l-29.3-100c.2-.1.3-.1.5-.2.9-.4 1.6-1 2.2-1.7l87.4 63.9c-1 1.7-1.2 4-.3 5.9zm-61.2 32.2c-.2.1-.3.1-.5.2-.4.2-.7.4-1.1.7L66.5 182l47.2-5.9c.1.5.2 1 .5 1.5 1.3 2.8 4.3 4.2 7.2 3.6l29.2 100zm-37-105.8l-47.3 5.9 18.3-59.1 31.5 47.7c-1.7 1.3-2.6 3.4-2.5 5.5zm32.8 127.9l-4.6-3.3-88.7-63.5c-1.5-1.8-2-3-1.3-6L75 243.7c-.1 0-.2.1-.4.1-.3.1-1.1.4-1.3 1.6-.1.9 0 1.9.4 3.4 0 .2.1.2.1.4.4-1.1 1-2.3 1.4-3.4.2-.8.4-1.5.3-1.8v-.1l68.5 38.8 3 1.7c-.8 1.6-.9 3.6-.1 5.4.6 1.5 1.9 2.6 3.3 3.2l-3.8 10.3zm10.2 8.8l-9.5-8.1 2.6-7.2 1.2-3.4c1.1.3 2.4.3 3.6 0l9.3 24.8-7.2-6.1zm8.3 6.5l-9.6-25.5c3.2-1.5 4.6-5.2 3.1-8.4-.1-.2-.2-.2-.2-.4l54.2-34.1c.3.4.6.8 1.1 1.1l-48.6 67.3zm49.9-77.9c-.8.4-1.5 1-2 1.6l-14-10.2-73.5-53.7c.4-.7.7-1.4.8-2.1l65.5 9.1 23.2 55.3zm-70.6-113.6c1.5.7 3.4.7 5.1-.1.2-.1.5-.2.7-.4l41 57.8-62.5-8.6-2.3-.3c.1-1.1-.1-2.1-.6-3.1-.6-1.2-1.5-2.2-2.6-2.9l21.2-42.4zm-.7-.3l-21.1 42.4c-1.6-.7-3.5-.7-5.1.1l-.5.2-31.5-47.8h55.2c.1.7.2 1.6.6 2.2.4 1.2 1.3 2.2 2.4 2.9zM91.3 78.1l49.2 38.8L37 52.1l54.3 26zM34.8 51.7l106.4 66.6c-.4.8-.7 1.7-.7 2.6H84.7L52.4 77.4 34.2 52.7c.2-.4.4-.7.6-1zm-1.2 1.5L43.8 67 84 121.3l-18.3 58.9L32.4 54.1c.5-.3.9-.5 1.2-.9zm-4.1 1.7c.7 0 1.5-.2 2.2-.5L65.1 181c-3.1-3.4-7-6.4-10.2-9.8-3.4-3.5-6.3-7.5-7-13.1l.1-.6c.4.1.8.1 1.1.2.6-1.4.2-2.9.6-4.2 1.4-.2 2.8.2 4.2.1.1-2.8-2-5.6-3.7-8.4-2.4-3.7-4.4-7.3-.2-10.4-1.3-2.5-2.3-4.3-15-9.5-1.1-5.8-6.7-7.9-10-11.8.8.3 1.9.7 2.7 1.1.5-.6 1-1.6 1.1-2.4.7.4 1.8.8 2.7 1l.7-.8c.3-.1.8-.2 1.2-.3 0-.2.1-.5 0-.7-.1-.1-8-8.6-14.4-11.3l7-30.5 3.5-14.7z" class="st4"/>
|
27 |
-
<path d="M18.1 103.7v-.2l.2.2h-.2zM48.3 314v-.2l1.1 2c.2.9.8 2.2 1.6 3.1 1.2 1.4 2.8 2 4.3-.6.5-.9.5-2.4.2-3.4-.9-2.6-2.9-4.6-4-7.1.3-.5.8-1.3 6.9-3.3-1.5 1.1-5.9 5-.7 6.1.8-1.8 2.7-2.5 4-3.9-.2-1.6-1.6-2.8-1.4-4.6 2-1.3 1.9 2.8 3.1 3.9 1.1 1 2.1.5 2.3.3 1.2-1.2 1.2-3 2-4.5 1.1-2 3.4-1.6 5-2.5 1.3-.7 1.1-2.3 1.7-3.4.7.8 1.1 1.1 1.6 1.2.1 0 .2.1.2.1.2-.2.3-.3.2-1.4-.2-1.7-.9-5.8-2.8-16.2 0-.1-1.3-4.7-3.5-8-1.5-2.2-3.4-3.8-5.6-2.8-.4 1.1-.5 2.2-.2 3.3.2 1.1.8 2.7 1.8 5.1 2.6 6.7.5 11.3.5 11.4-.9 1.7-.9 1.7-4.2.2-2.2 2.6 1.9 6.4-1.5 8.6-2.4 1.7-6 .6-8 3.3-2 2.5-2.4 3.5-3.8 5.9-1.5 2.5-1.8 4.2-1.7 5.2.1 1.3.6 1.8.9 2.2zm5.5-146.4c.1 0 .1.1.2.1 0-.3-.5-2.8-1.1-4-.2-.6-.5-.6-.6-.6-.8.3-.5 3.6 1.5 4.5zm5.2 84.9c.4.7 1.2 2.4 1.6 3.9.5 1.8.2 2.6-.3 3.6-.6 1.1-1.4 2.4-1 4.1v.1c.3 1.1 3.3 4.8 4.6 4.6 1.2-.2 1.3-2 .8-3.3-.2-.6-.5-1.1-.9-1.5s-.7-.3-1.1-.3c1-.3 2.2-.2 2.8-.1 1.5.2 2.5.3 3.7-.8.1-.1.1-.2.2-.2.3-.5.2-1.1.5-1.7.7-1.2 1.8-2.2 2.4-3.4.1-.1.2-.3.2-.6-.1-1-.7-1.8-1.1-2.7-.7.8-6.9-1.7-9.6-2.9-2.8-1.2-3.3-1.2-3.7-1.1-.1.1-.2.2-.1.4.1.3.5.9 1 1.9z" class="st4"/>
|
28 |
-
<path d="M62.6 263.9c.1 0 .2-.1.2-.1-.1 0-.2 0-.2.1z" class="st4"/>
|
29 |
-
</g>
|
30 |
-
</g>
|
31 |
-
</g>
|
32 |
-
<path id="logo" d="M76.9 207.1c.9 1.8.8 4.6 1.7 6.4.6.3 1.3.6 1.8.9 7.6-1.1 7.8-10.2 3.9-14.6-1.8-1.7-4.5-2.5-7.8-1-16.8 7.2-32.9 2.6-42.6-7.5-5.3-5.3-8.8-12.1-9.8-19.5-2.6-23.5 16.6-38.4 29.8-40.1 11.8-1.4 23 2.8 30.5 10.4 8.1 8.1 12.5 20.3 9.9 34.4-1.1 6.4-4.9 14.5-13.5 14.5-3.4 0-6.8-1.5-9.2-4.1-2.3-2.2-3.7-5.2-3.9-8.4-.8-12.7 15.5-16.3 14.5-29-.1-2.3-1.1-4.2-2.8-6-4.9-4.7-14.9-6.5-23.9-4.7-11.2 2.3-21.9 12.5-23.9 24.8-1.6 10 2 21.2 9.3 28.9 6.5 6.5 16 10.1 27.5 7.3 3.8-.8 6.7-4.4 12.7-3.4 2.2.3 4 1.4 5.3 2.8 4.9 4.6 4.1 14.2-2.3 16.5-3.3 1.1-9.3.2-11.9-2.6l-.1-.1c-.3-.1-.6-.5-.9-.8-1-.8-1.7-2.5-1.6-4.4.1-2.6 1.8-4.7 3.8-4.5.8.1 1.5.5 2 1 .7.9 1.3 1.7 1.5 2.8m112.9-35.5c.7-.9 1-2 1.4-3.1.5-2.1.5-4.4-.1-6.4-.2-1.1-.7-2.3-1.4-3.1-.7-1-1.7-1.7-2.9-2.2-1.1-.6-2.5-.8-4.2-.8h-3.1c-.6 0-1 .5-1 1v16.9c0 .6.5 1 1 1h2c2.2 0 4-.3 5.3-1 1.1-.2 2.3-1.1 3-2.3m9.2-7.3c0 2.3-.5 4.2-1.4 6-.8 1.7-2.1 3.1-3.7 4.2-1.6 1-3.1 2-5.1 2.5-2 .6-3.9.8-5.9.8h-3.7c-.6 0-1 .5-1 1v11.9c0 .7.1 1.4.5 1.8.2.6.7.9 1.5 1.3.5.1 1 .2 2 .5.6.1 1 .1 1.6.2.6 0 1 .5 1 1s-.5 1-1 1h-16.3c-.6 0-1-.5-1-1v-.1c0-.6.5-1 .9-1 .3 0 .7-.1 1.1-.1.9-.1 1.6-.2 2-.5.6-.2 1-.6 1.4-1.1.2-.6.5-1.1.5-2v-31c0-.7-.1-1.4-.3-2-.2-.6-.7-1-1.4-1.3-.8-.2-1.6-.5-2.3-.6-.3 0-.7-.1-.9-.1-.6-.1-.9-.6-.9-1v-.1c0-.6.5-1 1-1H186c3.9 0 7.1.9 9.6 2.9l.1.1c2 2 3.3 4.6 3.3 7.7zm-36.8-8.4c-.6 0-1 .1-1.7.5-.7.2-1.1.5-1.7.8l-.1.1c-.7.5-1.1.9-1.7 1.5-.5.6-.7 1.4-1.1 2.4v.1c-1.4 4.7-3.1 10.1-4.9 16.4-1.7 6.1-3.8 12.4-5.9 19.3-.1.5-.6.8-1 .8h-1.3c-.5 0-.9-.3-1-.8l-9.5-29.4c-.1-.6-.8-.9-1.4-.7-.3.1-.6.3-.7.7l-10 29.4c-.1.5-.6.7-1 .7h-1c-.5 0-.9-.3-1-.8-2-6.9-3.9-13.9-6-21.3-2.2-7.7-3.6-12.7-4.2-15.4-.1-.6-.5-1-.7-1.6 0-.1-.1-.2-.1-.2-.8-1-2-1.7-3.2-2-.3-.1-.7-.1-.9-.2-.5-.1-.9-.6-.9-1v-.2c0-.6.5-1 1-1h15.4c.6 0 1 .5 1 1v.1c0 .6-.5 1-1 1-1.1.1-2.1.2-2.9.5-1 .2-1.6.6-1.6 1 0 .1 0 .5.1.8.1.2.1.6.1.8.5 1.8 1.4 4.7 2.5 8.8 1 3.6 2.4 8.6 4.2 15 .3 1 1.7 1 2.1 0l9.3-27.9c.1-.5.6-.7 1-.7h1.4c.5 0 .9.3 1 .8l9.4 28.6c.3 1 1.8 1 2.1 0l2.8-9.9c1-3.8 2-6.9 2.5-9.6.5-1.8.8-3.2.9-3.9.1-.7.1-1.3.1-1.8 0-.7-.5-1.3-1.4-1.7-.8-.5-2-.7-3.6-.8-.6-.1-1-.6-1-1 0-.6.5-1 1-1H161c.6 0 1 .5 1 1l.2.8zM292 184l-.8 11.8c0 .6-.5 1-1 1h-31.4c-.6 0-1-.5-1-1v-.1c0-.6.5-1 .9-1 .3 0 .7-.1 1.1-.1.9-.1 1.6-.2 2-.5.6-.2 1-.6 1.4-1.1.2-.6.5-1.1.5-2v-30.8c0-.7-.1-1.3-.5-1.8-.3-.6-.7-.9-1.4-1.3-.5-.2-1-.5-2-.7l-1.3-.3c-.5-.1-.9-.6-.9-1v-.2c0-.6.5-1 1-1h16c.6 0 1 .5 1 1v.1c0 .6-.3 1-.9 1-.3.1-.8.1-1.3.2-.9.1-1.6.5-2 .5-.7.2-1.1.6-1.4 1.3-.2.6-.5 1.3-.5 1.8v28.9c0 1.4.1 2.3.1 3.1.1.7.5 1.4.9 1.7.5.5 1.1.6 2.1.7s2.2.1 3.8.1c.8 0 1.6 0 2.3-.1.7 0 1.5-.1 2.3-.2h.1c.7-.1 1.3-.3 1.8-.5.6-.2.9-.5 1.3-.7.1 0 .1-.1.2-.2.8-.9 1.7-2.3 2.9-4.1.9-1.5 1.5-2.9 2-3.9.1-.5.6-.7 1-.7h1.6l.1.1zm-38.2 12.9H236c-.6 0-1-.5-1-1 0-.6.5-1 1-1s1-.1 1.7-.2c1-.1 1.8-.3 2.2-.6.6-.5 1-.8 1.4-1.4.3-.5.5-1 .5-1.8v-31.3h-.5l-14.6 35.9c-.1.5-.6.7-1 .7-.5 0-.9-.2-1-.7L211 158.6h-.5v25.7c0 2.5.1 4.4.5 5.6.3 1.3.8 2.2 1.5 2.9.5.5 1.4.8 2.8 1.3.8.2 1.4.3 1.8.5.5.1.9.6.9 1v.1c0 .6-.5 1-1 1h-14.8c-.7 0-1.3-.7-1-1.4v-.1c.1-.3.5-.7.8-.7.5-.1.8-.2 1.5-.5 1-.2 1.8-.6 2.3-1 .7-.6 1.1-1.4 1.5-2.6.2-1.1.5-3.1.5-5.9v-22.2c0-1.3-.1-2.3-.5-3.1-.3-.8-.7-1.5-1.4-2-.6-.6-1.4-.9-2.2-1.3h-.1l-1.7-.3c-.6-.1-.9-.6-.9-1.1v-.1c0-.6.5-1 1-1h12.7c.5 0 .8.2 1 .7l11 28.9c.3.9 1.7.9 2.1 0l9.4-24.3c.5-1 .7-2 1-3.1v-.1l.3-1.3c.1-.5.6-.8 1-.8h12.1c.6 0 1 .5 1 1v.1c0 .6-.5 1-.9 1-.3 0-.8.1-1.1.2-.8.1-1.5.3-2 .5-.7.2-1.1.6-1.4 1.3-.2.6-.5 1.1-.5 1.8v31.1c0 .7.1 1.4.5 1.8.2.5.7.9 1.4 1.3.5.2 1 .5 2 .6.5.1.9.1 1.3.2.6.1.9.6.9 1v1.6z" class="st5"/>
|
33 |
-
</g>
|
34 |
-
<g class="st0">
|
35 |
-
<path d="M146.2 2.5h-.1l171.4 171.4.5-.5V2.5z" class="st6"/>
|
36 |
-
</g>
|
37 |
-
<path d="M280.7 21.3c4.6.8 8.7 4.4 10.3 9.1.4 1.3.5 1.8.6 3.8.1 1.9 0 2.5-.3 3.7-1 4.2-3.9 7.7-7.9 9.4-1.1.5-2.3.8-2.3.7l.6-1.2c4.1-8.1.9-18-7.2-22.1-.8-.4-1.5-.7-2.4-1-.5-.2-1.1-.3-1.2-.4-.4-.1 1.3-.9 3-1.5 2.2-.8 4.5-.9 6.8-.5z" class="st4"/>
|
38 |
-
<path d="M270.3 26.1c5.2 1.3 9.1 5.6 10.1 10.8.3 2.1.2 4.2-.3 6.2-1.1 3.8-3.9 6.9-7.5 8.5-1.8.8-3.7 1.3-5.7 1.2-6 0-11-3.7-13-9.5-.5-1.4-.5-1.8-.5-3.9 0-2 .1-2.6.4-3.7 1.5-5.1 5.7-9 11-9.9 1.8-.1 3.7 0 5.5.3zm21.2 23.3c5.1 1.6 8.2 5.5 9.6 12 .4 1.7.8 6.6.6 7-.1.2-.5.3-3.1.3-1 0-2 0-3-.1-.2-1.8-.5-3.6-1-5.3-1.7-5.7-5.3-9.9-9.6-11.2-.4-.1-.7-.3-.7-.4.4-.5.8-1.1 1.2-1.5l1.2-1.4 1.8.1c1 .1 2 .2 3 .5z" class="st4"/>
|
39 |
-
<path d="M262.7 58l4.4 4.3 1.6-1.5c.9-.8 3.1-3 5-4.8l3.4-3.3 1.3.2c3.5.4 6.7 1.9 9.3 4.3 2.9 2.7 4.5 6.1 5.2 10.7.3 1.7.4 6.7.2 7.7l-.1.5h-26c-18.2 0-25.7-.1-25.8-.2-.2-.4-.3-5-.1-6.9 1-9.5 6.2-15.2 14.7-16.1 1.6-.3.9-.8 6.9 5.1z" class="st4"/>
|
40 |
-
</svg>
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
vendor/otgs/icons/plugin-icons/wpml/gfml/icon-128x128.png
DELETED
Binary file
|
vendor/otgs/icons/plugin-icons/wpml/gfml/icon-256x256.png
DELETED
Binary file
|
vendor/otgs/icons/plugin-icons/wpml/gfml/icon.svg
DELETED
@@ -1,39 +0,0 @@
|
|
1 |
-
<svg xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" id="icon" viewBox="0 0 320 320">
|
2 |
-
<style>
|
3 |
-
.st0{clip-path:url(#SVGID_2_)}.st1{fill:url(#bg_2_)}.st2{opacity:.15}.st3{fill:none}.st4,.st5{fill:#fff}.st5{stroke:#fff;stroke-width:.75;stroke-miterlimit:10}.st6{fill:#29a8e0}
|
4 |
-
</style>
|
5 |
-
<defs>
|
6 |
-
<path id="SVGID_1_" d="M312.5 317.5H7.5c-2.8 0-5-2.2-5-5V7.5c0-2.8 2.2-5 5-5h305c2.8 0 5 2.2 5 5v305c0 2.8-2.2 5-5 5z"/>
|
7 |
-
</defs>
|
8 |
-
<clipPath id="SVGID_2_">
|
9 |
-
<use overflow="visible" xlink:href="#SVGID_1_"/>
|
10 |
-
</clipPath>
|
11 |
-
<g class="st0">
|
12 |
-
<g id="bg_1_">
|
13 |
-
<g id="mask">
|
14 |
-
<linearGradient id="bg_2_" x1="321" x2="-1" y1="161.097" y2="161.097" gradientTransform="matrix(1 0 0 -1 0 321)" gradientUnits="userSpaceOnUse">
|
15 |
-
<stop offset="0" stop-color="#33879e"/>
|
16 |
-
<stop offset=".295" stop-color="#3389a1" stop-opacity=".823"/>
|
17 |
-
<stop offset=".52" stop-color="#318dab" stop-opacity=".688"/>
|
18 |
-
<stop offset=".722" stop-color="#2f96bb" stop-opacity=".567"/>
|
19 |
-
<stop offset=".909" stop-color="#2ba1d2" stop-opacity=".455"/>
|
20 |
-
<stop offset="1" stop-color="#29a8e0" stop-opacity=".4"/>
|
21 |
-
</linearGradient>
|
22 |
-
<path id="bg" d="M-1-.3h322v320.5H-1V-.3z" class="st1"/>
|
23 |
-
<g id="earth" class="st2">
|
24 |
-
<path d="M18 299.1c-9.1 10.7-9.1 10.7 3.7 20.9v.1h84.5l39.6-16.1-73.4-52.6c0 .6-.3 1.5-1 2.7.3.9 1 1.7 1.1 2.7 0 .2-.1.5-.2.6-.7 1.2-1.7 2.2-2.4 3.4-.3.5-.2 1.1-.5 1.7-.1.1-.1.2-.2.2-1.1 1.1-2.2 1-3.7.8-.7-.1-1.9-.2-2.8.1.3 0 .7 0 1.1.3.4.3.6.8.9 1.5.5 1.4.4 3.1-.8 3.3-1.3.2-4.3-3.5-4.6-4.6v-.1c-.5-1.6.3-2.9 1-4.1.6-1.1.8-1.8.3-3.6-.4-1.5-1.2-3.1-1.6-3.9-.5-1-.9-1.6-.9-2 0-.1.1-.2.1-.4.4-.2.9-.2 3.7 1.1 2.7 1.1 9 3.8 9.6 2.9-.2-.7-.7-2.8.2-3.3L57 240.4c.7.7 1.4 1.3 2 2 1.1 1.2.9 1.8.9 2-.2.8-.8.4-1.9-.2-.7-.4-.9-.3-1.1 0-.3.7.3 1.4 0 2-1.6-1.2-5.4-7.3-8.2-11.9l-3.3-2.4-.2-.1-2.4 1.7c.7 1.6 1.4 3.2 1.6 4.7.4 1.9 1.9 10.9-.8 21.9-.2 1.1-.6 2.3-1 3.4-1.5 4.7-7.8 2.2-9.6 6.4-.7 1.6-1 3.3-1.1 5.1-.2 2-.3 4.2-.9 6.1l5.5 10.7c2.5 2 4.9 4.2 5.5 7.8.2 1.3.3 2.3.1 3-.6 1.9-2.8 2.8-8 5-2.8-4.2-1.6-10.2-5.9-13.7-.7.1-1.5.2-2.2.4-.1 0-.2 0-.2.1-3-2-1.5-7.3-5.9-8.3-1.5-.3-1.5-.3-8.5 5.1l-1.1-.6c-.5-2.4-.3-4.9-.6-7.3l-.3 13.1c2.9-.4 7.1-.7 8.6 2.7zm31.1 7.8c1.4-2.4 1.9-3.3 3.8-5.9 2-2.7 5.6-1.6 8-3.3 3.4-2.4-.7-6.1 1.5-8.6 3.3 1.6 3.3 1.6 4.2-.2 0-.1 2.1-4.7-.5-11.4-1-2.4-1.5-3.9-1.8-5.1-.3-1.4-.2-2.2.2-3.3 2.2-1.1 4.1.6 5.6 2.8 2.2 3.3 3.5 7.9 3.5 8 1.9 10.4 2.6 14.5 2.8 16.2.1 1.1 0 1.2-.2 1.4-.1 0-.2 0-.2-.1-.5-.2-.9-.4-1.6-1.2-.6 1.1-.4 2.7-1.7 3.4-1.6 1-4 .5-5 2.5-.7 1.5-.7 3.3-2 4.5-.1.1-1.2.7-2.3-.3-1.2-1.1-1.1-5.2-3.1-3.9-.2 1.7 1.1 2.9 1.4 4.6-1.3 1.4-3.2 2.1-4 3.9-5.2-1.1-.8-4.9.6-6.1-6.1 2-6.7 2.8-6.9 3.3 1 2.5 3 4.5 4 7.1.3 1 .3 2.5-.2 3.4-1.5 2.5-3.1 1.9-4.3.6-.8-.9-1.3-2-1.6-3.1l-1.1-2v.2c-.4-.4-.8-1-.9-2 0-1.3.3-2.8 1.8-5.4zm16.5-21.7c.2 0 .5.2.5.5s-.2.5-.3.6c-.5-.4-.6-.7-.2-1.1zM52.2 184.4c-1-2.1-1.9-4.2-2.7-6.4-1.1-2.9-2.3-5.8-3.4-8.6-3.2-7.9-6.7-15.7-12.3-22.1-.4.1-.9.2-1.2.2 1.9 3.2 3.7 4.2 4.4 4.7 1.3 5.6 1.3 5.6.5 7.2-2-.8-2.4-3.7-4.7-4.2-.9-.2-2.8 1.1-3.5 3.7-.8 2.9.1 7.2 6.2 12.5 0 .1-.7 2.4-3.2 5-6.4-2.9-6.4-2.9-7-2.8-.4.7-.6 1.8-.5 2.6-.2.2-.5.2-.7.4-10 5.3-10.1 5.4-10.3 6-1.3 3.7-1.2 7.3-.9 11l39.3-9.2z" class="st3"/>
|
25 |
-
<path d="M62.8 263.8c-.1 0-.2.1-.2.1 0-.1.1-.1.2-.1zM18.1 103.7c.1 0 .2 0 .2.1l-.2-.2v.1zm145.7 214.4l-9.3-24.8c-1.2.3-2.4.3-3.6 0l-1.2 3.4-2.5 7.1 9.5 8.1 7.1 6.2zm-72.5-240L37 52.1l103.4 64.7zM84 121.3L43.8 67 33.6 53.2c-.3.3-.6.6-1.1.8l33.3 126.2L84 121.3zm41.7 51.1c.5 1 .7 2 .6 3.1l2.3.3 62.5 8.6-41-57.8c-.2.2-.5.2-.7.4-1.7.7-3.5.7-5.1.1L123 169.6c1.2.6 2.2 1.5 2.7 2.8zm-59.4 8.9l47.3-5.9c-.1-2.1.8-4.2 2.5-5.5l-31.5-47.7-18.3 59.1zm47.4-5.1l-47.2 5.9L149 282c.3-.2.7-.5 1.1-.7.2-.1.3-.2.5-.2l-29.3-100c-2.8.7-5.9-.7-7.2-3.5-.2-.4-.3-.9-.4-1.4zm-62.2 51.7c.2.2.4.5.6.7.1.4.2.6 0 1.2l95.3 54c.2-.4.6-.8 1-1.1L129.8 260l-61-74.1c.5.9 1 1.9 1.3 2.9-.2.3-.4.7-.6 1-.1.1-.1.2-.2.2 4.4 14.4 5.5 18.4 5.7 19.7.1.5 0 .7-.1.9-6.1-3-10.6-7.1-14.3-11.8-2.7-3.4-4.9-7.2-6.7-11L17.5 205c.7 1.6.6 3.3-.1 4.9.9.4 1.9.8 2.7 1.4.2-.3.6-.7.8-1l1.3 2.1c2.2-.6 2.9-3.8 5.9-3 1.9.6 3.2 1.8 4.3 3.1l.7-1.8c-.4-1.3-.8-2.6-1.3-3.8.7.3 1.2.7 2.3 1.6 2.2 1.9 6.6 6.5 17.4 19.4zM77 239.2c.2-.1.6 0 .7.5.1.5-.4 2.5-.8 2.3-.5-.2-.7-2.4.1-2.8zm65 61l4.6 3.3 3.7-10.3c-1.4-.6-2.5-1.7-3.3-3.2-.8-1.8-.7-3.8.1-5.4l-3-1.7L75.6 244v.1c.1.3-.1 1-.3 1.8-.4 1.1-1 2.3-1.4 3.4 0-.2-.1-.2-.1-.4-.3-1.6-.5-2.5-.3-3.4.2-1.3.9-1.6 1.2-1.7.2 0 .2-.1.4-.1l-23.2-13.1c-.6 3-.2 4.2 1.3 6l88.8 63.6zm-6.3 19.9l9.9-15.2-37.4 15.2zm76.7-70l-54.2 34.1c.1.1.2.2.2.4 1.5 3.2.1 6.9-3.1 8.4l9.6 25.6 48.7-67.3c-.5-.3-.9-.7-1.2-1.2zM9.1 296.9l.3-14.4c-.2 0-.6.1-.7.2-2.4 1.3-5.3 4.9-6.6 8.3l1.6 6.9c1 .5 2.4.7 4.2.7-.1-.3-.2-.8-.2-1.2.2-.1.7-.3 1.4-.5zm9.8-196.7c6.3 2.8 14.3 11.2 14.4 11.3.1.2-.1.5 0 .7-.3.1-.8.2-1.2.3l-.7.8c-.8-.1-2-.6-2.7-1-.1.8-.6 1.8-1.1 2.4-.8-.4-1.9-.8-2.7-1.1 3.3 4 8.8 6.1 10 11.8 12.8 5.1 13.7 6.9 15 9.5-4.1 3.1-2.1 6.7.2 10.4 1.8 2.8 3.8 5.5 3.7 8.4-1.4.1-2.8-.2-4.2-.1-.4 1.4 0 2.9-.6 4.2-.3-.1-.8-.1-1.1-.2l-.1.6c.7 5.5 3.5 9.5 7 13.1 3.3 3.3 7.2 6.3 10.2 9.8L31.7 54.5c-.7.3-1.5.5-2.2.5l-3.4 14.5-7.2 30.7zm34.9 67.4c-2-1-2.4-4.3-1.5-4.5.1 0 .3 0 .6.7.6 1.2 1.1 3.7 1.1 4 0-.1-.1-.2-.2-.2zm109.7 152.5l.7-.6-17.4-14.8-10.1 15.4zM17.3 103.5l.2-.7c-.8-.8-1.6-1.6-2.2-2.4.3-.2.7-.7 1.1-.9.6.1 1.2.2 1.8.5L22 83.3 28.7 55c-3.5-.3-6.1-3.4-5.8-6.9 0-.3.1-.6.2-1m101.7 132c-.6.7-1.3 1.3-2.2 1.7-.2.1-.3.2-.5.2l29.3 100c2.4-.6 5 .4 6.5 2.4l54.2-34.1c-.1-.1-.2-.2-.2-.4-.9-2-.7-4.3.4-6l-87.5-63.8zm66.8 6.2l-65.5-9.1c-.2.7-.4 1.5-.8 2.1l73.5 53.7 14 10.2c.6-.7 1.2-1.2 2-1.6l-23.2-55.3zM17 204.2l36.3-17.1c-.3-.7-.6-1.2-.9-1.9l-39.5 9.1c.2 2.4.6 4.7.6 7 1.6.5 2.8 1.5 3.5 2.9zm123.3-82.6H85.2l31.6 47.8.5-.2c1.7-.7 3.5-.7 5.1-.1l21.1-42.4c-1.1-.7-2-1.6-2.6-2.9-.3-.6-.5-1.4-.6-2.2zm-55.6-.8h55.7c.1-.9.3-1.8.7-2.6L34.8 51.7c-.2.3-.4.7-.6 1l18.3 24.6 32.2 43.5zm140.5 199.3l-7.4-67.4c-1.3.1-2.6-.3-3.7-1l-17.6 24.4-31.2 43.2 2 .8h57.9z" class="st3"/>
|
26 |
-
<path d="M18.3 299c-1.5-3.4-5.7-3.1-8.4-2.4l.3-13.1c.2 2.4.1 4.9.6 7.3l1.1.6c7-5.5 7-5.5 8.5-5.1 4.5 1 2.9 6.3 5.9 8.3.1 0 .2 0 .2-.1.6-.2 1.5-.3 2.2-.4 4.3 3.5 3.2 9.5 5.9 13.7 5.2-2.2 7.4-3.1 8-5 .2-.8.2-1.7-.1-3-.7-3.5-3-5.7-5.5-7.8l-5.5-10.7c.5-2 .6-4.1.9-6.1.2-1.8.5-3.5 1.1-5.1 1.8-4.2 8.1-1.7 9.6-6.4.4-1.1.6-2.3 1-3.4 2.7-11 1.1-20.1.8-21.9-.3-1.6-.9-3.1-1.6-4.7l2.4-1.7.2.1 3.3 2.4c2.8 4.6 6.6 10.7 8.2 11.9.2-.7-.4-1.4 0-2 .2-.3.3-.4 1.1 0 1.1.6 1.7 1 1.9.2.1-.2.2-.8-.9-2-.6-.7-1.3-1.4-2-2L72.1 251c-.8.5-.4 2.5-.2 3.3.6-1.2.9-2.1 1-2.7l73.4 52.6-39.8 16.2h1.9l37.4-15.2-9.9 15.2h1l10.1-15.5 17.4 14.9-.6.6h3.9l-2-.8 31.2-43.2 17.6-24.4c1.1.7 2.4 1.1 3.7 1l7.4 67.4h.9l-7.4-67.5c3.4-.6 5.7-3.9 5.1-7.3-.1-.5-.3-1.1-.5-1.6-1.4-3-4.7-4.4-7.8-3.3l-23.2-55.6v-.1l-41.6-58.6c2.7-2.2 3.2-6.1 1.1-8.9-1.8-2.3-5-3.1-7.6-1.8-.8.4-1.5.9-2.1 1.6L91.7 77.5l-56.3-27c.4-1.5.3-3-.3-4.5 1.3-3.3-.3-7-3.5-8.3-3.2-1.3-6.9.3-8.2 3.5-.7 1.6-.6 3.5.1 5.1l-24-6.5v.7L23.1 47c-.8 3.4 1.2 6.9 4.6 7.8.3.1.6.1 1 .2L22 83.3l-3.9 16.6c-.7-.2-1.2-.4-1.8-.5-.3.2-.7.7-1.1.9.7.9 1.5 1.6 2.2 2.4l-.2.7c-10.8-2.3-13.6-2.8-17.8-1.7v-.1c.2 72.8.6 145.6.8 218.4m8.9-23.1c-.7.2-1.2.4-1.4.5.1.3.2.8.2 1.2-1.9.1-3.3-.2-4.2-.7L2.1 291c1.3-3.4 4.2-7 6.5-8.3.2-.1.5-.2.7-.2l-.2 14.4zm4.5-114.4c.4-.7.5-.8 10.3-6 .2-.2.5-.2.7-.4-.1-.8.1-2 .5-2.6.7-.1.7-.1 7 2.8 2.4-2.5 3.2-4.9 3.2-5-6.1-5.2-7-9.6-6.2-12.5.7-2.5 2.7-3.8 3.5-3.7 2.4.6 2.6 3.3 4.7 4.2.8-1.6.8-1.6-.5-7.2-.7-.4-2.5-1.5-4.4-4.7.4-.1.9-.2 1.2-.2 5.6 6.4 9.1 14.1 12.3 22.1 1.1 2.9 2.3 5.8 3.4 8.6.9 2.2 1.8 4.3 2.7 6.4l-39.3 9.1c-.3-3.6-.4-7.3.9-10.9zm.1 18.8c-.2-2.4-.4-4.7-.7-7l39.6-9.1c.3.7.6 1.3.9 1.9l-36.4 17.1c-.8-1.4-2-2.4-3.4-2.9zm32.5 30.2l.6-.5c.3.5.7 1.1 1 1.7l-1.6-1.2zM34 208.3c-1.1-.9-1.6-1.2-2.3-1.6.5 1.2.9 2.5 1.3 3.8l-.7 1.8c-1.1-1.4-2.4-2.6-4.3-3.1-2.9-.8-3.7 2.4-5.9 3l-1.3-2.1c-.2.3-.6.7-.8 1-.8-.6-1.7-1-2.7-1.4.6-1.5.7-3.3.1-4.9l36.3-17.1c2 3.9 4.1 7.7 6.7 11 3.7 4.8 8.3 8.9 14.4 11.9.1-.2.2-.4.1-.9-.2-1.4-1.4-5.3-5.7-19.7.1-.1.1-.2.2-.2.2-.3.4-.7.6-1-.3-1-.8-2-1.3-2.9l61 74.1 18.6 22.6c-.4.3-.6.7-1 1.1l-95.3-54c.2-.7.1-.8 0-1.2-.2-.2-.4-.5-.7-.7-10.7-13-15.1-17.6-17.3-19.5zM211.8 249c.1.2.2.2.2.4l-54.2 34.1c-1.5-2-4.1-3-6.5-2.4l-29.3-100c.2-.1.3-.1.5-.2.9-.4 1.6-1 2.2-1.7l87.4 63.9c-1 1.7-1.2 4-.3 5.9zm-61.2 32.2c-.2.1-.3.1-.5.2-.4.2-.7.4-1.1.7L66.5 182l47.2-5.9c.1.5.2 1 .5 1.5 1.3 2.8 4.3 4.2 7.2 3.6l29.2 100zm-37-105.8l-47.3 5.9 18.3-59.1 31.5 47.7c-1.7 1.3-2.6 3.4-2.5 5.5zm32.8 127.9l-4.6-3.3-88.7-63.5c-1.5-1.8-2-3-1.3-6L75 243.7c-.1 0-.2.1-.4.1-.3.1-1.1.4-1.3 1.6-.1.9 0 1.9.4 3.4 0 .2.1.2.1.4.4-1.1 1-2.3 1.4-3.4.2-.8.4-1.5.3-1.8v-.1l68.5 38.8 3 1.7c-.8 1.6-.9 3.6-.1 5.4.6 1.5 1.9 2.6 3.3 3.2l-3.8 10.3zm10.2 8.8l-9.5-8.1 2.6-7.2 1.2-3.4c1.1.3 2.4.3 3.6 0l9.3 24.8-7.2-6.1zm8.3 6.5l-9.6-25.5c3.2-1.5 4.6-5.2 3.1-8.4-.1-.2-.2-.2-.2-.4l54.2-34.1c.3.4.6.8 1.1 1.1l-48.6 67.3zm49.9-77.9c-.8.4-1.5 1-2 1.6l-14-10.2-73.5-53.7c.4-.7.7-1.4.8-2.1l65.5 9.1 23.2 55.3zm-70.6-113.6c1.5.7 3.4.7 5.1-.1.2-.1.5-.2.7-.4l41 57.8-62.5-8.6-2.3-.3c.1-1.1-.1-2.1-.6-3.1-.6-1.2-1.5-2.2-2.6-2.9l21.2-42.4zm-.7-.3l-21.1 42.4c-1.6-.7-3.5-.7-5.1.1l-.5.2-31.5-47.8h55.2c.1.7.2 1.6.6 2.2.4 1.2 1.3 2.2 2.4 2.9zM91.3 78.1l49.2 38.8L37 52.1l54.3 26zM34.8 51.7l106.4 66.6c-.4.8-.7 1.7-.7 2.6H84.7L52.4 77.4 34.2 52.7c.2-.4.4-.7.6-1zm-1.2 1.5L43.8 67 84 121.3l-18.3 58.9L32.4 54.1c.5-.3.9-.5 1.2-.9zm-4.1 1.7c.7 0 1.5-.2 2.2-.5L65.1 181c-3.1-3.4-7-6.4-10.2-9.8-3.4-3.5-6.3-7.5-7-13.1l.1-.6c.4.1.8.1 1.1.2.6-1.4.2-2.9.6-4.2 1.4-.2 2.8.2 4.2.1.1-2.8-2-5.6-3.7-8.4-2.4-3.7-4.4-7.3-.2-10.4-1.3-2.5-2.3-4.3-15-9.5-1.1-5.8-6.7-7.9-10-11.8.8.3 1.9.7 2.7 1.1.5-.6 1-1.6 1.1-2.4.7.4 1.8.8 2.7 1l.7-.8c.3-.1.8-.2 1.2-.3 0-.2.1-.5 0-.7-.1-.1-8-8.6-14.4-11.3l7-30.5 3.5-14.7z" class="st4"/>
|
27 |
-
<path d="M18.1 103.7v-.2l.2.2h-.2zM48.3 314v-.2l1.1 2c.2.9.8 2.2 1.6 3.1 1.2 1.4 2.8 2 4.3-.6.5-.9.5-2.4.2-3.4-.9-2.6-2.9-4.6-4-7.1.3-.5.8-1.3 6.9-3.3-1.5 1.1-5.9 5-.7 6.1.8-1.8 2.7-2.5 4-3.9-.2-1.6-1.6-2.8-1.4-4.6 2-1.3 1.9 2.8 3.1 3.9 1.1 1 2.1.5 2.3.3 1.2-1.2 1.2-3 2-4.5 1.1-2 3.4-1.6 5-2.5 1.3-.7 1.1-2.3 1.7-3.4.7.8 1.1 1.1 1.6 1.2.1 0 .2.1.2.1.2-.2.3-.3.2-1.4-.2-1.7-.9-5.8-2.8-16.2 0-.1-1.3-4.7-3.5-8-1.5-2.2-3.4-3.8-5.6-2.8-.4 1.1-.5 2.2-.2 3.3.2 1.1.8 2.7 1.8 5.1 2.6 6.7.5 11.3.5 11.4-.9 1.7-.9 1.7-4.2.2-2.2 2.6 1.9 6.4-1.5 8.6-2.4 1.7-6 .6-8 3.3-2 2.5-2.4 3.5-3.8 5.9-1.5 2.5-1.8 4.2-1.7 5.2.1 1.3.6 1.8.9 2.2zm5.5-146.4c.1 0 .1.1.2.1 0-.3-.5-2.8-1.1-4-.2-.6-.5-.6-.6-.6-.8.3-.5 3.6 1.5 4.5zm5.2 84.9c.4.7 1.2 2.4 1.6 3.9.5 1.8.2 2.6-.3 3.6-.6 1.1-1.4 2.4-1 4.1v.1c.3 1.1 3.3 4.8 4.6 4.6 1.2-.2 1.3-2 .8-3.3-.2-.6-.5-1.1-.9-1.5s-.7-.3-1.1-.3c1-.3 2.2-.2 2.8-.1 1.5.2 2.5.3 3.7-.8.1-.1.1-.2.2-.2.3-.5.2-1.1.5-1.7.7-1.2 1.8-2.2 2.4-3.4.1-.1.2-.3.2-.6-.1-1-.7-1.8-1.1-2.7-.7.8-6.9-1.7-9.6-2.9-2.8-1.2-3.3-1.2-3.7-1.1-.1.1-.2.2-.1.4.1.3.5.9 1 1.9z" class="st4"/>
|
28 |
-
<path d="M62.6 263.9c.1 0 .2-.1.2-.1-.1 0-.2 0-.2.1z" class="st4"/>
|
29 |
-
</g>
|
30 |
-
</g>
|
31 |
-
</g>
|
32 |
-
<path id="logo" d="M76.9 207.1c.9 1.8.8 4.6 1.7 6.4.6.3 1.3.6 1.8.9 7.6-1.1 7.8-10.2 3.9-14.6-1.8-1.7-4.5-2.5-7.8-1-16.8 7.2-32.9 2.6-42.6-7.5-5.3-5.3-8.8-12.1-9.8-19.5-2.6-23.5 16.6-38.4 29.8-40.1 11.8-1.4 23 2.8 30.5 10.4 8.1 8.1 12.5 20.3 9.9 34.4-1.1 6.4-4.9 14.5-13.5 14.5-3.4 0-6.8-1.5-9.2-4.1-2.3-2.2-3.7-5.2-3.9-8.4-.8-12.7 15.5-16.3 14.5-29-.1-2.3-1.1-4.2-2.8-6-4.9-4.7-14.9-6.5-23.9-4.7-11.2 2.3-21.9 12.5-23.9 24.8-1.6 10 2 21.2 9.3 28.9 6.5 6.5 16 10.1 27.5 7.3 3.8-.8 6.7-4.4 12.7-3.4 2.2.3 4 1.4 5.3 2.8 4.9 4.6 4.1 14.2-2.3 16.5-3.3 1.1-9.3.2-11.9-2.6l-.1-.1c-.3-.1-.6-.5-.9-.8-1-.8-1.7-2.5-1.6-4.4.1-2.6 1.8-4.7 3.8-4.5.8.1 1.5.5 2 1 .7.9 1.3 1.7 1.5 2.8m112.9-35.5c.7-.9 1-2 1.4-3.1.5-2.1.5-4.4-.1-6.4-.2-1.1-.7-2.3-1.4-3.1-.7-1-1.7-1.7-2.9-2.2-1.1-.6-2.5-.8-4.2-.8h-3.1c-.6 0-1 .5-1 1v16.9c0 .6.5 1 1 1h2c2.2 0 4-.3 5.3-1 1.1-.2 2.3-1.1 3-2.3m9.2-7.3c0 2.3-.5 4.2-1.4 6-.8 1.7-2.1 3.1-3.7 4.2-1.6 1-3.1 2-5.1 2.5-2 .6-3.9.8-5.9.8h-3.7c-.6 0-1 .5-1 1v11.9c0 .7.1 1.4.5 1.8.2.6.7.9 1.5 1.3.5.1 1 .2 2 .5.6.1 1 .1 1.6.2.6 0 1 .5 1 1s-.5 1-1 1h-16.3c-.6 0-1-.5-1-1v-.1c0-.6.5-1 .9-1 .3 0 .7-.1 1.1-.1.9-.1 1.6-.2 2-.5.6-.2 1-.6 1.4-1.1.2-.6.5-1.1.5-2v-31c0-.7-.1-1.4-.3-2-.2-.6-.7-1-1.4-1.3-.8-.2-1.6-.5-2.3-.6-.3 0-.7-.1-.9-.1-.6-.1-.9-.6-.9-1v-.1c0-.6.5-1 1-1H186c3.9 0 7.1.9 9.6 2.9l.1.1c2 2 3.3 4.6 3.3 7.7zm-36.8-8.4c-.6 0-1 .1-1.7.5-.7.2-1.1.5-1.7.8l-.1.1c-.7.5-1.1.9-1.7 1.5-.5.6-.7 1.4-1.1 2.4v.1c-1.4 4.7-3.1 10.1-4.9 16.4-1.7 6.1-3.8 12.4-5.9 19.3-.1.5-.6.8-1 .8h-1.3c-.5 0-.9-.3-1-.8l-9.5-29.4c-.1-.6-.8-.9-1.4-.7-.3.1-.6.3-.7.7l-10 29.4c-.1.5-.6.7-1 .7h-1c-.5 0-.9-.3-1-.8-2-6.9-3.9-13.9-6-21.3-2.2-7.7-3.6-12.7-4.2-15.4-.1-.6-.5-1-.7-1.6 0-.1-.1-.2-.1-.2-.8-1-2-1.7-3.2-2-.3-.1-.7-.1-.9-.2-.5-.1-.9-.6-.9-1v-.2c0-.6.5-1 1-1h15.4c.6 0 1 .5 1 1v.1c0 .6-.5 1-1 1-1.1.1-2.1.2-2.9.5-1 .2-1.6.6-1.6 1 0 .1 0 .5.1.8.1.2.1.6.1.8.5 1.8 1.4 4.7 2.5 8.8 1 3.6 2.4 8.6 4.2 15 .3 1 1.7 1 2.1 0l9.3-27.9c.1-.5.6-.7 1-.7h1.4c.5 0 .9.3 1 .8l9.4 28.6c.3 1 1.8 1 2.1 0l2.8-9.9c1-3.8 2-6.9 2.5-9.6.5-1.8.8-3.2.9-3.9.1-.7.1-1.3.1-1.8 0-.7-.5-1.3-1.4-1.7-.8-.5-2-.7-3.6-.8-.6-.1-1-.6-1-1 0-.6.5-1 1-1H161c.6 0 1 .5 1 1l.2.8zM292 184l-.8 11.8c0 .6-.5 1-1 1h-31.4c-.6 0-1-.5-1-1v-.1c0-.6.5-1 .9-1 .3 0 .7-.1 1.1-.1.9-.1 1.6-.2 2-.5.6-.2 1-.6 1.4-1.1.2-.6.5-1.1.5-2v-30.8c0-.7-.1-1.3-.5-1.8-.3-.6-.7-.9-1.4-1.3-.5-.2-1-.5-2-.7l-1.3-.3c-.5-.1-.9-.6-.9-1v-.2c0-.6.5-1 1-1h16c.6 0 1 .5 1 1v.1c0 .6-.3 1-.9 1-.3.1-.8.1-1.3.2-.9.1-1.6.5-2 .5-.7.2-1.1.6-1.4 1.3-.2.6-.5 1.3-.5 1.8v28.9c0 1.4.1 2.3.1 3.1.1.7.5 1.4.9 1.7.5.5 1.1.6 2.1.7s2.2.1 3.8.1c.8 0 1.6 0 2.3-.1.7 0 1.5-.1 2.3-.2h.1c.7-.1 1.3-.3 1.8-.5.6-.2.9-.5 1.3-.7.1 0 .1-.1.2-.2.8-.9 1.7-2.3 2.9-4.1.9-1.5 1.5-2.9 2-3.9.1-.5.6-.7 1-.7h1.6l.1.1zm-38.2 12.9H236c-.6 0-1-.5-1-1 0-.6.5-1 1-1s1-.1 1.7-.2c1-.1 1.8-.3 2.2-.6.6-.5 1-.8 1.4-1.4.3-.5.5-1 .5-1.8v-31.3h-.5l-14.6 35.9c-.1.5-.6.7-1 .7-.5 0-.9-.2-1-.7L211 158.6h-.5v25.7c0 2.5.1 4.4.5 5.6.3 1.3.8 2.2 1.5 2.9.5.5 1.4.8 2.8 1.3.8.2 1.4.3 1.8.5.5.1.9.6.9 1v.1c0 .6-.5 1-1 1h-14.8c-.7 0-1.3-.7-1-1.4v-.1c.1-.3.5-.7.8-.7.5-.1.8-.2 1.5-.5 1-.2 1.8-.6 2.3-1 .7-.6 1.1-1.4 1.5-2.6.2-1.1.5-3.1.5-5.9v-22.2c0-1.3-.1-2.3-.5-3.1-.3-.8-.7-1.5-1.4-2-.6-.6-1.4-.9-2.2-1.3h-.1l-1.7-.3c-.6-.1-.9-.6-.9-1.1v-.1c0-.6.5-1 1-1h12.7c.5 0 .8.2 1 .7l11 28.9c.3.9 1.7.9 2.1 0l9.4-24.3c.5-1 .7-2 1-3.1v-.1l.3-1.3c.1-.5.6-.8 1-.8h12.1c.6 0 1 .5 1 1v.1c0 .6-.5 1-.9 1-.3 0-.8.1-1.1.2-.8.1-1.5.3-2 .5-.7.2-1.1.6-1.4 1.3-.2.6-.5 1.1-.5 1.8v31.1c0 .7.1 1.4.5 1.8.2.5.7.9 1.4 1.3.5.2 1 .5 2 .6.5.1.9.1 1.3.2.6.1.9.6.9 1v1.6z" class="st5"/>
|
33 |
-
</g>
|
34 |
-
<g class="st0">
|
35 |
-
<path d="M146.2 2.5h-.1l171.4 171.4.5-.5V2.5z" class="st6"/>
|
36 |
-
</g>
|
37 |
-
<path d="M300.1 51.6v10.5c0 4-1.7 7.3-5.1 9.3-6.3 3.8-12.8 7.5-19.3 11.1-3.5 1.9-7.2 1.9-10.6-.1-6.4-3.6-12.7-7.2-18.9-10.9-3.4-2-5.2-5.2-5.2-9.3-.1-7.2 0-14.3 0-21.5 0-4.1 1.8-7.3 5.3-9.4 6.3-3.7 12.6-7.4 18.9-10.9 3.5-2 7.2-2 10.6-.1 6.5 3.6 12.9 7.3 19.3 11.1 3.3 2 5 5.2 5.1 9.1 0 3.8-.1 7.5-.1 11.1zm-56.1-.2v10.7c-.1 2.9 1.5 5.6 4.1 7 6.1 3.5 12.1 7.1 18.2 10.5 2.5 1.5 5.6 1.5 8.1 0 6.2-3.5 12.3-7 18.4-10.6 2.5-1.4 4.1-4 4-6.9.1-7.1.1-14.2 0-21.3.1-2.9-1.5-5.6-4.1-7-6-3.5-12-6.9-18.1-10.4-2.8-1.6-5.7-1.7-8.5-.1-6 3.4-12.1 6.9-18.1 10.4-2.8 1.6-4.2 4-4.2 7.2.2 3.6.2 7 .2 10.5z" class="st4"/>
|
38 |
-
<path d="M289.8 39.1V46h-26.7c-4.3 0-4.9 1.2-6.2 3.8-.9 1.9-.7 3.8-.8 6h26.7v-3.4h6.9v10.2h-40c-.5-7.1-.6-14 4.4-19.9 2.3-2.7 5.4-3.7 8.7-3.7 8.8-.1 17.6 0 26.4 0 .1-.1.4 0 .6.1z" class="st4"/>
|
39 |
-
</svg>
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
vendor/otgs/icons/plugin-icons/wpml/wcml/icon-128x128.png
DELETED
Binary file
|
vendor/otgs/icons/plugin-icons/wpml/wcml/icon-256x256.png
DELETED
Binary file
|
vendor/otgs/icons/plugin-icons/wpml/wcml/icon.svg
DELETED
@@ -1,38 +0,0 @@
|
|
1 |
-
<svg xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" id="icon" viewBox="0 0 320 320">
|
2 |
-
<style>
|
3 |
-
.st0{clip-path:url(#SVGID_2_)}.st1{fill:url(#bg_2_)}.st2{opacity:.15}.st3{fill:none}.st4,.st5{fill:#fff}.st5{stroke:#fff;stroke-width:.75;stroke-miterlimit:10}.st6{fill:#29a8e0}
|
4 |
-
</style>
|
5 |
-
<defs>
|
6 |
-
<path id="SVGID_1_" d="M312.5 317.5H7.5c-2.8 0-5-2.2-5-5V7.5c0-2.8 2.2-5 5-5h305c2.8 0 5 2.2 5 5v305c0 2.8-2.2 5-5 5z"/>
|
7 |
-
</defs>
|
8 |
-
<clipPath id="SVGID_2_">
|
9 |
-
<use overflow="visible" xlink:href="#SVGID_1_"/>
|
10 |
-
</clipPath>
|
11 |
-
<g class="st0">
|
12 |
-
<g id="bg_1_">
|
13 |
-
<g id="mask">
|
14 |
-
<linearGradient id="bg_2_" x1="321" x2="-1" y1="161.097" y2="161.097" gradientTransform="matrix(1 0 0 -1 0 321)" gradientUnits="userSpaceOnUse">
|
15 |
-
<stop offset="0" stop-color="#33879e"/>
|
16 |
-
<stop offset=".295" stop-color="#3389a1" stop-opacity=".823"/>
|
17 |
-
<stop offset=".52" stop-color="#318dab" stop-opacity=".688"/>
|
18 |
-
<stop offset=".722" stop-color="#2f96bb" stop-opacity=".567"/>
|
19 |
-
<stop offset=".909" stop-color="#2ba1d2" stop-opacity=".455"/>
|
20 |
-
<stop offset="1" stop-color="#29a8e0" stop-opacity=".4"/>
|
21 |
-
</linearGradient>
|
22 |
-
<path id="bg" d="M-1-.3h322v320.5H-1V-.3z" class="st1"/>
|
23 |
-
<g id="earth" class="st2">
|
24 |
-
<path d="M18 299.1c-9.1 10.7-9.1 10.7 3.7 20.9v.1h84.5l39.6-16.1-73.4-52.6c0 .6-.3 1.5-1 2.7.3.9 1 1.7 1.1 2.7 0 .2-.1.5-.2.6-.7 1.2-1.7 2.2-2.4 3.4-.3.5-.2 1.1-.5 1.7-.1.1-.1.2-.2.2-1.1 1.1-2.2 1-3.7.8-.7-.1-1.9-.2-2.8.1.3 0 .7 0 1.1.3.4.3.6.8.9 1.5.5 1.4.4 3.1-.8 3.3-1.3.2-4.3-3.5-4.6-4.6v-.1c-.5-1.6.3-2.9 1-4.1.6-1.1.8-1.8.3-3.6-.4-1.5-1.2-3.1-1.6-3.9-.5-1-.9-1.6-.9-2 0-.1.1-.2.1-.4.4-.2.9-.2 3.7 1.1 2.7 1.1 9 3.8 9.6 2.9-.2-.7-.7-2.8.2-3.3L57 240.4c.7.7 1.4 1.3 2 2 1.1 1.2.9 1.8.9 2-.2.8-.8.4-1.9-.2-.7-.4-.9-.3-1.1 0-.3.7.3 1.4 0 2-1.6-1.2-5.4-7.3-8.2-11.9l-3.3-2.4-.2-.1-2.4 1.7c.7 1.6 1.4 3.2 1.6 4.7.4 1.9 1.9 10.9-.8 21.9-.2 1.1-.6 2.3-1 3.4-1.5 4.7-7.8 2.2-9.6 6.4-.7 1.6-1 3.3-1.1 5.1-.2 2-.3 4.2-.9 6.1l5.5 10.7c2.5 2 4.9 4.2 5.5 7.8.2 1.3.3 2.3.1 3-.6 1.9-2.8 2.8-8 5-2.8-4.2-1.6-10.2-5.9-13.7-.7.1-1.5.2-2.2.4-.1 0-.2 0-.2.1-3-2-1.5-7.3-5.9-8.3-1.5-.3-1.5-.3-8.5 5.1l-1.1-.6c-.5-2.4-.3-4.9-.6-7.3l-.3 13.1c2.9-.4 7.1-.7 8.6 2.7zm31.1 7.8c1.4-2.4 1.9-3.3 3.8-5.9 2-2.7 5.6-1.6 8-3.3 3.4-2.4-.7-6.1 1.5-8.6 3.3 1.6 3.3 1.6 4.2-.2 0-.1 2.1-4.7-.5-11.4-1-2.4-1.5-3.9-1.8-5.1-.3-1.4-.2-2.2.2-3.3 2.2-1.1 4.1.6 5.6 2.8 2.2 3.3 3.5 7.9 3.5 8 1.9 10.4 2.6 14.5 2.8 16.2.1 1.1 0 1.2-.2 1.4-.1 0-.2 0-.2-.1-.5-.2-.9-.4-1.6-1.2-.6 1.1-.4 2.7-1.7 3.4-1.6 1-4 .5-5 2.5-.7 1.5-.7 3.3-2 4.5-.1.1-1.2.7-2.3-.3-1.2-1.1-1.1-5.2-3.1-3.9-.2 1.7 1.1 2.9 1.4 4.6-1.3 1.4-3.2 2.1-4 3.9-5.2-1.1-.8-4.9.6-6.1-6.1 2-6.7 2.8-6.9 3.3 1 2.5 3 4.5 4 7.1.3 1 .3 2.5-.2 3.4-1.5 2.5-3.1 1.9-4.3.6-.8-.9-1.3-2-1.6-3.1l-1.1-2v.2c-.4-.4-.8-1-.9-2 0-1.3.3-2.8 1.8-5.4zm16.5-21.7c.2 0 .5.2.5.5s-.2.5-.3.6c-.5-.4-.6-.7-.2-1.1zM52.2 184.4c-1-2.1-1.9-4.2-2.7-6.4-1.1-2.9-2.3-5.8-3.4-8.6-3.2-7.9-6.7-15.7-12.3-22.1-.4.1-.9.2-1.2.2 1.9 3.2 3.7 4.2 4.4 4.7 1.3 5.6 1.3 5.6.5 7.2-2-.8-2.4-3.7-4.7-4.2-.9-.2-2.8 1.1-3.5 3.7-.8 2.9.1 7.2 6.2 12.5 0 .1-.7 2.4-3.2 5-6.4-2.9-6.4-2.9-7-2.8-.4.7-.6 1.8-.5 2.6-.2.2-.5.2-.7.4-10 5.3-10.1 5.4-10.3 6-1.3 3.7-1.2 7.3-.9 11l39.3-9.2z" class="st3"/>
|
25 |
-
<path d="M62.8 263.8c-.1 0-.2.1-.2.1 0-.1.1-.1.2-.1zM18.1 103.7c.1 0 .2 0 .2.1l-.2-.2v.1zm145.7 214.4l-9.3-24.8c-1.2.3-2.4.3-3.6 0l-1.2 3.4-2.5 7.1 9.5 8.1 7.1 6.2zm-72.5-240L37 52.1l103.4 64.7zM84 121.3L43.8 67 33.6 53.2c-.3.3-.6.6-1.1.8l33.3 126.2L84 121.3zm41.7 51.1c.5 1 .7 2 .6 3.1l2.3.3 62.5 8.6-41-57.8c-.2.2-.5.2-.7.4-1.7.7-3.5.7-5.1.1L123 169.6c1.2.6 2.2 1.5 2.7 2.8zm-59.4 8.9l47.3-5.9c-.1-2.1.8-4.2 2.5-5.5l-31.5-47.7-18.3 59.1zm47.4-5.1l-47.2 5.9L149 282c.3-.2.7-.5 1.1-.7.2-.1.3-.2.5-.2l-29.3-100c-2.8.7-5.9-.7-7.2-3.5-.2-.4-.3-.9-.4-1.4zm-62.2 51.7c.2.2.4.5.6.7.1.4.2.6 0 1.2l95.3 54c.2-.4.6-.8 1-1.1L129.8 260l-61-74.1c.5.9 1 1.9 1.3 2.9-.2.3-.4.7-.6 1-.1.1-.1.2-.2.2 4.4 14.4 5.5 18.4 5.7 19.7.1.5 0 .7-.1.9-6.1-3-10.6-7.1-14.3-11.8-2.7-3.4-4.9-7.2-6.7-11L17.5 205c.7 1.6.6 3.3-.1 4.9.9.4 1.9.8 2.7 1.4.2-.3.6-.7.8-1l1.3 2.1c2.2-.6 2.9-3.8 5.9-3 1.9.6 3.2 1.8 4.3 3.1l.7-1.8c-.4-1.3-.8-2.6-1.3-3.8.7.3 1.2.7 2.3 1.6 2.2 1.9 6.6 6.5 17.4 19.4zM77 239.2c.2-.1.6 0 .7.5.1.5-.4 2.5-.8 2.3-.5-.2-.7-2.4.1-2.8zm65 61l4.6 3.3 3.7-10.3c-1.4-.6-2.5-1.7-3.3-3.2-.8-1.8-.7-3.8.1-5.4l-3-1.7L75.6 244v.1c.1.3-.1 1-.3 1.8-.4 1.1-1 2.3-1.4 3.4 0-.2-.1-.2-.1-.4-.3-1.6-.5-2.5-.3-3.4.2-1.3.9-1.6 1.2-1.7.2 0 .2-.1.4-.1l-23.2-13.1c-.6 3-.2 4.2 1.3 6l88.8 63.6zm-6.3 19.9l9.9-15.2-37.4 15.2zm76.7-70l-54.2 34.1c.1.1.2.2.2.4 1.5 3.2.1 6.9-3.1 8.4l9.6 25.6 48.7-67.3c-.5-.3-.9-.7-1.2-1.2zM9.1 296.9l.3-14.4c-.2 0-.6.1-.7.2-2.4 1.3-5.3 4.9-6.6 8.3l1.6 6.9c1 .5 2.4.7 4.2.7-.1-.3-.2-.8-.2-1.2.2-.1.7-.3 1.4-.5zm9.8-196.7c6.3 2.8 14.3 11.2 14.4 11.3.1.2-.1.5 0 .7-.3.1-.8.2-1.2.3l-.7.8c-.8-.1-2-.6-2.7-1-.1.8-.6 1.8-1.1 2.4-.8-.4-1.9-.8-2.7-1.1 3.3 4 8.8 6.1 10 11.8 12.8 5.1 13.7 6.9 15 9.5-4.1 3.1-2.1 6.7.2 10.4 1.8 2.8 3.8 5.5 3.7 8.4-1.4.1-2.8-.2-4.2-.1-.4 1.4 0 2.9-.6 4.2-.3-.1-.8-.1-1.1-.2l-.1.6c.7 5.5 3.5 9.5 7 13.1 3.3 3.3 7.2 6.3 10.2 9.8L31.7 54.5c-.7.3-1.5.5-2.2.5l-3.4 14.5-7.2 30.7zm34.9 67.4c-2-1-2.4-4.3-1.5-4.5.1 0 .3 0 .6.7.6 1.2 1.1 3.7 1.1 4 0-.1-.1-.2-.2-.2zm109.7 152.5l.7-.6-17.4-14.8-10.1 15.4zM17.3 103.5l.2-.7c-.8-.8-1.6-1.6-2.2-2.4.3-.2.7-.7 1.1-.9.6.1 1.2.2 1.8.5L22 83.3 28.7 55c-3.5-.3-6.1-3.4-5.8-6.9 0-.3.1-.6.2-1m101.7 132c-.6.7-1.3 1.3-2.2 1.7-.2.1-.3.2-.5.2l29.3 100c2.4-.6 5 .4 6.5 2.4l54.2-34.1c-.1-.1-.2-.2-.2-.4-.9-2-.7-4.3.4-6l-87.5-63.8zm66.8 6.2l-65.5-9.1c-.2.7-.4 1.5-.8 2.1l73.5 53.7 14 10.2c.6-.7 1.2-1.2 2-1.6l-23.2-55.3zM17 204.2l36.3-17.1c-.3-.7-.6-1.2-.9-1.9l-39.5 9.1c.2 2.4.6 4.7.6 7 1.6.5 2.8 1.5 3.5 2.9zm123.3-82.6H85.2l31.6 47.8.5-.2c1.7-.7 3.5-.7 5.1-.1l21.1-42.4c-1.1-.7-2-1.6-2.6-2.9-.3-.6-.5-1.4-.6-2.2zm-55.6-.8h55.7c.1-.9.3-1.8.7-2.6L34.8 51.7c-.2.3-.4.7-.6 1l18.3 24.6 32.2 43.5zm140.5 199.3l-7.4-67.4c-1.3.1-2.6-.3-3.7-1l-17.6 24.4-31.2 43.2 2 .8h57.9z" class="st3"/>
|
26 |
-
<path d="M18.3 299c-1.5-3.4-5.7-3.1-8.4-2.4l.3-13.1c.2 2.4.1 4.9.6 7.3l1.1.6c7-5.5 7-5.5 8.5-5.1 4.5 1 2.9 6.3 5.9 8.3.1 0 .2 0 .2-.1.6-.2 1.5-.3 2.2-.4 4.3 3.5 3.2 9.5 5.9 13.7 5.2-2.2 7.4-3.1 8-5 .2-.8.2-1.7-.1-3-.7-3.5-3-5.7-5.5-7.8l-5.5-10.7c.5-2 .6-4.1.9-6.1.2-1.8.5-3.5 1.1-5.1 1.8-4.2 8.1-1.7 9.6-6.4.4-1.1.6-2.3 1-3.4 2.7-11 1.1-20.1.8-21.9-.3-1.6-.9-3.1-1.6-4.7l2.4-1.7.2.1 3.3 2.4c2.8 4.6 6.6 10.7 8.2 11.9.2-.7-.4-1.4 0-2 .2-.3.3-.4 1.1 0 1.1.6 1.7 1 1.9.2.1-.2.2-.8-.9-2-.6-.7-1.3-1.4-2-2L72.1 251c-.8.5-.4 2.5-.2 3.3.6-1.2.9-2.1 1-2.7l73.4 52.6-39.8 16.2h1.9l37.4-15.2-9.9 15.2h1l10.1-15.5 17.4 14.9-.6.6h3.9l-2-.8 31.2-43.2 17.6-24.4c1.1.7 2.4 1.1 3.7 1l7.4 67.4h.9l-7.4-67.5c3.4-.6 5.7-3.9 5.1-7.3-.1-.5-.3-1.1-.5-1.6-1.4-3-4.7-4.4-7.8-3.3l-23.2-55.6v-.1l-41.6-58.6c2.7-2.2 3.2-6.1 1.1-8.9-1.8-2.3-5-3.1-7.6-1.8-.8.4-1.5.9-2.1 1.6L91.7 77.5l-56.3-27c.4-1.5.3-3-.3-4.5 1.3-3.3-.3-7-3.5-8.3-3.2-1.3-6.9.3-8.2 3.5-.7 1.6-.6 3.5.1 5.1l-24-6.5v.7L23.1 47c-.8 3.4 1.2 6.9 4.6 7.8.3.1.6.1 1 .2L22 83.3l-3.9 16.6c-.7-.2-1.2-.4-1.8-.5-.3.2-.7.7-1.1.9.7.9 1.5 1.6 2.2 2.4l-.2.7c-10.8-2.3-13.6-2.8-17.8-1.7v-.1c.2 72.8.6 145.6.8 218.4m8.9-23.1c-.7.2-1.2.4-1.4.5.1.3.2.8.2 1.2-1.9.1-3.3-.2-4.2-.7L2.1 291c1.3-3.4 4.2-7 6.5-8.3.2-.1.5-.2.7-.2l-.2 14.4zm4.5-114.4c.4-.7.5-.8 10.3-6 .2-.2.5-.2.7-.4-.1-.8.1-2 .5-2.6.7-.1.7-.1 7 2.8 2.4-2.5 3.2-4.9 3.2-5-6.1-5.2-7-9.6-6.2-12.5.7-2.5 2.7-3.8 3.5-3.7 2.4.6 2.6 3.3 4.7 4.2.8-1.6.8-1.6-.5-7.2-.7-.4-2.5-1.5-4.4-4.7.4-.1.9-.2 1.2-.2 5.6 6.4 9.1 14.1 12.3 22.1 1.1 2.9 2.3 5.8 3.4 8.6.9 2.2 1.8 4.3 2.7 6.4l-39.3 9.1c-.3-3.6-.4-7.3.9-10.9zm.1 18.8c-.2-2.4-.4-4.7-.7-7l39.6-9.1c.3.7.6 1.3.9 1.9l-36.4 17.1c-.8-1.4-2-2.4-3.4-2.9zm32.5 30.2l.6-.5c.3.5.7 1.1 1 1.7l-1.6-1.2zM34 208.3c-1.1-.9-1.6-1.2-2.3-1.6.5 1.2.9 2.5 1.3 3.8l-.7 1.8c-1.1-1.4-2.4-2.6-4.3-3.1-2.9-.8-3.7 2.4-5.9 3l-1.3-2.1c-.2.3-.6.7-.8 1-.8-.6-1.7-1-2.7-1.4.6-1.5.7-3.3.1-4.9l36.3-17.1c2 3.9 4.1 7.7 6.7 11 3.7 4.8 8.3 8.9 14.4 11.9.1-.2.2-.4.1-.9-.2-1.4-1.4-5.3-5.7-19.7.1-.1.1-.2.2-.2.2-.3.4-.7.6-1-.3-1-.8-2-1.3-2.9l61 74.1 18.6 22.6c-.4.3-.6.7-1 1.1l-95.3-54c.2-.7.1-.8 0-1.2-.2-.2-.4-.5-.7-.7-10.7-13-15.1-17.6-17.3-19.5zM211.8 249c.1.2.2.2.2.4l-54.2 34.1c-1.5-2-4.1-3-6.5-2.4l-29.3-100c.2-.1.3-.1.5-.2.9-.4 1.6-1 2.2-1.7l87.4 63.9c-1 1.7-1.2 4-.3 5.9zm-61.2 32.2c-.2.1-.3.1-.5.2-.4.2-.7.4-1.1.7L66.5 182l47.2-5.9c.1.5.2 1 .5 1.5 1.3 2.8 4.3 4.2 7.2 3.6l29.2 100zm-37-105.8l-47.3 5.9 18.3-59.1 31.5 47.7c-1.7 1.3-2.6 3.4-2.5 5.5zm32.8 127.9l-4.6-3.3-88.7-63.5c-1.5-1.8-2-3-1.3-6L75 243.7c-.1 0-.2.1-.4.1-.3.1-1.1.4-1.3 1.6-.1.9 0 1.9.4 3.4 0 .2.1.2.1.4.4-1.1 1-2.3 1.4-3.4.2-.8.4-1.5.3-1.8v-.1l68.5 38.8 3 1.7c-.8 1.6-.9 3.6-.1 5.4.6 1.5 1.9 2.6 3.3 3.2l-3.8 10.3zm10.2 8.8l-9.5-8.1 2.6-7.2 1.2-3.4c1.1.3 2.4.3 3.6 0l9.3 24.8-7.2-6.1zm8.3 6.5l-9.6-25.5c3.2-1.5 4.6-5.2 3.1-8.4-.1-.2-.2-.2-.2-.4l54.2-34.1c.3.4.6.8 1.1 1.1l-48.6 67.3zm49.9-77.9c-.8.4-1.5 1-2 1.6l-14-10.2-73.5-53.7c.4-.7.7-1.4.8-2.1l65.5 9.1 23.2 55.3zm-70.6-113.6c1.5.7 3.4.7 5.1-.1.2-.1.5-.2.7-.4l41 57.8-62.5-8.6-2.3-.3c.1-1.1-.1-2.1-.6-3.1-.6-1.2-1.5-2.2-2.6-2.9l21.2-42.4zm-.7-.3l-21.1 42.4c-1.6-.7-3.5-.7-5.1.1l-.5.2-31.5-47.8h55.2c.1.7.2 1.6.6 2.2.4 1.2 1.3 2.2 2.4 2.9zM91.3 78.1l49.2 38.8L37 52.1l54.3 26zM34.8 51.7l106.4 66.6c-.4.8-.7 1.7-.7 2.6H84.7L52.4 77.4 34.2 52.7c.2-.4.4-.7.6-1zm-1.2 1.5L43.8 67 84 121.3l-18.3 58.9L32.4 54.1c.5-.3.9-.5 1.2-.9zm-4.1 1.7c.7 0 1.5-.2 2.2-.5L65.1 181c-3.1-3.4-7-6.4-10.2-9.8-3.4-3.5-6.3-7.5-7-13.1l.1-.6c.4.1.8.1 1.1.2.6-1.4.2-2.9.6-4.2 1.4-.2 2.8.2 4.2.1.1-2.8-2-5.6-3.7-8.4-2.4-3.7-4.4-7.3-.2-10.4-1.3-2.5-2.3-4.3-15-9.5-1.1-5.8-6.7-7.9-10-11.8.8.3 1.9.7 2.7 1.1.5-.6 1-1.6 1.1-2.4.7.4 1.8.8 2.7 1l.7-.8c.3-.1.8-.2 1.2-.3 0-.2.1-.5 0-.7-.1-.1-8-8.6-14.4-11.3l7-30.5 3.5-14.7z" class="st4"/>
|
27 |
-
<path d="M18.1 103.7v-.2l.2.2h-.2zM48.3 314v-.2l1.1 2c.2.9.8 2.2 1.6 3.1 1.2 1.4 2.8 2 4.3-.6.5-.9.5-2.4.2-3.4-.9-2.6-2.9-4.6-4-7.1.3-.5.8-1.3 6.9-3.3-1.5 1.1-5.9 5-.7 6.1.8-1.8 2.7-2.5 4-3.9-.2-1.6-1.6-2.8-1.4-4.6 2-1.3 1.9 2.8 3.1 3.9 1.1 1 2.1.5 2.3.3 1.2-1.2 1.2-3 2-4.5 1.1-2 3.4-1.6 5-2.5 1.3-.7 1.1-2.3 1.7-3.4.7.8 1.1 1.1 1.6 1.2.1 0 .2.1.2.1.2-.2.3-.3.2-1.4-.2-1.7-.9-5.8-2.8-16.2 0-.1-1.3-4.7-3.5-8-1.5-2.2-3.4-3.8-5.6-2.8-.4 1.1-.5 2.2-.2 3.3.2 1.1.8 2.7 1.8 5.1 2.6 6.7.5 11.3.5 11.4-.9 1.7-.9 1.7-4.2.2-2.2 2.6 1.9 6.4-1.5 8.6-2.4 1.7-6 .6-8 3.3-2 2.5-2.4 3.5-3.8 5.9-1.5 2.5-1.8 4.2-1.7 5.2.1 1.3.6 1.8.9 2.2zm5.5-146.4c.1 0 .1.1.2.1 0-.3-.5-2.8-1.1-4-.2-.6-.5-.6-.6-.6-.8.3-.5 3.6 1.5 4.5zm5.2 84.9c.4.7 1.2 2.4 1.6 3.9.5 1.8.2 2.6-.3 3.6-.6 1.1-1.4 2.4-1 4.1v.1c.3 1.1 3.3 4.8 4.6 4.6 1.2-.2 1.3-2 .8-3.3-.2-.6-.5-1.1-.9-1.5s-.7-.3-1.1-.3c1-.3 2.2-.2 2.8-.1 1.5.2 2.5.3 3.7-.8.1-.1.1-.2.2-.2.3-.5.2-1.1.5-1.7.7-1.2 1.8-2.2 2.4-3.4.1-.1.2-.3.2-.6-.1-1-.7-1.8-1.1-2.7-.7.8-6.9-1.7-9.6-2.9-2.8-1.2-3.3-1.2-3.7-1.1-.1.1-.2.2-.1.4.1.3.5.9 1 1.9z" class="st4"/>
|
28 |
-
<path d="M62.6 263.9c.1 0 .2-.1.2-.1-.1 0-.2 0-.2.1z" class="st4"/>
|
29 |
-
</g>
|
30 |
-
</g>
|
31 |
-
</g>
|
32 |
-
<path id="logo" d="M76.9 207.1c.9 1.8.8 4.6 1.7 6.4.6.3 1.3.6 1.8.9 7.6-1.1 7.8-10.2 3.9-14.6-1.8-1.7-4.5-2.5-7.8-1-16.8 7.2-32.9 2.6-42.6-7.5-5.3-5.3-8.8-12.1-9.8-19.5-2.6-23.5 16.6-38.4 29.8-40.1 11.8-1.4 23 2.8 30.5 10.4 8.1 8.1 12.5 20.3 9.9 34.4-1.1 6.4-4.9 14.5-13.5 14.5-3.4 0-6.8-1.5-9.2-4.1-2.3-2.2-3.7-5.2-3.9-8.4-.8-12.7 15.5-16.3 14.5-29-.1-2.3-1.1-4.2-2.8-6-4.9-4.7-14.9-6.5-23.9-4.7-11.2 2.3-21.9 12.5-23.9 24.8-1.6 10 2 21.2 9.3 28.9 6.5 6.5 16 10.1 27.5 7.3 3.8-.8 6.7-4.4 12.7-3.4 2.2.3 4 1.4 5.3 2.8 4.9 4.6 4.1 14.2-2.3 16.5-3.3 1.1-9.3.2-11.9-2.6l-.1-.1c-.3-.1-.6-.5-.9-.8-1-.8-1.7-2.5-1.6-4.4.1-2.6 1.8-4.7 3.8-4.5.8.1 1.5.5 2 1 .7.9 1.3 1.7 1.5 2.8m112.9-35.5c.7-.9 1-2 1.4-3.1.5-2.1.5-4.4-.1-6.4-.2-1.1-.7-2.3-1.4-3.1-.7-1-1.7-1.7-2.9-2.2-1.1-.6-2.5-.8-4.2-.8h-3.1c-.6 0-1 .5-1 1v16.9c0 .6.5 1 1 1h2c2.2 0 4-.3 5.3-1 1.1-.2 2.3-1.1 3-2.3m9.2-7.3c0 2.3-.5 4.2-1.4 6-.8 1.7-2.1 3.1-3.7 4.2-1.6 1-3.1 2-5.1 2.5-2 .6-3.9.8-5.9.8h-3.7c-.6 0-1 .5-1 1v11.9c0 .7.1 1.4.5 1.8.2.6.7.9 1.5 1.3.5.1 1 .2 2 .5.6.1 1 .1 1.6.2.6 0 1 .5 1 1s-.5 1-1 1h-16.3c-.6 0-1-.5-1-1v-.1c0-.6.5-1 .9-1 .3 0 .7-.1 1.1-.1.9-.1 1.6-.2 2-.5.6-.2 1-.6 1.4-1.1.2-.6.5-1.1.5-2v-31c0-.7-.1-1.4-.3-2-.2-.6-.7-1-1.4-1.3-.8-.2-1.6-.5-2.3-.6-.3 0-.7-.1-.9-.1-.6-.1-.9-.6-.9-1v-.1c0-.6.5-1 1-1H186c3.9 0 7.1.9 9.6 2.9l.1.1c2 2 3.3 4.6 3.3 7.7zm-36.8-8.4c-.6 0-1 .1-1.7.5-.7.2-1.1.5-1.7.8l-.1.1c-.7.5-1.1.9-1.7 1.5-.5.6-.7 1.4-1.1 2.4v.1c-1.4 4.7-3.1 10.1-4.9 16.4-1.7 6.1-3.8 12.4-5.9 19.3-.1.5-.6.8-1 .8h-1.3c-.5 0-.9-.3-1-.8l-9.5-29.4c-.1-.6-.8-.9-1.4-.7-.3.1-.6.3-.7.7l-10 29.4c-.1.5-.6.7-1 .7h-1c-.5 0-.9-.3-1-.8-2-6.9-3.9-13.9-6-21.3-2.2-7.7-3.6-12.7-4.2-15.4-.1-.6-.5-1-.7-1.6 0-.1-.1-.2-.1-.2-.8-1-2-1.7-3.2-2-.3-.1-.7-.1-.9-.2-.5-.1-.9-.6-.9-1v-.2c0-.6.5-1 1-1h15.4c.6 0 1 .5 1 1v.1c0 .6-.5 1-1 1-1.1.1-2.1.2-2.9.5-1 .2-1.6.6-1.6 1 0 .1 0 .5.1.8.1.2.1.6.1.8.5 1.8 1.4 4.7 2.5 8.8 1 3.6 2.4 8.6 4.2 15 .3 1 1.7 1 2.1 0l9.3-27.9c.1-.5.6-.7 1-.7h1.4c.5 0 .9.3 1 .8l9.4 28.6c.3 1 1.8 1 2.1 0l2.8-9.9c1-3.8 2-6.9 2.5-9.6.5-1.8.8-3.2.9-3.9.1-.7.1-1.3.1-1.8 0-.7-.5-1.3-1.4-1.7-.8-.5-2-.7-3.6-.8-.6-.1-1-.6-1-1 0-.6.5-1 1-1H161c.6 0 1 .5 1 1l.2.8zM292 184l-.8 11.8c0 .6-.5 1-1 1h-31.4c-.6 0-1-.5-1-1v-.1c0-.6.5-1 .9-1 .3 0 .7-.1 1.1-.1.9-.1 1.6-.2 2-.5.6-.2 1-.6 1.4-1.1.2-.6.5-1.1.5-2v-30.8c0-.7-.1-1.3-.5-1.8-.3-.6-.7-.9-1.4-1.3-.5-.2-1-.5-2-.7l-1.3-.3c-.5-.1-.9-.6-.9-1v-.2c0-.6.5-1 1-1h16c.6 0 1 .5 1 1v.1c0 .6-.3 1-.9 1-.3.1-.8.1-1.3.2-.9.1-1.6.5-2 .5-.7.2-1.1.6-1.4 1.3-.2.6-.5 1.3-.5 1.8v28.9c0 1.4.1 2.3.1 3.1.1.7.5 1.4.9 1.7.5.5 1.1.6 2.1.7s2.2.1 3.8.1c.8 0 1.6 0 2.3-.1.7 0 1.5-.1 2.3-.2h.1c.7-.1 1.3-.3 1.8-.5.6-.2.9-.5 1.3-.7.1 0 .1-.1.2-.2.8-.9 1.7-2.3 2.9-4.1.9-1.5 1.5-2.9 2-3.9.1-.5.6-.7 1-.7h1.6l.1.1zm-38.2 12.9H236c-.6 0-1-.5-1-1 0-.6.5-1 1-1s1-.1 1.7-.2c1-.1 1.8-.3 2.2-.6.6-.5 1-.8 1.4-1.4.3-.5.5-1 .5-1.8v-31.3h-.5l-14.6 35.9c-.1.5-.6.7-1 .7-.5 0-.9-.2-1-.7L211 158.6h-.5v25.7c0 2.5.1 4.4.5 5.6.3 1.3.8 2.2 1.5 2.9.5.5 1.4.8 2.8 1.3.8.2 1.4.3 1.8.5.5.1.9.6.9 1v.1c0 .6-.5 1-1 1h-14.8c-.7 0-1.3-.7-1-1.4v-.1c.1-.3.5-.7.8-.7.5-.1.8-.2 1.5-.5 1-.2 1.8-.6 2.3-1 .7-.6 1.1-1.4 1.5-2.6.2-1.1.5-3.1.5-5.9v-22.2c0-1.3-.1-2.3-.5-3.1-.3-.8-.7-1.5-1.4-2-.6-.6-1.4-.9-2.2-1.3h-.1l-1.7-.3c-.6-.1-.9-.6-.9-1.1v-.1c0-.6.5-1 1-1h12.7c.5 0 .8.2 1 .7l11 28.9c.3.9 1.7.9 2.1 0l9.4-24.3c.5-1 .7-2 1-3.1v-.1l.3-1.3c.1-.5.6-.8 1-.8h12.1c.6 0 1 .5 1 1v.1c0 .6-.5 1-.9 1-.3 0-.8.1-1.1.2-.8.1-1.5.3-2 .5-.7.2-1.1.6-1.4 1.3-.2.6-.5 1.1-.5 1.8v31.1c0 .7.1 1.4.5 1.8.2.5.7.9 1.4 1.3.5.2 1 .5 2 .6.5.1.9.1 1.3.2.6.1.9.6.9 1v1.6z" class="st5"/>
|
33 |
-
</g>
|
34 |
-
<g class="st0">
|
35 |
-
<path d="M146.2 2.5h-.1l171.4 171.4.5-.5V2.5z" class="st6"/>
|
36 |
-
</g>
|
37 |
-
<path d="M257.3 61.2H291c3.8 0 6.9-3.1 7-7V38.9s0-.1-.1-.1l-.1-.1-.1-.1-.1-.1-.1-.1-.1-.1-.1-.1c-.1-.1-.1 0-.1-.1h-.1s-.1 0-.1-.1l-.2-.1h-.6L253.4 32v-6.7s0-.1-.1-.1v-.1s0-.1-.1-.1v-.2s0-.1-.1-.1l-.1-.1-.1-.1h-.1s-.1 0-.1-.1c0 0-.1 0-.1-.1-.1 0-.1-.1-.2-.1l-9.3-3.9c-.9-.4-1.9 0-2.2.9-.4.9 0 1.9.9 2.2l8.2 3.5v37.3c0 3.5 2.6 6.4 6.1 6.9-2 3.3-.9 7.5 2.4 9.4 3.3 2 7.5.9 9.4-2.4.6-1.1 1-2.3 1-3.5 0-1.2-.3-2.4-.9-3.5h15.3c-.6 1-.9 2.2-.9 3.5 0 3.8 3.1 6.9 6.9 6.9 3.8 0 6.9-3.1 6.9-6.9s-3.1-6.9-6.9-6.9h-32.1c-2 0-3.6-1.6-3.6-3.6v-4.6c1.2 1.4 2.4 1.7 3.7 1.7zm8.4 14.1c0 1.9-1.6 3.5-3.5 3.5s-3.5-1.6-3.5-3.5 1.6-3.5 3.5-3.5c2 0 3.5 1.6 3.5 3.5zm27.2 0c0 1.9-1.6 3.5-3.5 3.5s-3.5-1.6-3.5-3.5 1.6-3.5 3.5-3.5 3.5 1.6 3.5 3.5zM291 57.8h-33.8c-2 0-3.6-1.6-3.6-3.6V35.9l40.9 5.6v12.7c.1 2-1.5 3.6-3.5 3.6z" class="st5"/>
|
38 |
-
</svg>
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
vendor/otgs/icons/plugin-icons/wpml/wpml-all-import/icon-128.x128.png
DELETED
Binary file
|
vendor/otgs/icons/plugin-icons/wpml/wpml-all-import/icon-256x256.png
DELETED
Binary file
|
vendor/otgs/icons/plugin-icons/wpml/wpml-all-import/icon.svg
DELETED
@@ -1,39 +0,0 @@
|
|
1 |
-
<svg xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" id="icon" viewBox="0 0 320 320">
|
2 |
-
<style>
|
3 |
-
.st0{clip-path:url(#SVGID_2_)}.st1{fill:url(#bg_2_)}.st2{opacity:.15}.st3{fill:none}.st4,.st5{fill:#fff}.st5{stroke:#fff;stroke-width:.75;stroke-miterlimit:10}.st6{fill:#29a8e0}.st7{fill:#fff;stroke:#fff;stroke-miterlimit:10}
|
4 |
-
</style>
|
5 |
-
<defs>
|
6 |
-
<path id="SVGID_1_" d="M312.5 317.5H7.5c-2.8 0-5-2.2-5-5V7.5c0-2.8 2.2-5 5-5h305c2.8 0 5 2.2 5 5v305c0 2.8-2.2 5-5 5z"/>
|
7 |
-
</defs>
|
8 |
-
<clipPath id="SVGID_2_">
|
9 |
-
<use overflow="visible" xlink:href="#SVGID_1_"/>
|
10 |
-
</clipPath>
|
11 |
-
<g class="st0">
|
12 |
-
<g id="bg_1_">
|
13 |
-
<g id="mask">
|
14 |
-
<linearGradient id="bg_2_" x1="321" x2="-1" y1="161.097" y2="161.097" gradientTransform="matrix(1 0 0 -1 0 321)" gradientUnits="userSpaceOnUse">
|
15 |
-
<stop offset="0" stop-color="#33879e"/>
|
16 |
-
<stop offset=".295" stop-color="#3389a1" stop-opacity=".823"/>
|
17 |
-
<stop offset=".52" stop-color="#318dab" stop-opacity=".688"/>
|
18 |
-
<stop offset=".722" stop-color="#2f96bb" stop-opacity=".567"/>
|
19 |
-
<stop offset=".909" stop-color="#2ba1d2" stop-opacity=".455"/>
|
20 |
-
<stop offset="1" stop-color="#29a8e0" stop-opacity=".4"/>
|
21 |
-
</linearGradient>
|
22 |
-
<path id="bg" d="M-1-.3h322v320.5H-1V-.3z" class="st1"/>
|
23 |
-
<g id="earth" class="st2">
|
24 |
-
<path d="M18 299.1c-9.1 10.7-9.1 10.7 3.7 20.9v.1h84.5l39.6-16.1-73.4-52.6c0 .6-.3 1.5-1 2.7.3.9 1 1.7 1.1 2.7 0 .2-.1.5-.2.6-.7 1.2-1.7 2.2-2.4 3.4-.3.5-.2 1.1-.5 1.7-.1.1-.1.2-.2.2-1.1 1.1-2.2 1-3.7.8-.7-.1-1.9-.2-2.8.1.3 0 .7 0 1.1.3.4.3.6.8.9 1.5.5 1.4.4 3.1-.8 3.3-1.3.2-4.3-3.5-4.6-4.6v-.1c-.5-1.6.3-2.9 1-4.1.6-1.1.8-1.8.3-3.6-.4-1.5-1.2-3.1-1.6-3.9-.5-1-.9-1.6-.9-2 0-.1.1-.2.1-.4.4-.2.9-.2 3.7 1.1 2.7 1.1 9 3.8 9.6 2.9-.2-.7-.7-2.8.2-3.3L57 240.4c.7.7 1.4 1.3 2 2 1.1 1.2.9 1.8.9 2-.2.8-.8.4-1.9-.2-.7-.4-.9-.3-1.1 0-.3.7.3 1.4 0 2-1.6-1.2-5.4-7.3-8.2-11.9l-3.3-2.4-.2-.1-2.4 1.7c.7 1.6 1.4 3.2 1.6 4.7.4 1.9 1.9 10.9-.8 21.9-.2 1.1-.6 2.3-1 3.4-1.5 4.7-7.8 2.2-9.6 6.4-.7 1.6-1 3.3-1.1 5.1-.2 2-.3 4.2-.9 6.1l5.5 10.7c2.5 2 4.9 4.2 5.5 7.8.2 1.3.3 2.3.1 3-.6 1.9-2.8 2.8-8 5-2.8-4.2-1.6-10.2-5.9-13.7-.7.1-1.5.2-2.2.4-.1 0-.2 0-.2.1-3-2-1.5-7.3-5.9-8.3-1.5-.3-1.5-.3-8.5 5.1l-1.1-.6c-.5-2.4-.3-4.9-.6-7.3l-.3 13.1c2.9-.4 7.1-.7 8.6 2.7zm31.1 7.8c1.4-2.4 1.9-3.3 3.8-5.9 2-2.7 5.6-1.6 8-3.3 3.4-2.4-.7-6.1 1.5-8.6 3.3 1.6 3.3 1.6 4.2-.2 0-.1 2.1-4.7-.5-11.4-1-2.4-1.5-3.9-1.8-5.1-.3-1.4-.2-2.2.2-3.3 2.2-1.1 4.1.6 5.6 2.8 2.2 3.3 3.5 7.9 3.5 8 1.9 10.4 2.6 14.5 2.8 16.2.1 1.1 0 1.2-.2 1.4-.1 0-.2 0-.2-.1-.5-.2-.9-.4-1.6-1.2-.6 1.1-.4 2.7-1.7 3.4-1.6 1-4 .5-5 2.5-.7 1.5-.7 3.3-2 4.5-.1.1-1.2.7-2.3-.3-1.2-1.1-1.1-5.2-3.1-3.9-.2 1.7 1.1 2.9 1.4 4.6-1.3 1.4-3.2 2.1-4 3.9-5.2-1.1-.8-4.9.6-6.1-6.1 2-6.7 2.8-6.9 3.3 1 2.5 3 4.5 4 7.1.3 1 .3 2.5-.2 3.4-1.5 2.5-3.1 1.9-4.3.6-.8-.9-1.3-2-1.6-3.1l-1.1-2v.2c-.4-.4-.8-1-.9-2 0-1.3.3-2.8 1.8-5.4zm16.5-21.7c.2 0 .5.2.5.5s-.2.5-.3.6c-.5-.4-.6-.7-.2-1.1zM52.2 184.4c-1-2.1-1.9-4.2-2.7-6.4-1.1-2.9-2.3-5.8-3.4-8.6-3.2-7.9-6.7-15.7-12.3-22.1-.4.1-.9.2-1.2.2 1.9 3.2 3.7 4.2 4.4 4.7 1.3 5.6 1.3 5.6.5 7.2-2-.8-2.4-3.7-4.7-4.2-.9-.2-2.8 1.1-3.5 3.7-.8 2.9.1 7.2 6.2 12.5 0 .1-.7 2.4-3.2 5-6.4-2.9-6.4-2.9-7-2.8-.4.7-.6 1.8-.5 2.6-.2.2-.5.2-.7.4-10 5.3-10.1 5.4-10.3 6-1.3 3.7-1.2 7.3-.9 11l39.3-9.2z" class="st3"/>
|
25 |
-
<path d="M62.8 263.8c-.1 0-.2.1-.2.1 0-.1.1-.1.2-.1zM18.1 103.7c.1 0 .2 0 .2.1l-.2-.2v.1zm145.7 214.4l-9.3-24.8c-1.2.3-2.4.3-3.6 0l-1.2 3.4-2.5 7.1 9.5 8.1 7.1 6.2zm-72.5-240L37 52.1l103.4 64.7zM84 121.3L43.8 67 33.6 53.2c-.3.3-.6.6-1.1.8l33.3 126.2L84 121.3zm41.7 51.1c.5 1 .7 2 .6 3.1l2.3.3 62.5 8.6-41-57.8c-.2.2-.5.2-.7.4-1.7.7-3.5.7-5.1.1L123 169.6c1.2.6 2.2 1.5 2.7 2.8zm-59.4 8.9l47.3-5.9c-.1-2.1.8-4.2 2.5-5.5l-31.5-47.7-18.3 59.1zm47.4-5.1l-47.2 5.9L149 282c.3-.2.7-.5 1.1-.7.2-.1.3-.2.5-.2l-29.3-100c-2.8.7-5.9-.7-7.2-3.5-.2-.4-.3-.9-.4-1.4zm-62.2 51.7c.2.2.4.5.6.7.1.4.2.6 0 1.2l95.3 54c.2-.4.6-.8 1-1.1L129.8 260l-61-74.1c.5.9 1 1.9 1.3 2.9-.2.3-.4.7-.6 1-.1.1-.1.2-.2.2 4.4 14.4 5.5 18.4 5.7 19.7.1.5 0 .7-.1.9-6.1-3-10.6-7.1-14.3-11.8-2.7-3.4-4.9-7.2-6.7-11L17.5 205c.7 1.6.6 3.3-.1 4.9.9.4 1.9.8 2.7 1.4.2-.3.6-.7.8-1l1.3 2.1c2.2-.6 2.9-3.8 5.9-3 1.9.6 3.2 1.8 4.3 3.1l.7-1.8c-.4-1.3-.8-2.6-1.3-3.8.7.3 1.2.7 2.3 1.6 2.2 1.9 6.6 6.5 17.4 19.4zM77 239.2c.2-.1.6 0 .7.5.1.5-.4 2.5-.8 2.3-.5-.2-.7-2.4.1-2.8zm65 61l4.6 3.3 3.7-10.3c-1.4-.6-2.5-1.7-3.3-3.2-.8-1.8-.7-3.8.1-5.4l-3-1.7L75.6 244v.1c.1.3-.1 1-.3 1.8-.4 1.1-1 2.3-1.4 3.4 0-.2-.1-.2-.1-.4-.3-1.6-.5-2.5-.3-3.4.2-1.3.9-1.6 1.2-1.7.2 0 .2-.1.4-.1l-23.2-13.1c-.6 3-.2 4.2 1.3 6l88.8 63.6zm-6.3 19.9l9.9-15.2-37.4 15.2zm76.7-70l-54.2 34.1c.1.1.2.2.2.4 1.5 3.2.1 6.9-3.1 8.4l9.6 25.6 48.7-67.3c-.5-.3-.9-.7-1.2-1.2zM9.1 296.9l.3-14.4c-.2 0-.6.1-.7.2-2.4 1.3-5.3 4.9-6.6 8.3l1.6 6.9c1 .5 2.4.7 4.2.7-.1-.3-.2-.8-.2-1.2.2-.1.7-.3 1.4-.5zm9.8-196.7c6.3 2.8 14.3 11.2 14.4 11.3.1.2-.1.5 0 .7-.3.1-.8.2-1.2.3l-.7.8c-.8-.1-2-.6-2.7-1-.1.8-.6 1.8-1.1 2.4-.8-.4-1.9-.8-2.7-1.1 3.3 4 8.8 6.1 10 11.8 12.8 5.1 13.7 6.9 15 9.5-4.1 3.1-2.1 6.7.2 10.4 1.8 2.8 3.8 5.5 3.7 8.4-1.4.1-2.8-.2-4.2-.1-.4 1.4 0 2.9-.6 4.2-.3-.1-.8-.1-1.1-.2l-.1.6c.7 5.5 3.5 9.5 7 13.1 3.3 3.3 7.2 6.3 10.2 9.8L31.7 54.5c-.7.3-1.5.5-2.2.5l-3.4 14.5-7.2 30.7zm34.9 67.4c-2-1-2.4-4.3-1.5-4.5.1 0 .3 0 .6.7.6 1.2 1.1 3.7 1.1 4 0-.1-.1-.2-.2-.2zm109.7 152.5l.7-.6-17.4-14.8-10.1 15.4zM17.3 103.5l.2-.7c-.8-.8-1.6-1.6-2.2-2.4.3-.2.7-.7 1.1-.9.6.1 1.2.2 1.8.5L22 83.3 28.7 55c-3.5-.3-6.1-3.4-5.8-6.9 0-.3.1-.6.2-1m101.7 132c-.6.7-1.3 1.3-2.2 1.7-.2.1-.3.2-.5.2l29.3 100c2.4-.6 5 .4 6.5 2.4l54.2-34.1c-.1-.1-.2-.2-.2-.4-.9-2-.7-4.3.4-6l-87.5-63.8zm66.8 6.2l-65.5-9.1c-.2.7-.4 1.5-.8 2.1l73.5 53.7 14 10.2c.6-.7 1.2-1.2 2-1.6l-23.2-55.3zM17 204.2l36.3-17.1c-.3-.7-.6-1.2-.9-1.9l-39.5 9.1c.2 2.4.6 4.7.6 7 1.6.5 2.8 1.5 3.5 2.9zm123.3-82.6H85.2l31.6 47.8.5-.2c1.7-.7 3.5-.7 5.1-.1l21.1-42.4c-1.1-.7-2-1.6-2.6-2.9-.3-.6-.5-1.4-.6-2.2zm-55.6-.8h55.7c.1-.9.3-1.8.7-2.6L34.8 51.7c-.2.3-.4.7-.6 1l18.3 24.6 32.2 43.5zm140.5 199.3l-7.4-67.4c-1.3.1-2.6-.3-3.7-1l-17.6 24.4-31.2 43.2 2 .8h57.9z" class="st3"/>
|
26 |
-
<path d="M18.3 299c-1.5-3.4-5.7-3.1-8.4-2.4l.3-13.1c.2 2.4.1 4.9.6 7.3l1.1.6c7-5.5 7-5.5 8.5-5.1 4.5 1 2.9 6.3 5.9 8.3.1 0 .2 0 .2-.1.6-.2 1.5-.3 2.2-.4 4.3 3.5 3.2 9.5 5.9 13.7 5.2-2.2 7.4-3.1 8-5 .2-.8.2-1.7-.1-3-.7-3.5-3-5.7-5.5-7.8l-5.5-10.7c.5-2 .6-4.1.9-6.1.2-1.8.5-3.5 1.1-5.1 1.8-4.2 8.1-1.7 9.6-6.4.4-1.1.6-2.3 1-3.4 2.7-11 1.1-20.1.8-21.9-.3-1.6-.9-3.1-1.6-4.7l2.4-1.7.2.1 3.3 2.4c2.8 4.6 6.6 10.7 8.2 11.9.2-.7-.4-1.4 0-2 .2-.3.3-.4 1.1 0 1.1.6 1.7 1 1.9.2.1-.2.2-.8-.9-2-.6-.7-1.3-1.4-2-2L72.1 251c-.8.5-.4 2.5-.2 3.3.6-1.2.9-2.1 1-2.7l73.4 52.6-39.8 16.2h1.9l37.4-15.2-9.9 15.2h1l10.1-15.5 17.4 14.9-.6.6h3.9l-2-.8 31.2-43.2 17.6-24.4c1.1.7 2.4 1.1 3.7 1l7.4 67.4h.9l-7.4-67.5c3.4-.6 5.7-3.9 5.1-7.3-.1-.5-.3-1.1-.5-1.6-1.4-3-4.7-4.4-7.8-3.3l-23.2-55.6v-.1l-41.6-58.6c2.7-2.2 3.2-6.1 1.1-8.9-1.8-2.3-5-3.1-7.6-1.8-.8.4-1.5.9-2.1 1.6L91.7 77.5l-56.3-27c.4-1.5.3-3-.3-4.5 1.3-3.3-.3-7-3.5-8.3-3.2-1.3-6.9.3-8.2 3.5-.7 1.6-.6 3.5.1 5.1l-24-6.5v.7L23.1 47c-.8 3.4 1.2 6.9 4.6 7.8.3.1.6.1 1 .2L22 83.3l-3.9 16.6c-.7-.2-1.2-.4-1.8-.5-.3.2-.7.7-1.1.9.7.9 1.5 1.6 2.2 2.4l-.2.7c-10.8-2.3-13.6-2.8-17.8-1.7v-.1c.2 72.8.6 145.6.8 218.4m8.9-23.1c-.7.2-1.2.4-1.4.5.1.3.2.8.2 1.2-1.9.1-3.3-.2-4.2-.7L2.1 291c1.3-3.4 4.2-7 6.5-8.3.2-.1.5-.2.7-.2l-.2 14.4zm4.5-114.4c.4-.7.5-.8 10.3-6 .2-.2.5-.2.7-.4-.1-.8.1-2 .5-2.6.7-.1.7-.1 7 2.8 2.4-2.5 3.2-4.9 3.2-5-6.1-5.2-7-9.6-6.2-12.5.7-2.5 2.7-3.8 3.5-3.7 2.4.6 2.6 3.3 4.7 4.2.8-1.6.8-1.6-.5-7.2-.7-.4-2.5-1.5-4.4-4.7.4-.1.9-.2 1.2-.2 5.6 6.4 9.1 14.1 12.3 22.1 1.1 2.9 2.3 5.8 3.4 8.6.9 2.2 1.8 4.3 2.7 6.4l-39.3 9.1c-.3-3.6-.4-7.3.9-10.9zm.1 18.8c-.2-2.4-.4-4.7-.7-7l39.6-9.1c.3.7.6 1.3.9 1.9l-36.4 17.1c-.8-1.4-2-2.4-3.4-2.9zm32.5 30.2l.6-.5c.3.5.7 1.1 1 1.7l-1.6-1.2zM34 208.3c-1.1-.9-1.6-1.2-2.3-1.6.5 1.2.9 2.5 1.3 3.8l-.7 1.8c-1.1-1.4-2.4-2.6-4.3-3.1-2.9-.8-3.7 2.4-5.9 3l-1.3-2.1c-.2.3-.6.7-.8 1-.8-.6-1.7-1-2.7-1.4.6-1.5.7-3.3.1-4.9l36.3-17.1c2 3.9 4.1 7.7 6.7 11 3.7 4.8 8.3 8.9 14.4 11.9.1-.2.2-.4.1-.9-.2-1.4-1.4-5.3-5.7-19.7.1-.1.1-.2.2-.2.2-.3.4-.7.6-1-.3-1-.8-2-1.3-2.9l61 74.1 18.6 22.6c-.4.3-.6.7-1 1.1l-95.3-54c.2-.7.1-.8 0-1.2-.2-.2-.4-.5-.7-.7-10.7-13-15.1-17.6-17.3-19.5zM211.8 249c.1.2.2.2.2.4l-54.2 34.1c-1.5-2-4.1-3-6.5-2.4l-29.3-100c.2-.1.3-.1.5-.2.9-.4 1.6-1 2.2-1.7l87.4 63.9c-1 1.7-1.2 4-.3 5.9zm-61.2 32.2c-.2.1-.3.1-.5.2-.4.2-.7.4-1.1.7L66.5 182l47.2-5.9c.1.5.2 1 .5 1.5 1.3 2.8 4.3 4.2 7.2 3.6l29.2 100zm-37-105.8l-47.3 5.9 18.3-59.1 31.5 47.7c-1.7 1.3-2.6 3.4-2.5 5.5zm32.8 127.9l-4.6-3.3-88.7-63.5c-1.5-1.8-2-3-1.3-6L75 243.7c-.1 0-.2.1-.4.1-.3.1-1.1.4-1.3 1.6-.1.9 0 1.9.4 3.4 0 .2.1.2.1.4.4-1.1 1-2.3 1.4-3.4.2-.8.4-1.5.3-1.8v-.1l68.5 38.8 3 1.7c-.8 1.6-.9 3.6-.1 5.4.6 1.5 1.9 2.6 3.3 3.2l-3.8 10.3zm10.2 8.8l-9.5-8.1 2.6-7.2 1.2-3.4c1.1.3 2.4.3 3.6 0l9.3 24.8-7.2-6.1zm8.3 6.5l-9.6-25.5c3.2-1.5 4.6-5.2 3.1-8.4-.1-.2-.2-.2-.2-.4l54.2-34.1c.3.4.6.8 1.1 1.1l-48.6 67.3zm49.9-77.9c-.8.4-1.5 1-2 1.6l-14-10.2-73.5-53.7c.4-.7.7-1.4.8-2.1l65.5 9.1 23.2 55.3zm-70.6-113.6c1.5.7 3.4.7 5.1-.1.2-.1.5-.2.7-.4l41 57.8-62.5-8.6-2.3-.3c.1-1.1-.1-2.1-.6-3.1-.6-1.2-1.5-2.2-2.6-2.9l21.2-42.4zm-.7-.3l-21.1 42.4c-1.6-.7-3.5-.7-5.1.1l-.5.2-31.5-47.8h55.2c.1.7.2 1.6.6 2.2.4 1.2 1.3 2.2 2.4 2.9zM91.3 78.1l49.2 38.8L37 52.1l54.3 26zM34.8 51.7l106.4 66.6c-.4.8-.7 1.7-.7 2.6H84.7L52.4 77.4 34.2 52.7c.2-.4.4-.7.6-1zm-1.2 1.5L43.8 67 84 121.3l-18.3 58.9L32.4 54.1c.5-.3.9-.5 1.2-.9zm-4.1 1.7c.7 0 1.5-.2 2.2-.5L65.1 181c-3.1-3.4-7-6.4-10.2-9.8-3.4-3.5-6.3-7.5-7-13.1l.1-.6c.4.1.8.1 1.1.2.6-1.4.2-2.9.6-4.2 1.4-.2 2.8.2 4.2.1.1-2.8-2-5.6-3.7-8.4-2.4-3.7-4.4-7.3-.2-10.4-1.3-2.5-2.3-4.3-15-9.5-1.1-5.8-6.7-7.9-10-11.8.8.3 1.9.7 2.7 1.1.5-.6 1-1.6 1.1-2.4.7.4 1.8.8 2.7 1l.7-.8c.3-.1.8-.2 1.2-.3 0-.2.1-.5 0-.7-.1-.1-8-8.6-14.4-11.3l7-30.5 3.5-14.7z" class="st4"/>
|
27 |
-
<path d="M18.1 103.7v-.2l.2.2h-.2zM48.3 314v-.2l1.1 2c.2.9.8 2.2 1.6 3.1 1.2 1.4 2.8 2 4.3-.6.5-.9.5-2.4.2-3.4-.9-2.6-2.9-4.6-4-7.1.3-.5.8-1.3 6.9-3.3-1.5 1.1-5.9 5-.7 6.1.8-1.8 2.7-2.5 4-3.9-.2-1.6-1.6-2.8-1.4-4.6 2-1.3 1.9 2.8 3.1 3.9 1.1 1 2.1.5 2.3.3 1.2-1.2 1.2-3 2-4.5 1.1-2 3.4-1.6 5-2.5 1.3-.7 1.1-2.3 1.7-3.4.7.8 1.1 1.1 1.6 1.2.1 0 .2.1.2.1.2-.2.3-.3.2-1.4-.2-1.7-.9-5.8-2.8-16.2 0-.1-1.3-4.7-3.5-8-1.5-2.2-3.4-3.8-5.6-2.8-.4 1.1-.5 2.2-.2 3.3.2 1.1.8 2.7 1.8 5.1 2.6 6.7.5 11.3.5 11.4-.9 1.7-.9 1.7-4.2.2-2.2 2.6 1.9 6.4-1.5 8.6-2.4 1.7-6 .6-8 3.3-2 2.5-2.4 3.5-3.8 5.9-1.5 2.5-1.8 4.2-1.7 5.2.1 1.3.6 1.8.9 2.2zm5.5-146.4c.1 0 .1.1.2.1 0-.3-.5-2.8-1.1-4-.2-.6-.5-.6-.6-.6-.8.3-.5 3.6 1.5 4.5zm5.2 84.9c.4.7 1.2 2.4 1.6 3.9.5 1.8.2 2.6-.3 3.6-.6 1.1-1.4 2.4-1 4.1v.1c.3 1.1 3.3 4.8 4.6 4.6 1.2-.2 1.3-2 .8-3.3-.2-.6-.5-1.1-.9-1.5s-.7-.3-1.1-.3c1-.3 2.2-.2 2.8-.1 1.5.2 2.5.3 3.7-.8.1-.1.1-.2.2-.2.3-.5.2-1.1.5-1.7.7-1.2 1.8-2.2 2.4-3.4.1-.1.2-.3.2-.6-.1-1-.7-1.8-1.1-2.7-.7.8-6.9-1.7-9.6-2.9-2.8-1.2-3.3-1.2-3.7-1.1-.1.1-.2.2-.1.4.1.3.5.9 1 1.9z" class="st4"/>
|
28 |
-
<path d="M62.6 263.9c.1 0 .2-.1.2-.1-.1 0-.2 0-.2.1z" class="st4"/>
|
29 |
-
</g>
|
30 |
-
</g>
|
31 |
-
</g>
|
32 |
-
<path id="logo" d="M76.9 207.1c.9 1.8.8 4.6 1.7 6.4.6.3 1.3.6 1.8.9 7.6-1.1 7.8-10.2 3.9-14.6-1.8-1.7-4.5-2.5-7.8-1-16.8 7.2-32.9 2.6-42.6-7.5-5.3-5.3-8.8-12.1-9.8-19.5-2.6-23.5 16.6-38.4 29.8-40.1 11.8-1.4 23 2.8 30.5 10.4 8.1 8.1 12.5 20.3 9.9 34.4-1.1 6.4-4.9 14.5-13.5 14.5-3.4 0-6.8-1.5-9.2-4.1-2.3-2.2-3.7-5.2-3.9-8.4-.8-12.7 15.5-16.3 14.5-29-.1-2.3-1.1-4.2-2.8-6-4.9-4.7-14.9-6.5-23.9-4.7-11.2 2.3-21.9 12.5-23.9 24.8-1.6 10 2 21.2 9.3 28.9 6.5 6.5 16 10.1 27.5 7.3 3.8-.8 6.7-4.4 12.7-3.4 2.2.3 4 1.4 5.3 2.8 4.9 4.6 4.1 14.2-2.3 16.5-3.3 1.1-9.3.2-11.9-2.6l-.1-.1c-.3-.1-.6-.5-.9-.8-1-.8-1.7-2.5-1.6-4.4.1-2.6 1.8-4.7 3.8-4.5.8.1 1.5.5 2 1 .7.9 1.3 1.7 1.5 2.8m112.9-35.5c.7-.9 1-2 1.4-3.1.5-2.1.5-4.4-.1-6.4-.2-1.1-.7-2.3-1.4-3.1-.7-1-1.7-1.7-2.9-2.2-1.1-.6-2.5-.8-4.2-.8h-3.1c-.6 0-1 .5-1 1v16.9c0 .6.5 1 1 1h2c2.2 0 4-.3 5.3-1 1.1-.2 2.3-1.1 3-2.3m9.2-7.3c0 2.3-.5 4.2-1.4 6-.8 1.7-2.1 3.1-3.7 4.2-1.6 1-3.1 2-5.1 2.5-2 .6-3.9.8-5.9.8h-3.7c-.6 0-1 .5-1 1v11.9c0 .7.1 1.4.5 1.8.2.6.7.9 1.5 1.3.5.1 1 .2 2 .5.6.1 1 .1 1.6.2.6 0 1 .5 1 1s-.5 1-1 1h-16.3c-.6 0-1-.5-1-1v-.1c0-.6.5-1 .9-1 .3 0 .7-.1 1.1-.1.9-.1 1.6-.2 2-.5.6-.2 1-.6 1.4-1.1.2-.6.5-1.1.5-2v-31c0-.7-.1-1.4-.3-2-.2-.6-.7-1-1.4-1.3-.8-.2-1.6-.5-2.3-.6-.3 0-.7-.1-.9-.1-.6-.1-.9-.6-.9-1v-.1c0-.6.5-1 1-1H186c3.9 0 7.1.9 9.6 2.9l.1.1c2 2 3.3 4.6 3.3 7.7zm-36.8-8.4c-.6 0-1 .1-1.7.5-.7.2-1.1.5-1.7.8l-.1.1c-.7.5-1.1.9-1.7 1.5-.5.6-.7 1.4-1.1 2.4v.1c-1.4 4.7-3.1 10.1-4.9 16.4-1.7 6.1-3.8 12.4-5.9 19.3-.1.5-.6.8-1 .8h-1.3c-.5 0-.9-.3-1-.8l-9.5-29.4c-.1-.6-.8-.9-1.4-.7-.3.1-.6.3-.7.7l-10 29.4c-.1.5-.6.7-1 .7h-1c-.5 0-.9-.3-1-.8-2-6.9-3.9-13.9-6-21.3-2.2-7.7-3.6-12.7-4.2-15.4-.1-.6-.5-1-.7-1.6 0-.1-.1-.2-.1-.2-.8-1-2-1.7-3.2-2-.3-.1-.7-.1-.9-.2-.5-.1-.9-.6-.9-1v-.2c0-.6.5-1 1-1h15.4c.6 0 1 .5 1 1v.1c0 .6-.5 1-1 1-1.1.1-2.1.2-2.9.5-1 .2-1.6.6-1.6 1 0 .1 0 .5.1.8.1.2.1.6.1.8.5 1.8 1.4 4.7 2.5 8.8 1 3.6 2.4 8.6 4.2 15 .3 1 1.7 1 2.1 0l9.3-27.9c.1-.5.6-.7 1-.7h1.4c.5 0 .9.3 1 .8l9.4 28.6c.3 1 1.8 1 2.1 0l2.8-9.9c1-3.8 2-6.9 2.5-9.6.5-1.8.8-3.2.9-3.9.1-.7.1-1.3.1-1.8 0-.7-.5-1.3-1.4-1.7-.8-.5-2-.7-3.6-.8-.6-.1-1-.6-1-1 0-.6.5-1 1-1H161c.6 0 1 .5 1 1l.2.8zM292 184l-.8 11.8c0 .6-.5 1-1 1h-31.4c-.6 0-1-.5-1-1v-.1c0-.6.5-1 .9-1 .3 0 .7-.1 1.1-.1.9-.1 1.6-.2 2-.5.6-.2 1-.6 1.4-1.1.2-.6.5-1.1.5-2v-30.8c0-.7-.1-1.3-.5-1.8-.3-.6-.7-.9-1.4-1.3-.5-.2-1-.5-2-.7l-1.3-.3c-.5-.1-.9-.6-.9-1v-.2c0-.6.5-1 1-1h16c.6 0 1 .5 1 1v.1c0 .6-.3 1-.9 1-.3.1-.8.1-1.3.2-.9.1-1.6.5-2 .5-.7.2-1.1.6-1.4 1.3-.2.6-.5 1.3-.5 1.8v28.9c0 1.4.1 2.3.1 3.1.1.7.5 1.4.9 1.7.5.5 1.1.6 2.1.7s2.2.1 3.8.1c.8 0 1.6 0 2.3-.1.7 0 1.5-.1 2.3-.2h.1c.7-.1 1.3-.3 1.8-.5.6-.2.9-.5 1.3-.7.1 0 .1-.1.2-.2.8-.9 1.7-2.3 2.9-4.1.9-1.5 1.5-2.9 2-3.9.1-.5.6-.7 1-.7h1.6l.1.1zm-38.2 12.9H236c-.6 0-1-.5-1-1 0-.6.5-1 1-1s1-.1 1.7-.2c1-.1 1.8-.3 2.2-.6.6-.5 1-.8 1.4-1.4.3-.5.5-1 .5-1.8v-31.3h-.5l-14.6 35.9c-.1.5-.6.7-1 .7-.5 0-.9-.2-1-.7L211 158.6h-.5v25.7c0 2.5.1 4.4.5 5.6.3 1.3.8 2.2 1.5 2.9.5.5 1.4.8 2.8 1.3.8.2 1.4.3 1.8.5.5.1.9.6.9 1v.1c0 .6-.5 1-1 1h-14.8c-.7 0-1.3-.7-1-1.4v-.1c.1-.3.5-.7.8-.7.5-.1.8-.2 1.5-.5 1-.2 1.8-.6 2.3-1 .7-.6 1.1-1.4 1.5-2.6.2-1.1.5-3.1.5-5.9v-22.2c0-1.3-.1-2.3-.5-3.1-.3-.8-.7-1.5-1.4-2-.6-.6-1.4-.9-2.2-1.3h-.1l-1.7-.3c-.6-.1-.9-.6-.9-1.1v-.1c0-.6.5-1 1-1h12.7c.5 0 .8.2 1 .7l11 28.9c.3.9 1.7.9 2.1 0l9.4-24.3c.5-1 .7-2 1-3.1v-.1l.3-1.3c.1-.5.6-.8 1-.8h12.1c.6 0 1 .5 1 1v.1c0 .6-.5 1-.9 1-.3 0-.8.1-1.1.2-.8.1-1.5.3-2 .5-.7.2-1.1.6-1.4 1.3-.2.6-.5 1.1-.5 1.8v31.1c0 .7.1 1.4.5 1.8.2.5.7.9 1.4 1.3.5.2 1 .5 2 .6.5.1.9.1 1.3.2.6.1.9.6.9 1v1.6z" class="st5"/>
|
33 |
-
</g>
|
34 |
-
<g class="st0">
|
35 |
-
<path d="M146.2 2.5h-.1l171.4 171.4.5-.5V2.5z" class="st6"/>
|
36 |
-
</g>
|
37 |
-
<path d="M296.4 46.8c-.9 0-1.6.7-1.6 1.6v14.9c0 4-3.3 7.3-7.3 7.3h-35.8c-4 0-7.3-3.3-7.3-7.3V48.2c0-.9-.7-1.6-1.6-1.6-.9 0-1.6.7-1.6 1.6v15.1c0 5.8 4.7 10.6 10.6 10.6h35.8c5.8 0 10.6-4.7 10.6-10.6V48.5c-.2-.9-.9-1.7-1.8-1.7z" class="st7"/>
|
38 |
-
<path d="M268.3 60.9c.3.3.7.5 1.1.5.4 0 .8-.2 1.1-.5L281 50.6c.6-.6.6-1.7 0-2.3-.6-.6-1.7-.6-2.3 0l-7.6 7.6V22.7c0-.9-.7-1.6-1.6-1.6-.9 0-1.6.7-1.6 1.6v33.1l-7.6-7.6c-.6-.6-1.7-.7-2.3 0-.6.6-.7 1.7 0 2.3l10.3 10.4z" class="st7"/>
|
39 |
-
</svg>
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
vendor/otgs/icons/plugin-icons/wpml/wpml-cms-nav/icon-128x128.png
DELETED
Binary file
|
vendor/otgs/icons/plugin-icons/wpml/wpml-cms-nav/icon-256x256.png
DELETED
Binary file
|
vendor/otgs/icons/plugin-icons/wpml/wpml-cms-nav/icon.svg
DELETED
@@ -1,38 +0,0 @@
|
|
1 |
-
<svg xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" id="icon" viewBox="0 0 320 320">
|
2 |
-
<style>
|
3 |
-
.st0{clip-path:url(#SVGID_2_)}.st1{fill:url(#bg_2_)}.st2{opacity:.15}.st3{fill:none}.st4,.st5{fill:#fff}.st5{stroke:#fff;stroke-width:.75;stroke-miterlimit:10}.st6{fill:#29a8e0}.st7{fill:none;stroke:#fff;stroke-width:5;stroke-linecap:round;stroke-miterlimit:10}
|
4 |
-
</style>
|
5 |
-
<defs>
|
6 |
-
<path id="SVGID_1_" d="M312.5 317.5H7.5c-2.8 0-5-2.2-5-5V7.5c0-2.8 2.2-5 5-5h305c2.8 0 5 2.2 5 5v305c0 2.8-2.2 5-5 5z"/>
|
7 |
-
</defs>
|
8 |
-
<clipPath id="SVGID_2_">
|
9 |
-
<use overflow="visible" xlink:href="#SVGID_1_"/>
|
10 |
-
</clipPath>
|
11 |
-
<g class="st0">
|
12 |
-
<g id="bg_1_">
|
13 |
-
<g id="mask">
|
14 |
-
<linearGradient id="bg_2_" x1="321" x2="-1" y1="161.097" y2="161.097" gradientTransform="matrix(1 0 0 -1 0 321)" gradientUnits="userSpaceOnUse">
|
15 |
-
<stop offset="0" stop-color="#33879e"/>
|
16 |
-
<stop offset=".295" stop-color="#3389a1" stop-opacity=".823"/>
|
17 |
-
<stop offset=".52" stop-color="#318dab" stop-opacity=".688"/>
|
18 |
-
<stop offset=".722" stop-color="#2f96bb" stop-opacity=".567"/>
|
19 |
-
<stop offset=".909" stop-color="#2ba1d2" stop-opacity=".455"/>
|
20 |
-
<stop offset="1" stop-color="#29a8e0" stop-opacity=".4"/>
|
21 |
-
</linearGradient>
|
22 |
-
<path id="bg" d="M-1-.3h322v320.5H-1V-.3z" class="st1"/>
|
23 |
-
<g id="earth" class="st2">
|
24 |
-
<path d="M18 299.1c-9.1 10.7-9.1 10.7 3.7 20.9v.1h84.5l39.6-16.1-73.4-52.6c0 .6-.3 1.5-1 2.7.3.9 1 1.7 1.1 2.7 0 .2-.1.5-.2.6-.7 1.2-1.7 2.2-2.4 3.4-.3.5-.2 1.1-.5 1.7-.1.1-.1.2-.2.2-1.1 1.1-2.2 1-3.7.8-.7-.1-1.9-.2-2.8.1.3 0 .7 0 1.1.3.4.3.6.8.9 1.5.5 1.4.4 3.1-.8 3.3-1.3.2-4.3-3.5-4.6-4.6v-.1c-.5-1.6.3-2.9 1-4.1.6-1.1.8-1.8.3-3.6-.4-1.5-1.2-3.1-1.6-3.9-.5-1-.9-1.6-.9-2 0-.1.1-.2.1-.4.4-.2.9-.2 3.7 1.1 2.7 1.1 9 3.8 9.6 2.9-.2-.7-.7-2.8.2-3.3L57 240.4c.7.7 1.4 1.3 2 2 1.1 1.2.9 1.8.9 2-.2.8-.8.4-1.9-.2-.7-.4-.9-.3-1.1 0-.3.7.3 1.4 0 2-1.6-1.2-5.4-7.3-8.2-11.9l-3.3-2.4-.2-.1-2.4 1.7c.7 1.6 1.4 3.2 1.6 4.7.4 1.9 1.9 10.9-.8 21.9-.2 1.1-.6 2.3-1 3.4-1.5 4.7-7.8 2.2-9.6 6.4-.7 1.6-1 3.3-1.1 5.1-.2 2-.3 4.2-.9 6.1l5.5 10.7c2.5 2 4.9 4.2 5.5 7.8.2 1.3.3 2.3.1 3-.6 1.9-2.8 2.8-8 5-2.8-4.2-1.6-10.2-5.9-13.7-.7.1-1.5.2-2.2.4-.1 0-.2 0-.2.1-3-2-1.5-7.3-5.9-8.3-1.5-.3-1.5-.3-8.5 5.1l-1.1-.6c-.5-2.4-.3-4.9-.6-7.3l-.3 13.1c2.9-.4 7.1-.7 8.6 2.7zm31.1 7.8c1.4-2.4 1.9-3.3 3.8-5.9 2-2.7 5.6-1.6 8-3.3 3.4-2.4-.7-6.1 1.5-8.6 3.3 1.6 3.3 1.6 4.2-.2 0-.1 2.1-4.7-.5-11.4-1-2.4-1.5-3.9-1.8-5.1-.3-1.4-.2-2.2.2-3.3 2.2-1.1 4.1.6 5.6 2.8 2.2 3.3 3.5 7.9 3.5 8 1.9 10.4 2.6 14.5 2.8 16.2.1 1.1 0 1.2-.2 1.4-.1 0-.2 0-.2-.1-.5-.2-.9-.4-1.6-1.2-.6 1.1-.4 2.7-1.7 3.4-1.6 1-4 .5-5 2.5-.7 1.5-.7 3.3-2 4.5-.1.1-1.2.7-2.3-.3-1.2-1.1-1.1-5.2-3.1-3.9-.2 1.7 1.1 2.9 1.4 4.6-1.3 1.4-3.2 2.1-4 3.9-5.2-1.1-.8-4.9.6-6.1-6.1 2-6.7 2.8-6.9 3.3 1 2.5 3 4.5 4 7.1.3 1 .3 2.5-.2 3.4-1.5 2.5-3.1 1.9-4.3.6-.8-.9-1.3-2-1.6-3.1l-1.1-2v.2c-.4-.4-.8-1-.9-2 0-1.3.3-2.8 1.8-5.4zm16.5-21.7c.2 0 .5.2.5.5s-.2.5-.3.6c-.5-.4-.6-.7-.2-1.1zM52.2 184.4c-1-2.1-1.9-4.2-2.7-6.4-1.1-2.9-2.3-5.8-3.4-8.6-3.2-7.9-6.7-15.7-12.3-22.1-.4.1-.9.2-1.2.2 1.9 3.2 3.7 4.2 4.4 4.7 1.3 5.6 1.3 5.6.5 7.2-2-.8-2.4-3.7-4.7-4.2-.9-.2-2.8 1.1-3.5 3.7-.8 2.9.1 7.2 6.2 12.5 0 .1-.7 2.4-3.2 5-6.4-2.9-6.4-2.9-7-2.8-.4.7-.6 1.8-.5 2.6-.2.2-.5.2-.7.4-10 5.3-10.1 5.4-10.3 6-1.3 3.7-1.2 7.3-.9 11l39.3-9.2z" class="st3"/>
|
25 |
-
<path d="M62.8 263.8c-.1 0-.2.1-.2.1 0-.1.1-.1.2-.1zM18.1 103.7c.1 0 .2 0 .2.1l-.2-.2v.1zm145.7 214.4l-9.3-24.8c-1.2.3-2.4.3-3.6 0l-1.2 3.4-2.5 7.1 9.5 8.1 7.1 6.2zm-72.5-240L37 52.1l103.4 64.7zM84 121.3L43.8 67 33.6 53.2c-.3.3-.6.6-1.1.8l33.3 126.2L84 121.3zm41.7 51.1c.5 1 .7 2 .6 3.1l2.3.3 62.5 8.6-41-57.8c-.2.2-.5.2-.7.4-1.7.7-3.5.7-5.1.1L123 169.6c1.2.6 2.2 1.5 2.7 2.8zm-59.4 8.9l47.3-5.9c-.1-2.1.8-4.2 2.5-5.5l-31.5-47.7-18.3 59.1zm47.4-5.1l-47.2 5.9L149 282c.3-.2.7-.5 1.1-.7.2-.1.3-.2.5-.2l-29.3-100c-2.8.7-5.9-.7-7.2-3.5-.2-.4-.3-.9-.4-1.4zm-62.2 51.7c.2.2.4.5.6.7.1.4.2.6 0 1.2l95.3 54c.2-.4.6-.8 1-1.1L129.8 260l-61-74.1c.5.9 1 1.9 1.3 2.9-.2.3-.4.7-.6 1-.1.1-.1.2-.2.2 4.4 14.4 5.5 18.4 5.7 19.7.1.5 0 .7-.1.9-6.1-3-10.6-7.1-14.3-11.8-2.7-3.4-4.9-7.2-6.7-11L17.5 205c.7 1.6.6 3.3-.1 4.9.9.4 1.9.8 2.7 1.4.2-.3.6-.7.8-1l1.3 2.1c2.2-.6 2.9-3.8 5.9-3 1.9.6 3.2 1.8 4.3 3.1l.7-1.8c-.4-1.3-.8-2.6-1.3-3.8.7.3 1.2.7 2.3 1.6 2.2 1.9 6.6 6.5 17.4 19.4zM77 239.2c.2-.1.6 0 .7.5.1.5-.4 2.5-.8 2.3-.5-.2-.7-2.4.1-2.8zm65 61l4.6 3.3 3.7-10.3c-1.4-.6-2.5-1.7-3.3-3.2-.8-1.8-.7-3.8.1-5.4l-3-1.7L75.6 244v.1c.1.3-.1 1-.3 1.8-.4 1.1-1 2.3-1.4 3.4 0-.2-.1-.2-.1-.4-.3-1.6-.5-2.5-.3-3.4.2-1.3.9-1.6 1.2-1.7.2 0 .2-.1.4-.1l-23.2-13.1c-.6 3-.2 4.2 1.3 6l88.8 63.6zm-6.3 19.9l9.9-15.2-37.4 15.2zm76.7-70l-54.2 34.1c.1.1.2.2.2.4 1.5 3.2.1 6.9-3.1 8.4l9.6 25.6 48.7-67.3c-.5-.3-.9-.7-1.2-1.2zM9.1 296.9l.3-14.4c-.2 0-.6.1-.7.2-2.4 1.3-5.3 4.9-6.6 8.3l1.6 6.9c1 .5 2.4.7 4.2.7-.1-.3-.2-.8-.2-1.2.2-.1.7-.3 1.4-.5zm9.8-196.7c6.3 2.8 14.3 11.2 14.4 11.3.1.2-.1.5 0 .7-.3.1-.8.2-1.2.3l-.7.8c-.8-.1-2-.6-2.7-1-.1.8-.6 1.8-1.1 2.4-.8-.4-1.9-.8-2.7-1.1 3.3 4 8.8 6.1 10 11.8 12.8 5.1 13.7 6.9 15 9.5-4.1 3.1-2.1 6.7.2 10.4 1.8 2.8 3.8 5.5 3.7 8.4-1.4.1-2.8-.2-4.2-.1-.4 1.4 0 2.9-.6 4.2-.3-.1-.8-.1-1.1-.2l-.1.6c.7 5.5 3.5 9.5 7 13.1 3.3 3.3 7.2 6.3 10.2 9.8L31.7 54.5c-.7.3-1.5.5-2.2.5l-3.4 14.5-7.2 30.7zm34.9 67.4c-2-1-2.4-4.3-1.5-4.5.1 0 .3 0 .6.7.6 1.2 1.1 3.7 1.1 4 0-.1-.1-.2-.2-.2zm109.7 152.5l.7-.6-17.4-14.8-10.1 15.4zM17.3 103.5l.2-.7c-.8-.8-1.6-1.6-2.2-2.4.3-.2.7-.7 1.1-.9.6.1 1.2.2 1.8.5L22 83.3 28.7 55c-3.5-.3-6.1-3.4-5.8-6.9 0-.3.1-.6.2-1m101.7 132c-.6.7-1.3 1.3-2.2 1.7-.2.1-.3.2-.5.2l29.3 100c2.4-.6 5 .4 6.5 2.4l54.2-34.1c-.1-.1-.2-.2-.2-.4-.9-2-.7-4.3.4-6l-87.5-63.8zm66.8 6.2l-65.5-9.1c-.2.7-.4 1.5-.8 2.1l73.5 53.7 14 10.2c.6-.7 1.2-1.2 2-1.6l-23.2-55.3zM17 204.2l36.3-17.1c-.3-.7-.6-1.2-.9-1.9l-39.5 9.1c.2 2.4.6 4.7.6 7 1.6.5 2.8 1.5 3.5 2.9zm123.3-82.6H85.2l31.6 47.8.5-.2c1.7-.7 3.5-.7 5.1-.1l21.1-42.4c-1.1-.7-2-1.6-2.6-2.9-.3-.6-.5-1.4-.6-2.2zm-55.6-.8h55.7c.1-.9.3-1.8.7-2.6L34.8 51.7c-.2.3-.4.7-.6 1l18.3 24.6 32.2 43.5zm140.5 199.3l-7.4-67.4c-1.3.1-2.6-.3-3.7-1l-17.6 24.4-31.2 43.2 2 .8h57.9z" class="st3"/>
|
26 |
-
<path d="M18.3 299c-1.5-3.4-5.7-3.1-8.4-2.4l.3-13.1c.2 2.4.1 4.9.6 7.3l1.1.6c7-5.5 7-5.5 8.5-5.1 4.5 1 2.9 6.3 5.9 8.3.1 0 .2 0 .2-.1.6-.2 1.5-.3 2.2-.4 4.3 3.5 3.2 9.5 5.9 13.7 5.2-2.2 7.4-3.1 8-5 .2-.8.2-1.7-.1-3-.7-3.5-3-5.7-5.5-7.8l-5.5-10.7c.5-2 .6-4.1.9-6.1.2-1.8.5-3.5 1.1-5.1 1.8-4.2 8.1-1.7 9.6-6.4.4-1.1.6-2.3 1-3.4 2.7-11 1.1-20.1.8-21.9-.3-1.6-.9-3.1-1.6-4.7l2.4-1.7.2.1 3.3 2.4c2.8 4.6 6.6 10.7 8.2 11.9.2-.7-.4-1.4 0-2 .2-.3.3-.4 1.1 0 1.1.6 1.7 1 1.9.2.1-.2.2-.8-.9-2-.6-.7-1.3-1.4-2-2L72.1 251c-.8.5-.4 2.5-.2 3.3.6-1.2.9-2.1 1-2.7l73.4 52.6-39.8 16.2h1.9l37.4-15.2-9.9 15.2h1l10.1-15.5 17.4 14.9-.6.6h3.9l-2-.8 31.2-43.2 17.6-24.4c1.1.7 2.4 1.1 3.7 1l7.4 67.4h.9l-7.4-67.5c3.4-.6 5.7-3.9 5.1-7.3-.1-.5-.3-1.1-.5-1.6-1.4-3-4.7-4.4-7.8-3.3l-23.2-55.6v-.1l-41.6-58.6c2.7-2.2 3.2-6.1 1.1-8.9-1.8-2.3-5-3.1-7.6-1.8-.8.4-1.5.9-2.1 1.6L91.7 77.5l-56.3-27c.4-1.5.3-3-.3-4.5 1.3-3.3-.3-7-3.5-8.3-3.2-1.3-6.9.3-8.2 3.5-.7 1.6-.6 3.5.1 5.1l-24-6.5v.7L23.1 47c-.8 3.4 1.2 6.9 4.6 7.8.3.1.6.1 1 .2L22 83.3l-3.9 16.6c-.7-.2-1.2-.4-1.8-.5-.3.2-.7.7-1.1.9.7.9 1.5 1.6 2.2 2.4l-.2.7c-10.8-2.3-13.6-2.8-17.8-1.7v-.1c.2 72.8.6 145.6.8 218.4m8.9-23.1c-.7.2-1.2.4-1.4.5.1.3.2.8.2 1.2-1.9.1-3.3-.2-4.2-.7L2.1 291c1.3-3.4 4.2-7 6.5-8.3.2-.1.5-.2.7-.2l-.2 14.4zm4.5-114.4c.4-.7.5-.8 10.3-6 .2-.2.5-.2.7-.4-.1-.8.1-2 .5-2.6.7-.1.7-.1 7 2.8 2.4-2.5 3.2-4.9 3.2-5-6.1-5.2-7-9.6-6.2-12.5.7-2.5 2.7-3.8 3.5-3.7 2.4.6 2.6 3.3 4.7 4.2.8-1.6.8-1.6-.5-7.2-.7-.4-2.5-1.5-4.4-4.7.4-.1.9-.2 1.2-.2 5.6 6.4 9.1 14.1 12.3 22.1 1.1 2.9 2.3 5.8 3.4 8.6.9 2.2 1.8 4.3 2.7 6.4l-39.3 9.1c-.3-3.6-.4-7.3.9-10.9zm.1 18.8c-.2-2.4-.4-4.7-.7-7l39.6-9.1c.3.7.6 1.3.9 1.9l-36.4 17.1c-.8-1.4-2-2.4-3.4-2.9zm32.5 30.2l.6-.5c.3.5.7 1.1 1 1.7l-1.6-1.2zM34 208.3c-1.1-.9-1.6-1.2-2.3-1.6.5 1.2.9 2.5 1.3 3.8l-.7 1.8c-1.1-1.4-2.4-2.6-4.3-3.1-2.9-.8-3.7 2.4-5.9 3l-1.3-2.1c-.2.3-.6.7-.8 1-.8-.6-1.7-1-2.7-1.4.6-1.5.7-3.3.1-4.9l36.3-17.1c2 3.9 4.1 7.7 6.7 11 3.7 4.8 8.3 8.9 14.4 11.9.1-.2.2-.4.1-.9-.2-1.4-1.4-5.3-5.7-19.7.1-.1.1-.2.2-.2.2-.3.4-.7.6-1-.3-1-.8-2-1.3-2.9l61 74.1 18.6 22.6c-.4.3-.6.7-1 1.1l-95.3-54c.2-.7.1-.8 0-1.2-.2-.2-.4-.5-.7-.7-10.7-13-15.1-17.6-17.3-19.5zM211.8 249c.1.2.2.2.2.4l-54.2 34.1c-1.5-2-4.1-3-6.5-2.4l-29.3-100c.2-.1.3-.1.5-.2.9-.4 1.6-1 2.2-1.7l87.4 63.9c-1 1.7-1.2 4-.3 5.9zm-61.2 32.2c-.2.1-.3.1-.5.2-.4.2-.7.4-1.1.7L66.5 182l47.2-5.9c.1.5.2 1 .5 1.5 1.3 2.8 4.3 4.2 7.2 3.6l29.2 100zm-37-105.8l-47.3 5.9 18.3-59.1 31.5 47.7c-1.7 1.3-2.6 3.4-2.5 5.5zm32.8 127.9l-4.6-3.3-88.7-63.5c-1.5-1.8-2-3-1.3-6L75 243.7c-.1 0-.2.1-.4.1-.3.1-1.1.4-1.3 1.6-.1.9 0 1.9.4 3.4 0 .2.1.2.1.4.4-1.1 1-2.3 1.4-3.4.2-.8.4-1.5.3-1.8v-.1l68.5 38.8 3 1.7c-.8 1.6-.9 3.6-.1 5.4.6 1.5 1.9 2.6 3.3 3.2l-3.8 10.3zm10.2 8.8l-9.5-8.1 2.6-7.2 1.2-3.4c1.1.3 2.4.3 3.6 0l9.3 24.8-7.2-6.1zm8.3 6.5l-9.6-25.5c3.2-1.5 4.6-5.2 3.1-8.4-.1-.2-.2-.2-.2-.4l54.2-34.1c.3.4.6.8 1.1 1.1l-48.6 67.3zm49.9-77.9c-.8.4-1.5 1-2 1.6l-14-10.2-73.5-53.7c.4-.7.7-1.4.8-2.1l65.5 9.1 23.2 55.3zm-70.6-113.6c1.5.7 3.4.7 5.1-.1.2-.1.5-.2.7-.4l41 57.8-62.5-8.6-2.3-.3c.1-1.1-.1-2.1-.6-3.1-.6-1.2-1.5-2.2-2.6-2.9l21.2-42.4zm-.7-.3l-21.1 42.4c-1.6-.7-3.5-.7-5.1.1l-.5.2-31.5-47.8h55.2c.1.7.2 1.6.6 2.2.4 1.2 1.3 2.2 2.4 2.9zM91.3 78.1l49.2 38.8L37 52.1l54.3 26zM34.8 51.7l106.4 66.6c-.4.8-.7 1.7-.7 2.6H84.7L52.4 77.4 34.2 52.7c.2-.4.4-.7.6-1zm-1.2 1.5L43.8 67 84 121.3l-18.3 58.9L32.4 54.1c.5-.3.9-.5 1.2-.9zm-4.1 1.7c.7 0 1.5-.2 2.2-.5L65.1 181c-3.1-3.4-7-6.4-10.2-9.8-3.4-3.5-6.3-7.5-7-13.1l.1-.6c.4.1.8.1 1.1.2.6-1.4.2-2.9.6-4.2 1.4-.2 2.8.2 4.2.1.1-2.8-2-5.6-3.7-8.4-2.4-3.7-4.4-7.3-.2-10.4-1.3-2.5-2.3-4.3-15-9.5-1.1-5.8-6.7-7.9-10-11.8.8.3 1.9.7 2.7 1.1.5-.6 1-1.6 1.1-2.4.7.4 1.8.8 2.7 1l.7-.8c.3-.1.8-.2 1.2-.3 0-.2.1-.5 0-.7-.1-.1-8-8.6-14.4-11.3l7-30.5 3.5-14.7z" class="st4"/>
|
27 |
-
<path d="M18.1 103.7v-.2l.2.2h-.2zM48.3 314v-.2l1.1 2c.2.9.8 2.2 1.6 3.1 1.2 1.4 2.8 2 4.3-.6.5-.9.5-2.4.2-3.4-.9-2.6-2.9-4.6-4-7.1.3-.5.8-1.3 6.9-3.3-1.5 1.1-5.9 5-.7 6.1.8-1.8 2.7-2.5 4-3.9-.2-1.6-1.6-2.8-1.4-4.6 2-1.3 1.9 2.8 3.1 3.9 1.1 1 2.1.5 2.3.3 1.2-1.2 1.2-3 2-4.5 1.1-2 3.4-1.6 5-2.5 1.3-.7 1.1-2.3 1.7-3.4.7.8 1.1 1.1 1.6 1.2.1 0 .2.1.2.1.2-.2.3-.3.2-1.4-.2-1.7-.9-5.8-2.8-16.2 0-.1-1.3-4.7-3.5-8-1.5-2.2-3.4-3.8-5.6-2.8-.4 1.1-.5 2.2-.2 3.3.2 1.1.8 2.7 1.8 5.1 2.6 6.7.5 11.3.5 11.4-.9 1.7-.9 1.7-4.2.2-2.2 2.6 1.9 6.4-1.5 8.6-2.4 1.7-6 .6-8 3.3-2 2.5-2.4 3.5-3.8 5.9-1.5 2.5-1.8 4.2-1.7 5.2.1 1.3.6 1.8.9 2.2zm5.5-146.4c.1 0 .1.1.2.1 0-.3-.5-2.8-1.1-4-.2-.6-.5-.6-.6-.6-.8.3-.5 3.6 1.5 4.5zm5.2 84.9c.4.7 1.2 2.4 1.6 3.9.5 1.8.2 2.6-.3 3.6-.6 1.1-1.4 2.4-1 4.1v.1c.3 1.1 3.3 4.8 4.6 4.6 1.2-.2 1.3-2 .8-3.3-.2-.6-.5-1.1-.9-1.5s-.7-.3-1.1-.3c1-.3 2.2-.2 2.8-.1 1.5.2 2.5.3 3.7-.8.1-.1.1-.2.2-.2.3-.5.2-1.1.5-1.7.7-1.2 1.8-2.2 2.4-3.4.1-.1.2-.3.2-.6-.1-1-.7-1.8-1.1-2.7-.7.8-6.9-1.7-9.6-2.9-2.8-1.2-3.3-1.2-3.7-1.1-.1.1-.2.2-.1.4.1.3.5.9 1 1.9z" class="st4"/>
|
28 |
-
<path d="M62.6 263.9c.1 0 .2-.1.2-.1-.1 0-.2 0-.2.1z" class="st4"/>
|
29 |
-
</g>
|
30 |
-
</g>
|
31 |
-
</g>
|
32 |
-
<path id="logo" d="M76.9 207.1c.9 1.8.8 4.6 1.7 6.4.6.3 1.3.6 1.8.9 7.6-1.1 7.8-10.2 3.9-14.6-1.8-1.7-4.5-2.5-7.8-1-16.8 7.2-32.9 2.6-42.6-7.5-5.3-5.3-8.8-12.1-9.8-19.5-2.6-23.5 16.6-38.4 29.8-40.1 11.8-1.4 23 2.8 30.5 10.4 8.1 8.1 12.5 20.3 9.9 34.4-1.1 6.4-4.9 14.5-13.5 14.5-3.4 0-6.8-1.5-9.2-4.1-2.3-2.2-3.7-5.2-3.9-8.4-.8-12.7 15.5-16.3 14.5-29-.1-2.3-1.1-4.2-2.8-6-4.9-4.7-14.9-6.5-23.9-4.7-11.2 2.3-21.9 12.5-23.9 24.8-1.6 10 2 21.2 9.3 28.9 6.5 6.5 16 10.1 27.5 7.3 3.8-.8 6.7-4.4 12.7-3.4 2.2.3 4 1.4 5.3 2.8 4.9 4.6 4.1 14.2-2.3 16.5-3.3 1.1-9.3.2-11.9-2.6l-.1-.1c-.3-.1-.6-.5-.9-.8-1-.8-1.7-2.5-1.6-4.4.1-2.6 1.8-4.7 3.8-4.5.8.1 1.5.5 2 1 .7.9 1.3 1.7 1.5 2.8m112.9-35.5c.7-.9 1-2 1.4-3.1.5-2.1.5-4.4-.1-6.4-.2-1.1-.7-2.3-1.4-3.1-.7-1-1.7-1.7-2.9-2.2-1.1-.6-2.5-.8-4.2-.8h-3.1c-.6 0-1 .5-1 1v16.9c0 .6.5 1 1 1h2c2.2 0 4-.3 5.3-1 1.1-.2 2.3-1.1 3-2.3m9.2-7.3c0 2.3-.5 4.2-1.4 6-.8 1.7-2.1 3.1-3.7 4.2-1.6 1-3.1 2-5.1 2.5-2 .6-3.9.8-5.9.8h-3.7c-.6 0-1 .5-1 1v11.9c0 .7.1 1.4.5 1.8.2.6.7.9 1.5 1.3.5.1 1 .2 2 .5.6.1 1 .1 1.6.2.6 0 1 .5 1 1s-.5 1-1 1h-16.3c-.6 0-1-.5-1-1v-.1c0-.6.5-1 .9-1 .3 0 .7-.1 1.1-.1.9-.1 1.6-.2 2-.5.6-.2 1-.6 1.4-1.1.2-.6.5-1.1.5-2v-31c0-.7-.1-1.4-.3-2-.2-.6-.7-1-1.4-1.3-.8-.2-1.6-.5-2.3-.6-.3 0-.7-.1-.9-.1-.6-.1-.9-.6-.9-1v-.1c0-.6.5-1 1-1H186c3.9 0 7.1.9 9.6 2.9l.1.1c2 2 3.3 4.6 3.3 7.7zm-36.8-8.4c-.6 0-1 .1-1.7.5-.7.2-1.1.5-1.7.8l-.1.1c-.7.5-1.1.9-1.7 1.5-.5.6-.7 1.4-1.1 2.4v.1c-1.4 4.7-3.1 10.1-4.9 16.4-1.7 6.1-3.8 12.4-5.9 19.3-.1.5-.6.8-1 .8h-1.3c-.5 0-.9-.3-1-.8l-9.5-29.4c-.1-.6-.8-.9-1.4-.7-.3.1-.6.3-.7.7l-10 29.4c-.1.5-.6.7-1 .7h-1c-.5 0-.9-.3-1-.8-2-6.9-3.9-13.9-6-21.3-2.2-7.7-3.6-12.7-4.2-15.4-.1-.6-.5-1-.7-1.6 0-.1-.1-.2-.1-.2-.8-1-2-1.7-3.2-2-.3-.1-.7-.1-.9-.2-.5-.1-.9-.6-.9-1v-.2c0-.6.5-1 1-1h15.4c.6 0 1 .5 1 1v.1c0 .6-.5 1-1 1-1.1.1-2.1.2-2.9.5-1 .2-1.6.6-1.6 1 0 .1 0 .5.1.8.1.2.1.6.1.8.5 1.8 1.4 4.7 2.5 8.8 1 3.6 2.4 8.6 4.2 15 .3 1 1.7 1 2.1 0l9.3-27.9c.1-.5.6-.7 1-.7h1.4c.5 0 .9.3 1 .8l9.4 28.6c.3 1 1.8 1 2.1 0l2.8-9.9c1-3.8 2-6.9 2.5-9.6.5-1.8.8-3.2.9-3.9.1-.7.1-1.3.1-1.8 0-.7-.5-1.3-1.4-1.7-.8-.5-2-.7-3.6-.8-.6-.1-1-.6-1-1 0-.6.5-1 1-1H161c.6 0 1 .5 1 1l.2.8zM292 184l-.8 11.8c0 .6-.5 1-1 1h-31.4c-.6 0-1-.5-1-1v-.1c0-.6.5-1 .9-1 .3 0 .7-.1 1.1-.1.9-.1 1.6-.2 2-.5.6-.2 1-.6 1.4-1.1.2-.6.5-1.1.5-2v-30.8c0-.7-.1-1.3-.5-1.8-.3-.6-.7-.9-1.4-1.3-.5-.2-1-.5-2-.7l-1.3-.3c-.5-.1-.9-.6-.9-1v-.2c0-.6.5-1 1-1h16c.6 0 1 .5 1 1v.1c0 .6-.3 1-.9 1-.3.1-.8.1-1.3.2-.9.1-1.6.5-2 .5-.7.2-1.1.6-1.4 1.3-.2.6-.5 1.3-.5 1.8v28.9c0 1.4.1 2.3.1 3.1.1.7.5 1.4.9 1.7.5.5 1.1.6 2.1.7s2.2.1 3.8.1c.8 0 1.6 0 2.3-.1.7 0 1.5-.1 2.3-.2h.1c.7-.1 1.3-.3 1.8-.5.6-.2.9-.5 1.3-.7.1 0 .1-.1.2-.2.8-.9 1.7-2.3 2.9-4.1.9-1.5 1.5-2.9 2-3.9.1-.5.6-.7 1-.7h1.6l.1.1zm-38.2 12.9H236c-.6 0-1-.5-1-1 0-.6.5-1 1-1s1-.1 1.7-.2c1-.1 1.8-.3 2.2-.6.6-.5 1-.8 1.4-1.4.3-.5.5-1 .5-1.8v-31.3h-.5l-14.6 35.9c-.1.5-.6.7-1 .7-.5 0-.9-.2-1-.7L211 158.6h-.5v25.7c0 2.5.1 4.4.5 5.6.3 1.3.8 2.2 1.5 2.9.5.5 1.4.8 2.8 1.3.8.2 1.4.3 1.8.5.5.1.9.6.9 1v.1c0 .6-.5 1-1 1h-14.8c-.7 0-1.3-.7-1-1.4v-.1c.1-.3.5-.7.8-.7.5-.1.8-.2 1.5-.5 1-.2 1.8-.6 2.3-1 .7-.6 1.1-1.4 1.5-2.6.2-1.1.5-3.1.5-5.9v-22.2c0-1.3-.1-2.3-.5-3.1-.3-.8-.7-1.5-1.4-2-.6-.6-1.4-.9-2.2-1.3h-.1l-1.7-.3c-.6-.1-.9-.6-.9-1.1v-.1c0-.6.5-1 1-1h12.7c.5 0 .8.2 1 .7l11 28.9c.3.9 1.7.9 2.1 0l9.4-24.3c.5-1 .7-2 1-3.1v-.1l.3-1.3c.1-.5.6-.8 1-.8h12.1c.6 0 1 .5 1 1v.1c0 .6-.5 1-.9 1-.3 0-.8.1-1.1.2-.8.1-1.5.3-2 .5-.7.2-1.1.6-1.4 1.3-.2.6-.5 1.1-.5 1.8v31.1c0 .7.1 1.4.5 1.8.2.5.7.9 1.4 1.3.5.2 1 .5 2 .6.5.1.9.1 1.3.2.6.1.9.6.9 1v1.6z" class="st5"/>
|
33 |
-
</g>
|
34 |
-
<g class="st0">
|
35 |
-
<path d="M146.2 2.5h-.1l171.4 171.4.5-.5V2.5z" class="st6"/>
|
36 |
-
</g>
|
37 |
-
<path d="M275.4 27.4L299 51l-23.6 23.6m-16.8-47.2L235 51l23.6 23.6" class="st7"/>
|
38 |
-
</svg>
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
vendor/otgs/icons/plugin-icons/wpml/wpml-core/icon-128x128.png
DELETED
Binary file
|
vendor/otgs/icons/plugin-icons/wpml/wpml-core/icon-256x256.png
DELETED
Binary file
|
vendor/otgs/icons/plugin-icons/wpml/wpml-core/icon.svg
DELETED
@@ -1,34 +0,0 @@
|
|
1 |
-
<svg xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" id="icon" viewBox="0 0 320 320">
|
2 |
-
<style>
|
3 |
-
.st0{clip-path:url(#SVGID_2_)}.st1{fill:url(#bg_2_)}.st2{opacity:.15}.st3{fill:none}.st4,.st5{fill:#fff}.st5{stroke:#fff;stroke-width:.75;stroke-miterlimit:10}
|
4 |
-
</style>
|
5 |
-
<defs>
|
6 |
-
<path id="SVGID_1_" d="M312.5 317.5H7.5c-2.8 0-5-2.2-5-5V7.5c0-2.8 2.2-5 5-5h305c2.8 0 5 2.2 5 5v305c0 2.8-2.2 5-5 5z"/>
|
7 |
-
</defs>
|
8 |
-
<clipPath id="SVGID_2_">
|
9 |
-
<use overflow="visible" xlink:href="#SVGID_1_"/>
|
10 |
-
</clipPath>
|
11 |
-
<g class="st0">
|
12 |
-
<g id="bg_1_">
|
13 |
-
<g id="mask">
|
14 |
-
<linearGradient id="bg_2_" x1="321" x2="-1" y1="161.097" y2="161.097" gradientTransform="matrix(1 0 0 -1 0 321)" gradientUnits="userSpaceOnUse">
|
15 |
-
<stop offset="0" stop-color="#33879e"/>
|
16 |
-
<stop offset=".295" stop-color="#3389a1" stop-opacity=".823"/>
|
17 |
-
<stop offset=".52" stop-color="#318dab" stop-opacity=".688"/>
|
18 |
-
<stop offset=".722" stop-color="#2f96bb" stop-opacity=".567"/>
|
19 |
-
<stop offset=".909" stop-color="#2ba1d2" stop-opacity=".455"/>
|
20 |
-
<stop offset="1" stop-color="#29a8e0" stop-opacity=".4"/>
|
21 |
-
</linearGradient>
|
22 |
-
<path id="bg" d="M-1-.3h322v320.5H-1V-.3z" class="st1"/>
|
23 |
-
<g id="earth" class="st2">
|
24 |
-
<path d="M18 299.1c-9.1 10.7-9.1 10.7 3.7 20.9v.1h84.5l39.6-16.1-73.4-52.6c0 .6-.3 1.5-1 2.7.3.9 1 1.7 1.1 2.7 0 .2-.1.5-.2.6-.7 1.2-1.7 2.2-2.4 3.4-.3.5-.2 1.1-.5 1.7-.1.1-.1.2-.2.2-1.1 1.1-2.2 1-3.7.8-.7-.1-1.9-.2-2.8.1.3 0 .7 0 1.1.3.4.3.6.8.9 1.5.5 1.4.4 3.1-.8 3.3-1.3.2-4.3-3.5-4.6-4.6v-.1c-.5-1.6.3-2.9 1-4.1.6-1.1.8-1.8.3-3.6-.4-1.5-1.2-3.1-1.6-3.9-.5-1-.9-1.6-.9-2 0-.1.1-.2.1-.4.4-.2.9-.2 3.7 1.1 2.7 1.1 9 3.8 9.6 2.9-.2-.7-.7-2.8.2-3.3L57 240.4c.7.7 1.4 1.3 2 2 1.1 1.2.9 1.8.9 2-.2.8-.8.4-1.9-.2-.7-.4-.9-.3-1.1 0-.3.7.3 1.4 0 2-1.6-1.2-5.4-7.3-8.2-11.9l-3.3-2.4-.2-.1-2.4 1.7c.7 1.6 1.4 3.2 1.6 4.7.4 1.9 1.9 10.9-.8 21.9-.2 1.1-.6 2.3-1 3.4-1.5 4.7-7.8 2.2-9.6 6.4-.7 1.6-1 3.3-1.1 5.1-.2 2-.3 4.2-.9 6.1l5.5 10.7c2.5 2 4.9 4.2 5.5 7.8.2 1.3.3 2.3.1 3-.6 1.9-2.8 2.8-8 5-2.8-4.2-1.6-10.2-5.9-13.7-.7.1-1.5.2-2.2.4-.1 0-.2 0-.2.1-3-2-1.5-7.3-5.9-8.3-1.5-.3-1.5-.3-8.5 5.1l-1.1-.6c-.5-2.4-.3-4.9-.6-7.3l-.3 13.1c2.9-.4 7.1-.7 8.6 2.7zm31.1 7.8c1.4-2.4 1.9-3.3 3.8-5.9 2-2.7 5.6-1.6 8-3.3 3.4-2.4-.7-6.1 1.5-8.6 3.3 1.6 3.3 1.6 4.2-.2 0-.1 2.1-4.7-.5-11.4-1-2.4-1.5-3.9-1.8-5.1-.3-1.4-.2-2.2.2-3.3 2.2-1.1 4.1.6 5.6 2.8 2.2 3.3 3.5 7.9 3.5 8 1.9 10.4 2.6 14.5 2.8 16.2.1 1.1 0 1.2-.2 1.4-.1 0-.2 0-.2-.1-.5-.2-.9-.4-1.6-1.2-.6 1.1-.4 2.7-1.7 3.4-1.6 1-4 .5-5 2.5-.7 1.5-.7 3.3-2 4.5-.1.1-1.2.7-2.3-.3-1.2-1.1-1.1-5.2-3.1-3.9-.2 1.7 1.1 2.9 1.4 4.6-1.3 1.4-3.2 2.1-4 3.9-5.2-1.1-.8-4.9.6-6.1-6.1 2-6.7 2.8-6.9 3.3 1 2.5 3 4.5 4 7.1.3 1 .3 2.5-.2 3.4-1.5 2.5-3.1 1.9-4.3.6-.8-.9-1.3-2-1.6-3.1l-1.1-2v.2c-.4-.4-.8-1-.9-2 0-1.3.3-2.8 1.8-5.4zm16.5-21.7c.2 0 .5.2.5.5s-.2.5-.3.6c-.5-.4-.6-.7-.2-1.1zM52.2 184.4c-1-2.1-1.9-4.2-2.7-6.4-1.1-2.9-2.3-5.8-3.4-8.6-3.2-7.9-6.7-15.7-12.3-22.1-.4.1-.9.2-1.2.2 1.9 3.2 3.7 4.2 4.4 4.7 1.3 5.6 1.3 5.6.5 7.2-2-.8-2.4-3.7-4.7-4.2-.9-.2-2.8 1.1-3.5 3.7-.8 2.9.1 7.2 6.2 12.5 0 .1-.7 2.4-3.2 5-6.4-2.9-6.4-2.9-7-2.8-.4.7-.6 1.8-.5 2.6-.2.2-.5.2-.7.4-10 5.3-10.1 5.4-10.3 6-1.3 3.7-1.2 7.3-.9 11l39.3-9.2z" class="st3"/>
|
25 |
-
<path d="M62.8 263.8c-.1 0-.2.1-.2.1 0-.1.1-.1.2-.1zM18.1 103.7c.1 0 .2 0 .2.1l-.2-.2v.1zm145.7 214.4l-9.3-24.8c-1.2.3-2.4.3-3.6 0l-1.2 3.4-2.5 7.1 9.5 8.1 7.1 6.2zm-72.5-240L37 52.1l103.4 64.7zM84 121.3L43.8 67 33.6 53.2c-.3.3-.6.6-1.1.8l33.3 126.2L84 121.3zm41.7 51.1c.5 1 .7 2 .6 3.1l2.3.3 62.5 8.6-41-57.8c-.2.2-.5.2-.7.4-1.7.7-3.5.7-5.1.1L123 169.6c1.2.6 2.2 1.5 2.7 2.8zm-59.4 8.9l47.3-5.9c-.1-2.1.8-4.2 2.5-5.5l-31.5-47.7-18.3 59.1zm47.4-5.1l-47.2 5.9L149 282c.3-.2.7-.5 1.1-.7.2-.1.3-.2.5-.2l-29.3-100c-2.8.7-5.9-.7-7.2-3.5-.2-.4-.3-.9-.4-1.4zm-62.2 51.7c.2.2.4.5.6.7.1.4.2.6 0 1.2l95.3 54c.2-.4.6-.8 1-1.1L129.8 260l-61-74.1c.5.9 1 1.9 1.3 2.9-.2.3-.4.7-.6 1-.1.1-.1.2-.2.2 4.4 14.4 5.5 18.4 5.7 19.7.1.5 0 .7-.1.9-6.1-3-10.6-7.1-14.3-11.8-2.7-3.4-4.9-7.2-6.7-11L17.5 205c.7 1.6.6 3.3-.1 4.9.9.4 1.9.8 2.7 1.4.2-.3.6-.7.8-1l1.3 2.1c2.2-.6 2.9-3.8 5.9-3 1.9.6 3.2 1.8 4.3 3.1l.7-1.8c-.4-1.3-.8-2.6-1.3-3.8.7.3 1.2.7 2.3 1.6 2.2 1.9 6.6 6.5 17.4 19.4zM77 239.2c.2-.1.6 0 .7.5.1.5-.4 2.5-.8 2.3-.5-.2-.7-2.4.1-2.8zm65 61l4.6 3.3 3.7-10.3c-1.4-.6-2.5-1.7-3.3-3.2-.8-1.8-.7-3.8.1-5.4l-3-1.7L75.6 244v.1c.1.3-.1 1-.3 1.8-.4 1.1-1 2.3-1.4 3.4 0-.2-.1-.2-.1-.4-.3-1.6-.5-2.5-.3-3.4.2-1.3.9-1.6 1.2-1.7.2 0 .2-.1.4-.1l-23.2-13.1c-.6 3-.2 4.2 1.3 6l88.8 63.6zm-6.3 19.9l9.9-15.2-37.4 15.2zm76.7-70l-54.2 34.1c.1.1.2.2.2.4 1.5 3.2.1 6.9-3.1 8.4l9.6 25.6 48.7-67.3c-.5-.3-.9-.7-1.2-1.2zM9.1 296.9l.3-14.4c-.2 0-.6.1-.7.2-2.4 1.3-5.3 4.9-6.6 8.3l1.6 6.9c1 .5 2.4.7 4.2.7-.1-.3-.2-.8-.2-1.2.2-.1.7-.3 1.4-.5zm9.8-196.7c6.3 2.8 14.3 11.2 14.4 11.3.1.2-.1.5 0 .7-.3.1-.8.2-1.2.3l-.7.8c-.8-.1-2-.6-2.7-1-.1.8-.6 1.8-1.1 2.4-.8-.4-1.9-.8-2.7-1.1 3.3 4 8.8 6.1 10 11.8 12.8 5.1 13.7 6.9 15 9.5-4.1 3.1-2.1 6.7.2 10.4 1.8 2.8 3.8 5.5 3.7 8.4-1.4.1-2.8-.2-4.2-.1-.4 1.4 0 2.9-.6 4.2-.3-.1-.8-.1-1.1-.2l-.1.6c.7 5.5 3.5 9.5 7 13.1 3.3 3.3 7.2 6.3 10.2 9.8L31.7 54.5c-.7.3-1.5.5-2.2.5l-3.4 14.5-7.2 30.7zm34.9 67.4c-2-1-2.4-4.3-1.5-4.5.1 0 .3 0 .6.7.6 1.2 1.1 3.7 1.1 4 0-.1-.1-.2-.2-.2zm109.7 152.5l.7-.6-17.4-14.8-10.1 15.4zM17.3 103.5l.2-.7c-.8-.8-1.6-1.6-2.2-2.4.3-.2.7-.7 1.1-.9.6.1 1.2.2 1.8.5L22 83.3 28.7 55c-3.5-.3-6.1-3.4-5.8-6.9 0-.3.1-.6.2-1m101.7 132c-.6.7-1.3 1.3-2.2 1.7-.2.1-.3.2-.5.2l29.3 100c2.4-.6 5 .4 6.5 2.4l54.2-34.1c-.1-.1-.2-.2-.2-.4-.9-2-.7-4.3.4-6l-87.5-63.8zm66.8 6.2l-65.5-9.1c-.2.7-.4 1.5-.8 2.1l73.5 53.7 14 10.2c.6-.7 1.2-1.2 2-1.6l-23.2-55.3zM17 204.2l36.3-17.1c-.3-.7-.6-1.2-.9-1.9l-39.5 9.1c.2 2.4.6 4.7.6 7 1.6.5 2.8 1.5 3.5 2.9zm123.3-82.6H85.2l31.6 47.8.5-.2c1.7-.7 3.5-.7 5.1-.1l21.1-42.4c-1.1-.7-2-1.6-2.6-2.9-.3-.6-.5-1.4-.6-2.2zm-55.6-.8h55.7c.1-.9.3-1.8.7-2.6L34.8 51.7c-.2.3-.4.7-.6 1l18.3 24.6 32.2 43.5zm140.5 199.3l-7.4-67.4c-1.3.1-2.6-.3-3.7-1l-17.6 24.4-31.2 43.2 2 .8h57.9z" class="st3"/>
|
26 |
-
<path d="M18.3 299c-1.5-3.4-5.7-3.1-8.4-2.4l.3-13.1c.2 2.4.1 4.9.6 7.3l1.1.6c7-5.5 7-5.5 8.5-5.1 4.5 1 2.9 6.3 5.9 8.3.1 0 .2 0 .2-.1.6-.2 1.5-.3 2.2-.4 4.3 3.5 3.2 9.5 5.9 13.7 5.2-2.2 7.4-3.1 8-5 .2-.8.2-1.7-.1-3-.7-3.5-3-5.7-5.5-7.8l-5.5-10.7c.5-2 .6-4.1.9-6.1.2-1.8.5-3.5 1.1-5.1 1.8-4.2 8.1-1.7 9.6-6.4.4-1.1.6-2.3 1-3.4 2.7-11 1.1-20.1.8-21.9-.3-1.6-.9-3.1-1.6-4.7l2.4-1.7.2.1 3.3 2.4c2.8 4.6 6.6 10.7 8.2 11.9.2-.7-.4-1.4 0-2 .2-.3.3-.4 1.1 0 1.1.6 1.7 1 1.9.2.1-.2.2-.8-.9-2-.6-.7-1.3-1.4-2-2L72.1 251c-.8.5-.4 2.5-.2 3.3.6-1.2.9-2.1 1-2.7l73.4 52.6-39.8 16.2h1.9l37.4-15.2-9.9 15.2h1l10.1-15.5 17.4 14.9-.6.6h3.9l-2-.8 31.2-43.2 17.6-24.4c1.1.7 2.4 1.1 3.7 1l7.4 67.4h.9l-7.4-67.5c3.4-.6 5.7-3.9 5.1-7.3-.1-.5-.3-1.1-.5-1.6-1.4-3-4.7-4.4-7.8-3.3l-23.2-55.6v-.1l-41.6-58.6c2.7-2.2 3.2-6.1 1.1-8.9-1.8-2.3-5-3.1-7.6-1.8-.8.4-1.5.9-2.1 1.6L91.7 77.5l-56.3-27c.4-1.5.3-3-.3-4.5 1.3-3.3-.3-7-3.5-8.3-3.2-1.3-6.9.3-8.2 3.5-.7 1.6-.6 3.5.1 5.1l-24-6.5v.7L23.1 47c-.8 3.4 1.2 6.9 4.6 7.8.3.1.6.1 1 .2L22 83.3l-3.9 16.6c-.7-.2-1.2-.4-1.8-.5-.3.2-.7.7-1.1.9.7.9 1.5 1.6 2.2 2.4l-.2.7c-10.8-2.3-13.6-2.8-17.8-1.7v-.1c.2 72.8.6 145.6.8 218.4m8.9-23.1c-.7.2-1.2.4-1.4.5.1.3.2.8.2 1.2-1.9.1-3.3-.2-4.2-.7L2.1 291c1.3-3.4 4.2-7 6.5-8.3.2-.1.5-.2.7-.2l-.2 14.4zm4.5-114.4c.4-.7.5-.8 10.3-6 .2-.2.5-.2.7-.4-.1-.8.1-2 .5-2.6.7-.1.7-.1 7 2.8 2.4-2.5 3.2-4.9 3.2-5-6.1-5.2-7-9.6-6.2-12.5.7-2.5 2.7-3.8 3.5-3.7 2.4.6 2.6 3.3 4.7 4.2.8-1.6.8-1.6-.5-7.2-.7-.4-2.5-1.5-4.4-4.7.4-.1.9-.2 1.2-.2 5.6 6.4 9.1 14.1 12.3 22.1 1.1 2.9 2.3 5.8 3.4 8.6.9 2.2 1.8 4.3 2.7 6.4l-39.3 9.1c-.3-3.6-.4-7.3.9-10.9zm.1 18.8c-.2-2.4-.4-4.7-.7-7l39.6-9.1c.3.7.6 1.3.9 1.9l-36.4 17.1c-.8-1.4-2-2.4-3.4-2.9zm32.5 30.2l.6-.5c.3.5.7 1.1 1 1.7l-1.6-1.2zM34 208.3c-1.1-.9-1.6-1.2-2.3-1.6.5 1.2.9 2.5 1.3 3.8l-.7 1.8c-1.1-1.4-2.4-2.6-4.3-3.1-2.9-.8-3.7 2.4-5.9 3l-1.3-2.1c-.2.3-.6.7-.8 1-.8-.6-1.7-1-2.7-1.4.6-1.5.7-3.3.1-4.9l36.3-17.1c2 3.9 4.1 7.7 6.7 11 3.7 4.8 8.3 8.9 14.4 11.9.1-.2.2-.4.1-.9-.2-1.4-1.4-5.3-5.7-19.7.1-.1.1-.2.2-.2.2-.3.4-.7.6-1-.3-1-.8-2-1.3-2.9l61 74.1 18.6 22.6c-.4.3-.6.7-1 1.1l-95.3-54c.2-.7.1-.8 0-1.2-.2-.2-.4-.5-.7-.7-10.7-13-15.1-17.6-17.3-19.5zM211.8 249c.1.2.2.2.2.4l-54.2 34.1c-1.5-2-4.1-3-6.5-2.4l-29.3-100c.2-.1.3-.1.5-.2.9-.4 1.6-1 2.2-1.7l87.4 63.9c-1 1.7-1.2 4-.3 5.9zm-61.2 32.2c-.2.1-.3.1-.5.2-.4.2-.7.4-1.1.7L66.5 182l47.2-5.9c.1.5.2 1 .5 1.5 1.3 2.8 4.3 4.2 7.2 3.6l29.2 100zm-37-105.8l-47.3 5.9 18.3-59.1 31.5 47.7c-1.7 1.3-2.6 3.4-2.5 5.5zm32.8 127.9l-4.6-3.3-88.7-63.5c-1.5-1.8-2-3-1.3-6L75 243.7c-.1 0-.2.1-.4.1-.3.1-1.1.4-1.3 1.6-.1.9 0 1.9.4 3.4 0 .2.1.2.1.4.4-1.1 1-2.3 1.4-3.4.2-.8.4-1.5.3-1.8v-.1l68.5 38.8 3 1.7c-.8 1.6-.9 3.6-.1 5.4.6 1.5 1.9 2.6 3.3 3.2l-3.8 10.3zm10.2 8.8l-9.5-8.1 2.6-7.2 1.2-3.4c1.1.3 2.4.3 3.6 0l9.3 24.8-7.2-6.1zm8.3 6.5l-9.6-25.5c3.2-1.5 4.6-5.2 3.1-8.4-.1-.2-.2-.2-.2-.4l54.2-34.1c.3.4.6.8 1.1 1.1l-48.6 67.3zm49.9-77.9c-.8.4-1.5 1-2 1.6l-14-10.2-73.5-53.7c.4-.7.7-1.4.8-2.1l65.5 9.1 23.2 55.3zm-70.6-113.6c1.5.7 3.4.7 5.1-.1.2-.1.5-.2.7-.4l41 57.8-62.5-8.6-2.3-.3c.1-1.1-.1-2.1-.6-3.1-.6-1.2-1.5-2.2-2.6-2.9l21.2-42.4zm-.7-.3l-21.1 42.4c-1.6-.7-3.5-.7-5.1.1l-.5.2-31.5-47.8h55.2c.1.7.2 1.6.6 2.2.4 1.2 1.3 2.2 2.4 2.9zM91.3 78.1l49.2 38.8L37 52.1l54.3 26zM34.8 51.7l106.4 66.6c-.4.8-.7 1.7-.7 2.6H84.7L52.4 77.4 34.2 52.7c.2-.4.4-.7.6-1zm-1.2 1.5L43.8 67 84 121.3l-18.3 58.9L32.4 54.1c.5-.3.9-.5 1.2-.9zm-4.1 1.7c.7 0 1.5-.2 2.2-.5L65.1 181c-3.1-3.4-7-6.4-10.2-9.8-3.4-3.5-6.3-7.5-7-13.1l.1-.6c.4.1.8.1 1.1.2.6-1.4.2-2.9.6-4.2 1.4-.2 2.8.2 4.2.1.1-2.8-2-5.6-3.7-8.4-2.4-3.7-4.4-7.3-.2-10.4-1.3-2.5-2.3-4.3-15-9.5-1.1-5.8-6.7-7.9-10-11.8.8.3 1.9.7 2.7 1.1.5-.6 1-1.6 1.1-2.4.7.4 1.8.8 2.7 1l.7-.8c.3-.1.8-.2 1.2-.3 0-.2.1-.5 0-.7-.1-.1-8-8.6-14.4-11.3l7-30.5 3.5-14.7z" class="st4"/>
|
27 |
-
<path d="M18.1 103.7v-.2l.2.2h-.2zM48.3 314v-.2l1.1 2c.2.9.8 2.2 1.6 3.1 1.2 1.4 2.8 2 4.3-.6.5-.9.5-2.4.2-3.4-.9-2.6-2.9-4.6-4-7.1.3-.5.8-1.3 6.9-3.3-1.5 1.1-5.9 5-.7 6.1.8-1.8 2.7-2.5 4-3.9-.2-1.6-1.6-2.8-1.4-4.6 2-1.3 1.9 2.8 3.1 3.9 1.1 1 2.1.5 2.3.3 1.2-1.2 1.2-3 2-4.5 1.1-2 3.4-1.6 5-2.5 1.3-.7 1.1-2.3 1.7-3.4.7.8 1.1 1.1 1.6 1.2.1 0 .2.1.2.1.2-.2.3-.3.2-1.4-.2-1.7-.9-5.8-2.8-16.2 0-.1-1.3-4.7-3.5-8-1.5-2.2-3.4-3.8-5.6-2.8-.4 1.1-.5 2.2-.2 3.3.2 1.1.8 2.7 1.8 5.1 2.6 6.7.5 11.3.5 11.4-.9 1.7-.9 1.7-4.2.2-2.2 2.6 1.9 6.4-1.5 8.6-2.4 1.7-6 .6-8 3.3-2 2.5-2.4 3.5-3.8 5.9-1.5 2.5-1.8 4.2-1.7 5.2.1 1.3.6 1.8.9 2.2zm5.5-146.4c.1 0 .1.1.2.1 0-.3-.5-2.8-1.1-4-.2-.6-.5-.6-.6-.6-.8.3-.5 3.6 1.5 4.5zm5.2 84.9c.4.7 1.2 2.4 1.6 3.9.5 1.8.2 2.6-.3 3.6-.6 1.1-1.4 2.4-1 4.1v.1c.3 1.1 3.3 4.8 4.6 4.6 1.2-.2 1.3-2 .8-3.3-.2-.6-.5-1.1-.9-1.5s-.7-.3-1.1-.3c1-.3 2.2-.2 2.8-.1 1.5.2 2.5.3 3.7-.8.1-.1.1-.2.2-.2.3-.5.2-1.1.5-1.7.7-1.2 1.8-2.2 2.4-3.4.1-.1.2-.3.2-.6-.1-1-.7-1.8-1.1-2.7-.7.8-6.9-1.7-9.6-2.9-2.8-1.2-3.3-1.2-3.7-1.1-.1.1-.2.2-.1.4.1.3.5.9 1 1.9z" class="st4"/>
|
28 |
-
<path d="M62.6 263.9c.1 0 .2-.1.2-.1-.1 0-.2 0-.2.1z" class="st4"/>
|
29 |
-
</g>
|
30 |
-
</g>
|
31 |
-
</g>
|
32 |
-
<path id="logo" d="M78.9 202.2c.9 1.8.8 4.6 1.7 6.4.6.3 1.3.6 1.8.9 7.6-1.1 7.8-10.2 3.9-14.6-1.8-1.7-4.5-2.5-7.8-1-16.8 7.2-32.9 2.6-42.6-7.5-5.3-5.3-8.8-12.1-9.8-19.5-2.6-23.5 16.6-38.4 29.8-40.1 11.8-1.4 23 2.8 30.5 10.4 8.1 8.1 12.5 20.3 9.9 34.4-1.1 6.4-4.9 14.5-13.5 14.5-3.4 0-6.8-1.5-9.2-4.1-2.3-2.2-3.7-5.2-3.9-8.4-.8-12.7 15.5-16.3 14.5-29-.1-2.3-1.1-4.2-2.8-6-4.9-4.7-14.9-6.5-23.9-4.7-11.2 2.3-21.9 12.5-23.9 24.8-1.6 10 2 21.2 9.3 28.9 6.5 6.5 16 10.1 27.5 7.3 3.8-.8 6.7-4.4 12.7-3.4 2.2.3 4 1.4 5.3 2.8 4.9 4.6 4.1 14.2-2.3 16.5-3.3 1.1-9.3.2-11.9-2.6l-.1-.1c-.3-.1-.6-.5-.9-.8-1-.8-1.7-2.5-1.6-4.4.1-2.6 1.8-4.7 3.8-4.5.8.1 1.5.5 2 1 .7.9 1.3 1.7 1.5 2.8m112.9-35.5c.7-.9 1-2 1.4-3.1.5-2.1.5-4.4-.1-6.4-.2-1.1-.7-2.3-1.4-3.1-.7-1-1.7-1.7-2.9-2.2-1.1-.6-2.5-.8-4.2-.8h-3.1c-.6 0-1 .5-1 1V169c0 .6.5 1 1 1h2c2.2 0 4-.3 5.3-1 1.2-.2 2.3-1.1 3-2.3m9.2-7.3c0 2.3-.5 4.2-1.4 6-.8 1.7-2.1 3.1-3.7 4.2-1.6 1-3.1 2-5.1 2.5-2 .6-3.9.8-5.9.8h-3.7c-.6 0-1 .5-1 1v11.9c0 .7.1 1.4.5 1.8.2.6.7.9 1.5 1.3.5.1 1 .2 2 .5.6.1 1 .1 1.6.2.6 0 1 .5 1 1s-.5 1-1 1h-16.3c-.6 0-1-.5-1-1v-.1c0-.6.5-1 .9-1 .3 0 .7-.1 1.1-.1.9-.1 1.6-.2 2-.5.6-.2 1-.6 1.4-1.1.2-.6.5-1.1.5-2v-31c0-.7-.1-1.4-.3-2-.2-.6-.7-1-1.4-1.3-.8-.2-1.6-.5-2.3-.6-.3 0-.7-.1-.9-.1-.6-.1-.9-.6-.9-1v-.1c0-.6.5-1 1-1H188c3.9 0 7.1.9 9.6 2.9l.1.1c2 2 3.3 4.6 3.3 7.7zm-36.8-8.4c-.6 0-1 .1-1.7.5-.7.2-1.1.5-1.7.8l-.1.1c-.7.5-1.1.9-1.7 1.5-.5.6-.7 1.4-1.1 2.4v.1c-1.4 4.7-3.1 10.1-4.9 16.4-1.7 6.1-3.8 12.4-5.9 19.3-.1.5-.6.8-1 .8h-1.3c-.5 0-.9-.3-1-.8l-9.5-29.4c-.1-.6-.8-.9-1.4-.7-.3.1-.6.3-.7.7l-10 29.4c-.1.5-.6.7-1 .7h-1c-.5 0-.9-.3-1-.8-2-6.9-3.9-13.9-6-21.3-2.2-7.7-3.6-12.7-4.2-15.4-.1-.6-.5-1-.7-1.6 0-.1-.1-.2-.1-.2-.8-1-2-1.7-3.2-2-.3-.1-.7-.1-.9-.2-.5-.1-.9-.6-.9-1v-.3c0-.6.5-1 1-1h15.4c.6 0 1 .5 1 1v.1c0 .6-.5 1-1 1-1.1.1-2.1.2-2.9.5-1 .2-1.6.6-1.6 1 0 .1 0 .5.1.8.1.2.1.6.1.8.5 1.8 1.4 4.7 2.5 8.8 1 3.6 2.4 8.6 4.2 15 .3 1 1.7 1 2.1 0l9.3-27.9c.1-.5.6-.7 1-.7h1.4c.5 0 .9.3 1 .8l9.4 28.6c.3 1 1.8 1 2.1 0l2.8-9.9c1-3.8 2-6.9 2.5-9.6.5-1.8.8-3.2.9-3.9.1-.7.1-1.3.1-1.8 0-.7-.5-1.3-1.4-1.7-.8-.5-2-.7-3.6-.8-.6-.1-1-.6-1-1 0-.6.5-1 1-1H163c.6 0 1 .5 1 1l.2.9zM294 179.1l-.8 11.8c0 .6-.5 1-1 1h-31.4c-.6 0-1-.5-1-1v-.1c0-.6.5-1 .9-1 .3 0 .7-.1 1.1-.1.9-.1 1.6-.2 2-.5.6-.2 1-.6 1.4-1.1.2-.6.5-1.1.5-2v-30.8c0-.7-.1-1.3-.5-1.8-.3-.6-.7-.9-1.4-1.3-.5-.2-1-.5-2-.7l-1.3-.3c-.5-.1-.9-.6-.9-1v-.2c0-.6.5-1 1-1h16c.6 0 1 .5 1 1v.1c0 .6-.3 1-.9 1-.3.1-.8.1-1.3.2-.9.1-1.6.5-2 .5-.7.2-1.1.6-1.4 1.3-.2.6-.5 1.3-.5 1.8v28.9c0 1.4.1 2.3.1 3.1.1.7.5 1.4.9 1.7.5.5 1.1.6 2.1.7s2.2.1 3.8.1c.8 0 1.6 0 2.3-.1.7 0 1.5-.1 2.3-.2h.1c.7-.1 1.3-.3 1.8-.5.6-.2.9-.5 1.3-.7.1 0 .1-.1.2-.2.8-.9 1.7-2.3 2.9-4.1.9-1.5 1.5-2.9 2-3.9.1-.5.6-.7 1-.7h1.6l.1.1zM255.8 192H238c-.6 0-1-.5-1-1 0-.6.5-1 1-1s1-.1 1.7-.2c1-.1 1.8-.3 2.2-.6.6-.5 1-.8 1.4-1.4.3-.5.5-1 .5-1.8v-31.3h-.5l-14.6 35.9c-.1.5-.6.7-1 .7-.5 0-.9-.2-1-.7L213 153.7h-.5v25.7c0 2.5.1 4.4.5 5.6.3 1.3.8 2.2 1.5 2.9.5.5 1.4.8 2.8 1.3.8.2 1.4.3 1.8.5.5.1.9.6.9 1v.1c0 .6-.5 1-1 1h-14.8c-.7 0-1.3-.7-1-1.4v-.1c.1-.3.5-.7.8-.7.5-.1.8-.2 1.5-.5 1-.2 1.8-.6 2.3-1 .7-.6 1.1-1.4 1.5-2.6.2-1.1.5-3.1.5-5.9v-22.2c0-1.3-.1-2.3-.5-3.1-.3-.8-.7-1.5-1.4-2-.6-.6-1.4-.9-2.2-1.3h-.1l-1.7-.3c-.6-.1-.9-.6-.9-1.1v-.1c0-.6.5-1 1-1h12.7c.5 0 .8.2 1 .7l11 28.9c.3.9 1.7.9 2.1 0l9.4-24.3c.5-1 .7-2 1-3.1v-.1l.3-1.3c.1-.5.6-.8 1-.8h12.1c.6 0 1 .5 1 1v.1c0 .6-.5 1-.9 1-.3 0-.8.1-1.1.2-.8.1-1.5.3-2 .5-.7.2-1.1.6-1.4 1.3-.2.6-.5 1.1-.5 1.8v31.1c0 .7.1 1.4.5 1.8.2.5.7.9 1.4 1.3.5.2 1 .5 2 .6.5.1.9.1 1.3.2.6.1.9.6.9 1v1.6z" class="st5"/>
|
33 |
-
</g>
|
34 |
-
</svg>
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
vendor/otgs/icons/plugin-icons/wpml/wpml-media/icon-128x128.png
DELETED
Binary file
|
vendor/otgs/icons/plugin-icons/wpml/wpml-media/icon-256x256.png
DELETED
Binary file
|
vendor/otgs/icons/plugin-icons/wpml/wpml-media/icon.svg
DELETED
@@ -1,39 +0,0 @@
|
|
1 |
-
<svg xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" id="icon" viewBox="0 0 320 320">
|
2 |
-
<style>
|
3 |
-
.st0{clip-path:url(#SVGID_2_)}.st1{fill:url(#bg_2_)}.st2{opacity:.15}.st3{fill:none}.st4,.st5{fill:#fff}.st5{stroke:#fff;stroke-width:.75;stroke-miterlimit:10}.st6{fill:#29a8e0}.st7{fill:#fff;stroke:#fff;stroke-miterlimit:10}
|
4 |
-
</style>
|
5 |
-
<defs>
|
6 |
-
<path id="SVGID_1_" d="M312.5 317.5H7.5c-2.8 0-5-2.2-5-5V7.5c0-2.8 2.2-5 5-5h305c2.8 0 5 2.2 5 5v305c0 2.8-2.2 5-5 5z"/>
|
7 |
-
</defs>
|
8 |
-
<clipPath id="SVGID_2_">
|
9 |
-
<use overflow="visible" xlink:href="#SVGID_1_"/>
|
10 |
-
</clipPath>
|
11 |
-
<g class="st0">
|
12 |
-
<g id="bg_1_">
|
13 |
-
<g id="mask">
|
14 |
-
<linearGradient id="bg_2_" x1="321" x2="-1" y1="161.097" y2="161.097" gradientTransform="matrix(1 0 0 -1 0 321)" gradientUnits="userSpaceOnUse">
|
15 |
-
<stop offset="0" stop-color="#33879e"/>
|
16 |
-
<stop offset=".295" stop-color="#3389a1" stop-opacity=".823"/>
|
17 |
-
<stop offset=".52" stop-color="#318dab" stop-opacity=".688"/>
|
18 |
-
<stop offset=".722" stop-color="#2f96bb" stop-opacity=".567"/>
|
19 |
-
<stop offset=".909" stop-color="#2ba1d2" stop-opacity=".455"/>
|
20 |
-
<stop offset="1" stop-color="#29a8e0" stop-opacity=".4"/>
|
21 |
-
</linearGradient>
|
22 |
-
<path id="bg" d="M-1-.3h322v320.5H-1V-.3z" class="st1"/>
|
23 |
-
<g id="earth" class="st2">
|
24 |
-
<path d="M18 299.1c-9.1 10.7-9.1 10.7 3.7 20.9v.1h84.5l39.6-16.1-73.4-52.6c0 .6-.3 1.5-1 2.7.3.9 1 1.7 1.1 2.7 0 .2-.1.5-.2.6-.7 1.2-1.7 2.2-2.4 3.4-.3.5-.2 1.1-.5 1.7-.1.1-.1.2-.2.2-1.1 1.1-2.2 1-3.7.8-.7-.1-1.9-.2-2.8.1.3 0 .7 0 1.1.3.4.3.6.8.9 1.5.5 1.4.4 3.1-.8 3.3-1.3.2-4.3-3.5-4.6-4.6v-.1c-.5-1.6.3-2.9 1-4.1.6-1.1.8-1.8.3-3.6-.4-1.5-1.2-3.1-1.6-3.9-.5-1-.9-1.6-.9-2 0-.1.1-.2.1-.4.4-.2.9-.2 3.7 1.1 2.7 1.1 9 3.8 9.6 2.9-.2-.7-.7-2.8.2-3.3L57 240.4c.7.7 1.4 1.3 2 2 1.1 1.2.9 1.8.9 2-.2.8-.8.4-1.9-.2-.7-.4-.9-.3-1.1 0-.3.7.3 1.4 0 2-1.6-1.2-5.4-7.3-8.2-11.9l-3.3-2.4-.2-.1-2.4 1.7c.7 1.6 1.4 3.2 1.6 4.7.4 1.9 1.9 10.9-.8 21.9-.2 1.1-.6 2.3-1 3.4-1.5 4.7-7.8 2.2-9.6 6.4-.7 1.6-1 3.3-1.1 5.1-.2 2-.3 4.2-.9 6.1l5.5 10.7c2.5 2 4.9 4.2 5.5 7.8.2 1.3.3 2.3.1 3-.6 1.9-2.8 2.8-8 5-2.8-4.2-1.6-10.2-5.9-13.7-.7.1-1.5.2-2.2.4-.1 0-.2 0-.2.1-3-2-1.5-7.3-5.9-8.3-1.5-.3-1.5-.3-8.5 5.1l-1.1-.6c-.5-2.4-.3-4.9-.6-7.3l-.3 13.1c2.9-.4 7.1-.7 8.6 2.7zm31.1 7.8c1.4-2.4 1.9-3.3 3.8-5.9 2-2.7 5.6-1.6 8-3.3 3.4-2.4-.7-6.1 1.5-8.6 3.3 1.6 3.3 1.6 4.2-.2 0-.1 2.1-4.7-.5-11.4-1-2.4-1.5-3.9-1.8-5.1-.3-1.4-.2-2.2.2-3.3 2.2-1.1 4.1.6 5.6 2.8 2.2 3.3 3.5 7.9 3.5 8 1.9 10.4 2.6 14.5 2.8 16.2.1 1.1 0 1.2-.2 1.4-.1 0-.2 0-.2-.1-.5-.2-.9-.4-1.6-1.2-.6 1.1-.4 2.7-1.7 3.4-1.6 1-4 .5-5 2.5-.7 1.5-.7 3.3-2 4.5-.1.1-1.2.7-2.3-.3-1.2-1.1-1.1-5.2-3.1-3.9-.2 1.7 1.1 2.9 1.4 4.6-1.3 1.4-3.2 2.1-4 3.9-5.2-1.1-.8-4.9.6-6.1-6.1 2-6.7 2.8-6.9 3.3 1 2.5 3 4.5 4 7.1.3 1 .3 2.5-.2 3.4-1.5 2.5-3.1 1.9-4.3.6-.8-.9-1.3-2-1.6-3.1l-1.1-2v.2c-.4-.4-.8-1-.9-2 0-1.3.3-2.8 1.8-5.4zm16.5-21.7c.2 0 .5.2.5.5s-.2.5-.3.6c-.5-.4-.6-.7-.2-1.1zM52.2 184.4c-1-2.1-1.9-4.2-2.7-6.4-1.1-2.9-2.3-5.8-3.4-8.6-3.2-7.9-6.7-15.7-12.3-22.1-.4.1-.9.2-1.2.2 1.9 3.2 3.7 4.2 4.4 4.7 1.3 5.6 1.3 5.6.5 7.2-2-.8-2.4-3.7-4.7-4.2-.9-.2-2.8 1.1-3.5 3.7-.8 2.9.1 7.2 6.2 12.5 0 .1-.7 2.4-3.2 5-6.4-2.9-6.4-2.9-7-2.8-.4.7-.6 1.8-.5 2.6-.2.2-.5.2-.7.4-10 5.3-10.1 5.4-10.3 6-1.3 3.7-1.2 7.3-.9 11l39.3-9.2z" class="st3"/>
|
25 |
-
<path d="M62.8 263.8c-.1 0-.2.1-.2.1 0-.1.1-.1.2-.1zM18.1 103.7c.1 0 .2 0 .2.1l-.2-.2v.1zm145.7 214.4l-9.3-24.8c-1.2.3-2.4.3-3.6 0l-1.2 3.4-2.5 7.1 9.5 8.1 7.1 6.2zm-72.5-240L37 52.1l103.4 64.7zM84 121.3L43.8 67 33.6 53.2c-.3.3-.6.6-1.1.8l33.3 126.2L84 121.3zm41.7 51.1c.5 1 .7 2 .6 3.1l2.3.3 62.5 8.6-41-57.8c-.2.2-.5.2-.7.4-1.7.7-3.5.7-5.1.1L123 169.6c1.2.6 2.2 1.5 2.7 2.8zm-59.4 8.9l47.3-5.9c-.1-2.1.8-4.2 2.5-5.5l-31.5-47.7-18.3 59.1zm47.4-5.1l-47.2 5.9L149 282c.3-.2.7-.5 1.1-.7.2-.1.3-.2.5-.2l-29.3-100c-2.8.7-5.9-.7-7.2-3.5-.2-.4-.3-.9-.4-1.4zm-62.2 51.7c.2.2.4.5.6.7.1.4.2.6 0 1.2l95.3 54c.2-.4.6-.8 1-1.1L129.8 260l-61-74.1c.5.9 1 1.9 1.3 2.9-.2.3-.4.7-.6 1-.1.1-.1.2-.2.2 4.4 14.4 5.5 18.4 5.7 19.7.1.5 0 .7-.1.9-6.1-3-10.6-7.1-14.3-11.8-2.7-3.4-4.9-7.2-6.7-11L17.5 205c.7 1.6.6 3.3-.1 4.9.9.4 1.9.8 2.7 1.4.2-.3.6-.7.8-1l1.3 2.1c2.2-.6 2.9-3.8 5.9-3 1.9.6 3.2 1.8 4.3 3.1l.7-1.8c-.4-1.3-.8-2.6-1.3-3.8.7.3 1.2.7 2.3 1.6 2.2 1.9 6.6 6.5 17.4 19.4zM77 239.2c.2-.1.6 0 .7.5.1.5-.4 2.5-.8 2.3-.5-.2-.7-2.4.1-2.8zm65 61l4.6 3.3 3.7-10.3c-1.4-.6-2.5-1.7-3.3-3.2-.8-1.8-.7-3.8.1-5.4l-3-1.7L75.6 244v.1c.1.3-.1 1-.3 1.8-.4 1.1-1 2.3-1.4 3.4 0-.2-.1-.2-.1-.4-.3-1.6-.5-2.5-.3-3.4.2-1.3.9-1.6 1.2-1.7.2 0 .2-.1.4-.1l-23.2-13.1c-.6 3-.2 4.2 1.3 6l88.8 63.6zm-6.3 19.9l9.9-15.2-37.4 15.2zm76.7-70l-54.2 34.1c.1.1.2.2.2.4 1.5 3.2.1 6.9-3.1 8.4l9.6 25.6 48.7-67.3c-.5-.3-.9-.7-1.2-1.2zM9.1 296.9l.3-14.4c-.2 0-.6.1-.7.2-2.4 1.3-5.3 4.9-6.6 8.3l1.6 6.9c1 .5 2.4.7 4.2.7-.1-.3-.2-.8-.2-1.2.2-.1.7-.3 1.4-.5zm9.8-196.7c6.3 2.8 14.3 11.2 14.4 11.3.1.2-.1.5 0 .7-.3.1-.8.2-1.2.3l-.7.8c-.8-.1-2-.6-2.7-1-.1.8-.6 1.8-1.1 2.4-.8-.4-1.9-.8-2.7-1.1 3.3 4 8.8 6.1 10 11.8 12.8 5.1 13.7 6.9 15 9.5-4.1 3.1-2.1 6.7.2 10.4 1.8 2.8 3.8 5.5 3.7 8.4-1.4.1-2.8-.2-4.2-.1-.4 1.4 0 2.9-.6 4.2-.3-.1-.8-.1-1.1-.2l-.1.6c.7 5.5 3.5 9.5 7 13.1 3.3 3.3 7.2 6.3 10.2 9.8L31.7 54.5c-.7.3-1.5.5-2.2.5l-3.4 14.5-7.2 30.7zm34.9 67.4c-2-1-2.4-4.3-1.5-4.5.1 0 .3 0 .6.7.6 1.2 1.1 3.7 1.1 4 0-.1-.1-.2-.2-.2zm109.7 152.5l.7-.6-17.4-14.8-10.1 15.4zM17.3 103.5l.2-.7c-.8-.8-1.6-1.6-2.2-2.4.3-.2.7-.7 1.1-.9.6.1 1.2.2 1.8.5L22 83.3 28.7 55c-3.5-.3-6.1-3.4-5.8-6.9 0-.3.1-.6.2-1m101.7 132c-.6.7-1.3 1.3-2.2 1.7-.2.1-.3.2-.5.2l29.3 100c2.4-.6 5 .4 6.5 2.4l54.2-34.1c-.1-.1-.2-.2-.2-.4-.9-2-.7-4.3.4-6l-87.5-63.8zm66.8 6.2l-65.5-9.1c-.2.7-.4 1.5-.8 2.1l73.5 53.7 14 10.2c.6-.7 1.2-1.2 2-1.6l-23.2-55.3zM17 204.2l36.3-17.1c-.3-.7-.6-1.2-.9-1.9l-39.5 9.1c.2 2.4.6 4.7.6 7 1.6.5 2.8 1.5 3.5 2.9zm123.3-82.6H85.2l31.6 47.8.5-.2c1.7-.7 3.5-.7 5.1-.1l21.1-42.4c-1.1-.7-2-1.6-2.6-2.9-.3-.6-.5-1.4-.6-2.2zm-55.6-.8h55.7c.1-.9.3-1.8.7-2.6L34.8 51.7c-.2.3-.4.7-.6 1l18.3 24.6 32.2 43.5zm140.5 199.3l-7.4-67.4c-1.3.1-2.6-.3-3.7-1l-17.6 24.4-31.2 43.2 2 .8h57.9z" class="st3"/>
|
26 |
-
<path d="M18.3 299c-1.5-3.4-5.7-3.1-8.4-2.4l.3-13.1c.2 2.4.1 4.9.6 7.3l1.1.6c7-5.5 7-5.5 8.5-5.1 4.5 1 2.9 6.3 5.9 8.3.1 0 .2 0 .2-.1.6-.2 1.5-.3 2.2-.4 4.3 3.5 3.2 9.5 5.9 13.7 5.2-2.2 7.4-3.1 8-5 .2-.8.2-1.7-.1-3-.7-3.5-3-5.7-5.5-7.8l-5.5-10.7c.5-2 .6-4.1.9-6.1.2-1.8.5-3.5 1.1-5.1 1.8-4.2 8.1-1.7 9.6-6.4.4-1.1.6-2.3 1-3.4 2.7-11 1.1-20.1.8-21.9-.3-1.6-.9-3.1-1.6-4.7l2.4-1.7.2.1 3.3 2.4c2.8 4.6 6.6 10.7 8.2 11.9.2-.7-.4-1.4 0-2 .2-.3.3-.4 1.1 0 1.1.6 1.7 1 1.9.2.1-.2.2-.8-.9-2-.6-.7-1.3-1.4-2-2L72.1 251c-.8.5-.4 2.5-.2 3.3.6-1.2.9-2.1 1-2.7l73.4 52.6-39.8 16.2h1.9l37.4-15.2-9.9 15.2h1l10.1-15.5 17.4 14.9-.6.6h3.9l-2-.8 31.2-43.2 17.6-24.4c1.1.7 2.4 1.1 3.7 1l7.4 67.4h.9l-7.4-67.5c3.4-.6 5.7-3.9 5.1-7.3-.1-.5-.3-1.1-.5-1.6-1.4-3-4.7-4.4-7.8-3.3l-23.2-55.6v-.1l-41.6-58.6c2.7-2.2 3.2-6.1 1.1-8.9-1.8-2.3-5-3.1-7.6-1.8-.8.4-1.5.9-2.1 1.6L91.7 77.5l-56.3-27c.4-1.5.3-3-.3-4.5 1.3-3.3-.3-7-3.5-8.3-3.2-1.3-6.9.3-8.2 3.5-.7 1.6-.6 3.5.1 5.1l-24-6.5v.7L23.1 47c-.8 3.4 1.2 6.9 4.6 7.8.3.1.6.1 1 .2L22 83.3l-3.9 16.6c-.7-.2-1.2-.4-1.8-.5-.3.2-.7.7-1.1.9.7.9 1.5 1.6 2.2 2.4l-.2.7c-10.8-2.3-13.6-2.8-17.8-1.7v-.1c.2 72.8.6 145.6.8 218.4m8.9-23.1c-.7.2-1.2.4-1.4.5.1.3.2.8.2 1.2-1.9.1-3.3-.2-4.2-.7L2.1 291c1.3-3.4 4.2-7 6.5-8.3.2-.1.5-.2.7-.2l-.2 14.4zm4.5-114.4c.4-.7.5-.8 10.3-6 .2-.2.5-.2.7-.4-.1-.8.1-2 .5-2.6.7-.1.7-.1 7 2.8 2.4-2.5 3.2-4.9 3.2-5-6.1-5.2-7-9.6-6.2-12.5.7-2.5 2.7-3.8 3.5-3.7 2.4.6 2.6 3.3 4.7 4.2.8-1.6.8-1.6-.5-7.2-.7-.4-2.5-1.5-4.4-4.7.4-.1.9-.2 1.2-.2 5.6 6.4 9.1 14.1 12.3 22.1 1.1 2.9 2.3 5.8 3.4 8.6.9 2.2 1.8 4.3 2.7 6.4l-39.3 9.1c-.3-3.6-.4-7.3.9-10.9zm.1 18.8c-.2-2.4-.4-4.7-.7-7l39.6-9.1c.3.7.6 1.3.9 1.9l-36.4 17.1c-.8-1.4-2-2.4-3.4-2.9zm32.5 30.2l.6-.5c.3.5.7 1.1 1 1.7l-1.6-1.2zM34 208.3c-1.1-.9-1.6-1.2-2.3-1.6.5 1.2.9 2.5 1.3 3.8l-.7 1.8c-1.1-1.4-2.4-2.6-4.3-3.1-2.9-.8-3.7 2.4-5.9 3l-1.3-2.1c-.2.3-.6.7-.8 1-.8-.6-1.7-1-2.7-1.4.6-1.5.7-3.3.1-4.9l36.3-17.1c2 3.9 4.1 7.7 6.7 11 3.7 4.8 8.3 8.9 14.4 11.9.1-.2.2-.4.1-.9-.2-1.4-1.4-5.3-5.7-19.7.1-.1.1-.2.2-.2.2-.3.4-.7.6-1-.3-1-.8-2-1.3-2.9l61 74.1 18.6 22.6c-.4.3-.6.7-1 1.1l-95.3-54c.2-.7.1-.8 0-1.2-.2-.2-.4-.5-.7-.7-10.7-13-15.1-17.6-17.3-19.5zM211.8 249c.1.2.2.2.2.4l-54.2 34.1c-1.5-2-4.1-3-6.5-2.4l-29.3-100c.2-.1.3-.1.5-.2.9-.4 1.6-1 2.2-1.7l87.4 63.9c-1 1.7-1.2 4-.3 5.9zm-61.2 32.2c-.2.1-.3.1-.5.2-.4.2-.7.4-1.1.7L66.5 182l47.2-5.9c.1.5.2 1 .5 1.5 1.3 2.8 4.3 4.2 7.2 3.6l29.2 100zm-37-105.8l-47.3 5.9 18.3-59.1 31.5 47.7c-1.7 1.3-2.6 3.4-2.5 5.5zm32.8 127.9l-4.6-3.3-88.7-63.5c-1.5-1.8-2-3-1.3-6L75 243.7c-.1 0-.2.1-.4.1-.3.1-1.1.4-1.3 1.6-.1.9 0 1.9.4 3.4 0 .2.1.2.1.4.4-1.1 1-2.3 1.4-3.4.2-.8.4-1.5.3-1.8v-.1l68.5 38.8 3 1.7c-.8 1.6-.9 3.6-.1 5.4.6 1.5 1.9 2.6 3.3 3.2l-3.8 10.3zm10.2 8.8l-9.5-8.1 2.6-7.2 1.2-3.4c1.1.3 2.4.3 3.6 0l9.3 24.8-7.2-6.1zm8.3 6.5l-9.6-25.5c3.2-1.5 4.6-5.2 3.1-8.4-.1-.2-.2-.2-.2-.4l54.2-34.1c.3.4.6.8 1.1 1.1l-48.6 67.3zm49.9-77.9c-.8.4-1.5 1-2 1.6l-14-10.2-73.5-53.7c.4-.7.7-1.4.8-2.1l65.5 9.1 23.2 55.3zm-70.6-113.6c1.5.7 3.4.7 5.1-.1.2-.1.5-.2.7-.4l41 57.8-62.5-8.6-2.3-.3c.1-1.1-.1-2.1-.6-3.1-.6-1.2-1.5-2.2-2.6-2.9l21.2-42.4zm-.7-.3l-21.1 42.4c-1.6-.7-3.5-.7-5.1.1l-.5.2-31.5-47.8h55.2c.1.7.2 1.6.6 2.2.4 1.2 1.3 2.2 2.4 2.9zM91.3 78.1l49.2 38.8L37 52.1l54.3 26zM34.8 51.7l106.4 66.6c-.4.8-.7 1.7-.7 2.6H84.7L52.4 77.4 34.2 52.7c.2-.4.4-.7.6-1zm-1.2 1.5L43.8 67 84 121.3l-18.3 58.9L32.4 54.1c.5-.3.9-.5 1.2-.9zm-4.1 1.7c.7 0 1.5-.2 2.2-.5L65.1 181c-3.1-3.4-7-6.4-10.2-9.8-3.4-3.5-6.3-7.5-7-13.1l.1-.6c.4.1.8.1 1.1.2.6-1.4.2-2.9.6-4.2 1.4-.2 2.8.2 4.2.1.1-2.8-2-5.6-3.7-8.4-2.4-3.7-4.4-7.3-.2-10.4-1.3-2.5-2.3-4.3-15-9.5-1.1-5.8-6.7-7.9-10-11.8.8.3 1.9.7 2.7 1.1.5-.6 1-1.6 1.1-2.4.7.4 1.8.8 2.7 1l.7-.8c.3-.1.8-.2 1.2-.3 0-.2.1-.5 0-.7-.1-.1-8-8.6-14.4-11.3l7-30.5 3.5-14.7z" class="st4"/>
|
27 |
-
<path d="M18.1 103.7v-.2l.2.2h-.2zM48.3 314v-.2l1.1 2c.2.9.8 2.2 1.6 3.1 1.2 1.4 2.8 2 4.3-.6.5-.9.5-2.4.2-3.4-.9-2.6-2.9-4.6-4-7.1.3-.5.8-1.3 6.9-3.3-1.5 1.1-5.9 5-.7 6.1.8-1.8 2.7-2.5 4-3.9-.2-1.6-1.6-2.8-1.4-4.6 2-1.3 1.9 2.8 3.1 3.9 1.1 1 2.1.5 2.3.3 1.2-1.2 1.2-3 2-4.5 1.1-2 3.4-1.6 5-2.5 1.3-.7 1.1-2.3 1.7-3.4.7.8 1.1 1.1 1.6 1.2.1 0 .2.1.2.1.2-.2.3-.3.2-1.4-.2-1.7-.9-5.8-2.8-16.2 0-.1-1.3-4.7-3.5-8-1.5-2.2-3.4-3.8-5.6-2.8-.4 1.1-.5 2.2-.2 3.3.2 1.1.8 2.7 1.8 5.1 2.6 6.7.5 11.3.5 11.4-.9 1.7-.9 1.7-4.2.2-2.2 2.6 1.9 6.4-1.5 8.6-2.4 1.7-6 .6-8 3.3-2 2.5-2.4 3.5-3.8 5.9-1.5 2.5-1.8 4.2-1.7 5.2.1 1.3.6 1.8.9 2.2zm5.5-146.4c.1 0 .1.1.2.1 0-.3-.5-2.8-1.1-4-.2-.6-.5-.6-.6-.6-.8.3-.5 3.6 1.5 4.5zm5.2 84.9c.4.7 1.2 2.4 1.6 3.9.5 1.8.2 2.6-.3 3.6-.6 1.1-1.4 2.4-1 4.1v.1c.3 1.1 3.3 4.8 4.6 4.6 1.2-.2 1.3-2 .8-3.3-.2-.6-.5-1.1-.9-1.5s-.7-.3-1.1-.3c1-.3 2.2-.2 2.8-.1 1.5.2 2.5.3 3.7-.8.1-.1.1-.2.2-.2.3-.5.2-1.1.5-1.7.7-1.2 1.8-2.2 2.4-3.4.1-.1.2-.3.2-.6-.1-1-.7-1.8-1.1-2.7-.7.8-6.9-1.7-9.6-2.9-2.8-1.2-3.3-1.2-3.7-1.1-.1.1-.2.2-.1.4.1.3.5.9 1 1.9z" class="st4"/>
|
28 |
-
<path d="M62.6 263.9c.1 0 .2-.1.2-.1-.1 0-.2 0-.2.1z" class="st4"/>
|
29 |
-
</g>
|
30 |
-
</g>
|
31 |
-
</g>
|
32 |
-
<path id="logo" d="M76.9 207.1c.9 1.8.8 4.6 1.7 6.4.6.3 1.3.6 1.8.9 7.6-1.1 7.8-10.2 3.9-14.6-1.8-1.7-4.5-2.5-7.8-1-16.8 7.2-32.9 2.6-42.6-7.5-5.3-5.3-8.8-12.1-9.8-19.5-2.6-23.5 16.6-38.4 29.8-40.1 11.8-1.4 23 2.8 30.5 10.4 8.1 8.1 12.5 20.3 9.9 34.4-1.1 6.4-4.9 14.5-13.5 14.5-3.4 0-6.8-1.5-9.2-4.1-2.3-2.2-3.7-5.2-3.9-8.4-.8-12.7 15.5-16.3 14.5-29-.1-2.3-1.1-4.2-2.8-6-4.9-4.7-14.9-6.5-23.9-4.7-11.2 2.3-21.9 12.5-23.9 24.8-1.6 10 2 21.2 9.3 28.9 6.5 6.5 16 10.1 27.5 7.3 3.8-.8 6.7-4.4 12.7-3.4 2.2.3 4 1.4 5.3 2.8 4.9 4.6 4.1 14.2-2.3 16.5-3.3 1.1-9.3.2-11.9-2.6l-.1-.1c-.3-.1-.6-.5-.9-.8-1-.8-1.7-2.5-1.6-4.4.1-2.6 1.8-4.7 3.8-4.5.8.1 1.5.5 2 1 .7.9 1.3 1.7 1.5 2.8m112.9-35.5c.7-.9 1-2 1.4-3.1.5-2.1.5-4.4-.1-6.4-.2-1.1-.7-2.3-1.4-3.1-.7-1-1.7-1.7-2.9-2.2-1.1-.6-2.5-.8-4.2-.8h-3.1c-.6 0-1 .5-1 1v16.9c0 .6.5 1 1 1h2c2.2 0 4-.3 5.3-1 1.1-.2 2.3-1.1 3-2.3m9.2-7.3c0 2.3-.5 4.2-1.4 6-.8 1.7-2.1 3.1-3.7 4.2-1.6 1-3.1 2-5.1 2.5-2 .6-3.9.8-5.9.8h-3.7c-.6 0-1 .5-1 1v11.9c0 .7.1 1.4.5 1.8.2.6.7.9 1.5 1.3.5.1 1 .2 2 .5.6.1 1 .1 1.6.2.6 0 1 .5 1 1s-.5 1-1 1h-16.3c-.6 0-1-.5-1-1v-.1c0-.6.5-1 .9-1 .3 0 .7-.1 1.1-.1.9-.1 1.6-.2 2-.5.6-.2 1-.6 1.4-1.1.2-.6.5-1.1.5-2v-31c0-.7-.1-1.4-.3-2-.2-.6-.7-1-1.4-1.3-.8-.2-1.6-.5-2.3-.6-.3 0-.7-.1-.9-.1-.6-.1-.9-.6-.9-1v-.1c0-.6.5-1 1-1H186c3.9 0 7.1.9 9.6 2.9l.1.1c2 2 3.3 4.6 3.3 7.7zm-36.8-8.4c-.6 0-1 .1-1.7.5-.7.2-1.1.5-1.7.8l-.1.1c-.7.5-1.1.9-1.7 1.5-.5.6-.7 1.4-1.1 2.4v.1c-1.4 4.7-3.1 10.1-4.9 16.4-1.7 6.1-3.8 12.4-5.9 19.3-.1.5-.6.8-1 .8h-1.3c-.5 0-.9-.3-1-.8l-9.5-29.4c-.1-.6-.8-.9-1.4-.7-.3.1-.6.3-.7.7l-10 29.4c-.1.5-.6.7-1 .7h-1c-.5 0-.9-.3-1-.8-2-6.9-3.9-13.9-6-21.3-2.2-7.7-3.6-12.7-4.2-15.4-.1-.6-.5-1-.7-1.6 0-.1-.1-.2-.1-.2-.8-1-2-1.7-3.2-2-.3-.1-.7-.1-.9-.2-.5-.1-.9-.6-.9-1v-.2c0-.6.5-1 1-1h15.4c.6 0 1 .5 1 1v.1c0 .6-.5 1-1 1-1.1.1-2.1.2-2.9.5-1 .2-1.6.6-1.6 1 0 .1 0 .5.1.8.1.2.1.6.1.8.5 1.8 1.4 4.7 2.5 8.8 1 3.6 2.4 8.6 4.2 15 .3 1 1.7 1 2.1 0l9.3-27.9c.1-.5.6-.7 1-.7h1.4c.5 0 .9.3 1 .8l9.4 28.6c.3 1 1.8 1 2.1 0l2.8-9.9c1-3.8 2-6.9 2.5-9.6.5-1.8.8-3.2.9-3.9.1-.7.1-1.3.1-1.8 0-.7-.5-1.3-1.4-1.7-.8-.5-2-.7-3.6-.8-.6-.1-1-.6-1-1 0-.6.5-1 1-1H161c.6 0 1 .5 1 1l.2.8zM292 184l-.8 11.8c0 .6-.5 1-1 1h-31.4c-.6 0-1-.5-1-1v-.1c0-.6.5-1 .9-1 .3 0 .7-.1 1.1-.1.9-.1 1.6-.2 2-.5.6-.2 1-.6 1.4-1.1.2-.6.5-1.1.5-2v-30.8c0-.7-.1-1.3-.5-1.8-.3-.6-.7-.9-1.4-1.3-.5-.2-1-.5-2-.7l-1.3-.3c-.5-.1-.9-.6-.9-1v-.2c0-.6.5-1 1-1h16c.6 0 1 .5 1 1v.1c0 .6-.3 1-.9 1-.3.1-.8.1-1.3.2-.9.1-1.6.5-2 .5-.7.2-1.1.6-1.4 1.3-.2.6-.5 1.3-.5 1.8v28.9c0 1.4.1 2.3.1 3.1.1.7.5 1.4.9 1.7.5.5 1.1.6 2.1.7s2.2.1 3.8.1c.8 0 1.6 0 2.3-.1.7 0 1.5-.1 2.3-.2h.1c.7-.1 1.3-.3 1.8-.5.6-.2.9-.5 1.3-.7.1 0 .1-.1.2-.2.8-.9 1.7-2.3 2.9-4.1.9-1.5 1.5-2.9 2-3.9.1-.5.6-.7 1-.7h1.6l.1.1zm-38.2 12.9H236c-.6 0-1-.5-1-1 0-.6.5-1 1-1s1-.1 1.7-.2c1-.1 1.8-.3 2.2-.6.6-.5 1-.8 1.4-1.4.3-.5.5-1 .5-1.8v-31.3h-.5l-14.6 35.9c-.1.5-.6.7-1 .7-.5 0-.9-.2-1-.7L211 158.6h-.5v25.7c0 2.5.1 4.4.5 5.6.3 1.3.8 2.2 1.5 2.9.5.5 1.4.8 2.8 1.3.8.2 1.4.3 1.8.5.5.1.9.6.9 1v.1c0 .6-.5 1-1 1h-14.8c-.7 0-1.3-.7-1-1.4v-.1c.1-.3.5-.7.8-.7.5-.1.8-.2 1.5-.5 1-.2 1.8-.6 2.3-1 .7-.6 1.1-1.4 1.5-2.6.2-1.1.5-3.1.5-5.9v-22.2c0-1.3-.1-2.3-.5-3.1-.3-.8-.7-1.5-1.4-2-.6-.6-1.4-.9-2.2-1.3h-.1l-1.7-.3c-.6-.1-.9-.6-.9-1.1v-.1c0-.6.5-1 1-1h12.7c.5 0 .8.2 1 .7l11 28.9c.3.9 1.7.9 2.1 0l9.4-24.3c.5-1 .7-2 1-3.1v-.1l.3-1.3c.1-.5.6-.8 1-.8h12.1c.6 0 1 .5 1 1v.1c0 .6-.5 1-.9 1-.3 0-.8.1-1.1.2-.8.1-1.5.3-2 .5-.7.2-1.1.6-1.4 1.3-.2.6-.5 1.1-.5 1.8v31.1c0 .7.1 1.4.5 1.8.2.5.7.9 1.4 1.3.5.2 1 .5 2 .6.5.1.9.1 1.3.2.6.1.9.6.9 1v1.6z" class="st5"/>
|
33 |
-
</g>
|
34 |
-
<g class="st0">
|
35 |
-
<path d="M146.2 2.5h-.1l171.4 171.4.5-.5V2.5z" class="st6"/>
|
36 |
-
</g>
|
37 |
-
<path d="M246.1 70.2c0 3 2.4 5.4 5.4 5.4h40.2c3 0 5.4-2.4 5.4-5.4V29.9c0-3-2.4-5.4-5.4-5.4h-40.2c-3 0-5.4 2.4-5.4 5.4v40.3zm45.6 2.8h-40.2c-1.6 0-2.8-1.3-2.8-2.8v-6.7l9.7-9.7 8.3 8.3c.5.5 1.3.5 1.8 0l14.9-14.9 11.2 11.2v11.8c0 1.5-1.3 2.8-2.9 2.8zm-40.2-45.9h40.2c1.6 0 2.8 1.3 2.8 2.8v24.8l-10.3-10.3c-.5-.5-1.3-.5-1.8 0l-14.9 14.9-8.3-8.3c-.5-.5-1.3-.5-1.8 0l-8.8 8.8V29.9c.1-1.5 1.4-2.8 2.9-2.8z" class="st7"/>
|
38 |
-
<path d="M261.9 45c3.6 0 6.5-2.9 6.5-6.5s-2.9-6.5-6.5-6.5-6.5 2.9-6.5 6.5c.1 3.6 3 6.5 6.5 6.5zm0-10.4c2.2 0 3.9 1.8 3.9 3.9 0 2.2-1.8 3.9-3.9 3.9-2.2 0-3.9-1.8-3.9-3.9 0-2.2 1.8-3.9 3.9-3.9z" class="st7"/>
|
39 |
-
</svg>
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
vendor/otgs/icons/plugin-icons/wpml/wpml-sl/icon-128x128.png
DELETED
Binary file
|
vendor/otgs/icons/plugin-icons/wpml/wpml-sl/icon-256x256.png
DELETED
Binary file
|
vendor/otgs/icons/plugin-icons/wpml/wpml-sl/icon.svg
DELETED
@@ -1,39 +0,0 @@
|
|
1 |
-
<svg xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" id="icon" viewBox="0 0 320 320">
|
2 |
-
<style>
|
3 |
-
.st0{clip-path:url(#SVGID_2_)}.st1{fill:url(#bg_2_)}.st2{opacity:.15}.st3{fill:none}.st4,.st5{fill:#fff}.st5{stroke:#fff;stroke-width:.75;stroke-miterlimit:10}.st6{fill:#f2bd2e}.st7{fill:#fff;stroke:#fff;stroke-width:.5;stroke-miterlimit:10}
|
4 |
-
</style>
|
5 |
-
<defs>
|
6 |
-
<path id="SVGID_1_" d="M312.5 317.5H7.5c-2.8 0-5-2.2-5-5V7.5c0-2.8 2.2-5 5-5h305c2.8 0 5 2.2 5 5v305c0 2.8-2.2 5-5 5z"/>
|
7 |
-
</defs>
|
8 |
-
<clipPath id="SVGID_2_">
|
9 |
-
<use overflow="visible" xlink:href="#SVGID_1_"/>
|
10 |
-
</clipPath>
|
11 |
-
<g class="st0">
|
12 |
-
<g id="bg_1_">
|
13 |
-
<g id="mask">
|
14 |
-
<linearGradient id="bg_2_" x1="321" x2="-1" y1="161.097" y2="161.097" gradientTransform="matrix(1 0 0 -1 0 321)" gradientUnits="userSpaceOnUse">
|
15 |
-
<stop offset="0" stop-color="#33879e"/>
|
16 |
-
<stop offset=".295" stop-color="#3389a1" stop-opacity=".823"/>
|
17 |
-
<stop offset=".52" stop-color="#318dab" stop-opacity=".688"/>
|
18 |
-
<stop offset=".722" stop-color="#2f96bb" stop-opacity=".567"/>
|
19 |
-
<stop offset=".909" stop-color="#2ba1d2" stop-opacity=".455"/>
|
20 |
-
<stop offset="1" stop-color="#29a8e0" stop-opacity=".4"/>
|
21 |
-
</linearGradient>
|
22 |
-
<path id="bg" d="M-1-.3h322v320.5H-1V-.3z" class="st1"/>
|
23 |
-
<g id="earth" class="st2">
|
24 |
-
<path d="M18 299.1c-9.1 10.7-9.1 10.7 3.7 20.9v.1h84.5l39.6-16.1-73.4-52.6c0 .6-.3 1.5-1 2.7.3.9 1 1.7 1.1 2.7 0 .2-.1.5-.2.6-.7 1.2-1.7 2.2-2.4 3.4-.3.5-.2 1.1-.5 1.7-.1.1-.1.2-.2.2-1.1 1.1-2.2 1-3.7.8-.7-.1-1.9-.2-2.8.1.3 0 .7 0 1.1.3.4.3.6.8.9 1.5.5 1.4.4 3.1-.8 3.3-1.3.2-4.3-3.5-4.6-4.6v-.1c-.5-1.6.3-2.9 1-4.1.6-1.1.8-1.8.3-3.6-.4-1.5-1.2-3.1-1.6-3.9-.5-1-.9-1.6-.9-2 0-.1.1-.2.1-.4.4-.2.9-.2 3.7 1.1 2.7 1.1 9 3.8 9.6 2.9-.2-.7-.7-2.8.2-3.3L57 240.4c.7.7 1.4 1.3 2 2 1.1 1.2.9 1.8.9 2-.2.8-.8.4-1.9-.2-.7-.4-.9-.3-1.1 0-.3.7.3 1.4 0 2-1.6-1.2-5.4-7.3-8.2-11.9l-3.3-2.4-.2-.1-2.4 1.7c.7 1.6 1.4 3.2 1.6 4.7.4 1.9 1.9 10.9-.8 21.9-.2 1.1-.6 2.3-1 3.4-1.5 4.7-7.8 2.2-9.6 6.4-.7 1.6-1 3.3-1.1 5.1-.2 2-.3 4.2-.9 6.1l5.5 10.7c2.5 2 4.9 4.2 5.5 7.8.2 1.3.3 2.3.1 3-.6 1.9-2.8 2.8-8 5-2.8-4.2-1.6-10.2-5.9-13.7-.7.1-1.5.2-2.2.4-.1 0-.2 0-.2.1-3-2-1.5-7.3-5.9-8.3-1.5-.3-1.5-.3-8.5 5.1l-1.1-.6c-.5-2.4-.3-4.9-.6-7.3l-.3 13.1c2.9-.4 7.1-.7 8.6 2.7zm31.1 7.8c1.4-2.4 1.9-3.3 3.8-5.9 2-2.7 5.6-1.6 8-3.3 3.4-2.4-.7-6.1 1.5-8.6 3.3 1.6 3.3 1.6 4.2-.2 0-.1 2.1-4.7-.5-11.4-1-2.4-1.5-3.9-1.8-5.1-.3-1.4-.2-2.2.2-3.3 2.2-1.1 4.1.6 5.6 2.8 2.2 3.3 3.5 7.9 3.5 8 1.9 10.4 2.6 14.5 2.8 16.2.1 1.1 0 1.2-.2 1.4-.1 0-.2 0-.2-.1-.5-.2-.9-.4-1.6-1.2-.6 1.1-.4 2.7-1.7 3.4-1.6 1-4 .5-5 2.5-.7 1.5-.7 3.3-2 4.5-.1.1-1.2.7-2.3-.3-1.2-1.1-1.1-5.2-3.1-3.9-.2 1.7 1.1 2.9 1.4 4.6-1.3 1.4-3.2 2.1-4 3.9-5.2-1.1-.8-4.9.6-6.1-6.1 2-6.7 2.8-6.9 3.3 1 2.5 3 4.5 4 7.1.3 1 .3 2.5-.2 3.4-1.5 2.5-3.1 1.9-4.3.6-.8-.9-1.3-2-1.6-3.1l-1.1-2v.2c-.4-.4-.8-1-.9-2 0-1.3.3-2.8 1.8-5.4zm16.5-21.7c.2 0 .5.2.5.5s-.2.5-.3.6c-.5-.4-.6-.7-.2-1.1zM52.2 184.4c-1-2.1-1.9-4.2-2.7-6.4-1.1-2.9-2.3-5.8-3.4-8.6-3.2-7.9-6.7-15.7-12.3-22.1-.4.1-.9.2-1.2.2 1.9 3.2 3.7 4.2 4.4 4.7 1.3 5.6 1.3 5.6.5 7.2-2-.8-2.4-3.7-4.7-4.2-.9-.2-2.8 1.1-3.5 3.7-.8 2.9.1 7.2 6.2 12.5 0 .1-.7 2.4-3.2 5-6.4-2.9-6.4-2.9-7-2.8-.4.7-.6 1.8-.5 2.6-.2.2-.5.2-.7.4-10 5.3-10.1 5.4-10.3 6-1.3 3.7-1.2 7.3-.9 11l39.3-9.2z" class="st3"/>
|
25 |
-
<path d="M62.8 263.8c-.1 0-.2.1-.2.1 0-.1.1-.1.2-.1zM18.1 103.7c.1 0 .2 0 .2.1l-.2-.2v.1zm145.7 214.4l-9.3-24.8c-1.2.3-2.4.3-3.6 0l-1.2 3.4-2.5 7.1 9.5 8.1 7.1 6.2zm-72.5-240L37 52.1l103.4 64.7zM84 121.3L43.8 67 33.6 53.2c-.3.3-.6.6-1.1.8l33.3 126.2L84 121.3zm41.7 51.1c.5 1 .7 2 .6 3.1l2.3.3 62.5 8.6-41-57.8c-.2.2-.5.2-.7.4-1.7.7-3.5.7-5.1.1L123 169.6c1.2.6 2.2 1.5 2.7 2.8zm-59.4 8.9l47.3-5.9c-.1-2.1.8-4.2 2.5-5.5l-31.5-47.7-18.3 59.1zm47.4-5.1l-47.2 5.9L149 282c.3-.2.7-.5 1.1-.7.2-.1.3-.2.5-.2l-29.3-100c-2.8.7-5.9-.7-7.2-3.5-.2-.4-.3-.9-.4-1.4zm-62.2 51.7c.2.2.4.5.6.7.1.4.2.6 0 1.2l95.3 54c.2-.4.6-.8 1-1.1L129.8 260l-61-74.1c.5.9 1 1.9 1.3 2.9-.2.3-.4.7-.6 1-.1.1-.1.2-.2.2 4.4 14.4 5.5 18.4 5.7 19.7.1.5 0 .7-.1.9-6.1-3-10.6-7.1-14.3-11.8-2.7-3.4-4.9-7.2-6.7-11L17.5 205c.7 1.6.6 3.3-.1 4.9.9.4 1.9.8 2.7 1.4.2-.3.6-.7.8-1l1.3 2.1c2.2-.6 2.9-3.8 5.9-3 1.9.6 3.2 1.8 4.3 3.1l.7-1.8c-.4-1.3-.8-2.6-1.3-3.8.7.3 1.2.7 2.3 1.6 2.2 1.9 6.6 6.5 17.4 19.4zM77 239.2c.2-.1.6 0 .7.5.1.5-.4 2.5-.8 2.3-.5-.2-.7-2.4.1-2.8zm65 61l4.6 3.3 3.7-10.3c-1.4-.6-2.5-1.7-3.3-3.2-.8-1.8-.7-3.8.1-5.4l-3-1.7L75.6 244v.1c.1.3-.1 1-.3 1.8-.4 1.1-1 2.3-1.4 3.4 0-.2-.1-.2-.1-.4-.3-1.6-.5-2.5-.3-3.4.2-1.3.9-1.6 1.2-1.7.2 0 .2-.1.4-.1l-23.2-13.1c-.6 3-.2 4.2 1.3 6l88.8 63.6zm-6.3 19.9l9.9-15.2-37.4 15.2zm76.7-70l-54.2 34.1c.1.1.2.2.2.4 1.5 3.2.1 6.9-3.1 8.4l9.6 25.6 48.7-67.3c-.5-.3-.9-.7-1.2-1.2zM9.1 296.9l.3-14.4c-.2 0-.6.1-.7.2-2.4 1.3-5.3 4.9-6.6 8.3l1.6 6.9c1 .5 2.4.7 4.2.7-.1-.3-.2-.8-.2-1.2.2-.1.7-.3 1.4-.5zm9.8-196.7c6.3 2.8 14.3 11.2 14.4 11.3.1.2-.1.5 0 .7-.3.1-.8.2-1.2.3l-.7.8c-.8-.1-2-.6-2.7-1-.1.8-.6 1.8-1.1 2.4-.8-.4-1.9-.8-2.7-1.1 3.3 4 8.8 6.1 10 11.8 12.8 5.1 13.7 6.9 15 9.5-4.1 3.1-2.1 6.7.2 10.4 1.8 2.8 3.8 5.5 3.7 8.4-1.4.1-2.8-.2-4.2-.1-.4 1.4 0 2.9-.6 4.2-.3-.1-.8-.1-1.1-.2l-.1.6c.7 5.5 3.5 9.5 7 13.1 3.3 3.3 7.2 6.3 10.2 9.8L31.7 54.5c-.7.3-1.5.5-2.2.5l-3.4 14.5-7.2 30.7zm34.9 67.4c-2-1-2.4-4.3-1.5-4.5.1 0 .3 0 .6.7.6 1.2 1.1 3.7 1.1 4 0-.1-.1-.2-.2-.2zm109.7 152.5l.7-.6-17.4-14.8-10.1 15.4zM17.3 103.5l.2-.7c-.8-.8-1.6-1.6-2.2-2.4.3-.2.7-.7 1.1-.9.6.1 1.2.2 1.8.5L22 83.3 28.7 55c-3.5-.3-6.1-3.4-5.8-6.9 0-.3.1-.6.2-1m101.7 132c-.6.7-1.3 1.3-2.2 1.7-.2.1-.3.2-.5.2l29.3 100c2.4-.6 5 .4 6.5 2.4l54.2-34.1c-.1-.1-.2-.2-.2-.4-.9-2-.7-4.3.4-6l-87.5-63.8zm66.8 6.2l-65.5-9.1c-.2.7-.4 1.5-.8 2.1l73.5 53.7 14 10.2c.6-.7 1.2-1.2 2-1.6l-23.2-55.3zM17 204.2l36.3-17.1c-.3-.7-.6-1.2-.9-1.9l-39.5 9.1c.2 2.4.6 4.7.6 7 1.6.5 2.8 1.5 3.5 2.9zm123.3-82.6H85.2l31.6 47.8.5-.2c1.7-.7 3.5-.7 5.1-.1l21.1-42.4c-1.1-.7-2-1.6-2.6-2.9-.3-.6-.5-1.4-.6-2.2zm-55.6-.8h55.7c.1-.9.3-1.8.7-2.6L34.8 51.7c-.2.3-.4.7-.6 1l18.3 24.6 32.2 43.5zm140.5 199.3l-7.4-67.4c-1.3.1-2.6-.3-3.7-1l-17.6 24.4-31.2 43.2 2 .8h57.9z" class="st3"/>
|
26 |
-
<path d="M18.3 299c-1.5-3.4-5.7-3.1-8.4-2.4l.3-13.1c.2 2.4.1 4.9.6 7.3l1.1.6c7-5.5 7-5.5 8.5-5.1 4.5 1 2.9 6.3 5.9 8.3.1 0 .2 0 .2-.1.6-.2 1.5-.3 2.2-.4 4.3 3.5 3.2 9.5 5.9 13.7 5.2-2.2 7.4-3.1 8-5 .2-.8.2-1.7-.1-3-.7-3.5-3-5.7-5.5-7.8l-5.5-10.7c.5-2 .6-4.1.9-6.1.2-1.8.5-3.5 1.1-5.1 1.8-4.2 8.1-1.7 9.6-6.4.4-1.1.6-2.3 1-3.4 2.7-11 1.1-20.1.8-21.9-.3-1.6-.9-3.1-1.6-4.7l2.4-1.7.2.1 3.3 2.4c2.8 4.6 6.6 10.7 8.2 11.9.2-.7-.4-1.4 0-2 .2-.3.3-.4 1.1 0 1.1.6 1.7 1 1.9.2.1-.2.2-.8-.9-2-.6-.7-1.3-1.4-2-2L72.1 251c-.8.5-.4 2.5-.2 3.3.6-1.2.9-2.1 1-2.7l73.4 52.6-39.8 16.2h1.9l37.4-15.2-9.9 15.2h1l10.1-15.5 17.4 14.9-.6.6h3.9l-2-.8 31.2-43.2 17.6-24.4c1.1.7 2.4 1.1 3.7 1l7.4 67.4h.9l-7.4-67.5c3.4-.6 5.7-3.9 5.1-7.3-.1-.5-.3-1.1-.5-1.6-1.4-3-4.7-4.4-7.8-3.3l-23.2-55.6v-.1l-41.6-58.6c2.7-2.2 3.2-6.1 1.1-8.9-1.8-2.3-5-3.1-7.6-1.8-.8.4-1.5.9-2.1 1.6L91.7 77.5l-56.3-27c.4-1.5.3-3-.3-4.5 1.3-3.3-.3-7-3.5-8.3-3.2-1.3-6.9.3-8.2 3.5-.7 1.6-.6 3.5.1 5.1l-24-6.5v.7L23.1 47c-.8 3.4 1.2 6.9 4.6 7.8.3.1.6.1 1 .2L22 83.3l-3.9 16.6c-.7-.2-1.2-.4-1.8-.5-.3.2-.7.7-1.1.9.7.9 1.5 1.6 2.2 2.4l-.2.7c-10.8-2.3-13.6-2.8-17.8-1.7v-.1c.2 72.8.6 145.6.8 218.4m8.9-23.1c-.7.2-1.2.4-1.4.5.1.3.2.8.2 1.2-1.9.1-3.3-.2-4.2-.7L2.1 291c1.3-3.4 4.2-7 6.5-8.3.2-.1.5-.2.7-.2l-.2 14.4zm4.5-114.4c.4-.7.5-.8 10.3-6 .2-.2.5-.2.7-.4-.1-.8.1-2 .5-2.6.7-.1.7-.1 7 2.8 2.4-2.5 3.2-4.9 3.2-5-6.1-5.2-7-9.6-6.2-12.5.7-2.5 2.7-3.8 3.5-3.7 2.4.6 2.6 3.3 4.7 4.2.8-1.6.8-1.6-.5-7.2-.7-.4-2.5-1.5-4.4-4.7.4-.1.9-.2 1.2-.2 5.6 6.4 9.1 14.1 12.3 22.1 1.1 2.9 2.3 5.8 3.4 8.6.9 2.2 1.8 4.3 2.7 6.4l-39.3 9.1c-.3-3.6-.4-7.3.9-10.9zm.1 18.8c-.2-2.4-.4-4.7-.7-7l39.6-9.1c.3.7.6 1.3.9 1.9l-36.4 17.1c-.8-1.4-2-2.4-3.4-2.9zm32.5 30.2l.6-.5c.3.5.7 1.1 1 1.7l-1.6-1.2zM34 208.3c-1.1-.9-1.6-1.2-2.3-1.6.5 1.2.9 2.5 1.3 3.8l-.7 1.8c-1.1-1.4-2.4-2.6-4.3-3.1-2.9-.8-3.7 2.4-5.9 3l-1.3-2.1c-.2.3-.6.7-.8 1-.8-.6-1.7-1-2.7-1.4.6-1.5.7-3.3.1-4.9l36.3-17.1c2 3.9 4.1 7.7 6.7 11 3.7 4.8 8.3 8.9 14.4 11.9.1-.2.2-.4.1-.9-.2-1.4-1.4-5.3-5.7-19.7.1-.1.1-.2.2-.2.2-.3.4-.7.6-1-.3-1-.8-2-1.3-2.9l61 74.1 18.6 22.6c-.4.3-.6.7-1 1.1l-95.3-54c.2-.7.1-.8 0-1.2-.2-.2-.4-.5-.7-.7-10.7-13-15.1-17.6-17.3-19.5zM211.8 249c.1.2.2.2.2.4l-54.2 34.1c-1.5-2-4.1-3-6.5-2.4l-29.3-100c.2-.1.3-.1.5-.2.9-.4 1.6-1 2.2-1.7l87.4 63.9c-1 1.7-1.2 4-.3 5.9zm-61.2 32.2c-.2.1-.3.1-.5.2-.4.2-.7.4-1.1.7L66.5 182l47.2-5.9c.1.5.2 1 .5 1.5 1.3 2.8 4.3 4.2 7.2 3.6l29.2 100zm-37-105.8l-47.3 5.9 18.3-59.1 31.5 47.7c-1.7 1.3-2.6 3.4-2.5 5.5zm32.8 127.9l-4.6-3.3-88.7-63.5c-1.5-1.8-2-3-1.3-6L75 243.7c-.1 0-.2.1-.4.1-.3.1-1.1.4-1.3 1.6-.1.9 0 1.9.4 3.4 0 .2.1.2.1.4.4-1.1 1-2.3 1.4-3.4.2-.8.4-1.5.3-1.8v-.1l68.5 38.8 3 1.7c-.8 1.6-.9 3.6-.1 5.4.6 1.5 1.9 2.6 3.3 3.2l-3.8 10.3zm10.2 8.8l-9.5-8.1 2.6-7.2 1.2-3.4c1.1.3 2.4.3 3.6 0l9.3 24.8-7.2-6.1zm8.3 6.5l-9.6-25.5c3.2-1.5 4.6-5.2 3.1-8.4-.1-.2-.2-.2-.2-.4l54.2-34.1c.3.4.6.8 1.1 1.1l-48.6 67.3zm49.9-77.9c-.8.4-1.5 1-2 1.6l-14-10.2-73.5-53.7c.4-.7.7-1.4.8-2.1l65.5 9.1 23.2 55.3zm-70.6-113.6c1.5.7 3.4.7 5.1-.1.2-.1.5-.2.7-.4l41 57.8-62.5-8.6-2.3-.3c.1-1.1-.1-2.1-.6-3.1-.6-1.2-1.5-2.2-2.6-2.9l21.2-42.4zm-.7-.3l-21.1 42.4c-1.6-.7-3.5-.7-5.1.1l-.5.2-31.5-47.8h55.2c.1.7.2 1.6.6 2.2.4 1.2 1.3 2.2 2.4 2.9zM91.3 78.1l49.2 38.8L37 52.1l54.3 26zM34.8 51.7l106.4 66.6c-.4.8-.7 1.7-.7 2.6H84.7L52.4 77.4 34.2 52.7c.2-.4.4-.7.6-1zm-1.2 1.5L43.8 67 84 121.3l-18.3 58.9L32.4 54.1c.5-.3.9-.5 1.2-.9zm-4.1 1.7c.7 0 1.5-.2 2.2-.5L65.1 181c-3.1-3.4-7-6.4-10.2-9.8-3.4-3.5-6.3-7.5-7-13.1l.1-.6c.4.1.8.1 1.1.2.6-1.4.2-2.9.6-4.2 1.4-.2 2.8.2 4.2.1.1-2.8-2-5.6-3.7-8.4-2.4-3.7-4.4-7.3-.2-10.4-1.3-2.5-2.3-4.3-15-9.5-1.1-5.8-6.7-7.9-10-11.8.8.3 1.9.7 2.7 1.1.5-.6 1-1.6 1.1-2.4.7.4 1.8.8 2.7 1l.7-.8c.3-.1.8-.2 1.2-.3 0-.2.1-.5 0-.7-.1-.1-8-8.6-14.4-11.3l7-30.5 3.5-14.7z" class="st4"/>
|
27 |
-
<path d="M18.1 103.7v-.2l.2.2h-.2zM48.3 314v-.2l1.1 2c.2.9.8 2.2 1.6 3.1 1.2 1.4 2.8 2 4.3-.6.5-.9.5-2.4.2-3.4-.9-2.6-2.9-4.6-4-7.1.3-.5.8-1.3 6.9-3.3-1.5 1.1-5.9 5-.7 6.1.8-1.8 2.7-2.5 4-3.9-.2-1.6-1.6-2.8-1.4-4.6 2-1.3 1.9 2.8 3.1 3.9 1.1 1 2.1.5 2.3.3 1.2-1.2 1.2-3 2-4.5 1.1-2 3.4-1.6 5-2.5 1.3-.7 1.1-2.3 1.7-3.4.7.8 1.1 1.1 1.6 1.2.1 0 .2.1.2.1.2-.2.3-.3.2-1.4-.2-1.7-.9-5.8-2.8-16.2 0-.1-1.3-4.7-3.5-8-1.5-2.2-3.4-3.8-5.6-2.8-.4 1.1-.5 2.2-.2 3.3.2 1.1.8 2.7 1.8 5.1 2.6 6.7.5 11.3.5 11.4-.9 1.7-.9 1.7-4.2.2-2.2 2.6 1.9 6.4-1.5 8.6-2.4 1.7-6 .6-8 3.3-2 2.5-2.4 3.5-3.8 5.9-1.5 2.5-1.8 4.2-1.7 5.2.1 1.3.6 1.8.9 2.2zm5.5-146.4c.1 0 .1.1.2.1 0-.3-.5-2.8-1.1-4-.2-.6-.5-.6-.6-.6-.8.3-.5 3.6 1.5 4.5zm5.2 84.9c.4.7 1.2 2.4 1.6 3.9.5 1.8.2 2.6-.3 3.6-.6 1.1-1.4 2.4-1 4.1v.1c.3 1.1 3.3 4.8 4.6 4.6 1.2-.2 1.3-2 .8-3.3-.2-.6-.5-1.1-.9-1.5s-.7-.3-1.1-.3c1-.3 2.2-.2 2.8-.1 1.5.2 2.5.3 3.7-.8.1-.1.1-.2.2-.2.3-.5.2-1.1.5-1.7.7-1.2 1.8-2.2 2.4-3.4.1-.1.2-.3.2-.6-.1-1-.7-1.8-1.1-2.7-.7.8-6.9-1.7-9.6-2.9-2.8-1.2-3.3-1.2-3.7-1.1-.1.1-.2.2-.1.4.1.3.5.9 1 1.9z" class="st4"/>
|
28 |
-
<path d="M62.6 263.9c.1 0 .2-.1.2-.1-.1 0-.2 0-.2.1z" class="st4"/>
|
29 |
-
</g>
|
30 |
-
</g>
|
31 |
-
</g>
|
32 |
-
<path id="logo" d="M76.9 207.1c.9 1.8.8 4.6 1.7 6.4.6.3 1.3.6 1.8.9 7.6-1.1 7.8-10.2 3.9-14.6-1.8-1.7-4.5-2.5-7.8-1-16.8 7.2-32.9 2.6-42.6-7.5-5.3-5.3-8.8-12.1-9.8-19.5-2.6-23.5 16.6-38.4 29.8-40.1 11.8-1.4 23 2.8 30.5 10.4 8.1 8.1 12.5 20.3 9.9 34.4-1.1 6.4-4.9 14.5-13.5 14.5-3.4 0-6.8-1.5-9.2-4.1-2.3-2.2-3.7-5.2-3.9-8.4-.8-12.7 15.5-16.3 14.5-29-.1-2.3-1.1-4.2-2.8-6-4.9-4.7-14.9-6.5-23.9-4.7-11.2 2.3-21.9 12.5-23.9 24.8-1.6 10 2 21.2 9.3 28.9 6.5 6.5 16 10.1 27.5 7.3 3.8-.8 6.7-4.4 12.7-3.4 2.2.3 4 1.4 5.3 2.8 4.9 4.6 4.1 14.2-2.3 16.5-3.3 1.1-9.3.2-11.9-2.6l-.1-.1c-.3-.1-.6-.5-.9-.8-1-.8-1.7-2.5-1.6-4.4.1-2.6 1.8-4.7 3.8-4.5.8.1 1.5.5 2 1 .7.9 1.3 1.7 1.5 2.8m112.9-35.5c.7-.9 1-2 1.4-3.1.5-2.1.5-4.4-.1-6.4-.2-1.1-.7-2.3-1.4-3.1-.7-1-1.7-1.7-2.9-2.2-1.1-.6-2.5-.8-4.2-.8h-3.1c-.6 0-1 .5-1 1v16.9c0 .6.5 1 1 1h2c2.2 0 4-.3 5.3-1 1.1-.2 2.3-1.1 3-2.3m9.2-7.3c0 2.3-.5 4.2-1.4 6-.8 1.7-2.1 3.1-3.7 4.2-1.6 1-3.1 2-5.1 2.5-2 .6-3.9.8-5.9.8h-3.7c-.6 0-1 .5-1 1v11.9c0 .7.1 1.4.5 1.8.2.6.7.9 1.5 1.3.5.1 1 .2 2 .5.6.1 1 .1 1.6.2.6 0 1 .5 1 1s-.5 1-1 1h-16.3c-.6 0-1-.5-1-1v-.1c0-.6.5-1 .9-1 .3 0 .7-.1 1.1-.1.9-.1 1.6-.2 2-.5.6-.2 1-.6 1.4-1.1.2-.6.5-1.1.5-2v-31c0-.7-.1-1.4-.3-2-.2-.6-.7-1-1.4-1.3-.8-.2-1.6-.5-2.3-.6-.3 0-.7-.1-.9-.1-.6-.1-.9-.6-.9-1v-.1c0-.6.5-1 1-1H186c3.9 0 7.1.9 9.6 2.9l.1.1c2 2 3.3 4.6 3.3 7.7zm-36.8-8.4c-.6 0-1 .1-1.7.5-.7.2-1.1.5-1.7.8l-.1.1c-.7.5-1.1.9-1.7 1.5-.5.6-.7 1.4-1.1 2.4v.1c-1.4 4.7-3.1 10.1-4.9 16.4-1.7 6.1-3.8 12.4-5.9 19.3-.1.5-.6.8-1 .8h-1.3c-.5 0-.9-.3-1-.8l-9.5-29.4c-.1-.6-.8-.9-1.4-.7-.3.1-.6.3-.7.7l-10 29.4c-.1.5-.6.7-1 .7h-1c-.5 0-.9-.3-1-.8-2-6.9-3.9-13.9-6-21.3-2.2-7.7-3.6-12.7-4.2-15.4-.1-.6-.5-1-.7-1.6 0-.1-.1-.2-.1-.2-.8-1-2-1.7-3.2-2-.3-.1-.7-.1-.9-.2-.5-.1-.9-.6-.9-1v-.2c0-.6.5-1 1-1h15.4c.6 0 1 .5 1 1v.1c0 .6-.5 1-1 1-1.1.1-2.1.2-2.9.5-1 .2-1.6.6-1.6 1 0 .1 0 .5.1.8.1.2.1.6.1.8.5 1.8 1.4 4.7 2.5 8.8 1 3.6 2.4 8.6 4.2 15 .3 1 1.7 1 2.1 0l9.3-27.9c.1-.5.6-.7 1-.7h1.4c.5 0 .9.3 1 .8l9.4 28.6c.3 1 1.8 1 2.1 0l2.8-9.9c1-3.8 2-6.9 2.5-9.6.5-1.8.8-3.2.9-3.9.1-.7.1-1.3.1-1.8 0-.7-.5-1.3-1.4-1.7-.8-.5-2-.7-3.6-.8-.6-.1-1-.6-1-1 0-.6.5-1 1-1H161c.6 0 1 .5 1 1l.2.8zM292 184l-.8 11.8c0 .6-.5 1-1 1h-31.4c-.6 0-1-.5-1-1v-.1c0-.6.5-1 .9-1 .3 0 .7-.1 1.1-.1.9-.1 1.6-.2 2-.5.6-.2 1-.6 1.4-1.1.2-.6.5-1.1.5-2v-30.8c0-.7-.1-1.3-.5-1.8-.3-.6-.7-.9-1.4-1.3-.5-.2-1-.5-2-.7l-1.3-.3c-.5-.1-.9-.6-.9-1v-.2c0-.6.5-1 1-1h16c.6 0 1 .5 1 1v.1c0 .6-.3 1-.9 1-.3.1-.8.1-1.3.2-.9.1-1.6.5-2 .5-.7.2-1.1.6-1.4 1.3-.2.6-.5 1.3-.5 1.8v28.9c0 1.4.1 2.3.1 3.1.1.7.5 1.4.9 1.7.5.5 1.1.6 2.1.7s2.2.1 3.8.1c.8 0 1.6 0 2.3-.1.7 0 1.5-.1 2.3-.2h.1c.7-.1 1.3-.3 1.8-.5.6-.2.9-.5 1.3-.7.1 0 .1-.1.2-.2.8-.9 1.7-2.3 2.9-4.1.9-1.5 1.5-2.9 2-3.9.1-.5.6-.7 1-.7h1.6l.1.1zm-38.2 12.9H236c-.6 0-1-.5-1-1 0-.6.5-1 1-1s1-.1 1.7-.2c1-.1 1.8-.3 2.2-.6.6-.5 1-.8 1.4-1.4.3-.5.5-1 .5-1.8v-31.3h-.5l-14.6 35.9c-.1.5-.6.7-1 .7-.5 0-.9-.2-1-.7L211 158.6h-.5v25.7c0 2.5.1 4.4.5 5.6.3 1.3.8 2.2 1.5 2.9.5.5 1.4.8 2.8 1.3.8.2 1.4.3 1.8.5.5.1.9.6.9 1v.1c0 .6-.5 1-1 1h-14.8c-.7 0-1.3-.7-1-1.4v-.1c.1-.3.5-.7.8-.7.5-.1.8-.2 1.5-.5 1-.2 1.8-.6 2.3-1 .7-.6 1.1-1.4 1.5-2.6.2-1.1.5-3.1.5-5.9v-22.2c0-1.3-.1-2.3-.5-3.1-.3-.8-.7-1.5-1.4-2-.6-.6-1.4-.9-2.2-1.3h-.1l-1.7-.3c-.6-.1-.9-.6-.9-1.1v-.1c0-.6.5-1 1-1h12.7c.5 0 .8.2 1 .7l11 28.9c.3.9 1.7.9 2.1 0l9.4-24.3c.5-1 .7-2 1-3.1v-.1l.3-1.3c.1-.5.6-.8 1-.8h12.1c.6 0 1 .5 1 1v.1c0 .6-.5 1-.9 1-.3 0-.8.1-1.1.2-.8.1-1.5.3-2 .5-.7.2-1.1.6-1.4 1.3-.2.6-.5 1.1-.5 1.8v31.1c0 .7.1 1.4.5 1.8.2.5.7.9 1.4 1.3.5.2 1 .5 2 .6.5.1.9.1 1.3.2.6.1.9.6.9 1v1.6z" class="st5"/>
|
33 |
-
</g>
|
34 |
-
<g class="st0">
|
35 |
-
<path d="M146.2 2.5h-.1l171.4 171.4.5-.5V2.5z" class="st6"/>
|
36 |
-
</g>
|
37 |
-
<path d="M298.3 22c-5.8-5.8-15.2-5.8-21.1 0l-10.5 10.5c-.9.9-.9 2.3 0 3.2.9.9 2.3.9 3.2 0l10.5-10.5c4-4 10.6-4 14.6 0s4 10.6 0 14.6l-13.8 13.8c-4 4-10.6 4-14.6 0-.9-.9-2.3-.9-3.2 0-.9.9-.9 2.3 0 3.2 5.8 5.8 15.2 5.8 21.1 0L298.3 43c5.8-5.8 5.8-15.2 0-21z" class="st7"/>
|
38 |
-
<path d="M270.8 64.1l-8.9 8.9c-4 4-10.6 4-14.6 0s-4-10.6 0-14.6l13-13c4-4 10.5-4 14.6 0 .9.9 2.3.9 3.2 0 .9-.9.9-2.3 0-3.2-5.8-5.8-15.2-5.8-21.1 0l-13 13c-5.8 5.8-5.8 15.2 0 21.1s15.2 5.8 21.1 0l8.9-8.9c.9-.9.9-2.3 0-3.2-.9-1-2.3-1-3.2-.1z" class="st7"/>
|
39 |
-
</svg>
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
vendor/otgs/icons/plugin-icons/wpml/wpml-st/icon-128x128.png
DELETED
Binary file
|
vendor/otgs/icons/plugin-icons/wpml/wpml-st/icon-256x256.png
DELETED
Binary file
|
vendor/otgs/icons/plugin-icons/wpml/wpml-st/icon.svg
DELETED
@@ -1,39 +0,0 @@
|
|
1 |
-
<svg xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" id="icon" viewBox="0 0 320 320">
|
2 |
-
<style>
|
3 |
-
.st0{clip-path:url(#SVGID_2_)}.st1{fill:url(#bg_2_)}.st2{opacity:.15}.st3{fill:none}.st4,.st5{fill:#fff}.st5{stroke:#fff;stroke-width:.75;stroke-miterlimit:10}.st6{fill:#f2bd2e}
|
4 |
-
</style>
|
5 |
-
<defs>
|
6 |
-
<path id="SVGID_1_" d="M312.5 317.5H7.5c-2.8 0-5-2.2-5-5V7.5c0-2.8 2.2-5 5-5h305c2.8 0 5 2.2 5 5v305c0 2.8-2.2 5-5 5z"/>
|
7 |
-
</defs>
|
8 |
-
<clipPath id="SVGID_2_">
|
9 |
-
<use overflow="visible" xlink:href="#SVGID_1_"/>
|
10 |
-
</clipPath>
|
11 |
-
<g class="st0">
|
12 |
-
<g id="bg_1_">
|
13 |
-
<g id="mask">
|
14 |
-
<linearGradient id="bg_2_" x1="321" x2="-1" y1="161.097" y2="161.097" gradientTransform="matrix(1 0 0 -1 0 321)" gradientUnits="userSpaceOnUse">
|
15 |
-
<stop offset="0" stop-color="#33879e"/>
|
16 |
-
<stop offset=".295" stop-color="#3389a1" stop-opacity=".823"/>
|
17 |
-
<stop offset=".52" stop-color="#318dab" stop-opacity=".688"/>
|
18 |
-
<stop offset=".722" stop-color="#2f96bb" stop-opacity=".567"/>
|
19 |
-
<stop offset=".909" stop-color="#2ba1d2" stop-opacity=".455"/>
|
20 |
-
<stop offset="1" stop-color="#29a8e0" stop-opacity=".4"/>
|
21 |
-
</linearGradient>
|
22 |
-
<path id="bg" d="M-1-.3h322v320.5H-1V-.3z" class="st1"/>
|
23 |
-
<g id="earth" class="st2">
|
24 |
-
<path d="M18 299.1c-9.1 10.7-9.1 10.7 3.7 20.9v.1h84.5l39.6-16.1-73.4-52.6c0 .6-.3 1.5-1 2.7.3.9 1 1.7 1.1 2.7 0 .2-.1.5-.2.6-.7 1.2-1.7 2.2-2.4 3.4-.3.5-.2 1.1-.5 1.7-.1.1-.1.2-.2.2-1.1 1.1-2.2 1-3.7.8-.7-.1-1.9-.2-2.8.1.3 0 .7 0 1.1.3.4.3.6.8.9 1.5.5 1.4.4 3.1-.8 3.3-1.3.2-4.3-3.5-4.6-4.6v-.1c-.5-1.6.3-2.9 1-4.1.6-1.1.8-1.8.3-3.6-.4-1.5-1.2-3.1-1.6-3.9-.5-1-.9-1.6-.9-2 0-.1.1-.2.1-.4.4-.2.9-.2 3.7 1.1 2.7 1.1 9 3.8 9.6 2.9-.2-.7-.7-2.8.2-3.3L57 240.4c.7.7 1.4 1.3 2 2 1.1 1.2.9 1.8.9 2-.2.8-.8.4-1.9-.2-.7-.4-.9-.3-1.1 0-.3.7.3 1.4 0 2-1.6-1.2-5.4-7.3-8.2-11.9l-3.3-2.4-.2-.1-2.4 1.7c.7 1.6 1.4 3.2 1.6 4.7.4 1.9 1.9 10.9-.8 21.9-.2 1.1-.6 2.3-1 3.4-1.5 4.7-7.8 2.2-9.6 6.4-.7 1.6-1 3.3-1.1 5.1-.2 2-.3 4.2-.9 6.1l5.5 10.7c2.5 2 4.9 4.2 5.5 7.8.2 1.3.3 2.3.1 3-.6 1.9-2.8 2.8-8 5-2.8-4.2-1.6-10.2-5.9-13.7-.7.1-1.5.2-2.2.4-.1 0-.2 0-.2.1-3-2-1.5-7.3-5.9-8.3-1.5-.3-1.5-.3-8.5 5.1l-1.1-.6c-.5-2.4-.3-4.9-.6-7.3l-.3 13.1c2.9-.4 7.1-.7 8.6 2.7zm31.1 7.8c1.4-2.4 1.9-3.3 3.8-5.9 2-2.7 5.6-1.6 8-3.3 3.4-2.4-.7-6.1 1.5-8.6 3.3 1.6 3.3 1.6 4.2-.2 0-.1 2.1-4.7-.5-11.4-1-2.4-1.5-3.9-1.8-5.1-.3-1.4-.2-2.2.2-3.3 2.2-1.1 4.1.6 5.6 2.8 2.2 3.3 3.5 7.9 3.5 8 1.9 10.4 2.6 14.5 2.8 16.2.1 1.1 0 1.2-.2 1.4-.1 0-.2 0-.2-.1-.5-.2-.9-.4-1.6-1.2-.6 1.1-.4 2.7-1.7 3.4-1.6 1-4 .5-5 2.5-.7 1.5-.7 3.3-2 4.5-.1.1-1.2.7-2.3-.3-1.2-1.1-1.1-5.2-3.1-3.9-.2 1.7 1.1 2.9 1.4 4.6-1.3 1.4-3.2 2.1-4 3.9-5.2-1.1-.8-4.9.6-6.1-6.1 2-6.7 2.8-6.9 3.3 1 2.5 3 4.5 4 7.1.3 1 .3 2.5-.2 3.4-1.5 2.5-3.1 1.9-4.3.6-.8-.9-1.3-2-1.6-3.1l-1.1-2v.2c-.4-.4-.8-1-.9-2 0-1.3.3-2.8 1.8-5.4zm16.5-21.7c.2 0 .5.2.5.5s-.2.5-.3.6c-.5-.4-.6-.7-.2-1.1zM52.2 184.4c-1-2.1-1.9-4.2-2.7-6.4-1.1-2.9-2.3-5.8-3.4-8.6-3.2-7.9-6.7-15.7-12.3-22.1-.4.1-.9.2-1.2.2 1.9 3.2 3.7 4.2 4.4 4.7 1.3 5.6 1.3 5.6.5 7.2-2-.8-2.4-3.7-4.7-4.2-.9-.2-2.8 1.1-3.5 3.7-.8 2.9.1 7.2 6.2 12.5 0 .1-.7 2.4-3.2 5-6.4-2.9-6.4-2.9-7-2.8-.4.7-.6 1.8-.5 2.6-.2.2-.5.2-.7.4-10 5.3-10.1 5.4-10.3 6-1.3 3.7-1.2 7.3-.9 11l39.3-9.2z" class="st3"/>
|
25 |
-
<path d="M62.8 263.8c-.1 0-.2.1-.2.1 0-.1.1-.1.2-.1zM18.1 103.7c.1 0 .2 0 .2.1l-.2-.2v.1zm145.7 214.4l-9.3-24.8c-1.2.3-2.4.3-3.6 0l-1.2 3.4-2.5 7.1 9.5 8.1 7.1 6.2zm-72.5-240L37 52.1l103.4 64.7zM84 121.3L43.8 67 33.6 53.2c-.3.3-.6.6-1.1.8l33.3 126.2L84 121.3zm41.7 51.1c.5 1 .7 2 .6 3.1l2.3.3 62.5 8.6-41-57.8c-.2.2-.5.2-.7.4-1.7.7-3.5.7-5.1.1L123 169.6c1.2.6 2.2 1.5 2.7 2.8zm-59.4 8.9l47.3-5.9c-.1-2.1.8-4.2 2.5-5.5l-31.5-47.7-18.3 59.1zm47.4-5.1l-47.2 5.9L149 282c.3-.2.7-.5 1.1-.7.2-.1.3-.2.5-.2l-29.3-100c-2.8.7-5.9-.7-7.2-3.5-.2-.4-.3-.9-.4-1.4zm-62.2 51.7c.2.2.4.5.6.7.1.4.2.6 0 1.2l95.3 54c.2-.4.6-.8 1-1.1L129.8 260l-61-74.1c.5.9 1 1.9 1.3 2.9-.2.3-.4.7-.6 1-.1.1-.1.2-.2.2 4.4 14.4 5.5 18.4 5.7 19.7.1.5 0 .7-.1.9-6.1-3-10.6-7.1-14.3-11.8-2.7-3.4-4.9-7.2-6.7-11L17.5 205c.7 1.6.6 3.3-.1 4.9.9.4 1.9.8 2.7 1.4.2-.3.6-.7.8-1l1.3 2.1c2.2-.6 2.9-3.8 5.9-3 1.9.6 3.2 1.8 4.3 3.1l.7-1.8c-.4-1.3-.8-2.6-1.3-3.8.7.3 1.2.7 2.3 1.6 2.2 1.9 6.6 6.5 17.4 19.4zM77 239.2c.2-.1.6 0 .7.5.1.5-.4 2.5-.8 2.3-.5-.2-.7-2.4.1-2.8zm65 61l4.6 3.3 3.7-10.3c-1.4-.6-2.5-1.7-3.3-3.2-.8-1.8-.7-3.8.1-5.4l-3-1.7L75.6 244v.1c.1.3-.1 1-.3 1.8-.4 1.1-1 2.3-1.4 3.4 0-.2-.1-.2-.1-.4-.3-1.6-.5-2.5-.3-3.4.2-1.3.9-1.6 1.2-1.7.2 0 .2-.1.4-.1l-23.2-13.1c-.6 3-.2 4.2 1.3 6l88.8 63.6zm-6.3 19.9l9.9-15.2-37.4 15.2zm76.7-70l-54.2 34.1c.1.1.2.2.2.4 1.5 3.2.1 6.9-3.1 8.4l9.6 25.6 48.7-67.3c-.5-.3-.9-.7-1.2-1.2zM9.1 296.9l.3-14.4c-.2 0-.6.1-.7.2-2.4 1.3-5.3 4.9-6.6 8.3l1.6 6.9c1 .5 2.4.7 4.2.7-.1-.3-.2-.8-.2-1.2.2-.1.7-.3 1.4-.5zm9.8-196.7c6.3 2.8 14.3 11.2 14.4 11.3.1.2-.1.5 0 .7-.3.1-.8.2-1.2.3l-.7.8c-.8-.1-2-.6-2.7-1-.1.8-.6 1.8-1.1 2.4-.8-.4-1.9-.8-2.7-1.1 3.3 4 8.8 6.1 10 11.8 12.8 5.1 13.7 6.9 15 9.5-4.1 3.1-2.1 6.7.2 10.4 1.8 2.8 3.8 5.5 3.7 8.4-1.4.1-2.8-.2-4.2-.1-.4 1.4 0 2.9-.6 4.2-.3-.1-.8-.1-1.1-.2l-.1.6c.7 5.5 3.5 9.5 7 13.1 3.3 3.3 7.2 6.3 10.2 9.8L31.7 54.5c-.7.3-1.5.5-2.2.5l-3.4 14.5-7.2 30.7zm34.9 67.4c-2-1-2.4-4.3-1.5-4.5.1 0 .3 0 .6.7.6 1.2 1.1 3.7 1.1 4 0-.1-.1-.2-.2-.2zm109.7 152.5l.7-.6-17.4-14.8-10.1 15.4zM17.3 103.5l.2-.7c-.8-.8-1.6-1.6-2.2-2.4.3-.2.7-.7 1.1-.9.6.1 1.2.2 1.8.5L22 83.3 28.7 55c-3.5-.3-6.1-3.4-5.8-6.9 0-.3.1-.6.2-1m101.7 132c-.6.7-1.3 1.3-2.2 1.7-.2.1-.3.2-.5.2l29.3 100c2.4-.6 5 .4 6.5 2.4l54.2-34.1c-.1-.1-.2-.2-.2-.4-.9-2-.7-4.3.4-6l-87.5-63.8zm66.8 6.2l-65.5-9.1c-.2.7-.4 1.5-.8 2.1l73.5 53.7 14 10.2c.6-.7 1.2-1.2 2-1.6l-23.2-55.3zM17 204.2l36.3-17.1c-.3-.7-.6-1.2-.9-1.9l-39.5 9.1c.2 2.4.6 4.7.6 7 1.6.5 2.8 1.5 3.5 2.9zm123.3-82.6H85.2l31.6 47.8.5-.2c1.7-.7 3.5-.7 5.1-.1l21.1-42.4c-1.1-.7-2-1.6-2.6-2.9-.3-.6-.5-1.4-.6-2.2zm-55.6-.8h55.7c.1-.9.3-1.8.7-2.6L34.8 51.7c-.2.3-.4.7-.6 1l18.3 24.6 32.2 43.5zm140.5 199.3l-7.4-67.4c-1.3.1-2.6-.3-3.7-1l-17.6 24.4-31.2 43.2 2 .8h57.9z" class="st3"/>
|
26 |
-
<path d="M18.3 299c-1.5-3.4-5.7-3.1-8.4-2.4l.3-13.1c.2 2.4.1 4.9.6 7.3l1.1.6c7-5.5 7-5.5 8.5-5.1 4.5 1 2.9 6.3 5.9 8.3.1 0 .2 0 .2-.1.6-.2 1.5-.3 2.2-.4 4.3 3.5 3.2 9.5 5.9 13.7 5.2-2.2 7.4-3.1 8-5 .2-.8.2-1.7-.1-3-.7-3.5-3-5.7-5.5-7.8l-5.5-10.7c.5-2 .6-4.1.9-6.1.2-1.8.5-3.5 1.1-5.1 1.8-4.2 8.1-1.7 9.6-6.4.4-1.1.6-2.3 1-3.4 2.7-11 1.1-20.1.8-21.9-.3-1.6-.9-3.1-1.6-4.7l2.4-1.7.2.1 3.3 2.4c2.8 4.6 6.6 10.7 8.2 11.9.2-.7-.4-1.4 0-2 .2-.3.3-.4 1.1 0 1.1.6 1.7 1 1.9.2.1-.2.2-.8-.9-2-.6-.7-1.3-1.4-2-2L72.1 251c-.8.5-.4 2.5-.2 3.3.6-1.2.9-2.1 1-2.7l73.4 52.6-39.8 16.2h1.9l37.4-15.2-9.9 15.2h1l10.1-15.5 17.4 14.9-.6.6h3.9l-2-.8 31.2-43.2 17.6-24.4c1.1.7 2.4 1.1 3.7 1l7.4 67.4h.9l-7.4-67.5c3.4-.6 5.7-3.9 5.1-7.3-.1-.5-.3-1.1-.5-1.6-1.4-3-4.7-4.4-7.8-3.3l-23.2-55.6v-.1l-41.6-58.6c2.7-2.2 3.2-6.1 1.1-8.9-1.8-2.3-5-3.1-7.6-1.8-.8.4-1.5.9-2.1 1.6L91.7 77.5l-56.3-27c.4-1.5.3-3-.3-4.5 1.3-3.3-.3-7-3.5-8.3-3.2-1.3-6.9.3-8.2 3.5-.7 1.6-.6 3.5.1 5.1l-24-6.5v.7L23.1 47c-.8 3.4 1.2 6.9 4.6 7.8.3.1.6.1 1 .2L22 83.3l-3.9 16.6c-.7-.2-1.2-.4-1.8-.5-.3.2-.7.7-1.1.9.7.9 1.5 1.6 2.2 2.4l-.2.7c-10.8-2.3-13.6-2.8-17.8-1.7v-.1c.2 72.8.6 145.6.8 218.4m8.9-23.1c-.7.2-1.2.4-1.4.5.1.3.2.8.2 1.2-1.9.1-3.3-.2-4.2-.7L2.1 291c1.3-3.4 4.2-7 6.5-8.3.2-.1.5-.2.7-.2l-.2 14.4zm4.5-114.4c.4-.7.5-.8 10.3-6 .2-.2.5-.2.7-.4-.1-.8.1-2 .5-2.6.7-.1.7-.1 7 2.8 2.4-2.5 3.2-4.9 3.2-5-6.1-5.2-7-9.6-6.2-12.5.7-2.5 2.7-3.8 3.5-3.7 2.4.6 2.6 3.3 4.7 4.2.8-1.6.8-1.6-.5-7.2-.7-.4-2.5-1.5-4.4-4.7.4-.1.9-.2 1.2-.2 5.6 6.4 9.1 14.1 12.3 22.1 1.1 2.9 2.3 5.8 3.4 8.6.9 2.2 1.8 4.3 2.7 6.4l-39.3 9.1c-.3-3.6-.4-7.3.9-10.9zm.1 18.8c-.2-2.4-.4-4.7-.7-7l39.6-9.1c.3.7.6 1.3.9 1.9l-36.4 17.1c-.8-1.4-2-2.4-3.4-2.9zm32.5 30.2l.6-.5c.3.5.7 1.1 1 1.7l-1.6-1.2zM34 208.3c-1.1-.9-1.6-1.2-2.3-1.6.5 1.2.9 2.5 1.3 3.8l-.7 1.8c-1.1-1.4-2.4-2.6-4.3-3.1-2.9-.8-3.7 2.4-5.9 3l-1.3-2.1c-.2.3-.6.7-.8 1-.8-.6-1.7-1-2.7-1.4.6-1.5.7-3.3.1-4.9l36.3-17.1c2 3.9 4.1 7.7 6.7 11 3.7 4.8 8.3 8.9 14.4 11.9.1-.2.2-.4.1-.9-.2-1.4-1.4-5.3-5.7-19.7.1-.1.1-.2.2-.2.2-.3.4-.7.6-1-.3-1-.8-2-1.3-2.9l61 74.1 18.6 22.6c-.4.3-.6.7-1 1.1l-95.3-54c.2-.7.1-.8 0-1.2-.2-.2-.4-.5-.7-.7-10.7-13-15.1-17.6-17.3-19.5zM211.8 249c.1.2.2.2.2.4l-54.2 34.1c-1.5-2-4.1-3-6.5-2.4l-29.3-100c.2-.1.3-.1.5-.2.9-.4 1.6-1 2.2-1.7l87.4 63.9c-1 1.7-1.2 4-.3 5.9zm-61.2 32.2c-.2.1-.3.1-.5.2-.4.2-.7.4-1.1.7L66.5 182l47.2-5.9c.1.5.2 1 .5 1.5 1.3 2.8 4.3 4.2 7.2 3.6l29.2 100zm-37-105.8l-47.3 5.9 18.3-59.1 31.5 47.7c-1.7 1.3-2.6 3.4-2.5 5.5zm32.8 127.9l-4.6-3.3-88.7-63.5c-1.5-1.8-2-3-1.3-6L75 243.7c-.1 0-.2.1-.4.1-.3.1-1.1.4-1.3 1.6-.1.9 0 1.9.4 3.4 0 .2.1.2.1.4.4-1.1 1-2.3 1.4-3.4.2-.8.4-1.5.3-1.8v-.1l68.5 38.8 3 1.7c-.8 1.6-.9 3.6-.1 5.4.6 1.5 1.9 2.6 3.3 3.2l-3.8 10.3zm10.2 8.8l-9.5-8.1 2.6-7.2 1.2-3.4c1.1.3 2.4.3 3.6 0l9.3 24.8-7.2-6.1zm8.3 6.5l-9.6-25.5c3.2-1.5 4.6-5.2 3.1-8.4-.1-.2-.2-.2-.2-.4l54.2-34.1c.3.4.6.8 1.1 1.1l-48.6 67.3zm49.9-77.9c-.8.4-1.5 1-2 1.6l-14-10.2-73.5-53.7c.4-.7.7-1.4.8-2.1l65.5 9.1 23.2 55.3zm-70.6-113.6c1.5.7 3.4.7 5.1-.1.2-.1.5-.2.7-.4l41 57.8-62.5-8.6-2.3-.3c.1-1.1-.1-2.1-.6-3.1-.6-1.2-1.5-2.2-2.6-2.9l21.2-42.4zm-.7-.3l-21.1 42.4c-1.6-.7-3.5-.7-5.1.1l-.5.2-31.5-47.8h55.2c.1.7.2 1.6.6 2.2.4 1.2 1.3 2.2 2.4 2.9zM91.3 78.1l49.2 38.8L37 52.1l54.3 26zM34.8 51.7l106.4 66.6c-.4.8-.7 1.7-.7 2.6H84.7L52.4 77.4 34.2 52.7c.2-.4.4-.7.6-1zm-1.2 1.5L43.8 67 84 121.3l-18.3 58.9L32.4 54.1c.5-.3.9-.5 1.2-.9zm-4.1 1.7c.7 0 1.5-.2 2.2-.5L65.1 181c-3.1-3.4-7-6.4-10.2-9.8-3.4-3.5-6.3-7.5-7-13.1l.1-.6c.4.1.8.1 1.1.2.6-1.4.2-2.9.6-4.2 1.4-.2 2.8.2 4.2.1.1-2.8-2-5.6-3.7-8.4-2.4-3.7-4.4-7.3-.2-10.4-1.3-2.5-2.3-4.3-15-9.5-1.1-5.8-6.7-7.9-10-11.8.8.3 1.9.7 2.7 1.1.5-.6 1-1.6 1.1-2.4.7.4 1.8.8 2.7 1l.7-.8c.3-.1.8-.2 1.2-.3 0-.2.1-.5 0-.7-.1-.1-8-8.6-14.4-11.3l7-30.5 3.5-14.7z" class="st4"/>
|
27 |
-
<path d="M18.1 103.7v-.2l.2.2h-.2zM48.3 314v-.2l1.1 2c.2.9.8 2.2 1.6 3.1 1.2 1.4 2.8 2 4.3-.6.5-.9.5-2.4.2-3.4-.9-2.6-2.9-4.6-4-7.1.3-.5.8-1.3 6.9-3.3-1.5 1.1-5.9 5-.7 6.1.8-1.8 2.7-2.5 4-3.9-.2-1.6-1.6-2.8-1.4-4.6 2-1.3 1.9 2.8 3.1 3.9 1.1 1 2.1.5 2.3.3 1.2-1.2 1.2-3 2-4.5 1.1-2 3.4-1.6 5-2.5 1.3-.7 1.1-2.3 1.7-3.4.7.8 1.1 1.1 1.6 1.2.1 0 .2.1.2.1.2-.2.3-.3.2-1.4-.2-1.7-.9-5.8-2.8-16.2 0-.1-1.3-4.7-3.5-8-1.5-2.2-3.4-3.8-5.6-2.8-.4 1.1-.5 2.2-.2 3.3.2 1.1.8 2.7 1.8 5.1 2.6 6.7.5 11.3.5 11.4-.9 1.7-.9 1.7-4.2.2-2.2 2.6 1.9 6.4-1.5 8.6-2.4 1.7-6 .6-8 3.3-2 2.5-2.4 3.5-3.8 5.9-1.5 2.5-1.8 4.2-1.7 5.2.1 1.3.6 1.8.9 2.2zm5.5-146.4c.1 0 .1.1.2.1 0-.3-.5-2.8-1.1-4-.2-.6-.5-.6-.6-.6-.8.3-.5 3.6 1.5 4.5zm5.2 84.9c.4.7 1.2 2.4 1.6 3.9.5 1.8.2 2.6-.3 3.6-.6 1.1-1.4 2.4-1 4.1v.1c.3 1.1 3.3 4.8 4.6 4.6 1.2-.2 1.3-2 .8-3.3-.2-.6-.5-1.1-.9-1.5s-.7-.3-1.1-.3c1-.3 2.2-.2 2.8-.1 1.5.2 2.5.3 3.7-.8.1-.1.1-.2.2-.2.3-.5.2-1.1.5-1.7.7-1.2 1.8-2.2 2.4-3.4.1-.1.2-.3.2-.6-.1-1-.7-1.8-1.1-2.7-.7.8-6.9-1.7-9.6-2.9-2.8-1.2-3.3-1.2-3.7-1.1-.1.1-.2.2-.1.4.1.3.5.9 1 1.9z" class="st4"/>
|
28 |
-
<path d="M62.6 263.9c.1 0 .2-.1.2-.1-.1 0-.2 0-.2.1z" class="st4"/>
|
29 |
-
</g>
|
30 |
-
</g>
|
31 |
-
</g>
|
32 |
-
<path id="logo" d="M76.9 207.1c.9 1.8.8 4.6 1.7 6.4.6.3 1.3.6 1.8.9 7.6-1.1 7.8-10.2 3.9-14.6-1.8-1.7-4.5-2.5-7.8-1-16.8 7.2-32.9 2.6-42.6-7.5-5.3-5.3-8.8-12.1-9.8-19.5-2.6-23.5 16.6-38.4 29.8-40.1 11.8-1.4 23 2.8 30.5 10.4 8.1 8.1 12.5 20.3 9.9 34.4-1.1 6.4-4.9 14.5-13.5 14.5-3.4 0-6.8-1.5-9.2-4.1-2.3-2.2-3.7-5.2-3.9-8.4-.8-12.7 15.5-16.3 14.5-29-.1-2.3-1.1-4.2-2.8-6-4.9-4.7-14.9-6.5-23.9-4.7-11.2 2.3-21.9 12.5-23.9 24.8-1.6 10 2 21.2 9.3 28.9 6.5 6.5 16 10.1 27.5 7.3 3.8-.8 6.7-4.4 12.7-3.4 2.2.3 4 1.4 5.3 2.8 4.9 4.6 4.1 14.2-2.3 16.5-3.3 1.1-9.3.2-11.9-2.6l-.1-.1c-.3-.1-.6-.5-.9-.8-1-.8-1.7-2.5-1.6-4.4.1-2.6 1.8-4.7 3.8-4.5.8.1 1.5.5 2 1 .7.9 1.3 1.7 1.5 2.8m112.9-35.5c.7-.9 1-2 1.4-3.1.5-2.1.5-4.4-.1-6.4-.2-1.1-.7-2.3-1.4-3.1-.7-1-1.7-1.7-2.9-2.2-1.1-.6-2.5-.8-4.2-.8h-3.1c-.6 0-1 .5-1 1v16.9c0 .6.5 1 1 1h2c2.2 0 4-.3 5.3-1 1.1-.2 2.3-1.1 3-2.3m9.2-7.3c0 2.3-.5 4.2-1.4 6-.8 1.7-2.1 3.1-3.7 4.2-1.6 1-3.1 2-5.1 2.5-2 .6-3.9.8-5.9.8h-3.7c-.6 0-1 .5-1 1v11.9c0 .7.1 1.4.5 1.8.2.6.7.9 1.5 1.3.5.1 1 .2 2 .5.6.1 1 .1 1.6.2.6 0 1 .5 1 1s-.5 1-1 1h-16.3c-.6 0-1-.5-1-1v-.1c0-.6.5-1 .9-1 .3 0 .7-.1 1.1-.1.9-.1 1.6-.2 2-.5.6-.2 1-.6 1.4-1.1.2-.6.5-1.1.5-2v-31c0-.7-.1-1.4-.3-2-.2-.6-.7-1-1.4-1.3-.8-.2-1.6-.5-2.3-.6-.3 0-.7-.1-.9-.1-.6-.1-.9-.6-.9-1v-.1c0-.6.5-1 1-1H186c3.9 0 7.1.9 9.6 2.9l.1.1c2 2 3.3 4.6 3.3 7.7zm-36.8-8.4c-.6 0-1 .1-1.7.5-.7.2-1.1.5-1.7.8l-.1.1c-.7.5-1.1.9-1.7 1.5-.5.6-.7 1.4-1.1 2.4v.1c-1.4 4.7-3.1 10.1-4.9 16.4-1.7 6.1-3.8 12.4-5.9 19.3-.1.5-.6.8-1 .8h-1.3c-.5 0-.9-.3-1-.8l-9.5-29.4c-.1-.6-.8-.9-1.4-.7-.3.1-.6.3-.7.7l-10 29.4c-.1.5-.6.7-1 .7h-1c-.5 0-.9-.3-1-.8-2-6.9-3.9-13.9-6-21.3-2.2-7.7-3.6-12.7-4.2-15.4-.1-.6-.5-1-.7-1.6 0-.1-.1-.2-.1-.2-.8-1-2-1.7-3.2-2-.3-.1-.7-.1-.9-.2-.5-.1-.9-.6-.9-1v-.2c0-.6.5-1 1-1h15.4c.6 0 1 .5 1 1v.1c0 .6-.5 1-1 1-1.1.1-2.1.2-2.9.5-1 .2-1.6.6-1.6 1 0 .1 0 .5.1.8.1.2.1.6.1.8.5 1.8 1.4 4.7 2.5 8.8 1 3.6 2.4 8.6 4.2 15 .3 1 1.7 1 2.1 0l9.3-27.9c.1-.5.6-.7 1-.7h1.4c.5 0 .9.3 1 .8l9.4 28.6c.3 1 1.8 1 2.1 0l2.8-9.9c1-3.8 2-6.9 2.5-9.6.5-1.8.8-3.2.9-3.9.1-.7.1-1.3.1-1.8 0-.7-.5-1.3-1.4-1.7-.8-.5-2-.7-3.6-.8-.6-.1-1-.6-1-1 0-.6.5-1 1-1H161c.6 0 1 .5 1 1l.2.8zM292 184l-.8 11.8c0 .6-.5 1-1 1h-31.4c-.6 0-1-.5-1-1v-.1c0-.6.5-1 .9-1 .3 0 .7-.1 1.1-.1.9-.1 1.6-.2 2-.5.6-.2 1-.6 1.4-1.1.2-.6.5-1.1.5-2v-30.8c0-.7-.1-1.3-.5-1.8-.3-.6-.7-.9-1.4-1.3-.5-.2-1-.5-2-.7l-1.3-.3c-.5-.1-.9-.6-.9-1v-.2c0-.6.5-1 1-1h16c.6 0 1 .5 1 1v.1c0 .6-.3 1-.9 1-.3.1-.8.1-1.3.2-.9.1-1.6.5-2 .5-.7.2-1.1.6-1.4 1.3-.2.6-.5 1.3-.5 1.8v28.9c0 1.4.1 2.3.1 3.1.1.7.5 1.4.9 1.7.5.5 1.1.6 2.1.7s2.2.1 3.8.1c.8 0 1.6 0 2.3-.1.7 0 1.5-.1 2.3-.2h.1c.7-.1 1.3-.3 1.8-.5.6-.2.9-.5 1.3-.7.1 0 .1-.1.2-.2.8-.9 1.7-2.3 2.9-4.1.9-1.5 1.5-2.9 2-3.9.1-.5.6-.7 1-.7h1.6l.1.1zm-38.2 12.9H236c-.6 0-1-.5-1-1 0-.6.5-1 1-1s1-.1 1.7-.2c1-.1 1.8-.3 2.2-.6.6-.5 1-.8 1.4-1.4.3-.5.5-1 .5-1.8v-31.3h-.5l-14.6 35.9c-.1.5-.6.7-1 .7-.5 0-.9-.2-1-.7L211 158.6h-.5v25.7c0 2.5.1 4.4.5 5.6.3 1.3.8 2.2 1.5 2.9.5.5 1.4.8 2.8 1.3.8.2 1.4.3 1.8.5.5.1.9.6.9 1v.1c0 .6-.5 1-1 1h-14.8c-.7 0-1.3-.7-1-1.4v-.1c.1-.3.5-.7.8-.7.5-.1.8-.2 1.5-.5 1-.2 1.8-.6 2.3-1 .7-.6 1.1-1.4 1.5-2.6.2-1.1.5-3.1.5-5.9v-22.2c0-1.3-.1-2.3-.5-3.1-.3-.8-.7-1.5-1.4-2-.6-.6-1.4-.9-2.2-1.3h-.1l-1.7-.3c-.6-.1-.9-.6-.9-1.1v-.1c0-.6.5-1 1-1h12.7c.5 0 .8.2 1 .7l11 28.9c.3.9 1.7.9 2.1 0l9.4-24.3c.5-1 .7-2 1-3.1v-.1l.3-1.3c.1-.5.6-.8 1-.8h12.1c.6 0 1 .5 1 1v.1c0 .6-.5 1-.9 1-.3 0-.8.1-1.1.2-.8.1-1.5.3-2 .5-.7.2-1.1.6-1.4 1.3-.2.6-.5 1.1-.5 1.8v31.1c0 .7.1 1.4.5 1.8.2.5.7.9 1.4 1.3.5.2 1 .5 2 .6.5.1.9.1 1.3.2.6.1.9.6.9 1v1.6z" class="st5"/>
|
33 |
-
</g>
|
34 |
-
<g class="st0">
|
35 |
-
<path d="M146.2 2.5h-.1l171.4 171.4.5-.5V2.5z" class="st6"/>
|
36 |
-
</g>
|
37 |
-
<path d="M259.5 63.9c1.1.5 2.4-.1 2.8-1.2l2.9-6.9H276l2.9 6.9c.4 1.1 1.7 1.7 2.8 1.2 1.1-.4 1.7-1.7 1.2-2.8 0 0 0-.1-.1-.1l-3.5-8.2-6.9-16.2c-.3-.8-1.1-1.3-2-1.3-.9 0-1.6.5-2 1.3l-6.7 16.2-3.4 8.2c-.4 1.1.1 2.4 1.2 2.9zm11-20.9l3.6 8.5H267l3.5-8.5z" class="st5"/>
|
38 |
-
<path d="M270.6 17.9c-1.2 0-2.2 1-2.1 2.2s1 2.2 2.2 2.1c7.3-.1 14.3 2.8 19.4 8 5 5 7.7 11.9 7.5 18.9-.2 8.9-4.3 16.9-11.3 21.9l-.2.2-.3.2c-.1.1-.2.1-.3.2l-20.3 13.9v-8.2c0-1-.7-1.8-1.6-2.1-14.4-3.8-22.9-18.6-19.1-32.9 1.8-6.7 6.1-12.5 12.1-16.1 1-.6 1.3-1.9.7-3s-1.9-1.3-3-.7c-14.7 8.9-19.4 28.1-10.5 42.9 3.9 6.4 9.9 11.2 17 13.5v10.7c0 1.2 1 2.2 2.2 2.2.4 0 .9-.1 1.2-.4l23.6-16.2c.1-.1.2-.1.3-.2l.6-.4.3-.3c7.9-5.8 12.6-15 12.8-25.1.2-8.2-3-16.2-8.7-22-5.9-6.1-14-9.4-22.5-9.3z" class="st5"/>
|
39 |
-
</svg>
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
vendor/otgs/icons/plugin-icons/wpml/wpml-tm/icon-128x128.png
DELETED
Binary file
|
vendor/otgs/icons/plugin-icons/wpml/wpml-tm/icon-256x256.png
DELETED
Binary file
|
vendor/otgs/icons/plugin-icons/wpml/wpml-tm/icon.svg
DELETED
@@ -1,39 +0,0 @@
|
|
1 |
-
<svg xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" id="icon" viewBox="0 0 320 320">
|
2 |
-
<style>
|
3 |
-
.st0{clip-path:url(#SVGID_2_)}.st1{fill:url(#bg_2_)}.st2{opacity:.15}.st3{fill:none}.st4,.st5{fill:#fff}.st5{stroke:#fff;stroke-width:.75;stroke-miterlimit:10}.st6{fill:#f2bd2e}.st7{fill:#fff;stroke:#fff;stroke-miterlimit:10}
|
4 |
-
</style>
|
5 |
-
<defs>
|
6 |
-
<path id="SVGID_1_" d="M312.5 317.5H7.5c-2.8 0-5-2.2-5-5V7.5c0-2.8 2.2-5 5-5h305c2.8 0 5 2.2 5 5v305c0 2.8-2.2 5-5 5z"/>
|
7 |
-
</defs>
|
8 |
-
<clipPath id="SVGID_2_">
|
9 |
-
<use overflow="visible" xlink:href="#SVGID_1_"/>
|
10 |
-
</clipPath>
|
11 |
-
<g class="st0">
|
12 |
-
<g id="bg_1_">
|
13 |
-
<g id="mask">
|
14 |
-
<linearGradient id="bg_2_" x1="321" x2="-1" y1="161.097" y2="161.097" gradientTransform="matrix(1 0 0 -1 0 321)" gradientUnits="userSpaceOnUse">
|
15 |
-
<stop offset="0" stop-color="#33879e"/>
|
16 |
-
<stop offset=".295" stop-color="#3389a1" stop-opacity=".823"/>
|
17 |
-
<stop offset=".52" stop-color="#318dab" stop-opacity=".688"/>
|
18 |
-
<stop offset=".722" stop-color="#2f96bb" stop-opacity=".567"/>
|
19 |
-
<stop offset=".909" stop-color="#2ba1d2" stop-opacity=".455"/>
|
20 |
-
<stop offset="1" stop-color="#29a8e0" stop-opacity=".4"/>
|
21 |
-
</linearGradient>
|
22 |
-
<path id="bg" d="M-1-.3h322v320.5H-1V-.3z" class="st1"/>
|
23 |
-
<g id="earth" class="st2">
|
24 |
-
<path d="M18 299.1c-9.1 10.7-9.1 10.7 3.7 20.9v.1h84.5l39.6-16.1-73.4-52.6c0 .6-.3 1.5-1 2.7.3.9 1 1.7 1.1 2.7 0 .2-.1.5-.2.6-.7 1.2-1.7 2.2-2.4 3.4-.3.5-.2 1.1-.5 1.7-.1.1-.1.2-.2.2-1.1 1.1-2.2 1-3.7.8-.7-.1-1.9-.2-2.8.1.3 0 .7 0 1.1.3.4.3.6.8.9 1.5.5 1.4.4 3.1-.8 3.3-1.3.2-4.3-3.5-4.6-4.6v-.1c-.5-1.6.3-2.9 1-4.1.6-1.1.8-1.8.3-3.6-.4-1.5-1.2-3.1-1.6-3.9-.5-1-.9-1.6-.9-2 0-.1.1-.2.1-.4.4-.2.9-.2 3.7 1.1 2.7 1.1 9 3.8 9.6 2.9-.2-.7-.7-2.8.2-3.3L57 240.4c.7.7 1.4 1.3 2 2 1.1 1.2.9 1.8.9 2-.2.8-.8.4-1.9-.2-.7-.4-.9-.3-1.1 0-.3.7.3 1.4 0 2-1.6-1.2-5.4-7.3-8.2-11.9l-3.3-2.4-.2-.1-2.4 1.7c.7 1.6 1.4 3.2 1.6 4.7.4 1.9 1.9 10.9-.8 21.9-.2 1.1-.6 2.3-1 3.4-1.5 4.7-7.8 2.2-9.6 6.4-.7 1.6-1 3.3-1.1 5.1-.2 2-.3 4.2-.9 6.1l5.5 10.7c2.5 2 4.9 4.2 5.5 7.8.2 1.3.3 2.3.1 3-.6 1.9-2.8 2.8-8 5-2.8-4.2-1.6-10.2-5.9-13.7-.7.1-1.5.2-2.2.4-.1 0-.2 0-.2.1-3-2-1.5-7.3-5.9-8.3-1.5-.3-1.5-.3-8.5 5.1l-1.1-.6c-.5-2.4-.3-4.9-.6-7.3l-.3 13.1c2.9-.4 7.1-.7 8.6 2.7zm31.1 7.8c1.4-2.4 1.9-3.3 3.8-5.9 2-2.7 5.6-1.6 8-3.3 3.4-2.4-.7-6.1 1.5-8.6 3.3 1.6 3.3 1.6 4.2-.2 0-.1 2.1-4.7-.5-11.4-1-2.4-1.5-3.9-1.8-5.1-.3-1.4-.2-2.2.2-3.3 2.2-1.1 4.1.6 5.6 2.8 2.2 3.3 3.5 7.9 3.5 8 1.9 10.4 2.6 14.5 2.8 16.2.1 1.1 0 1.2-.2 1.4-.1 0-.2 0-.2-.1-.5-.2-.9-.4-1.6-1.2-.6 1.1-.4 2.7-1.7 3.4-1.6 1-4 .5-5 2.5-.7 1.5-.7 3.3-2 4.5-.1.1-1.2.7-2.3-.3-1.2-1.1-1.1-5.2-3.1-3.9-.2 1.7 1.1 2.9 1.4 4.6-1.3 1.4-3.2 2.1-4 3.9-5.2-1.1-.8-4.9.6-6.1-6.1 2-6.7 2.8-6.9 3.3 1 2.5 3 4.5 4 7.1.3 1 .3 2.5-.2 3.4-1.5 2.5-3.1 1.9-4.3.6-.8-.9-1.3-2-1.6-3.1l-1.1-2v.2c-.4-.4-.8-1-.9-2 0-1.3.3-2.8 1.8-5.4zm16.5-21.7c.2 0 .5.2.5.5s-.2.5-.3.6c-.5-.4-.6-.7-.2-1.1zM52.2 184.4c-1-2.1-1.9-4.2-2.7-6.4-1.1-2.9-2.3-5.8-3.4-8.6-3.2-7.9-6.7-15.7-12.3-22.1-.4.1-.9.2-1.2.2 1.9 3.2 3.7 4.2 4.4 4.7 1.3 5.6 1.3 5.6.5 7.2-2-.8-2.4-3.7-4.7-4.2-.9-.2-2.8 1.1-3.5 3.7-.8 2.9.1 7.2 6.2 12.5 0 .1-.7 2.4-3.2 5-6.4-2.9-6.4-2.9-7-2.8-.4.7-.6 1.8-.5 2.6-.2.2-.5.2-.7.4-10 5.3-10.1 5.4-10.3 6-1.3 3.7-1.2 7.3-.9 11l39.3-9.2z" class="st3"/>
|
25 |
-
<path d="M62.8 263.8c-.1 0-.2.1-.2.1 0-.1.1-.1.2-.1zM18.1 103.7c.1 0 .2 0 .2.1l-.2-.2v.1zm145.7 214.4l-9.3-24.8c-1.2.3-2.4.3-3.6 0l-1.2 3.4-2.5 7.1 9.5 8.1 7.1 6.2zm-72.5-240L37 52.1l103.4 64.7zM84 121.3L43.8 67 33.6 53.2c-.3.3-.6.6-1.1.8l33.3 126.2L84 121.3zm41.7 51.1c.5 1 .7 2 .6 3.1l2.3.3 62.5 8.6-41-57.8c-.2.2-.5.2-.7.4-1.7.7-3.5.7-5.1.1L123 169.6c1.2.6 2.2 1.5 2.7 2.8zm-59.4 8.9l47.3-5.9c-.1-2.1.8-4.2 2.5-5.5l-31.5-47.7-18.3 59.1zm47.4-5.1l-47.2 5.9L149 282c.3-.2.7-.5 1.1-.7.2-.1.3-.2.5-.2l-29.3-100c-2.8.7-5.9-.7-7.2-3.5-.2-.4-.3-.9-.4-1.4zm-62.2 51.7c.2.2.4.5.6.7.1.4.2.6 0 1.2l95.3 54c.2-.4.6-.8 1-1.1L129.8 260l-61-74.1c.5.9 1 1.9 1.3 2.9-.2.3-.4.7-.6 1-.1.1-.1.2-.2.2 4.4 14.4 5.5 18.4 5.7 19.7.1.5 0 .7-.1.9-6.1-3-10.6-7.1-14.3-11.8-2.7-3.4-4.9-7.2-6.7-11L17.5 205c.7 1.6.6 3.3-.1 4.9.9.4 1.9.8 2.7 1.4.2-.3.6-.7.8-1l1.3 2.1c2.2-.6 2.9-3.8 5.9-3 1.9.6 3.2 1.8 4.3 3.1l.7-1.8c-.4-1.3-.8-2.6-1.3-3.8.7.3 1.2.7 2.3 1.6 2.2 1.9 6.6 6.5 17.4 19.4zM77 239.2c.2-.1.6 0 .7.5.1.5-.4 2.5-.8 2.3-.5-.2-.7-2.4.1-2.8zm65 61l4.6 3.3 3.7-10.3c-1.4-.6-2.5-1.7-3.3-3.2-.8-1.8-.7-3.8.1-5.4l-3-1.7L75.6 244v.1c.1.3-.1 1-.3 1.8-.4 1.1-1 2.3-1.4 3.4 0-.2-.1-.2-.1-.4-.3-1.6-.5-2.5-.3-3.4.2-1.3.9-1.6 1.2-1.7.2 0 .2-.1.4-.1l-23.2-13.1c-.6 3-.2 4.2 1.3 6l88.8 63.6zm-6.3 19.9l9.9-15.2-37.4 15.2zm76.7-70l-54.2 34.1c.1.1.2.2.2.4 1.5 3.2.1 6.9-3.1 8.4l9.6 25.6 48.7-67.3c-.5-.3-.9-.7-1.2-1.2zM9.1 296.9l.3-14.4c-.2 0-.6.1-.7.2-2.4 1.3-5.3 4.9-6.6 8.3l1.6 6.9c1 .5 2.4.7 4.2.7-.1-.3-.2-.8-.2-1.2.2-.1.7-.3 1.4-.5zm9.8-196.7c6.3 2.8 14.3 11.2 14.4 11.3.1.2-.1.5 0 .7-.3.1-.8.2-1.2.3l-.7.8c-.8-.1-2-.6-2.7-1-.1.8-.6 1.8-1.1 2.4-.8-.4-1.9-.8-2.7-1.1 3.3 4 8.8 6.1 10 11.8 12.8 5.1 13.7 6.9 15 9.5-4.1 3.1-2.1 6.7.2 10.4 1.8 2.8 3.8 5.5 3.7 8.4-1.4.1-2.8-.2-4.2-.1-.4 1.4 0 2.9-.6 4.2-.3-.1-.8-.1-1.1-.2l-.1.6c.7 5.5 3.5 9.5 7 13.1 3.3 3.3 7.2 6.3 10.2 9.8L31.7 54.5c-.7.3-1.5.5-2.2.5l-3.4 14.5-7.2 30.7zm34.9 67.4c-2-1-2.4-4.3-1.5-4.5.1 0 .3 0 .6.7.6 1.2 1.1 3.7 1.1 4 0-.1-.1-.2-.2-.2zm109.7 152.5l.7-.6-17.4-14.8-10.1 15.4zM17.3 103.5l.2-.7c-.8-.8-1.6-1.6-2.2-2.4.3-.2.7-.7 1.1-.9.6.1 1.2.2 1.8.5L22 83.3 28.7 55c-3.5-.3-6.1-3.4-5.8-6.9 0-.3.1-.6.2-1m101.7 132c-.6.7-1.3 1.3-2.2 1.7-.2.1-.3.2-.5.2l29.3 100c2.4-.6 5 .4 6.5 2.4l54.2-34.1c-.1-.1-.2-.2-.2-.4-.9-2-.7-4.3.4-6l-87.5-63.8zm66.8 6.2l-65.5-9.1c-.2.7-.4 1.5-.8 2.1l73.5 53.7 14 10.2c.6-.7 1.2-1.2 2-1.6l-23.2-55.3zM17 204.2l36.3-17.1c-.3-.7-.6-1.2-.9-1.9l-39.5 9.1c.2 2.4.6 4.7.6 7 1.6.5 2.8 1.5 3.5 2.9zm123.3-82.6H85.2l31.6 47.8.5-.2c1.7-.7 3.5-.7 5.1-.1l21.1-42.4c-1.1-.7-2-1.6-2.6-2.9-.3-.6-.5-1.4-.6-2.2zm-55.6-.8h55.7c.1-.9.3-1.8.7-2.6L34.8 51.7c-.2.3-.4.7-.6 1l18.3 24.6 32.2 43.5zm140.5 199.3l-7.4-67.4c-1.3.1-2.6-.3-3.7-1l-17.6 24.4-31.2 43.2 2 .8h57.9z" class="st3"/>
|
26 |
-
<path d="M18.3 299c-1.5-3.4-5.7-3.1-8.4-2.4l.3-13.1c.2 2.4.1 4.9.6 7.3l1.1.6c7-5.5 7-5.5 8.5-5.1 4.5 1 2.9 6.3 5.9 8.3.1 0 .2 0 .2-.1.6-.2 1.5-.3 2.2-.4 4.3 3.5 3.2 9.5 5.9 13.7 5.2-2.2 7.4-3.1 8-5 .2-.8.2-1.7-.1-3-.7-3.5-3-5.7-5.5-7.8l-5.5-10.7c.5-2 .6-4.1.9-6.1.2-1.8.5-3.5 1.1-5.1 1.8-4.2 8.1-1.7 9.6-6.4.4-1.1.6-2.3 1-3.4 2.7-11 1.1-20.1.8-21.9-.3-1.6-.9-3.1-1.6-4.7l2.4-1.7.2.1 3.3 2.4c2.8 4.6 6.6 10.7 8.2 11.9.2-.7-.4-1.4 0-2 .2-.3.3-.4 1.1 0 1.1.6 1.7 1 1.9.2.1-.2.2-.8-.9-2-.6-.7-1.3-1.4-2-2L72.1 251c-.8.5-.4 2.5-.2 3.3.6-1.2.9-2.1 1-2.7l73.4 52.6-39.8 16.2h1.9l37.4-15.2-9.9 15.2h1l10.1-15.5 17.4 14.9-.6.6h3.9l-2-.8 31.2-43.2 17.6-24.4c1.1.7 2.4 1.1 3.7 1l7.4 67.4h.9l-7.4-67.5c3.4-.6 5.7-3.9 5.1-7.3-.1-.5-.3-1.1-.5-1.6-1.4-3-4.7-4.4-7.8-3.3l-23.2-55.6v-.1l-41.6-58.6c2.7-2.2 3.2-6.1 1.1-8.9-1.8-2.3-5-3.1-7.6-1.8-.8.4-1.5.9-2.1 1.6L91.7 77.5l-56.3-27c.4-1.5.3-3-.3-4.5 1.3-3.3-.3-7-3.5-8.3-3.2-1.3-6.9.3-8.2 3.5-.7 1.6-.6 3.5.1 5.1l-24-6.5v.7L23.1 47c-.8 3.4 1.2 6.9 4.6 7.8.3.1.6.1 1 .2L22 83.3l-3.9 16.6c-.7-.2-1.2-.4-1.8-.5-.3.2-.7.7-1.1.9.7.9 1.5 1.6 2.2 2.4l-.2.7c-10.8-2.3-13.6-2.8-17.8-1.7v-.1c.2 72.8.6 145.6.8 218.4m8.9-23.1c-.7.2-1.2.4-1.4.5.1.3.2.8.2 1.2-1.9.1-3.3-.2-4.2-.7L2.1 291c1.3-3.4 4.2-7 6.5-8.3.2-.1.5-.2.7-.2l-.2 14.4zm4.5-114.4c.4-.7.5-.8 10.3-6 .2-.2.5-.2.7-.4-.1-.8.1-2 .5-2.6.7-.1.7-.1 7 2.8 2.4-2.5 3.2-4.9 3.2-5-6.1-5.2-7-9.6-6.2-12.5.7-2.5 2.7-3.8 3.5-3.7 2.4.6 2.6 3.3 4.7 4.2.8-1.6.8-1.6-.5-7.2-.7-.4-2.5-1.5-4.4-4.7.4-.1.9-.2 1.2-.2 5.6 6.4 9.1 14.1 12.3 22.1 1.1 2.9 2.3 5.8 3.4 8.6.9 2.2 1.8 4.3 2.7 6.4l-39.3 9.1c-.3-3.6-.4-7.3.9-10.9zm.1 18.8c-.2-2.4-.4-4.7-.7-7l39.6-9.1c.3.7.6 1.3.9 1.9l-36.4 17.1c-.8-1.4-2-2.4-3.4-2.9zm32.5 30.2l.6-.5c.3.5.7 1.1 1 1.7l-1.6-1.2zM34 208.3c-1.1-.9-1.6-1.2-2.3-1.6.5 1.2.9 2.5 1.3 3.8l-.7 1.8c-1.1-1.4-2.4-2.6-4.3-3.1-2.9-.8-3.7 2.4-5.9 3l-1.3-2.1c-.2.3-.6.7-.8 1-.8-.6-1.7-1-2.7-1.4.6-1.5.7-3.3.1-4.9l36.3-17.1c2 3.9 4.1 7.7 6.7 11 3.7 4.8 8.3 8.9 14.4 11.9.1-.2.2-.4.1-.9-.2-1.4-1.4-5.3-5.7-19.7.1-.1.1-.2.2-.2.2-.3.4-.7.6-1-.3-1-.8-2-1.3-2.9l61 74.1 18.6 22.6c-.4.3-.6.7-1 1.1l-95.3-54c.2-.7.1-.8 0-1.2-.2-.2-.4-.5-.7-.7-10.7-13-15.1-17.6-17.3-19.5zM211.8 249c.1.2.2.2.2.4l-54.2 34.1c-1.5-2-4.1-3-6.5-2.4l-29.3-100c.2-.1.3-.1.5-.2.9-.4 1.6-1 2.2-1.7l87.4 63.9c-1 1.7-1.2 4-.3 5.9zm-61.2 32.2c-.2.1-.3.1-.5.2-.4.2-.7.4-1.1.7L66.5 182l47.2-5.9c.1.5.2 1 .5 1.5 1.3 2.8 4.3 4.2 7.2 3.6l29.2 100zm-37-105.8l-47.3 5.9 18.3-59.1 31.5 47.7c-1.7 1.3-2.6 3.4-2.5 5.5zm32.8 127.9l-4.6-3.3-88.7-63.5c-1.5-1.8-2-3-1.3-6L75 243.7c-.1 0-.2.1-.4.1-.3.1-1.1.4-1.3 1.6-.1.9 0 1.9.4 3.4 0 .2.1.2.1.4.4-1.1 1-2.3 1.4-3.4.2-.8.4-1.5.3-1.8v-.1l68.5 38.8 3 1.7c-.8 1.6-.9 3.6-.1 5.4.6 1.5 1.9 2.6 3.3 3.2l-3.8 10.3zm10.2 8.8l-9.5-8.1 2.6-7.2 1.2-3.4c1.1.3 2.4.3 3.6 0l9.3 24.8-7.2-6.1zm8.3 6.5l-9.6-25.5c3.2-1.5 4.6-5.2 3.1-8.4-.1-.2-.2-.2-.2-.4l54.2-34.1c.3.4.6.8 1.1 1.1l-48.6 67.3zm49.9-77.9c-.8.4-1.5 1-2 1.6l-14-10.2-73.5-53.7c.4-.7.7-1.4.8-2.1l65.5 9.1 23.2 55.3zm-70.6-113.6c1.5.7 3.4.7 5.1-.1.2-.1.5-.2.7-.4l41 57.8-62.5-8.6-2.3-.3c.1-1.1-.1-2.1-.6-3.1-.6-1.2-1.5-2.2-2.6-2.9l21.2-42.4zm-.7-.3l-21.1 42.4c-1.6-.7-3.5-.7-5.1.1l-.5.2-31.5-47.8h55.2c.1.7.2 1.6.6 2.2.4 1.2 1.3 2.2 2.4 2.9zM91.3 78.1l49.2 38.8L37 52.1l54.3 26zM34.8 51.7l106.4 66.6c-.4.8-.7 1.7-.7 2.6H84.7L52.4 77.4 34.2 52.7c.2-.4.4-.7.6-1zm-1.2 1.5L43.8 67 84 121.3l-18.3 58.9L32.4 54.1c.5-.3.9-.5 1.2-.9zm-4.1 1.7c.7 0 1.5-.2 2.2-.5L65.1 181c-3.1-3.4-7-6.4-10.2-9.8-3.4-3.5-6.3-7.5-7-13.1l.1-.6c.4.1.8.1 1.1.2.6-1.4.2-2.9.6-4.2 1.4-.2 2.8.2 4.2.1.1-2.8-2-5.6-3.7-8.4-2.4-3.7-4.4-7.3-.2-10.4-1.3-2.5-2.3-4.3-15-9.5-1.1-5.8-6.7-7.9-10-11.8.8.3 1.9.7 2.7 1.1.5-.6 1-1.6 1.1-2.4.7.4 1.8.8 2.7 1l.7-.8c.3-.1.8-.2 1.2-.3 0-.2.1-.5 0-.7-.1-.1-8-8.6-14.4-11.3l7-30.5 3.5-14.7z" class="st4"/>
|
27 |
-
<path d="M18.1 103.7v-.2l.2.2h-.2zM48.3 314v-.2l1.1 2c.2.9.8 2.2 1.6 3.1 1.2 1.4 2.8 2 4.3-.6.5-.9.5-2.4.2-3.4-.9-2.6-2.9-4.6-4-7.1.3-.5.8-1.3 6.9-3.3-1.5 1.1-5.9 5-.7 6.1.8-1.8 2.7-2.5 4-3.9-.2-1.6-1.6-2.8-1.4-4.6 2-1.3 1.9 2.8 3.1 3.9 1.1 1 2.1.5 2.3.3 1.2-1.2 1.2-3 2-4.5 1.1-2 3.4-1.6 5-2.5 1.3-.7 1.1-2.3 1.7-3.4.7.8 1.1 1.1 1.6 1.2.1 0 .2.1.2.1.2-.2.3-.3.2-1.4-.2-1.7-.9-5.8-2.8-16.2 0-.1-1.3-4.7-3.5-8-1.5-2.2-3.4-3.8-5.6-2.8-.4 1.1-.5 2.2-.2 3.3.2 1.1.8 2.7 1.8 5.1 2.6 6.7.5 11.3.5 11.4-.9 1.7-.9 1.7-4.2.2-2.2 2.6 1.9 6.4-1.5 8.6-2.4 1.7-6 .6-8 3.3-2 2.5-2.4 3.5-3.8 5.9-1.5 2.5-1.8 4.2-1.7 5.2.1 1.3.6 1.8.9 2.2zm5.5-146.4c.1 0 .1.1.2.1 0-.3-.5-2.8-1.1-4-.2-.6-.5-.6-.6-.6-.8.3-.5 3.6 1.5 4.5zm5.2 84.9c.4.7 1.2 2.4 1.6 3.9.5 1.8.2 2.6-.3 3.6-.6 1.1-1.4 2.4-1 4.1v.1c.3 1.1 3.3 4.8 4.6 4.6 1.2-.2 1.3-2 .8-3.3-.2-.6-.5-1.1-.9-1.5s-.7-.3-1.1-.3c1-.3 2.2-.2 2.8-.1 1.5.2 2.5.3 3.7-.8.1-.1.1-.2.2-.2.3-.5.2-1.1.5-1.7.7-1.2 1.8-2.2 2.4-3.4.1-.1.2-.3.2-.6-.1-1-.7-1.8-1.1-2.7-.7.8-6.9-1.7-9.6-2.9-2.8-1.2-3.3-1.2-3.7-1.1-.1.1-.2.2-.1.4.1.3.5.9 1 1.9z" class="st4"/>
|
28 |
-
<path d="M62.6 263.9c.1 0 .2-.1.2-.1-.1 0-.2 0-.2.1z" class="st4"/>
|
29 |
-
</g>
|
30 |
-
</g>
|
31 |
-
</g>
|
32 |
-
<path id="logo" d="M76.9 207.1c.9 1.8.8 4.6 1.7 6.4.6.3 1.3.6 1.8.9 7.6-1.1 7.8-10.2 3.9-14.6-1.8-1.7-4.5-2.5-7.8-1-16.8 7.2-32.9 2.6-42.6-7.5-5.3-5.3-8.8-12.1-9.8-19.5-2.6-23.5 16.6-38.4 29.8-40.1 11.8-1.4 23 2.8 30.5 10.4 8.1 8.1 12.5 20.3 9.9 34.4-1.1 6.4-4.9 14.5-13.5 14.5-3.4 0-6.8-1.5-9.2-4.1-2.3-2.2-3.7-5.2-3.9-8.4-.8-12.7 15.5-16.3 14.5-29-.1-2.3-1.1-4.2-2.8-6-4.9-4.7-14.9-6.5-23.9-4.7-11.2 2.3-21.9 12.5-23.9 24.8-1.6 10 2 21.2 9.3 28.9 6.5 6.5 16 10.1 27.5 7.3 3.8-.8 6.7-4.4 12.7-3.4 2.2.3 4 1.4 5.3 2.8 4.9 4.6 4.1 14.2-2.3 16.5-3.3 1.1-9.3.2-11.9-2.6l-.1-.1c-.3-.1-.6-.5-.9-.8-1-.8-1.7-2.5-1.6-4.4.1-2.6 1.8-4.7 3.8-4.5.8.1 1.5.5 2 1 .7.9 1.3 1.7 1.5 2.8m112.9-35.5c.7-.9 1-2 1.4-3.1.5-2.1.5-4.4-.1-6.4-.2-1.1-.7-2.3-1.4-3.1-.7-1-1.7-1.7-2.9-2.2-1.1-.6-2.5-.8-4.2-.8h-3.1c-.6 0-1 .5-1 1v16.9c0 .6.5 1 1 1h2c2.2 0 4-.3 5.3-1 1.1-.2 2.3-1.1 3-2.3m9.2-7.3c0 2.3-.5 4.2-1.4 6-.8 1.7-2.1 3.1-3.7 4.2-1.6 1-3.1 2-5.1 2.5-2 .6-3.9.8-5.9.8h-3.7c-.6 0-1 .5-1 1v11.9c0 .7.1 1.4.5 1.8.2.6.7.9 1.5 1.3.5.1 1 .2 2 .5.6.1 1 .1 1.6.2.6 0 1 .5 1 1s-.5 1-1 1h-16.3c-.6 0-1-.5-1-1v-.1c0-.6.5-1 .9-1 .3 0 .7-.1 1.1-.1.9-.1 1.6-.2 2-.5.6-.2 1-.6 1.4-1.1.2-.6.5-1.1.5-2v-31c0-.7-.1-1.4-.3-2-.2-.6-.7-1-1.4-1.3-.8-.2-1.6-.5-2.3-.6-.3 0-.7-.1-.9-.1-.6-.1-.9-.6-.9-1v-.1c0-.6.5-1 1-1H186c3.9 0 7.1.9 9.6 2.9l.1.1c2 2 3.3 4.6 3.3 7.7zm-36.8-8.4c-.6 0-1 .1-1.7.5-.7.2-1.1.5-1.7.8l-.1.1c-.7.5-1.1.9-1.7 1.5-.5.6-.7 1.4-1.1 2.4v.1c-1.4 4.7-3.1 10.1-4.9 16.4-1.7 6.1-3.8 12.4-5.9 19.3-.1.5-.6.8-1 .8h-1.3c-.5 0-.9-.3-1-.8l-9.5-29.4c-.1-.6-.8-.9-1.4-.7-.3.1-.6.3-.7.7l-10 29.4c-.1.5-.6.7-1 .7h-1c-.5 0-.9-.3-1-.8-2-6.9-3.9-13.9-6-21.3-2.2-7.7-3.6-12.7-4.2-15.4-.1-.6-.5-1-.7-1.6 0-.1-.1-.2-.1-.2-.8-1-2-1.7-3.2-2-.3-.1-.7-.1-.9-.2-.5-.1-.9-.6-.9-1v-.2c0-.6.5-1 1-1h15.4c.6 0 1 .5 1 1v.1c0 .6-.5 1-1 1-1.1.1-2.1.2-2.9.5-1 .2-1.6.6-1.6 1 0 .1 0 .5.1.8.1.2.1.6.1.8.5 1.8 1.4 4.7 2.5 8.8 1 3.6 2.4 8.6 4.2 15 .3 1 1.7 1 2.1 0l9.3-27.9c.1-.5.6-.7 1-.7h1.4c.5 0 .9.3 1 .8l9.4 28.6c.3 1 1.8 1 2.1 0l2.8-9.9c1-3.8 2-6.9 2.5-9.6.5-1.8.8-3.2.9-3.9.1-.7.1-1.3.1-1.8 0-.7-.5-1.3-1.4-1.7-.8-.5-2-.7-3.6-.8-.6-.1-1-.6-1-1 0-.6.5-1 1-1H161c.6 0 1 .5 1 1l.2.8zM292 184l-.8 11.8c0 .6-.5 1-1 1h-31.4c-.6 0-1-.5-1-1v-.1c0-.6.5-1 .9-1 .3 0 .7-.1 1.1-.1.9-.1 1.6-.2 2-.5.6-.2 1-.6 1.4-1.1.2-.6.5-1.1.5-2v-30.8c0-.7-.1-1.3-.5-1.8-.3-.6-.7-.9-1.4-1.3-.5-.2-1-.5-2-.7l-1.3-.3c-.5-.1-.9-.6-.9-1v-.2c0-.6.5-1 1-1h16c.6 0 1 .5 1 1v.1c0 .6-.3 1-.9 1-.3.1-.8.1-1.3.2-.9.1-1.6.5-2 .5-.7.2-1.1.6-1.4 1.3-.2.6-.5 1.3-.5 1.8v28.9c0 1.4.1 2.3.1 3.1.1.7.5 1.4.9 1.7.5.5 1.1.6 2.1.7s2.2.1 3.8.1c.8 0 1.6 0 2.3-.1.7 0 1.5-.1 2.3-.2h.1c.7-.1 1.3-.3 1.8-.5.6-.2.9-.5 1.3-.7.1 0 .1-.1.2-.2.8-.9 1.7-2.3 2.9-4.1.9-1.5 1.5-2.9 2-3.9.1-.5.6-.7 1-.7h1.6l.1.1zm-38.2 12.9H236c-.6 0-1-.5-1-1 0-.6.5-1 1-1s1-.1 1.7-.2c1-.1 1.8-.3 2.2-.6.6-.5 1-.8 1.4-1.4.3-.5.5-1 .5-1.8v-31.3h-.5l-14.6 35.9c-.1.5-.6.7-1 .7-.5 0-.9-.2-1-.7L211 158.6h-.5v25.7c0 2.5.1 4.4.5 5.6.3 1.3.8 2.2 1.5 2.9.5.5 1.4.8 2.8 1.3.8.2 1.4.3 1.8.5.5.1.9.6.9 1v.1c0 .6-.5 1-1 1h-14.8c-.7 0-1.3-.7-1-1.4v-.1c.1-.3.5-.7.8-.7.5-.1.8-.2 1.5-.5 1-.2 1.8-.6 2.3-1 .7-.6 1.1-1.4 1.5-2.6.2-1.1.5-3.1.5-5.9v-22.2c0-1.3-.1-2.3-.5-3.1-.3-.8-.7-1.5-1.4-2-.6-.6-1.4-.9-2.2-1.3h-.1l-1.7-.3c-.6-.1-.9-.6-.9-1.1v-.1c0-.6.5-1 1-1h12.7c.5 0 .8.2 1 .7l11 28.9c.3.9 1.7.9 2.1 0l9.4-24.3c.5-1 .7-2 1-3.1v-.1l.3-1.3c.1-.5.6-.8 1-.8h12.1c.6 0 1 .5 1 1v.1c0 .6-.5 1-.9 1-.3 0-.8.1-1.1.2-.8.1-1.5.3-2 .5-.7.2-1.1.6-1.4 1.3-.2.6-.5 1.1-.5 1.8v31.1c0 .7.1 1.4.5 1.8.2.5.7.9 1.4 1.3.5.2 1 .5 2 .6.5.1.9.1 1.3.2.6.1.9.6.9 1v1.6z" class="st5"/>
|
33 |
-
</g>
|
34 |
-
<g class="st0">
|
35 |
-
<path d="M146.2 2.5h-.1l171.4 171.4.5-.5V2.5z" class="st6"/>
|
36 |
-
</g>
|
37 |
-
<path d="M303.6 34.3c0-.4-.2-.9-.6-1.1-.2-.1-.4-.2-.6-.2L281 25.1c-.7-.3-1.5.1-1.7.8l-.1.2c-.3.7.1 1.5.8 1.7l14.5 5.3c.7.3 1.1 1 .8 1.7-.1.4-.4.7-.8.8l-23.6 8.6c-.3.1-.6.1-.9 0l-23.7-8.7c-.7-.3-1.1-1-.8-1.7.1-.4.4-.7.8-.8l14.6-5.2c.7-.2 1.1-1 .8-1.7-.2-.7-1-1.1-1.7-.8l-21.5 7.6c-.2 0-.5.1-.6.2-.1.1-.2.2-.2.3-.2.2-.3.5-.3.9v35.1c0 .6.4 1.1 1 1.3L269.6 82c.2.1.4.2.6.2h.6c.2-.1.4-.1.6-.2l31.3-11.4c.6-.2 1-.7 1-1.3V34.4c-.1 0-.1-.1-.1-.1zm-61.7 2.6l26.2 9.6c.5.2.9.7.9 1.3V77c0 .7-.6 1.3-1.3 1.3-.2 0-.3 0-.5-.1L241 68.7c-.5-.2-.9-.7-.9-1.3V38.2c0-.7.6-1.3 1.3-1.3.2-.1.4-.1.5 0zm58 31.8l-26.2 9.6c-.7.3-1.5-.1-1.7-.8-.1-.1-.1-.3-.1-.5V47.8c0-.6.4-1.1.9-1.3l26.2-9.6c.7-.3 1.5.1 1.7.8.1.1.1.3.1.5v29.3c0 .5-.4 1-.9 1.2z" class="st7"/>
|
38 |
-
<path d="M259.9 32c-.3.7 0 1.5.7 1.8l9.3 4.4c.2.1.4.2.6.1.1 0 .4-.1.6-.1l9.3-4.4c.7-.3 1-1.1.7-1.8-.3-.7-1.1-1-1.8-.7l-5.3 2.5c-.7.3-1.5 0-1.8-.7-.1-.2-.1-.4-.1-.6V18.9c0-.8-.6-1.4-1.4-1.4-.8 0-1.4.6-1.4 1.4v13.7c0 .8-.6 1.4-1.4 1.4-.2 0-.4 0-.6-.1l-5.3-2.5c-1-.4-1.8-.1-2.1.6z" class="st7"/>
|
39 |
-
</svg>
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
vendor/otgs/installer/README.md
DELETED
@@ -1,63 +0,0 @@
|
|
1 |
-
# OTGS WP Installer
|
2 |
-
|
3 |
-
OTGS WP Installer is a library that allows you to install and upgrade plugins and themes developed by OnTheGoSystems.
|
4 |
-
|
5 |
-
## Installation
|
6 |
-
|
7 |
-
First, add OTGS WP Installer as a dependency with [Composer](http://getcomposer.org):
|
8 |
-
|
9 |
-
```bash
|
10 |
-
composer require --dev otgs/installer:dev-master
|
11 |
-
```
|
12 |
-
|
13 |
-
Make sure that your bootstrap file is loading the composer autoloader:
|
14 |
-
|
15 |
-
```php
|
16 |
-
require_once 'vendor/autoload.php';
|
17 |
-
```
|
18 |
-
|
19 |
-
Then, load the OTGS WP Installer bootstrap. Before the `plugins_loaded` action add:
|
20 |
-
|
21 |
-
```php
|
22 |
-
include 'vendor/otgs/installer/loader.php';
|
23 |
-
```
|
24 |
-
|
25 |
-
If you're not using composer to install this library, just unpack the archive anywhere inside the plugin or theme folder and then include the bootstrap file and mentioned in the paragraph above.
|
26 |
-
|
27 |
-
Optionally, you can specify parameters to configure showing a dedicated UI under `Plugins -> Install New` or to load specific repositories.
|
28 |
-
By default, all repositories configrede in `repositories.xml` will be loaded:
|
29 |
-
* wpml - [WPML.org](http://wpml.org)
|
30 |
-
* toolset - [WP-Types.com](http://wp-types.com)
|
31 |
-
|
32 |
-
```php
|
33 |
-
WP_Installer_Setup( $wp_installer_instance,
|
34 |
-
array(
|
35 |
-
'plugins_install_tab' => '1', // optional, default value: 0
|
36 |
-
'repositories_include' => array( 'wpml' ) // optional, default to empty (show all)
|
37 |
-
)
|
38 |
-
);
|
39 |
-
```
|
40 |
-
|
41 |
-
After `init`, configure display the OTGS WP Installer UI like in the example below:
|
42 |
-
|
43 |
-
```php
|
44 |
-
WP_Installer_Show_Products(
|
45 |
-
array(
|
46 |
-
'template' => 'compact', //required
|
47 |
-
'product_name' => 'WPML',
|
48 |
-
'box_title' => 'Multilingual Avada',
|
49 |
-
'name' => 'Avada', //name of theme/plugin
|
50 |
-
'box_description' => 'Avada theme is fully compatible with WPML - the WordPress Multilingual plugin. WPML lets
|
51 |
-
you add languages to your existing sites and includes advanced translation management.',
|
52 |
-
'repository' => 'wpml', // required
|
53 |
-
'package' => 'multilingual-cms', // required
|
54 |
-
'product' => 'multilingual-cms' // required
|
55 |
-
)
|
56 |
-
);
|
57 |
-
```
|
58 |
-
|
59 |
-
* `template` two options available: default and compact. Default will be the same GUI as on the Plugins -> Install new page while compact is a smaller version that can be fit in a different already existing screen
|
60 |
-
* `repository` only one product of a specific product package from a specific repository can be shown
|
61 |
-
* `package` only one product of a specific product package from a specific repository can be shown
|
62 |
-
* `product` only one product of a specific product package from a specific repository can be shown
|
63 |
-
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
vendor/otgs/installer/changelog.txt
DELETED
@@ -1,188 +0,0 @@
|
|
1 |
-
= 1.8.10 =
|
2 |
-
* Removed wrongly added dependencies and repositories
|
3 |
-
|
4 |
-
= 1.8.8 =
|
5 |
-
* Fixed some conflicts
|
6 |
-
|
7 |
-
= 1.8.7 =
|
8 |
-
* Updated version numbers to all files
|
9 |
-
|
10 |
-
= 1.8.6 =
|
11 |
-
* Bug fix: When Windows file paths were longer than 256 chars updating of plugins wasn't possible
|
12 |
-
* Bug fix: PHP 7.2 warnings
|
13 |
-
|
14 |
-
= 1.8.2 =
|
15 |
-
* Bug fix: registration warning was shown for free plugins
|
16 |
-
|
17 |
-
= 1.8.1 =
|
18 |
-
* Fixed a bug potentially making the downloads list under the Commercial not display correctly
|
19 |
-
|
20 |
-
= 1.8 =
|
21 |
-
* Added support for update channels (beta, developement and production)
|
22 |
-
|
23 |
-
= 1.7.17 =
|
24 |
-
* Fixed some warnings and notices
|
25 |
-
|
26 |
-
= 1.7.16 =
|
27 |
-
* Fixed a bug with plugins list showing twice for the Toolset repository
|
28 |
-
* Replaced get_locale() with get_user_locale()
|
29 |
-
* Added WP_Installer_API::get_registering_user_id()
|
30 |
-
|
31 |
-
= 1.7.15 =
|
32 |
-
* Bug fix: New search, results not visible with WordPress 4.6 when searching from installer page
|
33 |
-
* Bug fix: A js error was showing on the admin pages: `pagenow` is undefined
|
34 |
-
* Added support for equivalent subscriptions
|
35 |
-
|
36 |
-
= 1.7.14 =
|
37 |
-
* Refactoring for compliance with Envato market
|
38 |
-
|
39 |
-
= 1.7.13 =
|
40 |
-
* Added sanitization for some inputs
|
41 |
-
* Fixed PHP notice being logged when installing a plugin from the WP plugins directory
|
42 |
-
|
43 |
-
= 1.7.12 =
|
44 |
-
* Allow to set the site keys in PHP (as constants)
|
45 |
-
* Fixed an issue with unregistered sites gets wrong info (or error) when clicking "View version x.y.x details" link
|
46 |
-
|
47 |
-
= 1.7.11 =
|
48 |
-
* Fixed styling for 'must-register' warnings on the plugins page
|
49 |
-
|
50 |
-
= 1.7.10 =
|
51 |
-
* Fixed a notice that was appearing when the site key registration failed
|
52 |
-
|
53 |
-
= 1.7.9 =
|
54 |
-
* Save the client_id value from the site_key_validation API call response and make it available via WP_Installer_API::get_ts_client_id API call
|
55 |
-
|
56 |
-
= 1.7.8 =
|
57 |
-
* Small fix for hiding the WPML registration notice
|
58 |
-
|
59 |
-
= 1.7.7 =
|
60 |
-
* Fixed js error showing up during registration
|
61 |
-
* Styles update for unified WPML messages
|
62 |
-
|
63 |
-
= 1.7.6 =
|
64 |
-
* Updated error messages when validating site keys and stopped removing site keys in case of communication errors
|
65 |
-
* Added a note for users who renewed or purchased new subscriptions and who need to revalidate their subscription from their websites
|
66 |
-
* Fixed a problem with the registrations for multi-site setups when WordPress was installed in a separate folder
|
67 |
-
|
68 |
-
= 1.7.5 =
|
69 |
-
* Fixed a bug causing registration to not be recognized for the entire network in the multi-site mode
|
70 |
-
|
71 |
-
= 1.7.4 =
|
72 |
-
* Use https for wp-types API
|
73 |
-
|
74 |
-
= 1.7.3 =
|
75 |
-
* Added a dependencies class and check for the windows paths length exception
|
76 |
-
* Bug fix: all downloads showed up twice on the plugins list whe upgrading from WPML 3.3
|
77 |
-
|
78 |
-
= 1.7.2 =
|
79 |
-
* Added an exception to handle the case when Types embedded is installer from Toolset Installer and its included Installer version overrides the one running the Toolset setup wizard
|
80 |
-
|
81 |
-
= 1.7.1 =
|
82 |
-
* Added an exception for the case of Types 1.8.9 (Installer 1.7.0) together with older WPML (older Installer)
|
83 |
-
|
84 |
-
= 1.7.0 =
|
85 |
-
* New format for the products data file.
|
86 |
-
* Other fixes
|
87 |
-
|
88 |
-
= 1.6.8 =
|
89 |
-
* Sanitized an input that was a potential security issue
|
90 |
-
|
91 |
-
= 1.6.7 =
|
92 |
-
* Fixed a bug causing repeated calls to the Toolset api to validate the user subscription
|
93 |
-
* Use https for API urls
|
94 |
-
|
95 |
-
= 1.6.6 =
|
96 |
-
* Fixed the 'Call to undefined function get_plugins()' issue
|
97 |
-
|
98 |
-
= 1.6.5 =
|
99 |
-
* Added configuration file for composer
|
100 |
-
* Updated how free plugins are shown on the plugins list (commercial tab)
|
101 |
-
* API calls for manipulating translation service preferences
|
102 |
-
* Support for hosting custom Installer packages on wpml.org
|
103 |
-
* Fixed a warning that was showing when using the OTGS_DISABLE_AUTO_UPDATES constant before any product data was downloaded
|
104 |
-
* Changed the frequency with which product updates are checked automatically (24 hours)
|
105 |
-
* Improved reporting for version numbers
|
106 |
-
|
107 |
-
= 1.6.4 =
|
108 |
-
* Enabled the OTGS_DISABLE_AUTO_UPDATES constant for theme update checks
|
109 |
-
* Fixed a bug that was causing Register links to show for all installed plugins
|
110 |
-
|
111 |
-
= 1.6.3 =
|
112 |
-
* Fixed performance issue related to themes upgrade logic
|
113 |
-
|
114 |
-
= 1.6 =
|
115 |
-
* Improved the way plugins are matched: not just by the folder name (slug) but also by name
|
116 |
-
* Added support for installing and upgrading themes from repositories (currently: Toolset themes)
|
117 |
-
* Added support for 'alias' plugins on the toolset and wpml repositories (currently: Types)
|
118 |
-
* Enhanced the progress animation during plugins downloading
|
119 |
-
|
120 |
-
= 1.5.6 =
|
121 |
-
* Updated the translations
|
122 |
-
* Fix for WPML 3.2 conditional upgrade logic
|
123 |
-
|
124 |
-
= 1.5.5 =
|
125 |
-
* Fixed the logic for the high_priority parameter
|
126 |
-
* Fixed js bug causing a conflict with NextGen
|
127 |
-
* Fixed bug preventing users to install and upgrade Types when they didn't have a Toolset subscription
|
128 |
-
* Fixed bug preventing users to upgrade from the embedded Types to the full version
|
129 |
-
|
130 |
-
= 1.5.4 =
|
131 |
-
* Option to disable auto-updates
|
132 |
-
* Escaped urls generated with add_query_arg
|
133 |
-
|
134 |
-
= 1.5.3 =
|
135 |
-
* Fixed bug in WP_Installer::custom_plugins_api_call (filter for plugins_api) causing conflicts with other filters for plugins_api
|
136 |
-
|
137 |
-
= 1.5.2 =
|
138 |
-
* More meaningful errors when plugin downloads fail
|
139 |
-
* WordPress 4.2 compatibility
|
140 |
-
* Performance improvements (will not load in places where it's not needed and not make unnecessary requests to the CDN)
|
141 |
-
* Support putting deps.xml config file in the theme folder (root)
|
142 |
-
* Included code for importing data for toolset plugins
|
143 |
-
* Use CloudFront urls for products list files
|
144 |
-
|
145 |
-
= 1.5.1 =
|
146 |
-
* Fix for allowing embedded plugins to be updated
|
147 |
-
* Logic for the migration from embedded plugins to full plugins
|
148 |
-
|
149 |
-
= 1.5 =
|
150 |
-
* Support for embedded plugins
|
151 |
-
* Bug fix: When user registers site key with trailing slash, downloads might not work
|
152 |
-
* Tweak: Set a higher timeout limit for the http requests to CDN and API
|
153 |
-
* API function: link to specific repository
|
154 |
-
* API function: get product price
|
155 |
-
* New method for defining affiliate info (with backwards compatibility)
|
156 |
-
|
157 |
-
= 1.4 =
|
158 |
-
* Show explicit error in case of connectivity issues while validating a key.
|
159 |
-
* Bug fix: Downloading plugins in bulk was broken by plugin that had a redirect after activation
|
160 |
-
* Display friendly error message when WordPress does not have permissions to write to the plugins folder
|
161 |
-
* Added support for configuration files to auto-download required plugins and theme keys
|
162 |
-
* Changed the "Update this info" button to "Check for updates" (it refreshes the subscription info and checks for updates)
|
163 |
-
* Support for high_priority parameter that allows setting priority for an Installer instance when more with the same version number exist.
|
164 |
-
* Config files from different instances are combined (define repositories in different instances)
|
165 |
-
* Updated support for conditional updates display for ICL users
|
166 |
-
* More friendly error reporting and handling when using an invalid site key or the plugins archives are not valid.
|
167 |
-
|
168 |
-
|
169 |
-
= 1.3.1 =
|
170 |
-
* Support for conditional release notification (ICanLocalize)
|
171 |
-
|
172 |
-
= 1.3 =
|
173 |
-
* Added a new repository: Toolset
|
174 |
-
* The product packages can be displayed hierarchically and ordered
|
175 |
-
* The link to automatically create site keys will follow through login on the account site (e.g. wpml.org, wp-types.com)
|
176 |
-
* Fixed animation issues (not showing in most browsers) when downloading plugins.
|
177 |
-
* Created an admin screen on the repository end (icl-mpp) to sho registration stats (site keys, site keys usage, components usage etc..).
|
178 |
-
* Bug fix: Renew and Upgrade buttons were not entirely clickable
|
179 |
-
* Bug fix: Action buttons (buy, renew, upgrade) were not displayed correctly when WPML was not active (Installer embedded in theme)
|
180 |
-
* Support for site-wide registration. Products can be registered on the network instead of on each site separately.
|
181 |
-
* Users are able to add either http or https version for any site urls. There will be one site key that will work with both http and https versions.
|
182 |
-
|
183 |
-
= 1.2 =
|
184 |
-
* Added pagination for site keys list of Account -> My Sites
|
185 |
-
* Reversed the order in which the site keys are displayed.
|
186 |
-
* Fixed problem with WPML registration information (site key) not being saved when the option_value field in the wp_options table used a different charset than the default WordPress charset defined in wp-config.php
|
187 |
-
* Allow registering new sites by clicking a link in the WordPress admin instead of copying and pasting the site url in the Account -> My Sites section
|
188 |
-
* Display more detailed debug information related to connectivity issues with the WPML repository
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
vendor/otgs/installer/includes/class-installer-dependencies.php
DELETED
@@ -1,291 +0,0 @@
|
|
1 |
-
<?php
|
2 |
-
|
3 |
-
class Installer_Dependencies {
|
4 |
-
|
5 |
-
private $uploading_allowed = null;
|
6 |
-
private $is_win_paths_exception = array();
|
7 |
-
|
8 |
-
|
9 |
-
function __construct() {
|
10 |
-
|
11 |
-
add_action( 'admin_init', array( $this, 'prevent_plugins_update_on_plugins_page' ), 100 );
|
12 |
-
|
13 |
-
|
14 |
-
global $pagenow;
|
15 |
-
if ( $pagenow == 'update.php' ) {
|
16 |
-
if ( isset( $_GET['action'] ) && $_GET['action'] == 'update-selected' ) {
|
17 |
-
add_action( 'admin_head', array(
|
18 |
-
$this,
|
19 |
-
'prevent_plugins_update_on_updates_screen'
|
20 |
-
) ); //iframe/bulk
|
21 |
-
} else {
|
22 |
-
add_action( 'all_admin_notices', array(
|
23 |
-
$this,
|
24 |
-
'prevent_plugins_update_on_updates_screen'
|
25 |
-
) ); //regular/singular
|
26 |
-
}
|
27 |
-
}
|
28 |
-
add_action( 'wp_ajax_update-plugin', array(
|
29 |
-
$this,
|
30 |
-
'prevent_plugins_update_on_updates_screen'
|
31 |
-
), 0 ); // high priority, before WP
|
32 |
-
|
33 |
-
}
|
34 |
-
|
35 |
-
public function is_win_paths_exception( $repository_id ) {
|
36 |
-
|
37 |
-
if ( ! isset( $this->is_win_paths_exception[ $repository_id ] ) ) {
|
38 |
-
|
39 |
-
$this->is_win_paths_exception[ $repository_id ] = false;
|
40 |
-
|
41 |
-
if ( strtoupper( substr( PHP_OS, 0, 3 ) ) === 'WIN' ) {
|
42 |
-
|
43 |
-
$windows_max_path_length = 256;
|
44 |
-
$longest_path['wpml'] = 109;
|
45 |
-
$longest_path['toolset'] = 99;
|
46 |
-
|
47 |
-
$margin = 15;
|
48 |
-
|
49 |
-
$upgrade_path_length = strlen( WP_CONTENT_DIR . '/upgrade' );
|
50 |
-
|
51 |
-
$installer_settings = WP_Installer()->settings;
|
52 |
-
|
53 |
-
if ( isset($installer_settings['repositories'][$repository_id]['data']) && is_array( $installer_settings['repositories'][$repository_id]['data']['downloads']['plugins'] ) ) {
|
54 |
-
$a_plugin = current( $installer_settings['repositories'][$repository_id]['data']['downloads']['plugins'] );
|
55 |
-
$url = WP_Installer()->append_site_key_to_download_url( $a_plugin['url'], 'xxxxxx', $repository_id );
|
56 |
-
$tmpfname = wp_tempnam( $url );
|
57 |
-
|
58 |
-
$tmpname_length = strlen( basename( $tmpfname ) ) - 4; // -.tmp
|
59 |
-
|
60 |
-
if ( $upgrade_path_length + $tmpname_length + $longest_path[ $repository_id ] + $margin > $windows_max_path_length ) {
|
61 |
-
|
62 |
-
$this->is_win_paths_exception[ $repository_id ] = true;
|
63 |
-
|
64 |
-
}
|
65 |
-
|
66 |
-
}
|
67 |
-
|
68 |
-
|
69 |
-
}
|
70 |
-
|
71 |
-
}
|
72 |
-
|
73 |
-
return $this->is_win_paths_exception[ $repository_id ];
|
74 |
-
|
75 |
-
}
|
76 |
-
|
77 |
-
public function is_uploading_allowed() {
|
78 |
-
|
79 |
-
if ( ! isset( $this->uploading_allowed ) ) {
|
80 |
-
require_once ABSPATH . 'wp-admin/includes/class-wp-upgrader.php';
|
81 |
-
require_once WP_Installer()->plugin_path() . '/includes/class-installer-upgrader-skins.php';
|
82 |
-
|
83 |
-
$upgrader_skins = new Installer_Upgrader_Skins(); //use our custom (mute) Skin
|
84 |
-
$upgrader = new Plugin_Upgrader( $upgrader_skins );
|
85 |
-
|
86 |
-
ob_start();
|
87 |
-
$res = $upgrader->fs_connect( array( WP_CONTENT_DIR, WP_PLUGIN_DIR ) );
|
88 |
-
ob_end_clean();
|
89 |
-
|
90 |
-
if ( ! $res || is_wp_error( $res ) ) {
|
91 |
-
$this->uploading_allowed = false;
|
92 |
-
} else {
|
93 |
-
$this->uploading_allowed = true;
|
94 |
-
}
|
95 |
-
}
|
96 |
-
|
97 |
-
return $this->uploading_allowed;
|
98 |
-
|
99 |
-
}
|
100 |
-
|
101 |
-
public function cant_download( $repository_id ) {
|
102 |
-
|
103 |
-
return ! $this->is_uploading_allowed() || $this->is_win_paths_exception( $repository_id );
|
104 |
-
|
105 |
-
}
|
106 |
-
|
107 |
-
public function win_paths_exception_message() {
|
108 |
-
return __( 'Downloading is not possible. WordPress cannot create required folders because of the
|
109 |
-
256 characters limitation of the current Windows environment.', 'installer' );
|
110 |
-
}
|
111 |
-
|
112 |
-
public function prevent_plugins_update_on_plugins_page() {
|
113 |
-
|
114 |
-
$plugins = get_site_transient( 'update_plugins' );
|
115 |
-
if ( isset( $plugins->response ) && is_array( $plugins->response ) ) {
|
116 |
-
$plugins_with_updates = array_keys( $plugins->response );
|
117 |
-
}
|
118 |
-
|
119 |
-
if ( ! empty( $plugins_with_updates ) ) {
|
120 |
-
|
121 |
-
$plugins = get_plugins();
|
122 |
-
|
123 |
-
$installer_settings = WP_Installer()->settings;
|
124 |
-
if ( isset( $installer_settings['repositories'] ) ) {
|
125 |
-
foreach ( $installer_settings['repositories'] as $repository_id => $repository ) {
|
126 |
-
|
127 |
-
if ( $this->is_win_paths_exception( $repository_id ) ) {
|
128 |
-
|
129 |
-
$repositories_plugins = array();
|
130 |
-
foreach ( $repository['data']['packages'] as $package ) {
|
131 |
-
foreach ( $package['products'] as $product ) {
|
132 |
-
foreach ( $product['plugins'] as $plugin_slug ) {
|
133 |
-
$download = $installer_settings['repositories'][ $repository_id ]['data']['downloads']['plugins'][ $plugin_slug ];
|
134 |
-
if ( empty( $download['free-on-wporg'] ) ) {
|
135 |
-
$repositories_plugins[ $download['slug'] ] = $download['name'];
|
136 |
-
}
|
137 |
-
}
|
138 |
-
}
|
139 |
-
}
|
140 |
-
|
141 |
-
foreach ( $plugins as $plugin_id => $plugin ) {
|
142 |
-
|
143 |
-
if ( in_array( $plugin_id, $plugins_with_updates ) ) {
|
144 |
-
|
145 |
-
$wp_plugin_slug = dirname( $plugin_id );
|
146 |
-
if ( empty( $wp_plugin_slug ) ) {
|
147 |
-
$wp_plugin_slug = basename( $plugin_id, '.php' );
|
148 |
-
}
|
149 |
-
|
150 |
-
foreach ( $repositories_plugins as $slug => $name ) {
|
151 |
-
if ( $wp_plugin_slug == $slug || $name == $plugin['Name'] || $name == $plugin['Title'] ) { //match order: slug, name, title
|
152 |
-
|
153 |
-
remove_action( "after_plugin_row_$plugin_id", 'wp_plugin_update_row', 10, 2 );
|
154 |
-
add_action( "after_plugin_row_$plugin_id", array(
|
155 |
-
$this,
|
156 |
-
'wp_plugin_update_row_win_exception',
|
157 |
-
), 10, 2 );
|
158 |
-
|
159 |
-
}
|
160 |
-
}
|
161 |
-
|
162 |
-
}
|
163 |
-
|
164 |
-
}
|
165 |
-
|
166 |
-
}
|
167 |
-
|
168 |
-
|
169 |
-
}
|
170 |
-
}
|
171 |
-
|
172 |
-
}
|
173 |
-
|
174 |
-
}
|
175 |
-
|
176 |
-
public function wp_plugin_update_row_win_exception() {
|
177 |
-
$wp_list_table = _get_list_table( 'WP_Plugins_List_Table' );
|
178 |
-
echo '<tr class="plugin-update-tr">';
|
179 |
-
echo '<td class="plugin-update colspanchange" colspan="' . esc_attr( $wp_list_table->get_column_count() ) .
|
180 |
-
'"><div class="update-message">' . $this->win_paths_exception_message() . '</div></td>';
|
181 |
-
echo '</tr>';
|
182 |
-
}
|
183 |
-
|
184 |
-
public function prevent_plugins_update_on_updates_screen() {
|
185 |
-
|
186 |
-
if ( isset( $_REQUEST['action'] ) ) {
|
187 |
-
|
188 |
-
$action = isset( $_REQUEST['action'] ) ? sanitize_text_field( $_REQUEST['action'] ) : '';
|
189 |
-
|
190 |
-
$installer_settings = WP_Installer()->settings;
|
191 |
-
|
192 |
-
//bulk mode
|
193 |
-
if ( 'update-selected' == $action ) {
|
194 |
-
|
195 |
-
global $plugins;
|
196 |
-
|
197 |
-
if ( isset( $plugins ) && is_array( $plugins ) ) {
|
198 |
-
|
199 |
-
foreach ( $plugins as $k => $plugin ) {
|
200 |
-
|
201 |
-
$wp_plugin_slug = dirname( $plugin );
|
202 |
-
|
203 |
-
foreach ( $installer_settings['repositories'] as $repository_id => $repository ) {
|
204 |
-
|
205 |
-
if ( $this->is_win_paths_exception( $repository_id ) ) {
|
206 |
-
|
207 |
-
foreach ( $repository['data']['packages'] as $package ) {
|
208 |
-
|
209 |
-
foreach ( $package['products'] as $product ) {
|
210 |
-
|
211 |
-
foreach ( $product['plugins'] as $plugin_slug ) {
|
212 |
-
|
213 |
-
$download = $installer_settings['repositories'][ $repository_id ]['data']['downloads']['plugins'][ $plugin_slug ];
|
214 |
-
|
215 |
-
if ( $download['slug'] == $wp_plugin_slug && empty( $download['free-on-wporg'] ) ) {
|
216 |
-
|
217 |
-
echo '<div class="updated error"><p>' . $this->win_paths_exception_message() .
|
218 |
-
' <strong>(' . $download['name'] . ')</strong>' . '</p></div>';
|
219 |
-
unset( $plugins[ $k ] );
|
220 |
-
|
221 |
-
break( 3 );
|
222 |
-
|
223 |
-
}
|
224 |
-
|
225 |
-
}
|
226 |
-
|
227 |
-
}
|
228 |
-
|
229 |
-
}
|
230 |
-
|
231 |
-
|
232 |
-
}
|
233 |
-
|
234 |
-
}
|
235 |
-
|
236 |
-
}
|
237 |
-
|
238 |
-
}
|
239 |
-
|
240 |
-
}
|
241 |
-
|
242 |
-
|
243 |
-
if ( 'upgrade-plugin' == $action || 'update-plugin' == $action ) {
|
244 |
-
|
245 |
-
$plugin = isset( $_REQUEST['plugin'] ) ? trim( sanitize_text_field( $_REQUEST['plugin'] ) ) : '';
|
246 |
-
|
247 |
-
$wp_plugin_slug = dirname( $plugin );
|
248 |
-
|
249 |
-
foreach ( $installer_settings['repositories'] as $repository_id => $repository ) {
|
250 |
-
|
251 |
-
if ( $this->is_win_paths_exception( $repository_id ) ) {
|
252 |
-
foreach ( $repository['data']['packages'] as $package ) {
|
253 |
-
|
254 |
-
foreach ( $package['products'] as $product ) {
|
255 |
-
|
256 |
-
foreach ( $product['plugins'] as $plugin_slug ) {
|
257 |
-
$download = $installer_settings['repositories'][ $repository_id ]['data']['downloads']['plugins'][ $plugin_slug ];
|
258 |
-
|
259 |
-
//match by folder, will change to match by name and folder
|
260 |
-
if ( $download['slug'] == $wp_plugin_slug && empty ( $download['free-on-wporg'] ) ) {
|
261 |
-
|
262 |
-
echo '<div class="updated error"><p>' . $this->win_paths_exception_message() . '</p></div>';
|
263 |
-
|
264 |
-
echo '<div class="wrap">';
|
265 |
-
echo '<h2>' . __( 'Update Plugin' ) . '</h2>';
|
266 |
-
echo '<a href="' . admin_url( 'update-core.php' ) . '">' . __( 'Return to the updates page', 'installer' ) . '</a>';
|
267 |
-
echo '</div>';
|
268 |
-
require_once( ABSPATH . 'wp-admin/admin-footer.php' );
|
269 |
-
exit;
|
270 |
-
|
271 |
-
}
|
272 |
-
|
273 |
-
}
|
274 |
-
|
275 |
-
}
|
276 |
-
|
277 |
-
}
|
278 |
-
}
|
279 |
-
|
280 |
-
}
|
281 |
-
|
282 |
-
}
|
283 |
-
}
|
284 |
-
|
285 |
-
}
|
286 |
-
|
287 |
-
|
288 |
-
}
|
289 |
-
|
290 |
-
|
291 |
-
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
vendor/otgs/installer/includes/class-installer-theme.php
DELETED
@@ -1,979 +0,0 @@
|
|
1 |
-
<?php
|
2 |
-
/**
|
3 |
-
* Installer Class for Theme Support
|
4 |
-
*
|
5 |
-
* Supports automatic updates and installation of Toolset/WPML Themes
|
6 |
-
*
|
7 |
-
* @class Installer_Theme_Class
|
8 |
-
* @version 1.6
|
9 |
-
* @category Class
|
10 |
-
* @author OnTheGoSystems
|
11 |
-
*/
|
12 |
-
|
13 |
-
if ( !defined( 'ABSPATH' ) ) {
|
14 |
-
exit;
|
15 |
-
}
|
16 |
-
|
17 |
-
/**
|
18 |
-
* Installer_Theme_Class
|
19 |
-
*/
|
20 |
-
class Installer_Theme_Class {
|
21 |
-
|
22 |
-
/** Theme Repository */
|
23 |
-
private $theme_repo;
|
24 |
-
|
25 |
-
/** Repository API */
|
26 |
-
private $repository_api;
|
27 |
-
|
28 |
-
/** Repository Theme Products */
|
29 |
-
private $repository_theme_products;
|
30 |
-
|
31 |
-
/** Site URL */
|
32 |
-
private $installer_site_url;
|
33 |
-
|
34 |
-
/** Site Key */
|
35 |
-
private $installer_site_key;
|
36 |
-
|
37 |
-
/** The Themes Option */
|
38 |
-
protected $installer_themes_option;
|
39 |
-
|
40 |
-
/** Update settings */
|
41 |
-
protected $installer_themes_available_updates;
|
42 |
-
|
43 |
-
/** The Themes */
|
44 |
-
protected $installer_themes = array();
|
45 |
-
|
46 |
-
/** Repository with themes */
|
47 |
-
protected $installer_repo_with_themes;
|
48 |
-
|
49 |
-
/** Active tab */
|
50 |
-
protected $installer_theme_active_tab;
|
51 |
-
|
52 |
-
/** Theme user registration */
|
53 |
-
protected $theme_user_registration;
|
54 |
-
|
55 |
-
/** Client active subscription */
|
56 |
-
protected $installer_theme_subscription_type;
|
57 |
-
|
58 |
-
public function __construct() {
|
59 |
-
|
60 |
-
/** Properties */
|
61 |
-
|
62 |
-
//Get installer repositories
|
63 |
-
$installer_repositories = WP_Installer()->get_repositories();
|
64 |
-
|
65 |
-
//Get repos with themes
|
66 |
-
$repos_with_themes = $this->installer_theme_reposities_that_has_themes( $installer_repositories );
|
67 |
-
|
68 |
-
if ( is_array( $repos_with_themes ) ) {
|
69 |
-
//Assign to property
|
70 |
-
$this->installer_repo_with_themes = $repos_with_themes;
|
71 |
-
|
72 |
-
//Let's looped through repos with themes
|
73 |
-
foreach ( $repos_with_themes as $k => $repo ) {
|
74 |
-
|
75 |
-
//$repo could be 'toolset' or 'wpml'
|
76 |
-
//Assign each repo with theme to property
|
77 |
-
$this->theme_repo[] = $repo;
|
78 |
-
|
79 |
-
if ( (isset($installer_repositories[$repo]['api-url'])) && (isset($installer_repositories[$repo]['products'])) ) {
|
80 |
-
|
81 |
-
//Define the rest of the properties based on the given repo
|
82 |
-
$this->repository_api[$repo] = $installer_repositories[$repo]['api-url'];
|
83 |
-
$this->repository_theme_products[$repo] = $installer_repositories[$repo]['products'];
|
84 |
-
$this->installer_site_url[$repo] = WP_Installer()->get_installer_site_url( $repo );
|
85 |
-
$this->installer_site_key[$repo] = WP_Installer()->get_site_key( $repo );
|
86 |
-
$this->theme_user_registration[$repo] = false;
|
87 |
-
|
88 |
-
if ( WP_Installer()->repository_has_valid_subscription( $repo ) ) {
|
89 |
-
|
90 |
-
$this->installer_theme_subscription_type = WP_Installer()->get_subscription_type_for_repository( $repo );
|
91 |
-
$this->installer_themes_option[$repo] = 'wp_installer_' . $repo . '_themes';
|
92 |
-
$this->installer_themes_available_updates[$repo] = 'wp_installer_' . $repo . '_updated_themes';
|
93 |
-
$this->installer_theme_active_tab = '';
|
94 |
-
|
95 |
-
//We only set themes available to this validated subscription
|
96 |
-
$this->installer_theme_available( $repo, $this->installer_theme_subscription_type );
|
97 |
-
|
98 |
-
add_action( 'installer_themes_support_set_up', array($this, 'installer_theme_sets_active_tab_on_init'), 10 );
|
99 |
-
$this->theme_user_registration[$repo] = true;
|
100 |
-
}
|
101 |
-
|
102 |
-
/** We are ready.. let's initialize .... */
|
103 |
-
$this->init();
|
104 |
-
}
|
105 |
-
}
|
106 |
-
add_action( 'installer_themes_support_set_up', array($this, 'installer_theme_loaded_hooks') );
|
107 |
-
}
|
108 |
-
}
|
109 |
-
|
110 |
-
/** Init */
|
111 |
-
public function init() {
|
112 |
-
add_action( 'admin_enqueue_scripts', array($this, 'installer_theme_enqueue_scripts') );
|
113 |
-
add_filter( 'themes_api', array($this, 'installer_theme_api_override'), 10, 3 );
|
114 |
-
add_filter( 'themes_api_result', array($this, 'installer_theme_api_override_response'), 10, 3 );
|
115 |
-
add_filter( 'site_transient_update_themes', array($this, 'installer_theme_upgrade_check'), 10, 1 );
|
116 |
-
add_action( 'http_api_debug', array($this, 'installer_theme_sync_native_wp_api'), 10, 5 );
|
117 |
-
add_filter( 'installer_theme_hook_response_theme', array($this, 'installer_theme_add_num_ratings'), 10, 1 );
|
118 |
-
add_filter( 'themes_update_check_locales', array($this, 'installer_theme_sync_call_wp_theme_api'), 10, 1 );
|
119 |
-
add_filter( 'admin_url', array($this, 'installer_theme_add_query_arg_tab'), 10, 3 );
|
120 |
-
add_filter( 'network_admin_url', array($this, 'installer_theme_add_query_arg_tab'), 10, 2 );
|
121 |
-
add_action( 'wp_ajax_installer_theme_frontend_selected_tab', array($this, 'installer_theme_frontend_selected_tab'), 0 );
|
122 |
-
add_action( 'wp_loaded', array($this, 'installer_themes_support_set_up_func') );
|
123 |
-
}
|
124 |
-
|
125 |
-
/** Enqueue scripts */
|
126 |
-
public function installer_theme_enqueue_scripts() {
|
127 |
-
$current_screen = $this->installer_theme_current_screen();
|
128 |
-
$commercial_plugin_screen = $this->installer_theme_is_commercial_plugin_screen( $current_screen );
|
129 |
-
if ( ('theme-install' == $current_screen) || ($commercial_plugin_screen) || ('theme-install-network' == $current_screen) ) {
|
130 |
-
$repo_with_themes = $this->installer_repo_with_themes;
|
131 |
-
$js_array = array();
|
132 |
-
if ( is_array( $repo_with_themes ) ) {
|
133 |
-
foreach ( $repo_with_themes as $k => $v ) {
|
134 |
-
|
135 |
-
//Hyperlink text
|
136 |
-
$theme_repo_name = $this->installer_theme_get_repo_product_name( $v );
|
137 |
-
$the_hyperlink_text = esc_js( $theme_repo_name );
|
138 |
-
|
139 |
-
if ( is_multisite() ) {
|
140 |
-
$admin_url_passed = network_admin_url();
|
141 |
-
} else {
|
142 |
-
$admin_url_passed = admin_url();
|
143 |
-
}
|
144 |
-
|
145 |
-
//Define
|
146 |
-
$js_array[$v] = array(
|
147 |
-
'the_hyperlink_text' => $the_hyperlink_text,
|
148 |
-
'registration_status' => $this->theme_user_registration[$v],
|
149 |
-
'is_commercial_plugin_tab' => $commercial_plugin_screen,
|
150 |
-
'registration_url' => $admin_url_passed . 'plugin-install.php?tab=commercial#installer_repo_' . $v
|
151 |
-
);
|
152 |
-
|
153 |
-
}
|
154 |
-
}
|
155 |
-
|
156 |
-
if ( !(empty($js_array)) ) {
|
157 |
-
wp_enqueue_script( 'installer-theme-install', WP_Installer()->res_url() . '/res/js/installer_theme_install.js', array('jquery', 'installer-admin'), WP_Installer()->version() );
|
158 |
-
$installer_ajax_url = admin_url( 'admin-ajax.php' );
|
159 |
-
|
160 |
-
if ( is_ssl() ) {
|
161 |
-
$installer_ajax_url = str_replace( 'http://', 'https://', $installer_ajax_url );
|
162 |
-
} else {
|
163 |
-
$installer_ajax_url = str_replace( 'https://', 'http://', $installer_ajax_url );
|
164 |
-
}
|
165 |
-
|
166 |
-
//Case where user is subscribed to a subscription that does not have themes
|
167 |
-
$subscription_js_check = $this->installer_theme_subscription_does_not_have_theme( $js_array );
|
168 |
-
|
169 |
-
wp_localize_script( 'installer-theme-install', 'installer_theme_install_localize',
|
170 |
-
array(
|
171 |
-
'js_array_installer' => $js_array,
|
172 |
-
'ajaxurl' => $installer_ajax_url,
|
173 |
-
'no_associated_themes' => $subscription_js_check,
|
174 |
-
'installer_theme_frontend_selected_tab_nonce' => wp_create_nonce( 'installer_theme_frontend_selected_tab' )
|
175 |
-
)
|
176 |
-
);
|
177 |
-
}
|
178 |
-
}
|
179 |
-
}
|
180 |
-
|
181 |
-
/** Case where user is subscribed to a subscription that does not have themes */
|
182 |
-
protected function installer_theme_subscription_does_not_have_theme( $js_array ) {
|
183 |
-
|
184 |
-
$any_subscription_has_theme = array();
|
185 |
-
$number_of_registrations = array();
|
186 |
-
|
187 |
-
//Step1, we looped through JS array
|
188 |
-
foreach ( $js_array as $repo_slug => $js_details ) {
|
189 |
-
|
190 |
-
//Step2, checked if user is registered
|
191 |
-
if ( isset($this->theme_user_registration[$repo_slug]) ) {
|
192 |
-
$registration_status = $this->theme_user_registration[$repo_slug];
|
193 |
-
if ( $registration_status ) {
|
194 |
-
|
195 |
-
//Registered
|
196 |
-
$number_of_registrations[] = $repo_slug;
|
197 |
-
|
198 |
-
//Step3, we checked if the $repo_slug has available theme
|
199 |
-
$themes_available = false;
|
200 |
-
if ( isset($this->installer_themes[$repo_slug]) ) {
|
201 |
-
$themes_available = $this->installer_themes[$repo_slug];
|
202 |
-
if ( !(empty($themes_available)) ) {
|
203 |
-
//This subscription has theme
|
204 |
-
$themes_available = true;
|
205 |
-
}
|
206 |
-
}
|
207 |
-
|
208 |
-
if ( $themes_available ) {
|
209 |
-
$any_subscription_has_theme[] = $repo_slug;
|
210 |
-
}
|
211 |
-
}
|
212 |
-
}
|
213 |
-
|
214 |
-
}
|
215 |
-
|
216 |
-
//Step4, we are done looping, check if there are any repos that have themes
|
217 |
-
if ( empty($registration_status) ) {
|
218 |
-
|
219 |
-
//No registration on any repos
|
220 |
-
return FALSE;
|
221 |
-
|
222 |
-
} elseif ( !(empty($registration_status)) ) {
|
223 |
-
|
224 |
-
//Has some registration on some repos
|
225 |
-
//We then checked if this user has any active subscriptions
|
226 |
-
if ( empty($any_subscription_has_theme) ) {
|
227 |
-
//No subscription
|
228 |
-
return TRUE;
|
229 |
-
} else {
|
230 |
-
//Has subscription found
|
231 |
-
return FALSE;
|
232 |
-
}
|
233 |
-
}
|
234 |
-
}
|
235 |
-
|
236 |
-
/** Check if its the commercial plugin screen */
|
237 |
-
private function installer_theme_is_commercial_plugin_screen( $current_screen ) {
|
238 |
-
$commercial = false;
|
239 |
-
if ( ('plugin-install' == $current_screen) || ('plugin-install-network' == $current_screen) ) {
|
240 |
-
if ( isset($_GET['tab']) ) {
|
241 |
-
$tab = sanitize_text_field( $_GET['tab'] );
|
242 |
-
if ( 'commercial' == $tab ) {
|
243 |
-
$commercial = true;
|
244 |
-
}
|
245 |
-
}
|
246 |
-
}
|
247 |
-
return $commercial;
|
248 |
-
}
|
249 |
-
|
250 |
-
/** Current screen */
|
251 |
-
private function installer_theme_current_screen() {
|
252 |
-
|
253 |
-
$current_screen_loaded = false;
|
254 |
-
|
255 |
-
if ( function_exists( 'get_current_screen' ) ) {
|
256 |
-
|
257 |
-
$screen_output = get_current_screen();
|
258 |
-
$current_screen_loaded = $screen_output->id;
|
259 |
-
|
260 |
-
}
|
261 |
-
|
262 |
-
return $current_screen_loaded;
|
263 |
-
|
264 |
-
}
|
265 |
-
|
266 |
-
/** Override WordPress Themes API */
|
267 |
-
public function installer_theme_api_override( $api_boolean, $action, $args ) {
|
268 |
-
|
269 |
-
//Let's checked if user is browsing our themes
|
270 |
-
if ( isset($args->browse) ) {
|
271 |
-
$browse = $args->browse;
|
272 |
-
if ( in_array( $browse, $this->theme_repo ) ) {
|
273 |
-
//Uniquely validated for our Themes
|
274 |
-
if ( 'query_themes' == $action ) {
|
275 |
-
//User is querying or asking information about our themes, let's override
|
276 |
-
$api_boolean = true;
|
277 |
-
}
|
278 |
-
}
|
279 |
-
} elseif ( isset($args->slug) ) {
|
280 |
-
//We are installing our themes
|
281 |
-
$theme_to_install = $args->slug;
|
282 |
-
|
283 |
-
//Lets uniquely validate if this belongs to us
|
284 |
-
//Check if this is OTGS theme
|
285 |
-
$validate_check = $this->installer_themes_belong_to_us( $theme_to_install );
|
286 |
-
if ( $validate_check ) {
|
287 |
-
//Belongs to us
|
288 |
-
if ( !(empty($theme_to_install)) ) {
|
289 |
-
$api_boolean = true;
|
290 |
-
}
|
291 |
-
}
|
292 |
-
}
|
293 |
-
|
294 |
-
return $api_boolean;
|
295 |
-
}
|
296 |
-
|
297 |
-
/** Override WordPress Themes API response with our own themes API*/
|
298 |
-
public function installer_theme_api_override_response( $res, $action, $args ) {
|
299 |
-
|
300 |
-
if ( true === $res ) {
|
301 |
-
if ( isset($args->browse) ) {
|
302 |
-
$browse = $args->browse;
|
303 |
-
if ( in_array( $browse, $this->theme_repo ) ) {
|
304 |
-
//Uniquely validated for our themes
|
305 |
-
if ( 'query_themes' == $action ) {
|
306 |
-
//Client querying OTGS themes
|
307 |
-
//Check for registration status
|
308 |
-
if ( isset($this->theme_user_registration[$browse]) ) {
|
309 |
-
//Set
|
310 |
-
if ( !($this->theme_user_registration[$browse]) ) {
|
311 |
-
//Not registered yet
|
312 |
-
$res = new stdClass();
|
313 |
-
$res->info = array();
|
314 |
-
$res->themes = array();
|
315 |
-
return $res;
|
316 |
-
} else {
|
317 |
-
//Registered
|
318 |
-
$themes = $this->installer_theme_get_themes( '', $browse );
|
319 |
-
$res = $this->installer_theme_format_response( $themes, $action );
|
320 |
-
}
|
321 |
-
}
|
322 |
-
}
|
323 |
-
}
|
324 |
-
} elseif ( isset($args->slug) ) {
|
325 |
-
//We are installing theme
|
326 |
-
//Lets uniquely validate if this belongs to our theme
|
327 |
-
$theme_to_install = $args->slug;
|
328 |
-
|
329 |
-
//Lets uniquely validate if this belongs to us
|
330 |
-
//Check if this is OTGS theme
|
331 |
-
$validate_check = $this->installer_themes_belong_to_us( $theme_to_install );
|
332 |
-
if ( $validate_check ) {
|
333 |
-
//Belongs to us
|
334 |
-
if ( ($res) && ('theme_information' == $action) ) {
|
335 |
-
$themes = $this->installer_theme_get_themes( '', $this->installer_theme_active_tab );
|
336 |
-
$res = $this->installer_theme_format_response( $themes, $action, $args->slug );
|
337 |
-
}
|
338 |
-
}
|
339 |
-
}
|
340 |
-
return $res;
|
341 |
-
} else {
|
342 |
-
//Default WP Themes here
|
343 |
-
$client_side_active_tab = get_option( 'wp_installer_clientside_active_tab' );
|
344 |
-
if ( $client_side_active_tab ) {
|
345 |
-
if ( !(in_array( $client_side_active_tab, $this->theme_repo )) ) {
|
346 |
-
//Not OTGS tab
|
347 |
-
return $res;
|
348 |
-
}
|
349 |
-
}
|
350 |
-
|
351 |
-
}
|
352 |
-
}
|
353 |
-
|
354 |
-
/** Get Themes */
|
355 |
-
private function installer_theme_get_themes( $product_url = '', $repo_source = '' ) {
|
356 |
-
|
357 |
-
//Query API
|
358 |
-
if ( empty($product_url) ) {
|
359 |
-
//Not set
|
360 |
-
if ( isset($this->repository_theme_products[$this->installer_theme_active_tab]) ) {
|
361 |
-
$query_remote_url = $this->repository_theme_products[$this->installer_theme_active_tab];
|
362 |
-
}
|
363 |
-
|
364 |
-
} else {
|
365 |
-
$query_remote_url = $product_url;
|
366 |
-
}
|
367 |
-
|
368 |
-
//Let's retrieved current installer settings so we won't be querying all the time
|
369 |
-
$current_installer_settings = WP_Installer()->get_settings();
|
370 |
-
|
371 |
-
//Set $themes to FALSE by default
|
372 |
-
$themes = false;
|
373 |
-
|
374 |
-
if ( (is_array( $current_installer_settings )) && (!(empty($current_installer_settings))) ) {
|
375 |
-
|
376 |
-
//Set and already defined, retrieved $products
|
377 |
-
if ( isset($current_installer_settings['repositories'][$repo_source]['data']) ) {
|
378 |
-
$products = $current_installer_settings['repositories'][$repo_source]['data'];
|
379 |
-
if ( isset($products['downloads']['themes']) ) {
|
380 |
-
$themes = $products['downloads']['themes'];
|
381 |
-
}
|
382 |
-
}
|
383 |
-
|
384 |
-
} else {
|
385 |
-
|
386 |
-
//Call API
|
387 |
-
$response = wp_remote_get( $query_remote_url );
|
388 |
-
|
389 |
-
if ( is_wp_error( $response ) ) {
|
390 |
-
//Error detected: http fallback
|
391 |
-
$query_remote_url = preg_replace( "@^https://@", 'http://', $query_remote_url );
|
392 |
-
$response = wp_remote_get( $query_remote_url );
|
393 |
-
}
|
394 |
-
|
395 |
-
if ( !(is_wp_error( $response )) ) {
|
396 |
-
//Not WP error
|
397 |
-
//Evaluate response
|
398 |
-
if ( $response && isset($response['response']['code']) && $response['response']['code'] == 200 ) {
|
399 |
-
//In this case, response is set and defined, proceed...
|
400 |
-
$body = wp_remote_retrieve_body( $response );
|
401 |
-
if ( $body ) {
|
402 |
-
$products = json_decode( $body, true );
|
403 |
-
if ( isset($products['downloads']['themes']) ) {
|
404 |
-
$themes = $products['downloads']['themes'];
|
405 |
-
}
|
406 |
-
}
|
407 |
-
|
408 |
-
}
|
409 |
-
}
|
410 |
-
}
|
411 |
-
|
412 |
-
//Return themes, can be filtered by user subscription type
|
413 |
-
return apply_filters( 'installer_theme_get_themes', $themes, $this->installer_theme_active_tab );
|
414 |
-
}
|
415 |
-
|
416 |
-
/** Format response in compatibility with WordPress Theme API response */
|
417 |
-
private function installer_theme_format_response( $themes, $action, $slug = '' ) {
|
418 |
-
|
419 |
-
//Let's append download link only when retrieving theme information for installation
|
420 |
-
if ( ('theme_information' == $action) && (!(empty($slug))) ) {
|
421 |
-
|
422 |
-
//Only return one result -> the theme to be installed
|
423 |
-
foreach ( $themes as $k => $theme ) {
|
424 |
-
if ( $slug == $theme['basename'] ) {
|
425 |
-
$theme['download_link'] = WP_Installer()->append_site_key_to_download_url( $theme['url'], $this->installer_site_key[$this->installer_theme_active_tab], $this->installer_theme_active_tab );
|
426 |
-
$theme = json_decode( json_encode( $theme ), FALSE );
|
427 |
-
return $theme;
|
428 |
-
}
|
429 |
-
}
|
430 |
-
|
431 |
-
} else {
|
432 |
-
|
433 |
-
$res = new stdClass();
|
434 |
-
$res->info = array();
|
435 |
-
$res->themes = array();
|
436 |
-
|
437 |
-
//Define info
|
438 |
-
$res->info['page'] = 1;
|
439 |
-
$res->info['pages'] = 10;
|
440 |
-
|
441 |
-
//Let's count available themes ;
|
442 |
-
$res->info['results'] = count( $themes );
|
443 |
-
|
444 |
-
//Let's saved themes for easy access later on
|
445 |
-
$this->installer_theme_savethemes_by_slug( $themes );
|
446 |
-
|
447 |
-
//Let's defined available themes
|
448 |
-
if ( isset($this->installer_theme_subscription_type) ) {
|
449 |
-
//Has subscription type defined, let's saved what is associated with this subscription
|
450 |
-
$this->installer_theme_available( $this->installer_theme_active_tab, $this->installer_theme_subscription_type );
|
451 |
-
} else {
|
452 |
-
$this->installer_theme_available( $this->installer_theme_active_tab );
|
453 |
-
}
|
454 |
-
|
455 |
-
//Let's add themes to the overriden WordPress API Theme response
|
456 |
-
/** Installer 1.7.6: Update to compatible data format response from WP Theme API */
|
457 |
-
$theme_compatible_array=array();
|
458 |
-
if ((is_array($themes))) {
|
459 |
-
foreach ($themes as $k=>$v) {
|
460 |
-
$theme_compatible_array[]=(object)($v);
|
461 |
-
}
|
462 |
-
}
|
463 |
-
$res->themes = $theme_compatible_array;
|
464 |
-
$res->themes = apply_filters( 'installer_theme_hook_response_theme', $res->themes );
|
465 |
-
return $res;
|
466 |
-
}
|
467 |
-
}
|
468 |
-
|
469 |
-
/** Let's save all available themes by its slug after any latest API query */
|
470 |
-
private function installer_theme_savethemes_by_slug( $themes, $doing_query = false ) {
|
471 |
-
|
472 |
-
if ( !($doing_query) ) {
|
473 |
-
$this->installer_themes[$this->installer_theme_active_tab] = array();
|
474 |
-
}
|
475 |
-
|
476 |
-
if ( !(empty($themes)) ) {
|
477 |
-
$themes_for_saving = array();
|
478 |
-
foreach ( $themes as $k => $theme ) {
|
479 |
-
if ( !($doing_query) ) {
|
480 |
-
if ( isset($theme['slug']) ) {
|
481 |
-
$theme_slug = $theme['slug'];
|
482 |
-
if ( !(empty($theme_slug)) ) {
|
483 |
-
$themes_for_saving[] = $theme_slug;
|
484 |
-
}
|
485 |
-
}
|
486 |
-
} else {
|
487 |
-
|
488 |
-
if ( ((isset($theme['slug'])) && (isset($theme['version'])) &&
|
489 |
-
(isset($theme['theme_page_url']))) && (isset($theme['url']))
|
490 |
-
) {
|
491 |
-
$theme_slug = $theme['slug'];
|
492 |
-
$theme_version = $theme['version'];
|
493 |
-
$theme_page_url = $theme['theme_page_url'];
|
494 |
-
$theme_url = $theme['url'];
|
495 |
-
if ( (!(empty($theme_slug))) && (!(empty($theme_version))) &&
|
496 |
-
(!(empty($theme_page_url))) && (!(empty($theme_url)))
|
497 |
-
) {
|
498 |
-
//$theme_slug is unique for every theme
|
499 |
-
$themes_for_saving[$theme_slug] = array(
|
500 |
-
'version' => $theme_version,
|
501 |
-
'theme_page_url' => $theme_page_url,
|
502 |
-
'url' => $theme_url
|
503 |
-
);
|
504 |
-
|
505 |
-
}
|
506 |
-
}
|
507 |
-
}
|
508 |
-
|
509 |
-
}
|
510 |
-
|
511 |
-
if ( !(empty($themes_for_saving)) ) {
|
512 |
-
//Has themes for saving
|
513 |
-
if ( !($doing_query) ) {
|
514 |
-
//Not doing query
|
515 |
-
$existing_themes = get_option( $this->installer_themes_option[$this->installer_theme_active_tab] );
|
516 |
-
if ( !($existing_themes) ) {
|
517 |
-
//Does not yet exists
|
518 |
-
delete_option( $this->installer_themes_option[$this->installer_theme_active_tab] );
|
519 |
-
update_option( $this->installer_themes_option[$this->installer_theme_active_tab], $themes_for_saving );
|
520 |
-
} else {
|
521 |
-
//exists, check if we need to update
|
522 |
-
if ( $existing_themes == $themes_for_saving ) {
|
523 |
-
//Equal, no need to update here
|
524 |
-
} else {
|
525 |
-
//Update
|
526 |
-
delete_option( $this->installer_themes_option[$this->installer_theme_active_tab] );
|
527 |
-
update_option( $this->installer_themes_option[$this->installer_theme_active_tab], $themes_for_saving );
|
528 |
-
}
|
529 |
-
}
|
530 |
-
} else {
|
531 |
-
//Used for query purposes only, don't save anything
|
532 |
-
return $themes_for_saving;
|
533 |
-
}
|
534 |
-
}
|
535 |
-
}
|
536 |
-
}
|
537 |
-
|
538 |
-
/** Available themes */
|
539 |
-
private function installer_theme_available( $repo, $subscription_type = '' ) {
|
540 |
-
|
541 |
-
$subscription_type = intval( $subscription_type );
|
542 |
-
if ( $subscription_type > 0 ) {
|
543 |
-
|
544 |
-
//Here we have a case of validated subscription
|
545 |
-
//We need to set themes that is available to this subscription
|
546 |
-
$themes_associated_with_subscription = $this->installer_themes[$repo] = $this->installer_theme_get_themes_by_subscription( $subscription_type, $repo );
|
547 |
-
if ( !(empty($themes_associated_with_subscription)) ) {
|
548 |
-
//Has themes
|
549 |
-
$this->installer_themes[$repo] = $themes_associated_with_subscription;
|
550 |
-
}
|
551 |
-
} else {
|
552 |
-
|
553 |
-
//Get themes
|
554 |
-
$this->installer_themes[$repo] = get_option( $this->installer_themes_option[$repo] );
|
555 |
-
}
|
556 |
-
}
|
557 |
-
|
558 |
-
/** Theme upgrade check */
|
559 |
-
public function installer_theme_upgrade_check( $the_value ) {
|
560 |
-
|
561 |
-
//Step1: Let's looped through repos with themes and check if we have updates available for them.
|
562 |
-
if ( (is_array( $this->installer_repo_with_themes )) && (!(empty($this->installer_repo_with_themes))) ) {
|
563 |
-
foreach ( $this->installer_repo_with_themes as $k => $repo_slug ) {
|
564 |
-
//Step2: Let's checked if we have update for this theme
|
565 |
-
$update_available = get_option( $this->installer_themes_available_updates[$repo_slug] );
|
566 |
-
if ( $update_available ) {
|
567 |
-
if ( (is_array( $update_available )) && (!(empty($update_available))) ) {
|
568 |
-
//Has updates available coming from this specific theme repo
|
569 |
-
//Let's loop through the themes that needs update
|
570 |
-
foreach ( $update_available as $theme_slug => $v ) {
|
571 |
-
//Add to response API
|
572 |
-
$the_value->response [$theme_slug] = array(
|
573 |
-
'theme' => $theme_slug,
|
574 |
-
'new_version' => $v['new_version'],
|
575 |
-
'url' => $v['url'],
|
576 |
-
'package' => $v['package']
|
577 |
-
);
|
578 |
-
}
|
579 |
-
}
|
580 |
-
}
|
581 |
-
}
|
582 |
-
}
|
583 |
-
//Return
|
584 |
-
return $the_value;
|
585 |
-
}
|
586 |
-
|
587 |
-
/** Return repositories that has themes */
|
588 |
-
private function installer_theme_reposities_that_has_themes( $repositories, $ret_value = true, $doing_api_query = false ) {
|
589 |
-
|
590 |
-
$repositories_with_themes = array();
|
591 |
-
|
592 |
-
if ( (is_array( $repositories )) && (!(empty($repositories))) ) {
|
593 |
-
|
594 |
-
//Let's checked if we have something before
|
595 |
-
$themes = get_option( 'installer_repositories_with_theme' );
|
596 |
-
|
597 |
-
if ( (!($themes)) || ($doing_api_query) ) {
|
598 |
-
//Not yet defined
|
599 |
-
//Loop through each repositories and check whether they have themes
|
600 |
-
foreach ( $repositories as $k => $v ) {
|
601 |
-
if ( isset($v['products']) ) {
|
602 |
-
$products_url = $v['products'];
|
603 |
-
$themes = $this->installer_theme_get_themes( $products_url, $k );
|
604 |
-
if ( (is_array( $themes )) && (!(empty($themes))) ) {
|
605 |
-
//Repo has themes
|
606 |
-
$repositories_with_themes[] = $k;
|
607 |
-
}
|
608 |
-
}
|
609 |
-
}
|
610 |
-
} else {
|
611 |
-
//Already set
|
612 |
-
$repositories_with_themes = $themes;
|
613 |
-
}
|
614 |
-
|
615 |
-
if ( (((is_array( $repositories_with_themes )) && (!(empty($repositories_with_themes)))) && (!($themes))) || ($doing_api_query) ) {
|
616 |
-
//Save to db
|
617 |
-
update_option( 'installer_repositories_with_theme', $repositories_with_themes );
|
618 |
-
}
|
619 |
-
}
|
620 |
-
|
621 |
-
if ( $ret_value ) {
|
622 |
-
return $repositories_with_themes;
|
623 |
-
}
|
624 |
-
|
625 |
-
}
|
626 |
-
|
627 |
-
/** When WordPress queries its own Themes API, we sync with our own */
|
628 |
-
public function installer_theme_sync_native_wp_api( $response, $responsetext, $class, $args, $url ) {
|
629 |
-
|
630 |
-
$api_native_string = 'api.wordpress.org/themes/';
|
631 |
-
if ( (strpos( $url, $api_native_string ) !== false) ) {
|
632 |
-
//WordPress is querying its own themes API
|
633 |
-
$installer_repositories = WP_Installer()->get_repositories();
|
634 |
-
|
635 |
-
//Query our own API and update repository values too
|
636 |
-
$this->installer_theme_reposities_that_has_themes( $installer_repositories, false, true );
|
637 |
-
}
|
638 |
-
}
|
639 |
-
|
640 |
-
/** Returns product name by theme repo slug */
|
641 |
-
private function installer_theme_get_repo_product_name( $theme_repo ) {
|
642 |
-
|
643 |
-
$theme_repo_name = false;
|
644 |
-
|
645 |
-
if ( isset(WP_Installer()->settings['repositories'][$theme_repo]['data']['product-name']) ) {
|
646 |
-
//Set
|
647 |
-
$prod_name = WP_Installer()->settings['repositories'][$theme_repo]['data']['product-name'];
|
648 |
-
if ( !(empty($prod_name)) ) {
|
649 |
-
$theme_repo_name = $prod_name;
|
650 |
-
}
|
651 |
-
} else {
|
652 |
-
//Not yet
|
653 |
-
if ( $theme_repo == $this->theme_repo ) {
|
654 |
-
$result = $this->installer_theme_general_api_query();
|
655 |
-
if ( isset($result['product-name']) ) {
|
656 |
-
$product_name = $result['product-name'];
|
657 |
-
if ( !(empty($product_name)) ) {
|
658 |
-
$theme_repo_name = $product_name;
|
659 |
-
}
|
660 |
-
}
|
661 |
-
}
|
662 |
-
}
|
663 |
-
|
664 |
-
return $theme_repo_name;
|
665 |
-
}
|
666 |
-
|
667 |
-
/** General query API method, returns $products */
|
668 |
-
private function installer_theme_general_api_query() {
|
669 |
-
$products = false;
|
670 |
-
$response = wp_remote_get( $this->repository_theme_products );
|
671 |
-
if ( !(is_wp_error( $response )) ) {
|
672 |
-
//Not WP error
|
673 |
-
//Evaluate response
|
674 |
-
if ( $response && isset($response['response']['code']) && $response['response']['code'] == 200 ) {
|
675 |
-
//In this case, response is set and defined, proceed...
|
676 |
-
$body = wp_remote_retrieve_body( $response );
|
677 |
-
if ( $body ) {
|
678 |
-
$result = json_decode( $body, true );
|
679 |
-
if ( (is_array( $result )) && (!(empty($result))) ) {
|
680 |
-
$products = $result;
|
681 |
-
}
|
682 |
-
}
|
683 |
-
|
684 |
-
}
|
685 |
-
}
|
686 |
-
|
687 |
-
return $products;
|
688 |
-
}
|
689 |
-
|
690 |
-
/** General method to check if themes are OTGS themes based on its slug*/
|
691 |
-
private function installer_themes_belong_to_us( $theme_slug ) {
|
692 |
-
|
693 |
-
$found = false;
|
694 |
-
$theme_slug = trim( $theme_slug );
|
695 |
-
|
696 |
-
foreach ( $this->installer_themes as $repo_with_theme => $themes ) {
|
697 |
-
foreach ( $themes as $k => $otgs_theme_slug ) {
|
698 |
-
if ( $theme_slug == $otgs_theme_slug ) {
|
699 |
-
//match found! Theme belongs to otgs
|
700 |
-
return true;
|
701 |
-
}
|
702 |
-
}
|
703 |
-
}
|
704 |
-
return $found;
|
705 |
-
|
706 |
-
}
|
707 |
-
|
708 |
-
/** Sets active tab on init */
|
709 |
-
public function installer_theme_sets_active_tab_on_init() {
|
710 |
-
|
711 |
-
if ( isset ($_SERVER ['REQUEST_URI']) ) {
|
712 |
-
$request_uri = $_SERVER ['REQUEST_URI'];
|
713 |
-
if ( isset ($_GET ['browse']) ) {
|
714 |
-
$active_tab = sanitize_text_field( $_GET['browse'] );
|
715 |
-
$this->installer_theme_active_tab = $active_tab;
|
716 |
-
} elseif ( isset ($_POST ['request'] ['browse']) ) {
|
717 |
-
$active_tab = sanitize_text_field ( $_POST['request']['browse'] );
|
718 |
-
$this->installer_theme_active_tab = $active_tab;
|
719 |
-
} elseif ( (isset ($_GET ['theme_repo'])) && (isset ($_GET ['action'])) ) {
|
720 |
-
$theme_repo = sanitize_text_field( $_GET['theme_repo'] );
|
721 |
-
$the_action = sanitize_text_field( $_GET['action'] );
|
722 |
-
if ( ('install-theme' == $the_action) && (!(empty($theme_repo))) ) {
|
723 |
-
$this->installer_theme_active_tab = $theme_repo;
|
724 |
-
}
|
725 |
-
} elseif ( wp_get_referer() ) {
|
726 |
-
$referer = wp_get_referer();
|
727 |
-
$parts = parse_url( $referer );
|
728 |
-
if ( isset($parts['query']) ) {
|
729 |
-
parse_str( $parts['query'], $query );
|
730 |
-
if ( isset($query['browse']) ) {
|
731 |
-
$this->installer_theme_active_tab = $query['browse'];
|
732 |
-
}
|
733 |
-
}
|
734 |
-
}
|
735 |
-
}
|
736 |
-
}
|
737 |
-
|
738 |
-
/** WP Theme API compatibility- added num ratings */
|
739 |
-
/** Installer 1.7.6+ Added updated 'rating' field */
|
740 |
-
public function installer_theme_add_num_ratings( $themes ) {
|
741 |
-
|
742 |
-
if ( (is_array( $themes )) && (!(empty($themes))) ) {
|
743 |
-
foreach ( $themes as $k => $v ) {
|
744 |
-
if ( !(isset($v->num_ratings)) ) {
|
745 |
-
$themes[$k]->num_ratings = 100;
|
746 |
-
}
|
747 |
-
if ( !(isset($v->rating)) ) {
|
748 |
-
$themes[$k]->rating = 100;
|
749 |
-
}
|
750 |
-
}
|
751 |
-
}
|
752 |
-
|
753 |
-
return $themes;
|
754 |
-
}
|
755 |
-
|
756 |
-
/** When WordPress.org makes a call to its repository, let's run our own upgrade checks too */
|
757 |
-
public function installer_theme_sync_call_wp_theme_api( $locales ) {
|
758 |
-
|
759 |
-
$this->installer_theme_upgrade_theme_check();
|
760 |
-
|
761 |
-
return $locales;
|
762 |
-
}
|
763 |
-
|
764 |
-
/** Upgrade theme check */
|
765 |
-
private function installer_theme_upgrade_theme_check() {
|
766 |
-
|
767 |
-
// Step1-> we get all installed themes in clients local themes directory
|
768 |
-
$installed_themes = wp_get_themes();
|
769 |
-
|
770 |
-
// Step2: We need to loop through each repository with themes
|
771 |
-
foreach ( $this->installer_repo_with_themes as $k => $repo_slug ) {
|
772 |
-
|
773 |
-
// We then need to retrieved the products URL for each of this repo
|
774 |
-
$products_url = $this->repository_theme_products [$repo_slug];
|
775 |
-
|
776 |
-
// Step3-> we get all available themes in our repository via API based on this URL
|
777 |
-
$available_themes = $this->installer_theme_get_themes( $products_url, $repo_slug );
|
778 |
-
|
779 |
-
if ( !($available_themes) ) {
|
780 |
-
|
781 |
-
// API is not available as of the moment, return..
|
782 |
-
return;
|
783 |
-
} else {
|
784 |
-
|
785 |
-
// We have available themes here...
|
786 |
-
// Step4->let's simplify available themes data by slugs
|
787 |
-
$simplified_available_themes = $this->installer_theme_savethemes_by_slug( $available_themes, true );
|
788 |
-
|
789 |
-
// Step5->Let's loop through installed themes
|
790 |
-
if ( (is_array( $installed_themes )) && (!(empty ($installed_themes))) ) {
|
791 |
-
$otgs_theme_updates_available = array();
|
792 |
-
foreach ( $installed_themes as $theme_slug => $theme_object ) {
|
793 |
-
if ( array_key_exists( $theme_slug, $simplified_available_themes ) ) {
|
794 |
-
|
795 |
-
// This is our theme
|
796 |
-
// Step6->Let's get version of the local theme installed
|
797 |
-
$local_version = $theme_object->get( 'Version' );
|
798 |
-
|
799 |
-
// Step7->Let's get the latest version of this theme, page URL and download URL from our repository
|
800 |
-
$repository_version = $simplified_available_themes [$theme_slug] ['version'];
|
801 |
-
$theme_page_url = $simplified_available_themes [$theme_slug] ['theme_page_url'];
|
802 |
-
$theme_download_url = $simplified_available_themes [$theme_slug] ['url'];
|
803 |
-
|
804 |
-
// Step8->Let's compare the version
|
805 |
-
if ( version_compare( $repository_version, $local_version, '>' ) ) {
|
806 |
-
|
807 |
-
// Update available for this theme
|
808 |
-
// Step9-> Define download URL with site key
|
809 |
-
$package_url = WP_Installer()->append_site_key_to_download_url( $theme_download_url, $this->installer_site_key [$repo_slug], $repo_slug );
|
810 |
-
|
811 |
-
//Step10-> Assign to updates array for later accessing.
|
812 |
-
$otgs_theme_updates_available[$theme_slug] = array(
|
813 |
-
'theme' => $theme_slug,
|
814 |
-
'new_version' => $repository_version,
|
815 |
-
'url' => $theme_page_url,
|
816 |
-
'package' => $package_url
|
817 |
-
);
|
818 |
-
}
|
819 |
-
}
|
820 |
-
}
|
821 |
-
//Exited the upgrade loop for this specific theme repository
|
822 |
-
if ( !(empty($otgs_theme_updates_available)) ) {
|
823 |
-
//Has updates
|
824 |
-
update_option( $this->installer_themes_available_updates[$repo_slug], $otgs_theme_updates_available );
|
825 |
-
} else {
|
826 |
-
//No updates
|
827 |
-
delete_option( $this->installer_themes_available_updates[$repo_slug] );
|
828 |
-
}
|
829 |
-
|
830 |
-
}
|
831 |
-
}
|
832 |
-
}
|
833 |
-
}
|
834 |
-
|
835 |
-
/** When the user is on Themes install page OTG themes repository, let's the currently selected tab */
|
836 |
-
public function installer_theme_add_query_arg_tab( $url, $path, $blog_id = null ) {
|
837 |
-
|
838 |
-
$wp_install_string = 'update.php?action=install-theme';
|
839 |
-
if ( $path == $wp_install_string ) {
|
840 |
-
if ( isset($this->installer_theme_active_tab) ) {
|
841 |
-
if ( !(empty($this->installer_theme_active_tab)) ) {
|
842 |
-
$url = add_query_arg( array(
|
843 |
-
'theme_repo' => $this->installer_theme_active_tab
|
844 |
-
), $url );
|
845 |
-
}
|
846 |
-
}
|
847 |
-
}
|
848 |
-
return $url;
|
849 |
-
}
|
850 |
-
|
851 |
-
/** Save frontend theme tab selected */
|
852 |
-
public function installer_theme_frontend_selected_tab() {
|
853 |
-
if ( isset($_POST["frontend_tab_selected"]) ) {
|
854 |
-
check_ajax_referer( 'installer_theme_frontend_selected_tab', 'installer_theme_frontend_selected_tab_nonce' );
|
855 |
-
|
856 |
-
//Client_side_active_tab
|
857 |
-
$frontend_tab_selected = sanitize_text_field( $_POST['frontend_tab_selected'] );
|
858 |
-
if ( !(empty($frontend_tab_selected)) ) {
|
859 |
-
//Front end tab selected
|
860 |
-
update_option( 'wp_installer_clientside_active_tab', $frontend_tab_selected, false );
|
861 |
-
|
862 |
-
//Check for registration status
|
863 |
-
if ( isset($this->theme_user_registration[$frontend_tab_selected]) ) {
|
864 |
-
//Set
|
865 |
-
if ( !($this->theme_user_registration[$frontend_tab_selected]) ) {
|
866 |
-
//Not registered yet
|
867 |
-
|
868 |
-
if ( is_multisite() ) {
|
869 |
-
$admin_url_passed = network_admin_url();
|
870 |
-
} else {
|
871 |
-
$admin_url_passed = admin_url();
|
872 |
-
}
|
873 |
-
|
874 |
-
$registration_url = $admin_url_passed . 'plugin-install.php?tab=commercial#installer_repo_' . $frontend_tab_selected;
|
875 |
-
|
876 |
-
//Message and link
|
877 |
-
$theme_repo_name = $this->installer_theme_get_repo_product_name( $frontend_tab_selected );;
|
878 |
-
$response['unregistered_messages'] = sprintf( __( 'To install and update %s, please %sregister%s %s for this site.', 'installer' ),
|
879 |
-
$theme_repo_name, '<a href="' . $registration_url . '">', '</a>', $theme_repo_name );
|
880 |
-
|
881 |
-
}
|
882 |
-
}
|
883 |
-
|
884 |
-
$response['output'] = $frontend_tab_selected;
|
885 |
-
echo json_encode( $response );
|
886 |
-
}
|
887 |
-
die();
|
888 |
-
}
|
889 |
-
die();
|
890 |
-
}
|
891 |
-
|
892 |
-
/** Installer loaded aux hooks */
|
893 |
-
public function installer_theme_loaded_hooks() {
|
894 |
-
|
895 |
-
if ( isset($this->installer_theme_subscription_type) ) {
|
896 |
-
$subscription_type = intval( $this->installer_theme_subscription_type );
|
897 |
-
if ( $subscription_type > 0 ) {
|
898 |
-
//Client is subscribed
|
899 |
-
add_filter( 'installer_theme_get_themes', array($this, 'installer_theme_filter_themes_by_subscription'), 10, 2 );
|
900 |
-
}
|
901 |
-
}
|
902 |
-
|
903 |
-
}
|
904 |
-
|
905 |
-
/** Get themes by subscription type */
|
906 |
-
protected function installer_theme_get_themes_by_subscription( $subscription_type, $repo ) {
|
907 |
-
|
908 |
-
$themes_associated_with_subscription = array();
|
909 |
-
if ( isset(WP_Installer()->settings['repositories'][$repo]['data']['packages']) ) {
|
910 |
-
//Set
|
911 |
-
$packages = WP_Installer()->settings['repositories'][$repo]['data']['packages'];
|
912 |
-
$available_themes_subscription = array();
|
913 |
-
foreach ( $packages as $package_id => $package_details ) {
|
914 |
-
if ( isset($package_details['products']) ) {
|
915 |
-
$the_products = $package_details['products'];
|
916 |
-
foreach ( $the_products as $product_slug => $product_details ) {
|
917 |
-
if ( isset($product_details['subscription_type']) ) {
|
918 |
-
$subscription_type_from_settings = intval( $product_details['subscription_type'] );
|
919 |
-
if ( $subscription_type_from_settings == $subscription_type ) {
|
920 |
-
//We found the subscription
|
921 |
-
if ( isset($product_details['themes']) ) {
|
922 |
-
$themes_associated_with_subscription = $product_details['themes'];
|
923 |
-
return $themes_associated_with_subscription;
|
924 |
-
}
|
925 |
-
}
|
926 |
-
}
|
927 |
-
|
928 |
-
}
|
929 |
-
}
|
930 |
-
}
|
931 |
-
}
|
932 |
-
return $themes_associated_with_subscription;
|
933 |
-
}
|
934 |
-
|
935 |
-
/** Filter API theme response according to user subscription */
|
936 |
-
public function installer_theme_filter_themes_by_subscription( $themes, $active_tab ) {
|
937 |
-
|
938 |
-
//Step1, we only filter OTGS themes
|
939 |
-
$orig = is_array( $themes ) ? count( $themes ) : 0;
|
940 |
-
if ( in_array( $active_tab, $this->theme_repo ) ) {
|
941 |
-
//OTGS Theme
|
942 |
-
//Step2, we retrieved the available themes based on client subscription
|
943 |
-
if ( isset($this->installer_themes[$active_tab]) ) {
|
944 |
-
$available_themes = $this->installer_themes[$active_tab];
|
945 |
-
//Step3, we filter $themes based on this info
|
946 |
-
if ( (is_array( $themes )) && (!(empty($themes))) ) {
|
947 |
-
foreach ( $themes as $k => $theme ) {
|
948 |
-
//Step4, get theme slug
|
949 |
-
if ( isset($theme['slug']) ) {
|
950 |
-
$theme_slug = $theme['slug'];
|
951 |
-
if ( !(empty($theme_slug)) ) {
|
952 |
-
if ( !(in_array( $theme_slug, $available_themes )) ) {
|
953 |
-
//This theme is not in available themes
|
954 |
-
unset($themes[$k]);
|
955 |
-
}
|
956 |
-
}
|
957 |
-
}
|
958 |
-
}
|
959 |
-
}
|
960 |
-
}
|
961 |
-
}
|
962 |
-
$new = is_array( $themes ) ? count( $themes ) : 0;
|
963 |
-
if ( $orig != $new ) {
|
964 |
-
//It is filtered
|
965 |
-
$themes = array_values( $themes );
|
966 |
-
}
|
967 |
-
|
968 |
-
return $themes;
|
969 |
-
}
|
970 |
-
|
971 |
-
/** Hook to wp_loaded, fires when all Installer theme class is ready */
|
972 |
-
public function installer_themes_support_set_up_func() {
|
973 |
-
do_action( 'installer_themes_support_set_up' );
|
974 |
-
}
|
975 |
-
|
976 |
-
}
|
977 |
-
|
978 |
-
/** Instantiate Installer Theme Class */
|
979 |
-
new Installer_Theme_Class;
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
vendor/otgs/installer/includes/class-installer-upgrader-skins.php
DELETED
@@ -1,38 +0,0 @@
|
|
1 |
-
<?php
|
2 |
-
|
3 |
-
class Installer_Upgrader_Skins extends WP_Upgrader_Skin {
|
4 |
-
|
5 |
-
function __construct( $args = array() ) {
|
6 |
-
$defaults = array( 'url' => '', 'nonce' => '', 'title' => '', 'context' => false );
|
7 |
-
$this->options = wp_parse_args( $args, $defaults );
|
8 |
-
}
|
9 |
-
|
10 |
-
function header() {
|
11 |
-
|
12 |
-
}
|
13 |
-
|
14 |
-
function footer() {
|
15 |
-
|
16 |
-
}
|
17 |
-
|
18 |
-
function error( $error ) {
|
19 |
-
$this->installer_error = $error;
|
20 |
-
}
|
21 |
-
|
22 |
-
function add_strings() {
|
23 |
-
|
24 |
-
}
|
25 |
-
|
26 |
-
function feedback( $string ) {
|
27 |
-
|
28 |
-
}
|
29 |
-
|
30 |
-
function before() {
|
31 |
-
|
32 |
-
}
|
33 |
-
|
34 |
-
function after() {
|
35 |
-
|
36 |
-
}
|
37 |
-
|
38 |
-
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
vendor/otgs/installer/includes/class-otgs-installer-filename-hooks.php
DELETED
@@ -1,33 +0,0 @@
|
|
1 |
-
<?php
|
2 |
-
|
3 |
-
class OTGS_Installer_Filename_Hooks {
|
4 |
-
|
5 |
-
/**
|
6 |
-
* @var OTGS_Installer_PHP_Functions
|
7 |
-
*/
|
8 |
-
private $built_in_functions;
|
9 |
-
|
10 |
-
public function __construct( OTGS_Installer_PHP_Functions $built_in_functions ) {
|
11 |
-
$this->built_in_functions = $built_in_functions;
|
12 |
-
}
|
13 |
-
|
14 |
-
public function add_hooks() {
|
15 |
-
if ( in_array( $this->built_in_functions->constant( 'PHP_OS' ), array( 'WIN32', 'WINNT', 'Windows' ), true ) ) {
|
16 |
-
add_filter( 'wp_unique_filename', array( $this, 'fix_filename_for_win' ), 10, 3 );
|
17 |
-
}
|
18 |
-
}
|
19 |
-
|
20 |
-
/**
|
21 |
-
* @param string $filename
|
22 |
-
* @param string $ext
|
23 |
-
* @param string $dir
|
24 |
-
*
|
25 |
-
* @return string
|
26 |
-
*/
|
27 |
-
public function fix_filename_for_win( $filename, $ext, $dir ) {
|
28 |
-
if ( $dir === get_temp_dir() ) {
|
29 |
-
return md5( $filename . $this->built_in_functions->time() ) . 'tmp';
|
30 |
-
}
|
31 |
-
return $filename;
|
32 |
-
}
|
33 |
-
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
vendor/otgs/installer/includes/class-otgs-installer-icons.php
DELETED
@@ -1,45 +0,0 @@
|
|
1 |
-
<?php
|
2 |
-
|
3 |
-
class OTGS_Installer_Icons {
|
4 |
-
|
5 |
-
/**
|
6 |
-
* @var WP_Installer
|
7 |
-
*/
|
8 |
-
private $installer;
|
9 |
-
|
10 |
-
/**
|
11 |
-
* @var array
|
12 |
-
*/
|
13 |
-
private $products_map;
|
14 |
-
|
15 |
-
public function __construct( WP_Installer $installer ) {
|
16 |
-
$this->installer = $installer;
|
17 |
-
}
|
18 |
-
|
19 |
-
public function add_hooks() {
|
20 |
-
add_filter( 'otgs_installer_upgrade_check_response', array( $this, 'add_icons_on_response' ), 10, 3 );
|
21 |
-
}
|
22 |
-
|
23 |
-
/**
|
24 |
-
* @param stdClass $response
|
25 |
-
* @param string $plugin_id
|
26 |
-
*
|
27 |
-
* @return stdClass
|
28 |
-
*/
|
29 |
-
public function add_icons_on_response( $response, $plugin_id, $repository ) {
|
30 |
-
$product = isset( $this->installer->settings['repositories'][ $repository ]['data']['products-map'][ $plugin_id ] )
|
31 |
-
? $this->installer->settings['repositories'][ $repository ]['data']['products-map'][ $plugin_id ]
|
32 |
-
: '';
|
33 |
-
|
34 |
-
if ( $product ) {
|
35 |
-
$base = $this->installer->plugin_url() . '/vendor/otgs/icons/plugin-icons/' . $repository . '/' . $product . '/icon';
|
36 |
-
$response->icons = array(
|
37 |
-
'svg' => $base . '.svg',
|
38 |
-
'1x' => $base . '.png',
|
39 |
-
'2x' => $base . '.png',
|
40 |
-
);
|
41 |
-
}
|
42 |
-
|
43 |
-
return $response;
|
44 |
-
}
|
45 |
-
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
vendor/otgs/installer/includes/class-otgs-installer-php-functions.php
DELETED
@@ -1,29 +0,0 @@
|
|
1 |
-
<?php
|
2 |
-
|
3 |
-
class OTGS_Installer_PHP_Functions {
|
4 |
-
|
5 |
-
/**
|
6 |
-
* @param string $constant_name
|
7 |
-
*
|
8 |
-
* @return bool
|
9 |
-
*/
|
10 |
-
public function defined( $constant_name ) {
|
11 |
-
return defined( $constant_name );
|
12 |
-
}
|
13 |
-
|
14 |
-
/**
|
15 |
-
* @param string $constant_name
|
16 |
-
*
|
17 |
-
* @return string|int|null
|
18 |
-
*/
|
19 |
-
public function constant( $constant_name ) {
|
20 |
-
return $this->defined( $constant_name ) ? constant( $constant_name ) : null;
|
21 |
-
}
|
22 |
-
|
23 |
-
/**
|
24 |
-
* @return int
|
25 |
-
*/
|
26 |
-
public function time() {
|
27 |
-
return time();
|
28 |
-
}
|
29 |
-
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
vendor/otgs/installer/includes/class-otgs-installer-plugins-page-notice.php
DELETED
@@ -1,118 +0,0 @@
|
|
1 |
-
<?php
|
2 |
-
|
3 |
-
class OTGS_Installer_Plugins_Page_Notice {
|
4 |
-
|
5 |
-
const TEMPLATE = 'plugins-page';
|
6 |
-
const DISPLAY_SUBSCRIPTION_NOTICE_KEY = 'display_subscription_notice';
|
7 |
-
const DISPLAY_SETTING_NOTICE_KEY = 'display_setting_notice';
|
8 |
-
|
9 |
-
private $plugins = array();
|
10 |
-
|
11 |
-
/**
|
12 |
-
* @var OTGS_Installer_Twig_Template_Service
|
13 |
-
*/
|
14 |
-
private $template_service;
|
15 |
-
|
16 |
-
/**
|
17 |
-
* @var OTGS_Installer_WP_Share_Local_Components_Setting
|
18 |
-
*/
|
19 |
-
private $setting;
|
20 |
-
|
21 |
-
public function __construct( OTGS_Installer_Twig_Template_Service $template_service, OTGS_Installer_WP_Share_Local_Components_Setting $setting ) {
|
22 |
-
$this->template_service = $template_service;
|
23 |
-
$this->setting = $setting;
|
24 |
-
}
|
25 |
-
|
26 |
-
public function add_hooks() {
|
27 |
-
foreach ( $this->get_plugins() as $plugin_id => $plugin_data ) {
|
28 |
-
add_action( 'after_plugin_row_' . $plugin_id, array(
|
29 |
-
$this,
|
30 |
-
'show_purchase_notice_under_plugin'
|
31 |
-
), 10, 3 );
|
32 |
-
}
|
33 |
-
}
|
34 |
-
|
35 |
-
/**
|
36 |
-
* @return array
|
37 |
-
*/
|
38 |
-
public function get_plugins() {
|
39 |
-
return $this->plugins;
|
40 |
-
}
|
41 |
-
|
42 |
-
public function add_plugin( $plugin_id, $plugin_data ) {
|
43 |
-
$this->plugins[ $plugin_id ] = $plugin_data;
|
44 |
-
}
|
45 |
-
|
46 |
-
/**
|
47 |
-
* @param string $plugin_file
|
48 |
-
* @param array $plugin_data
|
49 |
-
* @param string $status
|
50 |
-
*/
|
51 |
-
public function show_purchase_notice_under_plugin( $plugin_file, $plugin_data, $status ) {
|
52 |
-
echo $this->template_service->show( $this->get_model( $plugin_data, $plugin_file ), self::TEMPLATE );
|
53 |
-
}
|
54 |
-
|
55 |
-
/**
|
56 |
-
* @param array $plugin_data
|
57 |
-
*
|
58 |
-
* @return array
|
59 |
-
*/
|
60 |
-
private function get_model( $plugin_data, $plugin_file ) {
|
61 |
-
$wp_list_table = _get_list_table( 'WP_Plugins_List_Table' );
|
62 |
-
|
63 |
-
$tr_classes = 'plugin-update-tr';
|
64 |
-
$notice_classes = 'update-message installer-q-icon';
|
65 |
-
|
66 |
-
if ( version_compare( get_bloginfo( 'version' ), '4.6', '>=' ) ) {
|
67 |
-
$tr_classes = 'plugin-update-tr installer-plugin-update-tr';
|
68 |
-
$notice_classes = 'notice inline notice-warning notice-alt';
|
69 |
-
}
|
70 |
-
|
71 |
-
if ( is_multisite() ) {
|
72 |
-
if ( is_network_admin() ) {
|
73 |
-
$menu_url = network_admin_url( 'plugin-install.php?tab=commercial' );
|
74 |
-
} else {
|
75 |
-
$menu_url = admin_url( 'options-general.php?page=installer' );
|
76 |
-
}
|
77 |
-
} else {
|
78 |
-
$menu_url = admin_url( 'plugin-install.php?tab=commercial' );
|
79 |
-
}
|
80 |
-
|
81 |
-
$plugin_name = false !== strpos( $plugin_data['Name'], 'WPML' ) ? 'WPML' : 'Toolset';
|
82 |
-
$plugin_site = 'wpml.org';
|
83 |
-
|
84 |
-
if ( 'Toolset' === $plugin_name ) {
|
85 |
-
$plugin_site = 'wp-types.com';
|
86 |
-
}
|
87 |
-
|
88 |
-
$repo = strtolower( $plugin_name );
|
89 |
-
|
90 |
-
return array(
|
91 |
-
'strings' => array(
|
92 |
-
'valid_subscription' => sprintf( __( 'You must have a valid subscription in order to get upgrades or support for this plugin. %sPurchase a subscription or enter an existing site key%s.', 'installer' ),
|
93 |
-
'<a href="' . $menu_url . '">', '</a>' ),
|
94 |
-
'send_report' => sprintf( __( '%1$s can report to your %2$s account which theme and plugins you are using. This information allows us to give you more accurate and faster support.', 'installer' ),
|
95 |
-
$plugin_name,
|
96 |
-
'<a target="_blank" href="' . $plugin_data['PluginURI'] . '">' . $plugin_site . '</a>'
|
97 |
-
),
|
98 |
-
),
|
99 |
-
'css' => array(
|
100 |
-
'tr_classes' => $tr_classes,
|
101 |
-
'notice_classes' => $notice_classes,
|
102 |
-
),
|
103 |
-
'col_count' => $wp_list_table->get_column_count(),
|
104 |
-
'nonce' => array(
|
105 |
-
'action' => OTGS_Installer_WP_Components_Setting_Ajax::AJAX_ACTION,
|
106 |
-
'value' => wp_create_nonce( OTGS_Installer_WP_Components_Setting_Ajax::AJAX_ACTION ),
|
107 |
-
),
|
108 |
-
'repo' => $repo,
|
109 |
-
'repo_checked' => checked( $this->setting->is_repo_allowed( $repo ), true, false ),
|
110 |
-
'should_display_subscription_notice' => isset( $this->plugins[ $plugin_file ][ self::DISPLAY_SUBSCRIPTION_NOTICE_KEY ] )
|
111 |
-
? $this->plugins[ $plugin_file ][ self::DISPLAY_SUBSCRIPTION_NOTICE_KEY ]
|
112 |
-
: false,
|
113 |
-
'should_display_setting_notice' => isset( $this->plugins[ $plugin_file ][ self::DISPLAY_SETTING_NOTICE_KEY ] )
|
114 |
-
? $this->plugins[ $plugin_file ][ self::DISPLAY_SETTING_NOTICE_KEY ]
|
115 |
-
: false,
|
116 |
-
);
|
117 |
-
}
|
118 |
-
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
vendor/otgs/installer/includes/class-otgs-installer-wp-components-hooks.php
DELETED
@@ -1,65 +0,0 @@
|
|
1 |
-
<?php
|
2 |
-
|
3 |
-
class OTGS_Installer_WP_Components_Hooks {
|
4 |
-
|
5 |
-
const EVENT_HOOK = 'otgs_send_components_data';
|
6 |
-
|
7 |
-
/**
|
8 |
-
* @var OTGS_Installer_WP_Components_Storage
|
9 |
-
*/
|
10 |
-
private $storage;
|
11 |
-
|
12 |
-
/**
|
13 |
-
* @var OTGS_Installer_WP_Components_Sender
|
14 |
-
*/
|
15 |
-
private $sender;
|
16 |
-
|
17 |
-
/**
|
18 |
-
* @var OTGS_Installer_WP_Share_Local_Components_Setting
|
19 |
-
*/
|
20 |
-
private $setting;
|
21 |
-
|
22 |
-
public function __construct(
|
23 |
-
OTGS_Installer_WP_Components_Storage $storage,
|
24 |
-
OTGS_Installer_WP_Components_Sender $sender,
|
25 |
-
OTGS_Installer_WP_Share_Local_Components_Setting $setting
|
26 |
-
) {
|
27 |
-
$this->storage = $storage;
|
28 |
-
$this->sender = $sender;
|
29 |
-
$this->setting = $setting;
|
30 |
-
}
|
31 |
-
|
32 |
-
public function add_hooks() {
|
33 |
-
add_action( self::EVENT_HOOK, array( $this, 'send_components_data' ) );
|
34 |
-
add_action( 'init', array( $this, 'schedule_components_report' ) );
|
35 |
-
add_filter( 'installer_fetch_subscription_data_request', array( $this, 'add_components_into_subscription_request' ) );
|
36 |
-
}
|
37 |
-
|
38 |
-
public function schedule_components_report() {
|
39 |
-
if ( ! wp_next_scheduled( self::EVENT_HOOK ) ) {
|
40 |
-
wp_schedule_single_event( strtotime( '+1 week' ), self::EVENT_HOOK );
|
41 |
-
}
|
42 |
-
}
|
43 |
-
|
44 |
-
public function send_components_data() {
|
45 |
-
if ( $this->storage->is_outdated() ) {
|
46 |
-
$this->storage->refresh_cache();
|
47 |
-
$this->sender->send( $this->storage->get() );
|
48 |
-
}
|
49 |
-
}
|
50 |
-
|
51 |
-
/**
|
52 |
-
* @param array $args
|
53 |
-
*
|
54 |
-
* @return array
|
55 |
-
*/
|
56 |
-
public function add_components_into_subscription_request( $args ) {
|
57 |
-
if ( isset( $args['body']['repository_id'] ) && $this->setting->is_repo_allowed( $args['body']['repository_id'] ) ) {
|
58 |
-
$this->storage->refresh_cache();
|
59 |
-
$args['body']['components'] = $this->storage->get();
|
60 |
-
$args['body']['phpversion'] = phpversion();
|
61 |
-
}
|
62 |
-
|
63 |
-
return $args;
|
64 |
-
}
|
65 |
-
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
vendor/otgs/installer/includes/class-otgs-installer-wp-components-sender.php
DELETED
@@ -1,47 +0,0 @@
|
|
1 |
-
<?php
|
2 |
-
|
3 |
-
class OTGS_Installer_WP_Components_Sender {
|
4 |
-
|
5 |
-
/**
|
6 |
-
* @var WP_Installer
|
7 |
-
*/
|
8 |
-
private $installer;
|
9 |
-
|
10 |
-
/**
|
11 |
-
* @var OTGS_Installer_WP_Share_Local_Components_Setting
|
12 |
-
*/
|
13 |
-
private $settings;
|
14 |
-
|
15 |
-
public function __construct( WP_Installer $installer, OTGS_Installer_WP_Share_Local_Components_Setting $settings ) {
|
16 |
-
$this->installer = $installer;
|
17 |
-
$this->settings = $settings;
|
18 |
-
}
|
19 |
-
|
20 |
-
public function send( array $components ) {
|
21 |
-
|
22 |
-
if ( ! $this->installer->get_repositories() ) {
|
23 |
-
$this->installer->load_repositories_list();
|
24 |
-
}
|
25 |
-
|
26 |
-
if ( ! $this->installer->get_settings() ) {
|
27 |
-
$this->installer->save_settings();
|
28 |
-
}
|
29 |
-
|
30 |
-
foreach ( $this->installer->get_repositories() as $key => $repository ) {
|
31 |
-
if ( $this->settings->is_repo_allowed( $key ) ) {
|
32 |
-
wp_remote_post(
|
33 |
-
$repository['api-url'] . '?action=update_site_components',
|
34 |
-
apply_filters( 'installer_fetch_components_data_request', array(
|
35 |
-
'body' => array(
|
36 |
-
'action' => 'update_site_components',
|
37 |
-
'site_key' => $this->installer->get_site_key( $key ),
|
38 |
-
'site_url' => get_site_url(),
|
39 |
-
'components' => $components,
|
40 |
-
'phpversion' => phpversion(),
|
41 |
-
),
|
42 |
-
) )
|
43 |
-
);
|
44 |
-
}
|
45 |
-
}
|
46 |
-
}
|
47 |
-
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
vendor/otgs/installer/includes/class-otgs-installer-wp-components-setting-ajax.php
DELETED
@@ -1,46 +0,0 @@
|
|
1 |
-
<?php
|
2 |
-
|
3 |
-
class OTGS_Installer_WP_Components_Setting_Ajax {
|
4 |
-
|
5 |
-
const AJAX_ACTION = 'otgs_save_setting_share_local_components';
|
6 |
-
|
7 |
-
/**
|
8 |
-
* @var OTGS_Installer_WP_Share_Local_Components_Setting
|
9 |
-
*/
|
10 |
-
private $setting;
|
11 |
-
|
12 |
-
/**
|
13 |
-
* @var WP_Installer
|
14 |
-
*/
|
15 |
-
private $installer;
|
16 |
-
|
17 |
-
public function __construct( OTGS_Installer_WP_Share_Local_Components_Setting $setting, WP_Installer $installer ) {
|
18 |
-
$this->setting = $setting;
|
19 |
-
$this->installer = $installer;
|
20 |
-
}
|
21 |
-
|
22 |
-
public function add_hooks() {
|
23 |
-
add_action( 'wp_ajax_' . self::AJAX_ACTION, array( $this, 'save' ) );
|
24 |
-
}
|
25 |
-
|
26 |
-
public function save() {
|
27 |
-
if ( $this->is_valid_request() ) {
|
28 |
-
$user_agree = (int) filter_var( $_POST['agree'], FILTER_SANITIZE_FULL_SPECIAL_CHARS );
|
29 |
-
$repo_request = filter_var( $_POST['repo'], FILTER_SANITIZE_FULL_SPECIAL_CHARS );
|
30 |
-
$repos = array();
|
31 |
-
foreach ( $this->installer->get_repositories() as $repo_id => $repository ) {
|
32 |
-
if ( $repo_id === $repo_request ) {
|
33 |
-
$repos[ $repo_id ] = $user_agree;
|
34 |
-
}
|
35 |
-
}
|
36 |
-
$this->setting->save( $repos );
|
37 |
-
}
|
38 |
-
}
|
39 |
-
|
40 |
-
/**
|
41 |
-
* @return bool
|
42 |
-
*/
|
43 |
-
private function is_valid_request() {
|
44 |
-
return isset( $_POST['nonce'] ) && wp_verify_nonce( $_POST['nonce'], self::AJAX_ACTION );
|
45 |
-
}
|
46 |
-
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
vendor/otgs/installer/includes/class-otgs-installer-wp-components-setting-resources.php
DELETED
@@ -1,31 +0,0 @@
|
|
1 |
-
<?php
|
2 |
-
|
3 |
-
class OTGS_Installer_WP_Components_Setting_Resources {
|
4 |
-
|
5 |
-
/**
|
6 |
-
* @var WP_Installer
|
7 |
-
*/
|
8 |
-
private $installer;
|
9 |
-
|
10 |
-
public function __construct( WP_Installer $installer ) {
|
11 |
-
$this->installer = $installer;
|
12 |
-
}
|
13 |
-
|
14 |
-
public function add_hooks() {
|
15 |
-
add_action( 'admin_enqueue_scripts', array( $this, 'enqueue_resources' ) );
|
16 |
-
}
|
17 |
-
|
18 |
-
public function enqueue_resources() {
|
19 |
-
wp_enqueue_style( 'otgs-installer-tooltip', $this->installer->res_url() . '/res/css/tooltip/tooltip.css', array( 'wp-pointer' ), WP_INSTALLER_VERSION );
|
20 |
-
wp_enqueue_script( 'otgs-installer-tooltip', $this->installer->res_url() . '/res/js/tooltip/tooltip.js', array(
|
21 |
-
'wp-pointer',
|
22 |
-
'jquery'
|
23 |
-
), WP_INSTALLER_VERSION );
|
24 |
-
wp_enqueue_script(
|
25 |
-
'otgs-installer-components-save-setting',
|
26 |
-
$this->installer->res_url() . '/res/js/save-components-setting.js',
|
27 |
-
array(),
|
28 |
-
WP_INSTALLER_VERSION
|
29 |
-
);
|
30 |
-
}
|
31 |
-
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
vendor/otgs/installer/includes/class-otgs-installer-wp-components-setting-templates.php
DELETED
@@ -1,83 +0,0 @@
|
|
1 |
-
<?php
|
2 |
-
|
3 |
-
class OTGS_Installer_WP_Components_Setting_Templates {
|
4 |
-
|
5 |
-
const COMMERCIAL_TAB_TEMPLATE = 'commercial-tab';
|
6 |
-
const NOTICE_TEMPLATE = 'notice';
|
7 |
-
|
8 |
-
/**
|
9 |
-
* @var IOTGS_Installer_Template_Service
|
10 |
-
*/
|
11 |
-
private $template_service;
|
12 |
-
|
13 |
-
public function __construct( IOTGS_Installer_Template_Service $template_service ) {
|
14 |
-
$this->template_service = $template_service;
|
15 |
-
}
|
16 |
-
|
17 |
-
/**
|
18 |
-
* @param string $site_url
|
19 |
-
* @param string $site_name
|
20 |
-
*/
|
21 |
-
public function render_commercial( $site_url, $site_name, $repo_id ) {
|
22 |
-
echo $this->template_service->show( $this->get_commercial_tab_model( $site_url, $site_name, $repo_id ), self::COMMERCIAL_TAB_TEMPLATE );
|
23 |
-
}
|
24 |
-
|
25 |
-
/**
|
26 |
-
* @param array $sites
|
27 |
-
*/
|
28 |
-
public function render_notice( $sites ) {
|
29 |
-
echo $this->template_service->show( $this->get_notice_model( $sites ), self::NOTICE_TEMPLATE );
|
30 |
-
}
|
31 |
-
|
32 |
-
/**
|
33 |
-
* @param string $site_url
|
34 |
-
* @param string $site_name
|
35 |
-
* @param string $repo_id
|
36 |
-
*
|
37 |
-
* @return array
|
38 |
-
*/
|
39 |
-
private function get_commercial_tab_model( $site_url, $site_name, $repo_id ) {
|
40 |
-
return array(
|
41 |
-
'strings' => array(
|
42 |
-
'message' => sprintf( __( 'Keep %s up-to-date about which theme and plugins I use', 'installer' ), $site_url ),
|
43 |
-
'stop_sending' => sprintf(
|
44 |
-
__( 'If you ever want to stop sending the information about active plugins and theme to %1$s, please visit the Plugins admin screen. You will see a checkbox to control this in %2$s plugin section.', 'installer' ),
|
45 |
-
$site_url,
|
46 |
-
$site_name
|
47 |
-
),
|
48 |
-
'tooltip' => sprintf(
|
49 |
-
__( 'Almost always, %s support team can help you resolve issues faster and better when we know which theme and plugin you use. When this option is selected, we will include this information in your %s account profile (which only you and %s support can access) and update it as needed.', 'installer' ),
|
50 |
-
$site_name,
|
51 |
-
$site_url,
|
52 |
-
$site_name
|
53 |
-
),
|
54 |
-
),
|
55 |
-
'repo_id' => $repo_id,
|
56 |
-
);
|
57 |
-
}
|
58 |
-
|
59 |
-
/**
|
60 |
-
* @param array $site_names
|
61 |
-
*
|
62 |
-
* @return array
|
63 |
-
*/
|
64 |
-
private function get_notice_model( array $site_names ) {
|
65 |
-
$model = array(
|
66 |
-
'strings' => array(
|
67 |
-
'title' => sprintf( __( 'Want faster support for %s?', 'installer' ), implode( $site_names, '' ) ),
|
68 |
-
'message' => sprintf( __( '%s plugin can report to your wpml.org account which theme and plugins you are using. This information allows us to give you more accurate and faster support.', 'installer' ), implode( $site_names, '' ) ),
|
69 |
-
),
|
70 |
-
);
|
71 |
-
|
72 |
-
if ( 2 === count( $site_names ) ) {
|
73 |
-
$model['strings']['title'] = __( 'Want faster support for WPML and Toolset?', 'installer' );
|
74 |
-
$model['strings']['message'] = __( 'WPML and Toolset plugins can report to your wpml.org and wp-types.com accounts which theme and plugins you are using. This information allows us to give you more accurate and faster support.', 'installer' );
|
75 |
-
}
|
76 |
-
|
77 |
-
$model['strings']['agree'] = __( "I'm in", 'installer' );
|
78 |
-
$model['strings']['disagree'] = __( 'No thanks', 'installer' );
|
79 |
-
$model['strings']['tell_me_more'] = __( 'Tell me more', 'installer' );
|
80 |
-
|
81 |
-
return $model;
|
82 |
-
}
|
83 |
-
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
vendor/otgs/installer/includes/class-otgs-installer-wp-components-storage.php
DELETED
@@ -1,74 +0,0 @@
|
|
1 |
-
<?php
|
2 |
-
|
3 |
-
class OTGS_Installer_WP_Components_Storage {
|
4 |
-
|
5 |
-
const COMPONENTS_CACHE_OPTION_KEY = 'otgs_active_components';
|
6 |
-
|
7 |
-
public function refresh_cache() {
|
8 |
-
$active_theme = wp_get_theme();
|
9 |
-
$installed_plugins = get_plugins();
|
10 |
-
$components = array();
|
11 |
-
|
12 |
-
foreach ( $installed_plugins as $file => $plugin ) {
|
13 |
-
if ( is_plugin_active( $file ) ) {
|
14 |
-
$components['plugin'][] = array(
|
15 |
-
'File' => $file,
|
16 |
-
'Name' => $plugin['Name'],
|
17 |
-
'Version' => $plugin['Version'],
|
18 |
-
);
|
19 |
-
}
|
20 |
-
}
|
21 |
-
|
22 |
-
$components['theme'][] = array(
|
23 |
-
'Template' => $active_theme->get_template(),
|
24 |
-
'Name' => $active_theme->get( 'Name' ),
|
25 |
-
'Version' => $active_theme->get( 'Version' ),
|
26 |
-
);
|
27 |
-
|
28 |
-
update_option( self::COMPONENTS_CACHE_OPTION_KEY, $components );
|
29 |
-
}
|
30 |
-
|
31 |
-
public function is_outdated() {
|
32 |
-
$components = $this->get();
|
33 |
-
$current_theme = wp_get_theme();
|
34 |
-
$active_plugins = get_option( 'active_plugins' );
|
35 |
-
|
36 |
-
if ( ! function_exists( 'get_plugins' ) ) {
|
37 |
-
require_once ABSPATH . 'wp-admin/includes/plugin.php';
|
38 |
-
}
|
39 |
-
|
40 |
-
$installed_plugins = get_plugins();
|
41 |
-
|
42 |
-
if ( isset( $components['theme'] ) ) {
|
43 |
-
if ( $components['theme'][0]['Template'] !== $current_theme->get_template() ||
|
44 |
-
$components['theme'][0]['Version'] !== $current_theme->get( 'Version' )
|
45 |
-
) {
|
46 |
-
return true;
|
47 |
-
}
|
48 |
-
}
|
49 |
-
|
50 |
-
$cached_activated_plugins = wp_list_pluck( $components['plugin'], 'File' );
|
51 |
-
sort( $cached_activated_plugins );
|
52 |
-
sort( $active_plugins );
|
53 |
-
|
54 |
-
if ( $cached_activated_plugins !== $active_plugins ) {
|
55 |
-
return true;
|
56 |
-
}
|
57 |
-
|
58 |
-
if ( isset( $components['plugin'] ) ) {
|
59 |
-
foreach ( $components['plugin'] as $plugin ) {
|
60 |
-
if ( $plugin['Version'] !== $installed_plugins[ $plugin['File'] ]['Version'] ||
|
61 |
-
! is_plugin_active( $plugin['File'] )
|
62 |
-
) {
|
63 |
-
return true;
|
64 |
-
}
|
65 |
-
}
|
66 |
-
}
|
67 |
-
|
68 |
-
return false;
|
69 |
-
}
|
70 |
-
|
71 |
-
public function get() {
|
72 |
-
return get_option( self::COMPONENTS_CACHE_OPTION_KEY );
|
73 |
-
}
|
74 |
-
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
vendor/otgs/installer/includes/class-otgs-installer-wp-share-local-components-setting.php
DELETED
@@ -1,27 +0,0 @@
|
|
1 |
-
<?php
|
2 |
-
|
3 |
-
class OTGS_Installer_WP_Share_Local_Components_Setting {
|
4 |
-
|
5 |
-
const OPTION_KEY = 'otgs_share_local_components';
|
6 |
-
|
7 |
-
public function save( array $repos ) {
|
8 |
-
$settings = array_merge( $this->get(), $repos );
|
9 |
-
update_option( self::OPTION_KEY, $settings );
|
10 |
-
}
|
11 |
-
|
12 |
-
/**
|
13 |
-
* @param string $repo
|
14 |
-
*
|
15 |
-
* @return bool
|
16 |
-
*/
|
17 |
-
public function is_repo_allowed( $repo ) {
|
18 |
-
$allowed_repos = $this->get();
|
19 |
-
|
20 |
-
return isset( $allowed_repos[ $repo ] ) && $allowed_repos[ $repo ];
|
21 |
-
}
|
22 |
-
|
23 |
-
private function get() {
|
24 |
-
$setting = get_option( self::OPTION_KEY );
|
25 |
-
return $setting ? $setting : array();
|
26 |
-
}
|
27 |
-
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
vendor/otgs/installer/includes/class-translation-service-info.php
DELETED
@@ -1,40 +0,0 @@
|
|
1 |
-
<?php
|
2 |
-
|
3 |
-
class Translation_Service_Info {
|
4 |
-
|
5 |
-
function __construct() {
|
6 |
-
|
7 |
-
add_action( 'installer_fetched_subscription_data', array( $this, 'save_info' ), 10, 2 );
|
8 |
-
|
9 |
-
}
|
10 |
-
|
11 |
-
function save_info( $data, $repository_id ) {
|
12 |
-
|
13 |
-
$ts_info = isset( WP_Installer()->settings['repositories'][ $repository_id ]['ts_info'] ) ?
|
14 |
-
WP_Installer()->settings['repositories'][ $repository_id ]['ts_info'] : false;
|
15 |
-
|
16 |
-
$save_settings = false;
|
17 |
-
if ( isset( $data->ts_info['preferred'] ) && empty( $ts_info['preferred'] ) ) {
|
18 |
-
WP_Installer()->settings['repositories'][ $repository_id ]['ts_info']['preferred'] = $data->ts_info['preferred'];
|
19 |
-
$save_settings = true;
|
20 |
-
}
|
21 |
-
|
22 |
-
if ( isset( $data->ts_info['referal'] ) && empty( $ts_info['referal'] ) ) {
|
23 |
-
WP_Installer()->settings['repositories'][ $repository_id ]['ts_info']['referal'] = $data->ts_info['referal'];
|
24 |
-
$save_settings = true;
|
25 |
-
}
|
26 |
-
|
27 |
-
if ( ! empty( $data->ts_info['client_id'] ) ) { // can be updated
|
28 |
-
WP_Installer()->settings['repositories'][ $repository_id ]['ts_info']['client_id'] = $data->ts_info['client_id'];
|
29 |
-
$save_settings = true;
|
30 |
-
}
|
31 |
-
|
32 |
-
if ( $save_settings ) {
|
33 |
-
WP_Installer()->save_settings();
|
34 |
-
}
|
35 |
-
|
36 |
-
}
|
37 |
-
|
38 |
-
}
|
39 |
-
|
40 |
-
new Translation_Service_Info();
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
vendor/otgs/installer/includes/class-wp-installer-api.php
DELETED
@@ -1,134 +0,0 @@
|
|
1 |
-
<?php
|
2 |
-
|
3 |
-
class WP_Installer_API{
|
4 |
-
|
5 |
-
public static function get_product_installer_link($repository_id, $package_id = false){
|
6 |
-
|
7 |
-
$menu_url = WP_Installer()->menu_url();
|
8 |
-
|
9 |
-
$url = $menu_url . '#' . $repository_id;
|
10 |
-
if($package_id){
|
11 |
-
$url .= '/' . $package_id;
|
12 |
-
}
|
13 |
-
|
14 |
-
return $url;
|
15 |
-
|
16 |
-
}
|
17 |
-
|
18 |
-
public static function get_product_price($repository_id, $package_id, $product_id, $incl_discount = false){
|
19 |
-
|
20 |
-
$price = WP_Installer()->get_product_price($repository_id, $package_id, $product_id, $incl_discount);
|
21 |
-
|
22 |
-
return $price;
|
23 |
-
}
|
24 |
-
|
25 |
-
/**
|
26 |
-
* Retrieve the preferred translation service.
|
27 |
-
*
|
28 |
-
* @since 1.6.5
|
29 |
-
*
|
30 |
-
* @param string The repository id (e.g. wpml)
|
31 |
-
* @return string The translation service id
|
32 |
-
*/
|
33 |
-
public static function get_preferred_ts($repository_id = 'wpml'){
|
34 |
-
|
35 |
-
if(isset(WP_Installer()->settings['repositories'][$repository_id]['ts_info']['preferred'])){
|
36 |
-
return WP_Installer()->settings['repositories'][$repository_id]['ts_info']['preferred'];
|
37 |
-
}
|
38 |
-
|
39 |
-
return false;
|
40 |
-
|
41 |
-
}
|
42 |
-
|
43 |
-
/**
|
44 |
-
* Set the preferred translation service.
|
45 |
-
*
|
46 |
-
* @since 1.6.5
|
47 |
-
*
|
48 |
-
* @param string The translation service id
|
49 |
-
* @param string The repository id (e.g. wpml)
|
50 |
-
*/
|
51 |
-
public static function set_preferred_ts( $value, $repository_id = 'wpml' ){
|
52 |
-
|
53 |
-
if( isset( WP_Installer()->settings['repositories'][$repository_id]['ts_info']['preferred'] ) ){
|
54 |
-
|
55 |
-
WP_Installer()->settings['repositories'][$repository_id]['ts_info']['preferred'] = $value;
|
56 |
-
|
57 |
-
WP_Installer()->save_settings();
|
58 |
-
|
59 |
-
}
|
60 |
-
|
61 |
-
}
|
62 |
-
|
63 |
-
/**
|
64 |
-
* Retrieve the referring translation service (if any)
|
65 |
-
*
|
66 |
-
* @since 1.6.5
|
67 |
-
*
|
68 |
-
* @param string The repository id (e.g. wpml)
|
69 |
-
* @return string The translation service id or false
|
70 |
-
*/
|
71 |
-
public static function get_ts_referal($repository_id = 'wpml'){
|
72 |
-
|
73 |
-
if(isset(WP_Installer()->settings['repositories'][$repository_id]['ts_info']['referal'])){
|
74 |
-
return WP_Installer()->settings['repositories'][$repository_id]['ts_info']['referal'];
|
75 |
-
}
|
76 |
-
|
77 |
-
return false;
|
78 |
-
|
79 |
-
}
|
80 |
-
|
81 |
-
/**
|
82 |
-
* Retrieve the translation services client id for a specific repository (if any)
|
83 |
-
*
|
84 |
-
* @since 1.7.9
|
85 |
-
*
|
86 |
-
* @param string The repository id (e.g. wpml)
|
87 |
-
* @return string The client id or false
|
88 |
-
*/
|
89 |
-
public static function get_ts_client_id( $repository_id = 'wpml' ){
|
90 |
-
|
91 |
-
if(isset(WP_Installer()->settings['repositories'][$repository_id]['ts_info']['client_id'])){
|
92 |
-
return WP_Installer()->settings['repositories'][$repository_id]['ts_info']['client_id'];
|
93 |
-
}
|
94 |
-
|
95 |
-
return false;
|
96 |
-
|
97 |
-
}
|
98 |
-
|
99 |
-
/**
|
100 |
-
* Retrieve the site key corresponding to a repository.
|
101 |
-
* This is a wrapper of WP_Installer::get_site_key()
|
102 |
-
* @see WP_Installer::get_site_key()
|
103 |
-
*
|
104 |
-
* @since 1.7.9
|
105 |
-
*
|
106 |
-
* @param string The repository id (e.g. wpml)
|
107 |
-
* @return string The site key (or false)
|
108 |
-
*/
|
109 |
-
public static function get_site_key( $repository_id = 'wpml' ){
|
110 |
-
|
111 |
-
return WP_Installer()->get_site_key( $repository_id );
|
112 |
-
|
113 |
-
}
|
114 |
-
|
115 |
-
/**
|
116 |
-
* Retrieve the ID of the last user who registered a repository.
|
117 |
-
*
|
118 |
-
* @since 1.7.16
|
119 |
-
*
|
120 |
-
* @param string The repository id (e.g. wpml)
|
121 |
-
* @return int The user id (or zero)
|
122 |
-
*/
|
123 |
-
public static function get_registering_user_id( $repository_id = 'wpml' ){
|
124 |
-
|
125 |
-
$user_id = 0;
|
126 |
-
if( isset( WP_Installer()->settings['repositories'][$repository_id]['subscription']['registered_by'] ) ){
|
127 |
-
$user_id = WP_Installer()->settings['repositories'][$repository_id]['subscription']['registered_by'];
|
128 |
-
}
|
129 |
-
|
130 |
-
return $user_id;
|
131 |
-
}
|
132 |
-
|
133 |
-
|
134 |
-
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
vendor/otgs/installer/includes/class-wp-installer-channels.php
DELETED
@@ -1,282 +0,0 @@
|
|
1 |
-
<?php
|
2 |
-
|
3 |
-
/**
|
4 |
-
* Class WP_Installer_Channels
|
5 |
-
* @since 1.8
|
6 |
-
*/
|
7 |
-
class WP_Installer_Channels{
|
8 |
-
|
9 |
-
const CHANNEL_PRODUCTION = 'production';
|
10 |
-
const CHANNEL_BETA = 'beta';
|
11 |
-
const CHANNEL_DEVELOPMENT = 'development';
|
12 |
-
|
13 |
-
protected static $_instance = null;
|
14 |
-
|
15 |
-
function __construct() {
|
16 |
-
add_action( 'init', array( $this, 'init' ), 20 ); // after Installer
|
17 |
-
}
|
18 |
-
|
19 |
-
/**
|
20 |
-
* @return null|WP_Installer_Channels
|
21 |
-
*/
|
22 |
-
public static function instance() {
|
23 |
-
|
24 |
-
if ( is_null( self::$_instance ) ) {
|
25 |
-
self::$_instance = new self();
|
26 |
-
}
|
27 |
-
|
28 |
-
return self::$_instance;
|
29 |
-
}
|
30 |
-
|
31 |
-
/**
|
32 |
-
* Get the channel literal id based on the numeric id
|
33 |
-
*
|
34 |
-
* @param mixed $id
|
35 |
-
*
|
36 |
-
* @return string
|
37 |
-
*/
|
38 |
-
public static function channel_name_by_id( $id ) {
|
39 |
-
if ( self::CHANNEL_DEVELOPMENT === $id ) {
|
40 |
-
$channel = __( 'Development', 'installer' );
|
41 |
-
} elseif ( self::CHANNEL_BETA === $id ) {
|
42 |
-
$channel = __( 'Beta', 'installer' );
|
43 |
-
} else {
|
44 |
-
$channel = __( 'Production', 'installer' );
|
45 |
-
}
|
46 |
-
|
47 |
-
return $channel;
|
48 |
-
}
|
49 |
-
|
50 |
-
/**
|
51 |
-
* Initialization
|
52 |
-
*/
|
53 |
-
public function init(){
|
54 |
-
global $pagenow;
|
55 |
-
|
56 |
-
if ( defined( 'DOING_AJAX' ) ) {
|
57 |
-
add_action( 'wp_ajax_installer_set_channel', array( $this, 'set_channel' ) );
|
58 |
-
}
|
59 |
-
|
60 |
-
if ( $pagenow === 'plugin-install.php' && isset( $_GET['tab'] ) && $_GET['tab'] === 'commercial' ) {
|
61 |
-
wp_enqueue_script( 'installer-channels', WP_Installer()->res_url() . '/res/js/channels.js', array( 'jquery' ), WP_Installer()->version() );
|
62 |
-
}
|
63 |
-
|
64 |
-
}
|
65 |
-
|
66 |
-
/**
|
67 |
-
* Ajax handler for channel switching
|
68 |
-
*/
|
69 |
-
public function set_channel(){
|
70 |
-
$repository_id = sanitize_text_field( $_POST['repository_id'] );
|
71 |
-
$channel = sanitize_text_field( $_POST['channel'] );
|
72 |
-
|
73 |
-
$response = array();
|
74 |
-
|
75 |
-
if( $_POST['nonce'] === wp_create_nonce( 'installer_set_channel:' . $repository_id ) ){
|
76 |
-
|
77 |
-
if( isset( WP_Installer()->settings['repositories'][$repository_id] ) ){
|
78 |
-
WP_Installer()->settings['repositories'][$repository_id]['channel'] = $channel;
|
79 |
-
WP_Installer()->settings['repositories'][$repository_id]['no-prompt'] = $_POST['noprompt'] === 'true';
|
80 |
-
WP_Installer()->save_settings();
|
81 |
-
}
|
82 |
-
|
83 |
-
WP_Installer()->refresh_repositories_data();
|
84 |
-
|
85 |
-
$response['status'] = 'OK';
|
86 |
-
}
|
87 |
-
|
88 |
-
echo json_encode( $response );
|
89 |
-
exit;
|
90 |
-
}
|
91 |
-
|
92 |
-
/**
|
93 |
-
* @param string $repository_id
|
94 |
-
*
|
95 |
-
* @return int
|
96 |
-
*/
|
97 |
-
public function get_channel( $repository_id ){
|
98 |
-
$channel = self::CHANNEL_PRODUCTION;
|
99 |
-
if( isset( WP_Installer()->settings['repositories'][$repository_id]['channel'] ) ){
|
100 |
-
$channel = WP_Installer()->settings['repositories'][$repository_id]['channel'];
|
101 |
-
}
|
102 |
-
return $channel;
|
103 |
-
}
|
104 |
-
|
105 |
-
/**
|
106 |
-
* @param $repository_id
|
107 |
-
*
|
108 |
-
* @return bool
|
109 |
-
*/
|
110 |
-
private function get_no_prompt( $repository_id ) {
|
111 |
-
$settings = WP_Installer()->settings;
|
112 |
-
|
113 |
-
return ! empty( $settings['repositories'][ $repository_id ]['no-prompt'] );
|
114 |
-
}
|
115 |
-
|
116 |
-
/**
|
117 |
-
* @param string $repository_id
|
118 |
-
* @param array $downloads
|
119 |
-
*/
|
120 |
-
public function load_channel_selector( $repository_id, $downloads ) {
|
121 |
-
|
122 |
-
$available_channels = $this->get_available_channels( $repository_id );
|
123 |
-
|
124 |
-
if ( $available_channels ) {
|
125 |
-
$args = array(
|
126 |
-
'can_switch' => $this->can_use_unstable_channels( $downloads ) || $this->get_channel( $repository_id ) > 1,
|
127 |
-
'channels' => $available_channels,
|
128 |
-
'repository_id' => $repository_id,
|
129 |
-
'current_channel' => $this->get_channel( $repository_id ),
|
130 |
-
'no_prompt' => $this->get_no_prompt( $repository_id ),
|
131 |
-
'nonce' => wp_create_nonce( 'installer_set_channel:' . $repository_id )
|
132 |
-
);
|
133 |
-
extract( $args );
|
134 |
-
include WP_Installer()->plugin_path() . '/templates/channel-selector.php';
|
135 |
-
}
|
136 |
-
}
|
137 |
-
|
138 |
-
/**
|
139 |
-
* The beta and development channels can be used only when already using the most up to date versions
|
140 |
-
* @param array $downloads
|
141 |
-
*
|
142 |
-
* @return bool
|
143 |
-
*/
|
144 |
-
public function can_use_unstable_channels( $downloads ){
|
145 |
-
|
146 |
-
$can = true;
|
147 |
-
foreach( $downloads as $download ){
|
148 |
-
$available_version = $download['version'];
|
149 |
-
$installed_version = WP_Installer()->plugin_is_installed( $download['name'], $download['slug'] );
|
150 |
-
if( $installed_version !== false && version_compare( $available_version, $installed_version, '>' ) ){
|
151 |
-
$can = false;
|
152 |
-
break;
|
153 |
-
}
|
154 |
-
}
|
155 |
-
|
156 |
-
return $can;
|
157 |
-
}
|
158 |
-
|
159 |
-
/**
|
160 |
-
* Get available updates channels. Only include channels with actual downloads available.
|
161 |
-
*
|
162 |
-
* @param string $repository_id
|
163 |
-
*
|
164 |
-
* @return array
|
165 |
-
*/
|
166 |
-
public function get_available_channels( $repository_id ) {
|
167 |
-
|
168 |
-
$beta = false;
|
169 |
-
$dev = false;
|
170 |
-
|
171 |
-
$downloads = WP_Installer()->settings['repositories'][ $repository_id ]['data']['downloads'];
|
172 |
-
foreach ( $downloads as $type => $download_types ) {
|
173 |
-
foreach ( $download_types as $download ) {
|
174 |
-
$extra_channels = isset( $download['extra_channels'] ) ? array_keys( $download['extra_channels'] ) : array();
|
175 |
-
if ( ! $beta && in_array( self::CHANNEL_BETA, $extra_channels ) ) {
|
176 |
-
$beta = true;
|
177 |
-
}
|
178 |
-
if ( ! $dev && in_array( self::CHANNEL_DEVELOPMENT, $extra_channels ) ) {
|
179 |
-
$dev = true;
|
180 |
-
}
|
181 |
-
if ( $beta && $dev ) {
|
182 |
-
break;
|
183 |
-
}
|
184 |
-
}
|
185 |
-
}
|
186 |
-
|
187 |
-
$channels = array();
|
188 |
-
if ( $beta || $dev ) {
|
189 |
-
$channels[ self::CHANNEL_PRODUCTION ] = self::channel_name_by_id( self::CHANNEL_PRODUCTION );
|
190 |
-
if ( $beta ) {
|
191 |
-
$channels[ self::CHANNEL_BETA ] = self::channel_name_by_id( self::CHANNEL_BETA );
|
192 |
-
}
|
193 |
-
if ( $dev ) {
|
194 |
-
$channels[ self::CHANNEL_DEVELOPMENT ] = self::channel_name_by_id( self::CHANNEL_DEVELOPMENT );
|
195 |
-
}
|
196 |
-
}
|
197 |
-
|
198 |
-
return $channels;
|
199 |
-
}
|
200 |
-
|
201 |
-
/**
|
202 |
-
* @param string $repository_id
|
203 |
-
* @param array $downloads
|
204 |
-
*
|
205 |
-
* @return array
|
206 |
-
*/
|
207 |
-
public function filter_downloads_by_channel( $repository_id, $downloads ) {
|
208 |
-
|
209 |
-
$current_channel = $this->get_channel( $repository_id );
|
210 |
-
|
211 |
-
foreach ( $downloads as $type => $type_downloads ) {
|
212 |
-
foreach ( $type_downloads as $slug => $download ) {
|
213 |
-
|
214 |
-
$override_download = array();
|
215 |
-
if ( $current_channel === self::CHANNEL_DEVELOPMENT ) {
|
216 |
-
if( ! empty( $download['channels']['development'] ) ){
|
217 |
-
$override_download = $download['channels']['development'];
|
218 |
-
$override_download['channel'] = self::CHANNEL_DEVELOPMENT;
|
219 |
-
}elseif( ! empty( $download['channels']['beta'] ) ){
|
220 |
-
$override_download = $download['channels']['beta'];
|
221 |
-
$override_download['channel'] = self::CHANNEL_BETA;
|
222 |
-
}
|
223 |
-
}elseif ( $current_channel === self::CHANNEL_BETA && ! empty( $download['channels']['beta'] ) ) {
|
224 |
-
$override_download = $download['channels']['beta'];
|
225 |
-
$override_download['channel'] = self::CHANNEL_BETA;
|
226 |
-
}
|
227 |
-
|
228 |
-
if ( $override_download ) {
|
229 |
-
foreach ( $override_download as $key => $value ) {
|
230 |
-
$downloads[ $type ][ $slug ][ $key ] = $value;
|
231 |
-
}
|
232 |
-
} else {
|
233 |
-
$downloads[ $type ][ $slug ]['channel'] = self::CHANNEL_PRODUCTION;
|
234 |
-
}
|
235 |
-
unset ( $downloads[ $type ][ $slug ]['channels'] );
|
236 |
-
|
237 |
-
$downloads[ $type ][ $slug ]['extra_channels'] = array();
|
238 |
-
if( isset( $download['channels'] ) ) {
|
239 |
-
foreach( $download['channels'] as $channel_id => $channel ){
|
240 |
-
$downloads[ $type ][ $slug ]['extra_channels'][$channel_id] = array(
|
241 |
-
'version' => $channel['version']
|
242 |
-
);
|
243 |
-
}
|
244 |
-
}
|
245 |
-
|
246 |
-
}
|
247 |
-
}
|
248 |
-
|
249 |
-
return $downloads;
|
250 |
-
}
|
251 |
-
|
252 |
-
/**
|
253 |
-
* Get the source channel for the installed version when on the Beta or Development channel
|
254 |
-
* @param string $version
|
255 |
-
* @param string $repository_id
|
256 |
-
* @param string $download_id
|
257 |
-
* @param string $download_kind
|
258 |
-
*
|
259 |
-
* @return string
|
260 |
-
*/
|
261 |
-
public function get_download_source_channel( $version, $repository_id, $download_id, $download_kind ) {
|
262 |
-
|
263 |
-
$version_channel = '';
|
264 |
-
$installer_settings = WP_Installer()->get_settings();
|
265 |
-
if ( isset( $installer_settings['repositories'][ $repository_id ] ) ) {
|
266 |
-
$repository_data = $installer_settings['repositories'][ $repository_id ]['data'];
|
267 |
-
if ( isset( $repository_data['downloads'][ $download_kind ][ $download_id ]['extra_channels'] ) ) {
|
268 |
-
|
269 |
-
foreach ( $repository_data['downloads'][ $download_kind ][ $download_id ]['extra_channels'] as $channel_id => $channel_data ) {
|
270 |
-
if ( $version === $channel_data['version'] ) {
|
271 |
-
$version_channel = self::channel_name_by_id( $channel_id );
|
272 |
-
break;
|
273 |
-
}
|
274 |
-
|
275 |
-
}
|
276 |
-
}
|
277 |
-
|
278 |
-
}
|
279 |
-
|
280 |
-
return $version_channel;
|
281 |
-
}
|
282 |
-
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
vendor/otgs/installer/includes/class-wp-installer.php
DELETED
@@ -1,2776 +0,0 @@
|
|
1 |
-
<?php
|
2 |
-
|
3 |
-
final class WP_Installer {
|
4 |
-
protected static $_instance = null;
|
5 |
-
|
6 |
-
public $settings = array();
|
7 |
-
|
8 |
-
private $repositories = array();
|
9 |
-
|
10 |
-
protected $api_debug = '';
|
11 |
-
|
12 |
-
private $config = array();
|
13 |
-
|
14 |
-
protected $_plugins_renew_warnings = array();
|
15 |
-
|
16 |
-
private $admin_messages = array();
|
17 |
-
|
18 |
-
private $_using_icl = false;
|
19 |
-
private $_wpml_version = false;
|
20 |
-
|
21 |
-
private $package_source = array();
|
22 |
-
|
23 |
-
const SITE_KEY_VALIDATION_SOURCE_OTHER = 0;
|
24 |
-
const SITE_KEY_VALIDATION_SOURCE_DOWNLOAD_SPECIFIC = 1;
|
25 |
-
const SITE_KEY_VALIDATION_SOURCE_DOWNLOAD_REPORT = 2;
|
26 |
-
const SITE_KEY_VALIDATION_SOURCE_REGISTRATION = 3;
|
27 |
-
const SITE_KEY_VALIDATION_SOURCE_REVALIDATION = 4;
|
28 |
-
const SITE_KEY_VALIDATION_SOURCE_UPDATES_CHECK = 5;
|
29 |
-
|
30 |
-
public $dependencies;
|
31 |
-
|
32 |
-
public static function instance() {
|
33 |
-
|
34 |
-
if ( is_null( self::$_instance ) ) {
|
35 |
-
self::$_instance = new self();
|
36 |
-
}
|
37 |
-
|
38 |
-
return self::$_instance;
|
39 |
-
}
|
40 |
-
|
41 |
-
public function __construct() {
|
42 |
-
|
43 |
-
if ( ! is_admin() || ! is_user_logged_in() ) {
|
44 |
-
return;
|
45 |
-
} //Only for admin
|
46 |
-
|
47 |
-
$this->settings = $this->get_settings();
|
48 |
-
|
49 |
-
add_action( 'admin_notices', array( $this, 'show_site_key_nags' ) );
|
50 |
-
|
51 |
-
add_action( 'admin_notices', array( $this, 'show_admin_messages' ) );
|
52 |
-
|
53 |
-
add_action( 'admin_init', array( $this, 'load_embedded_plugins' ), 0 );
|
54 |
-
|
55 |
-
add_action( 'admin_menu', array( $this, 'menu_setup' ) );
|
56 |
-
add_action( 'network_admin_menu', array( $this, 'menu_setup' ) );
|
57 |
-
|
58 |
-
if ( defined( 'DOING_AJAX' ) && isset( $_POST['action'] ) && $_POST['action'] == 'installer_download_plugin' ) {
|
59 |
-
add_filter( 'site_transient_update_plugins', array( $this, 'plugins_upgrade_check' ) );
|
60 |
-
}
|
61 |
-
add_filter( 'plugins_api', array( $this, 'custom_plugins_api_call' ), 10, 3 );
|
62 |
-
add_filter( 'pre_set_site_transient_update_plugins', array( $this, 'plugins_upgrade_check' ) );
|
63 |
-
|
64 |
-
// register repositories
|
65 |
-
$this->load_repositories_list();
|
66 |
-
|
67 |
-
// default config
|
68 |
-
$this->config['plugins_install_tab'] = false;
|
69 |
-
|
70 |
-
add_action( 'init', array( $this, 'init' ) );
|
71 |
-
|
72 |
-
//add_filter('wp_installer_buy_url', array($this, 'append_parameters_to_buy_url'));
|
73 |
-
|
74 |
-
add_action( 'init', array( $this, 'load_locale' ) );
|
75 |
-
|
76 |
-
}
|
77 |
-
|
78 |
-
public function get_repositories() {
|
79 |
-
|
80 |
-
return $this->repositories;
|
81 |
-
|
82 |
-
}
|
83 |
-
|
84 |
-
public function set_config( $key, $value ) {
|
85 |
-
|
86 |
-
$this->config[ $key ] = $value;
|
87 |
-
|
88 |
-
}
|
89 |
-
|
90 |
-
public function init() {
|
91 |
-
global $pagenow;
|
92 |
-
|
93 |
-
if ( empty( $this->settings['last_repositories_update'] ) || time() - $this->settings['last_repositories_update'] > 86400
|
94 |
-
|| ( isset( $_GET['force-check'] ) && $_GET['force-check'] == 1 )
|
95 |
-
) {
|
96 |
-
$this->refresh_repositories_data();
|
97 |
-
}
|
98 |
-
|
99 |
-
$this->dependencies = new Installer_Dependencies;
|
100 |
-
|
101 |
-
if ( empty( $this->settings['_pre_1_0_clean_up'] ) ) {
|
102 |
-
$this->_pre_1_0_clean_up();
|
103 |
-
}
|
104 |
-
|
105 |
-
$this->settings = $this->_old_products_format_backwards_compatibility( $this->settings );
|
106 |
-
|
107 |
-
if ( ! function_exists( 'get_plugins' ) ) {
|
108 |
-
require_once ABSPATH . 'wp-admin/includes/plugin.php';
|
109 |
-
}
|
110 |
-
|
111 |
-
$this->_using_icl = function_exists( 'wpml_site_uses_icl' ) && wpml_site_uses_icl();
|
112 |
-
$this->_wpml_version = defined( 'ICL_SITEPRESS_VERSION' ) ? ICL_SITEPRESS_VERSION : '';
|
113 |
-
|
114 |
-
wp_enqueue_script( 'installer-admin', $this->res_url() . '/res/js/admin.js', array( 'jquery' ), $this->version() );
|
115 |
-
wp_enqueue_style( 'installer-admin', $this->res_url() . '/res/css/admin.css', array(), $this->version() );
|
116 |
-
|
117 |
-
$translation_array = array(
|
118 |
-
'installing' => __( 'Installing %s', 'installer' ),
|
119 |
-
'updating' => __( 'Updating %s', 'installer' ),
|
120 |
-
'activating' => __( 'Activating %s', 'installer' )
|
121 |
-
);
|
122 |
-
|
123 |
-
wp_localize_script( 'installer-admin', 'installer_strings', $translation_array );
|
124 |
-
|
125 |
-
if ( $pagenow == 'plugins.php' ) {
|
126 |
-
add_action( 'admin_notices', array( $this, 'setup_plugins_page_notices' ) );
|
127 |
-
add_action( 'admin_notices', array( $this, 'setup_plugins_renew_warnings' ), 10 );
|
128 |
-
add_action( 'admin_notices', array( $this, 'queue_plugins_renew_warnings' ), 20 );
|
129 |
-
|
130 |
-
add_action( 'admin_init', array( $this, 'setup_plugins_action_links' ) );
|
131 |
-
|
132 |
-
}
|
133 |
-
|
134 |
-
if ( $this->is_repositories_page() ) {
|
135 |
-
add_action( 'admin_init', array( $this, 'validate_repository_subscription' ) );
|
136 |
-
}
|
137 |
-
|
138 |
-
if ( defined( 'DOING_AJAX' ) ) {
|
139 |
-
add_action( 'wp_ajax_save_site_key', array( $this, 'save_site_key' ) );
|
140 |
-
add_action( 'wp_ajax_remove_site_key', array( $this, 'remove_site_key_ajax' ) );
|
141 |
-
add_action( 'wp_ajax_update_site_key', array( $this, 'update_site_key' ) );
|
142 |
-
|
143 |
-
add_action( 'wp_ajax_installer_download_plugin', array( $this, 'download_plugin_ajax_handler' ) );
|
144 |
-
add_action( 'wp_ajax_installer_activate_plugin', array( $this, 'activate_plugin' ) );
|
145 |
-
|
146 |
-
add_action( 'wp_ajax_installer_dismiss_nag', array( $this, 'dismiss_nag' ) );
|
147 |
-
}
|
148 |
-
|
149 |
-
if ( $pagenow == 'update.php' ) {
|
150 |
-
if ( isset( $_GET['action'] ) && $_GET['action'] == 'update-selected' ) {
|
151 |
-
add_action( 'admin_head', array( $this, 'plugin_upgrade_custom_errors' ) ); //iframe/bulk
|
152 |
-
} else {
|
153 |
-
add_action( 'all_admin_notices', array( $this, 'plugin_upgrade_custom_errors' ) ); //regular/singular
|
154 |
-
}
|
155 |
-
}
|
156 |
-
|
157 |
-
// WP 4.2
|
158 |
-
if ( defined( 'DOING_AJAX' ) ) {
|
159 |
-
add_action( 'wp_ajax_update-plugin', array(
|
160 |
-
$this,
|
161 |
-
'plugin_upgrade_custom_errors'
|
162 |
-
), 0 ); // high priority, before WP
|
163 |
-
}
|
164 |
-
|
165 |
-
//Include theme support
|
166 |
-
include_once $this->plugin_path() . '/includes/class-installer-theme.php';
|
167 |
-
|
168 |
-
// Extra information about the source of Installer
|
169 |
-
$package_source_file = $this->plugin_path() . '/installer-source.json';
|
170 |
-
if ( file_exists( $package_source_file ) ) {
|
171 |
-
WP_Filesystem();
|
172 |
-
global $wp_filesystem;
|
173 |
-
$this->package_source = json_decode( $wp_filesystem->get_contents( $package_source_file ) );
|
174 |
-
}
|
175 |
-
}
|
176 |
-
|
177 |
-
protected function log( $message ) {
|
178 |
-
require_once ABSPATH . 'wp-admin/includes/file.php';
|
179 |
-
WP_Filesystem();
|
180 |
-
global $wp_filesystem;
|
181 |
-
if ( defined( 'WPML_INSTALLER_LOGGING' ) && WPML_INSTALLER_LOGGING ) {
|
182 |
-
$wp_filesystem->put_contents( $this->plugin_path() . '/installer.log', current_time( 'mysql' ) . "\t" . $message . "\n" );
|
183 |
-
}
|
184 |
-
}
|
185 |
-
|
186 |
-
public function register_admin_message( $text, $type = 'updated' ) {
|
187 |
-
$this->admin_messages[] = array( 'text' => $text, 'type' => $type );
|
188 |
-
}
|
189 |
-
|
190 |
-
public function show_admin_messages() {
|
191 |
-
if ( ! empty( $this->admin_messages ) ) {
|
192 |
-
$types = array( 'error', 'updated', 'notice' );
|
193 |
-
foreach ( $this->admin_messages as $message ) {
|
194 |
-
$class = in_array( $message['type'], $types ) ? $message['type'] : 'updated';
|
195 |
-
?>
|
196 |
-
<div class="<?php echo $class ?>">
|
197 |
-
<p>
|
198 |
-
<?php echo $message['text'] ?>
|
199 |
-
</p>
|
200 |
-
</div>
|
201 |
-
<?php
|
202 |
-
}
|
203 |
-
}
|
204 |
-
}
|
205 |
-
|
206 |
-
public function load_locale() {
|
207 |
-
if ( function_exists( 'get_user_locale' ) ) {
|
208 |
-
$locale = get_user_locale();
|
209 |
-
} else {
|
210 |
-
$locale = get_locale();
|
211 |
-
}
|
212 |
-
$locale = apply_filters( 'plugin_locale', $locale, 'installer' );
|
213 |
-
$mo_file = $this->plugin_path() . '/locale/installer-' . $locale . '.mo';
|
214 |
-
if ( file_exists( $mo_file ) ) {
|
215 |
-
load_textdomain( 'installer', $mo_file );
|
216 |
-
}
|
217 |
-
}
|
218 |
-
|
219 |
-
public function load_embedded_plugins() {
|
220 |
-
if ( file_exists( $this->plugin_path() . '/embedded-plugins' ) ) {
|
221 |
-
include_once $this->plugin_path() . '/embedded-plugins/embedded-plugins.class.php';
|
222 |
-
$this->installer_embedded_plugins = new Installer_Embedded_Plugins();
|
223 |
-
}
|
224 |
-
}
|
225 |
-
|
226 |
-
public function menu_setup() {
|
227 |
-
global $pagenow;
|
228 |
-
|
229 |
-
if ( is_multisite() && ! is_network_admin() ) {
|
230 |
-
$this->menu_multisite_redirect();
|
231 |
-
add_options_page( __( 'Installer', 'installer' ), __( 'Installer', 'installer' ), 'manage_options', 'installer', array(
|
232 |
-
$this,
|
233 |
-
'show_products'
|
234 |
-
) );
|
235 |
-
} else {
|
236 |
-
if ( $this->config['plugins_install_tab'] && is_admin() && $pagenow == 'plugin-install.php' ) {
|
237 |
-
// Default GUI, under Plugins -> Install
|
238 |
-
add_filter( 'install_plugins_tabs', array( $this, 'add_install_plugins_tab' ) );
|
239 |
-
add_action( 'install_plugins_commercial', array( $this, 'show_products' ) );
|
240 |
-
}
|
241 |
-
}
|
242 |
-
|
243 |
-
}
|
244 |
-
|
245 |
-
public function menu_url() {
|
246 |
-
if ( is_multisite() ) {
|
247 |
-
if ( is_network_admin() ) {
|
248 |
-
$url = network_admin_url( 'plugin-install.php?tab=commercial' );
|
249 |
-
} else {
|
250 |
-
$url = admin_url( 'options-general.php?page=installer' );
|
251 |
-
}
|
252 |
-
} else {
|
253 |
-
$url = admin_url( 'plugin-install.php?tab=commercial' );
|
254 |
-
}
|
255 |
-
|
256 |
-
return $url;
|
257 |
-
}
|
258 |
-
|
259 |
-
private function menu_multisite_redirect() {
|
260 |
-
global $pagenow;
|
261 |
-
|
262 |
-
if ( $pagenow == 'plugin-install.php' && isset( $_GET['tab'] ) && $_GET['tab'] == 'commercial' ) {
|
263 |
-
wp_redirect( $this->menu_url() );
|
264 |
-
exit;
|
265 |
-
}
|
266 |
-
|
267 |
-
}
|
268 |
-
|
269 |
-
private function _pre_1_0_clean_up() {
|
270 |
-
global $wpdb;
|
271 |
-
|
272 |
-
if ( ! defined( 'WPRC_VERSION' ) ) {
|
273 |
-
$old_tables = array(
|
274 |
-
$wpdb->prefix . 'wprc_cached_requests',
|
275 |
-
$wpdb->prefix . 'wprc_extension_types',
|
276 |
-
$wpdb->prefix . 'wprc_extensions',
|
277 |
-
$wpdb->prefix . 'wprc_repositories',
|
278 |
-
$wpdb->prefix . 'wprc_repositories_relationships',
|
279 |
-
);
|
280 |
-
|
281 |
-
foreach ( $old_tables as $table ) {
|
282 |
-
$wpdb->query( sprintf( "DROP TABLE IF EXISTS %s", $table ) );
|
283 |
-
}
|
284 |
-
|
285 |
-
}
|
286 |
-
|
287 |
-
$this->settings['_pre_1_0_clean_up'] = true;
|
288 |
-
$this->save_settings();
|
289 |
-
}
|
290 |
-
|
291 |
-
public function setup_plugins_action_links() {
|
292 |
-
|
293 |
-
$plugins = get_plugins();
|
294 |
-
|
295 |
-
$repositories_plugins = array();
|
296 |
-
|
297 |
-
if ( ! empty( $this->settings['repositories'] ) ) {
|
298 |
-
|
299 |
-
foreach ( $this->settings['repositories'] as $repository_id => $repository ) {
|
300 |
-
|
301 |
-
foreach ( $repository['data']['packages'] as $package ) {
|
302 |
-
|
303 |
-
foreach ( $package['products'] as $product ) {
|
304 |
-
|
305 |
-
foreach ( $product['plugins'] as $plugin_slug ) {
|
306 |
-
|
307 |
-
$download = $this->settings['repositories'][ $repository_id ]['data']['downloads']['plugins'][ $plugin_slug ];
|
308 |
-
|
309 |
-
if ( ! isset( $repositories_plugins[ $repository_id ][ $download['slug'] ] ) ) {
|
310 |
-
$repositories_plugins[ $repository_id ][ $download['slug'] ] = array(
|
311 |
-
'name' => $download['name'],
|
312 |
-
'registered' => $this->plugin_is_registered( $repository_id, $download['slug'] ) ? 1 : 0
|
313 |
-
);
|
314 |
-
}
|
315 |
-
|
316 |
-
}
|
317 |
-
|
318 |
-
}
|
319 |
-
|
320 |
-
}
|
321 |
-
|
322 |
-
foreach ( $plugins as $plugin_id => $plugin ) {
|
323 |
-
|
324 |
-
$wp_plugin_slug = dirname( $plugin_id );
|
325 |
-
if ( empty( $wp_plugin_slug ) ) {
|
326 |
-
$wp_plugin_slug = basename( $plugin_id, '.php' );
|
327 |
-
}
|
328 |
-
|
329 |
-
foreach ( $repositories_plugins as $repository_id => $r_plugins ) {
|
330 |
-
|
331 |
-
foreach ( $r_plugins as $slug => $r_plugin ) {
|
332 |
-
|
333 |
-
if ( $wp_plugin_slug == $slug || $r_plugin['name'] == $plugin['Name'] || $r_plugin['name'] == $plugin['Title'] ) { //match order: slug, name, title
|
334 |
-
|
335 |
-
if ( $r_plugin['registered'] ) {
|
336 |
-
add_filter( 'plugin_action_links_' . $plugin_id, array(
|
337 |
-
$this,
|
338 |
-
'plugins_action_links_registered'
|
339 |
-
) );
|
340 |
-
} else {
|
341 |
-
add_filter( 'plugin_action_links_' . $plugin_id, array(
|
342 |
-
$this,
|
343 |
-
'plugins_action_links_not_registered'
|
344 |
-
) );
|
345 |
-
}
|
346 |
-
|
347 |
-
}
|
348 |
-
|
349 |
-
}
|
350 |
-
|
351 |
-
}
|
352 |
-
|
353 |
-
|
354 |
-
}
|
355 |
-
|
356 |
-
}
|
357 |
-
}
|
358 |
-
|
359 |
-
}
|
360 |
-
|
361 |
-
public function plugins_action_links_registered( $links ) {
|
362 |
-
$links[] = '<a href="' . $this->menu_url() . '">' . __( 'Registered', 'installer' ) . '</a>';
|
363 |
-
|
364 |
-
return $links;
|
365 |
-
}
|
366 |
-
|
367 |
-
public function plugins_action_links_not_registered( $links ) {
|
368 |
-
$links[] = '<a href="' . $this->menu_url() . '">' . __( 'Register', 'installer' ) . '</a>';
|
369 |
-
|
370 |
-
return $links;
|
371 |
-
}
|
372 |
-
|
373 |
-
public function plugin_is_registered( $repository_id, $slug ) {
|
374 |
-
|
375 |
-
$registered = false;
|
376 |
-
|
377 |
-
if ( $this->repository_has_valid_subscription( $repository_id ) ) {
|
378 |
-
|
379 |
-
$subscription_type = $this->get_subscription_type_for_repository( $repository_id );
|
380 |
-
$r_plugins = array();
|
381 |
-
|
382 |
-
foreach ( $this->settings['repositories'][ $repository_id ]['data']['packages'] as $package ) {
|
383 |
-
|
384 |
-
foreach ( $package['products'] as $product ) {
|
385 |
-
|
386 |
-
//consider equivalent subscriptions
|
387 |
-
if( !array_key_exists('subscription_type_equivalent', $product) ) {
|
388 |
-
$product['subscription_type_equivalent'] = '';
|
389 |
-
}
|
390 |
-
|
391 |
-
if ( $product['subscription_type'] == $subscription_type || $product['subscription_type_equivalent'] == $subscription_type || $this->have_superior_subscription( $subscription_type, $product ) ) {
|
392 |
-
|
393 |
-
foreach ( $product['plugins'] as $plugin_slug ) {
|
394 |
-
|
395 |
-
$download = $this->settings['repositories'][ $repository_id ]['data']['downloads']['plugins'][ $plugin_slug ];
|
396 |
-
|
397 |
-
if ( ! isset( $rep_plugins[ $download['slug'] ] ) ) {
|
398 |
-
$r_plugins[ $download['slug'] ] = $download['slug'];
|
399 |
-
}
|
400 |
-
|
401 |
-
}
|
402 |
-
|
403 |
-
}
|
404 |
-
|
405 |
-
}
|
406 |
-
|
407 |
-
}
|
408 |
-
|
409 |
-
$registered = isset( $r_plugins[ $slug ] );
|
410 |
-
|
411 |
-
}
|
412 |
-
|
413 |
-
|
414 |
-
return $registered;
|
415 |
-
|
416 |
-
}
|
417 |
-
|
418 |
-
public function version() {
|
419 |
-
return WP_INSTALLER_VERSION;
|
420 |
-
}
|
421 |
-
|
422 |
-
public function plugin_path() {
|
423 |
-
return untrailingslashit( plugin_dir_path( dirname( __FILE__ ) ) );
|
424 |
-
}
|
425 |
-
|
426 |
-
public function plugin_url() {
|
427 |
-
if ( isset( $this->config['in_theme_folder'] ) && ! empty( $this->config['in_theme_folder'] ) ) {
|
428 |
-
$url = untrailingslashit( get_template_directory_uri() . '/' . $this->config['in_theme_folder'] );
|
429 |
-
} else {
|
430 |
-
$url = untrailingslashit( plugins_url( '/', dirname( __FILE__ ) ) );
|
431 |
-
}
|
432 |
-
|
433 |
-
return $url;
|
434 |
-
}
|
435 |
-
|
436 |
-
public function is_repositories_page() {
|
437 |
-
global $pagenow;
|
438 |
-
|
439 |
-
return $pagenow == 'plugin-install.php' && isset( $_GET['tab'] ) && $_GET['tab'] == 'commercial';
|
440 |
-
}
|
441 |
-
|
442 |
-
public function res_url() {
|
443 |
-
if ( isset( $this->config['in_theme_folder'] ) && ! empty( $this->config['in_theme_folder'] ) ) {
|
444 |
-
$url = untrailingslashit( get_template_directory_uri() . '/' . $this->config['in_theme_folder'] );
|
445 |
-
} else {
|
446 |
-
$url = $this->plugin_url();
|
447 |
-
}
|
448 |
-
|
449 |
-
return $url;
|
450 |
-
}
|
451 |
-
|
452 |
-
public function save_settings() {
|
453 |
-
|
454 |
-
$_settings = serialize( $this->settings );
|
455 |
-
if ( $this->is_gz_on() ) {
|
456 |
-
$_settings = gzcompress( $_settings );
|
457 |
-
}
|
458 |
-
$_settings = base64_encode( $_settings );
|
459 |
-
|
460 |
-
update_option( 'wp_installer_settings', $_settings );
|
461 |
-
|
462 |
-
if ( is_multisite() && is_main_site() && isset( $this->settings['repositories'] ) ) {
|
463 |
-
$network_settings = array();
|
464 |
-
|
465 |
-
foreach ( $this->settings['repositories'] as $rep_id => $repository ) {
|
466 |
-
if ( isset( $repository['subscription'] ) ) {
|
467 |
-
$network_settings[ $rep_id ] = $repository['subscription'];
|
468 |
-
}
|
469 |
-
}
|
470 |
-
|
471 |
-
update_site_option( 'wp_installer_network', $network_settings );
|
472 |
-
|
473 |
-
|
474 |
-
}
|
475 |
-
|
476 |
-
}
|
477 |
-
|
478 |
-
public function get_settings( $refresh = false ) {
|
479 |
-
|
480 |
-
if ( $refresh || empty( $this->settings ) ) {
|
481 |
-
|
482 |
-
$_settings = get_option( 'wp_installer_settings' );
|
483 |
-
|
484 |
-
|
485 |
-
if ( is_array( $_settings ) || empty( $_settings ) ) { //backward compatibility 1.1
|
486 |
-
$this->settings = $_settings;
|
487 |
-
|
488 |
-
} else {
|
489 |
-
$_settings = base64_decode( $_settings );
|
490 |
-
if ( $this->is_gz_on() ) {
|
491 |
-
$_settings = gzuncompress( $_settings );
|
492 |
-
}
|
493 |
-
$this->settings = unserialize( $_settings );
|
494 |
-
}
|
495 |
-
|
496 |
-
// Initialize
|
497 |
-
if ( empty( $this->settings ) ) {
|
498 |
-
$this->settings = array(
|
499 |
-
'repositories' => array()
|
500 |
-
);
|
501 |
-
}
|
502 |
-
|
503 |
-
if ( is_multisite() ) {
|
504 |
-
$network_settings = maybe_unserialize( get_site_option( 'wp_installer_network' ) );
|
505 |
-
if ( $network_settings ) {
|
506 |
-
foreach ( $this->settings['repositories'] as $rep_id => $repository ) {
|
507 |
-
if ( isset( $network_settings[ $rep_id ] ) ) {
|
508 |
-
$this->settings['repositories'][ $rep_id ]['subscription'] = $network_settings[ $rep_id ];
|
509 |
-
}
|
510 |
-
}
|
511 |
-
}
|
512 |
-
}
|
513 |
-
|
514 |
-
$this->load_hardcoded_site_keys();
|
515 |
-
|
516 |
-
$this->_pre_1_8_backwards_compatibility( $this->settings );
|
517 |
-
|
518 |
-
$this->settings = $this->_old_products_format_backwards_compatibility( $this->settings );
|
519 |
-
|
520 |
-
}
|
521 |
-
|
522 |
-
return $this->settings;
|
523 |
-
}
|
524 |
-
|
525 |
-
private function is_gz_on() {
|
526 |
-
return function_exists( 'gzuncompress' ) && function_exists( 'gzcompress' );
|
527 |
-
}
|
528 |
-
|
529 |
-
private function load_hardcoded_site_keys() {
|
530 |
-
|
531 |
-
if ( ! empty( $this->settings['repositories'] ) ) {
|
532 |
-
foreach ( $this->settings['repositories'] as $repository_id => $repository ) {
|
533 |
-
|
534 |
-
if ( $site_key = self::get_repository_hardcoded_site_key( $repository_id ) ) {
|
535 |
-
|
536 |
-
$site_key_missing = empty( $this->settings['repositories'][ $repository_id ]['subscription']['data'] );
|
537 |
-
$site_key_changed = ! $site_key_missing &&
|
538 |
-
$this->settings['repositories'][ $repository_id ]['subscription']['key'] != $site_key;
|
539 |
-
|
540 |
-
if ( $site_key_missing || $site_key_changed ) {
|
541 |
-
|
542 |
-
if ( ! function_exists( 'get_plugins' ) ) {
|
543 |
-
require_once ABSPATH . 'wp-admin/includes/plugin.php';
|
544 |
-
}
|
545 |
-
$this->load_repositories_list();
|
546 |
-
$response = $this->save_site_key(
|
547 |
-
array(
|
548 |
-
'repository_id' => $repository_id,
|
549 |
-
'site_key' => $site_key,
|
550 |
-
'return' => true,
|
551 |
-
'nonce' => wp_create_nonce( 'save_site_key_' . $repository_id )
|
552 |
-
)
|
553 |
-
);
|
554 |
-
|
555 |
-
if ( ! empty( $response['error'] ) ) {
|
556 |
-
$this->remove_site_key( $repository_id, false );
|
557 |
-
|
558 |
-
$this->admin_messages[] = array(
|
559 |
-
'type' => 'error',
|
560 |
-
'text' => sprintf( __( 'You are using an invalid site key defined as the constant %s (most likely in wp-config.php).
|
561 |
-
Please remove it or use the correct value in order to be able to register correctly.', 'installer' ), 'OTGS_INSTALLER_SITE_KEY_' . strtoupper( $repository_id ) )
|
562 |
-
);
|
563 |
-
|
564 |
-
}
|
565 |
-
|
566 |
-
}
|
567 |
-
|
568 |
-
}
|
569 |
-
|
570 |
-
}
|
571 |
-
}
|
572 |
-
|
573 |
-
}
|
574 |
-
|
575 |
-
public static function get_repository_hardcoded_site_key( $repository_id ) {
|
576 |
-
|
577 |
-
$site_key = false;
|
578 |
-
|
579 |
-
$site_key_constant = 'OTGS_INSTALLER_SITE_KEY_' . strtoupper( $repository_id );
|
580 |
-
if ( defined( $site_key_constant ) ) {
|
581 |
-
$site_key = constant( $site_key_constant );
|
582 |
-
}
|
583 |
-
|
584 |
-
return $site_key;
|
585 |
-
}
|
586 |
-
|
587 |
-
//backward compatibility, add channel
|
588 |
-
private function _pre_1_8_backwards_compatibility( &$settings ) {
|
589 |
-
if ( empty( $settings['_pre_1_8_clean_up'] ) ) {
|
590 |
-
foreach ( $settings['repositories'] as $repository_id => $repository ) {
|
591 |
-
foreach ( $repository['data']['downloads']['plugins'] as $slug => $download ) {
|
592 |
-
if( !isset( $download['channel'] ) ){
|
593 |
-
$settings['repositories'][ $repository_id ]['data']['downloads']['plugins'][ $slug ]['channel'] = '';
|
594 |
-
}
|
595 |
-
}
|
596 |
-
}
|
597 |
-
$this->save_settings();
|
598 |
-
}
|
599 |
-
}
|
600 |
-
|
601 |
-
//backward compatibility - support old products list format (downloads under products instead of global downloads list)
|
602 |
-
private function _old_products_format_backwards_compatibility( $settings ) {
|
603 |
-
|
604 |
-
if ( version_compare( $this->version(), '1.8', '<' ) && ! empty( $settings['repositories'] ) && empty( $this->_old_products_format_backwards_compatibility ) ) {
|
605 |
-
|
606 |
-
foreach ( $settings['repositories'] as $repository_id => $repository ) {
|
607 |
-
$populate_downloads = false;
|
608 |
-
if ( isset( $repository['data'] ) ) {
|
609 |
-
|
610 |
-
foreach ( $repository['data']['packages'] as $package_id => $package ) {
|
611 |
-
foreach ( $package['products'] as $product_id => $product ) {
|
612 |
-
if ( ! isset( $product['plugins'] ) ) {
|
613 |
-
$populate_downloads = true;
|
614 |
-
foreach ( $product['downloads'] as $download_id => $download ) {
|
615 |
-
$settings['repositories'][ $repository_id ]['data']['packages'][ $package_id ]['products'][ $product_id ]['plugins'][] = $download['slug'];
|
616 |
-
}
|
617 |
-
}
|
618 |
-
}
|
619 |
-
}
|
620 |
-
|
621 |
-
if ( $populate_downloads ) {
|
622 |
-
// Add downloads branch
|
623 |
-
foreach ( $repository['data']['packages'] as $package_id => $package ) {
|
624 |
-
foreach ( $package['products'] as $product_id => $product ) {
|
625 |
-
foreach ( $product['downloads'] as $download_id => $download ) {
|
626 |
-
if ( ! isset( $settings['repositories'][ $repository_id ]['data']['downloads']['plugins'][ $download['slug'] ] ) ) {
|
627 |
-
$settings['repositories'][ $repository_id ]['data']['downloads']['plugins'][ $download['slug'] ] = $download;
|
628 |
-
}
|
629 |
-
$settings['repositories'][ $repository_id ]['data']['packages'][ $package_id ]['products'][ $product_id ]['plugins'][] = $download['slug'];
|
630 |
-
}
|
631 |
-
unset( $settings['repositories'][ $repository_id ]['data']['packages'][ $package_id ]['products'][ $product_id ]['downloads'] );
|
632 |
-
}
|
633 |
-
}
|
634 |
-
}
|
635 |
-
}
|
636 |
-
}
|
637 |
-
|
638 |
-
$this->_old_products_format_backwards_compatibility = true;
|
639 |
-
}
|
640 |
-
|
641 |
-
return $settings;
|
642 |
-
}
|
643 |
-
|
644 |
-
public function get_installer_site_url( $repository_id = false ) {
|
645 |
-
global $current_site;
|
646 |
-
|
647 |
-
$site_url = get_site_url();
|
648 |
-
|
649 |
-
if ( $repository_id && is_multisite() && isset( $this->settings['repositories'] ) ) {
|
650 |
-
$network_settings = maybe_unserialize( get_site_option( 'wp_installer_network' ) );
|
651 |
-
|
652 |
-
if ( isset( $network_settings[ $repository_id ] ) ) {
|
653 |
-
$site_url = get_site_url( $current_site->blog_id );
|
654 |
-
}
|
655 |
-
|
656 |
-
}
|
657 |
-
|
658 |
-
return $site_url;
|
659 |
-
}
|
660 |
-
|
661 |
-
/**
|
662 |
-
* @param string $repository_id
|
663 |
-
*
|
664 |
-
* @return string|null
|
665 |
-
*/
|
666 |
-
public function get_registered_site_url( $repository_id ) {
|
667 |
-
if ( isset( $this->settings['repositories'][ $repository_id ]['subscription']['site_url'] ) ) {
|
668 |
-
return $this->settings['repositories'][ $repository_id ]['subscription']['site_url'];
|
669 |
-
}
|
670 |
-
|
671 |
-
return null;
|
672 |
-
}
|
673 |
-
|
674 |
-
public function show_site_key_nags() {
|
675 |
-
$screen = get_current_screen();
|
676 |
-
|
677 |
-
if ( $screen->base == 'settings_page_installer' || ( $screen->base == 'plugin-install' && isset( $_GET['tab'] ) && $_GET['tab'] == 'commercial' ) ) {
|
678 |
-
return;
|
679 |
-
}
|
680 |
-
|
681 |
-
if ( ! empty( $this->config['site_key_nags'] ) ) {
|
682 |
-
|
683 |
-
foreach ( $this->config['site_key_nags'] as $nag ) {
|
684 |
-
|
685 |
-
if ( ! $this->repository_has_subscription( $nag['repository_id'] ) ) {
|
686 |
-
$show = true;
|
687 |
-
if ( ! empty( $nag['condition_cb'] ) ) {
|
688 |
-
$show = call_user_func( $nag['condition_cb'] );
|
689 |
-
}
|
690 |
-
|
691 |
-
if ( empty( $this->settings['dismissed_nags'][ $nag['repository_id'] ] ) && $show ) {
|
692 |
-
echo '<div class="updated error otgs-is-dismissible"><p>';
|
693 |
-
printf( __( "To get automatic updates, you need to register %s for this site. %sRegister %s%s", 'sitepress' ),
|
694 |
-
$nag['product_name'], '<a class="button-primary" href="' . $this->menu_url() . '">', $nag['product_name'], '</a>' );
|
695 |
-
|
696 |
-
echo '</p>';
|
697 |
-
echo '<span class="installer-dismiss-nag notice-dismiss" data-repository="' . $nag['repository_id'] . '"><span class="screen-reader-text">' . __( 'Dismiss', 'sitepress' ) . '</span></span>';
|
698 |
-
echo '</div>';
|
699 |
-
}
|
700 |
-
}
|
701 |
-
|
702 |
-
}
|
703 |
-
|
704 |
-
}
|
705 |
-
|
706 |
-
}
|
707 |
-
|
708 |
-
public function dismiss_nag() {
|
709 |
-
$this->settings['dismissed_nags'][ $_POST['repository'] ] = 1;
|
710 |
-
|
711 |
-
$this->save_settings();
|
712 |
-
|
713 |
-
echo json_encode( array() );
|
714 |
-
exit;
|
715 |
-
}
|
716 |
-
|
717 |
-
public function add_install_plugins_tab( $tabs ) {
|
718 |
-
|
719 |
-
$tabs['commercial'] = __( 'Commercial', 'installer' );
|
720 |
-
|
721 |
-
return $tabs;
|
722 |
-
}
|
723 |
-
|
724 |
-
public function load_repositories_list() {
|
725 |
-
global $wp_installer_instances;
|
726 |
-
|
727 |
-
foreach ( $wp_installer_instances as $instance ) {
|
728 |
-
|
729 |
-
if ( file_exists( dirname( $instance['bootfile'] ) . '/repositories.xml' ) ) {
|
730 |
-
$config_file = dirname( $instance['bootfile'] ) . '/repositories.xml';
|
731 |
-
|
732 |
-
if ( file_exists( dirname( $instance['bootfile'] ) . '/repositories.sandbox.xml' ) ) {
|
733 |
-
$config_file = dirname( $instance['bootfile'] ) . '/repositories.sandbox.xml';
|
734 |
-
add_filter( 'https_ssl_verify', '__return_false' );
|
735 |
-
}
|
736 |
-
|
737 |
-
$repos = simplexml_load_file( $config_file );
|
738 |
-
|
739 |
-
if ( $repos ) {
|
740 |
-
foreach ( $repos as $repo ) {
|
741 |
-
$id = strval( $repo->id );
|
742 |
-
|
743 |
-
$data['api-url'] = strval( $repo->apiurl );
|
744 |
-
$data['products'] = strval( $repo->products );
|
745 |
-
|
746 |
-
// excludes rule;
|
747 |
-
if ( isset( $this->config['repositories_exclude'] ) && in_array( $id, $this->config['repositories_exclude'] ) ) {
|
748 |
-
continue;
|
749 |
-
}
|
750 |
-
|
751 |
-
// includes rule;
|
752 |
-
if ( isset( $this->config['repositories_include'] ) && ! in_array( $id, $this->config['repositories_include'] ) ) {
|
753 |
-
continue;
|
754 |
-
}
|
755 |
-
|
756 |
-
$this->repositories[ $id ] = $data;
|
757 |
-
|
758 |
-
}
|
759 |
-
}
|
760 |
-
|
761 |
-
}
|
762 |
-
}
|
763 |
-
|
764 |
-
}
|
765 |
-
|
766 |
-
public function filter_repositories_list() {
|
767 |
-
|
768 |
-
if ( ! empty( $this->settings['repositories'] ) ) {
|
769 |
-
foreach ( $this->settings['repositories'] as $id => $repo_data ) {
|
770 |
-
|
771 |
-
// excludes rule;
|
772 |
-
if ( isset( $this->config['repositories_exclude'] ) && in_array( $id, $this->config['repositories_exclude'] ) ) {
|
773 |
-
unset( $this->settings['repositories'][ $id ] );
|
774 |
-
}
|
775 |
-
|
776 |
-
// includes rule;
|
777 |
-
if ( isset( $this->config['repositories_include'] ) && ! in_array( $id, $this->config['repositories_include'] ) ) {
|
778 |
-
unset( $this->settings['repositories'][ $id ] );
|
779 |
-
}
|
780 |
-
|
781 |
-
|
782 |
-
}
|
783 |
-
}
|
784 |
-
|
785 |
-
|
786 |
-
}
|
787 |
-
|
788 |
-
public function refresh_repositories_data() {
|
789 |
-
static $checked = false;
|
790 |
-
|
791 |
-
if ( defined( 'OTGS_DISABLE_AUTO_UPDATES' ) && OTGS_DISABLE_AUTO_UPDATES && empty( $_GET['force-check'] ) || $checked ) {
|
792 |
-
|
793 |
-
if ( empty( $this->settings['repositories'] ) && $this->is_repositories_page() ) {
|
794 |
-
|
795 |
-
foreach ( $this->repositories as $id => $data ) {
|
796 |
-
$repository_names[] = $id;
|
797 |
-
|
798 |
-
}
|
799 |
-
|
800 |
-
$error = sprintf( __( "Installer cannot display the products information because the automatic updating for %s was explicitly disabled with the configuration below (usually in wp-config.php):", 'installer' ), strtoupper( join( ', ', $repository_names ) ) );
|
801 |
-
$error .= '<br /><br /><code>define("OTGS_DISABLE_AUTO_UPDATES", true);</code><br /><br />';
|
802 |
-
$error .= sprintf( __( "In order to see the products information, please run the %smanual updates check%s to initialize the products list or (temporarily) remove the above code.", 'installer' ), '<a href="' . admin_url( 'update-core.php' ) . '">', '</a>' );
|
803 |
-
|
804 |
-
$this->register_admin_message( $error, 'error' );
|
805 |
-
|
806 |
-
|
807 |
-
}
|
808 |
-
|
809 |
-
return;
|
810 |
-
}
|
811 |
-
|
812 |
-
$checked = true;
|
813 |
-
|
814 |
-
foreach ( $this->repositories as $id => $data ) {
|
815 |
-
|
816 |
-
$response = wp_remote_get( $data['products'] );
|
817 |
-
|
818 |
-
if ( is_wp_error( $response ) ) {
|
819 |
-
// http fallback
|
820 |
-
$data['products'] = preg_replace( "@^https://@", 'http://', $data['products'] );
|
821 |
-
$response = wp_remote_get( $data['products'] );
|
822 |
-
}
|
823 |
-
|
824 |
-
if ( is_wp_error( $response ) ) {
|
825 |
-
|
826 |
-
$error = sprintf( __( "Installer cannot contact our updates server to get information about the available products and check for new versions. If you are seeing this message for the first time, you can ignore it, as it may be a temporary communication problem. If the problem persists and your WordPress admin is slowing down, you can disable automated version checks. Add the following line to your wp-config.php file:", 'installer' ), strtoupper( $id ) );
|
827 |
-
$error .= '<br /><br /><code>define("OTGS_DISABLE_AUTO_UPDATES", true);</code>';
|
828 |
-
|
829 |
-
$this->register_admin_message( $error, 'error' );
|
830 |
-
|
831 |
-
continue;
|
832 |
-
}
|
833 |
-
|
834 |
-
if ( $response && isset( $response['response']['code'] ) && $response['response']['code'] == 200 ) {
|
835 |
-
$body = wp_remote_retrieve_body( $response );
|
836 |
-
if ( $body ) {
|
837 |
-
$products = json_decode( $body, true );
|
838 |
-
|
839 |
-
if ( is_array( $products ) ) {
|
840 |
-
$products['downloads'] = WP_Installer_Channels()->filter_downloads_by_channel( $id, $products['downloads'] );
|
841 |
-
$this->set_release_notes( $products['downloads'] );
|
842 |
-
|
843 |
-
$this->settings['repositories'][ $id ]['data'] = $products;
|
844 |
-
$this->_pre_1_8_backwards_compatibility( $this->settings );
|
845 |
-
}
|
846 |
-
}
|
847 |
-
|
848 |
-
}
|
849 |
-
|
850 |
-
$this->log( sprintf( "Checked for %s updates: %s", $id, $data['products'] ) );
|
851 |
-
|
852 |
-
|
853 |
-
}
|
854 |
-
|
855 |
-
// cleanup
|
856 |
-
if ( empty( $this->settings['repositories'] ) ) {
|
857 |
-
$this->settings['repositories'] = array();
|
858 |
-
}
|
859 |
-
foreach ( $this->settings['repositories'] as $id => $data ) {
|
860 |
-
if ( ! in_array( $id, array_keys( $this->repositories ) ) ) {
|
861 |
-
unset( $this->settings['repositories'][ $id ] );
|
862 |
-
}
|
863 |
-
}
|
864 |
-
|
865 |
-
$this->settings['last_repositories_update'] = time();
|
866 |
-
|
867 |
-
$this->save_settings();
|
868 |
-
|
869 |
-
}
|
870 |
-
|
871 |
-
/**
|
872 |
-
* Gets the release notes for the available version from the changelog
|
873 |
-
*
|
874 |
-
* @param array $all_downloads
|
875 |
-
*/
|
876 |
-
private function set_release_notes( &$all_downloads ) {
|
877 |
-
foreach ( $all_downloads as $kind => $downloads ) {
|
878 |
-
foreach ( $downloads as $slug => $download ) {
|
879 |
-
$start = strpos( $download['changelog'], '<h4>' . $download['version'] . '</h4>' );
|
880 |
-
if ( $start !== false ) {
|
881 |
-
$start += strlen( $download['version'] ) + 9;
|
882 |
-
$end = strpos( $download['changelog'], '<h4>', 4 );
|
883 |
-
if ( $end ) {
|
884 |
-
$release_notes = substr( $download['changelog'], $start, $end - $start );
|
885 |
-
} else {
|
886 |
-
$release_notes = substr( $download['changelog'], $start );
|
887 |
-
}
|
888 |
-
}
|
889 |
-
$all_downloads[ $kind ][ $slug ]['release-notes'] = ! empty( $release_notes ) ? $release_notes : '';
|
890 |
-
}
|
891 |
-
}
|
892 |
-
}
|
893 |
-
|
894 |
-
public function show_products( $args = array() ) {
|
895 |
-
|
896 |
-
$screen = get_current_screen();
|
897 |
-
|
898 |
-
if ( $screen->base == 'settings_page_installer' ) { // settings page
|
899 |
-
echo '<div class="wrap">';
|
900 |
-
echo '<h2>' . __( 'Installer', 'installer' ) . '</h2>';
|
901 |
-
echo '<br />';
|
902 |
-
}
|
903 |
-
|
904 |
-
if ( ! is_array( $args ) ) {
|
905 |
-
$args = array();
|
906 |
-
}
|
907 |
-
if ( empty( $args['template'] ) ) {
|
908 |
-
$args['template'] = 'default';
|
909 |
-
}
|
910 |
-
|
911 |
-
$this->filter_repositories_list();
|
912 |
-
|
913 |
-
if ( ! empty( $this->settings['repositories'] ) ) {
|
914 |
-
|
915 |
-
$this->localize_strings();
|
916 |
-
$this->set_filtered_prices( $args );
|
917 |
-
$this->set_hierarchy_and_order();
|
918 |
-
|
919 |
-
foreach ( $this->settings['repositories'] as $repository_id => $repository ) {
|
920 |
-
|
921 |
-
if ( $args['template'] == 'compact' ) {
|
922 |
-
|
923 |
-
if ( isset( $args['repository'] ) && $args['repository'] == $repository_id ) {
|
924 |
-
include $this->plugin_path() . '/templates/products-compact.php';
|
925 |
-
}
|
926 |
-
|
927 |
-
} else {
|
928 |
-
|
929 |
-
include $this->plugin_path() . '/templates/repository-listing.php';
|
930 |
-
|
931 |
-
}
|
932 |
-
|
933 |
-
unset( $site_key, $subscription_type, $expired, $upgrade_options, $products_avaliable );
|
934 |
-
|
935 |
-
}
|
936 |
-
|
937 |
-
} else {
|
938 |
-
|
939 |
-
echo '<center>' . __( 'No repositories defined.', 'installer' ) . '</center>';
|
940 |
-
|
941 |
-
}
|
942 |
-
|
943 |
-
if ( $screen->base == 'settings_page_installer' ) { // settings page
|
944 |
-
echo '</div>';
|
945 |
-
}
|
946 |
-
|
947 |
-
|
948 |
-
}
|
949 |
-
|
950 |
-
public function get_product_price( $repository_id, $package_id, $product_id, $incl_discount = false ) {
|
951 |
-
|
952 |
-
$price = false;
|
953 |
-
|
954 |
-
foreach ( $this->settings['repositories'][ $repository_id ]['data']['packages'] as $package ) {
|
955 |
-
|
956 |
-
if ( $package['id'] == $package_id ) {
|
957 |
-
if ( isset( $package['products'][ $product_id ] ) ) {
|
958 |
-
if ( $incl_discount && isset( $package['products'][ $product_id ]['price_disc'] ) ) {
|
959 |
-
$price = $package['products'][ $product_id ]['price_disc'];
|
960 |
-
} elseif ( isset( $package['products'][ $product_id ]['price'] ) ) {
|
961 |
-
$price = $package['products'][ $product_id ]['price'];
|
962 |
-
}
|
963 |
-
}
|
964 |
-
break;
|
965 |
-
}
|
966 |
-
}
|
967 |
-
|
968 |
-
return $price;
|
969 |
-
}
|
970 |
-
|
971 |
-
private function _render_product_packages( $packages, $subscription_type, $expired, $upgrade_options, $repository_id ) {
|
972 |
-
|
973 |
-
$data = array();
|
974 |
-
|
975 |
-
foreach ( $packages as $package_id => $package ) {
|
976 |
-
|
977 |
-
$row = array( 'products' => array(), 'downloads' => array() );
|
978 |
-
foreach ( $package['products'] as $product ) {
|
979 |
-
|
980 |
-
// filter out free subscriptions from being displayed as buying options
|
981 |
-
if ( empty( $product['price'] ) && ( empty( $subscription_type ) || $expired ) ) {
|
982 |
-
continue;
|
983 |
-
}
|
984 |
-
|
985 |
-
//consider equivalent subscriptions
|
986 |
-
if ( empty( $product['subscription_type_equivalent'] ) ) {
|
987 |
-
$product['subscription_type_equivalent'] = '';
|
988 |
-
}
|
989 |
-
|
990 |
-
// buy base
|
991 |
-
if ( empty( $subscription_type ) || $expired ) {
|
992 |
-
|
993 |
-
$p['url'] = $this->append_parameters_to_buy_url( $product['url'], $repository_id );
|
994 |
-
if ( ! empty( $product['price_disc'] ) ) {
|
995 |
-
$p['label'] = $product['call2action'] . ' - ' . sprintf( '$%s %s$%d%s (USD)', $product['price_disc'], ' <del>', $product['price'], '</del>' );
|
996 |
-
} else {
|
997 |
-
$p['label'] = $product['call2action'] . ' - ' . sprintf( '$%d (USD)', $product['price'] );
|
998 |
-
}
|
999 |
-
$row['products'][] = $p;
|
1000 |
-
|
1001 |
-
// renew
|
1002 |
-
} elseif ( isset( $subscription_type ) && ( $product['subscription_type'] == $subscription_type || $product['subscription_type_equivalent'] == $subscription_type ) ) {
|
1003 |
-
|
1004 |
-
if ( $product['renewals'] ) {
|
1005 |
-
foreach ( $product['renewals'] as $renewal ) {
|
1006 |
-
$p['url'] = $this->append_parameters_to_buy_url( $renewal['url'], $repository_id );
|
1007 |
-
$p['label'] = $renewal['call2action'] . ' - ' . sprintf( '$%d (USD)', $renewal['price'] );
|
1008 |
-
}
|
1009 |
-
|
1010 |
-
$row['products'][] = $p;
|
1011 |
-
}
|
1012 |
-
|
1013 |
-
}
|
1014 |
-
|
1015 |
-
// upgrades
|
1016 |
-
if ( ! empty( $upgrade_options[ $product['subscription_type'] ] ) ) {
|
1017 |
-
|
1018 |
-
foreach ( $upgrade_options[ $product['subscription_type'] ] as $stype => $upgrade ) {
|
1019 |
-
if ( $stype != $subscription_type ) {
|
1020 |
-
continue;
|
1021 |
-
}
|
1022 |
-
|
1023 |
-
$p['url'] = $this->append_parameters_to_buy_url( $upgrade['url'], $repository_id );
|
1024 |
-
if ( ! empty( $upgrade['price_disc'] ) ) {
|
1025 |
-
$p['label'] = $upgrade['call2action'] . ' - ' . sprintf( '$%s %s$%d%s (USD)', $upgrade['price_disc'], ' <del>', $upgrade['price'], '</del>' );
|
1026 |
-
} else {
|
1027 |
-
$p['label'] = $upgrade['call2action'] . ' - ' . sprintf( '$%d (USD)', $upgrade['price'] );
|
1028 |
-
}
|
1029 |
-
$row['products'][] = $p;
|
1030 |
-
|
1031 |
-
}
|
1032 |
-
|
1033 |
-
}
|
1034 |
-
|
1035 |
-
// downloads
|
1036 |
-
if ( isset( $subscription_type ) && ! $expired && ( $product['subscription_type'] == $subscription_type || $product['subscription_type_equivalent'] == $subscription_type ) ) {
|
1037 |
-
|
1038 |
-
foreach ( $product['plugins'] as $plugin_slug ) {
|
1039 |
-
$row['downloads'][ $plugin_slug ] = $this->settings['repositories'][ $repository_id ]['data']['downloads']['plugins'][ $plugin_slug ];
|
1040 |
-
}
|
1041 |
-
|
1042 |
-
}
|
1043 |
-
|
1044 |
-
//subpackages
|
1045 |
-
if ( ! empty( $package['sub-packages'] ) ) {
|
1046 |
-
$row['sub-packages'] = $package['sub-packages'];
|
1047 |
-
}
|
1048 |
-
|
1049 |
-
}
|
1050 |
-
|
1051 |
-
$row['id'] = $package['id'];
|
1052 |
-
$row['image_url'] = $package['image_url'];
|
1053 |
-
$row['name'] = $package['name'];
|
1054 |
-
$row['description'] = $package['description'];
|
1055 |
-
|
1056 |
-
if ( ! empty( $row['products'] ) || ! empty( $row['downloads'] ) || ! empty( $row['sub-packages'] ) ) {
|
1057 |
-
$data[] = $row;
|
1058 |
-
}
|
1059 |
-
|
1060 |
-
|
1061 |
-
}
|
1062 |
-
|
1063 |
-
return $data;
|
1064 |
-
|
1065 |
-
}
|
1066 |
-
|
1067 |
-
public function get_extra_url_parameters() {
|
1068 |
-
|
1069 |
-
$parameters = array();
|
1070 |
-
|
1071 |
-
if ( ! empty( $this->package_source ) ) {
|
1072 |
-
foreach ( $this->package_source as $key => $val ) {
|
1073 |
-
$parameters[ $key ] = $val;
|
1074 |
-
}
|
1075 |
-
}
|
1076 |
-
|
1077 |
-
$parameters['installer_version'] = WP_INSTALLER_VERSION;
|
1078 |
-
$parameters['theme'] = wp_get_theme()->get( 'Name' );
|
1079 |
-
$parameters['site_name'] = get_bloginfo( 'name' );
|
1080 |
-
|
1081 |
-
return $parameters;
|
1082 |
-
}
|
1083 |
-
|
1084 |
-
public function append_parameters_to_buy_url( $url, $repository_id, $args = array() ) {
|
1085 |
-
|
1086 |
-
$url = add_query_arg( array( 'icl_site_url' => $this->get_installer_site_url( $repository_id ) ), $url );
|
1087 |
-
|
1088 |
-
$affiliate_id = false;
|
1089 |
-
$affiliate_key = false;
|
1090 |
-
|
1091 |
-
// Add extra parameters for custom Installer packages
|
1092 |
-
if ( ! empty( $this->package_source ) ) {
|
1093 |
-
$extra = $this->get_extra_url_parameters();
|
1094 |
-
|
1095 |
-
if ( ! empty( $extra['repository'] ) && $extra['repository'] == $repository_id ) {
|
1096 |
-
|
1097 |
-
if ( ! empty( $extra['affiliate_key'] ) && ! empty( $extra['user_id'] ) ) {
|
1098 |
-
$this->config[ 'affiliate_id:' . $repository_id ] = $extra['user_id'];
|
1099 |
-
$this->config[ 'affiliate_key:' . $repository_id ] = $extra['affiliate_key'];
|
1100 |
-
unset( $extra['affiliate_key'], $extra['user_id'], $extra['repository'] ); // no need to include these ones
|
1101 |
-
}
|
1102 |
-
|
1103 |
-
$url = add_query_arg( $extra, $url );
|
1104 |
-
}
|
1105 |
-
|
1106 |
-
}
|
1107 |
-
|
1108 |
-
if ( isset( $this->config[ 'affiliate_id:' . $repository_id ] ) && isset( $this->config[ 'affiliate_key:' . $repository_id ] ) ) {
|
1109 |
-
|
1110 |
-
$affiliate_id = $this->config[ 'affiliate_id:' . $repository_id ];
|
1111 |
-
$affiliate_key = $this->config[ 'affiliate_key:' . $repository_id ];
|
1112 |
-
|
1113 |
-
} elseif ( isset( $args[ 'affiliate_id:' . $repository_id ] ) && isset( $args[ 'affiliate_key:' . $repository_id ] ) ) {
|
1114 |
-
|
1115 |
-
$affiliate_id = $args[ 'affiliate_id:' . $repository_id ];
|
1116 |
-
$affiliate_key = $args[ 'affiliate_key:' . $repository_id ];
|
1117 |
-
|
1118 |
-
} elseif ( defined( 'ICL_AFFILIATE_ID' ) && defined( 'ICL_AFFILIATE_KEY' ) ) { //support for 1 repo
|
1119 |
-
|
1120 |
-
$affiliate_id = ICL_AFFILIATE_ID;
|
1121 |
-
$affiliate_key = ICL_AFFILIATE_KEY;
|
1122 |
-
|
1123 |
-
} elseif ( isset( $this->config['affiliate_id'] ) && isset( $this->config['affiliate_key'] ) ) {
|
1124 |
-
// BACKWARDS COMPATIBILITY
|
1125 |
-
$affiliate_id = $this->config['affiliate_id'];
|
1126 |
-
$affiliate_key = $this->config['affiliate_key'];
|
1127 |
-
}
|
1128 |
-
|
1129 |
-
if ( $affiliate_id && $affiliate_key ) {
|
1130 |
-
$url = add_query_arg( array( 'aid' => $affiliate_id, 'affiliate_key' => $affiliate_key ), $url );
|
1131 |
-
}
|
1132 |
-
|
1133 |
-
if ( $repository_id == 'wpml' ) {
|
1134 |
-
$url = add_query_arg( array(
|
1135 |
-
'using_icl' => $this->_using_icl,
|
1136 |
-
'wpml_version' => $this->_wpml_version
|
1137 |
-
), $url );
|
1138 |
-
}
|
1139 |
-
|
1140 |
-
$url = apply_filters( 'wp_installer_buy_url', $url );
|
1141 |
-
|
1142 |
-
$url = esc_url( $url );
|
1143 |
-
|
1144 |
-
return $url;
|
1145 |
-
|
1146 |
-
}
|
1147 |
-
|
1148 |
-
public function save_site_key( $args = array() ) {
|
1149 |
-
|
1150 |
-
$error = '';
|
1151 |
-
|
1152 |
-
if ( isset( $args['repository_id'] ) ) {
|
1153 |
-
$repository_id = $args['repository_id'];
|
1154 |
-
} elseif ( isset( $_POST['repository_id'] ) ) {
|
1155 |
-
$repository_id = sanitize_text_field( $_POST['repository_id'] );
|
1156 |
-
} else {
|
1157 |
-
$repository_id = false;
|
1158 |
-
}
|
1159 |
-
|
1160 |
-
if ( isset( $args['nonce'] ) ) {
|
1161 |
-
$nonce = $args['nonce'];
|
1162 |
-
} elseif ( isset( $_POST['nonce'] ) ) {
|
1163 |
-
$nonce = sanitize_text_field( $_POST['nonce'] );
|
1164 |
-
} else {
|
1165 |
-
$nonce = '';
|
1166 |
-
}
|
1167 |
-
|
1168 |
-
if ( isset( $args['site_key'] ) ) {
|
1169 |
-
$site_key = $args['site_key'];
|
1170 |
-
} else {
|
1171 |
-
$site_key = sanitize_text_field( $_POST[ 'site_key_' . $repository_id ] );
|
1172 |
-
}
|
1173 |
-
$site_key = preg_replace( "/[^A-Za-z0-9]/", '', $site_key );
|
1174 |
-
|
1175 |
-
if ( $repository_id && $nonce && wp_create_nonce( 'save_site_key_' . $repository_id ) == $nonce ) {
|
1176 |
-
|
1177 |
-
try {
|
1178 |
-
$should_send_components_data = (int) isset( $_POST['repo_allowed_to_send_data'] );
|
1179 |
-
$components_setting = new OTGS_Installer_WP_Share_Local_Components_Setting();
|
1180 |
-
$components_setting->save( array( $repository_id => $should_send_components_data ) );
|
1181 |
-
|
1182 |
-
$subscription_data = $this->fetch_subscription_data( $repository_id, $site_key, self::SITE_KEY_VALIDATION_SOURCE_REGISTRATION );
|
1183 |
-
|
1184 |
-
if ( $subscription_data ) {
|
1185 |
-
$this->settings['repositories'][ $repository_id ]['subscription'] = array(
|
1186 |
-
'key' => $site_key,
|
1187 |
-
'data' => $subscription_data,
|
1188 |
-
'registered_by' => get_current_user_id(),
|
1189 |
-
'site_url' => get_site_url(),
|
1190 |
-
);
|
1191 |
-
$this->save_settings();
|
1192 |
-
} else {
|
1193 |
-
$error = __( 'Invalid site key for the current site.', 'installer' )
|
1194 |
-
. '<br /><div class="installer-footnote">' . __( 'Please note that the site key is case sensitive.', 'installer' ) . '</div>';
|
1195 |
-
}
|
1196 |
-
|
1197 |
-
} catch ( Exception $e ) {
|
1198 |
-
$error = $e->getMessage();
|
1199 |
-
if ( preg_match( '#Could not resolve host: (.*)#', $error, $matches ) || preg_match( '#Couldn\'t resolve host \'(.*)\'#', $error, $matches ) ) {
|
1200 |
-
$error = sprintf( __( "%s cannot access %s to register. Try again to see if it's a temporary problem. If the problem continues, make sure that this site has access to the Internet. You can still use the plugin without registration, but you will not receive automated updates.", 'installer' ),
|
1201 |
-
'<strong><i>' . $this->get_generic_product_name( $repository_id ) . '</i></strong>',
|
1202 |
-
'<strong><i>' . $matches[1] . '</i></strong>'
|
1203 |
-
);
|
1204 |
-
}
|
1205 |
-
}
|
1206 |
-
|
1207 |
-
}
|
1208 |
-
|
1209 |
-
$return = array( 'error' => $error );
|
1210 |
-
|
1211 |
-
if ( $this->api_debug ) {
|
1212 |
-
$return['debug'] = $this->api_debug;
|
1213 |
-
}
|
1214 |
-
|
1215 |
-
if ( ! empty( $args['return'] ) ) {
|
1216 |
-
return $return;
|
1217 |
-
} else {
|
1218 |
-
echo json_encode( $return );
|
1219 |
-
exit;
|
1220 |
-
}
|
1221 |
-
|
1222 |
-
}
|
1223 |
-
|
1224 |
-
/**
|
1225 |
-
* Alias for WP_Installer::get_repository_site_key
|
1226 |
-
* @see WP_Installer::get_repository_site_key()
|
1227 |
-
*
|
1228 |
-
* @param string $repository_id
|
1229 |
-
*
|
1230 |
-
* @return string (site key) or bool
|
1231 |
-
*/
|
1232 |
-
public function get_site_key( $repository_id ) {
|
1233 |
-
return WP_Installer::get_repository_site_key( $repository_id );
|
1234 |
-
}
|
1235 |
-
|
1236 |
-
public function remove_site_key( $repository_id, $refresh_repositories_data = true ) {
|
1237 |
-
if ( isset( $this->settings['repositories'][ $repository_id ] ) ) {
|
1238 |
-
unset( $this->settings['repositories'][ $repository_id ]['subscription'] );
|
1239 |
-
$this->save_settings();
|
1240 |
-
if( $refresh_repositories_data ){
|
1241 |
-
$this->refresh_repositories_data();
|
1242 |
-
}
|
1243 |
-
}
|
1244 |
-
}
|
1245 |
-
|
1246 |
-
public function remove_site_key_ajax() {
|
1247 |
-
if ( $_POST['nonce'] == wp_create_nonce( 'remove_site_key_' . $_POST['repository_id'] ) ) {
|
1248 |
-
$this->remove_site_key( $_POST['repository_id'] );
|
1249 |
-
}
|
1250 |
-
exit;
|
1251 |
-
}
|
1252 |
-
|
1253 |
-
public function validate_repository_subscription() {
|
1254 |
-
$repository_id = isset( $_GET['validate_repository'] ) ? sanitize_text_field( $_GET['validate_repository'] ) : false;
|
1255 |
-
if ( $repository_id ) {
|
1256 |
-
|
1257 |
-
$site_key = $this->get_site_key( $repository_id );
|
1258 |
-
if ( $site_key ) {
|
1259 |
-
$subscription_data = $this->fetch_subscription_data( $repository_id, $site_key, self::SITE_KEY_VALIDATION_SOURCE_REVALIDATION );
|
1260 |
-
if ( empty( $subscription_data ) ) {
|
1261 |
-
unset( $this->settings['repositories'][ $repository_id ]['subscription'] );
|
1262 |
-
delete_site_transient( 'update_plugins' );
|
1263 |
-
$this->save_settings();
|
1264 |
-
}
|
1265 |
-
}
|
1266 |
-
|
1267 |
-
wp_redirect( $this->menu_url() . '#repository-' . $repository_id );
|
1268 |
-
exit;
|
1269 |
-
|
1270 |
-
}
|
1271 |
-
|
1272 |
-
}
|
1273 |
-
|
1274 |
-
public function update_site_key() {
|
1275 |
-
|
1276 |
-
$error = '';
|
1277 |
-
|
1278 |
-
$repository_id = sanitize_text_field( $_POST['repository_id'] );
|
1279 |
-
if ( $_POST['nonce'] == wp_create_nonce( 'update_site_key_' . $repository_id ) ) {
|
1280 |
-
|
1281 |
-
$site_key = $this->get_site_key( $_POST['repository_id'] );
|
1282 |
-
|
1283 |
-
if ( $site_key ) {
|
1284 |
-
try {
|
1285 |
-
$subscription_data = $this->fetch_subscription_data( $repository_id, $site_key, self::SITE_KEY_VALIDATION_SOURCE_UPDATES_CHECK );
|
1286 |
-
|
1287 |
-
if ( $subscription_data ) {
|
1288 |
-
$this->settings['repositories'][ $repository_id ]['subscription'] = array(
|
1289 |
-
'key' => $site_key,
|
1290 |
-
'data' => $subscription_data,
|
1291 |
-
'registered_by' => get_current_user_id()
|
1292 |
-
);
|
1293 |
-
|
1294 |
-
//also refresh products information
|
1295 |
-
$this->refresh_repositories_data();
|
1296 |
-
|
1297 |
-
$this->save_settings();
|
1298 |
-
|
1299 |
-
} else {
|
1300 |
-
unset( $this->settings['repositories'][ $repository_id ]['subscription'] );
|
1301 |
-
$error = __( 'Invalid site key for the current site. If the error persists, try to unregister first and then register again with the same site key.', 'installer' );
|
1302 |
-
}
|
1303 |
-
|
1304 |
-
|
1305 |
-
} catch ( Exception $e ) {
|
1306 |
-
$error = $e->getMessage();
|
1307 |
-
if ( preg_match( '#Could not resolve host: (.*)#', $error, $matches ) || preg_match( '#Couldn\'t resolve host \'(.*)\'#', $error, $matches ) ) {
|
1308 |
-
$error = sprintf( __( "%s cannot access %s to register. Try again to see if it's a temporary problem. If the problem continues, make sure that this site has access to the Internet. You can still use the plugin without registration, but you will not receive automated updates.", 'installer' ),
|
1309 |
-
'<strong><i>' . $this->get_generic_product_name( $repository_id ) . '</i></strong>',
|
1310 |
-
'<strong><i>' . $matches[1] . '</i></strong>'
|
1311 |
-
);
|
1312 |
-
}
|
1313 |
-
}
|
1314 |
-
|
1315 |
-
}
|
1316 |
-
|
1317 |
-
}
|
1318 |
-
|
1319 |
-
echo json_encode( array( 'error' => $error ) );
|
1320 |
-
|
1321 |
-
exit;
|
1322 |
-
}
|
1323 |
-
|
1324 |
-
public function api_debug_log( $text ) {
|
1325 |
-
|
1326 |
-
if ( defined( 'WPML_DEBUG_INSTALLER' ) && WPML_DEBUG_INSTALLER ) {
|
1327 |
-
|
1328 |
-
if ( ! is_scalar( $text ) ) {
|
1329 |
-
$text = print_r( $text, 1 );
|
1330 |
-
}
|
1331 |
-
|
1332 |
-
$this->api_debug .= $text . "\n";
|
1333 |
-
|
1334 |
-
}
|
1335 |
-
|
1336 |
-
}
|
1337 |
-
|
1338 |
-
public function fetch_subscription_data( $repository_id, $site_key, $source = self::SITE_KEY_VALIDATION_SOURCE_OTHER ) {
|
1339 |
-
|
1340 |
-
$subscription_data = false;
|
1341 |
-
|
1342 |
-
$args['body'] = array(
|
1343 |
-
'action' => 'site_key_validation',
|
1344 |
-
'site_key' => $site_key,
|
1345 |
-
'site_url' => $this->get_installer_site_url( $repository_id ),
|
1346 |
-
'source' => $source
|
1347 |
-
);
|
1348 |
-
|
1349 |
-
if ( $repository_id == 'wpml' ) {
|
1350 |
-
$args['body']['using_icl'] = $this->_using_icl;
|
1351 |
-
$args['body']['wpml_version'] = $this->_wpml_version;
|
1352 |
-
}
|
1353 |
-
|
1354 |
-
$args['body']['installer_version'] = WP_INSTALLER_VERSION;
|
1355 |
-
$args['body']['theme'] = wp_get_theme()->get( 'Name' );
|
1356 |
-
$args['body']['site_name'] = get_bloginfo( 'name' );
|
1357 |
-
$args['body']['repository_id'] = $repository_id;
|
1358 |
-
|
1359 |
-
$args['body']['versions'] = $this->get_local_product_versions( $repository_id );
|
1360 |
-
|
1361 |
-
$args['timeout'] = 45;
|
1362 |
-
|
1363 |
-
// Add extra parameters for custom Installer packages
|
1364 |
-
if ( ! empty( $this->package_source ) ) {
|
1365 |
-
$extra = $this->get_extra_url_parameters();
|
1366 |
-
if ( ! empty( $extra['repository'] ) && $extra['repository'] == $repository_id ) {
|
1367 |
-
unset( $extra['repository'] );
|
1368 |
-
foreach ( $extra as $key => $val ) {
|
1369 |
-
$args['body'][ $key ] = $val;
|
1370 |
-
}
|
1371 |
-
}
|
1372 |
-
}
|
1373 |
-
|
1374 |
-
$response = wp_remote_post(
|
1375 |
-
$this->repositories[ $repository_id ]['api-url'],
|
1376 |
-
apply_filters( 'installer_fetch_subscription_data_request', $args )
|
1377 |
-
);
|
1378 |
-
|
1379 |
-
$this->api_debug_log( "POST {$this->repositories[$repository_id]['api-url']}" );
|
1380 |
-
$this->api_debug_log( $args );
|
1381 |
-
|
1382 |
-
$this->log( "POST {$this->repositories[$repository_id]['api-url']} - fetch subscription data" );
|
1383 |
-
|
1384 |
-
if ( ! is_wp_error( $response ) ) {
|
1385 |
-
$datas = wp_remote_retrieve_body( $response );
|
1386 |
-
|
1387 |
-
if ( is_serialized( $datas ) ) {
|
1388 |
-
$data = unserialize( $datas );
|
1389 |
-
$this->api_debug_log( $data );
|
1390 |
-
|
1391 |
-
if ( ! empty( $data->subscription_data ) ) {
|
1392 |
-
$subscription_data = $data->subscription_data;
|
1393 |
-
}
|
1394 |
-
|
1395 |
-
do_action( 'installer_fetched_subscription_data', $data, $repository_id );
|
1396 |
-
|
1397 |
-
} else {
|
1398 |
-
$this->api_debug_log( $datas );
|
1399 |
-
}
|
1400 |
-
|
1401 |
-
} else {
|
1402 |
-
|
1403 |
-
$this->api_debug_log( $response );
|
1404 |
-
throw new Exception( $response->get_error_message() );
|
1405 |
-
}
|
1406 |
-
|
1407 |
-
return $subscription_data;
|
1408 |
-
|
1409 |
-
}
|
1410 |
-
|
1411 |
-
function get_local_product_versions( $repository_id ) {
|
1412 |
-
|
1413 |
-
$versions = array();
|
1414 |
-
|
1415 |
-
foreach ( $this->settings['repositories'][ $repository_id ]['data']['packages'] as $package_id => $package ) {
|
1416 |
-
|
1417 |
-
foreach ( $package['products'] as $product_id => $product ) {
|
1418 |
-
|
1419 |
-
foreach ( $product['plugins'] as $plugin_slug ) {
|
1420 |
-
|
1421 |
-
$download = $this->settings['repositories'][ $repository_id ]['data']['downloads']['plugins'][ $plugin_slug ];
|
1422 |
-
|
1423 |
-
if ( empty( $versions[ $download['slug'] ] ) ) {
|
1424 |
-
$v = $this->get_plugin_installed_version( $download['name'], $download['slug'] );
|
1425 |
-
if ( $v ) {
|
1426 |
-
$versions[ $download['slug'] ] = $v;
|
1427 |
-
}
|
1428 |
-
}
|
1429 |
-
|
1430 |
-
}
|
1431 |
-
|
1432 |
-
}
|
1433 |
-
|
1434 |
-
}
|
1435 |
-
|
1436 |
-
return $versions;
|
1437 |
-
}
|
1438 |
-
|
1439 |
-
public function get_repository_site_key( $repository_id ) {
|
1440 |
-
$site_key = false;
|
1441 |
-
|
1442 |
-
if ( ! empty( $this->settings['repositories'][ $repository_id ]['subscription']['key'] ) ) {
|
1443 |
-
$site_key = $this->settings['repositories'][ $repository_id ]['subscription']['key'];
|
1444 |
-
}
|
1445 |
-
|
1446 |
-
return $site_key;
|
1447 |
-
}
|
1448 |
-
|
1449 |
-
public function repository_has_valid_subscription( $repository_id ) {
|
1450 |
-
|
1451 |
-
$valid = false;
|
1452 |
-
|
1453 |
-
if ( ! empty( $this->settings['repositories'][ $repository_id ]['subscription'] ) ) {
|
1454 |
-
|
1455 |
-
$subscription = $this->settings['repositories'][ $repository_id ]['subscription']['data'];
|
1456 |
-
$valid = ( $subscription->status == 1 && ( strtotime( $subscription->expires ) > time() || empty( $subscription->expires ) ) ) || $subscription->status == 4;
|
1457 |
-
|
1458 |
-
}
|
1459 |
-
|
1460 |
-
return $valid;
|
1461 |
-
|
1462 |
-
}
|
1463 |
-
|
1464 |
-
public function repository_has_subscription( $repository_id ) {
|
1465 |
-
$key = false;
|
1466 |
-
if ( ! empty( $this->settings['repositories'][ $repository_id ]['subscription']['key'] ) ) {
|
1467 |
-
$key = $this->settings['repositories'][ $repository_id ]['subscription']['key'];
|
1468 |
-
}
|
1469 |
-
|
1470 |
-
return $key;
|
1471 |
-
|
1472 |
-
}
|
1473 |
-
|
1474 |
-
public function repository_has_expired_subscription( $repository_id ) {
|
1475 |
-
|
1476 |
-
return $this->repository_has_subscription( $repository_id ) && ! $this->repository_has_valid_subscription( $repository_id );
|
1477 |
-
|
1478 |
-
}
|
1479 |
-
|
1480 |
-
public function get_generic_product_name( $repository_id ) {
|
1481 |
-
|
1482 |
-
return $this->settings['repositories'][ $repository_id ]['data']['product-name'];
|
1483 |
-
|
1484 |
-
}
|
1485 |
-
|
1486 |
-
public function show_subscription_renew_warning( $repository_id, $subscription_id ) {
|
1487 |
-
|
1488 |
-
$show = false;
|
1489 |
-
|
1490 |
-
$data = $this->settings['repositories'][ $repository_id ]['data'];
|
1491 |
-
if ( ! empty( $data['subscriptions_meta'] ) ) {
|
1492 |
-
if ( isset( $data['subscriptions_meta']['expiration'] ) ) {
|
1493 |
-
|
1494 |
-
if ( ! empty( $data['subscriptions_meta']['expiration'][ $subscription_id ] ) ) {
|
1495 |
-
|
1496 |
-
$days = $data['subscriptions_meta']['expiration'][ $subscription_id ]['days_warning'];
|
1497 |
-
$message = $data['subscriptions_meta']['expiration'][ $subscription_id ]['warning_message'];
|
1498 |
-
|
1499 |
-
} else {
|
1500 |
-
|
1501 |
-
//defaults
|
1502 |
-
$days = 30;
|
1503 |
-
$message = __( 'You will have to renew your subscription in order to continue getting the updates and support.', 'installer' );
|
1504 |
-
|
1505 |
-
}
|
1506 |
-
|
1507 |
-
if ( ! empty( $this->settings['repositories'][ $repository_id ]['subscription'] ) ) {
|
1508 |
-
$subscription = $this->settings['repositories'][ $repository_id ]['subscription'];
|
1509 |
-
|
1510 |
-
if ( $subscription['data']->subscription_type == $subscription_id && ! empty( $subscription['data']->expires ) ) {
|
1511 |
-
|
1512 |
-
if ( strtotime( $subscription['data']->expires ) < strtotime( sprintf( "+%d day", $days ) ) ) {
|
1513 |
-
|
1514 |
-
$days_to_expiration = ceil( ( strtotime( $subscription['data']->expires ) - time() ) / 86400 );
|
1515 |
-
|
1516 |
-
echo '<div><p class="installer-warn-box">' .
|
1517 |
-
sprintf( _n( 'Your subscription expires in %d day.', 'Your subscription expires in %d days.', $days_to_expiration, 'installer' ), $days_to_expiration ) .
|
1518 |
-
'<br />' . $message .
|
1519 |
-
'</p></div>';
|
1520 |
-
|
1521 |
-
$show = true;
|
1522 |
-
|
1523 |
-
}
|
1524 |
-
|
1525 |
-
}
|
1526 |
-
|
1527 |
-
}
|
1528 |
-
|
1529 |
-
|
1530 |
-
}
|
1531 |
-
}
|
1532 |
-
|
1533 |
-
|
1534 |
-
return $show;
|
1535 |
-
|
1536 |
-
}
|
1537 |
-
|
1538 |
-
public function setup_plugins_renew_warnings() {
|
1539 |
-
|
1540 |
-
$plugins = get_plugins();
|
1541 |
-
|
1542 |
-
$subscriptions_with_warnings = array();
|
1543 |
-
foreach ( $this->settings['repositories'] as $repository_id => $repository ) {
|
1544 |
-
|
1545 |
-
if ( $this->repository_has_valid_subscription( $repository_id ) ) {
|
1546 |
-
$subscription_type = $this->settings['repositories'][ $repository_id ]['subscription']['data']->subscription_type;
|
1547 |
-
$expires = $this->settings['repositories'][ $repository_id ]['subscription']['data']->expires;
|
1548 |
-
|
1549 |
-
$never_expires = isset( $this->settings['repositories'][ $repository_id ]['subscription'] )
|
1550 |
-
&& empty( $this->settings['repositories'][ $repository_id ]['subscription']['data']->expires )
|
1551 |
-
&& (
|
1552 |
-
$this->settings['repositories'][ $repository_id ]['subscription']['data']->status == 4 ||
|
1553 |
-
$this->settings['repositories'][ $repository_id ]['subscription']['data']->status == 1
|
1554 |
-
);
|
1555 |
-
|
1556 |
-
if ( ! $never_expires ) {
|
1557 |
-
if ( isset( $this->settings['repositories'][ $repository_id ]['data']['subscriptions_meta']['expiration'][ $subscription_type ] ) ) {
|
1558 |
-
|
1559 |
-
$days_warning = $this->settings['repositories'][ $repository_id ]['data']['subscriptions_meta']['expiration'][ $subscription_type ]['days_warning'];
|
1560 |
-
$custom_message = $this->settings['repositories'][ $repository_id ]['data']['subscriptions_meta']['expiration'][ $subscription_type ]['warning_message'];
|
1561 |
-
|
1562 |
-
} else {
|
1563 |
-
//defaults
|
1564 |
-
$days_warning = 30;
|
1565 |
-
$custom_message = __( 'You will have to renew your subscription in order to continue getting the updates and support.', 'installer' );
|
1566 |
-
}
|
1567 |
-
|
1568 |
-
if ( strtotime( $expires ) < strtotime( sprintf( '+%d day', $days_warning ) ) ) {
|
1569 |
-
|
1570 |
-
$days_to_expiration = ceil( ( strtotime( $expires ) - time() ) / 86400 );
|
1571 |
-
|
1572 |
-
$message = sprintf( _n( 'Your subscription expires in %d day.', 'Your subscription expires in %d days.', $days_to_expiration, 'installer' ), $days_to_expiration );
|
1573 |
-
$subscriptions_with_warnings[ $subscription_type ] = $message . ' ' . $custom_message;
|
1574 |
-
|
1575 |
-
}
|
1576 |
-
}
|
1577 |
-
|
1578 |
-
}
|
1579 |
-
|
1580 |
-
}
|
1581 |
-
|
1582 |
-
|
1583 |
-
foreach ( $plugins as $plugin_id => $plugin ) {
|
1584 |
-
|
1585 |
-
$slug = dirname( $plugin_id );
|
1586 |
-
if ( empty( $slug ) ) {
|
1587 |
-
continue;
|
1588 |
-
}
|
1589 |
-
|
1590 |
-
foreach ( $this->settings['repositories'] as $repository_id => $repository ) {
|
1591 |
-
|
1592 |
-
if ( $this->repository_has_valid_subscription( $repository_id ) ) {
|
1593 |
-
|
1594 |
-
foreach ( $repository['data']['packages'] as $package ) {
|
1595 |
-
|
1596 |
-
foreach ( $package['products'] as $product ) {
|
1597 |
-
|
1598 |
-
foreach ( $product['plugins'] as $plugin_slug ) {
|
1599 |
-
|
1600 |
-
$download = $this->settings['repositories'][ $repository_id ]['data']['downloads']['plugins'][ $plugin_slug ];
|
1601 |
-
|
1602 |
-
if ( $download['slug'] == $slug || $download['name'] == $plugin['Name'] || $download['name'] == $plugin['Title'] ) { //match order: slug, name, title
|
1603 |
-
|
1604 |
-
if ( isset( $subscriptions_with_warnings[ $product['subscription_type'] ] ) ) {
|
1605 |
-
|
1606 |
-
$this->_plugins_renew_warnings[ $plugin_id ] = $subscriptions_with_warnings[ $product['subscription_type'] ];
|
1607 |
-
|
1608 |
-
}
|
1609 |
-
|
1610 |
-
}
|
1611 |
-
|
1612 |
-
}
|
1613 |
-
|
1614 |
-
}
|
1615 |
-
|
1616 |
-
}
|
1617 |
-
|
1618 |
-
}
|
1619 |
-
|
1620 |
-
}
|
1621 |
-
|
1622 |
-
}
|
1623 |
-
|
1624 |
-
}
|
1625 |
-
|
1626 |
-
public function queue_plugins_renew_warnings() {
|
1627 |
-
|
1628 |
-
if ( ! empty( $this->_plugins_renew_warnings ) ) {
|
1629 |
-
|
1630 |
-
foreach ( $this->_plugins_renew_warnings as $plugin_id => $message ) {
|
1631 |
-
|
1632 |
-
add_action( "after_plugin_row_" . $plugin_id, array( $this, 'plugins_renew_warning' ), 10, 3 );
|
1633 |
-
}
|
1634 |
-
|
1635 |
-
}
|
1636 |
-
|
1637 |
-
}
|
1638 |
-
|
1639 |
-
public function plugins_renew_warning( $plugin_file, $plugin_data, $status ) {
|
1640 |
-
|
1641 |
-
if ( empty( $this->_plugins_renew_warnings[ $plugin_file ] ) ) {
|
1642 |
-
return;
|
1643 |
-
}
|
1644 |
-
|
1645 |
-
$wp_list_table = _get_list_table( 'WP_Plugins_List_Table' );
|
1646 |
-
?>
|
1647 |
-
|
1648 |
-
<tr class="plugin-update-tr">
|
1649 |
-
<td colspan="<?php echo $wp_list_table->get_column_count(); ?>" class="plugin-update colspanchange">
|
1650 |
-
<div class="update-message">
|
1651 |
-
<?php
|
1652 |
-
echo $this->_plugins_renew_warnings[ $plugin_file ] . ' ';
|
1653 |
-
printf( __( '%sRenew here%s.', 'installer' ),
|
1654 |
-
'<a href="' . $this->menu_url() . '">', '</a>' );
|
1655 |
-
?>
|
1656 |
-
</div>
|
1657 |
-
</tr>
|
1658 |
-
|
1659 |
-
<?php
|
1660 |
-
|
1661 |
-
}
|
1662 |
-
|
1663 |
-
public function get_subscription_type_for_repository( $repository_id ) {
|
1664 |
-
|
1665 |
-
$subscription_type = false;
|
1666 |
-
|
1667 |
-
if ( ! empty( $this->settings['repositories'][ $repository_id ]['subscription'] ) ) {
|
1668 |
-
$subscription_type = $this->settings['repositories'][ $repository_id ]['subscription']['data']->subscription_type;
|
1669 |
-
}
|
1670 |
-
|
1671 |
-
return $subscription_type;
|
1672 |
-
|
1673 |
-
}
|
1674 |
-
|
1675 |
-
public function have_superior_subscription( $subscription_type, $product ) {
|
1676 |
-
|
1677 |
-
$have = false;
|
1678 |
-
|
1679 |
-
if ( is_array( $product['upgrades'] ) ) {
|
1680 |
-
foreach ( $product['upgrades'] as $u ) {
|
1681 |
-
if ( $u['subscription_type'] == $subscription_type ) {
|
1682 |
-
$have = true;
|
1683 |
-
break;
|
1684 |
-
}
|
1685 |
-
}
|
1686 |
-
}
|
1687 |
-
|
1688 |
-
return $have;
|
1689 |
-
}
|
1690 |
-
|
1691 |
-
public function is_product_available_for_download( $product_name, $repository_id ) {
|
1692 |
-
|
1693 |
-
$available = false;
|
1694 |
-
|
1695 |
-
$subscription_type = $this->get_subscription_type_for_repository( $repository_id );
|
1696 |
-
$expired = $this->repository_has_expired_subscription( $repository_id );
|
1697 |
-
|
1698 |
-
if ( $this->repository_has_subscription( $repository_id ) && ! $expired ) {
|
1699 |
-
|
1700 |
-
$this->set_hierarchy_and_order();
|
1701 |
-
|
1702 |
-
foreach ( $this->settings['repositories'][ $repository_id ]['data']['packages'] as $package_id => $package ) {
|
1703 |
-
|
1704 |
-
$has_top_package = false;
|
1705 |
-
|
1706 |
-
foreach ( $package['products'] as $product ) {
|
1707 |
-
|
1708 |
-
if ( $subscription_type == $product['subscription_type'] ) {
|
1709 |
-
$has_top_package = true;
|
1710 |
-
if ( $product['name'] == $product_name ) {
|
1711 |
-
return $available = true;
|
1712 |
-
}
|
1713 |
-
}
|
1714 |
-
|
1715 |
-
}
|
1716 |
-
|
1717 |
-
if ( ! empty( $package['sub-packages'] ) ) {
|
1718 |
-
foreach ( $package['sub-packages'] as $sub_package ) {
|
1719 |
-
foreach ( $sub_package['products'] as $product ) {
|
1720 |
-
if ( $product['name'] == $product_name && ( $subscription_type == $product['subscription_type'] || $has_top_package ) ) {
|
1721 |
-
return $available = true;
|
1722 |
-
}
|
1723 |
-
}
|
1724 |
-
}
|
1725 |
-
}
|
1726 |
-
|
1727 |
-
}
|
1728 |
-
}
|
1729 |
-
|
1730 |
-
return $available;
|
1731 |
-
|
1732 |
-
}
|
1733 |
-
|
1734 |
-
public function get_upgrade_options( $repository_id ) {
|
1735 |
-
$all_upgrades = array();
|
1736 |
-
|
1737 |
-
|
1738 |
-
//get all products: packages and subpackages
|
1739 |
-
$all_products = array();
|
1740 |
-
foreach ( $this->settings['repositories'][ $repository_id ]['data']['packages'] as $package ) {
|
1741 |
-
foreach ( $package['products'] as $product ) {
|
1742 |
-
$all_products[] = $product;
|
1743 |
-
}
|
1744 |
-
if ( ! empty( $package['sub-packages'] ) ) {
|
1745 |
-
foreach ( $package['sub-packages'] as $subpackage ) {
|
1746 |
-
foreach ( $subpackage['products'] as $product ) {
|
1747 |
-
$all_products[] = $product;
|
1748 |
-
}
|
1749 |
-
|
1750 |
-
}
|
1751 |
-
|
1752 |
-
}
|
1753 |
-
|
1754 |
-
}
|
1755 |
-
|
1756 |
-
foreach ( $all_products as $product ) {
|
1757 |
-
if ( $product['upgrades'] ) {
|
1758 |
-
foreach ( $product['upgrades'] as $upgrade ) {
|
1759 |
-
if ( $this->repository_has_valid_subscription( $repository_id ) || ( $this->repository_has_subscription( $repository_id ) && $upgrade['including_expired'] ) ) {
|
1760 |
-
$all_upgrades[ $upgrade['subscription_type'] ][ $product['subscription_type'] ] = $upgrade;
|
1761 |
-
}
|
1762 |
-
}
|
1763 |
-
}
|
1764 |
-
}
|
1765 |
-
|
1766 |
-
return $all_upgrades;
|
1767 |
-
|
1768 |
-
}
|
1769 |
-
|
1770 |
-
public function append_site_key_to_download_url( $url, $key, $repository_id ) {
|
1771 |
-
|
1772 |
-
$url_params['site_key'] = $key;
|
1773 |
-
$url_params['site_url'] = $this->get_installer_site_url( $repository_id );
|
1774 |
-
|
1775 |
-
|
1776 |
-
// Add extra parameters for custom Installer packages
|
1777 |
-
if ( ! empty( $this->package_source ) ) {
|
1778 |
-
$extra = $this->get_extra_url_parameters();
|
1779 |
-
if ( ! empty( $extra['repository'] ) && $extra['repository'] == $repository_id ) {
|
1780 |
-
unset( $extra['repository'] );
|
1781 |
-
foreach ( $extra as $key => $val ) {
|
1782 |
-
$url_params[ $key ] = $val;
|
1783 |
-
}
|
1784 |
-
}
|
1785 |
-
}
|
1786 |
-
|
1787 |
-
$url = add_query_arg( $url_params, $url );
|
1788 |
-
|
1789 |
-
if ( $repository_id == 'wpml' ) {
|
1790 |
-
$url = add_query_arg( array(
|
1791 |
-
'using_icl' => $this->_using_icl,
|
1792 |
-
'wpml_version' => $this->_wpml_version
|
1793 |
-
), $url );
|
1794 |
-
}
|
1795 |
-
|
1796 |
-
return $url;
|
1797 |
-
|
1798 |
-
}
|
1799 |
-
|
1800 |
-
public function plugin_is_installed( $name, $slug, $version = null ) {
|
1801 |
-
|
1802 |
-
$is = false;
|
1803 |
-
|
1804 |
-
$plugins = get_plugins();
|
1805 |
-
|
1806 |
-
foreach ( $plugins as $plugin_id => $plugin ) {
|
1807 |
-
|
1808 |
-
$wp_plugin_slug = dirname( $plugin_id );
|
1809 |
-
|
1810 |
-
// Exception: embedded plugins
|
1811 |
-
if ( $wp_plugin_slug == $slug || $plugin['Name'] == $name || $plugin['Title'] == $name || ( $wp_plugin_slug == $slug . '-embedded' || $plugin['Name'] == $name . ' Embedded' ) ) {
|
1812 |
-
if ( $version ) {
|
1813 |
-
if ( version_compare( $plugin['Version'], $version, '>=' ) ) {
|
1814 |
-
$is = $plugin['Version'];
|
1815 |
-
}
|
1816 |
-
} else {
|
1817 |
-
$is = $plugin['Version'];
|
1818 |
-
}
|
1819 |
-
|
1820 |
-
break;
|
1821 |
-
}
|
1822 |
-
|
1823 |
-
}
|
1824 |
-
|
1825 |
-
//exception: Types name difference
|
1826 |
-
if ( ! $is && $name == 'Types' ) {
|
1827 |
-
return $this->plugin_is_installed( 'Types - Complete Solution for Custom Fields and Types', $slug, $version );
|
1828 |
-
}
|
1829 |
-
|
1830 |
-
return $is;
|
1831 |
-
}
|
1832 |
-
|
1833 |
-
public function plugin_is_embedded_version( $name, $slug ) {
|
1834 |
-
$is = false;
|
1835 |
-
|
1836 |
-
$plugins = get_plugins();
|
1837 |
-
|
1838 |
-
//false if teh full version is also installed
|
1839 |
-
$is_full_installed = false;
|
1840 |
-
foreach ( $plugins as $plugin_id => $plugin ) {
|
1841 |
-
|
1842 |
-
if ( ( $plugin['Name'] == $name && ! preg_match( "#-embedded$#", $slug ) ) ) {
|
1843 |
-
$is_full_installed = true;
|
1844 |
-
break;
|
1845 |
-
}
|
1846 |
-
|
1847 |
-
}
|
1848 |
-
|
1849 |
-
if ( $is_full_installed ) {
|
1850 |
-
return false;
|
1851 |
-
}
|
1852 |
-
|
1853 |
-
foreach ( $plugins as $plugin_id => $plugin ) {
|
1854 |
-
|
1855 |
-
// TBD
|
1856 |
-
$wp_plugin_slug = dirname( $plugin_id );
|
1857 |
-
if ( $wp_plugin_slug == $slug . '-embedded' && $plugin['Name'] == $name . ' Embedded' ) {
|
1858 |
-
$is = true;
|
1859 |
-
break;
|
1860 |
-
}
|
1861 |
-
|
1862 |
-
}
|
1863 |
-
|
1864 |
-
return $is;
|
1865 |
-
|
1866 |
-
}
|
1867 |
-
|
1868 |
-
//Alias for plugin_is_installed
|
1869 |
-
public function get_plugin_installed_version( $name, $slug ) {
|
1870 |
-
|
1871 |
-
return $this->plugin_is_installed( $name, $slug );
|
1872 |
-
|
1873 |
-
}
|
1874 |
-
|
1875 |
-
public function get_plugin_repository_version( $repository_id, $slug ) {
|
1876 |
-
$version = false;
|
1877 |
-
|
1878 |
-
if ( ! empty( $this->settings['repositories'][ $repository_id ]['data']['packages'] ) ) {
|
1879 |
-
foreach ( $this->settings['repositories'][ $repository_id ]['data']['packages'] as $package ) {
|
1880 |
-
foreach ( $package['products'] as $product ) {
|
1881 |
-
|
1882 |
-
foreach ( $product['plugins'] as $plugin_slug ) {
|
1883 |
-
|
1884 |
-
$download = $this->settings['repositories'][ $repository_id ]['data']['downloads']['plugins'][ $plugin_slug ];
|
1885 |
-
|
1886 |
-
if ( $download['slug'] == $slug ) {
|
1887 |
-
$version = $download['version'];
|
1888 |
-
break ( 3 );
|
1889 |
-
}
|
1890 |
-
|
1891 |
-
}
|
1892 |
-
|
1893 |
-
}
|
1894 |
-
}
|
1895 |
-
}
|
1896 |
-
|
1897 |
-
return $version;
|
1898 |
-
}
|
1899 |
-
|
1900 |
-
public function is_uploading_allowed() {
|
1901 |
-
|
1902 |
-
//_deprecated_function ( __FUNCTION__, '1.7.3', 'Installer_Dependencies::' . __FUNCTION__ );
|
1903 |
-
return $this->dependencies->is_uploading_allowed();
|
1904 |
-
|
1905 |
-
}
|
1906 |
-
|
1907 |
-
public function download_plugin_ajax_handler() {
|
1908 |
-
|
1909 |
-
require_once ABSPATH . 'wp-admin/includes/class-wp-upgrader.php';
|
1910 |
-
require_once $this->plugin_path() . '/includes/class-installer-upgrader-skins.php';
|
1911 |
-
|
1912 |
-
$data = json_decode( base64_decode( sanitize_text_field( $_POST['data'] ) ), true );
|
1913 |
-
|
1914 |
-
$ret = false;
|
1915 |
-
$plugin_id = false;
|
1916 |
-
$message = '';
|
1917 |
-
|
1918 |
-
//validate subscription
|
1919 |
-
$site_key = $this->get_repository_site_key( $data['repository_id'] );
|
1920 |
-
$subscription_data = $this->fetch_subscription_data( $data['repository_id'], $site_key, self::SITE_KEY_VALIDATION_SOURCE_DOWNLOAD_REPORT );
|
1921 |
-
|
1922 |
-
if ( $subscription_data && ! is_wp_error( $subscription_data ) && $this->repository_has_valid_subscription( $data['repository_id'] ) ) {
|
1923 |
-
|
1924 |
-
if ( $data['nonce'] == wp_create_nonce( 'install_plugin_' . $data['url'] ) ) {
|
1925 |
-
|
1926 |
-
$upgrader_skins = new Installer_Upgrader_Skins(); //use our custom (mute) Skin
|
1927 |
-
$upgrader = new Plugin_Upgrader( $upgrader_skins );
|
1928 |
-
|
1929 |
-
remove_action( 'upgrader_process_complete', array( 'Language_Pack_Upgrader', 'async_upgrade' ), 20 );
|
1930 |
-
|
1931 |
-
$plugins = get_plugins();
|
1932 |
-
|
1933 |
-
//upgrade or install?
|
1934 |
-
foreach ( $plugins as $id => $plugin ) {
|
1935 |
-
$wp_plugin_slug = dirname( $id );
|
1936 |
-
$is_embedded = $this->plugin_is_embedded_version( preg_replace( '/ Embedded$/', '', $plugin['Name'] ), preg_replace( '/-embedded$/', '', $wp_plugin_slug ) );
|
1937 |
-
|
1938 |
-
if ( $wp_plugin_slug == $data['slug'] || $is_embedded && preg_replace( '/-embedded$/', '', $wp_plugin_slug ) == $data['slug'] ) {
|
1939 |
-
$plugin_id = $id;
|
1940 |
-
break;
|
1941 |
-
}
|
1942 |
-
}
|
1943 |
-
|
1944 |
-
if ( $plugin_id && empty( $is_embedded ) ) { //upgrade
|
1945 |
-
$response['upgrade'] = 1;
|
1946 |
-
|
1947 |
-
$plugin_is_active = is_plugin_active( $plugin_id );
|
1948 |
-
|
1949 |
-
$ret = $upgrader->upgrade( $plugin_id );
|
1950 |
-
|
1951 |
-
if ( ! $ret && ! empty( $upgrader->skin->installer_error ) ) {
|
1952 |
-
if ( is_wp_error( $upgrader->skin->installer_error ) ) {
|
1953 |
-
$message = $upgrader->skin->installer_error->get_error_message() .
|
1954 |
-
' (' . $upgrader->skin->installer_error->get_error_data() . ')';
|
1955 |
-
}
|
1956 |
-
$plugin_version = 0;
|
1957 |
-
}else{
|
1958 |
-
if ( $plugin_is_active ) {
|
1959 |
-
//prevent redirects
|
1960 |
-
add_filter( 'wp_redirect', '__return_false' );
|
1961 |
-
activate_plugin( $plugin_id );
|
1962 |
-
}
|
1963 |
-
$plugin_version = $this->get_plugin_repository_version( $data['repository_id'], $data['slug'] );
|
1964 |
-
}
|
1965 |
-
|
1966 |
-
} else { //install
|
1967 |
-
|
1968 |
-
if ( $is_embedded ) {
|
1969 |
-
delete_plugins( array( $plugin_id ) );
|
1970 |
-
}
|
1971 |
-
|
1972 |
-
$response['install'] = 1;
|
1973 |
-
$ret = $upgrader->install( $data['url'] );
|
1974 |
-
if ( ! $ret && ! empty( $upgrader->skin->installer_error ) ) {
|
1975 |
-
if ( is_wp_error( $upgrader->skin->installer_error ) ) {
|
1976 |
-
$message = $upgrader->skin->installer_error->get_error_message() .
|
1977 |
-
' (' . $upgrader->skin->installer_error->get_error_data() . ')';
|
1978 |
-
}
|
1979 |
-
}
|
1980 |
-
}
|
1981 |
-
|
1982 |
-
$plugins = get_plugins(); //read again
|
1983 |
-
|
1984 |
-
if ( $ret ) {
|
1985 |
-
foreach ( $plugins as $id => $plugin ) {
|
1986 |
-
$wp_plugin_slug = dirname( $id );
|
1987 |
-
if ( $wp_plugin_slug == $data['slug'] ) {
|
1988 |
-
$plugin_version = $plugin['Version'];
|
1989 |
-
$plugin_id = $id;
|
1990 |
-
break;
|
1991 |
-
}
|
1992 |
-
}
|
1993 |
-
|
1994 |
-
}
|
1995 |
-
|
1996 |
-
if( WP_Installer_Channels()->get_channel( $data['repository_id'] ) !== WP_Installer_Channels::CHANNEL_PRODUCTION ){
|
1997 |
-
$download = $this->settings['repositories'][$data['repository_id']]['data']['downloads']['plugins'][$data['slug']];
|
1998 |
-
$non_stable = WP_Installer_Channels()->get_download_source_channel( $plugin_version, $data['repository_id'], $download['slug'], 'plugins' );
|
1999 |
-
}
|
2000 |
-
|
2001 |
-
}
|
2002 |
-
|
2003 |
-
} else { //subscription not valid
|
2004 |
-
|
2005 |
-
$ret = false;
|
2006 |
-
$message = __( 'Your subscription appears to no longer be valid. Please try to register again using a valid site key.', 'installer' );
|
2007 |
-
}
|
2008 |
-
|
2009 |
-
$response['version'] = isset( $plugin_version ) ? $plugin_version : 0;
|
2010 |
-
$response['non_stable']= isset( $non_stable ) ? $non_stable : '';
|
2011 |
-
$response['plugin_id'] = $plugin_id;
|
2012 |
-
$response['nonce'] = wp_create_nonce( 'activate_' . $plugin_id );
|
2013 |
-
$response['success'] = $ret;
|
2014 |
-
$response['message'] = $message;
|
2015 |
-
|
2016 |
-
echo json_encode( $response );
|
2017 |
-
exit;
|
2018 |
-
|
2019 |
-
}
|
2020 |
-
|
2021 |
-
public function download_plugin( $slug, $url ) {
|
2022 |
-
|
2023 |
-
require_once ABSPATH . 'wp-admin/includes/class-wp-upgrader.php';
|
2024 |
-
require_once $this->plugin_path() . '/includes/class-installer-upgrader-skins.php';
|
2025 |
-
|
2026 |
-
$upgrader_skins = new Installer_Upgrader_Skins(); //use our custom (mute) Skin
|
2027 |
-
$upgrader = new Plugin_Upgrader( $upgrader_skins );
|
2028 |
-
|
2029 |
-
remove_action( 'upgrader_process_complete', array( 'Language_Pack_Upgrader', 'async_upgrade' ), 20 );
|
2030 |
-
|
2031 |
-
$plugins = get_plugins();
|
2032 |
-
|
2033 |
-
$plugin_id = false;
|
2034 |
-
|
2035 |
-
//upgrade or install?
|
2036 |
-
foreach ( $plugins as $id => $plugin ) {
|
2037 |
-
$wp_plugin_slug = dirname( $id );
|
2038 |
-
if ( $wp_plugin_slug == $slug ) {
|
2039 |
-
$plugin_id = $id;
|
2040 |
-
break;
|
2041 |
-
}
|
2042 |
-
}
|
2043 |
-
|
2044 |
-
if ( $plugin_id ) { //upgrade
|
2045 |
-
|
2046 |
-
$plugin_is_active = is_plugin_active( $plugin_id );
|
2047 |
-
|
2048 |
-
$ret = $upgrader->upgrade( $plugin_id );
|
2049 |
-
|
2050 |
-
if ( $plugin_is_active ) {
|
2051 |
-
activate_plugin( $plugin_id );
|
2052 |
-
}
|
2053 |
-
|
2054 |
-
} else { //install
|
2055 |
-
$ret = $upgrader->install( $url );
|
2056 |
-
}
|
2057 |
-
|
2058 |
-
return $ret;
|
2059 |
-
|
2060 |
-
}
|
2061 |
-
|
2062 |
-
public function activate_plugin() {
|
2063 |
-
|
2064 |
-
$error = '';
|
2065 |
-
|
2066 |
-
$plugin_id = sanitize_text_field( $_POST['plugin_id'] );
|
2067 |
-
if ( isset( $_POST['nonce'] ) && $plugin_id && $_POST['nonce'] == wp_create_nonce( 'activate_' . $plugin_id ) ) {
|
2068 |
-
|
2069 |
-
// Deactivate any embedded version
|
2070 |
-
$plugin_slug = dirname( $plugin_id );
|
2071 |
-
$active_plugins = get_option( 'active_plugins' );
|
2072 |
-
foreach ( $active_plugins as $plugin ) {
|
2073 |
-
$wp_plugin_slug = dirname( $plugin );
|
2074 |
-
if ( $wp_plugin_slug == $plugin_slug . '-embedded' ) {
|
2075 |
-
deactivate_plugins( array( $plugin ) );
|
2076 |
-
break;
|
2077 |
-
}
|
2078 |
-
}
|
2079 |
-
|
2080 |
-
//prevent redirects
|
2081 |
-
add_filter( 'wp_redirect', '__return_false', 10000 );
|
2082 |
-
|
2083 |
-
$return = activate_plugin( $plugin_id );
|
2084 |
-
|
2085 |
-
if ( is_wp_error( $return ) ) {
|
2086 |
-
$error = $return->get_error_message();
|
2087 |
-
}
|
2088 |
-
|
2089 |
-
} else {
|
2090 |
-
$error = 'error';
|
2091 |
-
}
|
2092 |
-
|
2093 |
-
$ret = array( 'error' => $error );
|
2094 |
-
|
2095 |
-
echo json_encode( $ret );
|
2096 |
-
exit;
|
2097 |
-
|
2098 |
-
}
|
2099 |
-
|
2100 |
-
public function custom_plugins_api_call( $false, $action, $args ) {
|
2101 |
-
|
2102 |
-
if ( $action == 'plugin_information' ) {
|
2103 |
-
|
2104 |
-
$plugins = get_plugins();
|
2105 |
-
$plugin_names = array();
|
2106 |
-
foreach ( $plugins as $plugin_id => $plugin ) {
|
2107 |
-
// plugins by WP slug which (plugin folder) which can be different
|
2108 |
-
// will use this to compare by title
|
2109 |
-
$plugin_names[ dirname( $plugin_id ) ] = array(
|
2110 |
-
'name' => $plugin['Name'],
|
2111 |
-
'title' => $plugin['Title'],
|
2112 |
-
);
|
2113 |
-
}
|
2114 |
-
|
2115 |
-
$slug = $args->slug;
|
2116 |
-
|
2117 |
-
foreach ( $this->settings['repositories'] as $repository_id => $repository ) {
|
2118 |
-
|
2119 |
-
if ( ! $this->repository_has_valid_subscription( $repository_id ) ) {
|
2120 |
-
$site_key = false;
|
2121 |
-
} else {
|
2122 |
-
$site_key = $repository['subscription']['key'];
|
2123 |
-
}
|
2124 |
-
|
2125 |
-
foreach ( $repository['data']['packages'] as $package ) {
|
2126 |
-
|
2127 |
-
foreach ( $package['products'] as $product ) {
|
2128 |
-
|
2129 |
-
foreach ( $product['plugins'] as $plugin_slug ) {
|
2130 |
-
|
2131 |
-
$download = $this->settings['repositories'][ $repository_id ]['data']['downloads']['plugins'][ $plugin_slug ];
|
2132 |
-
|
2133 |
-
if ( $download['slug'] == $slug ||
|
2134 |
-
isset( $plugin_names[ $slug ] ) && (
|
2135 |
-
$plugin_names[ $slug ]['name'] == $download['name'] ||
|
2136 |
-
$plugin_names[ $slug ]['title'] == $download['name']
|
2137 |
-
)
|
2138 |
-
) {
|
2139 |
-
|
2140 |
-
if ( ! empty( $download['free-on-wporg'] ) && $download['channel'] == WP_Installer_Channels::CHANNEL_PRODUCTION ) {
|
2141 |
-
return false; // use data from wordpress.org
|
2142 |
-
}
|
2143 |
-
|
2144 |
-
$res = new stdClass();
|
2145 |
-
$res->external = true;
|
2146 |
-
|
2147 |
-
$res->name = $download['name'];
|
2148 |
-
$res->slug = $slug;
|
2149 |
-
$res->version = $download['version'];
|
2150 |
-
$res->author = '';
|
2151 |
-
$res->author_profile = '';
|
2152 |
-
$res->last_updated = $download['date'];
|
2153 |
-
|
2154 |
-
if ( $site_key ) {
|
2155 |
-
$res->download_link = $this->append_site_key_to_download_url( $download['url'], $site_key, $repository_id );
|
2156 |
-
}
|
2157 |
-
|
2158 |
-
$res->homepage = $repository['data']['url'];
|
2159 |
-
$res->sections = array(
|
2160 |
-
'Description' => $download['description'],
|
2161 |
-
'Changelog' => $download['changelog']
|
2162 |
-
);
|
2163 |
-
|
2164 |
-
return $res;
|
2165 |
-
|
2166 |
-
}
|
2167 |
-
|
2168 |
-
}
|
2169 |
-
|
2170 |
-
}
|
2171 |
-
|
2172 |
-
}
|
2173 |
-
|
2174 |
-
}
|
2175 |
-
|
2176 |
-
}
|
2177 |
-
|
2178 |
-
return $false;
|
2179 |
-
|
2180 |
-
}
|
2181 |
-
|
2182 |
-
public function plugins_upgrade_check( $update_plugins ) {
|
2183 |
-
|
2184 |
-
if ( ! empty( $this->settings['repositories'] ) ) {
|
2185 |
-
|
2186 |
-
$plugins = get_plugins();
|
2187 |
-
|
2188 |
-
foreach ( $plugins as $plugin_id => $plugin ) {
|
2189 |
-
|
2190 |
-
$slug = dirname( $plugin_id );
|
2191 |
-
if ( empty( $slug ) ) {
|
2192 |
-
continue;
|
2193 |
-
}
|
2194 |
-
|
2195 |
-
$version = $plugin['Version'];
|
2196 |
-
$name = $plugin['Name'];
|
2197 |
-
|
2198 |
-
foreach ( $this->settings['repositories'] as $repository_id => $repository ) {
|
2199 |
-
|
2200 |
-
|
2201 |
-
if ( ! $this->repository_has_valid_subscription( $repository_id ) ) {
|
2202 |
-
$site_key = false;
|
2203 |
-
} else {
|
2204 |
-
$site_key = $repository['subscription']['key'];
|
2205 |
-
//$subscription_type = $this->get_subscription_type_for_repository($repository_id);
|
2206 |
-
}
|
2207 |
-
|
2208 |
-
foreach ( $repository['data']['packages'] as $package ) {
|
2209 |
-
|
2210 |
-
foreach ( $package['products'] as $product ) {
|
2211 |
-
|
2212 |
-
foreach ( $product['plugins'] as $plugin_slug ) {
|
2213 |
-
|
2214 |
-
$download = $this->settings['repositories'][ $repository_id ]['data']['downloads']['plugins'][ $plugin_slug ];
|
2215 |
-
|
2216 |
-
if ( ! empty( $download['free-on-wporg'] ) && $download['channel'] == WP_Installer_Channels::CHANNEL_PRODUCTION ) {
|
2217 |
-
continue;
|
2218 |
-
}
|
2219 |
-
|
2220 |
-
$needs_version_update = version_compare( $download['version'], $version, '>' ) ||
|
2221 |
-
! empty( $_POST['reset_to_channel'] );
|
2222 |
-
|
2223 |
-
if (
|
2224 |
-
empty( $update_plugins->response[ $plugin_id ] ) &&
|
2225 |
-
( $download['slug'] == $slug || $download['name'] == $name ) &&
|
2226 |
-
$needs_version_update
|
2227 |
-
) {
|
2228 |
-
$response = new stdClass();
|
2229 |
-
$response->id = 0;
|
2230 |
-
$response->slug = $slug;
|
2231 |
-
$response->plugin = $plugin_id;
|
2232 |
-
$response->new_version = $download['version'];
|
2233 |
-
$response->upgrade_notice = '';
|
2234 |
-
$response->url = $download['url'];
|
2235 |
-
if ( $site_key ) {
|
2236 |
-
$response->package = $this->append_site_key_to_download_url( $download['url'], $site_key, $repository_id );
|
2237 |
-
}
|
2238 |
-
|
2239 |
-
$response = apply_filters( 'otgs_installer_upgrade_check_response', $response, $plugin_id, $repository_id );
|
2240 |
-
|
2241 |
-
$update_plugins->checked[ $plugin_id ] = $version;
|
2242 |
-
$update_plugins->response[ $plugin_id ] = $response;
|
2243 |
-
|
2244 |
-
}
|
2245 |
-
|
2246 |
-
}
|
2247 |
-
|
2248 |
-
}
|
2249 |
-
|
2250 |
-
}
|
2251 |
-
|
2252 |
-
}
|
2253 |
-
|
2254 |
-
}
|
2255 |
-
|
2256 |
-
}
|
2257 |
-
|
2258 |
-
return $update_plugins;
|
2259 |
-
|
2260 |
-
}
|
2261 |
-
|
2262 |
-
public function setup_plugins_page_notices() {
|
2263 |
-
$plugins = get_plugins();
|
2264 |
-
$template_service = new OTGS_Installer_Twig_Template_Service_Loader(
|
2265 |
-
array( $this->plugin_path() . '/templates/components-setting/' )
|
2266 |
-
);
|
2267 |
-
$local_components_setting = new OTGS_Installer_WP_Share_Local_Components_Setting();
|
2268 |
-
$plugin_page_notice = new OTGS_Installer_Plugins_Page_Notice( $template_service->get_service(), $local_components_setting );
|
2269 |
-
|
2270 |
-
foreach ( $plugins as $plugin_id => $plugin ) {
|
2271 |
-
|
2272 |
-
$slug = dirname( $plugin_id );
|
2273 |
-
if ( empty( $slug ) ) {
|
2274 |
-
continue;
|
2275 |
-
}
|
2276 |
-
|
2277 |
-
$name = $plugin['Name'];
|
2278 |
-
|
2279 |
-
foreach ( $this->settings['repositories'] as $repository_id => $repository ) {
|
2280 |
-
|
2281 |
-
if ( ! $this->repository_has_valid_subscription( $repository_id ) ) {
|
2282 |
-
$site_key = false;
|
2283 |
-
} else {
|
2284 |
-
$site_key = $repository['subscription']['key'];
|
2285 |
-
}
|
2286 |
-
|
2287 |
-
foreach ( $repository['data']['packages'] as $package ) {
|
2288 |
-
|
2289 |
-
foreach ( $package['products'] as $product ) {
|
2290 |
-
|
2291 |
-
foreach ( $product['plugins'] as $plugin_slug ) {
|
2292 |
-
|
2293 |
-
$download = $this->settings['repositories'][ $repository_id ]['data']['downloads']['plugins'][ $plugin_slug ];
|
2294 |
-
$display_subscription_notice = false;
|
2295 |
-
$display_setting_notice = false;
|
2296 |
-
$is_free_and_production = ! empty( $download['free-on-wporg'] ) && $download['channel'] == WP_Installer_Channels::CHANNEL_PRODUCTION;
|
2297 |
-
|
2298 |
-
if ( $download['slug'] == $slug || $download['name'] == $name ) {
|
2299 |
-
if ( in_array( $name, array( 'Toolset Types', 'WPML Multilingual CMS' ), true ) ) {
|
2300 |
-
$display_setting_notice = true;
|
2301 |
-
}
|
2302 |
-
|
2303 |
-
if ( ! $site_key || ! $this->plugin_is_registered( $repository_id, $download['slug'] ) ) {
|
2304 |
-
$display_setting_notice = false;
|
2305 |
-
|
2306 |
-
if ( ! $is_free_and_production ) {
|
2307 |
-
$display_subscription_notice = true;
|
2308 |
-
}
|
2309 |
-
}
|
2310 |
-
}
|
2311 |
-
|
2312 |
-
if ( $display_setting_notice || $display_subscription_notice ) {
|
2313 |
-
$plugin_page_notice->add_plugin(
|
2314 |
-
$plugin_id,
|
2315 |
-
array(
|
2316 |
-
OTGS_Installer_Plugins_Page_Notice::DISPLAY_SUBSCRIPTION_NOTICE_KEY => $display_subscription_notice,
|
2317 |
-
OTGS_Installer_Plugins_Page_Notice::DISPLAY_SETTING_NOTICE_KEY => $display_setting_notice,
|
2318 |
-
)
|
2319 |
-
);
|
2320 |
-
}
|
2321 |
-
}
|
2322 |
-
}
|
2323 |
-
}
|
2324 |
-
}
|
2325 |
-
}
|
2326 |
-
|
2327 |
-
$plugin_page_notice->add_hooks();
|
2328 |
-
}
|
2329 |
-
|
2330 |
-
public function localize_strings() {
|
2331 |
-
|
2332 |
-
if ( ! empty( $this->settings['repositories'] ) ) {
|
2333 |
-
foreach ( $this->settings['repositories'] as $repository_id => $repository ) {
|
2334 |
-
//set name as call2action when don't have any
|
2335 |
-
//products
|
2336 |
-
foreach ( $repository['data']['packages'] as $package_id => $package ) {
|
2337 |
-
foreach ( $package['products'] as $product_id => $product ) {
|
2338 |
-
if ( empty( $product['call2action'] ) ) {
|
2339 |
-
$this->settings['repositories'][ $repository_id ]['data']['packages'][ $package_id ]['products'][ $product_id ]['call2action'] = $product['name'];
|
2340 |
-
}
|
2341 |
-
|
2342 |
-
foreach ( $product['upgrades'] as $idx => $upg ) {
|
2343 |
-
if ( empty( $upg['call2action'] ) ) {
|
2344 |
-
$this->settings['repositories'][ $repository_id ]['data']['packages'][ $package_id ]['products'][ $product_id ]['upgrades'][ $idx ]['call2action'] = $upg['name'];
|
2345 |
-
}
|
2346 |
-
}
|
2347 |
-
|
2348 |
-
foreach ( $product['renewals'] as $idx => $rnw ) {
|
2349 |
-
if ( empty( $rnw['call2action'] ) ) {
|
2350 |
-
$this->settings['repositories'][ $repository_id ]['data']['packages'][ $package_id ]['products'][ $product_id ]['renewals'][ $idx ]['call2action'] = $rnw['name'];
|
2351 |
-
}
|
2352 |
-
|
2353 |
-
}
|
2354 |
-
|
2355 |
-
}
|
2356 |
-
}
|
2357 |
-
}
|
2358 |
-
}
|
2359 |
-
|
2360 |
-
global $sitepress;
|
2361 |
-
if ( is_null( $sitepress ) ) {
|
2362 |
-
return;
|
2363 |
-
}
|
2364 |
-
|
2365 |
-
// default strings are always in English
|
2366 |
-
$user_admin_language = $sitepress->get_admin_language();
|
2367 |
-
|
2368 |
-
if ( $user_admin_language != 'en' ) {
|
2369 |
-
foreach ( $this->settings['repositories'] as $repository_id => $repository ) {
|
2370 |
-
|
2371 |
-
$localization = $repository['data']['localization'];
|
2372 |
-
|
2373 |
-
//packages
|
2374 |
-
foreach ( $repository['data']['packages'] as $package_id => $package ) {
|
2375 |
-
|
2376 |
-
if ( isset( $localization['packages'][ $package_id ]['name'][ $user_admin_language ] ) ) {
|
2377 |
-
$this->settings['repositories'][ $repository_id ]['data']['packages'][ $package_id ]['name'] = $localization['packages'][ $package_id ]['name'][ $user_admin_language ];
|
2378 |
-
}
|
2379 |
-
if ( isset( $localization['packages'][ $package_id ]['description'][ $user_admin_language ] ) ) {
|
2380 |
-
$this->settings['repositories'][ $repository_id ]['data']['packages'][ $package_id ]['description'] = $localization['packages'][ $package_id ]['description'][ $user_admin_language ];
|
2381 |
-
}
|
2382 |
-
|
2383 |
-
}
|
2384 |
-
|
2385 |
-
//products
|
2386 |
-
foreach ( $repository['data']['packages'] as $package_id => $package ) {
|
2387 |
-
foreach ( $package['products'] as $product_id => $product ) {
|
2388 |
-
|
2389 |
-
if ( isset( $localization['products'][ $product_id ]['name'][ $user_admin_language ] ) ) {
|
2390 |
-
$this->settings['repositories'][ $repository_id ]['data']['packages'][ $package_id ]['products'][ $product_id ]['name']
|
2391 |
-
= $localization['products'][ $product_id ]['name'][ $user_admin_language ];
|
2392 |
-
}
|
2393 |
-
if ( isset( $localization['products'][ $product_id ]['description'][ $user_admin_language ] ) ) {
|
2394 |
-
$this->settings['repositories'][ $repository_id ]['data']['packages'][ $package_id ]['products'][ $product_id ]['description']
|
2395 |
-
= $localization['products'][ $product_id ]['description'][ $user_admin_language ];
|
2396 |
-
}
|
2397 |
-
if ( isset( $localization['products'][ $product_id ]['call2action'][ $user_admin_language ] ) ) {
|
2398 |
-
$this->settings['repositories'][ $repository_id ]['data']['packages'][ $package_id ]['products'][ $product_id ]['name']
|
2399 |
-
= $localization['products'][ $product_id ]['call2action'][ $user_admin_language ];
|
2400 |
-
}
|
2401 |
-
|
2402 |
-
|
2403 |
-
}
|
2404 |
-
}
|
2405 |
-
|
2406 |
-
//subscription info
|
2407 |
-
if ( isset( $repository['data']['subscriptions_meta']['expiration'] ) ) {
|
2408 |
-
foreach ( $repository['data']['subscriptions_meta']['expiration'] as $subscription_id => $note ) {
|
2409 |
-
if ( isset( $localization['subscriptions-notes'][ $subscription_id ]['expiration-warning'][ $user_admin_language ] ) ) {
|
2410 |
-
$this->settings['repositories'][ $repository_id ]['data']['subscriptions_meta']['expiration'][ $subscription_id ]['warning_message']
|
2411 |
-
= $localization['subscriptions-notes'][ $subscription_id ]['expiration-warning'][ $user_admin_language ];
|
2412 |
-
}
|
2413 |
-
}
|
2414 |
-
}
|
2415 |
-
|
2416 |
-
}
|
2417 |
-
}
|
2418 |
-
|
2419 |
-
}
|
2420 |
-
|
2421 |
-
public function get_matching_cp( $repository, $args = array() ) {
|
2422 |
-
$match = false;
|
2423 |
-
|
2424 |
-
|
2425 |
-
$cp_name = $cp_author = false;
|
2426 |
-
|
2427 |
-
if ( isset( $this->config['src_name'] ) && isset( $this->config['src_author'] ) ) {
|
2428 |
-
|
2429 |
-
$cp_name = $this->config['src_name'];
|
2430 |
-
$cp_author = $this->config['src_author'];
|
2431 |
-
|
2432 |
-
} elseif ( isset( $args['src_name'] ) && isset( $args['src_author'] ) ) {
|
2433 |
-
|
2434 |
-
$cp_name = $args['src_name'];
|
2435 |
-
$cp_author = $args['src_author'];
|
2436 |
-
|
2437 |
-
}
|
2438 |
-
|
2439 |
-
if ( isset( $repository['data']['marketing_cp'] ) ) {
|
2440 |
-
|
2441 |
-
foreach ( $repository['data']['marketing_cp'] as $cp ) {
|
2442 |
-
|
2443 |
-
if ( ! empty( $cp['exp'] ) && time() > $cp['exp'] ) {
|
2444 |
-
continue;
|
2445 |
-
}
|
2446 |
-
|
2447 |
-
//Use theme_name for plugins too
|
2448 |
-
if ( ! empty( $cp['theme_name'] ) ) {
|
2449 |
-
if ( $cp['author_name'] == $cp_author && $cp['theme_name'] == $cp_name ) {
|
2450 |
-
$match = $cp;
|
2451 |
-
continue;
|
2452 |
-
}
|
2453 |
-
} else {
|
2454 |
-
if ( $cp['author_name'] == $cp_author ) {
|
2455 |
-
$match = $cp;
|
2456 |
-
continue;
|
2457 |
-
}
|
2458 |
-
}
|
2459 |
-
|
2460 |
-
}
|
2461 |
-
|
2462 |
-
}
|
2463 |
-
|
2464 |
-
return $match;
|
2465 |
-
}
|
2466 |
-
|
2467 |
-
public function set_filtered_prices( $args = array() ) {
|
2468 |
-
|
2469 |
-
foreach ( $this->settings['repositories'] as $repository_id => $repository ) {
|
2470 |
-
|
2471 |
-
$match = $this->get_matching_cp( $repository, $args );
|
2472 |
-
|
2473 |
-
if ( empty( $match ) ) {
|
2474 |
-
continue;
|
2475 |
-
}
|
2476 |
-
|
2477 |
-
foreach ( $repository['data']['packages'] as $package_id => $package ) {
|
2478 |
-
|
2479 |
-
foreach ( $package['products'] as $product_id => $product ) {
|
2480 |
-
|
2481 |
-
if ( $match['dtp'] == '%' ) {
|
2482 |
-
$fprice = round( $product['price'] * ( 1 - $match['amt'] / 100 ), 2 );
|
2483 |
-
$fprice = $fprice != round( $fprice ) ? sprintf( '%.2f', $fprice ) : round( $fprice, 0 );
|
2484 |
-
} elseif ( $match['dtp'] == '-' ) {
|
2485 |
-
$fprice = $product['price'] - $match['amt'];
|
2486 |
-
} else {
|
2487 |
-
$fprice = $product['price'];
|
2488 |
-
}
|
2489 |
-
|
2490 |
-
if ( $fprice ) {
|
2491 |
-
$this->settings['repositories'][ $repository_id ]['data']['packages'][ $package_id ]['products'][ $product_id ]['price_disc'] = $fprice;
|
2492 |
-
|
2493 |
-
$url_glue = false !== strpos( $this->settings['repositories'][ $repository_id ]['data']['packages'][ $package_id ]['products'][ $product_id ]['url'], '?' ) ? '&' : '?';
|
2494 |
-
$cpndata = base64_encode( json_encode( array(
|
2495 |
-
'theme_author' => $match['author_name'],
|
2496 |
-
'theme_name' => $match['theme_name'],
|
2497 |
-
'vlc' => $match['vlc']
|
2498 |
-
) ) );
|
2499 |
-
$this->settings['repositories'][ $repository_id ]['data']['packages'][ $package_id ]['products'][ $product_id ]['url'] .= $url_glue . 'cpn=' . $cpndata;
|
2500 |
-
|
2501 |
-
foreach ( $product['upgrades'] as $upgrade_id => $upgrade ) {
|
2502 |
-
|
2503 |
-
$fprice = false;
|
2504 |
-
if ( $match['dtp'] == '%' ) {
|
2505 |
-
$fprice = round( $upgrade['price'] * ( 1 - $match['amt'] / 100 ), 2 );
|
2506 |
-
$fprice = $fprice != round( $fprice ) ? sprintf( '%.2f', $fprice ) : round( $fprice, 0 );
|
2507 |
-
} elseif ( $match['dtp'] == '-' ) {
|
2508 |
-
$fprice = $upgrade['price'] - $match['amt'];
|
2509 |
-
}
|
2510 |
-
if ( $fprice ) {
|
2511 |
-
$this->settings['repositories'][ $repository_id ]['data']['packages'][ $package_id ]['products'][ $product_id ]['upgrades'][ $upgrade_id ]['price_disc'] = $fprice;
|
2512 |
-
$this->settings['repositories'][ $repository_id ]['data']['packages'][ $package_id ]['products'][ $product_id ]['upgrades'][ $upgrade_id ]['url'] .= $url_glue . 'cpn=' . $cpndata;
|
2513 |
-
}
|
2514 |
-
|
2515 |
-
|
2516 |
-
}
|
2517 |
-
|
2518 |
-
}
|
2519 |
-
|
2520 |
-
}
|
2521 |
-
|
2522 |
-
}
|
2523 |
-
|
2524 |
-
}
|
2525 |
-
|
2526 |
-
}
|
2527 |
-
|
2528 |
-
public function set_hierarchy_and_order() {
|
2529 |
-
|
2530 |
-
//2 levels
|
2531 |
-
if ( ! empty( $this->settings['repositories'] ) ) {
|
2532 |
-
foreach ( $this->settings['repositories'] as $repository_id => $repository ) {
|
2533 |
-
|
2534 |
-
if ( empty( $repository['data']['packages'] ) ) {
|
2535 |
-
continue;
|
2536 |
-
}
|
2537 |
-
|
2538 |
-
$all_packages = $repository['data']['packages'];
|
2539 |
-
$ordered_packages = array();
|
2540 |
-
|
2541 |
-
//backward compatibility - 'order'
|
2542 |
-
foreach ( $all_packages as $k => $v ) {
|
2543 |
-
if ( ! isset( $v['order'] ) ) {
|
2544 |
-
$all_packages[ $k ]['order'] = 0;
|
2545 |
-
}
|
2546 |
-
}
|
2547 |
-
|
2548 |
-
//select parents
|
2549 |
-
foreach ( $all_packages as $package_id => $package ) {
|
2550 |
-
if ( empty( $package['parent'] ) ) {
|
2551 |
-
$ordered_packages[ $package_id ] = $package;
|
2552 |
-
}
|
2553 |
-
}
|
2554 |
-
|
2555 |
-
//add sub-packages
|
2556 |
-
foreach ( $all_packages as $package_id => $package ) {
|
2557 |
-
if ( ! empty( $package['parent'] ) ) {
|
2558 |
-
if ( isset( $ordered_packages[ $package['parent'] ] ) ) {
|
2559 |
-
$ordered_packages[ $package['parent'] ]['sub-packages'][ $package_id ] = $package;
|
2560 |
-
}
|
2561 |
-
}
|
2562 |
-
}
|
2563 |
-
|
2564 |
-
// order parents
|
2565 |
-
usort( $ordered_packages, array( $this, 'compare_package_order' ) );
|
2566 |
-
//order sub-packages
|
2567 |
-
foreach ( $ordered_packages as $package_id => $package ) {
|
2568 |
-
if ( ! empty( $package['sub-packages'] ) ) {
|
2569 |
-
usort( $ordered_packages[ $package_id ]['sub-packages'], array( $this, 'compare_package_order' ) );
|
2570 |
-
}
|
2571 |
-
}
|
2572 |
-
|
2573 |
-
$this->settings['repositories'][ $repository_id ]['data']['packages'] = $ordered_packages;
|
2574 |
-
|
2575 |
-
|
2576 |
-
}
|
2577 |
-
}
|
2578 |
-
|
2579 |
-
|
2580 |
-
}
|
2581 |
-
|
2582 |
-
public function compare_package_order($a, $b) {
|
2583 |
-
return $a['order'] > $b['order'];
|
2584 |
-
}
|
2585 |
-
|
2586 |
-
public function get_support_tag_by_name( $name, $repository ) {
|
2587 |
-
|
2588 |
-
if ( is_array( $this->settings['repositories'][ $repository ]['data']['support_tags'] ) ) {
|
2589 |
-
foreach ( $this->settings['repositories'][ $repository ]['data']['support_tags'] as $support_tag ) {
|
2590 |
-
if ( $support_tag['name'] == $name ) {
|
2591 |
-
return $support_tag['url'];
|
2592 |
-
}
|
2593 |
-
}
|
2594 |
-
}
|
2595 |
-
|
2596 |
-
return false;
|
2597 |
-
}
|
2598 |
-
|
2599 |
-
public function plugin_upgrade_custom_errors() {
|
2600 |
-
|
2601 |
-
if ( isset( $_REQUEST['action'] ) ) {
|
2602 |
-
|
2603 |
-
$action = isset( $_REQUEST['action'] ) ? sanitize_text_field( $_REQUEST['action'] ) : '';
|
2604 |
-
|
2605 |
-
//bulk mode
|
2606 |
-
if ( 'update-selected' == $action ) {
|
2607 |
-
|
2608 |
-
global $plugins;
|
2609 |
-
|
2610 |
-
if ( isset( $plugins ) && is_array( $plugins ) ) {
|
2611 |
-
|
2612 |
-
foreach ( $plugins as $k => $plugin ) {
|
2613 |
-
$plugin_repository = false;
|
2614 |
-
|
2615 |
-
$wp_plugin_slug = dirname( $plugin );
|
2616 |
-
|
2617 |
-
foreach ( $this->settings['repositories'] as $repository_id => $repository ) {
|
2618 |
-
|
2619 |
-
foreach ( $repository['data']['packages'] as $package ) {
|
2620 |
-
|
2621 |
-
foreach ( $package['products'] as $product ) {
|
2622 |
-
|
2623 |
-
foreach ( $product['plugins'] as $plugin_slug ) {
|
2624 |
-
|
2625 |
-
$download = $this->settings['repositories'][ $repository_id ]['data']['downloads']['plugins'][ $plugin_slug ];
|
2626 |
-
|
2627 |
-
if ( $download['slug'] == $wp_plugin_slug ) {
|
2628 |
-
$plugin_repository = $repository_id;
|
2629 |
-
$product_name = $repository['data']['product-name'];
|
2630 |
-
$plugin_name = $download['name'];
|
2631 |
-
$free_on_wporg = ! empty( $download['free-on-wporg'] ) && $download['channel'] == WP_Installer_Channels::CHANNEL_PRODUCTION;
|
2632 |
-
break;
|
2633 |
-
}
|
2634 |
-
|
2635 |
-
}
|
2636 |
-
|
2637 |
-
}
|
2638 |
-
|
2639 |
-
}
|
2640 |
-
|
2641 |
-
}
|
2642 |
-
|
2643 |
-
if ( $plugin_repository ) {
|
2644 |
-
|
2645 |
-
//validate subscription
|
2646 |
-
static $sub_cache = array();
|
2647 |
-
|
2648 |
-
if ( empty( $sub_cache[ $plugin_repository ] ) ) {
|
2649 |
-
$site_key = $this->get_repository_site_key( $plugin_repository );
|
2650 |
-
if ( $site_key ) {
|
2651 |
-
$subscription_data = $this->fetch_subscription_data( $plugin_repository, $site_key, self::SITE_KEY_VALIDATION_SOURCE_REVALIDATION );
|
2652 |
-
}
|
2653 |
-
|
2654 |
-
$sub_cache[ $plugin_repository ]['site_key'] = $site_key;
|
2655 |
-
$sub_cache[ $plugin_repository ]['subscription_data'] = isset( $subscription_data ) ? $subscription_data : false;
|
2656 |
-
} else {
|
2657 |
-
|
2658 |
-
$site_key = $sub_cache[ $plugin_repository ]['site_key'];
|
2659 |
-
$subscription_data = $sub_cache[ $plugin_repository ]['subscription_data'];
|
2660 |
-
|
2661 |
-
}
|
2662 |
-
|
2663 |
-
if ( ! $site_key && ! empty( $free_on_wporg ) ) { // allow the download from wp.org
|
2664 |
-
continue;
|
2665 |
-
}
|
2666 |
-
|
2667 |
-
if ( empty( $site_key ) || empty( $subscription_data ) ) {
|
2668 |
-
|
2669 |
-
|
2670 |
-
$error_message = sprintf( __( "%s cannot update because your site's registration is not valid. Please %sregister %s%s again for this site first.", 'installer' ),
|
2671 |
-
'<strong>' . $plugin_name . '</strong>', '<a target="_top" href="' . $this->menu_url() . '&validate_repository=' . $plugin_repository .
|
2672 |
-
'#repository-' . $plugin_repository . '">', $product_name, '</a>' );
|
2673 |
-
|
2674 |
-
echo '<div class="updated error"><p>' . $error_message . '</p></div>';
|
2675 |
-
|
2676 |
-
unset( $plugins[ $k ] );
|
2677 |
-
|
2678 |
-
|
2679 |
-
}
|
2680 |
-
|
2681 |
-
}
|
2682 |
-
|
2683 |
-
}
|
2684 |
-
|
2685 |
-
}
|
2686 |
-
|
2687 |
-
}
|
2688 |
-
|
2689 |
-
|
2690 |
-
if ( 'upgrade-plugin' == $action || 'update-plugin' == $action ) {
|
2691 |
-
|
2692 |
-
$plugin = isset( $_REQUEST['plugin'] ) ? trim( sanitize_text_field( $_REQUEST['plugin'] ) ) : '';
|
2693 |
-
|
2694 |
-
$wp_plugin_slug = dirname( $plugin );
|
2695 |
-
|
2696 |
-
$plugin_repository = false;
|
2697 |
-
|
2698 |
-
foreach ( $this->settings['repositories'] as $repository_id => $repository ) {
|
2699 |
-
|
2700 |
-
foreach ( $repository['data']['packages'] as $package ) {
|
2701 |
-
|
2702 |
-
foreach ( $package['products'] as $product ) {
|
2703 |
-
|
2704 |
-
foreach ( $product['plugins'] as $plugin_slug ) {
|
2705 |
-
$download = $this->settings['repositories'][ $repository_id ]['data']['downloads']['plugins'][ $plugin_slug ];
|
2706 |
-
|
2707 |
-
//match by folder, will change to match by name and folder
|
2708 |
-
if ( $download['slug'] == $wp_plugin_slug ) {
|
2709 |
-
$plugin_repository = $repository_id;
|
2710 |
-
$product_name = $repository['data']['product-name'];
|
2711 |
-
$plugin_name = $download['name'];
|
2712 |
-
$free_on_wporg = ! empty( $download['free-on-wporg'] ) && $download['channel'] == WP_Installer_Channels::CHANNEL_PRODUCTION;
|
2713 |
-
break;
|
2714 |
-
}
|
2715 |
-
|
2716 |
-
}
|
2717 |
-
|
2718 |
-
}
|
2719 |
-
|
2720 |
-
}
|
2721 |
-
|
2722 |
-
}
|
2723 |
-
|
2724 |
-
if ( $plugin_repository ) {
|
2725 |
-
|
2726 |
-
//validate subscription
|
2727 |
-
$site_key = $this->get_repository_site_key( $plugin_repository );
|
2728 |
-
if ( $site_key ) {
|
2729 |
-
$subscription_data = $this->fetch_subscription_data( $plugin_repository, $site_key, self::SITE_KEY_VALIDATION_SOURCE_REVALIDATION );
|
2730 |
-
}
|
2731 |
-
|
2732 |
-
if ( ( empty( $site_key ) || empty( $subscription_data ) ) && empty( $free_on_wporg ) ) {
|
2733 |
-
|
2734 |
-
$error_message = sprintf( __( "%s cannot update because your site's registration is not valid. Please %sregister %s%s again for this site first.", 'installer' ),
|
2735 |
-
'<strong>' . $plugin_name . '</strong>', '<a href="' . $this->menu_url() . '&validate_repository=' . $plugin_repository .
|
2736 |
-
'#repository-' . $plugin_repository . '">', $product_name, '</a>' );
|
2737 |
-
|
2738 |
-
if ( defined( 'DOING_AJAX' ) ) { //WP 4.2
|
2739 |
-
|
2740 |
-
$status = array(
|
2741 |
-
'update' => 'plugin',
|
2742 |
-
'plugin' => $plugin,
|
2743 |
-
'slug' => sanitize_key( $_POST['slug'] ),
|
2744 |
-
'oldVersion' => '',
|
2745 |
-
'newVersion' => '',
|
2746 |
-
);
|
2747 |
-
|
2748 |
-
$status['errorCode'] = 'wp_installer_invalid_subscription';
|
2749 |
-
$status['error'] = $error_message;
|
2750 |
-
|
2751 |
-
wp_send_json_error( $status );
|
2752 |
-
|
2753 |
-
} else { // WP 4.1.1
|
2754 |
-
echo '<div class="updated error"><p>' . $error_message . '</p></div>';
|
2755 |
-
|
2756 |
-
|
2757 |
-
echo '<div class="wrap">';
|
2758 |
-
echo '<h2>' . __( 'Update Plugin', 'installer' ) . '</h2>';
|
2759 |
-
echo '<a href="' . admin_url( 'plugins.php' ) . '">' . __( 'Return to the plugins page', 'installer' ) . '</a>';
|
2760 |
-
echo '</div>';
|
2761 |
-
require_once( ABSPATH . 'wp-admin/admin-footer.php' );
|
2762 |
-
exit;
|
2763 |
-
|
2764 |
-
}
|
2765 |
-
|
2766 |
-
}
|
2767 |
-
|
2768 |
-
|
2769 |
-
}
|
2770 |
-
|
2771 |
-
}
|
2772 |
-
}
|
2773 |
-
|
2774 |
-
}
|
2775 |
-
|
2776 |
-
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
vendor/otgs/installer/includes/functions-core.php
DELETED
@@ -1,9 +0,0 @@
|
|
1 |
-
<?php
|
2 |
-
|
3 |
-
function WP_Installer(){
|
4 |
-
return WP_Installer::instance();
|
5 |
-
}
|
6 |
-
|
7 |
-
function WP_Installer_Channels(){
|
8 |
-
return WP_Installer_Channels::instance();
|
9 |
-
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
vendor/otgs/installer/includes/functions-templates.php
DELETED
@@ -1,6 +0,0 @@
|
|
1 |
-
<?php
|
2 |
-
|
3 |
-
// Ext function
|
4 |
-
function WP_Installer_Show_Products($args = array()){
|
5 |
-
WP_Installer()->show_products($args);
|
6 |
-
}
|
|
|
|
|
|
|
|
|
|
|
|
vendor/otgs/installer/installer.php
DELETED
@@ -1,57 +0,0 @@
|
|
1 |
-
<?php
|
2 |
-
define( 'WP_INSTALLER_VERSION', '1.8.10' );
|
3 |
-
|
4 |
-
include_once dirname( __FILE__ ) . '/includes/functions-core.php';
|
5 |
-
include_once dirname( __FILE__ ) . '/includes/class-wp-installer.php';
|
6 |
-
|
7 |
-
include_once WP_Installer()->plugin_path() . '/includes/class-wp-installer-api.php';
|
8 |
-
include_once WP_Installer()->plugin_path() . '/includes/class-translation-service-info.php';
|
9 |
-
include_once WP_Installer()->plugin_path() . '/includes/class-installer-dependencies.php';
|
10 |
-
include_once WP_Installer()->plugin_path() . '/includes/class-wp-installer-channels.php';
|
11 |
-
|
12 |
-
include_once WP_Installer()->plugin_path() . '/includes/class-otgs-installer-wp-components-sender.php';
|
13 |
-
include_once WP_Installer()->plugin_path() . '/includes/class-otgs-installer-wp-components-storage.php';
|
14 |
-
include_once WP_Installer()->plugin_path() . '/includes/class-otgs-installer-wp-components-hooks.php';
|
15 |
-
include_once WP_Installer()->plugin_path() . '/includes/class-otgs-installer-wp-share-local-components-setting.php';
|
16 |
-
|
17 |
-
include_once WP_Installer()->plugin_path() . '/templates/template-service/interface-iotgs-installer-template-service.php';
|
18 |
-
include_once WP_Installer()->plugin_path() . '/templates/template-service/class-otgs-installer-twig-template-service.php';
|
19 |
-
include_once WP_Installer()->plugin_path() . '/templates/template-service/class-otgs-installer-twig-template-service-loader.php';
|
20 |
-
include_once WP_Installer()->plugin_path() . '/includes/class-otgs-installer-wp-components-setting-templates.php';
|
21 |
-
include_once WP_Installer()->plugin_path() . '/includes/class-otgs-installer-wp-components-setting-resources.php';
|
22 |
-
include_once WP_Installer()->plugin_path() . '/includes/class-otgs-installer-plugins-page-notice.php';
|
23 |
-
include_once WP_Installer()->plugin_path() . '/includes/class-otgs-installer-wp-components-setting-ajax.php';
|
24 |
-
include_once WP_Installer()->plugin_path() . '/includes/class-otgs-installer-filename-hooks.php';
|
25 |
-
include_once WP_Installer()->plugin_path() . '/includes/class-otgs-installer-php-functions.php';
|
26 |
-
include_once WP_Installer()->plugin_path() . '/includes/class-otgs-installer-icons.php';
|
27 |
-
|
28 |
-
include_once WP_Installer()->plugin_path() . '/includes/functions-templates.php';
|
29 |
-
|
30 |
-
// Initialization
|
31 |
-
WP_Installer();
|
32 |
-
WP_Installer_Channels();
|
33 |
-
|
34 |
-
$local_components_resources = new OTGS_Installer_WP_Components_Setting_Resources( WP_Installer() );
|
35 |
-
$local_components_resources->add_hooks();
|
36 |
-
|
37 |
-
$local_components_setting = new OTGS_Installer_WP_Share_Local_Components_Setting();
|
38 |
-
$local_components_sender = new OTGS_Installer_WP_Components_Sender(
|
39 |
-
WP_Installer(),
|
40 |
-
$local_components_setting
|
41 |
-
);
|
42 |
-
|
43 |
-
$local_components_storage = new OTGS_Installer_WP_Components_Storage();
|
44 |
-
$local_components_hooks = new OTGS_Installer_WP_Components_Hooks( $local_components_storage, $local_components_sender, $local_components_setting );
|
45 |
-
$local_components_hooks->add_hooks();
|
46 |
-
|
47 |
-
$local_components_ajax_setting = new OTGS_Installer_WP_Components_Setting_Ajax(
|
48 |
-
$local_components_setting,
|
49 |
-
WP_Installer()
|
50 |
-
);
|
51 |
-
$local_components_ajax_setting->add_hooks();
|
52 |
-
|
53 |
-
$filename_hooks = new OTGS_Installer_Filename_Hooks( new OTGS_Installer_PHP_Functions() );
|
54 |
-
$filename_hooks->add_hooks();
|
55 |
-
|
56 |
-
$icons = new OTGS_Installer_Icons( WP_Installer() );
|
57 |
-
$icons->add_hooks();
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
vendor/otgs/installer/loader.php
DELETED
@@ -1,154 +0,0 @@
|
|
1 |
-
<?php
|
2 |
-
|
3 |
-
if ( ! defined( 'ABSPATH' ) ) {
|
4 |
-
exit; // Exit if accessed directly
|
5 |
-
}
|
6 |
-
|
7 |
-
//It should only be loaded on the admin side
|
8 |
-
if ( ! ( defined( 'DOING_CRON' ) && DOING_CRON ) && ! is_admin() ) {
|
9 |
-
if ( ! function_exists( 'WP_Installer_Setup' ) ) {
|
10 |
-
function WP_Installer_Setup() {
|
11 |
-
}
|
12 |
-
}
|
13 |
-
$wp_installer_instance = null;
|
14 |
-
|
15 |
-
return;
|
16 |
-
}
|
17 |
-
|
18 |
-
$wp_installer_instance = dirname(__FILE__) . '/installer.php';
|
19 |
-
|
20 |
-
|
21 |
-
// Global stack of instances
|
22 |
-
global $wp_installer_instances;
|
23 |
-
$wp_installer_instances[$wp_installer_instance] = array(
|
24 |
-
'bootfile' => $wp_installer_instance,
|
25 |
-
'version' => '1.8.10'
|
26 |
-
);
|
27 |
-
|
28 |
-
|
29 |
-
/* EXCEPTIONS ********************************************************************************************/
|
30 |
-
// Exception: When WPML prior 3.2 is used, that instance must be used regardless of another newer instance
|
31 |
-
// Case 1: WPML loaded before Types - eliminate other instances
|
32 |
-
if( defined('ICL_SITEPRESS_VERSION') && version_compare(ICL_SITEPRESS_VERSION, '3.2', '<') ) {
|
33 |
-
foreach($wp_installer_instances as $key => $instance) {
|
34 |
-
if(isset($instance['args']['site_key_nags'])){
|
35 |
-
$wp_installer_instances[$key]['version'] = '9.9';
|
36 |
-
}else{
|
37 |
-
$wp_installer_instances[$key]['version'] = '0';
|
38 |
-
}
|
39 |
-
}
|
40 |
-
}
|
41 |
-
|
42 |
-
// Exception: Types 1.8.9 (Installer 1.7.0) with WPML before 3.3 (Installer before 1.7.0)
|
43 |
-
// New products file http://d2salfytceyqoe.cloudfront.net/wpml-products33.json overrides the old one
|
44 |
-
// while the WPML's instance is being used
|
45 |
-
// => Force using the new Installer Instance
|
46 |
-
if( defined('ICL_SITEPRESS_VERSION') && version_compare(ICL_SITEPRESS_VERSION, '3.3.1', '<') ) {
|
47 |
-
|
48 |
-
// if Installer 1.7.0+ is present, unregister Installer from old WPML
|
49 |
-
// Force Installer 1.7.0+ being used over older Installer versions
|
50 |
-
$installer_171_plus_on = false;
|
51 |
-
foreach($wp_installer_instances as $key => $instance) {
|
52 |
-
if( version_compare( $instance['version'], '1.7.1', '>=' ) ){
|
53 |
-
$installer_171_plus_on = true;
|
54 |
-
break;
|
55 |
-
}
|
56 |
-
}
|
57 |
-
|
58 |
-
if( $installer_171_plus_on ){
|
59 |
-
foreach($wp_installer_instances as $key => $instance) {
|
60 |
-
|
61 |
-
if( version_compare( $instance['version'], '1.7.0', '<' ) ){
|
62 |
-
unset( $wp_installer_instances[$key] );
|
63 |
-
}
|
64 |
-
|
65 |
-
}
|
66 |
-
}
|
67 |
-
|
68 |
-
}
|
69 |
-
|
70 |
-
// Exception: When using the embedded plugins module allow the set up to run completely with the
|
71 |
-
// Installer instance that triggers it
|
72 |
-
if( isset( $_POST['installer_instance'] ) && isset( $wp_installer_instances[$_POST['installer_instance']] ) ){
|
73 |
-
$wp_installer_instances[$_POST['installer_instance']]['version'] = '999';
|
74 |
-
}
|
75 |
-
/* EXCEPTIONS ********************************************************************************************/
|
76 |
-
|
77 |
-
|
78 |
-
// Only one of these in the end
|
79 |
-
remove_action('after_setup_theme', 'wpml_installer_instance_delegator', 1);
|
80 |
-
add_action('after_setup_theme', 'wpml_installer_instance_delegator', 1);
|
81 |
-
|
82 |
-
// When all plugins load pick the newest version
|
83 |
-
if(!function_exists('wpml_installer_instance_delegator')){
|
84 |
-
function wpml_installer_instance_delegator(){
|
85 |
-
global $wp_installer_instances;
|
86 |
-
|
87 |
-
// version based election
|
88 |
-
foreach($wp_installer_instances as $instance){
|
89 |
-
|
90 |
-
if(!isset($delegate)){
|
91 |
-
$delegate = $instance;
|
92 |
-
continue;
|
93 |
-
}
|
94 |
-
|
95 |
-
if(version_compare($instance['version'], $delegate['version'], '>')){
|
96 |
-
$delegate = $instance;
|
97 |
-
}
|
98 |
-
}
|
99 |
-
|
100 |
-
// priority based election
|
101 |
-
$highest_priority = null;
|
102 |
-
foreach($wp_installer_instances as $instance) {
|
103 |
-
if(isset($instance['args']['high_priority'])){
|
104 |
-
if(is_null($highest_priority) || $instance['args']['high_priority'] <= $highest_priority){
|
105 |
-
$highest_priority = $instance['args']['high_priority'];
|
106 |
-
$delegate = $instance;
|
107 |
-
}
|
108 |
-
}
|
109 |
-
}
|
110 |
-
|
111 |
-
// Exception: When WPML prior 3.2 is used, that instance must be used regardless of another newer instance
|
112 |
-
// Case 2: WPML loaded after Types
|
113 |
-
if( defined('ICL_SITEPRESS_VERSION') && version_compare(ICL_SITEPRESS_VERSION, '3.2', '<') ) {
|
114 |
-
foreach($wp_installer_instances as $key => $instance) {
|
115 |
-
if(isset($instance['args']['site_key_nags'])){
|
116 |
-
$delegate = $instance;
|
117 |
-
$wp_installer_instances = array($key => $delegate); //Eliminate other instances
|
118 |
-
break;
|
119 |
-
}
|
120 |
-
}
|
121 |
-
}
|
122 |
-
|
123 |
-
include_once $delegate['bootfile'];
|
124 |
-
|
125 |
-
// set configuration
|
126 |
-
if(strpos(realpath($delegate['bootfile']), realpath(TEMPLATEPATH)) === 0){
|
127 |
-
$delegate['args']['in_theme_folder'] = dirname(ltrim(str_replace(realpath(TEMPLATEPATH), '', realpath($delegate['bootfile'])), '\\/'));
|
128 |
-
}
|
129 |
-
if(isset($delegate['args']) && is_array($delegate['args'])){
|
130 |
-
foreach($delegate['args'] as $key => $value){
|
131 |
-
WP_Installer()->set_config($key, $value);
|
132 |
-
}
|
133 |
-
}
|
134 |
-
|
135 |
-
}
|
136 |
-
}
|
137 |
-
|
138 |
-
if(!function_exists('WP_Installer_Setup')){
|
139 |
-
|
140 |
-
// $args:
|
141 |
-
// plugins_install_tab = true|false (default: true)
|
142 |
-
// repositories_include = array() (default: all)
|
143 |
-
// repositories_exclude = array() (default: none)
|
144 |
-
// template = name (default: default)
|
145 |
-
//
|
146 |
-
// Ext function
|
147 |
-
function WP_Installer_Setup($wp_installer_instance, $args = array()){
|
148 |
-
global $wp_installer_instances;
|
149 |
-
|
150 |
-
$wp_installer_instances[$wp_installer_instance]['args'] = $args;
|
151 |
-
|
152 |
-
}
|
153 |
-
|
154 |
-
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
vendor/otgs/installer/locale/installer-ar.mo
DELETED
Binary file
|
vendor/otgs/installer/locale/installer-de_DE.mo
DELETED
Binary file
|
vendor/otgs/installer/locale/installer-el.mo
DELETED
Binary file
|
vendor/otgs/installer/locale/installer-es_ES.mo
DELETED
Binary file
|
vendor/otgs/installer/locale/installer-fr_FR.mo
DELETED
Binary file
|
vendor/otgs/installer/locale/installer-he_IL.mo
DELETED
Binary file
|
vendor/otgs/installer/locale/installer-it_IT.mo
DELETED
Binary file
|
vendor/otgs/installer/locale/installer-ja.mo
DELETED
Binary file
|
vendor/otgs/installer/locale/installer-ko_KR.mo
DELETED
Binary file
|
vendor/otgs/installer/locale/installer-nl_NL.mo
DELETED
Binary file
|
vendor/otgs/installer/locale/installer-pl_PL.mo
DELETED
Binary file
|
vendor/otgs/installer/locale/installer-pt_BR.mo
DELETED
Binary file
|
vendor/otgs/installer/locale/installer-pt_PT.mo
DELETED
Binary file
|
vendor/otgs/installer/locale/installer-ru_RU.mo
DELETED
Binary file
|
vendor/otgs/installer/locale/installer-sv_SE.mo
DELETED
Binary file
|
vendor/otgs/installer/locale/installer-uk_UA.mo
DELETED
Binary file
|
vendor/otgs/installer/locale/installer-vi.mo
DELETED
Binary file
|
vendor/otgs/installer/locale/installer-zh_CN.mo
DELETED
Binary file
|
vendor/otgs/installer/locale/installer-zh_TW.mo
DELETED
Binary file
|
vendor/otgs/installer/locale/orig/installer.po
DELETED
@@ -1,230 +0,0 @@
|
|
1 |
-
# This file was generated by WPML
|
2 |
-
# WPML is a WordPress plugin that can turn any WordPress site into a full featured multilingual content management system.
|
3 |
-
# https://wpml.org
|
4 |
-
msgid ""
|
5 |
-
msgstr ""
|
6 |
-
"Content-Type: text/plain; charset=utf-8\n"
|
7 |
-
"Content-Transfer-Encoding: 8bit\n"
|
8 |
-
"Project-Id-Version:WPML_EXPORT\n"
|
9 |
-
"POT-Creation-Date: \n"
|
10 |
-
"PO-Revision-Date: \n"
|
11 |
-
"Last-Translator: \n"
|
12 |
-
"Language-Team: \n"
|
13 |
-
"Language:en\n"
|
14 |
-
"MIME-Version: 1.0\n"
|
15 |
-
|
16 |
-
msgid "Installer"
|
17 |
-
msgstr ""
|
18 |
-
|
19 |
-
msgid "Registered"
|
20 |
-
msgstr ""
|
21 |
-
|
22 |
-
msgid "Register"
|
23 |
-
msgstr ""
|
24 |
-
|
25 |
-
msgid "To get automatic updates, you need to register %s for this site. %sRegister %s%s"
|
26 |
-
msgstr ""
|
27 |
-
|
28 |
-
msgid "Dismiss"
|
29 |
-
msgstr ""
|
30 |
-
|
31 |
-
msgid "Commercial"
|
32 |
-
msgstr ""
|
33 |
-
|
34 |
-
msgid "Installer cannot contact our updates server to get information about the available products and check for new versions. If you are seeing this message for the first time, you can ignore it, as it may be a temporary communication problem. If the problem persists and your WordPress admin is slowing down, you can disable automated version checks. Add the following line to your wp-config.php file:"
|
35 |
-
msgstr ""
|
36 |
-
|
37 |
-
msgid "No repositories defined."
|
38 |
-
msgstr ""
|
39 |
-
|
40 |
-
msgid "%s cannot access %s to register. Try again to see if it's a temporary problem. If the problem continues, make sure that this site has access to the Internet. You can still use the plugin without registration, but you will not receive automated updates."
|
41 |
-
msgstr ""
|
42 |
-
|
43 |
-
msgid "Invalid site key for the current site."
|
44 |
-
msgstr ""
|
45 |
-
|
46 |
-
msgid "You will have to renew your subscription in order to continue getting the updates and support."
|
47 |
-
msgstr ""
|
48 |
-
|
49 |
-
msgid "%sRenew here%s."
|
50 |
-
msgstr ""
|
51 |
-
|
52 |
-
msgid "Your subscription appears to no longer be valid. Please try to register again using a valid site key."
|
53 |
-
msgstr ""
|
54 |
-
|
55 |
-
msgid "You need to have a valid subscription in order to get upgrades or support for this plugin. %sPurchase a subscription or enter an existing site key%s."
|
56 |
-
msgstr ""
|
57 |
-
|
58 |
-
msgid "%s cannot update because your site's registration is not valid. Please %sregister %s%s again for this site first."
|
59 |
-
msgstr ""
|
60 |
-
|
61 |
-
msgid "Update Plugin"
|
62 |
-
msgstr ""
|
63 |
-
|
64 |
-
msgid "Return to the plugins page"
|
65 |
-
msgstr ""
|
66 |
-
|
67 |
-
msgid "Your subscription expires in %d day."
|
68 |
-
msgstr ""
|
69 |
-
|
70 |
-
msgid "Your subscription expires in %d days."
|
71 |
-
msgstr ""
|
72 |
-
|
73 |
-
msgid "Downloading is not possible because WordPress cannot write into the plugins folder. %sHow to fix%s."
|
74 |
-
msgstr ""
|
75 |
-
|
76 |
-
msgid "Plugin"
|
77 |
-
msgstr ""
|
78 |
-
|
79 |
-
msgid "downloading..."
|
80 |
-
msgstr ""
|
81 |
-
|
82 |
-
msgid "failed!"
|
83 |
-
msgstr ""
|
84 |
-
|
85 |
-
msgid "downloaded"
|
86 |
-
msgstr ""
|
87 |
-
|
88 |
-
msgid "activating"
|
89 |
-
msgstr ""
|
90 |
-
|
91 |
-
msgid "activated"
|
92 |
-
msgstr ""
|
93 |
-
|
94 |
-
msgid "Activate after download"
|
95 |
-
msgstr ""
|
96 |
-
|
97 |
-
msgid "Operation complete!"
|
98 |
-
msgstr ""
|
99 |
-
|
100 |
-
msgid "Download failed!\n\nClick OK to revalidate your subscription or CANCEL to try again."
|
101 |
-
msgstr ""
|
102 |
-
|
103 |
-
msgid "Available"
|
104 |
-
msgstr ""
|
105 |
-
|
106 |
-
msgid "Installed"
|
107 |
-
msgstr ""
|
108 |
-
|
109 |
-
msgid "Downloading"
|
110 |
-
msgstr ""
|
111 |
-
|
112 |
-
msgid "Activate"
|
113 |
-
msgstr ""
|
114 |
-
|
115 |
-
msgid "Download"
|
116 |
-
msgstr ""
|
117 |
-
|
118 |
-
msgid "Downloads:"
|
119 |
-
msgstr ""
|
120 |
-
|
121 |
-
msgid "Current version"
|
122 |
-
msgstr ""
|
123 |
-
|
124 |
-
msgid "Released"
|
125 |
-
msgstr ""
|
126 |
-
|
127 |
-
msgid "Installed version"
|
128 |
-
msgstr ""
|
129 |
-
|
130 |
-
msgid "(embedded)"
|
131 |
-
msgstr ""
|
132 |
-
|
133 |
-
msgid "installing..."
|
134 |
-
msgstr ""
|
135 |
-
|
136 |
-
msgid "updating..."
|
137 |
-
msgstr ""
|
138 |
-
|
139 |
-
msgid "installed"
|
140 |
-
msgstr ""
|
141 |
-
|
142 |
-
msgid "updated"
|
143 |
-
msgstr ""
|
144 |
-
|
145 |
-
msgid "Download failed!\n\nPlease refresh the page and try again."
|
146 |
-
msgstr ""
|
147 |
-
|
148 |
-
msgid "Incorrect setup"
|
149 |
-
msgstr ""
|
150 |
-
|
151 |
-
msgid "Invalid product"
|
152 |
-
msgstr ""
|
153 |
-
|
154 |
-
msgid "Unknown repository"
|
155 |
-
msgstr ""
|
156 |
-
|
157 |
-
msgid " Your current site key (%s) does not match the selected product (%s)."
|
158 |
-
msgstr ""
|
159 |
-
|
160 |
-
msgid "Buy %s"
|
161 |
-
msgstr ""
|
162 |
-
|
163 |
-
msgid "Already bought %s?"
|
164 |
-
msgstr ""
|
165 |
-
|
166 |
-
msgid "Renew %s"
|
167 |
-
msgstr ""
|
168 |
-
|
169 |
-
msgid "Remove current site key (%s)"
|
170 |
-
msgstr ""
|
171 |
-
|
172 |
-
msgid "%s support on wpml.org"
|
173 |
-
msgstr ""
|
174 |
-
|
175 |
-
msgid "Enter site key"
|
176 |
-
msgstr ""
|
177 |
-
|
178 |
-
msgid "Subscription is expired."
|
179 |
-
msgstr ""
|
180 |
-
|
181 |
-
msgid "Add"
|
182 |
-
msgstr ""
|
183 |
-
|
184 |
-
msgid "Are you sure you want to remove this site key?"
|
185 |
-
msgstr ""
|
186 |
-
|
187 |
-
msgid "Register %s"
|
188 |
-
msgstr ""
|
189 |
-
|
190 |
-
msgid "1. Go to your %s%s account%s and add this site URL: %s"
|
191 |
-
msgstr ""
|
192 |
-
|
193 |
-
msgid "Unregister %s from this site"
|
194 |
-
msgstr ""
|
195 |
-
|
196 |
-
msgid "%s is registered on this site. You will receive automatic updates until %s"
|
197 |
-
msgstr ""
|
198 |
-
|
199 |
-
msgid "%s is registered on this site. Your Lifetime account gives you updates for life."
|
200 |
-
msgstr ""
|
201 |
-
|
202 |
-
msgid "This page lets you install plugins and update existing plugins. To remove any of these plugins, go to the %splugins%s page and if you have the permission to remove plugins you should be able to do this."
|
203 |
-
msgstr ""
|
204 |
-
|
205 |
-
msgid "Already bought?"
|
206 |
-
msgstr ""
|
207 |
-
|
208 |
-
msgid "2. Enter your site key"
|
209 |
-
msgstr ""
|
210 |
-
|
211 |
-
msgid "Subscription is expired. You need to either purchase a new subscription or upgrade if available."
|
212 |
-
msgstr ""
|
213 |
-
|
214 |
-
msgid "Check for updates"
|
215 |
-
msgstr ""
|
216 |
-
|
217 |
-
msgid "Individual components"
|
218 |
-
msgstr ""
|
219 |
-
|
220 |
-
msgid "OK"
|
221 |
-
msgstr ""
|
222 |
-
|
223 |
-
msgid "Cancel"
|
224 |
-
msgstr ""
|
225 |
-
|
226 |
-
msgid "Are you sure you want to unregister?"
|
227 |
-
msgstr ""
|
228 |
-
|
229 |
-
msgid "Click to see individual components options."
|
230 |
-
msgstr ""
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
vendor/otgs/installer/phpcs.compatibility.xml
DELETED
@@ -1,19 +0,0 @@
|
|
1 |
-
<?xml version="1.0"?>
|
2 |
-
<ruleset name="WPML">
|
3 |
-
<description>WPML Coding Standards</description>
|
4 |
-
|
5 |
-
<config name="testVersion" value="5.2"/>
|
6 |
-
|
7 |
-
<rule ref="PHPCompatibility" />
|
8 |
-
|
9 |
-
<exclude-pattern>*/vendor/*</exclude-pattern>
|
10 |
-
<exclude-pattern>*/tests/*</exclude-pattern>
|
11 |
-
<exclude-pattern>*.js</exclude-pattern>
|
12 |
-
<exclude-pattern>*.mo</exclude-pattern>
|
13 |
-
<exclude-pattern>*.po</exclude-pattern>
|
14 |
-
<exclude-pattern>*.twig</exclude-pattern>
|
15 |
-
<exclude-pattern>*.css</exclude-pattern>
|
16 |
-
<exclude-pattern>*.scss</exclude-pattern>
|
17 |
-
|
18 |
-
|
19 |
-
</ruleset>
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
vendor/otgs/installer/phpcs.xml
DELETED
@@ -1,17 +0,0 @@
|
|
1 |
-
<?xml version="1.0"?>
|
2 |
-
<ruleset name="WPML">
|
3 |
-
<description>WPML Coding Standards</description>
|
4 |
-
|
5 |
-
<rule ref="WordPress-Core"/>
|
6 |
-
<rule ref="WordPress-Docs"/>
|
7 |
-
<rule ref="WordPress-Extra"/>
|
8 |
-
|
9 |
-
<exclude-pattern>*/vendor/*</exclude-pattern>
|
10 |
-
<exclude-pattern>*/tests/*</exclude-pattern>
|
11 |
-
<exclude-pattern>*.js</exclude-pattern>
|
12 |
-
<exclude-pattern>*.mo</exclude-pattern>
|
13 |
-
<exclude-pattern>*.po</exclude-pattern>
|
14 |
-
<exclude-pattern>*.twig</exclude-pattern>
|
15 |
-
<exclude-pattern>*.css</exclude-pattern>
|
16 |
-
<exclude-pattern>*.scss</exclude-pattern>
|
17 |
-
</ruleset>
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
vendor/otgs/installer/phpunit.xml
DELETED
@@ -1,24 +0,0 @@
|
|
1 |
-
<phpunit
|
2 |
-
bootstrap="./tests/phpunit/bootstrap.php"
|
3 |
-
backupGlobals="false"
|
4 |
-
colors="true"
|
5 |
-
convertErrorsToExceptions="true"
|
6 |
-
convertNoticesToExceptions="true"
|
7 |
-
convertWarningsToExceptions="true"
|
8 |
-
>
|
9 |
-
<testsuites>
|
10 |
-
<testsuite name="installer-tests">
|
11 |
-
<directory suffix=".php">./tests/phpunit/tests/</directory>
|
12 |
-
</testsuite>
|
13 |
-
</testsuites>
|
14 |
-
<filter>
|
15 |
-
<whitelist>
|
16 |
-
<directory suffix=".php">./</directory>
|
17 |
-
<exclude>
|
18 |
-
<directory>./locale</directory>
|
19 |
-
<directory>./tests</directory>
|
20 |
-
<directory>./vendor</directory>
|
21 |
-
</exclude>
|
22 |
-
</whitelist>
|
23 |
-
</filter>
|
24 |
-
</phpunit>
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
vendor/otgs/installer/repositories.xml
DELETED
@@ -1,13 +0,0 @@
|
|
1 |
-
<?xml version="1.0" encoding="utf-8"?>
|
2 |
-
<repositories>
|
3 |
-
<repository>
|
4 |
-
<id>wpml</id>
|
5 |
-
<apiurl>https://api.wpml.org/</apiurl>
|
6 |
-
<products>http://d2salfytceyqoe.cloudfront.net/wpml33-products.json</products>
|
7 |
-
</repository>
|
8 |
-
<repository>
|
9 |
-
<id>toolset</id>
|
10 |
-
<apiurl>https://api.wp-types.com/</apiurl>
|
11 |
-
<products>http://d7j863fr5jhrr.cloudfront.net/toolset33-products.json</products>
|
12 |
-
</repository>
|
13 |
-
</repositories>
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
vendor/otgs/installer/res/css/admin.css
DELETED
@@ -1,339 +0,0 @@
|
|
1 |
-
.otgsi_site_key_form{
|
2 |
-
display:none;
|
3 |
-
/*display:inline;*/
|
4 |
-
}
|
5 |
-
.otgs-installer-register-inputs {
|
6 |
-
display: block;
|
7 |
-
}
|
8 |
-
@media (min-width: 1100px) {
|
9 |
-
.otgs-installer-register-inputs {
|
10 |
-
display: inline;
|
11 |
-
white-space: nowrap;
|
12 |
-
}
|
13 |
-
}
|
14 |
-
.otgsi_site_key_form .otgs-installer-register-inputs input {
|
15 |
-
vertical-align: middle;
|
16 |
-
margin: 3px 1px;
|
17 |
-
height: 28px;
|
18 |
-
line-height: 26px;
|
19 |
-
}
|
20 |
-
|
21 |
-
|
22 |
-
.installer-status-installing, .installer-status-installed, .installer-status-updating, .installer-status-updated, .installer-status-activating, .installer-status-activated, .installer-status-success{
|
23 |
-
display: none;
|
24 |
-
}
|
25 |
-
.installer-status-installing{color: #FF9900; }
|
26 |
-
.installer-status-installed{color: #003300; font-weight: bold; }
|
27 |
-
.installer-status-updating{color: #FF9900; }
|
28 |
-
.installer-status-updated{color: #003300; font-weight: bold; }
|
29 |
-
|
30 |
-
.installer-status-installed .error-details:before,
|
31 |
-
.installer-status-updated .error-details:before{
|
32 |
-
content: "\f534";
|
33 |
-
font: 200 16px/1 dashicons;
|
34 |
-
vertical-align: text-bottom;
|
35 |
-
margin-left: 5px;
|
36 |
-
color: red;
|
37 |
-
cursor: help;
|
38 |
-
}
|
39 |
-
|
40 |
-
.installer-status-activating{color: #996666 }
|
41 |
-
.installer-status-activated{color: #333366; font-weight: bold; }
|
42 |
-
|
43 |
-
.js-status-success p{
|
44 |
-
color: #FF9900;
|
45 |
-
padding: 4px;
|
46 |
-
}
|
47 |
-
|
48 |
-
.installer-green-text{
|
49 |
-
color:#006600;
|
50 |
-
font-weight:bold;
|
51 |
-
}
|
52 |
-
|
53 |
-
.installer-red-text{
|
54 |
-
color:#b22121;
|
55 |
-
font-weight:bold;
|
56 |
-
}
|
57 |
-
|
58 |
-
.installer-footnote{
|
59 |
-
color:#3d5e69;
|
60 |
-
display:block;
|
61 |
-
float: left;
|
62 |
-
font-style: italic;
|
63 |
-
font-size: 90%;
|
64 |
-
}
|
65 |
-
|
66 |
-
.installer-products-list li{
|
67 |
-
display: inline;
|
68 |
-
margin-right: 20px;
|
69 |
-
}
|
70 |
-
|
71 |
-
.otgs_wp_installer_table a.disabled{
|
72 |
-
color:#888;
|
73 |
-
}
|
74 |
-
|
75 |
-
.otgs_wp_installer_subtable{
|
76 |
-
clear: both;
|
77 |
-
margin-left:-20px;
|
78 |
-
}
|
79 |
-
.otgs_wp_installer_subtable td p{
|
80 |
-
font-size: 92%;
|
81 |
-
}
|
82 |
-
|
83 |
-
.installer-status-error{
|
84 |
-
color: #f00;
|
85 |
-
}
|
86 |
-
|
87 |
-
.installer-status-note{
|
88 |
-
color: #6F6E6D;
|
89 |
-
font-style: italic;
|
90 |
-
}
|
91 |
-
|
92 |
-
.installer-warn-text{
|
93 |
-
color: #FF6400;
|
94 |
-
}
|
95 |
-
|
96 |
-
.installer-warn-box{
|
97 |
-
-webkit-border-radius: 5px;-moz-border-radius: 5px;border-radius: 5px;border:1px solid #FF6400;background-color:#df8a48;
|
98 |
-
color: #333;
|
99 |
-
padding: 5px;
|
100 |
-
}
|
101 |
-
.installer-warn-box span.details{
|
102 |
-
font-style: italic;
|
103 |
-
color:#777;
|
104 |
-
}
|
105 |
-
|
106 |
-
.installer-error-box{
|
107 |
-
color:#962722;
|
108 |
-
margin-top: 10px;
|
109 |
-
}
|
110 |
-
.installer-error-box p{
|
111 |
-
margin: 10px 0 10px 0;
|
112 |
-
-webkit-border-radius: 5px;-moz-border-radius: 5px;border-radius: 5px;border:1px solid #962722;background-color:#F5C8C6;
|
113 |
-
color: #333;
|
114 |
-
padding: 5px;
|
115 |
-
text-align: center;
|
116 |
-
}
|
117 |
-
|
118 |
-
.spinner-inline{
|
119 |
-
float: none;
|
120 |
-
display: inline-block;
|
121 |
-
visibility: visible;
|
122 |
-
}
|
123 |
-
|
124 |
-
.installer-q-icon:before{
|
125 |
-
content: '\f223' !important;
|
126 |
-
font-family: dashicons !important;
|
127 |
-
font-size: 20px;
|
128 |
-
line-height: 1;
|
129 |
-
color: #f56e28;
|
130 |
-
}
|
131 |
-
|
132 |
-
.installer-plugin-update-tr td{
|
133 |
-
padding-left:3px !important;
|
134 |
-
}
|
135 |
-
|
136 |
-
.otgsi_yellow_bg{
|
137 |
-
background-color: #f2f46b;
|
138 |
-
}
|
139 |
-
|
140 |
-
.otgs_wp_installer_table_compact{
|
141 |
-
width:480px;
|
142 |
-
border: solid 1px #999;
|
143 |
-
padding:10px;
|
144 |
-
border-radius: 5px;
|
145 |
-
}
|
146 |
-
|
147 |
-
.installer-plugins-list-compact{
|
148 |
-
background-color: #fff;
|
149 |
-
border-collapse: collapse;
|
150 |
-
border:solid 1px #C1DAD7;
|
151 |
-
width:100%;
|
152 |
-
}
|
153 |
-
|
154 |
-
.installer-plugins-list-compact tr th{
|
155 |
-
padding-top:3px;
|
156 |
-
background-color: #ccc;
|
157 |
-
}
|
158 |
-
|
159 |
-
.installer-plugins-list-compact tr{
|
160 |
-
background-color: #ddd;
|
161 |
-
}
|
162 |
-
|
163 |
-
.installer-plugins-list-compact tr.even{
|
164 |
-
background-color: #eee;
|
165 |
-
}
|
166 |
-
|
167 |
-
.installer-plugins-list-compact td{
|
168 |
-
padding:2px 5px 2px 5px;
|
169 |
-
border-right: 1px solid #C1DAD7;
|
170 |
-
border-bottom: 1px solid #C1DAD7;
|
171 |
-
}
|
172 |
-
|
173 |
-
.installer-plugins-list-compact td.twelve{
|
174 |
-
width:16px;
|
175 |
-
}
|
176 |
-
|
177 |
-
.otgs_wp_installer_table_compact .installer-status-downloading,
|
178 |
-
.otgs_wp_installer_table_compact .installer-status-downloaded,
|
179 |
-
.otgs_wp_installer_table_compact .installer-status-activating,
|
180 |
-
.otgs_wp_installer_table_compact .installer-status-activated{
|
181 |
-
display: none;
|
182 |
-
color:transparent; width: 12px; padding:2px;
|
183 |
-
}
|
184 |
-
|
185 |
-
.otgs_wp_installer_table_compact .installer-status-success,
|
186 |
-
.otgs_wp_installer_table_compact .installer-status-fail{
|
187 |
-
display: none;
|
188 |
-
}
|
189 |
-
|
190 |
-
.installer-status-success{
|
191 |
-
float: right;
|
192 |
-
color: #006600;
|
193 |
-
}
|
194 |
-
|
195 |
-
.otgs_wp_installer_table_compact .installer-status-downloading{background: url(../img/dn.gif) no-repeat center; }
|
196 |
-
.otgs_wp_installer_table_compact .installer-status-downloaded{background: url(../img/complete.png) no-repeat center;}
|
197 |
-
.otgs_wp_installer_table_compact .installer-status-activating{background: url(../img/dn.gif) no-repeat center; }
|
198 |
-
.otgs_wp_installer_table_compact .installer-status-activated{background: url(../img/complete.png) no-repeat center; }
|
199 |
-
.otgs_wp_installer_table_compact .installer-status-error{background: url(../img/icon_error.gif) no-repeat center; }
|
200 |
-
|
201 |
-
.installer_highlight{
|
202 |
-
color:#c5510b;
|
203 |
-
}
|
204 |
-
|
205 |
-
.installer_highlight_package{
|
206 |
-
background-color: #fff9c0;
|
207 |
-
}
|
208 |
-
|
209 |
-
.plugin_progress{
|
210 |
-
font-style: italic;
|
211 |
-
color: #777
|
212 |
-
}
|
213 |
-
|
214 |
-
.installer-download-progress-status{
|
215 |
-
display: none;
|
216 |
-
float:right;
|
217 |
-
color: #006600;
|
218 |
-
font-style: italic;
|
219 |
-
background: url('../img/spinner.gif') no-repeat;
|
220 |
-
padding-left:24px;
|
221 |
-
}
|
222 |
-
|
223 |
-
.installer-release-notes{
|
224 |
-
display: none;
|
225 |
-
}
|
226 |
-
|
227 |
-
.handle.extended:after{
|
228 |
-
content: "▾";
|
229 |
-
font-size: 24px;
|
230 |
-
vertical-align:bottom;
|
231 |
-
}
|
232 |
-
.installer-table-wrap a.handle:active,
|
233 |
-
.installer-table-wrap a.handle:focus{
|
234 |
-
outline:0;
|
235 |
-
border:none;
|
236 |
-
box-shadow: none;
|
237 |
-
}
|
238 |
-
|
239 |
-
.installer-release-notes .arrow_box {
|
240 |
-
position: relative;
|
241 |
-
background: #eee;
|
242 |
-
border: 1px solid #ccc;
|
243 |
-
}
|
244 |
-
.installer-release-notes .arrow_box:after, .installer-release-notes .arrow_box:before {
|
245 |
-
bottom: 100%;
|
246 |
-
left: 50%;
|
247 |
-
border: solid transparent;
|
248 |
-
content: " ";
|
249 |
-
height: 0;
|
250 |
-
width: 0;
|
251 |
-
position: absolute;
|
252 |
-
pointer-events: none;
|
253 |
-
}
|
254 |
-
|
255 |
-
.installer-release-notes .arrow_box:after {
|
256 |
-
border-color: rgba(238, 238, 238, 0);
|
257 |
-
border-bottom-color: #eee;
|
258 |
-
border-width: 16px;
|
259 |
-
margin-left: -16px;
|
260 |
-
}
|
261 |
-
.installer-release-notes .arrow_box:before {
|
262 |
-
border-color: rgba(204, 204, 204, 0);
|
263 |
-
border-bottom-color: #ccc;
|
264 |
-
border-width: 17px;
|
265 |
-
margin-left: -17px;
|
266 |
-
}
|
267 |
-
|
268 |
-
.installer-release-notes .arrow_box div{
|
269 |
-
margin-top:5px;
|
270 |
-
padding: 10px;
|
271 |
-
overflow-y: auto;
|
272 |
-
max-height: 400px;
|
273 |
-
}
|
274 |
-
|
275 |
-
.otgs-is-dismissible {
|
276 |
-
position: relative;
|
277 |
-
padding-right: 38px;
|
278 |
-
}
|
279 |
-
.otgs-is-dismissible .notice-dismiss {
|
280 |
-
text-decoration: none;
|
281 |
-
}
|
282 |
-
.otgs-is-dismissible p [class*="button-"] {
|
283 |
-
margin: -5px 5px;
|
284 |
-
}
|
285 |
-
|
286 |
-
.otgsi_downloads_form{
|
287 |
-
margin-top: 15px;
|
288 |
-
}
|
289 |
-
|
290 |
-
.spinner-with-text{
|
291 |
-
padding-left: 25px;
|
292 |
-
float:none;
|
293 |
-
width: auto;
|
294 |
-
}
|
295 |
-
.installer-channel-update-ok{
|
296 |
-
padding-left: 10px;
|
297 |
-
display: none;
|
298 |
-
color: #006600;
|
299 |
-
}
|
300 |
-
.installer-channel-update-fail{
|
301 |
-
padding-left: 10px;
|
302 |
-
display: none;
|
303 |
-
color: #962722;
|
304 |
-
}
|
305 |
-
|
306 |
-
.otgs_wp_installer_table .installer-repository-image {
|
307 |
-
padding: 8px 20px;
|
308 |
-
}
|
309 |
-
|
310 |
-
.remove_site_key_js:disabled,
|
311 |
-
.enter_site_key_js:disabled {
|
312 |
-
cursor: help;
|
313 |
-
}
|
314 |
-
|
315 |
-
.otgs-installer-registered span {
|
316 |
-
display: inline-block;
|
317 |
-
vertical-align: middle;
|
318 |
-
margin-bottom: .5em;
|
319 |
-
}
|
320 |
-
|
321 |
-
@media (min-width: 1400px) {
|
322 |
-
.otgs-installer-registered-buttons {
|
323 |
-
float: right;
|
324 |
-
}
|
325 |
-
}
|
326 |
-
|
327 |
-
.otgs-installer-keepuptodate small {
|
328 |
-
display: block;
|
329 |
-
margin-top: 3px;
|
330 |
-
line-height: 1.3;
|
331 |
-
}
|
332 |
-
|
333 |
-
@media (min-width: 783px) {
|
334 |
-
.otgs-installer-keepuptodate small {
|
335 |
-
-webkit-margin-start: 25px;
|
336 |
-
-moz-margin-start: 25px;
|
337 |
-
margin-start: 25px;
|
338 |
-
}
|
339 |
-
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
vendor/otgs/installer/res/css/tooltip/tooltip.css
DELETED
@@ -1 +0,0 @@
|
|
1 |
-
.otgs-installer-tooltip-open{text-decoration:none}.js-otgs-installer-tooltip{z-index:110000 !important}.js-otgs-installer-tooltip .wp-pointer-content{padding:10px 25px 10px 10px}.js-otgs-installer-tooltip .wp-pointer-buttons{padding:0;position:absolute;overflow:hidden;top:4px;right:5px}.js-otgs-installer-tooltip a.close{width:18px;height:18px;padding:0}.js-otgs-installer-tooltip a.close:before{left:1px;top:0}
|
|
vendor/otgs/installer/res/img/complete.png
DELETED
Binary file
|
vendor/otgs/installer/res/img/computer.png
DELETED
Binary file
|
vendor/otgs/installer/res/img/dn.gif
DELETED
Binary file
|
vendor/otgs/installer/res/img/dn2.gif
DELETED
Binary file
|
vendor/otgs/installer/res/img/globe.png
DELETED
Binary file
|
vendor/otgs/installer/res/img/icon_error.gif
DELETED
Binary file
|
vendor/otgs/installer/res/img/on.png
DELETED
Binary file
|
vendor/otgs/installer/res/img/spinner.gif
DELETED
Binary file
|
vendor/otgs/installer/res/js/admin.js
DELETED
@@ -1,463 +0,0 @@
|
|
1 |
-
|
2 |
-
|
3 |
-
var otgs_wp_installer = {
|
4 |
-
|
5 |
-
plugins_update_XHR :{},
|
6 |
-
|
7 |
-
init: function(){
|
8 |
-
|
9 |
-
jQuery('.otgs_wp_installer_table').on('click', '.enter_site_key_js', otgs_wp_installer.show_site_key_form);
|
10 |
-
jQuery('.otgs_wp_installer_table').on('click', '.cancel_site_key_js', otgs_wp_installer.hide_site_key_form);
|
11 |
-
|
12 |
-
jQuery('.otgs_wp_installer_table').on('click', '.remove_site_key_js', otgs_wp_installer.remove_site_key);
|
13 |
-
jQuery('.otgs_wp_installer_table').on('click', '.update_site_key_js', otgs_wp_installer.update_site_key);
|
14 |
-
|
15 |
-
jQuery('.otgs_wp_installer_table').on('submit', '.otgsi_site_key_form', otgs_wp_installer.save_site_key);
|
16 |
-
jQuery('.otgs_wp_installer_table').on('submit', '.otgsi_downloads_form', otgs_wp_installer.download_downloads);
|
17 |
-
jQuery('.otgs_wp_installer_table').on('change', '.otgsi_downloads_form :checkbox[name="downloads[]"]', otgs_wp_installer.update_downloads_form);
|
18 |
-
|
19 |
-
jQuery('.installer-dismiss-nag').click(otgs_wp_installer.dismiss_nag);
|
20 |
-
|
21 |
-
jQuery('.otgs_wp_installer_table').on('click', '.installer_expand_button', otgs_wp_installer.toggle_subpackages);
|
22 |
-
|
23 |
-
otgs_wp_installer.scroll_to_repository();
|
24 |
-
|
25 |
-
if( typeof pagenow != 'undefined' && pagenow == 'plugins'){
|
26 |
-
|
27 |
-
jQuery(document).ajaxSuccess(function(event, xhr, settings) {
|
28 |
-
var data = otgs_wp_installer.getQueryParameters(settings.data);
|
29 |
-
if(typeof data.action != 'undefined' && data.action == 'update-plugin'){
|
30 |
-
response = xhr.responseJSON.data;
|
31 |
-
if(typeof response.error != 'undefined'){
|
32 |
-
var default_error = jQuery('#' + response.slug + '-update .update-message').html();
|
33 |
-
jQuery('#' + response.slug + '-update .update-message').html(default_error + ' »<span class="installer-red-text"> ' + response.error + '</span>');
|
34 |
-
}
|
35 |
-
}
|
36 |
-
return false;
|
37 |
-
});
|
38 |
-
|
39 |
-
}
|
40 |
-
|
41 |
-
if( typeof pagenow != 'undefined' && pagenow == 'plugin-install' ){
|
42 |
-
jQuery( '.plugin-install-tab-commercial .search-plugins' ).remove();
|
43 |
-
}
|
44 |
-
|
45 |
-
jQuery('.installer-table-wrap').on('click', '.js-release-notes', otgs_wp_installer.toggle_release_notes);
|
46 |
-
},
|
47 |
-
|
48 |
-
getQueryParameters : function(str) {
|
49 |
-
return (str || document.location.search).replace(/(^\?)/,'').split("&").map(function(n){return n = n.split("="),this[n[0]] = n[1],this}.bind({}))[0];
|
50 |
-
},
|
51 |
-
|
52 |
-
reset_errors: function(){
|
53 |
-
jQuery('.installer-error-box').html('').hide();
|
54 |
-
},
|
55 |
-
|
56 |
-
show_error: function(repo, text){
|
57 |
-
jQuery('#installer_repo_' + repo).find('.installer-error-box').html(text).show();
|
58 |
-
},
|
59 |
-
|
60 |
-
show_site_key_form: function () {
|
61 |
-
|
62 |
-
var button = jQuery(this);
|
63 |
-
|
64 |
-
if (button.attr('disabled')) {
|
65 |
-
alert(button.attr('title'));
|
66 |
-
return false;
|
67 |
-
}
|
68 |
-
|
69 |
-
otgs_wp_installer.reset_errors();
|
70 |
-
|
71 |
-
var form = button.closest('td').find('form.otgsi_site_key_form');
|
72 |
-
button.parent('p').hide();
|
73 |
-
|
74 |
-
form.show();
|
75 |
-
form.find('input[name^=site_key_]').focus().val('');
|
76 |
-
form.find('input').removeAttr('disabled');
|
77 |
-
|
78 |
-
form.closest('.otgsi_register_product_wrap').addClass('otgsi_yellow_bg');
|
79 |
-
|
80 |
-
return false;
|
81 |
-
|
82 |
-
},
|
83 |
-
|
84 |
-
hide_site_key_form: function () {
|
85 |
-
var button = jQuery(this);
|
86 |
-
var form = button.closest('td').find('form');
|
87 |
-
form.hide();
|
88 |
-
|
89 |
-
form.closest('.otgsi_register_product_wrap').removeClass('otgsi_yellow_bg').find('.enter_site_key_wrap_js').show();
|
90 |
-
otgs_wp_installer.reset_errors();
|
91 |
-
return false;
|
92 |
-
},
|
93 |
-
|
94 |
-
save_site_key: function(){
|
95 |
-
|
96 |
-
var thisf = jQuery(this);
|
97 |
-
var data = jQuery(this).serialize();
|
98 |
-
jQuery(this).find('input').attr('disabled', 'disabled');
|
99 |
-
|
100 |
-
var spinner = jQuery('<span class="spinner"></span>');
|
101 |
-
spinner.css({display: 'inline-block', float: 'right', visibility: 'visible'}).prependTo(jQuery(this));
|
102 |
-
|
103 |
-
otgs_wp_installer.reset_errors();
|
104 |
-
|
105 |
-
jQuery.ajax({url: ajaxurl, type: 'POST', dataType:'json', data: data, success:
|
106 |
-
function(ret){
|
107 |
-
if(!ret.error){
|
108 |
-
otgs_wp_installer.saved_site_key();
|
109 |
-
}else{
|
110 |
-
otgs_wp_installer.show_error(thisf.find('[name=repository_id]').val(), ret.error);
|
111 |
-
thisf.find('input').removeAttr('disabled');
|
112 |
-
}
|
113 |
-
|
114 |
-
if(typeof ret.debug != 'undefined'){
|
115 |
-
thisf.append('<textarea style="width:100%" rows="20">' + ret.debug + '</textarea>');
|
116 |
-
}
|
117 |
-
|
118 |
-
spinner.remove();
|
119 |
-
}
|
120 |
-
});
|
121 |
-
|
122 |
-
return false;
|
123 |
-
|
124 |
-
},
|
125 |
-
|
126 |
-
saved_site_key: function(){
|
127 |
-
location.reload();
|
128 |
-
},
|
129 |
-
|
130 |
-
remove_site_key: function(){
|
131 |
-
|
132 |
-
if( jQuery(this).attr('disabled') == 'disabled' ){
|
133 |
-
|
134 |
-
alert( jQuery(this).attr('title') );
|
135 |
-
return false;
|
136 |
-
|
137 |
-
} else {
|
138 |
-
|
139 |
-
if(confirm(jQuery(this).data('confirmation'))){
|
140 |
-
|
141 |
-
jQuery('<span class="spinner"></span>').css({visibility: 'visible', float: 'none'}).prependTo(jQuery(this).parent());
|
142 |
-
data = {action: 'remove_site_key', repository_id: jQuery(this).data('repository'), nonce: jQuery(this).data('nonce')}
|
143 |
-
jQuery.ajax({url: ajaxurl, type: 'POST', data: data, success: otgs_wp_installer.removed_site_key});
|
144 |
-
}
|
145 |
-
|
146 |
-
}
|
147 |
-
|
148 |
-
return false;
|
149 |
-
},
|
150 |
-
|
151 |
-
removed_site_key: function(){
|
152 |
-
location.reload();
|
153 |
-
},
|
154 |
-
|
155 |
-
update_site_key: function(){
|
156 |
-
var error_wrap = jQuery(this).closest('.otgsi_register_product_wrap').find('.installer-error-box');
|
157 |
-
error_wrap.html('');
|
158 |
-
|
159 |
-
var spinner = jQuery('<span class="spinner"></span>');
|
160 |
-
|
161 |
-
spinner.css({visibility: 'visible', float: 'none'}).prependTo(jQuery(this).parent());
|
162 |
-
data = {action: 'update_site_key', repository_id: jQuery(this).data('repository'), nonce: jQuery(this).data('nonce')}
|
163 |
-
jQuery.ajax({
|
164 |
-
url: ajaxurl,
|
165 |
-
type: 'POST',
|
166 |
-
data: data,
|
167 |
-
dataType: 'json',
|
168 |
-
complete: function( event, xhr, settings ){
|
169 |
-
var error = '';
|
170 |
-
if(xhr == 'success') {
|
171 |
-
var ret = event.responseJSON;
|
172 |
-
if(ret.error){
|
173 |
-
error = ret.error;
|
174 |
-
}else{
|
175 |
-
otgs_wp_installer.updated_site_key(ret);
|
176 |
-
}
|
177 |
-
}else{
|
178 |
-
error = 'Error processing request (' + xhr + '). Please try again!';
|
179 |
-
}
|
180 |
-
|
181 |
-
if( error ){
|
182 |
-
error_wrap.html('<p>' + error + '</p>').show();
|
183 |
-
spinner.remove();
|
184 |
-
}
|
185 |
-
|
186 |
-
}
|
187 |
-
});
|
188 |
-
|
189 |
-
return false;
|
190 |
-
|
191 |
-
},
|
192 |
-
|
193 |
-
updated_site_key: function(ret){
|
194 |
-
location.reload();
|
195 |
-
},
|
196 |
-
|
197 |
-
update_downloads_form: function(){
|
198 |
-
|
199 |
-
var checked = jQuery('.otgsi_downloads_form :checkbox:checked[name="downloads[]"]').length;
|
200 |
-
|
201 |
-
if(checked){
|
202 |
-
jQuery(this).closest('form').find(':submit, :checkbox[name=activate]').removeAttr('disabled');
|
203 |
-
}else{
|
204 |
-
jQuery(this).closest('form').find(':submit, :checkbox[name=activate]').attr('disabled', 'disabled');
|
205 |
-
}
|
206 |
-
|
207 |
-
|
208 |
-
},
|
209 |
-
|
210 |
-
download_downloads: function(){
|
211 |
-
|
212 |
-
var activate = jQuery(this).find(":checkbox:checked[name=activate]").val(),
|
213 |
-
action_button = jQuery(this).find('input[type="submit"]');
|
214 |
-
downloads_form = jQuery(this),
|
215 |
-
idx = 0,
|
216 |
-
checkboxes = [];
|
217 |
-
|
218 |
-
jQuery(this).find(':checkbox:checked[name="downloads[]"]').each(function(){
|
219 |
-
if(jQuery(this).attr('disabled')) return;
|
220 |
-
checkboxes[idx] = jQuery(this);
|
221 |
-
idx++;
|
222 |
-
jQuery(this).attr('disabled', 'disabled');
|
223 |
-
});
|
224 |
-
|
225 |
-
idx = 0;
|
226 |
-
|
227 |
-
if( typeof checkboxes[idx] != 'undefined' ){
|
228 |
-
download_and_activate( checkboxes[idx] );
|
229 |
-
action_button.attr('disabled', 'disabled');
|
230 |
-
}
|
231 |
-
|
232 |
-
function download_and_activate( elem ){
|
233 |
-
|
234 |
-
var this_tr = elem.closest('tr');
|
235 |
-
var is_update = this_tr.find('.installer-red-text').length;
|
236 |
-
if(is_update){
|
237 |
-
var installing = this_tr.find('.installer-status-updating');
|
238 |
-
var installed = this_tr.find('.installer-status-updated');
|
239 |
-
}else{
|
240 |
-
var installing = this_tr.find('.installer-status-installing');
|
241 |
-
var installed = this_tr.find('.installer-status-installed');
|
242 |
-
|
243 |
-
}
|
244 |
-
if(activate){
|
245 |
-
var activating = this_tr.find('.installer-status-activating');
|
246 |
-
var activated = this_tr.find('.installer-status-activated');
|
247 |
-
}
|
248 |
-
|
249 |
-
if( this_tr.find('.for_spinner_js .spinner').length > 0 ){
|
250 |
-
var spinner = this_tr.find('.for_spinner_js .spinner');
|
251 |
-
}else{
|
252 |
-
var spinner = this_tr.find('.installer-status-downloading');
|
253 |
-
}
|
254 |
-
|
255 |
-
otgs_wp_installer.reset_errors();
|
256 |
-
downloads_form.find('div.installer-status-success').hide();
|
257 |
-
spinner.css('visibility', 'visible');
|
258 |
-
installing.show();
|
259 |
-
|
260 |
-
var plugin_name = this_tr.find('.installer_plugin_name').html();
|
261 |
-
if(is_update){
|
262 |
-
otgs_wp_installer.show_download_progress_status(downloads_form, installer_strings.updating.replace('%s', plugin_name));
|
263 |
-
}else{
|
264 |
-
otgs_wp_installer.show_download_progress_status(downloads_form, installer_strings.installing.replace('%s', plugin_name));
|
265 |
-
}
|
266 |
-
|
267 |
-
|
268 |
-
data = {
|
269 |
-
action: 'installer_download_plugin',
|
270 |
-
data: elem.val(),
|
271 |
-
activate: activate,
|
272 |
-
reset_to_channel: downloads_form.find('input[name="reset-to-channel"]').val()
|
273 |
-
}
|
274 |
-
|
275 |
-
otgs_wp_installer.plugins_update_XHR = jQuery.ajax({
|
276 |
-
url: ajaxurl,
|
277 |
-
type: 'POST',
|
278 |
-
dataType: 'json',
|
279 |
-
data: data,
|
280 |
-
success: function(ret){
|
281 |
-
installing.hide();
|
282 |
-
|
283 |
-
if(!ret.success){
|
284 |
-
installed.addClass('installer-status-error');
|
285 |
-
installed.html(
|
286 |
-
installed.data('fail') +
|
287 |
-
'<a class="error-details" href="#" title="' + ret.message + '"></a>'
|
288 |
-
);
|
289 |
-
|
290 |
-
if(ret.message){
|
291 |
-
installed.closest('.otgs_wp_installer_table')
|
292 |
-
.find('.installer-error-box')
|
293 |
-
.html('<p>' + ret.message + '</p>')
|
294 |
-
.show();
|
295 |
-
}else{
|
296 |
-
installed.closest('.otgs_wp_installer_table')
|
297 |
-
.find('.installer-error-box')
|
298 |
-
.html('<p>' + downloads_form.find('.installer-revalidate-message').html() + '</p>')
|
299 |
-
.show();
|
300 |
-
}
|
301 |
-
|
302 |
-
downloads_form.trigger('installer-update-fail');
|
303 |
-
}
|
304 |
-
|
305 |
-
installed.show();
|
306 |
-
spinner.fadeOut();
|
307 |
-
|
308 |
-
if(ret.version){
|
309 |
-
var updated_version = '<span class="installer-green-text">' + ret.version + '</span>';
|
310 |
-
if( ret.non_stable ){
|
311 |
-
updated_version += ' (' + ret.non_stable + ')';
|
312 |
-
}
|
313 |
-
this_tr.find('.installer_version_installed').html(updated_version);
|
314 |
-
}
|
315 |
-
|
316 |
-
if(ret.success && activate){
|
317 |
-
|
318 |
-
otgs_wp_installer.show_download_progress_status(downloads_form, installer_strings.activating.replace('%s', plugin_name));
|
319 |
-
activating.show();
|
320 |
-
spinner.show();
|
321 |
-
this_tr.find('.installer-red-text').removeClass('installer-red-text').addClass('installer-green-text').html(ret.version);
|
322 |
-
|
323 |
-
jQuery.ajax({
|
324 |
-
url: ajaxurl,
|
325 |
-
type: 'POST',
|
326 |
-
dataType: 'json',
|
327 |
-
data: {action: 'installer_activate_plugin', plugin_id: ret.plugin_id, nonce: ret.nonce},
|
328 |
-
success: function(ret){
|
329 |
-
activating.hide();
|
330 |
-
if(!ret.error ){
|
331 |
-
activated.show();
|
332 |
-
}
|
333 |
-
|
334 |
-
spinner.fadeOut();
|
335 |
-
|
336 |
-
idx++;
|
337 |
-
if( typeof checkboxes[idx] != 'undefined' ){
|
338 |
-
download_and_activate( checkboxes[idx] );
|
339 |
-
}else{
|
340 |
-
otgs_wp_installer.hide_download_progress_status(downloads_form);
|
341 |
-
downloads_form.find('div.installer-status-success').show();
|
342 |
-
action_button.removeAttr('disabled');
|
343 |
-
|
344 |
-
downloads_form.trigger('installer-update-complete');
|
345 |
-
}
|
346 |
-
}
|
347 |
-
});
|
348 |
-
}else{
|
349 |
-
idx++;
|
350 |
-
if( typeof checkboxes[idx] != 'undefined' ){
|
351 |
-
download_and_activate( checkboxes[idx] );
|
352 |
-
}else{
|
353 |
-
otgs_wp_installer.hide_download_progress_status(downloads_form);
|
354 |
-
downloads_form.find('div.installer-status-success').show();
|
355 |
-
action_button.removeAttr('disabled');
|
356 |
-
|
357 |
-
downloads_form.trigger('installer-update-complete');
|
358 |
-
|
359 |
-
}
|
360 |
-
}
|
361 |
-
}
|
362 |
-
|
363 |
-
});
|
364 |
-
|
365 |
-
};
|
366 |
-
|
367 |
-
return false;
|
368 |
-
},
|
369 |
-
|
370 |
-
show_download_progress_status: function(downloads_form, text){
|
371 |
-
|
372 |
-
downloads_form.find('.installer-download-progress-status').html(text).fadeIn();
|
373 |
-
|
374 |
-
},
|
375 |
-
|
376 |
-
hide_download_progress_status: function(downloads_form){
|
377 |
-
|
378 |
-
downloads_form.find('.installer-download-progress-status').html('').fadeOut();
|
379 |
-
|
380 |
-
},
|
381 |
-
|
382 |
-
dismiss_nag: function(){
|
383 |
-
|
384 |
-
var thisa = jQuery(this);
|
385 |
-
|
386 |
-
data = {action: 'installer_dismiss_nag', repository: jQuery(this).data('repository')}
|
387 |
-
|
388 |
-
jQuery.ajax({url: ajaxurl, type: 'POST', dataType:'json', data: data, success:
|
389 |
-
function(ret){
|
390 |
-
thisa.closest('.otgs-is-dismissible').remove();
|
391 |
-
}
|
392 |
-
});
|
393 |
-
|
394 |
-
return false;
|
395 |
-
},
|
396 |
-
|
397 |
-
toggle_subpackages: function(){
|
398 |
-
var list = jQuery(this).closest('td').find('.otgs_wp_installer_subtable');
|
399 |
-
|
400 |
-
if(list.is(':visible')){
|
401 |
-
list.slideUp('fast');
|
402 |
-
}else{
|
403 |
-
list.slideDown('fast');
|
404 |
-
}
|
405 |
-
|
406 |
-
|
407 |
-
return false;
|
408 |
-
|
409 |
-
},
|
410 |
-
|
411 |
-
scroll_to_repository: function(){
|
412 |
-
|
413 |
-
var ref = window.location.hash.replace('#', '');
|
414 |
-
|
415 |
-
if(ref) {
|
416 |
-
var split = ref.split('/');
|
417 |
-
var repo = split[0];
|
418 |
-
|
419 |
-
if(typeof split[1] != 'undefined'){
|
420 |
-
var package = split[1];
|
421 |
-
var repo_element = jQuery('#repository-' + repo);
|
422 |
-
|
423 |
-
|
424 |
-
|
425 |
-
if(repo_element.length){
|
426 |
-
|
427 |
-
jQuery('html, body').animate({
|
428 |
-
scrollTop: repo_element.offset().top
|
429 |
-
}, 1000);
|
430 |
-
|
431 |
-
var package_element = jQuery('#repository-' + repo +'_' + package);
|
432 |
-
|
433 |
-
if(package_element.length && !package_element.is(':visible')){
|
434 |
-
package_element.parents('.otgs_wp_installer_subtable').slideDown();
|
435 |
-
package_element.addClass('installer_highlight_package');
|
436 |
-
}
|
437 |
-
|
438 |
-
package_element.find('.button-secondary').removeClass('button-secondary').addClass('button-primary');
|
439 |
-
}
|
440 |
-
}
|
441 |
-
|
442 |
-
}
|
443 |
-
|
444 |
-
},
|
445 |
-
|
446 |
-
toggle_release_notes: function(){
|
447 |
-
var handle = jQuery(this);
|
448 |
-
var tr = handle.closest('tr');
|
449 |
-
if( tr.next('.installer-release-notes').is(':visible') ){
|
450 |
-
handle.removeClass('extended');
|
451 |
-
}else{
|
452 |
-
handle.addClass('extended');
|
453 |
-
}
|
454 |
-
tr.next('.installer-release-notes').fadeToggle();
|
455 |
-
|
456 |
-
return false;
|
457 |
-
}
|
458 |
-
|
459 |
-
|
460 |
-
}
|
461 |
-
|
462 |
-
|
463 |
-
jQuery(document).ready(otgs_wp_installer.init);
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
vendor/otgs/installer/res/js/channels.js
DELETED
@@ -1,261 +0,0 @@
|
|
1 |
-
(function($){
|
2 |
-
|
3 |
-
var updateErrors = [];
|
4 |
-
var channelUpdateInProgress = false;
|
5 |
-
|
6 |
-
function channelSelectorInit(){
|
7 |
-
|
8 |
-
$('.otgs_wp_installer_table')
|
9 |
-
.on('focus', '.installer-channel-selector', saveCurrentValue)
|
10 |
-
.on('change', '.installer-channel-selector', maybeShowPrompt);
|
11 |
-
|
12 |
-
$('.otgs_wp_installer_table')
|
13 |
-
.on('click', '.installer-channel-retry', retryChannelSwitch)
|
14 |
-
|
15 |
-
$('.installer-switch-confirmation')
|
16 |
-
.on('click', '.js-cancel', cancelSwitch)
|
17 |
-
.on('click', '.js-proceed', changeChannel);
|
18 |
-
|
19 |
-
$('.otgsi_downloads_form').on('installer-update-complete', maybeShowWarn);
|
20 |
-
$('.otgsi_downloads_form').on('installer-update-complete', hideUpdateProgress);
|
21 |
-
|
22 |
-
$('.otgsi_downloads_form').on('installer-update-complete', showConfirmationMessage);
|
23 |
-
|
24 |
-
$('.otgsi_downloads_form').on('installer-update-fail', logUpdateError);
|
25 |
-
|
26 |
-
}
|
27 |
-
|
28 |
-
function saveCurrentValue(){
|
29 |
-
$(this).data('previous-value', $(this).val());
|
30 |
-
}
|
31 |
-
|
32 |
-
function maybeShowPrompt(){
|
33 |
-
var selectorContainer = $(this).closest('.installer-channel-selector-wrap');
|
34 |
-
var prompt = selectorContainer.find('.installer-switch-confirmation:hidden');
|
35 |
-
|
36 |
-
if(prompt.length){
|
37 |
-
prompt.show();
|
38 |
-
selectorContainer.find('select').prop('disabled', true);
|
39 |
-
var warnText = selectorContainer.find('.installer-warn-text');
|
40 |
-
warnText.hide();
|
41 |
-
}else{
|
42 |
-
changeChannel(selectorContainer);
|
43 |
-
}
|
44 |
-
|
45 |
-
}
|
46 |
-
|
47 |
-
function changeChannel(selectorContainer){
|
48 |
-
|
49 |
-
if(selectorContainer.type == 'click'){
|
50 |
-
var selectorContainer = $(this).closest('.installer-channel-selector-wrap');
|
51 |
-
}
|
52 |
-
|
53 |
-
var select = selectorContainer.find('select');
|
54 |
-
select.prop('disabled', true);
|
55 |
-
|
56 |
-
hideConfirmationMessage(select);
|
57 |
-
showUpdateProgress(select);
|
58 |
-
|
59 |
-
selectorContainer.find('.installer-switch-confirmation').hide();
|
60 |
-
|
61 |
-
var data = {
|
62 |
-
action: 'installer_set_channel',
|
63 |
-
repository_id: select.data('repository-id'),
|
64 |
-
channel: select.val(),
|
65 |
-
nonce: select.parent().find('.nonce').val(),
|
66 |
-
noprompt: selectorContainer.find('.js-remember').length ?
|
67 |
-
selectorContainer.find('.js-remember').attr('checked') == 'checked' : 0
|
68 |
-
}
|
69 |
-
|
70 |
-
resetUpdateErrors();
|
71 |
-
otgs_wp_installer.reset_errors();
|
72 |
-
channelUpdateInProgress = true;
|
73 |
-
|
74 |
-
// save selection
|
75 |
-
jQuery.ajax({
|
76 |
-
url: ajaxurl,
|
77 |
-
type: 'POST',
|
78 |
-
dataType: 'json',
|
79 |
-
data: data,
|
80 |
-
success: function (ret) {
|
81 |
-
if( ret.status == 'OK'){
|
82 |
-
var tableSelector = '#installer_repo_' + select.data('repository-id') + ' .installer-table-wrap';
|
83 |
-
$(tableSelector).load( location.href + ' ' + tableSelector + ' table.widefat', function(){
|
84 |
-
|
85 |
-
var upgradesCount = $(tableSelector).find('tr .installer-red-text').length
|
86 |
-
|| select.val() == 1 && $(tableSelector).find('td.installer_version_installed .unstable').length;
|
87 |
-
if( upgradesCount > 0){
|
88 |
-
automaticUpgrade(tableSelector);
|
89 |
-
}else{
|
90 |
-
$('#installer_repo_' + select.data('repository-id') + ' .otgsi_downloads_form')
|
91 |
-
.trigger('installer-update-complete');
|
92 |
-
}
|
93 |
-
|
94 |
-
select.prop('disabled', false);
|
95 |
-
} );
|
96 |
-
}
|
97 |
-
|
98 |
-
}
|
99 |
-
|
100 |
-
});
|
101 |
-
|
102 |
-
}
|
103 |
-
|
104 |
-
function retryChannelSwitch(){
|
105 |
-
var selectorContainer = $(this).closest('.installer-channel-selector-wrap');
|
106 |
-
changeChannel(selectorContainer);
|
107 |
-
return false;
|
108 |
-
}
|
109 |
-
|
110 |
-
function cancelSwitch(){
|
111 |
-
$(this).closest('.installer-switch-confirmation').hide();
|
112 |
-
var select = $(this).closest('.installer-switch-confirmation').prev().find('.installer-channel-selector');
|
113 |
-
var previousValue = select.data('previous-value');
|
114 |
-
|
115 |
-
select.val(previousValue).prop('disabled', false);
|
116 |
-
|
117 |
-
if( select.val() > 1){
|
118 |
-
var selectorContainer = $(this).closest('.installer-channel-selector-wrap');
|
119 |
-
var warnText = selectorContainer.find('.installer-warn-text');
|
120 |
-
warnText.show();
|
121 |
-
}
|
122 |
-
|
123 |
-
}
|
124 |
-
|
125 |
-
function automaticUpgrade(downloadsTable){
|
126 |
-
$(downloadsTable + ' tr').each(
|
127 |
-
function () {
|
128 |
-
var needsUpgrade = $(this).find(
|
129 |
-
'td.installer_version_installed .installer-red-text, ' +
|
130 |
-
'td.installer_version_installed .unstable'
|
131 |
-
).length > 0;
|
132 |
-
if (needsUpgrade) {
|
133 |
-
$(this).find('td :checkbox').prop('disabled', false).prop('checked', true);
|
134 |
-
}
|
135 |
-
}
|
136 |
-
);
|
137 |
-
|
138 |
-
$(downloadsTable)
|
139 |
-
.closest('form')
|
140 |
-
.append('<input type="hidden" name="reset-to-channel" value="1">')
|
141 |
-
.submit();
|
142 |
-
|
143 |
-
}
|
144 |
-
|
145 |
-
function maybeShowWarn(){
|
146 |
-
|
147 |
-
var select = $(this)
|
148 |
-
.closest('.otgs_wp_installer_table')
|
149 |
-
.find('.installer-channel-selector')
|
150 |
-
|
151 |
-
if(select.val() > 1 && !hasUpdateErrors()){
|
152 |
-
|
153 |
-
var warnText = select
|
154 |
-
.closest('.installer-channel-selector-wrap')
|
155 |
-
.find('.installer-warn-text');
|
156 |
-
warnText.show();
|
157 |
-
|
158 |
-
}
|
159 |
-
|
160 |
-
|
161 |
-
}
|
162 |
-
|
163 |
-
function showUpdateProgress(select){
|
164 |
-
|
165 |
-
var spinner = select
|
166 |
-
.closest('.installer-channel-selector-wrap')
|
167 |
-
.find('.spinner-with-text');
|
168 |
-
|
169 |
-
spinner.addClass('is-active').show();
|
170 |
-
|
171 |
-
}
|
172 |
-
|
173 |
-
function hideUpdateProgress(){
|
174 |
-
|
175 |
-
var spinner = $(this)
|
176 |
-
.closest('.otgs_wp_installer_table')
|
177 |
-
.find('.installer-channel-selector-wrap')
|
178 |
-
.find('.spinner-with-text');
|
179 |
-
|
180 |
-
spinner.removeClass('is-active').hide();
|
181 |
-
|
182 |
-
}
|
183 |
-
|
184 |
-
function showConfirmationMessage(){
|
185 |
-
|
186 |
-
if( ! channelUpdateInProgress ) return false;
|
187 |
-
|
188 |
-
var selectWrap = $(this)
|
189 |
-
.closest('.otgs_wp_installer_table')
|
190 |
-
.find('.installer-channel-selector-wrap');
|
191 |
-
|
192 |
-
var select = $(this)
|
193 |
-
.closest('.otgs_wp_installer_table')
|
194 |
-
.find('.installer-channel-selector');
|
195 |
-
|
196 |
-
var channelName = select.find('option:selected').text();
|
197 |
-
|
198 |
-
if( hasUpdateErrors() ) {
|
199 |
-
|
200 |
-
var message = selectWrap.find('.installer-channel-update-fail');
|
201 |
-
// suppress default errors
|
202 |
-
$(this).closest('.otgs_wp_installer_table').find('.installer-error-box').hide();
|
203 |
-
|
204 |
-
var channelType = select.val() == 1 ? 'stable' : 'unstable';
|
205 |
-
message.html(message.data('text-' + channelType).replace(/%CHANNEL%/, channelName));
|
206 |
-
|
207 |
-
}else{
|
208 |
-
|
209 |
-
var message = selectWrap.find('.installer-channel-update-ok');
|
210 |
-
message.html(message.data('text').replace(/%CHANNEL%/, channelName));
|
211 |
-
}
|
212 |
-
|
213 |
-
message.show();
|
214 |
-
|
215 |
-
channelUpdateInProgress = false;
|
216 |
-
}
|
217 |
-
|
218 |
-
function hideConfirmationMessage(select){
|
219 |
-
|
220 |
-
var selectWrap = select.closest('.installer-channel-selector-wrap');
|
221 |
-
if( hasUpdateErrors() ){
|
222 |
-
var message = selectWrap.find('.installer-channel-update-fail');
|
223 |
-
}else{
|
224 |
-
var message = selectWrap.find('.installer-channel-update-ok');
|
225 |
-
}
|
226 |
-
|
227 |
-
message.hide();
|
228 |
-
}
|
229 |
-
|
230 |
-
/*
|
231 |
-
function showFailureMessage(download_form){
|
232 |
-
var message = download_form
|
233 |
-
.closest('.otgs_wp_installer_table')
|
234 |
-
.find('.installer-channel-selector-wrap')
|
235 |
-
.find('.installer-channel-update-fail');
|
236 |
-
|
237 |
-
var channelName = $(this)
|
238 |
-
.closest('.otgs_wp_installer_table')
|
239 |
-
.find('.installer-channel-selector option:selected')
|
240 |
-
.text();
|
241 |
-
|
242 |
-
message.html( message.data('text').replace(/%CHANNEL%/, channelName) );
|
243 |
-
message.show();
|
244 |
-
}
|
245 |
-
*/
|
246 |
-
|
247 |
-
function logUpdateError(){
|
248 |
-
updateErrors.push(1);
|
249 |
-
}
|
250 |
-
|
251 |
-
function resetUpdateErrors(){
|
252 |
-
updateErrors = [];
|
253 |
-
}
|
254 |
-
|
255 |
-
function hasUpdateErrors() {
|
256 |
-
return updateErrors.length;
|
257 |
-
}
|
258 |
-
|
259 |
-
$(document).ready( channelSelectorInit );
|
260 |
-
|
261 |
-
})(jQuery)
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
vendor/otgs/installer/res/js/iframeResizer.min.js
DELETED
@@ -1,10 +0,0 @@
|
|
1 |
-
/*! iFrame Resizer (iframeSizer.min.js ) - v2.6.1 - 2014-09-03
|
2 |
-
* Desc: Force cross domain iframes to size to content.
|
3 |
-
* Requires: iframeResizer.contentWindow.min.js to be loaded into the target frame.
|
4 |
-
* Copyright: (c) 2014 David J. Bradshaw - dave@bradshaw.net
|
5 |
-
* License: MIT
|
6 |
-
*/
|
7 |
-
|
8 |
-
!function(){"use strict";function a(a,b,c){"addEventListener"in window?a.addEventListener(b,c,!1):"attachEvent"in window&&a.attachEvent("on"+b,c)}function b(){var a,b=["moz","webkit","o","ms"];for(a=0;a<b.length&&!w;a+=1)w=window[b[a]+"RequestAnimationFrame"];w||c(" RequestAnimationFrame not supported")}function c(a){y.log&&"object"==typeof console&&console.log(s+"[Host page"+u+"]"+a)}function d(a){function b(){function a(){h(z),f(),y.resizedCallback(z)}i(a,z,"resetPage")}function d(a){var b=a.id;c(" Removing iFrame: "+b),a.parentNode.removeChild(a),y.closedCallback(b),c(" --")}function e(){var a=x.substr(t).split(":");return{iframe:document.getElementById(a[0]),id:a[0],height:a[1],width:a[2],type:a[3]}}function j(a){var b=Number(y["max"+a]),d=Number(y["min"+a]),e=a.toLowerCase(),f=Number(z[e]);if(d>b)throw new Error("Value for min"+a+" can not be greater than max"+a);c(" Checking "+e+" is in range "+d+"-"+b),d>f&&(f=d,c(" Set "+e+" to min value")),f>b&&(f=b,c(" Set "+e+" to max value")),z[e]=""+f}function k(){var b=a.origin,d=z.iframe.src.split("/").slice(0,3).join("/");if(y.checkOrigin&&(c(" Checking connection is from: "+d),""+b!="null"&&b!==d))throw new Error("Unexpected message received from: "+b+" for "+z.iframe.id+". Message was: "+a.data+". This error can be disabled by adding the checkOrigin: false option.");return!0}function l(){return s===(""+x).substr(0,t)}function m(){var a=z.type in{"true":1,"false":1};return a&&c(" Ignoring init message from meta parent page"),a}function n(){var a=x.substr(x.indexOf(":")+r+6);c(" MessageCallback passed: {iframe: "+z.iframe.id+", message: "+a+"}"),y.messageCallback({iframe:z.iframe,message:a}),c(" --")}function o(){if(null===z.iframe)throw new Error("iFrame ("+z.id+") does not exist on "+u);return!0}function q(){c(" Reposition requested from iFrame"),v={x:z.width,y:z.height},f()}function w(){switch(z.type){case"close":d(z.iframe),y.resizedCallback(z);break;case"message":n();break;case"scrollTo":q();break;case"reset":g(z);break;case"init":b(),y.initCallback(z.iframe);break;default:b()}}var x=a.data,z={};l()&&(c(" Received: "+x),z=e(),j("Height"),j("Width"),!m()&&o()&&k()&&(w(),p=!1))}function e(){null===v&&(v={x:void 0!==window.pageXOffset?window.pageXOffset:document.documentElement.scrollLeft,y:void 0!==window.pageYOffset?window.pageYOffset:document.documentElement.scrollTop},c(" Get position: "+v.x+","+v.y))}function f(){null!==v&&(window.scrollTo(v.x,v.y),c(" Set position: "+v.x+","+v.y),v=null)}function g(a){function b(){h(a),j("reset","reset",a.iframe)}c(" Size reset requested by "+("init"===a.type?"host page":"iFrame")),e(),i(b,a,"init")}function h(a){function b(b){a.iframe.style[b]=a[b]+"px",c(" IFrame ("+a.iframe.id+") "+b+" set to "+a[b]+"px")}y.sizeHeight&&b("height"),y.sizeWidth&&b("width")}function i(a,b,d){d!==b.type&&w?(c(" Requesting animation frame"),w(a)):a()}function j(a,b,d){c("["+a+"] Sending msg to iframe ("+b+")"),d.contentWindow.postMessage(s+b,"*")}function k(){function b(){function a(a){1/0!==y[a]&&0!==y[a]&&(k.style[a]=y[a]+"px",c(" Set "+a+" = "+y[a]+"px"))}a("maxHeight"),a("minHeight"),a("maxWidth"),a("minWidth")}function d(a){return""===a&&(k.id=a="iFrameResizer"+o++,c(" Added missing iframe ID: "+a+" ("+k.src+")")),a}function e(){c(" IFrame scrolling "+(y.scrolling?"enabled":"disabled")+" for "+l),k.style.overflow=!1===y.scrolling?"hidden":"auto",k.scrolling=!1===y.scrolling?"no":"yes"}function f(){("number"==typeof y.bodyMargin||"0"===y.bodyMargin)&&(y.bodyMarginV1=y.bodyMargin,y.bodyMargin=""+y.bodyMargin+"px")}function h(){return l+":"+y.bodyMarginV1+":"+y.sizeWidth+":"+y.log+":"+y.interval+":"+y.enablePublicMethods+":"+y.autoResize+":"+y.bodyMargin+":"+y.heightCalculationMethod+":"+y.bodyBackground+":"+y.bodyPadding+":"+y.tolerance}function i(b){a(k,"load",function(){var a=p;j("iFrame.onload",b,k),!a&&y.heightCalculationMethod in x&&g({iframe:k,height:0,width:0,type:"init"})}),j("init",b,k)}var k=this,l=d(k.id);e(),b(),f(),i(h())}function l(a){if("object"!=typeof a)throw new TypeError("Options is not an object.")}function m(){function a(a){if("IFRAME"!==a.tagName.toUpperCase())throw new TypeError("Expected <IFRAME> tag, found <"+a.tagName+">.");k.call(a)}function b(a){a=a||{},l(a);for(var b in z)z.hasOwnProperty(b)&&(y[b]=a.hasOwnProperty(b)?a[b]:z[b])}return function(c,d){b(c),Array.prototype.forEach.call(document.querySelectorAll(d||"iframe"),a)}}function n(a){a.fn.iFrameResize=function(b){return b=b||{},l(b),y=a.extend({},z,b),this.filter("iframe").each(k).end()}}var o=0,p=!0,q="message",r=q.length,s="[iFrameSizer]",t=s.length,u="",v=null,w=window.requestAnimationFrame,x={max:1,scroll:1,bodyScroll:1,documentElementScroll:1},y={},z={autoResize:!0,bodyBackground:null,bodyMargin:null,bodyMarginV1:8,bodyPadding:null,checkOrigin:!0,enablePublicMethods:!1,heightCalculationMethod:"offset",interval:32,log:!1,maxHeight:1/0,maxWidth:1/0,minHeight:0,minWidth:0,scrolling:!1,sizeHeight:!0,sizeWidth:!1,tolerance:0,closedCallback:function(){},initCallback:function(){},messageCallback:function(){},resizedCallback:function(){}};b(),a(window,"message",d),"jQuery"in window&&n(jQuery),"function"==typeof define&&define.amd?define(function(){return m()}):window.iFrameResize=m()}();
|
9 |
-
//# sourceMappingURL=../src/iframeResizer.map
|
10 |
-
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
vendor/otgs/installer/res/js/installer_theme_install.js
DELETED
@@ -1,97 +0,0 @@
|
|
1 |
-
jQuery( document ).ready( function( $ ) {
|
2 |
-
|
3 |
-
/** Append OTGS Theme tab */
|
4 |
-
var js_array= installer_theme_install_localize.js_array_installer;
|
5 |
-
|
6 |
-
if (!($.isEmptyObject(js_array))) {
|
7 |
-
//Unempty
|
8 |
-
for(var key in js_array) {
|
9 |
-
//Dont append if we are on commercial plugins tab page and if there are no themes
|
10 |
-
if ((!(js_array[key]['is_commercial_plugin_tab'])) && (!(installer_theme_install_localize.no_associated_themes))) {
|
11 |
-
$('div.wp-filter ul.filter-links').append('<li><a data-sort="'+key+'" href="#">'+ js_array[key]['the_hyperlink_text'] +'</a></li>');
|
12 |
-
}
|
13 |
-
}
|
14 |
-
}
|
15 |
-
|
16 |
-
/** Page load event tab selected identifier */
|
17 |
-
var loaded_browsing_tab=installer_theme_extended_object.getParameterByName('browse');
|
18 |
-
if (loaded_browsing_tab.length > 0) {
|
19 |
-
|
20 |
-
var frontend_tab_selected_tab = loaded_browsing_tab;
|
21 |
-
|
22 |
-
} else if (0 == loaded_browsing_tab.length){
|
23 |
-
|
24 |
-
//WordPress defaults to 'Featured' when theme install is loaded without the browse parameter
|
25 |
-
var frontend_tab_selected_tab = 'featured';
|
26 |
-
}
|
27 |
-
|
28 |
-
/** Prepare data on page load event for AJAX */
|
29 |
-
var data = {
|
30 |
-
action: 'installer_theme_frontend_selected_tab',
|
31 |
-
installer_theme_frontend_selected_tab_nonce: installer_theme_install_localize.installer_theme_frontend_selected_tab_nonce,
|
32 |
-
frontend_tab_selected :frontend_tab_selected_tab
|
33 |
-
};
|
34 |
-
|
35 |
-
//Call AJAX
|
36 |
-
installer_theme_extended_object.doAJAX(data,frontend_tab_selected_tab,js_array);
|
37 |
-
|
38 |
-
/** When user clicks on any tab */
|
39 |
-
$(document).on('click','.filter-links li > a',function () {
|
40 |
-
|
41 |
-
//Get data_sort
|
42 |
-
var data_sort =$(this).attr('data-sort');
|
43 |
-
|
44 |
-
if (data_sort) {
|
45 |
-
//data_sort is set, prepare data
|
46 |
-
var data = {
|
47 |
-
action: 'installer_theme_frontend_selected_tab',
|
48 |
-
installer_theme_frontend_selected_tab_nonce: installer_theme_install_localize.installer_theme_frontend_selected_tab_nonce,
|
49 |
-
frontend_tab_selected : data_sort
|
50 |
-
};
|
51 |
-
|
52 |
-
//Call AJAX
|
53 |
-
installer_theme_extended_object.doAJAX(data,data_sort,js_array);
|
54 |
-
|
55 |
-
}
|
56 |
-
});
|
57 |
-
|
58 |
-
var fullhash = window.location.hash;
|
59 |
-
if (fullhash.length > 0) {
|
60 |
-
var product_selector=fullhash+' '+'.enter_site_key_js';
|
61 |
-
if ($(product_selector).length ) {
|
62 |
-
$(product_selector).click();
|
63 |
-
}
|
64 |
-
}
|
65 |
-
});
|
66 |
-
|
67 |
-
//Installer theme extended JS object for methods
|
68 |
-
var installer_theme_extended_object = {
|
69 |
-
|
70 |
-
getParameterByName: function(name) {
|
71 |
-
name = name.replace(/[\[]/, "\\[").replace(/[\]]/, "\\]");
|
72 |
-
var regex = new RegExp("[\\?&]" + name + "=([^&#]*)"),
|
73 |
-
results = regex.exec(location.search);
|
74 |
-
return results === null ? "" : decodeURIComponent(results[1].replace(/\+/g, " "));
|
75 |
-
},
|
76 |
-
|
77 |
-
doAJAX: function(data,data_sort,js_array) {
|
78 |
-
|
79 |
-
//We only want to post to AJAX if its an OTGS tab
|
80 |
-
jQuery.post(installer_theme_install_localize.ajaxurl, data, function(response) {
|
81 |
-
//AJAX response
|
82 |
-
var myObject = jQuery.parseJSON(response);
|
83 |
-
if (typeof myObject != "undefined") {
|
84 |
-
if(myObject.hasOwnProperty("output")){
|
85 |
-
var tab_selected= myObject.output;
|
86 |
-
if (data_sort in js_array) {
|
87 |
-
if (!(installer_theme_install_localize.js_array_installer[tab_selected]['registration_status'])) {
|
88 |
-
//Not registered, no theme response
|
89 |
-
var unregistered_message= myObject.unregistered_messages;
|
90 |
-
jQuery('.no-themes').html(unregistered_message);
|
91 |
-
}
|
92 |
-
}
|
93 |
-
}
|
94 |
-
}
|
95 |
-
});
|
96 |
-
}
|
97 |
-
};
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
vendor/otgs/installer/res/js/save-components-setting.js
DELETED
@@ -1,21 +0,0 @@
|
|
1 |
-
jQuery(document).ready(function () {
|
2 |
-
jQuery( '.js-otgs-components-report-user-choice' ).click(function () {
|
3 |
-
var spinner = jQuery(this).parent().prev();
|
4 |
-
|
5 |
-
spinner.addClass('is-active');
|
6 |
-
|
7 |
-
jQuery.ajax({
|
8 |
-
url: ajaxurl,
|
9 |
-
type: 'POST',
|
10 |
-
data: {
|
11 |
-
action: jQuery(this).data('nonce-action'),
|
12 |
-
nonce: jQuery(this).data('nonce-value'),
|
13 |
-
agree: jQuery(this).is(':checked') ? 1 : 0,
|
14 |
-
repo: jQuery(this).data('repo')
|
15 |
-
},
|
16 |
-
success: function () {
|
17 |
-
spinner.removeClass('is-active');
|
18 |
-
}
|
19 |
-
});
|
20 |
-
});
|
21 |
-
});
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
vendor/otgs/installer/res/js/tooltip/tooltip.js
DELETED
@@ -1,82 +0,0 @@
|
|
1 |
-
(function () {
|
2 |
-
'use strict';
|
3 |
-
|
4 |
-
var OTGS_Installer_Tooltip = function( element ) {
|
5 |
-
this.trigger = element;
|
6 |
-
this.content = this.trigger.html(this.trigger.html()).text();
|
7 |
-
this.edge = 'bottom';
|
8 |
-
this.align = 'left';
|
9 |
-
this.margin_left = '-54px';
|
10 |
-
|
11 |
-
if ( !this.content ) {
|
12 |
-
this.content = this.decodeEntities(this.trigger.data('content'));
|
13 |
-
}
|
14 |
-
|
15 |
-
if ( this.trigger.data( 'edge' ) ) {
|
16 |
-
this.edge = this.trigger.data( 'edge' );
|
17 |
-
}
|
18 |
-
|
19 |
-
if ( this.trigger.data( 'align' ) ) {
|
20 |
-
this.align = this.trigger.data( 'align' );
|
21 |
-
}
|
22 |
-
|
23 |
-
if ( this.trigger.data( 'margin_left' ) ) {
|
24 |
-
this.margin_left = this.trigger.data( 'margin_left' );
|
25 |
-
}
|
26 |
-
|
27 |
-
this.trigger.empty();
|
28 |
-
this.trigger.click( jQuery.proxy( this.onTriggerClick,this ) );
|
29 |
-
};
|
30 |
-
|
31 |
-
OTGS_Installer_Tooltip.prototype = {
|
32 |
-
open: function () {
|
33 |
-
if (this.trigger.length && this.content) {
|
34 |
-
this.trigger.addClass('js-otgs-installer-active-tooltip');
|
35 |
-
this.trigger.pointer({
|
36 |
-
pointerClass: 'js-otgs-installer-tooltip',
|
37 |
-
content: this.content,
|
38 |
-
position: {
|
39 |
-
edge: this.edge,
|
40 |
-
align: this.align
|
41 |
-
},
|
42 |
-
show: jQuery.proxy( this.onShow, this ),
|
43 |
-
close: this.onClose,
|
44 |
-
buttons: this.buttons
|
45 |
-
|
46 |
-
}).pointer('open');
|
47 |
-
}
|
48 |
-
},
|
49 |
-
onShow: function(event, t) {
|
50 |
-
t.pointer.css('marginLeft', this.margin_left);
|
51 |
-
},
|
52 |
-
onClose: function (event, t) {
|
53 |
-
t.pointer.css('marginLeft', '0');
|
54 |
-
},
|
55 |
-
onTriggerClick: function(e) {
|
56 |
-
e.preventDefault();
|
57 |
-
this.open();
|
58 |
-
},
|
59 |
-
buttons: function (event, t) {
|
60 |
-
var button = jQuery('<a class="close" href="#"> </a>');
|
61 |
-
|
62 |
-
return button.bind('click.pointer', function (e) {
|
63 |
-
e.preventDefault();
|
64 |
-
t.element.pointer('close');
|
65 |
-
});
|
66 |
-
},
|
67 |
-
decodeEntities: function(encodedString) {
|
68 |
-
var textArea = document.createElement('textarea');
|
69 |
-
textArea.innerHTML = encodedString;
|
70 |
-
return textArea.value;
|
71 |
-
}
|
72 |
-
};
|
73 |
-
|
74 |
-
jQuery(document).ready(function () {
|
75 |
-
var tooltips = jQuery('.js-otgs-installer-tooltip-open'),
|
76 |
-
tooltip = {};
|
77 |
-
|
78 |
-
tooltips.each(function (index, element) {
|
79 |
-
tooltip = new OTGS_Installer_Tooltip(jQuery(element));
|
80 |
-
});
|
81 |
-
});
|
82 |
-
}());
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
vendor/otgs/installer/templates/channel-selector.php
DELETED
@@ -1,68 +0,0 @@
|
|
1 |
-
<div class="installer-channel-selector-wrap">
|
2 |
-
<label>
|
3 |
-
<?php esc_html_e('Updates channel:', 'installer'); ?>
|
4 |
-
<select class="installer-channel-selector" data-repository-id="<?php echo $repository_id ?>"<?php if( !$can_switch ): ?> disabled<?php endif ?>>
|
5 |
-
<?php foreach( $channels as $channel_id => $channel_name ): ?>
|
6 |
-
<option value="<?php echo $channel_id ?>" <?php
|
7 |
-
if( $channel_id == $current_channel ): ?>selected="selected"<?php
|
8 |
-
endif; ?>><?php echo $channel_name ?></option>
|
9 |
-
<?php endforeach ?>
|
10 |
-
</select>
|
11 |
-
<span class="installer-status-note" <?php if( $can_switch ): ?>style="display:none" <?php endif; ?>>
|
12 |
-
<?php _e("To select different update channels (beta, development) you must update your existing products to their most recent stable versions.", 'installer') ?>
|
13 |
-
</span>
|
14 |
-
<span class="spinner spinner-with-text">
|
15 |
-
<?php _e( "Updating the plugins on your site. Please don't close this page or navigate away.", 'installer' ); ?>
|
16 |
-
</span>
|
17 |
-
<span class="installer-channel-update-ok" data-text="<?php
|
18 |
-
esc_attr_e( sprintf("Update completed. You are now using the %s channel of %s.",
|
19 |
-
'%CHANNEL%', WP_Installer()->get_generic_product_name( $repository_id ) ) ) ?>">
|
20 |
-
</span>
|
21 |
-
<span class="installer-channel-update-fail" data-text-unstable="<?php
|
22 |
-
$support_url = $repository_id ==='toolset' ? 'https://wp-types.com/forums/forum/support-2/' : 'https://wpml.org/forums/forum/english-support/';
|
23 |
-
$download_url = $repository_id ==='toolset' ? 'https://wp-types.com/account/downloads/' : 'https://wpml.org/account/downloads/';
|
24 |
-
echo esc_attr( sprintf(
|
25 |
-
__( "Something went wrong and we could not install all updates from the %s channel. Click here to %stry again%s. If the errors persist, please switch back to the Production channel and contact the %s%s support%s.", 'installer' ),
|
26 |
-
'%CHANNEL%',
|
27 |
-
'<a href="#" class="installer-channel-retry"><strong>',
|
28 |
-
'</strong></a>',
|
29 |
-
'<a href="' . $support_url . '">', WP_Installer()->get_generic_product_name( $repository_id ), '</a>'
|
30 |
-
) );
|
31 |
-
?>" data-text-stable="<?php
|
32 |
-
echo esc_attr( sprintf(
|
33 |
-
esc_attr__( "There was a problem switching to the %s channel. You can %sretry%s. If the problem continues, please %sdownload %s%s and install again manually", 'installer' ),
|
34 |
-
'%CHANNEL%',
|
35 |
-
'<a href="#" class="installer-channel-retry"><strong>',
|
36 |
-
'</strong></a>',
|
37 |
-
'<a href="' . $download_url . '">', WP_Installer()->get_generic_product_name( $repository_id ), '</a>'
|
38 |
-
) );
|
39 |
-
?>">
|
40 |
-
</span>
|
41 |
-
<input type="hidden" class="nonce" value="<?php echo $nonce ?>" />
|
42 |
-
</label>
|
43 |
-
|
44 |
-
<?php if( !$no_prompt ): ?>
|
45 |
-
<div class="installer-warn-box installer-switch-confirmation" style="margin-top: 10px; display: none">
|
46 |
-
<p class="alignright">
|
47 |
-
<button class="button-secondary js-cancel"><?php _e("Cancel", 'installer') ?></button>
|
48 |
-
<button class="button-primary js-proceed"><?php _e("Switch", 'installer') ?></button>
|
49 |
-
</p>
|
50 |
-
<p>
|
51 |
-
<?php _e("Plugins will be updated to their most advanced version in the channel that you selected.", 'installer') ?>
|
52 |
-
</p>
|
53 |
-
<label>
|
54 |
-
<input type="checkbox" value="1" class="js-remember"/>
|
55 |
-
<?php _e("Remember my preference.", 'installer') ?><br />
|
56 |
-
</label>
|
57 |
-
</div>
|
58 |
-
<?php endif; ?>
|
59 |
-
|
60 |
-
<div class="installer-warn-text" <?php if( WP_Installer_Channels()->get_channel( $repository_id ) <= 1 ): ?>style="display:none" <?php endif; ?>>
|
61 |
-
<?php printf(
|
62 |
-
__("You are using a potentially less stable channel for %s. If you didn't enable this on purpose, you should switch to the 'Production' channel.", 'installer'),
|
63 |
-
WP_Installer()->get_generic_product_name( $repository_id )
|
64 |
-
);
|
65 |
-
?>
|
66 |
-
</div>
|
67 |
-
|
68 |
-
</div>
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
vendor/otgs/installer/templates/components-setting/commercial-tab.twig
DELETED
@@ -1,7 +0,0 @@
|
|
1 |
-
<p class="otgs-installer-keepuptodate">
|
2 |
-
<input checked name="repo_allowed_to_send_data" value="{{ repo_id }}" type="checkbox"> {{ strings.message }}
|
3 |
-
<a class="js-otgs-installer-tooltip-open otgs-ico-help">
|
4 |
-
{{ strings.tooltip }}
|
5 |
-
</a>
|
6 |
-
<small>{{ strings.stop_sending }}</small>
|
7 |
-
</p>
|
|
|
|
|
|
|
|
|
|
|
|
|
|
vendor/otgs/installer/templates/components-setting/plugins-page.twig
DELETED
@@ -1,24 +0,0 @@
|
|
1 |
-
{% if should_display_subscription_notice or should_display_setting_notice %}
|
2 |
-
<tr class="{{ css.tr_classes }}">
|
3 |
-
<td colspan="{{ col_count }}" class="plugin-update colspanchange">
|
4 |
-
<div class="{{ css.notice_classes }}">
|
5 |
-
|
6 |
-
{% if should_display_subscription_notice %}
|
7 |
-
|
8 |
-
<p class="installer-q-icon">
|
9 |
-
{{ strings.valid_subscription|raw }}
|
10 |
-
</p>
|
11 |
-
|
12 |
-
{% endif %}
|
13 |
-
|
14 |
-
{% if should_display_setting_notice %}
|
15 |
-
<div class="spinner otgs-components-report-setting-spinner"></div>
|
16 |
-
<p>
|
17 |
-
<input type="checkbox" {{ repo_checked }} class="js-otgs-components-report-user-choice" value="1" data-nonce-action="{{ nonce.action }}" data-nonce-value="{{ nonce.value }}" data-repo="{{ repo }}" />
|
18 |
-
{{ strings.send_report|raw }}
|
19 |
-
</p>
|
20 |
-
{% endif %}
|
21 |
-
</div>
|
22 |
-
</td>
|
23 |
-
</tr>
|
24 |
-
{% endif %}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
vendor/otgs/installer/templates/downloads-list-compact.php
DELETED
@@ -1,80 +0,0 @@
|
|
1 |
-
|
2 |
-
<form method="post" class="otgsi_downloads_form">
|
3 |
-
|
4 |
-
<table class="installer-plugins-list-compact">
|
5 |
-
<thead>
|
6 |
-
<tr>
|
7 |
-
<th> </th>
|
8 |
-
<th><?php _e('Plugin', 'installer') ?></th>
|
9 |
-
<th><img src="<?php echo $this->plugin_url() ?>/res/img/globe.png" alt="<?php esc_attr_e('Available', 'installer') ?>" width="16" height="16"></th>
|
10 |
-
<th><img src="<?php echo $this->plugin_url() ?>/res/img/computer.png" alt="<?php esc_attr_e('Installed', 'installer') ?>" width="16" height="16"></th>
|
11 |
-
<th><img src="<?php echo $this->plugin_url() ?>/res/img/dn2.gif" alt="<?php esc_attr_e('Downloading', 'installer') ?>" width="16" height="16"></th>
|
12 |
-
<th><img src="<?php echo $this->plugin_url() ?>/res/img/on.png" alt="<?php esc_attr_e('Activate', 'installer') ?>" width="16" height="16"></th>
|
13 |
-
</tr>
|
14 |
-
</thead>
|
15 |
-
<tbody>
|
16 |
-
<?php foreach($product['downloads'] as $download): ?>
|
17 |
-
<?php if(empty($tr_oddeven) || $tr_oddeven == 'even') $tr_oddeven = 'odd'; else $tr_oddeven = 'even'; ?>
|
18 |
-
<tr class="<?php echo $tr_oddeven ?>">
|
19 |
-
<td>
|
20 |
-
<label>
|
21 |
-
<?php
|
22 |
-
$url = $this->append_site_key_to_download_url($download['url'], $site_key, $repository_id );
|
23 |
-
|
24 |
-
$download_data = array(
|
25 |
-
'url' => $url,
|
26 |
-
'slug' => $download['slug'],
|
27 |
-
'nonce' => wp_create_nonce('install_plugin_' . $url),
|
28 |
-
'repository_id' => $repository_id
|
29 |
-
);
|
30 |
-
|
31 |
-
$disabled = $expired ||
|
32 |
-
(
|
33 |
-
$this->plugin_is_installed($download['name'], $download['slug'], $download['version']) &&
|
34 |
-
!$this->plugin_is_embedded_version($download['name'], $download['slug'])
|
35 |
-
) || WP_Installer()->dependencies->cant_download( $repository_id );
|
36 |
-
|
37 |
-
?>
|
38 |
-
<input type="checkbox" name="downloads[]" value="<?php echo base64_encode(json_encode($download_data)); ?>" <?php
|
39 |
-
if($disabled): ?>disabled="disabled"<?php endif; ?> />
|
40 |
-
|
41 |
-
</label>
|
42 |
-
</td>
|
43 |
-
<td class="installer_plugin_name"><?php echo $download['name'] ?></td>
|
44 |
-
<td><?php echo $download['version'] ?></td>
|
45 |
-
<td class="installer_version_installed">
|
46 |
-
<?php if($v = $this->plugin_is_installed($download['name'], $download['slug'])):
|
47 |
-
$class = version_compare($v, $download['version'], '>=') ? 'installer-green-text' : 'installer-red-text'; ?>
|
48 |
-
<span class="<?php echo $class ?>"><?php echo $v; ?></span>
|
49 |
-
<?php endif; ?>
|
50 |
-
</td>
|
51 |
-
<td class="twelve">
|
52 |
-
<div class="installer-status-downloading"><?php _e('downloading...', 'installer') ?></div>
|
53 |
-
<div class="installer-status-downloaded" data-fail="<?php _e('failed!', 'installer') ?>"><?php _e('downloaded', 'installer') ?></div>
|
54 |
-
</td>
|
55 |
-
<td class="twelve">
|
56 |
-
<div class="installer-status-activating"><?php _e('activating', 'installer') ?></div>
|
57 |
-
<div class="installer-status-activated"><?php _e('activated', 'installer') ?></div>
|
58 |
-
</td>
|
59 |
-
</tr>
|
60 |
-
<?php endforeach; ?>
|
61 |
-
</tbody>
|
62 |
-
</table>
|
63 |
-
|
64 |
-
<?php if( !WP_Installer()->dependencies->is_uploading_allowed() ): ?>
|
65 |
-
<p class="installer-error-box"><?php printf(__('Downloading is not possible because WordPress cannot write into the plugins folder. %sHow to fix%s.', 'installer'),
|
66 |
-
'<a href="http://codex.wordpress.org/Changing_File_Permissions">', '</a>') ?></p>
|
67 |
-
<?php elseif( WP_Installer()->dependencies->is_win_paths_exception($repository_id) ): ?>
|
68 |
-
<p><?php echo WP_Installer()->dependencies->win_paths_exception_message() ?></p>
|
69 |
-
<?php endif;?>
|
70 |
-
|
71 |
-
<br />
|
72 |
-
<input type="submit" class="button-secondary" value="<?php esc_attr_e('Download', 'installer') ?>" disabled="disabled" />
|
73 |
-
|
74 |
-
<label><input name="activate" type="checkbox" value="1" disabled="disabled" /> <?php _e('Activate after download', 'installer') ?></label>
|
75 |
-
|
76 |
-
<div class="installer-download-progress-status"></div>
|
77 |
-
<div class="installer-status-success"><?php _e('Operation complete!', 'installer') ?></div>
|
78 |
-
|
79 |
-
<span class="installer-revalidate-message hidden"><?php _e("Download failed!\n\nClick OK to revalidate your subscription or CANCEL to try again.", 'installer') ?></span>
|
80 |
-
</form>
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
vendor/otgs/installer/templates/downloads-list.php
DELETED
@@ -1,109 +0,0 @@
|
|
1 |
-
|
2 |
-
<form method="post" class="otgsi_downloads_form">
|
3 |
-
|
4 |
-
<div class="installer-table-wrap">
|
5 |
-
<table class="widefat">
|
6 |
-
<thead>
|
7 |
-
<tr>
|
8 |
-
<th> </th>
|
9 |
-
<th><?php _e('Plugin', 'installer') ?></th>
|
10 |
-
<th><?php _e('Installed', 'installer') ?></th>
|
11 |
-
<th><?php _e('Current', 'installer') ?></th>
|
12 |
-
<th><?php _e('Released', 'installer') ?></th>
|
13 |
-
<th> </th>
|
14 |
-
<th> </th>
|
15 |
-
<th> </th>
|
16 |
-
<th> </th>
|
17 |
-
</tr>
|
18 |
-
</thead>
|
19 |
-
<tbody>
|
20 |
-
<?php
|
21 |
-
foreach($package['downloads'] as $download_id => $download): ?>
|
22 |
-
<tr>
|
23 |
-
<td>
|
24 |
-
<label>
|
25 |
-
<?php
|
26 |
-
$url = $this->append_site_key_to_download_url($download['url'], $site_key, $repository_id);
|
27 |
-
|
28 |
-
$download_data = array(
|
29 |
-
'url' => $url,
|
30 |
-
'slug' => $download['slug'],
|
31 |
-
'nonce' => wp_create_nonce('install_plugin_' . $url),
|
32 |
-
'repository_id' => $repository_id
|
33 |
-
);
|
34 |
-
?>
|
35 |
-
<input type="checkbox" name="downloads[]" value="<?php echo base64_encode(json_encode($download_data)); ?>" <?php
|
36 |
-
if( $this->plugin_is_installed($download['name'], $download['slug'], $download['version'] )
|
37 |
-
&& ! $this->plugin_is_embedded_version( $download['name'], $download['slug'] )
|
38 |
-
|| WP_Installer()->dependencies->cant_download( $repository_id ) ): ?>disabled="disabled"<?php endif; ?> />
|
39 |
-
</label>
|
40 |
-
</td>
|
41 |
-
<td class="installer_plugin_name"><?php echo $download['name'] ?></td>
|
42 |
-
<td class="installer_version_installed">
|
43 |
-
<?php if ( $v = $this->plugin_is_installed( $download['name'], $download['slug'] ) ): ?>
|
44 |
-
<?php
|
45 |
-
$class = version_compare( $v, $download['version'], '>=' ) ? 'installer-green-text' : 'installer-red-text';
|
46 |
-
$class .= version_compare( $v, $download['version'], '>' ) ? ' unstable' : '';
|
47 |
-
?>
|
48 |
-
<span class="<?php echo $class ?>"><?php echo $v; ?></span>
|
49 |
-
<?php if ( $this->plugin_is_embedded_version( $download['name'], $download['slug'] ) ): ?> <?php _e( '(embedded)', 'installer' ); ?><?php endif; ?>
|
50 |
-
<?php if(
|
51 |
-
WP_Installer_Channels()->get_channel( $repository_id ) !== WP_Installer_Channels::CHANNEL_PRODUCTION &&
|
52 |
-
$non_stable = WP_Installer_Channels()->get_download_source_channel( $v, $repository_id, $download_id, 'plugins')
|
53 |
-
) : ?>
|
54 |
-
(<?php echo $non_stable ?>)
|
55 |
-
<?php endif; ?>
|
56 |
-
<?php endif; ?>
|
57 |
-
</td>
|
58 |
-
<td><?php echo $download['version'] ?></td>
|
59 |
-
<td><?php echo date_i18n('F j, Y', strtotime($download['date'])) ?></td>
|
60 |
-
<td>
|
61 |
-
<?php if ( !empty( $download['release-notes'] ) ): ?>
|
62 |
-
<a class="js-release-notes handle" href="#"><?php esc_html_e( 'Release notes', 'installer' ) ?></a></td>
|
63 |
-
<?php endif; ?>
|
64 |
-
<td>
|
65 |
-
<span class="installer-status-installing"><?php _e('installing...', 'installer') ?></span>
|
66 |
-
<span class="installer-status-updating"><?php _e('updating...', 'installer') ?></span>
|
67 |
-
<span class="installer-status-installed" data-fail="<?php _e('failed!', 'installer') ?>"><?php _e('installed', 'installer') ?></span>
|
68 |
-
<span class="installer-status-updated" data-fail="<?php _e('failed!', 'installer') ?>"><?php _e('updated', 'installer') ?></span>
|
69 |
-
</td>
|
70 |
-
<td>
|
71 |
-
<span class="installer-status-activating"><?php _e('activating', 'installer') ?></span>
|
72 |
-
<span class="installer-status-activated"><?php _e('activated', 'installer') ?></span>
|
73 |
-
</td>
|
74 |
-
<td class="for_spinner_js"><span class="spinner"></span></td>
|
75 |
-
</tr>
|
76 |
-
<?php if ( !empty( $download['release-notes'] ) ): ?>
|
77 |
-
<tr class="installer-release-notes">
|
78 |
-
<td colspan="9">
|
79 |
-
<div class="arrow_box">
|
80 |
-
<div><?php echo force_balance_tags( $download['release-notes'] ) ?></div>
|
81 |
-
</div>
|
82 |
-
</td>
|
83 |
-
</tr>
|
84 |
-
<?php endif; ?>
|
85 |
-
<?php endforeach; ?>
|
86 |
-
</tbody>
|
87 |
-
</table>
|
88 |
-
</div>
|
89 |
-
<br />
|
90 |
-
|
91 |
-
<div class="installer-error-box">
|
92 |
-
<?php if( !WP_Installer()->dependencies->is_uploading_allowed() ): ?>
|
93 |
-
<p><?php printf(__('Downloading is not possible because WordPress cannot write into the plugins folder. %sHow to fix%s.', 'installer'),
|
94 |
-
'<a href="http://codex.wordpress.org/Changing_File_Permissions">', '</a>') ?></p>
|
95 |
-
<?php elseif( WP_Installer()->dependencies->is_win_paths_exception($repository_id) ): ?>
|
96 |
-
<p><?php echo WP_Installer()->dependencies->win_paths_exception_message() ?></p>
|
97 |
-
<?php endif; ?>
|
98 |
-
</div>
|
99 |
-
|
100 |
-
<input type="submit" class="button-secondary" value="<?php esc_attr_e('Download', 'installer') ?>" disabled="disabled" />
|
101 |
-
|
102 |
-
<label><input name="activate" type="checkbox" value="1" disabled="disabled" /> <?php _e('Activate after download', 'installer') ?></label>
|
103 |
-
|
104 |
-
<div class="installer-download-progress-status"></div>
|
105 |
-
|
106 |
-
<div class="installer-status-success"><?php _e('Operation complete!', 'installer') ?></div>
|
107 |
-
|
108 |
-
<span class="installer-revalidate-message hidden"><?php _e("Download failed!\n\nPlease refresh the page and try again.", 'installer') ?></span>
|
109 |
-
</form>
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
vendor/otgs/installer/templates/products-compact.php
DELETED
@@ -1,147 +0,0 @@
|
|
1 |
-
<h3><?php echo $args['box_title'] ?></h3>
|
2 |
-
|
3 |
-
<?php
|
4 |
-
if(empty($args['repository']) || empty($args['package']) || empty($args['product'])){
|
5 |
-
echo __('Incorrect setup', 'installer');
|
6 |
-
return;
|
7 |
-
}
|
8 |
-
|
9 |
-
$product = false;
|
10 |
-
foreach($this->settings['repositories'][$repository_id]['data']['packages'] as $package_idx => $package){
|
11 |
-
|
12 |
-
//pre 1.3 backwardds compatibility
|
13 |
-
if(!isset($package['id'])){
|
14 |
-
$package['id'] = sanitize_title_with_dashes($package['name']);
|
15 |
-
}
|
16 |
-
|
17 |
-
if($package['id'] == $args['package']){
|
18 |
-
$product = $this->settings['repositories'][$repository_id]['data']['packages'][$package_idx]['products'][$args['product']];
|
19 |
-
break;
|
20 |
-
}
|
21 |
-
}
|
22 |
-
|
23 |
-
|
24 |
-
if(!$product){
|
25 |
-
echo __('Invalid product', 'installer');
|
26 |
-
return;
|
27 |
-
}
|
28 |
-
|
29 |
-
if(isset($this->settings['repositories'][$repository_id])){
|
30 |
-
if(isset($this->settings['repositories'][$repository_id]['subscription']['key'])){
|
31 |
-
$site_key = $this->settings['repositories'][$repository_id]['subscription']['key'];
|
32 |
-
}else{
|
33 |
-
$site_key = false;
|
34 |
-
}
|
35 |
-
}else{
|
36 |
-
echo __('Unknown repository', 'installer');
|
37 |
-
return;
|
38 |
-
}
|
39 |
-
|
40 |
-
$subscription_type = $this->get_subscription_type_for_repository($repository_id);
|
41 |
-
$expired = false;
|
42 |
-
|
43 |
-
if($subscription_type != $product['subscription_type'] && !$this->have_superior_subscription($subscription_type, $product) && $site_key){
|
44 |
-
$subscription_no_match = sprintf(__(' Your current site key (%s) does not match the selected product (%s).', 'installer'), $site_key, $product['name']);
|
45 |
-
}
|
46 |
-
|
47 |
-
if(!isset($args['product_name'])) $args['product_name'] = $product['name'];
|
48 |
-
|
49 |
-
?>
|
50 |
-
|
51 |
-
<div class="otgs_wp_installer_table otgs_wp_installer_table_compact">
|
52 |
-
|
53 |
-
<p><?php echo $args['box_description'] ?></p>
|
54 |
-
|
55 |
-
|
56 |
-
<?php if(!$this->repository_has_subscription($repository_id) || !empty($subscription_no_match)): ?>
|
57 |
-
|
58 |
-
<?php if(!empty($subscription_no_match)): ?>
|
59 |
-
<div class="installer-warn-box">
|
60 |
-
<?php echo $subscription_no_match; ?>
|
61 |
-
</div>
|
62 |
-
<br />
|
63 |
-
<?php endif; ?>
|
64 |
-
|
65 |
-
<a class="button-primary" href="<?php echo $this->append_parameters_to_buy_url($product['url'], $repository_id, $args) ?>"><?php printf(__('Buy %s', 'installer'), $args['product_name']) ?></a>
|
66 |
-
|
67 |
-
<div>
|
68 |
-
<br />
|
69 |
-
<?php printf(__('Already bought %s?', 'installer'), $args['product_name']) ?>
|
70 |
-
<a class="enter_site_key_js<?php if( WP_Installer::get_repository_hardcoded_site_key( $repository_id ) ): ?> disabled<?php endif ?>" href="#"
|
71 |
-
<?php if( WP_Installer::get_repository_hardcoded_site_key( $repository_id ) ): ?>
|
72 |
-
style="cursor: help"
|
73 |
-
disabled="disabled"
|
74 |
-
title="<?php printf( esc_attr__("Site-key was set by %s, most likely in wp-config.php. Please remove the constant before attempting to register.", 'installer'), 'OTGS_INSTALLER_SITE_KEY_' . strtoupper($repository_id) ) ?>"
|
75 |
-
<?php endif; ?>
|
76 |
-
>
|
77 |
-
<?php _e('Enter site key', 'installer') ?>
|
78 |
-
</a>
|
79 |
-
|
80 |
-
<form class="otgsi_site_key_form" method="post">
|
81 |
-
<input type="hidden" name="action" value="save_site_key" />
|
82 |
-
<input type="hidden" name="nonce" value="<?php echo wp_create_nonce('save_site_key_' . $repository_id) ?>" />
|
83 |
-
<input type="hidden" name="repository_id" value="<?php echo $repository_id ?>">
|
84 |
-
<input type="text" size="10" name="site_key_<?php echo $repository_id ?>" />
|
85 |
-
<input class="button-secondary" type="submit" value="<?php esc_attr_e('Add', 'installer') ?>" />
|
86 |
-
</form>
|
87 |
-
<div class="installer-error-box hidden" style="margin-top:10px;"></div>
|
88 |
-
</div>
|
89 |
-
|
90 |
-
<?php else: ?>
|
91 |
-
|
92 |
-
<?php if($this->repository_has_expired_subscription($repository_id)): $expired = true; ?>
|
93 |
-
|
94 |
-
<div><p class="installer-warn-box"><?php _e('Subscription is expired.', 'installer') ?></p></div>
|
95 |
-
|
96 |
-
<?php else: ?>
|
97 |
-
|
98 |
-
<?php if($this->show_subscription_renew_warning($repository_id, $subscription_type)): ?>
|
99 |
-
|
100 |
-
<ul class="installer-products-list">
|
101 |
-
<?php foreach($product['renewals'] as $renewal): ?>
|
102 |
-
<li>
|
103 |
-
<a href="<?php echo $this->append_parameters_to_buy_url($renewal['url'], $repository_id, $args) ?>"><?php printf(__('Renew %s', 'installer'), $args['product_name']) ?></a>
|
104 |
-
</li>
|
105 |
-
<?php endforeach; ?>
|
106 |
-
</ul>
|
107 |
-
|
108 |
-
<?php endif; ?>
|
109 |
-
|
110 |
-
<?php endif; ?>
|
111 |
-
|
112 |
-
<center>
|
113 |
-
<a class="remove_site_key_js" href="#" data-repository=<?php echo $repository_id ?>
|
114 |
-
data-confirmation="<?php esc_attr_e('Are you sure you want to remove this site key?', 'installer') ?>"
|
115 |
-
data-nonce="<?php echo wp_create_nonce('remove_site_key_' . $repository_id) ?>"
|
116 |
-
<?php if( WP_Installer::get_repository_hardcoded_site_key( $repository_id ) ): ?>
|
117 |
-
style="cursor: help;color:#999999"
|
118 |
-
disabled="disabled"
|
119 |
-
title="<?php printf( esc_attr__("Site-key was set by %s, most likely in wp-config.php. Please remove the constant before attempting to unregister.", 'installer'), 'OTGS_INSTALLER_SITE_KEY_' . strtoupper($repository_id) ) ?>"
|
120 |
-
<?php endif; ?>
|
121 |
-
>
|
122 |
-
<?php printf(__("Remove current site key (%s)", 'installer'), $site_key) ?>
|
123 |
-
</a>
|
124 |
-
</center>
|
125 |
-
<br />
|
126 |
-
|
127 |
-
<?php include $this->plugin_path() . '/templates/downloads-list-compact.php'; ?>
|
128 |
-
|
129 |
-
|
130 |
-
|
131 |
-
<?php endif; ?>
|
132 |
-
|
133 |
-
<?php
|
134 |
-
if( isset( $args[ 'name' ] ) ):
|
135 |
-
$support_link = $this->get_support_tag_by_name($args['name'], $args['repository']); ?>
|
136 |
-
|
137 |
-
<?php if($support_link): ?>
|
138 |
-
<p><a href="<?php echo $support_link ?>" target="_blank"><?php printf(__('%s support on wpml.org', 'installer'), $args['name'] ) ?></a></p>
|
139 |
-
|
140 |
-
<?php endif; ?>
|
141 |
-
<?php
|
142 |
-
// compatibility for installer 1.1
|
143 |
-
elseif( isset( $args[ 'support_link' ] ) ): ?>
|
144 |
-
<p><?php echo $args[ 'support_link' ]; ?></p>
|
145 |
-
<?php endif; ?>
|
146 |
-
|
147 |
-
</div>
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
vendor/otgs/installer/templates/repository-listing.php
DELETED
@@ -1,243 +0,0 @@
|
|
1 |
-
<?php if((!$this->repository_has_subscription($repository_id) && $match = $this->get_matching_cp($repository)) && $match['exp']): ?>
|
2 |
-
<p class="alignright installer_highlight"><strong><?php printf('Price offers available until %s', date_i18n(get_option( 'date_format' ), $match['exp'])) ?></strong></p>
|
3 |
-
<?php endif; ?>
|
4 |
-
|
5 |
-
<h3 id="repository-<?php echo $repository_id ?>"><?php echo $repository['data']['name'] ?></h3>
|
6 |
-
<?php
|
7 |
-
$generic_product_name = $this->settings['repositories'][$repository_id]['data']['product-name'];
|
8 |
-
?>
|
9 |
-
<table class="widefat otgs_wp_installer_table" id="installer_repo_<?php echo $repository_id ?>">
|
10 |
-
|
11 |
-
<tr>
|
12 |
-
<td> </td>
|
13 |
-
<td class="otgsi_register_product_wrap">
|
14 |
-
<?php // IF NO SUBSCRIPTION ?>
|
15 |
-
<?php if(!$this->repository_has_subscription($repository_id)): ?>
|
16 |
-
|
17 |
-
|
18 |
-
|
19 |
-
<p class="alignright enter_site_key_wrap_js">
|
20 |
-
<span><?php _e('Already bought?', 'installer'); ?></span>
|
21 |
-
<a class="enter_site_key_js button-primary"
|
22 |
-
<?php if( WP_Installer::get_repository_hardcoded_site_key( $repository_id ) ): ?>
|
23 |
-
disabled
|
24 |
-
title="<?php printf( esc_attr__("Site-key was set by %s, most likely in wp-config.php. Please remove the constant before attempting to register.", 'installer'), 'OTGS_INSTALLER_SITE_KEY_' . strtoupper($repository_id) ) ?>"
|
25 |
-
<?php endif; ?>
|
26 |
-
>
|
27 |
-
<?php printf(__('Register %s', 'installer'), $generic_product_name); ?>
|
28 |
-
</a>
|
29 |
-
</p>
|
30 |
-
|
31 |
-
<form class="otgsi_site_key_form" method="post">
|
32 |
-
<input type="hidden" name="action" value="save_site_key" />
|
33 |
-
<input type="hidden" name="nonce" value="<?php echo wp_create_nonce('save_site_key_' . $repository_id) ?>" />
|
34 |
-
<input type="hidden" name="repository_id" value="<?php echo $repository_id ?>">
|
35 |
-
|
36 |
-
<p >
|
37 |
-
<?php
|
38 |
-
$repo_site = str_replace( array(
|
39 |
-
'https://',
|
40 |
-
'http://'
|
41 |
-
), '', $this->settings['repositories'][ $repository_id ]['data']['url'] );
|
42 |
-
|
43 |
-
printf(
|
44 |
-
__( '1. Get your site-key for %1$s. If you already have a key, get it from %2$s. Otherwise', 'installer' ),
|
45 |
-
str_replace( array(
|
46 |
-
'https://',
|
47 |
-
'http://'
|
48 |
-
), '', $this->get_installer_site_url( $repository_id ) ),
|
49 |
-
'<a target="_blank" href="'. $this->settings['repositories'][ $repository_id ]['data']['site_keys_management_url'] . '?add=' . urlencode( $this->get_installer_site_url( $repository_id ) ) . '">' . __( 'your account', 'installer' ) . '</a>'
|
50 |
-
);
|
51 |
-
?>
|
52 |
-
<a target="_blank"
|
53 |
-
href="<?php echo $this->settings['repositories'][ $repository_id ]['data']['url'] ?>"> <?php printf( esc_attr( 'register on %s.', 'installer' ), $repo_site ) ?> </a>
|
54 |
-
</p>
|
55 |
-
|
56 |
-
<p>
|
57 |
-
<?php
|
58 |
-
printf(
|
59 |
-
__( '2. Insert your key and activate automatic updates:', 'installer' ),
|
60 |
-
'<a href="' . $this->settings['repositories'][ $repository_id ]['data']['site_keys_management_url'] . '?add=' . urlencode( $this->get_installer_site_url( $repository_id ) ) . '">',
|
61 |
-
$generic_product_name, '</a>', $this->get_installer_site_url( $repository_id )
|
62 |
-
);
|
63 |
-
?>
|
64 |
-
<span class="otgs-installer-register-inputs">
|
65 |
-
<input type="text" size="20" name="site_key_<?php echo $repository_id ?>" placeholder="<?php echo esc_attr('site key') ?>" />
|
66 |
-
<input class="button-primary" type="submit" value="<?php esc_attr_e('OK', 'installer') ?>" />
|
67 |
-
<input class="button-secondary cancel_site_key_js" type="button" value="<?php esc_attr_e('Cancel registration', 'installer') ?>" />
|
68 |
-
</span>
|
69 |
-
</p>
|
70 |
-
|
71 |
-
<?php
|
72 |
-
$template_service = new OTGS_Installer_Twig_Template_Service_Loader(
|
73 |
-
array( WP_Installer()->plugin_path() . '/templates/components-setting/' )
|
74 |
-
);
|
75 |
-
$components_setting_template = new OTGS_Installer_WP_Components_Setting_Templates( $template_service->get_service() );
|
76 |
-
$components_setting_template->render_commercial( $repo_site, $generic_product_name, $repository_id );
|
77 |
-
?>
|
78 |
-
</form>
|
79 |
-
|
80 |
-
|
81 |
-
|
82 |
-
|
83 |
-
<?php
|
84 |
-
$site_key = false;
|
85 |
-
|
86 |
-
// IF SUBSCRIPTION
|
87 |
-
else:
|
88 |
-
|
89 |
-
$site_key = $this->settings['repositories'][$repository_id]['subscription']['key'];
|
90 |
-
$subscription_type = $this->get_subscription_type_for_repository($repository_id);
|
91 |
-
$upgrade_options = $this->get_upgrade_options($repository_id);
|
92 |
-
$expired = false;
|
93 |
-
|
94 |
-
?>
|
95 |
-
|
96 |
-
<?php if($this->repository_has_expired_subscription($repository_id)): $expired = true; ?>
|
97 |
-
<div>
|
98 |
-
<p class="installer-warn-box">
|
99 |
-
<?php _e('Subscription expired. You need to either purchase a new subscription or upgrade if available.', 'installer') ?>
|
100 |
-
<span class="alignright">
|
101 |
-
<a class="update_site_key_js button-secondary" href="#" data-repository=<?php echo $repository_id ?> data-nonce="<?php echo wp_create_nonce('update_site_key_' . $repository_id) ?>">
|
102 |
-
<?php _e('Revalidate subscription', 'installer'); ?>
|
103 |
-
</a>
|
104 |
-
</span>
|
105 |
-
<br />
|
106 |
-
<span class="details"><?php _e("If you have already purchased or renewed your subscription and you can still see this message, please revalidate your subscription", 'installer') ?></span>
|
107 |
-
</p>
|
108 |
-
</div>
|
109 |
-
<?php else: ?>
|
110 |
-
<?php $this->show_subscription_renew_warning($repository_id, $subscription_type); ?>
|
111 |
-
<?php endif; ?>
|
112 |
-
|
113 |
-
|
114 |
-
<?php if(empty($expired)): ?>
|
115 |
-
|
116 |
-
<div class="otgs-installer-registered clearfix">
|
117 |
-
<span>
|
118 |
-
<?php if($expires = $this->settings['repositories'][$repository_id]['subscription']['data']->expires): ?>
|
119 |
-
<?php printf(__('%s is registered on this site. You will receive automatic updates until %s', 'installer'), $generic_product_name, date_i18n('F j, Y', strtotime($expires))); ?>
|
120 |
-
<?php else: ?>
|
121 |
-
<?php printf(__('%s is registered on this site. Your Lifetime account gives you updates for life.', 'installer'), $generic_product_name); ?>
|
122 |
-
<?php endif; ?>
|
123 |
-
</span>
|
124 |
-
<?php endif; //if(empty($expired)) ?>
|
125 |
-
|
126 |
-
<span class="otgs-installer-registered-buttons">
|
127 |
-
|
128 |
-
<a class="remove_site_key_js button-secondary" data-repository=<?php echo $repository_id ?>
|
129 |
-
data-confirmation="<?php esc_attr_e('Are you sure you want to unregister?', 'installer') ?>"
|
130 |
-
data-nonce="<?php echo wp_create_nonce('remove_site_key_' . $repository_id) ?>"
|
131 |
-
<?php if( WP_Installer::get_repository_hardcoded_site_key( $repository_id ) ): ?>
|
132 |
-
disabled
|
133 |
-
title="<?php printf( esc_attr__("Site-key was set by %s, most likely in wp-config.php. Please remove the constant before attempting to unregister.", 'installer'), 'OTGS_INSTALLER_SITE_KEY_' . strtoupper($repository_id) ) ?>"
|
134 |
-
<?php endif; ?>
|
135 |
-
>
|
136 |
-
<?php printf(__("Unregister %s from this site", 'installer'), $generic_product_name) ?></a>
|
137 |
-
|
138 |
-
<a class="update_site_key_js button-secondary" data-repository=<?php echo $repository_id ?>
|
139 |
-
data-nonce="<?php echo wp_create_nonce('update_site_key_' . $repository_id) ?>">
|
140 |
-
<?php _e('Check for updates', 'installer'); ?>
|
141 |
-
</a>
|
142 |
-
</span>
|
143 |
-
</div>
|
144 |
-
|
145 |
-
|
146 |
-
<?php endif; // if(!repository_has_subscription) ?>
|
147 |
-
|
148 |
-
<div class="installer-error-box hidden"></div>
|
149 |
-
|
150 |
-
</td>
|
151 |
-
</tr>
|
152 |
-
|
153 |
-
<?php
|
154 |
-
|
155 |
-
$subscription_type = isset($subscription_type) ? $subscription_type : null;
|
156 |
-
$expired = isset($expired) ? $expired : null;
|
157 |
-
$upgrade_options = isset($upgrade_options) ? $upgrade_options : null;
|
158 |
-
$packages = $this->_render_product_packages($repository['data']['packages'], $subscription_type, $expired, $upgrade_options, $repository_id);
|
159 |
-
if(empty($subscription_type) || $expired){
|
160 |
-
$subpackages_expandable = true;
|
161 |
-
}else{
|
162 |
-
$subpackages_expandable = false;
|
163 |
-
}
|
164 |
-
|
165 |
-
?>
|
166 |
-
|
167 |
-
<?php foreach($packages as $package): ?>
|
168 |
-
<tr id="repository-<?php echo $repository_id ?>_<?php echo $package['id'] ?>">
|
169 |
-
<td class="installer-repository-image"><img width="140" src="<?php echo $package['image_url'] ?>" /></td>
|
170 |
-
<td>
|
171 |
-
<p><strong><?php echo $package['name'] ?></strong></p>
|
172 |
-
<p><?php echo $package['description'] ?></p>
|
173 |
-
|
174 |
-
<?php if($package['products']): ?>
|
175 |
-
<?php foreach($package['products'] as $product): ?>
|
176 |
-
<ul class="installer-products-list" style="display:inline">
|
177 |
-
<li>
|
178 |
-
<a class="button-secondary" href="<?php echo $product['url'] ?>"><?php echo $product['label'] ?></a>
|
179 |
-
</li>
|
180 |
-
</ul>
|
181 |
-
<?php endforeach; ?>
|
182 |
-
<?php endif; ?>
|
183 |
-
|
184 |
-
<?php
|
185 |
-
if ( $package['downloads'] ) {
|
186 |
-
WP_Installer_Channels()->load_channel_selector( $repository_id, $package['downloads'] );
|
187 |
-
include $this->plugin_path() . '/templates/downloads-list.php';
|
188 |
-
}
|
189 |
-
?>
|
190 |
-
|
191 |
-
<?php if(!empty($package['sub-packages'])): ?>
|
192 |
-
|
193 |
-
<?php $subpackages = $this->_render_product_packages($package['sub-packages'], $subscription_type, $expired, $upgrade_options, $repository_id); ?>
|
194 |
-
|
195 |
-
<?php if($subpackages): ?>
|
196 |
-
|
197 |
-
<?php if($subpackages_expandable): ?>
|
198 |
-
<h5><a class="installer_expand_button" href="#" title="<?php esc_attr_e('Click to see individual components options.', 'installer') ?>"><?php _e('Individual components', 'installer') ?></a></h5>
|
199 |
-
<?php endif; ?>
|
200 |
-
|
201 |
-
<table class="otgs_wp_installer_subtable" style="<?php if($subpackages_expandable) echo 'display:none' ?>">
|
202 |
-
<?php foreach($subpackages as $package): ?>
|
203 |
-
<tr id="repository-<?php echo $repository_id ?>_<?php echo $package['id'] ?>">
|
204 |
-
<td><img width="70" height="70" src="<?php echo $package['image_url'] ?>" /></td>
|
205 |
-
<td>
|
206 |
-
<p><strong><?php echo $package['name'] ?></strong></p>
|
207 |
-
<p><?php echo $package['description'] ?></p>
|
208 |
-
|
209 |
-
<?php if($package['products']): ?>
|
210 |
-
<?php foreach($package['products'] as $product): ?>
|
211 |
-
<ul class="installer-products-list" style="display:inline">
|
212 |
-
<li>
|
213 |
-
<a class="button-secondary" href="<?php echo $product['url'] ?>"><?php echo $product['label'] ?></a>
|
214 |
-
</li>
|
215 |
-
</ul>
|
216 |
-
<?php endforeach; ?>
|
217 |
-
<?php endif; ?>
|
218 |
-
|
219 |
-
<?php if($package['downloads']): ?>
|
220 |
-
<?php include $this->plugin_path() . '/templates/downloads-list.php'; ?>
|
221 |
-
<?php endif; ?>
|
222 |
-
</td>
|
223 |
-
</tr>
|
224 |
-
<?php endforeach; ?>
|
225 |
-
</table>
|
226 |
-
<?php endif; ?>
|
227 |
-
|
228 |
-
<?php endif; ?>
|
229 |
-
|
230 |
-
|
231 |
-
</td>
|
232 |
-
</tr>
|
233 |
-
|
234 |
-
<?php endforeach; ?>
|
235 |
-
|
236 |
-
</table>
|
237 |
-
|
238 |
-
|
239 |
-
<p><i><?php printf(__('This page lets you install plugins and update existing plugins. To remove any of these plugins, go to the %splugins%s page and if you have the permission to remove plugins you should be able to do this.', 'installer'), '<a href="' . admin_url('plugins.php') . '">' , '</a>'); ?></i></p>
|
240 |
-
|
241 |
-
|
242 |
-
|
243 |
-
<br />
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
vendor/otgs/installer/templates/template-service/class-otgs-installer-twig-template-service-loader.php
DELETED
@@ -1,32 +0,0 @@
|
|
1 |
-
<?php
|
2 |
-
|
3 |
-
class OTGS_Installer_Twig_Template_Service_Loader {
|
4 |
-
|
5 |
-
/**
|
6 |
-
* @var array
|
7 |
-
*/
|
8 |
-
private $paths;
|
9 |
-
|
10 |
-
/**
|
11 |
-
* OTGS_Installer_Twig_Template_Service_Loader constructor.
|
12 |
-
*
|
13 |
-
* @param array $paths
|
14 |
-
*/
|
15 |
-
public function __construct( array $paths ) {
|
16 |
-
$this->paths = $paths;
|
17 |
-
}
|
18 |
-
|
19 |
-
/**
|
20 |
-
* @return OTGS_Installer_Twig_Template_Service
|
21 |
-
*/
|
22 |
-
public function get_service() {
|
23 |
-
$twig_loader = new Twig_Loader_Filesystem( $this->paths );
|
24 |
-
$environment_args = array();
|
25 |
-
if ( defined( 'WP_DEBUG' ) && WP_DEBUG ) {
|
26 |
-
$environment_args['debug'] = true;
|
27 |
-
}
|
28 |
-
$twig = new Twig_Environment( $twig_loader, $environment_args );
|
29 |
-
|
30 |
-
return new OTGS_Installer_Twig_Template_Service( $twig );
|
31 |
-
}
|
32 |
-
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
vendor/otgs/installer/templates/template-service/class-otgs-installer-twig-template-service.php
DELETED
@@ -1,27 +0,0 @@
|
|
1 |
-
<?php
|
2 |
-
|
3 |
-
class OTGS_Installer_Twig_Template_Service implements IOTGS_Installer_Template_Service {
|
4 |
-
|
5 |
-
const FILE_EXTENSION = '.twig';
|
6 |
-
|
7 |
-
private $twig;
|
8 |
-
|
9 |
-
/**
|
10 |
-
* OTGS_Installer_Twig_Template_Service constructor.
|
11 |
-
*
|
12 |
-
* @param Twig_Environment $twig
|
13 |
-
*/
|
14 |
-
public function __construct( Twig_Environment $twig ) {
|
15 |
-
$this->twig = $twig;
|
16 |
-
}
|
17 |
-
|
18 |
-
/**
|
19 |
-
* @param array $model
|
20 |
-
* @param string $template
|
21 |
-
*
|
22 |
-
* @return string
|
23 |
-
*/
|
24 |
-
public function show( $model, $template ) {
|
25 |
-
return $this->twig->render( $template . self::FILE_EXTENSION, $model );
|
26 |
-
}
|
27 |
-
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
vendor/otgs/installer/templates/template-service/interface-iotgs-installer-template-service.php
DELETED
@@ -1,5 +0,0 @@
|
|
1 |
-
<?php
|
2 |
-
|
3 |
-
interface IOTGS_Installer_Template_Service {
|
4 |
-
public function show( $model, $template );
|
5 |
-
}
|
|
|
|
|
|
|
|
|
|
vendor/toolset/toolset-common/autoload_classmap.php
CHANGED
@@ -8,8 +8,14 @@ return array(
|
|
8 |
'IToolset_Post_Type' => dirname( __FILE__ ) . '/inc/autoloaded/post_type/i_post_type.php',
|
9 |
'IToolset_Post_Type_From_Types' => dirname( __FILE__ ) . '/inc/autoloaded/post_type/i_post_type_from_types.php',
|
10 |
'IToolset_Post_Type_Registered' => dirname( __FILE__ ) . '/inc/autoloaded/post_type/i_post_type_registered.php',
|
11 |
-
'IToolset_Query' => dirname( __FILE__ ) . '/inc/autoloaded/i_query.php',
|
12 |
'IToolset_Upgrade_Command' => dirname( __FILE__ ) . '/inc/autoloaded/upgrade/command_interface.php',
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
13 |
'Toolset_Admin_Controller' => dirname( __FILE__ ) . '/inc/autoloaded/admin.php',
|
14 |
'Toolset_Admin_Notice_Abstract' => dirname( __FILE__ ) . '/utility/admin/notice/abstract.php',
|
15 |
'Toolset_Admin_Notice_Dismissible' => dirname( __FILE__ ) . '/utility/admin/notice/dismissible.php',
|
@@ -30,6 +36,7 @@ return array(
|
|
30 |
'Toolset_Ajax_Handler_Interface' => dirname( __FILE__ ) . '/inc/autoloaded/ajax_handler/interface.php',
|
31 |
'Toolset_Ajax_Handler_Intermediary_Post_Cleanup' => dirname( __FILE__ ) . '/inc/autoloaded/ajax_handler/intermediary_post_cleanup.php',
|
32 |
'Toolset_Ajax_Handler_Migrate_To_M2M' => dirname( __FILE__ ) . '/inc/autoloaded/ajax_handler/migrate_to_m2m.php',
|
|
|
33 |
'Toolset_Ajax_Handler_Select2_Suggest_Posts_By_Title' => dirname( __FILE__ ) . '/inc/autoloaded/ajax_handler/select2_suggest_posts_by_title.php',
|
34 |
'Toolset_Ajax_Handler_Select2_Suggest_Terms' => dirname( __FILE__ ) . '/inc/autoloaded/ajax_handler/select2_suggest_terms.php',
|
35 |
'Toolset_Ajax_Handler_Select2_Suggest_Users' => dirname( __FILE__ ) . '/inc/autoloaded/ajax_handler/select2_suggest_users.php',
|
@@ -129,6 +136,7 @@ return array(
|
|
129 |
'Toolset_Field_Renderer_Preview_Date' => dirname( __FILE__ ) . '/inc/autoloaded/field/renderer/preview/date.php',
|
130 |
'Toolset_Field_Renderer_Preview_File' => dirname( __FILE__ ) . '/inc/autoloaded/field/renderer/preview/file.php',
|
131 |
'Toolset_Field_Renderer_Preview_Image' => dirname( __FILE__ ) . '/inc/autoloaded/field/renderer/preview/image.php',
|
|
|
132 |
'Toolset_Field_Renderer_Preview_Radio' => dirname( __FILE__ ) . '/inc/autoloaded/field/renderer/preview/radio.php',
|
133 |
'Toolset_Field_Renderer_Preview_Skype' => dirname( __FILE__ ) . '/inc/autoloaded/field/renderer/preview/skype.php',
|
134 |
'Toolset_Field_Renderer_Preview_Textfield' => dirname( __FILE__ ) . '/inc/autoloaded/field/renderer/preview/textfield.php',
|
@@ -164,10 +172,13 @@ return array(
|
|
164 |
'Toolset_Post_Type_Factory' => dirname( __FILE__ ) . '/inc/autoloaded/post_type/factory.php',
|
165 |
'Toolset_Post_Type_From_Types' => dirname( __FILE__ ) . '/inc/autoloaded/post_type/from_types.php',
|
166 |
'Toolset_Post_Type_Labels' => dirname( __FILE__ ) . '/inc/autoloaded/post_type/labels.php',
|
|
|
167 |
'Toolset_Post_Type_Query' => dirname( __FILE__ ) . '/inc/autoloaded/post_type/query.php',
|
168 |
'Toolset_Post_Type_Query_Factory' => dirname( __FILE__ ) . '/inc/autoloaded/post_type/query_factory.php',
|
169 |
'Toolset_Post_Type_Registered' => dirname( __FILE__ ) . '/inc/autoloaded/post_type/registered.php',
|
170 |
'Toolset_Post_Type_Repository' => dirname( __FILE__ ) . '/inc/autoloaded/post_type/repository.php',
|
|
|
|
|
171 |
'Toolset_Regex' => dirname( __FILE__ ) . '/expression-parser/parser.php',
|
172 |
'Toolset_Relationship_Service' => dirname( __FILE__ ) . '/inc/autoloaded/relationship_service.php',
|
173 |
'Toolset_Renderer' => dirname( __FILE__ ) . '/inc/autoloaded/renderer/renderer.php',
|
@@ -176,6 +187,12 @@ return array(
|
|
176 |
'Toolset_Result_Updated' => dirname( __FILE__ ) . '/inc/autoloaded/result_updated.php',
|
177 |
'Toolset_Shortcode_Attr_Field' => dirname( __FILE__ ) . '/inc/autoloaded/shortcode/attr/field.php',
|
178 |
'Toolset_Shortcode_Attr_Interface' => dirname( __FILE__ ) . '/inc/autoloaded/shortcode/attr/interface.php',
|
|
|
|
|
|
|
|
|
|
|
|
|
179 |
'Toolset_Shortcode_Attr_Item_Id' => dirname( __FILE__ ) . '/inc/autoloaded/shortcode/attr/item/id.php',
|
180 |
'Toolset_Shortcode_Attr_Item_Legacy' => dirname( __FILE__ ) . '/inc/autoloaded/shortcode/attr/item/legacy.php',
|
181 |
'Toolset_Shortcode_Attr_Item_M2M' => dirname( __FILE__ ) . '/inc/autoloaded/shortcode/attr/item/m2m.php',
|
@@ -183,8 +200,10 @@ return array(
|
|
183 |
'Toolset_Tokenizer' => dirname( __FILE__ ) . '/expression-parser/parser.php',
|
184 |
'Toolset_Upgrade_Command_Definition' => dirname( __FILE__ ) . '/inc/autoloaded/upgrade/command_definition.php',
|
185 |
'Toolset_Upgrade_Command_Definition_Repository' => dirname( __FILE__ ) . '/inc/autoloaded/upgrade/command_definition_repository.php',
|
|
|
186 |
'Toolset_Upgrade_Command_Factory' => dirname( __FILE__ ) . '/inc/autoloaded/upgrade/command_factory.php',
|
187 |
'Toolset_Upgrade_Command_M2M_V1_Database_Structure_Upgrade' => dirname( __FILE__ ) . '/inc/autoloaded/upgrade/command/m2m_v1_database_structure_upgrade.php',
|
|
|
188 |
'Toolset_Upgrade_Controller' => dirname( __FILE__ ) . '/inc/autoloaded/upgrade/controller.php',
|
189 |
'Toolset_Upgrade_Executed_Commands' => dirname( __FILE__ ) . '/inc/autoloaded/upgrade/executed_commands.php',
|
190 |
'Toolset_User_Editors_Editor_Abstract' => dirname( __FILE__ ) . '/user-editors/editor/abstract.php',
|
8 |
'IToolset_Post_Type' => dirname( __FILE__ ) . '/inc/autoloaded/post_type/i_post_type.php',
|
9 |
'IToolset_Post_Type_From_Types' => dirname( __FILE__ ) . '/inc/autoloaded/post_type/i_post_type_from_types.php',
|
10 |
'IToolset_Post_Type_Registered' => dirname( __FILE__ ) . '/inc/autoloaded/post_type/i_post_type_registered.php',
|
|
|
11 |
'IToolset_Upgrade_Command' => dirname( __FILE__ ) . '/inc/autoloaded/upgrade/command_interface.php',
|
12 |
+
'OTGS\Toolset\Common\Condition\Installer\IsAvailable' => dirname( __FILE__ ) . '/utility/condition/plugin/installer/is_available.php',
|
13 |
+
'OTGS\Toolset\Common\Condition\Installer\IsToolsetSubscriptionValid' => dirname( __FILE__ ) . '/utility/condition/plugin/installer/is_toolset_subscription_valid.php',
|
14 |
+
'OTGS\Toolset\Common\Interop\HandlerInterface' => dirname( __FILE__ ) . '/inc/autoloaded/interop/handler_interface.php',
|
15 |
+
'OTGS\Toolset\Common\Interop\Handler\InstallerCompatibilityReporting' => dirname( __FILE__ ) . '/inc/autoloaded/interop/handler/installer_compatibility_reporting.php',
|
16 |
+
'OTGS\Toolset\Common\Interop\Mediator' => dirname( __FILE__ ) . '/inc/autoloaded/interop/mediator.php',
|
17 |
+
'OTGS\Toolset\Common\MaintenanceMode\Controller' => dirname( __FILE__ ) . '/inc/autoloaded/maintenance_mode/controller.php',
|
18 |
+
'OTGS\Toolset\Common\Utility\Admin\Notices\Builder' => dirname( __FILE__ ) . '/utility/admin/notices/Builder.php',
|
19 |
'Toolset_Admin_Controller' => dirname( __FILE__ ) . '/inc/autoloaded/admin.php',
|
20 |
'Toolset_Admin_Notice_Abstract' => dirname( __FILE__ ) . '/utility/admin/notice/abstract.php',
|
21 |
'Toolset_Admin_Notice_Dismissible' => dirname( __FILE__ ) . '/utility/admin/notice/dismissible.php',
|
36 |
'Toolset_Ajax_Handler_Interface' => dirname( __FILE__ ) . '/inc/autoloaded/ajax_handler/interface.php',
|
37 |
'Toolset_Ajax_Handler_Intermediary_Post_Cleanup' => dirname( __FILE__ ) . '/inc/autoloaded/ajax_handler/intermediary_post_cleanup.php',
|
38 |
'Toolset_Ajax_Handler_Migrate_To_M2M' => dirname( __FILE__ ) . '/inc/autoloaded/ajax_handler/migrate_to_m2m.php',
|
39 |
+
'Toolset_Ajax_Handler_Select2_Suggest_Posts_By_Post_Type' => dirname( __FILE__ ) . '/inc/autoloaded/ajax_handler/select2_suggest_posts_by_post_type.php',
|
40 |
'Toolset_Ajax_Handler_Select2_Suggest_Posts_By_Title' => dirname( __FILE__ ) . '/inc/autoloaded/ajax_handler/select2_suggest_posts_by_title.php',
|
41 |
'Toolset_Ajax_Handler_Select2_Suggest_Terms' => dirname( __FILE__ ) . '/inc/autoloaded/ajax_handler/select2_suggest_terms.php',
|
42 |
'Toolset_Ajax_Handler_Select2_Suggest_Users' => dirname( __FILE__ ) . '/inc/autoloaded/ajax_handler/select2_suggest_users.php',
|
136 |
'Toolset_Field_Renderer_Preview_Date' => dirname( __FILE__ ) . '/inc/autoloaded/field/renderer/preview/date.php',
|
137 |
'Toolset_Field_Renderer_Preview_File' => dirname( __FILE__ ) . '/inc/autoloaded/field/renderer/preview/file.php',
|
138 |
'Toolset_Field_Renderer_Preview_Image' => dirname( __FILE__ ) . '/inc/autoloaded/field/renderer/preview/image.php',
|
139 |
+
'Toolset_Field_Renderer_Preview_Post' => dirname( __FILE__ ) . '/inc/autoloaded/field/renderer/preview/post.php',
|
140 |
'Toolset_Field_Renderer_Preview_Radio' => dirname( __FILE__ ) . '/inc/autoloaded/field/renderer/preview/radio.php',
|
141 |
'Toolset_Field_Renderer_Preview_Skype' => dirname( __FILE__ ) . '/inc/autoloaded/field/renderer/preview/skype.php',
|
142 |
'Toolset_Field_Renderer_Preview_Textfield' => dirname( __FILE__ ) . '/inc/autoloaded/field/renderer/preview/textfield.php',
|
172 |
'Toolset_Post_Type_Factory' => dirname( __FILE__ ) . '/inc/autoloaded/post_type/factory.php',
|
173 |
'Toolset_Post_Type_From_Types' => dirname( __FILE__ ) . '/inc/autoloaded/post_type/from_types.php',
|
174 |
'Toolset_Post_Type_Labels' => dirname( __FILE__ ) . '/inc/autoloaded/post_type/labels.php',
|
175 |
+
'Toolset_Post_Type_List' => dirname( __FILE__ ) . '/inc/autoloaded/post_type/list.php',
|
176 |
'Toolset_Post_Type_Query' => dirname( __FILE__ ) . '/inc/autoloaded/post_type/query.php',
|
177 |
'Toolset_Post_Type_Query_Factory' => dirname( __FILE__ ) . '/inc/autoloaded/post_type/query_factory.php',
|
178 |
'Toolset_Post_Type_Registered' => dirname( __FILE__ ) . '/inc/autoloaded/post_type/registered.php',
|
179 |
'Toolset_Post_Type_Repository' => dirname( __FILE__ ) . '/inc/autoloaded/post_type/repository.php',
|
180 |
+
'Toolset_Postmeta_Access_Loader' => dirname( __FILE__ ) . '/inc/autoloaded/postmeta_access/loader.php',
|
181 |
+
'Toolset_Postmeta_Access_M2m' => dirname( __FILE__ ) . '/inc/autoloaded/postmeta_access/m2m.php',
|
182 |
'Toolset_Regex' => dirname( __FILE__ ) . '/expression-parser/parser.php',
|
183 |
'Toolset_Relationship_Service' => dirname( __FILE__ ) . '/inc/autoloaded/relationship_service.php',
|
184 |
'Toolset_Renderer' => dirname( __FILE__ ) . '/inc/autoloaded/renderer/renderer.php',
|
187 |
'Toolset_Result_Updated' => dirname( __FILE__ ) . '/inc/autoloaded/result_updated.php',
|
188 |
'Toolset_Shortcode_Attr_Field' => dirname( __FILE__ ) . '/inc/autoloaded/shortcode/attr/field.php',
|
189 |
'Toolset_Shortcode_Attr_Interface' => dirname( __FILE__ ) . '/inc/autoloaded/shortcode/attr/interface.php',
|
190 |
+
'Toolset_Shortcode_Attr_Item_Gui_Base' => dirname( __FILE__ ) . '/inc/autoloaded/shortcode/attr/item/gui/base.php',
|
191 |
+
'Toolset_Shortcode_Attr_Item_Gui_Factory' => dirname( __FILE__ ) . '/inc/autoloaded/shortcode/attr/item/gui/factory.php',
|
192 |
+
'Toolset_Shortcode_Attr_Item_Gui_M2m' => dirname( __FILE__ ) . '/inc/autoloaded/shortcode/attr/item/gui/m2m.php',
|
193 |
+
'Toolset_Shortcode_Attr_Item_Gui_O2m' => dirname( __FILE__ ) . '/inc/autoloaded/shortcode/attr/item/gui/o2m.php',
|
194 |
+
'Toolset_Shortcode_Attr_Item_Gui_O2o' => dirname( __FILE__ ) . '/inc/autoloaded/shortcode/attr/item/gui/o2o.php',
|
195 |
+
'Toolset_Shortcode_Attr_Item_Gui_Option' => dirname( __FILE__ ) . '/inc/autoloaded/shortcode/attr/item/gui/option.php',
|
196 |
'Toolset_Shortcode_Attr_Item_Id' => dirname( __FILE__ ) . '/inc/autoloaded/shortcode/attr/item/id.php',
|
197 |
'Toolset_Shortcode_Attr_Item_Legacy' => dirname( __FILE__ ) . '/inc/autoloaded/shortcode/attr/item/legacy.php',
|
198 |
'Toolset_Shortcode_Attr_Item_M2M' => dirname( __FILE__ ) . '/inc/autoloaded/shortcode/attr/item/m2m.php',
|
200 |
'Toolset_Tokenizer' => dirname( __FILE__ ) . '/expression-parser/parser.php',
|
201 |
'Toolset_Upgrade_Command_Definition' => dirname( __FILE__ ) . '/inc/autoloaded/upgrade/command_definition.php',
|
202 |
'Toolset_Upgrade_Command_Definition_Repository' => dirname( __FILE__ ) . '/inc/autoloaded/upgrade/command_definition_repository.php',
|
203 |
+
'Toolset_Upgrade_Command_Delete_Obsolete_Upgrade_Options' => dirname( __FILE__ ) . '/inc/autoloaded/upgrade/command/delete_obsolete_version_number_option.php',
|
204 |
'Toolset_Upgrade_Command_Factory' => dirname( __FILE__ ) . '/inc/autoloaded/upgrade/command_factory.php',
|
205 |
'Toolset_Upgrade_Command_M2M_V1_Database_Structure_Upgrade' => dirname( __FILE__ ) . '/inc/autoloaded/upgrade/command/m2m_v1_database_structure_upgrade.php',
|
206 |
+
'Toolset_Upgrade_Command_M2M_V2_Database_Structure_Upgrade' => dirname( __FILE__ ) . '/inc/autoloaded/upgrade/command/m2m_v2_database_structure_upgrade.php',
|
207 |
'Toolset_Upgrade_Controller' => dirname( __FILE__ ) . '/inc/autoloaded/upgrade/controller.php',
|
208 |
'Toolset_Upgrade_Executed_Commands' => dirname( __FILE__ ) . '/inc/autoloaded/upgrade/executed_commands.php',
|
209 |
'Toolset_User_Editors_Editor_Abstract' => dirname( __FILE__ ) . '/user-editors/editor/abstract.php',
|
vendor/toolset/toolset-common/bootstrap.php
CHANGED
@@ -342,6 +342,15 @@ class Toolset_Common_Bootstrap {
|
|
342 |
new Toolset_Controller_Admin_Notices();
|
343 |
}
|
344 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
345 |
require_once( TOOLSET_COMMON_PATH . '/inc/toolset.compatibility.php' );
|
346 |
require_once( TOOLSET_COMMON_PATH . '/inc/toolset.function.helpers.php' );
|
347 |
require_once( TOOLSET_COMMON_PATH . '/deprecated.php' );
|
@@ -376,6 +385,19 @@ class Toolset_Common_Bootstrap {
|
|
376 |
$wp_query_adjustments = new Toolset_Wp_Query_Adjustments_Loader();
|
377 |
$wp_query_adjustments->initialize();
|
378 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
379 |
$this->apply_filters_on_sections_loaded( 'toolset_register_include_section' );
|
380 |
}
|
381 |
}
|
342 |
new Toolset_Controller_Admin_Notices();
|
343 |
}
|
344 |
|
345 |
+
// Load Toolset Singleton Factory based on PHP_Version
|
346 |
+
if( ! class_exists( 'Toolset_Singleton_Factory', false ) ) {
|
347 |
+
if( version_compare( PHP_VERSION, '5.6.0', '>=' ) ) {
|
348 |
+
require_once( TOOLSET_COMMON_PATH . '/utility/singleton_factory.php' );
|
349 |
+
} else {
|
350 |
+
require_once( TOOLSET_COMMON_PATH . '/utility/singleton_factory_pre_php_5_6.php' );
|
351 |
+
}
|
352 |
+
}
|
353 |
+
|
354 |
require_once( TOOLSET_COMMON_PATH . '/inc/toolset.compatibility.php' );
|
355 |
require_once( TOOLSET_COMMON_PATH . '/inc/toolset.function.helpers.php' );
|
356 |
require_once( TOOLSET_COMMON_PATH . '/deprecated.php' );
|
385 |
$wp_query_adjustments = new Toolset_Wp_Query_Adjustments_Loader();
|
386 |
$wp_query_adjustments->initialize();
|
387 |
|
388 |
+
$interop_mediator = new \OTGS\Toolset\Common\Interop\Mediator();
|
389 |
+
$interop_mediator->initialize();
|
390 |
+
|
391 |
+
/**
|
392 |
+
* Avoid the initialization of this class.
|
393 |
+
*
|
394 |
+
* @since m2m
|
395 |
+
*/
|
396 |
+
if ( ! apply_filters( 'toolset_disable_legacy_relationships_meta_access', false ) ) {
|
397 |
+
$postmeta_access = new Toolset_Postmeta_Access_Loader();
|
398 |
+
$postmeta_access->initialize();
|
399 |
+
}
|
400 |
+
|
401 |
$this->apply_filters_on_sections_loaded( 'toolset_register_include_section' );
|
402 |
}
|
403 |
}
|
vendor/toolset/toolset-common/changelog.md
CHANGED
@@ -1,5 +1,65 @@
|
|
1 |
# Toolset Common Library
|
2 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
3 |
## 2.6.2
|
4 |
* Various minor bugfixes.
|
5 |
* (toolsetcommon-290) First version of the public relationship API for both legacy and m2m relationships.
|
@@ -248,7 +308,6 @@
|
|
248 |
- Fixed issue when there is more than one CRED form on a page with the same taxonomy.
|
249 |
- Fixed a little problem with edit skype button modal window - was too narrow.
|
250 |
- Fixed empty title problem for filter "wpt_field_options" on user edit/add screen.
|
251 |
-
https://wp-types.com/forums/topic/populate-select-field-in-wpcf-um-group/
|
252 |
- Added filter "toolset_editor_add_form_buttons" to disable Toolset buttons on the post editor.
|
253 |
- Added placeholder attributes to fields.
|
254 |
- Updated CakePHP validation URL method to allow new TLD's.
|
1 |
# Toolset Common Library
|
2 |
|
3 |
+
## 2.8
|
4 |
+
* Legacy branch of the library created to support Types 2.3. Contains all fixes up until 3.0.1.
|
5 |
+
|
6 |
+
## 3.0.1
|
7 |
+
* Adjust the shortcodes GUI API so it generates attributes wrapped in single quotes.
|
8 |
+
|
9 |
+
## 3.0
|
10 |
+
* (types-1537) Display the Installer's Compatibility Reporting setting wherever necessary.
|
11 |
+
* (toolsetcommon-406) Add new actions to inform about associations being created and deleted.
|
12 |
+
* (types-1583) Fix: Errors in PHP 5.3.6.
|
13 |
+
* (types-1553) Fix: Do not assume that an option for post type definitions is set.
|
14 |
+
* Migration: do not enforce a specific translation mode between posts involved in relationships to migrate.
|
15 |
+
* API: fails gracefully when trying to get a relationship by a non existing slug.
|
16 |
+
* API: two new public functions to create associations.
|
17 |
+
* WPML: support defining associations between posts without enforcing a specific translation mode for them.
|
18 |
+
* WPML: ensure that data from a post reference field can be rendered.
|
19 |
+
|
20 |
+
## 2.7.1
|
21 |
+
* Tag for Forms 2.0-RC3
|
22 |
+
* Better validation methods in shared forms.
|
23 |
+
* Fixed styling issue in the Toolset shared admin pages.
|
24 |
+
* Fixed the shortcodes API GUI on items that have a content and include instructions for it.
|
25 |
+
|
26 |
+
## 2.7.0
|
27 |
+
* Tag for upcoming Toolset releases.
|
28 |
+
* Fix a PHP 5.3 compatibility issue.
|
29 |
+
|
30 |
+
## 2.6.9.1
|
31 |
+
* Restore compatibility with Toolset plugins using previous versions of the assets manager shared class.
|
32 |
+
|
33 |
+
## 2.6.9
|
34 |
+
* Restore the $current_page value for the post selector shortcode attribute.
|
35 |
+
* Remove an admin notice about using Toolset plugins together.
|
36 |
+
|
37 |
+
## 2.6.8
|
38 |
+
* (types-1444) Fixed inconsistent API call results when WPML switcher is set to "All languages".
|
39 |
+
|
40 |
+
## 2.6.7
|
41 |
+
* Improve the shortcodes GUI post selector for better m2m compatibility.
|
42 |
+
* Extend the m2m relationships query API so it can play with intermediary post types.
|
43 |
+
|
44 |
+
## 2.6.6
|
45 |
+
* (toolsetcommon-390) Make sure that there are no potential posts for association when the other (known) post has reached its cardinality limit.
|
46 |
+
* (toolsetcommon-381) Make the `_wpcf_belongs_{$post_type}_id` usage in WP_Query meta queries safe to use also in m2m.
|
47 |
+
* (types-1467) Fixes in the data structure upgrade mechanism and in the upgrade command for m2m-v1 tables.
|
48 |
+
|
49 |
+
## 2.6.5
|
50 |
+
* Released with CRED 2.0-b2 and Layouts 2.3-b1
|
51 |
+
* Include a compatibility layer for xxx_post_meta native functions usage on legacy relationships postmeta keys.
|
52 |
+
|
53 |
+
## 2.6.4
|
54 |
+
* Added a set of checks to avoid errors with third parties also loading the Recaptcha v1.11 library.
|
55 |
+
* (toolsetcommon-382) Fix issues with the Toolset_Post_Type_Repository too early initialization.
|
56 |
+
* (toolsetcommon-369) Fix: Avoid repeated results in the association query.
|
57 |
+
|
58 |
+
## 2.6.3
|
59 |
+
* Compatibility for Types 2.3-b4
|
60 |
+
* Fixed an issue using repeatable File field inside a relationship
|
61 |
+
* (types-1374) Fail gracefully if dealing with corrupted `_wpcf_belongs_*_id` postmeta during the m2m migration.
|
62 |
+
|
63 |
## 2.6.2
|
64 |
* Various minor bugfixes.
|
65 |
* (toolsetcommon-290) First version of the public relationship API for both legacy and m2m relationships.
|
308 |
- Fixed issue when there is more than one CRED form on a page with the same taxonomy.
|
309 |
- Fixed a little problem with edit skype button modal window - was too narrow.
|
310 |
- Fixed empty title problem for filter "wpt_field_options" on user edit/add screen.
|
|
|
311 |
- Added filter "toolset_editor_add_form_buttons" to disable Toolset buttons on the post editor.
|
312 |
- Added placeholder attributes to fields.
|
313 |
- Updated CakePHP validation URL method to allow new TLD's.
|
vendor/toolset/toolset-common/classes/validation-cakephp.php
CHANGED
@@ -126,7 +126,7 @@ if (!class_exists('Wpcf_Cake_Validation')) {
|
|
126 |
*/
|
127 |
function notEmpty($check) {
|
128 |
$_this = & Wpcf_Cake_Validation::getInstance();
|
129 |
-
$_this->
|
130 |
$_this->check = $check;
|
131 |
|
132 |
if (is_array($check)) {
|
@@ -154,7 +154,7 @@ if (!class_exists('Wpcf_Cake_Validation')) {
|
|
154 |
*/
|
155 |
function alphaNumeric($check) {
|
156 |
$_this = & Wpcf_Cake_Validation::getInstance();
|
157 |
-
$_this->
|
158 |
$_this->check = $check;
|
159 |
|
160 |
if (is_array($check)) {
|
@@ -177,7 +177,7 @@ if (!class_exists('Wpcf_Cake_Validation')) {
|
|
177 |
|
178 |
function alphaNumericWhitespaces($check) {
|
179 |
$_this = & Wpcf_Cake_Validation::getInstance();
|
180 |
-
$_this->
|
181 |
$_this->check = $check;
|
182 |
|
183 |
if (is_array($check)) {
|
@@ -227,7 +227,7 @@ if (!class_exists('Wpcf_Cake_Validation')) {
|
|
227 |
*/
|
228 |
function blank($check) {
|
229 |
$_this = & Wpcf_Cake_Validation::getInstance();
|
230 |
-
$_this->
|
231 |
$_this->check = $check;
|
232 |
|
233 |
if (is_array($check)) {
|
@@ -254,7 +254,7 @@ if (!class_exists('Wpcf_Cake_Validation')) {
|
|
254 |
*/
|
255 |
function cc($check, $type = 'fast', $deep = false, $regex = null) {
|
256 |
$_this = & Wpcf_Cake_Validation::getInstance();
|
257 |
-
$_this->
|
258 |
$_this->check = $check;
|
259 |
$_this->type = $type;
|
260 |
$_this->deep = $deep;
|
@@ -392,7 +392,7 @@ if (!class_exists('Wpcf_Cake_Validation')) {
|
|
392 |
*/
|
393 |
function custom($check, $regex = null) {
|
394 |
$_this = & Wpcf_Cake_Validation::getInstance();
|
395 |
-
$_this->
|
396 |
$_this->check = $check;
|
397 |
$_this->regex = $regex;
|
398 |
if (is_array($check)) {
|
@@ -436,7 +436,7 @@ if (!class_exists('Wpcf_Cake_Validation')) {
|
|
436 |
$format = $cake_date_formats[$date_format];
|
437 |
|
438 |
$_this = & Wpcf_Cake_Validation::getInstance();
|
439 |
-
$_this->
|
440 |
$_this->check = $check;
|
441 |
$_this->regex = $regex;
|
442 |
|
@@ -474,7 +474,7 @@ if (!class_exists('Wpcf_Cake_Validation')) {
|
|
474 |
*/
|
475 |
function time($check) {
|
476 |
$_this = & Wpcf_Cake_Validation::getInstance();
|
477 |
-
$_this->
|
478 |
$_this->check = $check;
|
479 |
$_this->regex = '%^((0?[1-9]|1[012])(:[0-5]\d){0,2}([AP]M|[ap]m))$|^([01]\d|2[0-3])(:[0-5]\d){0,2}$%';
|
480 |
return $_this->_check();
|
@@ -504,7 +504,7 @@ if (!class_exists('Wpcf_Cake_Validation')) {
|
|
504 |
*/
|
505 |
function decimal($check, $places = null, $regex = null) {
|
506 |
$_this = & Wpcf_Cake_Validation::getInstance();
|
507 |
-
$_this->
|
508 |
$_this->regex = $regex;
|
509 |
$_this->check = $check;
|
510 |
|
@@ -529,7 +529,7 @@ if (!class_exists('Wpcf_Cake_Validation')) {
|
|
529 |
*/
|
530 |
function email($check, $deep = false, $regex = null) {
|
531 |
$_this = & Wpcf_Cake_Validation::getInstance();
|
532 |
-
$_this->
|
533 |
$_this->check = $check;
|
534 |
$_this->regex = $regex;
|
535 |
$_this->deep = $deep;
|
@@ -629,7 +629,7 @@ if (!class_exists('Wpcf_Cake_Validation')) {
|
|
629 |
if (function_exists('filter_var')) {
|
630 |
return filter_var($check, FILTER_VALIDATE_IP, array('flags' => FILTER_FLAG_IPV4)) !== false;
|
631 |
}
|
632 |
-
$this->
|
633 |
$this->check = $check;
|
634 |
$this->regex = '/^' . $this->__pattern['IPv4'] . '$/';
|
635 |
return $this->_check();
|
@@ -646,7 +646,7 @@ if (!class_exists('Wpcf_Cake_Validation')) {
|
|
646 |
if (function_exists('filter_var')) {
|
647 |
return filter_var($check, FILTER_VALIDATE_IP, array('flags' => FILTER_FLAG_IPV6)) !== false;
|
648 |
}
|
649 |
-
$this->
|
650 |
$this->check = $check;
|
651 |
$this->regex = '/^' . $this->__pattern['IPv6'] . '$/';
|
652 |
return $this->_check();
|
@@ -941,7 +941,7 @@ if (!class_exists('Wpcf_Cake_Validation')) {
|
|
941 |
*/
|
942 |
function url($check, $strict = false) {
|
943 |
$_this = & Wpcf_Cake_Validation::getInstance();
|
944 |
-
$_this->
|
945 |
$_this->check = $check;
|
946 |
$validChars = '([' . preg_quote('!"$&\'()*+,-.@_:;=~[]') . '\/0-9a-z\p{L}\p{N}]|(%[0-9a-f]{2}))';
|
947 |
$_this->regex = '/^(?:(?:https?|ftps?|file|news|gopher):\/\/)' . (!empty($strict) ? '' : '?') .
|
@@ -1095,8 +1095,13 @@ if (!class_exists('Wpcf_Cake_Validation')) {
|
|
1095 |
* @access private
|
1096 |
*/
|
1097 |
|
1098 |
-
function
|
1099 |
-
|
|
|
|
|
|
|
|
|
|
|
1100 |
$pattern = '((([0-9A-Fa-f]{1,4}:){7}(([0-9A-Fa-f]{1,4})|:))|(([0-9A-Fa-f]{1,4}:){6}';
|
1101 |
$pattern .= '(:|((25[0-5]|2[0-4]\d|[01]?\d{1,2})(\.(25[0-5]|2[0-4]\d|[01]?\d{1,2})){3})';
|
1102 |
$pattern .= '|(:[0-9A-Fa-f]{1,4})))|(([0-9A-Fa-f]{1,4}:){5}((:((25[0-5]|2[0-4]\d|[01]?\d{1,2})';
|
@@ -1126,7 +1131,13 @@ if (!class_exists('Wpcf_Cake_Validation')) {
|
|
1126 |
* @return void
|
1127 |
* @access private
|
1128 |
*/
|
1129 |
-
function
|
|
|
|
|
|
|
|
|
|
|
|
|
1130 |
$this->check = null;
|
1131 |
$this->regex = null;
|
1132 |
$this->country = null;
|
@@ -1136,6 +1147,24 @@ if (!class_exists('Wpcf_Cake_Validation')) {
|
|
1136 |
$this->errors = array();
|
1137 |
}
|
1138 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1139 |
}
|
1140 |
|
1141 |
}
|
126 |
*/
|
127 |
function notEmpty($check) {
|
128 |
$_this = & Wpcf_Cake_Validation::getInstance();
|
129 |
+
$_this->reset();
|
130 |
$_this->check = $check;
|
131 |
|
132 |
if (is_array($check)) {
|
154 |
*/
|
155 |
function alphaNumeric($check) {
|
156 |
$_this = & Wpcf_Cake_Validation::getInstance();
|
157 |
+
$_this->reset();
|
158 |
$_this->check = $check;
|
159 |
|
160 |
if (is_array($check)) {
|
177 |
|
178 |
function alphaNumericWhitespaces($check) {
|
179 |
$_this = & Wpcf_Cake_Validation::getInstance();
|
180 |
+
$_this->reset();
|
181 |
$_this->check = $check;
|
182 |
|
183 |
if (is_array($check)) {
|
227 |
*/
|
228 |
function blank($check) {
|
229 |
$_this = & Wpcf_Cake_Validation::getInstance();
|
230 |
+
$_this->reset();
|
231 |
$_this->check = $check;
|
232 |
|
233 |
if (is_array($check)) {
|
254 |
*/
|
255 |
function cc($check, $type = 'fast', $deep = false, $regex = null) {
|
256 |
$_this = & Wpcf_Cake_Validation::getInstance();
|
257 |
+
$_this->reset();
|
258 |
$_this->check = $check;
|
259 |
$_this->type = $type;
|
260 |
$_this->deep = $deep;
|
392 |
*/
|
393 |
function custom($check, $regex = null) {
|
394 |
$_this = & Wpcf_Cake_Validation::getInstance();
|
395 |
+
$_this->reset();
|
396 |
$_this->check = $check;
|
397 |
$_this->regex = $regex;
|
398 |
if (is_array($check)) {
|
436 |
$format = $cake_date_formats[$date_format];
|
437 |
|
438 |
$_this = & Wpcf_Cake_Validation::getInstance();
|
439 |
+
$_this->reset();
|
440 |
$_this->check = $check;
|
441 |
$_this->regex = $regex;
|
442 |
|
474 |
*/
|
475 |
function time($check) {
|
476 |
$_this = & Wpcf_Cake_Validation::getInstance();
|
477 |
+
$_this->reset();
|
478 |
$_this->check = $check;
|
479 |
$_this->regex = '%^((0?[1-9]|1[012])(:[0-5]\d){0,2}([AP]M|[ap]m))$|^([01]\d|2[0-3])(:[0-5]\d){0,2}$%';
|
480 |
return $_this->_check();
|
504 |
*/
|
505 |
function decimal($check, $places = null, $regex = null) {
|
506 |
$_this = & Wpcf_Cake_Validation::getInstance();
|
507 |
+
$_this->reset();
|
508 |
$_this->regex = $regex;
|
509 |
$_this->check = $check;
|
510 |
|
529 |
*/
|
530 |
function email($check, $deep = false, $regex = null) {
|
531 |
$_this = & Wpcf_Cake_Validation::getInstance();
|
532 |
+
$_this->reset();
|
533 |
$_this->check = $check;
|
534 |
$_this->regex = $regex;
|
535 |
$_this->deep = $deep;
|
629 |
if (function_exists('filter_var')) {
|
630 |
return filter_var($check, FILTER_VALIDATE_IP, array('flags' => FILTER_FLAG_IPV4)) !== false;
|
631 |
}
|
632 |
+
$this->populateIp();
|
633 |
$this->check = $check;
|
634 |
$this->regex = '/^' . $this->__pattern['IPv4'] . '$/';
|
635 |
return $this->_check();
|
646 |
if (function_exists('filter_var')) {
|
647 |
return filter_var($check, FILTER_VALIDATE_IP, array('flags' => FILTER_FLAG_IPV6)) !== false;
|
648 |
}
|
649 |
+
$this->populateIp();
|
650 |
$this->check = $check;
|
651 |
$this->regex = '/^' . $this->__pattern['IPv6'] . '$/';
|
652 |
return $this->_check();
|
941 |
*/
|
942 |
function url($check, $strict = false) {
|
943 |
$_this = & Wpcf_Cake_Validation::getInstance();
|
944 |
+
$_this->populateIp();
|
945 |
$_this->check = $check;
|
946 |
$validChars = '([' . preg_quote('!"$&\'()*+,-.@_:;=~[]') . '\/0-9a-z\p{L}\p{N}]|(%[0-9a-f]{2}))';
|
947 |
$_this->regex = '/^(?:(?:https?|ftps?|file|news|gopher):\/\/)' . (!empty($strict) ? '' : '?') .
|
1095 |
* @access private
|
1096 |
*/
|
1097 |
|
1098 |
+
function populateIp() {
|
1099 |
+
if( method_exists( $this, '__populateIp' ) ) {
|
1100 |
+
// support for subclasses overwritting the previous __populateIp function
|
1101 |
+
return $this->__populateIp();
|
1102 |
+
}
|
1103 |
+
|
1104 |
+
if (!isset($this->__pattern['IPv6'])) {
|
1105 |
$pattern = '((([0-9A-Fa-f]{1,4}:){7}(([0-9A-Fa-f]{1,4})|:))|(([0-9A-Fa-f]{1,4}:){6}';
|
1106 |
$pattern .= '(:|((25[0-5]|2[0-4]\d|[01]?\d{1,2})(\.(25[0-5]|2[0-4]\d|[01]?\d{1,2})){3})';
|
1107 |
$pattern .= '|(:[0-9A-Fa-f]{1,4})))|(([0-9A-Fa-f]{1,4}:){5}((:((25[0-5]|2[0-4]\d|[01]?\d{1,2})';
|
1131 |
* @return void
|
1132 |
* @access private
|
1133 |
*/
|
1134 |
+
function reset() {
|
1135 |
+
if( method_exists( $this, '__reset' ) ) {
|
1136 |
+
// support for subclasses overwritting the previous __reset function
|
1137 |
+
return $this->__reset();
|
1138 |
+
}
|
1139 |
+
|
1140 |
+
// no sublcass
|
1141 |
$this->check = null;
|
1142 |
$this->regex = null;
|
1143 |
$this->country = null;
|
1147 |
$this->errors = array();
|
1148 |
}
|
1149 |
|
1150 |
+
/**
|
1151 |
+
* Backward compatibility
|
1152 |
+
* For PHP 7 we renamed the method __reset() and __populateIp() to reset() and populateIp().
|
1153 |
+
* As both are public methods we apply this fallback for the case someone calls the old methods.
|
1154 |
+
*
|
1155 |
+
* @param $method
|
1156 |
+
* @param $arguments
|
1157 |
+
*/
|
1158 |
+
public function __call( $method, $arguments ) {
|
1159 |
+
switch( $method ) {
|
1160 |
+
case '__reset':
|
1161 |
+
$this->reset();
|
1162 |
+
break;
|
1163 |
+
case '__populateIp':
|
1164 |
+
$this->populateIp();
|
1165 |
+
break;
|
1166 |
+
}
|
1167 |
+
}
|
1168 |
}
|
1169 |
|
1170 |
}
|
vendor/toolset/toolset-common/inc/autoloaded/admin.php
CHANGED
@@ -12,6 +12,7 @@ class Toolset_Admin_Controller {
|
|
12 |
|
13 |
public function initialize() {
|
14 |
$this->load_whip();
|
|
|
15 |
}
|
16 |
|
17 |
|
@@ -29,4 +30,9 @@ class Toolset_Admin_Controller {
|
|
29 |
whip_wp_check_versions( array( 'php' => '>=5.3' ) );
|
30 |
}
|
31 |
|
|
|
|
|
|
|
|
|
|
|
32 |
}
|
12 |
|
13 |
public function initialize() {
|
14 |
$this->load_whip();
|
15 |
+
$this->init_page_extensions();
|
16 |
}
|
17 |
|
18 |
|
30 |
whip_wp_check_versions( array( 'php' => '>=5.3' ) );
|
31 |
}
|
32 |
|
33 |
+
|
34 |
+
private function init_page_extensions() {
|
35 |
+
|
36 |
+
}
|
37 |
+
|
38 |
}
|
vendor/toolset/toolset-common/inc/autoloaded/admin/notices.php
CHANGED
@@ -158,16 +158,6 @@ class Toolset_Controller_Admin_Notices {
|
|
158 |
) {
|
159 |
$this->notices_compilation_introduction();
|
160 |
$this->notice_wpml_version_doesnt_support_m2m();
|
161 |
-
|
162 |
-
if( $this->only_types_active() || $this->is_commercial_active_but_not_registered( false ) ) {
|
163 |
-
// notice: types free version support ends
|
164 |
-
if( $notice = $this->types_free_version_support_ends() ) {
|
165 |
-
if( $current_screen_id == 'toplevel_page_toolset-dashboard'
|
166 |
-
&& Toolset_Admin_Notices_Manager::is_notice_dismissed( $notice ) ) {
|
167 |
-
$this->types_free_version_support_ends_undissmisble();
|
168 |
-
}
|
169 |
-
};
|
170 |
-
}
|
171 |
}
|
172 |
}
|
173 |
|
@@ -219,11 +209,6 @@ class Toolset_Controller_Admin_Notices {
|
|
219 |
|
220 |
$this->notices_compilation_introduction();
|
221 |
$this->notice_wpml_version_doesnt_support_m2m();
|
222 |
-
|
223 |
-
if( $this->only_types_active() || $this->is_commercial_active_but_not_registered( false ) ) {
|
224 |
-
// notice: types free version support ends
|
225 |
-
$this->types_free_version_support_ends();
|
226 |
-
}
|
227 |
}
|
228 |
|
229 |
/**
|
@@ -262,8 +247,6 @@ class Toolset_Controller_Admin_Notices {
|
|
262 |
*/
|
263 |
protected function notices_compilation_introduction() {
|
264 |
if( $this->only_types_active() ) {
|
265 |
-
$this->notice_how_to_design_with_toolset();
|
266 |
-
|
267 |
// notice: theme has native layout support
|
268 |
$this->notice_theme_works_best_with_toolset();
|
269 |
|
@@ -272,15 +255,6 @@ class Toolset_Controller_Admin_Notices {
|
|
272 |
|
273 |
// commercial plugin active + theme we have an integration plugin for
|
274 |
$this->integration_run_installer();
|
275 |
-
|
276 |
-
// + commercial plugin active
|
277 |
-
// + types || views || layouts missing
|
278 |
-
if( ! $this->is_views_active
|
279 |
-
|| ! $this->is_types_active
|
280 |
-
|| ! $this->is_layouts_active
|
281 |
-
) {
|
282 |
-
$this->types_views_or_layouts_missing();
|
283 |
-
}
|
284 |
}
|
285 |
|
286 |
/**
|
@@ -297,18 +271,6 @@ class Toolset_Controller_Admin_Notices {
|
|
297 |
return true;
|
298 |
}
|
299 |
|
300 |
-
/**
|
301 |
-
* @return Toolset_Admin_Notice_Dismissible
|
302 |
-
*/
|
303 |
-
protected function notice_how_to_design_with_toolset() {
|
304 |
-
$notice = new Toolset_Admin_Notice_Dismissible( 'how-to-design-with-toolset' );
|
305 |
-
$notice->set_content( $this->tpl_path . '/only-types-installed/layouts-support-missing.phtml' );
|
306 |
-
$notice->add_condition( new Toolset_Condition_Theme_Layouts_Support_Native_Missing() );
|
307 |
-
Toolset_Admin_Notices_Manager::add_notice( $notice );
|
308 |
-
|
309 |
-
return $notice;
|
310 |
-
}
|
311 |
-
|
312 |
/**
|
313 |
* @return Toolset_Admin_Notice_Dismissible
|
314 |
*/
|
@@ -319,19 +281,6 @@ class Toolset_Controller_Admin_Notices {
|
|
319 |
Toolset_Admin_Notices_Manager::add_notice( $notice );
|
320 |
}
|
321 |
|
322 |
-
/**
|
323 |
-
* @return Toolset_Admin_Notice_Dismissible
|
324 |
-
*/
|
325 |
-
protected function types_views_or_layouts_missing() {
|
326 |
-
// The id 'layouts-no-theme-integration' can be irritating as it no longer depends on a theme integration plugin
|
327 |
-
// But changing the id means users have to dismiss the notice again. So we keep 'layouts-no-theme-integration'.
|
328 |
-
$notice = new Toolset_Admin_Notice_Dismissible( 'layouts-no-theme-integration' );
|
329 |
-
$notice->set_content( $this->tpl_path . '/commercial-plugin-installed/types-views-or-layouts-missing.phtml' );
|
330 |
-
Toolset_Admin_Notices_Manager::add_notice( $notice );
|
331 |
-
|
332 |
-
return $notice;
|
333 |
-
}
|
334 |
-
|
335 |
/**
|
336 |
*
|
337 |
* Display a Toolset_Admin_Notice_Undismissible notice if the user has not registered this site.
|
@@ -348,45 +297,6 @@ class Toolset_Controller_Admin_Notices {
|
|
348 |
}
|
349 |
|
350 |
|
351 |
-
/**
|
352 |
-
* @return Toolset_Admin_Notice_Dismissible
|
353 |
-
*/
|
354 |
-
protected function types_free_version_support_ends() {
|
355 |
-
if( class_exists( 'WP_Installer' )
|
356 |
-
&& WP_Installer()->repository_has_valid_subscription( 'toolset' ) ) {
|
357 |
-
return false;
|
358 |
-
}
|
359 |
-
|
360 |
-
$is_m2m_ready = new Toolset_Condition_Plugin_Types_Ready_For_M2M();
|
361 |
-
if ( $is_m2m_ready->is_met() ) {
|
362 |
-
return false;
|
363 |
-
}
|
364 |
-
|
365 |
-
$notice = new Toolset_Admin_Notice_Dismissible( 'types_free_version_support_ends', '', $this->constants );
|
366 |
-
$notice->set_content( $this->tpl_path . '/types-free-version-ends.phtml' );
|
367 |
-
Toolset_Admin_Notices_Manager::add_notice( $notice );
|
368 |
-
|
369 |
-
return $notice;
|
370 |
-
}
|
371 |
-
|
372 |
-
/**
|
373 |
-
* @return Toolset_Admin_Notice_Undismissible
|
374 |
-
*/
|
375 |
-
protected function types_free_version_support_ends_undissmisble() {
|
376 |
-
if( class_exists( 'WP_Installer' )
|
377 |
-
&& WP_Installer()->repository_has_valid_subscription( 'toolset' ) ) {
|
378 |
-
return false;
|
379 |
-
}
|
380 |
-
|
381 |
-
$notice = new Toolset_Admin_Notice_Undismissible( 'types_free_version_support_ends_undissmisble', '', $this->constants );
|
382 |
-
$notice->set_template_path( $this->tpl_path . '/types-move-to-toolset.phtml' );
|
383 |
-
$notice->set_content( $this->tpl_path . '/types-free-version-ends.phtml' );
|
384 |
-
Toolset_Admin_Notices_Manager::add_notice( $notice );
|
385 |
-
|
386 |
-
return $notice;
|
387 |
-
}
|
388 |
-
|
389 |
-
|
390 |
|
391 |
/**
|
392 |
* @return Toolset_Admin_Notice_Dismissible
|
@@ -489,7 +399,7 @@ class Toolset_Controller_Admin_Notices {
|
|
489 |
$notice = new Toolset_Admin_Notice_Required_Action(
|
490 |
'toolset-wpml-version-doesnt-support-m2m',
|
491 |
sprintf(
|
492 |
-
__( '
|
493 |
sanitize_text_field( Toolset_Relationship_Controller::MINIMAL_WPML_VERSION )
|
494 |
)
|
495 |
);
|
158 |
) {
|
159 |
$this->notices_compilation_introduction();
|
160 |
$this->notice_wpml_version_doesnt_support_m2m();
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
161 |
}
|
162 |
}
|
163 |
|
209 |
|
210 |
$this->notices_compilation_introduction();
|
211 |
$this->notice_wpml_version_doesnt_support_m2m();
|
|
|
|
|
|
|
|
|
|
|
212 |
}
|
213 |
|
214 |
/**
|
247 |
*/
|
248 |
protected function notices_compilation_introduction() {
|
249 |
if( $this->only_types_active() ) {
|
|
|
|
|
250 |
// notice: theme has native layout support
|
251 |
$this->notice_theme_works_best_with_toolset();
|
252 |
|
255 |
|
256 |
// commercial plugin active + theme we have an integration plugin for
|
257 |
$this->integration_run_installer();
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
258 |
}
|
259 |
|
260 |
/**
|
271 |
return true;
|
272 |
}
|
273 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
274 |
/**
|
275 |
* @return Toolset_Admin_Notice_Dismissible
|
276 |
*/
|
281 |
Toolset_Admin_Notices_Manager::add_notice( $notice );
|
282 |
}
|
283 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
284 |
/**
|
285 |
*
|
286 |
* Display a Toolset_Admin_Notice_Undismissible notice if the user has not registered this site.
|
297 |
}
|
298 |
|
299 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
300 |
|
301 |
/**
|
302 |
* @return Toolset_Admin_Notice_Dismissible
|
399 |
$notice = new Toolset_Admin_Notice_Required_Action(
|
400 |
'toolset-wpml-version-doesnt-support-m2m',
|
401 |
sprintf(
|
402 |
+
__( 'Post relationships in Toolset require WPML %s or newer to work properly with post translations. Please upgrade WPML.', 'wpcf' ),
|
403 |
sanitize_text_field( Toolset_Relationship_Controller::MINIMAL_WPML_VERSION )
|
404 |
)
|
405 |
);
|
vendor/toolset/toolset-common/inc/autoloaded/ajax_handler/migrate_to_m2m.php
CHANGED
@@ -18,9 +18,9 @@ class Toolset_Ajax_Handler_Migrate_To_M2M extends Toolset_Ajax_Handler_Abstract
|
|
18 |
|
19 |
// Fixed step numbers in the first phase.
|
20 |
// These need to be consecutive numbers.
|
21 |
-
const
|
22 |
-
|
23 |
-
const STEP_CREATE_TABLES =
|
24 |
|
25 |
|
26 |
/** @var Toolset_Relationship_Controller */
|
@@ -105,18 +105,39 @@ class Toolset_Ajax_Handler_Migrate_To_M2M extends Toolset_Ajax_Handler_Abstract
|
|
105 |
// Used for calculating offsets in the last two phases.
|
106 |
$steps_before_association_migration = (int) toolset_getarr( $_POST, 'first_phase_step', 0 );
|
107 |
|
|
|
|
|
|
|
|
|
|
|
108 |
switch ( $current_phase ) {
|
109 |
|
110 |
case self::PHASE_DBDELTA: {
|
111 |
-
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
112 |
break;
|
113 |
}
|
114 |
|
115 |
case self::PHASE_DEFINITION_MIGRATION: {
|
116 |
// Second step - (re)create relationship definitions.
|
117 |
|
118 |
-
$
|
|
|
119 |
if ( $definition_migration_result->is_complete_success() ) {
|
|
|
120 |
$results->add( true, __( 'Relationship definitions migrated.', 'wpcf' ) );
|
121 |
} else {
|
122 |
$results->add( $definition_migration_result );
|
@@ -180,12 +201,32 @@ class Toolset_Ajax_Handler_Migrate_To_M2M extends Toolset_Ajax_Handler_Abstract
|
|
180 |
|
181 |
}
|
182 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
183 |
$this->ajax_finish(
|
184 |
array(
|
185 |
'message' => $results->concat_messages( "\n> " ),
|
186 |
'continue' => $continue,
|
187 |
'previous_phase' => $current_phase,
|
|
|
|
|
|
|
188 |
'is_complete_success' => $results->is_complete_success(),
|
|
|
189 |
'ajax_arguments' => array(
|
190 |
'step' => $step_number + 1,
|
191 |
'phase' => $next_phase,
|
@@ -194,7 +235,7 @@ class Toolset_Ajax_Handler_Migrate_To_M2M extends Toolset_Ajax_Handler_Abstract
|
|
194 |
'options' => $options
|
195 |
)
|
196 |
),
|
197 |
-
true
|
198 |
);
|
199 |
}
|
200 |
|
@@ -229,7 +270,7 @@ class Toolset_Ajax_Handler_Migrate_To_M2M extends Toolset_Ajax_Handler_Abstract
|
|
229 |
|
230 |
$migration_controller->do_native_dbdelta();
|
231 |
|
232 |
-
$results->add( true, __( 'The toolset_associations
|
233 |
|
234 |
$next_phase = self::PHASE_DEFINITION_MIGRATION;
|
235 |
|
@@ -241,4 +282,20 @@ class Toolset_Ajax_Handler_Migrate_To_M2M extends Toolset_Ajax_Handler_Abstract
|
|
241 |
return false;
|
242 |
}
|
243 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
244 |
}
|
18 |
|
19 |
// Fixed step numbers in the first phase.
|
20 |
// These need to be consecutive numbers.
|
21 |
+
const STEP_MAINTENANCE_ON = 0;
|
22 |
+
const STEP_MAYBE_DROP_TABLES = 1;
|
23 |
+
const STEP_CREATE_TABLES = 2;
|
24 |
|
25 |
|
26 |
/** @var Toolset_Relationship_Controller */
|
105 |
// Used for calculating offsets in the last two phases.
|
106 |
$steps_before_association_migration = (int) toolset_getarr( $_POST, 'first_phase_step', 0 );
|
107 |
|
108 |
+
$has_maintenance_mode = (bool) toolset_getarr( $options, 'use_maintenance_mode', false );
|
109 |
+
|
110 |
+
$is_fatal_error = false;
|
111 |
+
$keep_maintenance_mode = false;
|
112 |
+
|
113 |
switch ( $current_phase ) {
|
114 |
|
115 |
case self::PHASE_DBDELTA: {
|
116 |
+
// Putting this here because adding another phase would require more changes to the
|
117 |
+
// migration dialog.
|
118 |
+
if( $step_number === self::STEP_MAINTENANCE_ON ) {
|
119 |
+
if( $has_maintenance_mode ) {
|
120 |
+
$results->add( $this->enable_maintenance_mode() );
|
121 |
+
$continue = $results->is_complete_success();
|
122 |
+
} else {
|
123 |
+
$results->add( true, __( 'Not using maintenance mode for the migration.', 'wpcf' ) );
|
124 |
+
$continue = true;
|
125 |
+
}
|
126 |
+
$keep_maintenance_mode = true;
|
127 |
+
$is_fatal_error = ! $continue;
|
128 |
+
} else {
|
129 |
+
$continue = $this->phase_dbdelta( $step_number, $migration_controller, $results, $next_phase );
|
130 |
+
}
|
131 |
break;
|
132 |
}
|
133 |
|
134 |
case self::PHASE_DEFINITION_MIGRATION: {
|
135 |
// Second step - (re)create relationship definitions.
|
136 |
|
137 |
+
$adjust_translation_mode = (bool) toolset_getarr( $options, 'adjust_translation_mode' );
|
138 |
+
$definition_migration_result = $migration_controller->migrate_relationship_definitions( $adjust_translation_mode );
|
139 |
if ( $definition_migration_result->is_complete_success() ) {
|
140 |
+
$results->add( $definition_migration_result );
|
141 |
$results->add( true, __( 'Relationship definitions migrated.', 'wpcf' ) );
|
142 |
} else {
|
143 |
$results->add( $definition_migration_result );
|
201 |
|
202 |
}
|
203 |
|
204 |
+
// Never leave the maintenance mode behind unless specifically instructed to do so
|
205 |
+
// (when there is an error because the maintenance mode is already active).
|
206 |
+
if( $has_maintenance_mode && ! $continue && ! $keep_maintenance_mode ) {
|
207 |
+
$results->add( $this->disable_maintenance_mode() );
|
208 |
+
}
|
209 |
+
|
210 |
+
$result_status = 'success';
|
211 |
+
if( ! $results->is_complete_success() ) {
|
212 |
+
// Something went wrong but we can still continue.
|
213 |
+
$result_status = 'warning';
|
214 |
+
}
|
215 |
+
if( $is_fatal_error ) {
|
216 |
+
// Something went wrong and the process cannot continue anymore,
|
217 |
+
$result_status = 'error';
|
218 |
+
}
|
219 |
+
|
220 |
$this->ajax_finish(
|
221 |
array(
|
222 |
'message' => $results->concat_messages( "\n> " ),
|
223 |
'continue' => $continue,
|
224 |
'previous_phase' => $current_phase,
|
225 |
+
'status' => $result_status,
|
226 |
+
|
227 |
+
// keeping this for backward compatibility - replaced by "status":
|
228 |
'is_complete_success' => $results->is_complete_success(),
|
229 |
+
|
230 |
'ajax_arguments' => array(
|
231 |
'step' => $step_number + 1,
|
232 |
'phase' => $next_phase,
|
235 |
'options' => $options
|
236 |
)
|
237 |
),
|
238 |
+
true
|
239 |
);
|
240 |
}
|
241 |
|
270 |
|
271 |
$migration_controller->do_native_dbdelta();
|
272 |
|
273 |
+
$results->add( true, __( 'The toolset_associations, toolset_relationships and toolset_post_type_sets tables have been created.', 'wpcf' ) );
|
274 |
|
275 |
$next_phase = self::PHASE_DEFINITION_MIGRATION;
|
276 |
|
282 |
return false;
|
283 |
}
|
284 |
|
285 |
+
|
286 |
+
private function get_maintenance_mode_controller() {
|
287 |
+
$maintenance = new \OTGS\Toolset\Common\MaintenanceMode\Controller();
|
288 |
+
return $maintenance;
|
289 |
+
}
|
290 |
+
|
291 |
+
|
292 |
+
private function enable_maintenance_mode() {
|
293 |
+
return $this->get_maintenance_mode_controller()->enable( true, true, true );
|
294 |
+
}
|
295 |
+
|
296 |
+
|
297 |
+
private function disable_maintenance_mode() {
|
298 |
+
return $this->get_maintenance_mode_controller()->disable();
|
299 |
+
}
|
300 |
+
|
301 |
}
|
vendor/toolset/toolset-common/inc/autoloaded/ajax_handler/select2_suggest_posts_by_post_type.php
ADDED
@@ -0,0 +1,117 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
<?php
|
2 |
+
|
3 |
+
/**
|
4 |
+
* Handles toolset_select2 instances that suggest post by title.
|
5 |
+
*
|
6 |
+
* If a given post type is not provided, it will return no results.
|
7 |
+
* valueType - If a return value among [ 'ID', 'post_name' ] is not provided, it will return result built upon post ID.
|
8 |
+
* orderBy - Can order by 'date', 'title', 'ID'.
|
9 |
+
* order - Can order as 'DESC' or 'ASC'.
|
10 |
+
* author - Can filter by an author ID, or return no results if passed as zero.
|
11 |
+
*
|
12 |
+
* @since m2m
|
13 |
+
*/
|
14 |
+
class Toolset_Ajax_Handler_Select2_Suggest_Posts_By_Post_Type extends Toolset_Ajax_Handler_Abstract {
|
15 |
+
|
16 |
+
|
17 |
+
/**
|
18 |
+
* @param array $arguments Original action arguments.
|
19 |
+
*
|
20 |
+
* @return void
|
21 |
+
*/
|
22 |
+
function process_call( $arguments ) {
|
23 |
+
|
24 |
+
$this->ajax_begin(
|
25 |
+
array(
|
26 |
+
'nonce' => Toolset_Ajax::CALLBACK_SELECT2_SUGGEST_POSTS_BY_POST_TYPE,
|
27 |
+
'is_public' => true
|
28 |
+
)
|
29 |
+
);
|
30 |
+
|
31 |
+
$post_type = toolset_getpost( 'postType' );
|
32 |
+
|
33 |
+
if ( empty( $post_type ) ) {
|
34 |
+
$this->ajax_finish( array( 'message' => __( 'Wrong or missing query.', 'wpv-views' ) ), false );
|
35 |
+
}
|
36 |
+
|
37 |
+
$return = toolset_getpost( 'valueType' );
|
38 |
+
$return = in_array( $return, array( 'ID', 'post_name' ) )
|
39 |
+
? $return
|
40 |
+
: 'ID';
|
41 |
+
|
42 |
+
global $wpdb;
|
43 |
+
$values_to_prepare = array();
|
44 |
+
|
45 |
+
$post_type_query = '';
|
46 |
+
|
47 |
+
|
48 |
+
$post_type_query = "AND post_type = %s ";
|
49 |
+
$values_to_prepare[] = $post_type;
|
50 |
+
|
51 |
+
$author_query = '';
|
52 |
+
if ( '' != toolset_getpost('author') ) {
|
53 |
+
$author_query = "AND post_author = %s";
|
54 |
+
$values_to_prepare[] = (int) toolset_getpost('author');
|
55 |
+
}
|
56 |
+
|
57 |
+
$orderby = toolset_getpost( 'orderBy', 'ID', array( 'date', 'title', 'ID' ) );
|
58 |
+
$values_to_prepare[] = $orderby;
|
59 |
+
|
60 |
+
$order = toolset_getpost( 'order', 'DESC', array( 'ASC', 'DESC' ) );
|
61 |
+
$values_to_prepare[] = $order;
|
62 |
+
|
63 |
+
$results = $wpdb->get_results(
|
64 |
+
$wpdb->prepare(
|
65 |
+
"SELECT ID, post_type, post_title, post_name
|
66 |
+
FROM {$wpdb->posts}
|
67 |
+
WHERE post_status = 'publish'
|
68 |
+
{$post_type_query}
|
69 |
+
{$author_query}
|
70 |
+
ORDER BY %s %s
|
71 |
+
LIMIT 0, 15",
|
72 |
+
$values_to_prepare
|
73 |
+
)
|
74 |
+
);
|
75 |
+
|
76 |
+
|
77 |
+
if (
|
78 |
+
isset( $results )
|
79 |
+
&& ! empty( $results )
|
80 |
+
) {
|
81 |
+
|
82 |
+
$final = array();
|
83 |
+
|
84 |
+
if ( is_array( $results ) ) {
|
85 |
+
|
86 |
+
foreach ( $results as $result ) {
|
87 |
+
$final[] = array(
|
88 |
+
'id' => $result->$return,
|
89 |
+
'text' => $result->post_title
|
90 |
+
);
|
91 |
+
}
|
92 |
+
|
93 |
+
$final = array_values( $final );
|
94 |
+
|
95 |
+
}
|
96 |
+
$this->ajax_finish( $final, true );
|
97 |
+
|
98 |
+
} else {
|
99 |
+
// return empty result set
|
100 |
+
$result = array();
|
101 |
+
$this->ajax_finish( $result, true );
|
102 |
+
}
|
103 |
+
|
104 |
+
$this->ajax_finish( array( 'message' => __( 'Error while retrieving result.', 'wpv-views' ) ), false );
|
105 |
+
|
106 |
+
}
|
107 |
+
|
108 |
+
/**
|
109 |
+
* Return only post type from post object, used for array_map
|
110 |
+
* @param $one_post
|
111 |
+
* @return string
|
112 |
+
*/
|
113 |
+
private function get_post_type( $one_post ){
|
114 |
+
return $one_post->post_type;
|
115 |
+
}
|
116 |
+
|
117 |
+
}
|
vendor/toolset/toolset-common/inc/autoloaded/ajax_handler/select2_suggest_posts_by_title.php
CHANGED
@@ -3,8 +3,13 @@
|
|
3 |
/**
|
4 |
* Handles toolset_select2 instances that suggest post by title.
|
5 |
*
|
6 |
-
*
|
7 |
-
* If a
|
|
|
|
|
|
|
|
|
|
|
8 |
*
|
9 |
* @since m2m
|
10 |
*/
|
@@ -25,11 +30,12 @@ class Toolset_Ajax_Handler_Select2_Suggest_Posts_By_Title extends Toolset_Ajax_H
|
|
25 |
)
|
26 |
);
|
27 |
|
28 |
-
// Read and validate input
|
29 |
$s = toolset_getpost( 's' );
|
30 |
|
31 |
-
|
32 |
-
|
|
|
|
|
33 |
$this->ajax_finish( array( 'message' => __( 'Wrong or missing query.', 'wpv-views' ) ), false );
|
34 |
}
|
35 |
|
@@ -41,14 +47,19 @@ class Toolset_Ajax_Handler_Select2_Suggest_Posts_By_Title extends Toolset_Ajax_H
|
|
41 |
global $wpdb;
|
42 |
$values_to_prepare = array();
|
43 |
|
44 |
-
if (
|
45 |
-
$
|
46 |
-
|
47 |
-
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
48 |
}
|
49 |
|
50 |
-
$values_to_prepare[] = $s;
|
51 |
-
|
52 |
$post_type_query = '';
|
53 |
$force_post_type = toolset_getpost( 'postType' );
|
54 |
if ( empty( $force_post_type ) ) {
|
@@ -62,17 +73,27 @@ class Toolset_Ajax_Handler_Select2_Suggest_Posts_By_Title extends Toolset_Ajax_H
|
|
62 |
$values_to_prepare[] = $force_post_type;
|
63 |
}
|
64 |
|
65 |
-
$
|
66 |
-
|
67 |
-
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
68 |
|
69 |
$results = $wpdb->get_results(
|
70 |
$wpdb->prepare(
|
71 |
"SELECT ID, post_type, post_title, post_name
|
72 |
FROM {$wpdb->posts}
|
73 |
-
WHERE
|
74 |
AND post_status = 'publish'
|
75 |
-
{$post_type_query}
|
|
|
|
|
76 |
LIMIT 0, 15",
|
77 |
$values_to_prepare
|
78 |
)
|
@@ -83,33 +104,43 @@ class Toolset_Ajax_Handler_Select2_Suggest_Posts_By_Title extends Toolset_Ajax_H
|
|
83 |
isset( $results )
|
84 |
&& ! empty( $results )
|
85 |
) {
|
86 |
-
|
87 |
$final = array();
|
88 |
|
89 |
if ( is_array( $results ) ) {
|
90 |
-
|
91 |
-
|
92 |
-
|
93 |
-
|
94 |
-
|
95 |
-
|
96 |
-
|
97 |
-
|
98 |
-
|
99 |
-
|
100 |
-
|
101 |
-
|
102 |
-
|
103 |
-
|
104 |
-
|
105 |
-
|
106 |
-
|
107 |
-
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
108 |
}
|
109 |
|
110 |
$final = array_values( $final );
|
111 |
-
|
112 |
}
|
|
|
113 |
$this->ajax_finish( $final, true );
|
114 |
|
115 |
} else {
|
3 |
/**
|
4 |
* Handles toolset_select2 instances that suggest post by title.
|
5 |
*
|
6 |
+
* This AJAX handler supports the following modifies:
|
7 |
+
* postType - If a given post type is not provided, it will return results in any post type but the excluded ones. No validation is done.
|
8 |
+
* valueType - If a return value among [ 'ID', 'post_name' ] is not provided, it will return result built upon post ID.
|
9 |
+
* loadRecent - If provided as TRUE, a search for the most recent posts will be performed even without a search term.
|
10 |
+
* orderBy - Can order by 'date', 'title', 'ID'.
|
11 |
+
* order - Can order as 'DESC' or 'ASC'.
|
12 |
+
* author - Can filter by an author ID, or return no results if passed as zero.
|
13 |
*
|
14 |
* @since m2m
|
15 |
*/
|
30 |
)
|
31 |
);
|
32 |
|
|
|
33 |
$s = toolset_getpost( 's' );
|
34 |
|
35 |
+
if (
|
36 |
+
empty( $s )
|
37 |
+
&& ! toolset_getpost( 'loadRecent', false )
|
38 |
+
) {
|
39 |
$this->ajax_finish( array( 'message' => __( 'Wrong or missing query.', 'wpv-views' ) ), false );
|
40 |
}
|
41 |
|
47 |
global $wpdb;
|
48 |
$values_to_prepare = array();
|
49 |
|
50 |
+
if ( empty( $s ) ) {
|
51 |
+
$search_query = '1 = %d';
|
52 |
+
$values_to_prepare[] = 1;
|
53 |
+
} else {
|
54 |
+
$search_query = 'post_title LIKE %s';
|
55 |
+
if ( method_exists( $wpdb, 'esc_like' ) ) {
|
56 |
+
$s = '%' . $wpdb->esc_like( $s ) . '%';
|
57 |
+
} else {
|
58 |
+
$s = '%' . like_escape( esc_sql( $s ) ) . '%';
|
59 |
+
}
|
60 |
+
$values_to_prepare[] = $s;
|
61 |
}
|
62 |
|
|
|
|
|
63 |
$post_type_query = '';
|
64 |
$force_post_type = toolset_getpost( 'postType' );
|
65 |
if ( empty( $force_post_type ) ) {
|
73 |
$values_to_prepare[] = $force_post_type;
|
74 |
}
|
75 |
|
76 |
+
$author_query = '';
|
77 |
+
if ( '' != toolset_getpost('author') ) {
|
78 |
+
$author_query = "AND post_author = %s";
|
79 |
+
$values_to_prepare[] = (int) toolset_getpost('author');
|
80 |
+
}
|
81 |
+
|
82 |
+
$orderby = toolset_getpost( 'orderBy', 'ID', array( 'date', 'title', 'ID' ) );
|
83 |
+
$values_to_prepare[] = $orderby;
|
84 |
+
|
85 |
+
$order = toolset_getpost( 'order', 'DESC', array( 'ASC', 'DESC' ) );
|
86 |
+
$values_to_prepare[] = $order;
|
87 |
|
88 |
$results = $wpdb->get_results(
|
89 |
$wpdb->prepare(
|
90 |
"SELECT ID, post_type, post_title, post_name
|
91 |
FROM {$wpdb->posts}
|
92 |
+
WHERE {$search_query}
|
93 |
AND post_status = 'publish'
|
94 |
+
{$post_type_query}
|
95 |
+
{$author_query}
|
96 |
+
ORDER BY %s %s
|
97 |
LIMIT 0, 15",
|
98 |
$values_to_prepare
|
99 |
)
|
104 |
isset( $results )
|
105 |
&& ! empty( $results )
|
106 |
) {
|
107 |
+
|
108 |
$final = array();
|
109 |
|
110 |
if ( is_array( $results ) ) {
|
111 |
+
|
112 |
+
if ( ! empty( $force_post_type ) ) {
|
113 |
+
|
114 |
+
foreach ( $results as $result ) {
|
115 |
+
$final[] = array(
|
116 |
+
'id' => $result->$return,
|
117 |
+
'text' => $result->post_title
|
118 |
+
);
|
119 |
+
}
|
120 |
+
|
121 |
+
} else {
|
122 |
+
|
123 |
+
foreach ( $results as $result ) {
|
124 |
+
if ( ! isset( $final[ $result->post_type ] ) ) {
|
125 |
+
$post_type_details = get_post_type_object( $result->post_type );
|
126 |
+
$final[ $result->post_type ] = array(
|
127 |
+
'text' => $post_type_details->label,
|
128 |
+
'children' => array()
|
129 |
+
);
|
130 |
+
}
|
131 |
+
|
132 |
+
$final[ $result->post_type ]['children'][] = array(
|
133 |
+
'id' => $result->$return,
|
134 |
+
'text' => $result->post_title
|
135 |
+
);
|
136 |
+
}
|
137 |
+
|
138 |
}
|
139 |
|
140 |
$final = array_values( $final );
|
141 |
+
|
142 |
}
|
143 |
+
|
144 |
$this->ajax_finish( $final, true );
|
145 |
|
146 |
} else {
|
vendor/toolset/toolset-common/inc/autoloaded/element/domain.php
CHANGED
@@ -5,7 +5,7 @@
|
|
5 |
*
|
6 |
* @since 2.5.4
|
7 |
*/
|
8 |
-
|
9 |
|
10 |
const POSTS = 'posts';
|
11 |
const USERS = 'users';
|
5 |
*
|
6 |
* @since 2.5.4
|
7 |
*/
|
8 |
+
class Toolset_Element_Domain {
|
9 |
|
10 |
const POSTS = 'posts';
|
11 |
const USERS = 'users';
|
vendor/toolset/toolset-common/inc/autoloaded/element/element.php
CHANGED
@@ -66,18 +66,6 @@ abstract class Toolset_Element implements IToolset_Element {
|
|
66 |
|
67 |
|
68 |
|
69 |
-
/**
|
70 |
-
* @return string One of the Toolset_Field_Utils::get_domains() values.
|
71 |
-
*/
|
72 |
-
public abstract function get_domain();
|
73 |
-
|
74 |
-
|
75 |
-
/**
|
76 |
-
* @return int ID of the underlying object.
|
77 |
-
*/
|
78 |
-
public abstract function get_id();
|
79 |
-
|
80 |
-
|
81 |
/**
|
82 |
* Load custom fields of the element if they're not loaded yet.
|
83 |
*
|
66 |
|
67 |
|
68 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
69 |
/**
|
70 |
* Load custom fields of the element if they're not loaded yet.
|
71 |
*
|
vendor/toolset/toolset-common/inc/autoloaded/element/element_factory.php
CHANGED
@@ -113,6 +113,7 @@ class Toolset_Element_Factory {
|
|
113 |
* @param array|WP_Post|int $object_source
|
114 |
*
|
115 |
* @return Toolset_Post_Translation_Set
|
|
|
116 |
*/
|
117 |
public function get_post_translation_set( $object_source ) {
|
118 |
if( ! is_array( $object_source ) ) {
|
113 |
* @param array|WP_Post|int $object_source
|
114 |
*
|
115 |
* @return Toolset_Post_Translation_Set
|
116 |
+
* @throws Toolset_Element_Exception_Element_Doesnt_Exist
|
117 |
*/
|
118 |
public function get_post_translation_set( $object_source ) {
|
119 |
if( ! is_array( $object_source ) ) {
|
vendor/toolset/toolset-common/inc/autoloaded/element/i_post.php
CHANGED
@@ -22,13 +22,6 @@ interface IToolset_Post extends IToolset_Element {
|
|
22 |
public function get_type_object();
|
23 |
|
24 |
|
25 |
-
/**
|
26 |
-
* @return string Post title
|
27 |
-
* @since m2m
|
28 |
-
*/
|
29 |
-
public function get_title();
|
30 |
-
|
31 |
-
|
32 |
/**
|
33 |
* @param string $title New post title
|
34 |
*
|
22 |
public function get_type_object();
|
23 |
|
24 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
25 |
/**
|
26 |
* @param string $title New post title
|
27 |
*
|
vendor/toolset/toolset-common/inc/autoloaded/element/post.php
CHANGED
@@ -275,4 +275,4 @@ class Toolset_Post extends Toolset_Element implements IToolset_Post {
|
|
275 |
public function get_trid() {
|
276 |
return $this->wpml_service->get_post_trid( $this->get_id() );
|
277 |
}
|
278 |
-
}
|
275 |
public function get_trid() {
|
276 |
return $this->wpml_service->get_post_trid( $this->get_id() );
|
277 |
}
|
278 |
+
}
|
vendor/toolset/toolset-common/inc/autoloaded/element/post_translation_set.php
CHANGED
@@ -133,7 +133,11 @@ class Toolset_Post_Translation_Set implements IToolset_Post {
|
|
133 |
if ( ! array_key_exists( $language_code, $this->translations ) ) {
|
134 |
$translated_post_id = $this->fetch_translation( $language_code );
|
135 |
if ( $translated_post_id !== 0 ) {
|
136 |
-
|
|
|
|
|
|
|
|
|
137 |
} else {
|
138 |
$translation = null;
|
139 |
}
|
133 |
if ( ! array_key_exists( $language_code, $this->translations ) ) {
|
134 |
$translated_post_id = $this->fetch_translation( $language_code );
|
135 |
if ( $translated_post_id !== 0 ) {
|
136 |
+
try {
|
137 |
+
$translation = $this->element_factory->get_post_untranslated( $translated_post_id, $language_code );
|
138 |
+
} catch ( Toolset_Element_Exception_Element_Doesnt_Exist $e ) {
|
139 |
+
$translation = null;
|
140 |
+
}
|
141 |
} else {
|
142 |
$translation = null;
|
143 |
}
|
vendor/toolset/toolset-common/inc/autoloaded/field/definition_abstract.php
CHANGED
@@ -5,42 +5,6 @@
|
|
5 |
*/
|
6 |
abstract class Toolset_Field_Definition_Abstract implements Toolset_Field_Definition_Interface {
|
7 |
|
8 |
-
/**
|
9 |
-
* @return string Field definition slug.
|
10 |
-
*/
|
11 |
-
public abstract function get_slug();
|
12 |
-
|
13 |
-
|
14 |
-
/**
|
15 |
-
* @return string Field definition display name.
|
16 |
-
*/
|
17 |
-
public abstract function get_name();
|
18 |
-
|
19 |
-
|
20 |
-
/**
|
21 |
-
* @return string Description provided by the user.
|
22 |
-
*/
|
23 |
-
public abstract function get_description();
|
24 |
-
|
25 |
-
|
26 |
-
/**
|
27 |
-
* @return string Meta key used to store values of these fields.
|
28 |
-
*/
|
29 |
-
public abstract function get_meta_key();
|
30 |
-
|
31 |
-
/**
|
32 |
-
* Determine whether the field is currently under Types control.
|
33 |
-
*
|
34 |
-
* @return mixed
|
35 |
-
*/
|
36 |
-
public abstract function is_under_types_control();
|
37 |
-
|
38 |
-
|
39 |
-
/**
|
40 |
-
* @return Toolset_Field_Group[]
|
41 |
-
*/
|
42 |
-
public abstract function get_associated_groups();
|
43 |
-
|
44 |
|
45 |
/**
|
46 |
* Does the field definition match a certain string?
|
5 |
*/
|
6 |
abstract class Toolset_Field_Definition_Abstract implements Toolset_Field_Definition_Interface {
|
7 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
8 |
|
9 |
/**
|
10 |
* Does the field definition match a certain string?
|
vendor/toolset/toolset-common/inc/autoloaded/field/definition_factory.php
CHANGED
@@ -347,12 +347,6 @@ abstract class Toolset_Field_Definition_Factory implements Toolset_Field_Definit
|
|
347 |
protected abstract function get_existing_meta_keys();
|
348 |
|
349 |
|
350 |
-
/**
|
351 |
-
* @return Toolset_Field_Group_Factory
|
352 |
-
* @since 2.0
|
353 |
-
*/
|
354 |
-
public abstract function get_group_factory();
|
355 |
-
|
356 |
|
357 |
/**
|
358 |
* @var null|Toolset_Field_Definition_Generic[] Cache.
|
347 |
protected abstract function get_existing_meta_keys();
|
348 |
|
349 |
|
|
|
|
|
|
|
|
|
|
|
|
|
350 |
|
351 |
/**
|
352 |
* @var null|Toolset_Field_Definition_Generic[] Cache.
|
vendor/toolset/toolset-common/inc/autoloaded/field/definition_factory_interface.php
CHANGED
@@ -6,6 +6,7 @@
|
|
6 |
* @since 2.3
|
7 |
*/
|
8 |
interface Toolset_Field_Definition_Factory_Interface {
|
|
|
9 |
/**
|
10 |
* Load an existing field definition.
|
11 |
*
|
6 |
* @since 2.3
|
7 |
*/
|
8 |
interface Toolset_Field_Definition_Factory_Interface {
|
9 |
+
|
10 |
/**
|
11 |
* Load an existing field definition.
|
12 |
*
|
vendor/toolset/toolset-common/inc/autoloaded/field/group.php
CHANGED
@@ -745,4 +745,17 @@ abstract class Toolset_Field_Group {
|
|
745 |
return $this->_post_type_repository;
|
746 |
}
|
747 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
748 |
}
|
745 |
return $this->_post_type_repository;
|
746 |
}
|
747 |
|
748 |
+
|
749 |
+
/**
|
750 |
+
* @return bool
|
751 |
+
* @since 2.8
|
752 |
+
*/
|
753 |
+
public function contains_repeating_field_group() {
|
754 |
+
// Note: Must not be overridden until types-1593 is implemented. @refactoring
|
755 |
+
$has_rfg = array_reduce( $this->get_field_slugs(), function( $has_rfg, $field_slug ) {
|
756 |
+
return $has_rfg || (bool) preg_match( '/(' . Types_Field_Group_Repeatable::PREFIX . '[a-z0-9_]+)/', $field_slug );
|
757 |
+
}, false );
|
758 |
+
|
759 |
+
return $has_rfg;
|
760 |
+
}
|
761 |
}
|
vendor/toolset/toolset-common/inc/autoloaded/field/group/post.php
CHANGED
@@ -152,8 +152,7 @@ class Toolset_Field_Group_Post extends Toolset_Field_Group {
|
|
152 |
* @deprecated Use is_assigned_to_type() instead.
|
153 |
*/
|
154 |
public function has_associated_post_type( $post_type_slug ) {
|
155 |
-
|
156 |
-
return $this->is_assigned_to_type( $post_type_slug);
|
157 |
}
|
158 |
|
159 |
|
152 |
* @deprecated Use is_assigned_to_type() instead.
|
153 |
*/
|
154 |
public function has_associated_post_type( $post_type_slug ) {
|
155 |
+
return $this->is_assigned_to_type( $post_type_slug );
|
|
|
156 |
}
|
157 |
|
158 |
|
vendor/toolset/toolset-common/inc/autoloaded/field/group/post_factory.php
CHANGED
@@ -93,6 +93,7 @@ class Toolset_Field_Group_Post_Factory extends Toolset_Field_Group_Factory {
|
|
93 |
)
|
94 |
);
|
95 |
|
|
|
96 |
$post_types = $post_type_query->get_results();
|
97 |
|
98 |
$this->post_type_assignment_cache = array();
|
93 |
)
|
94 |
);
|
95 |
|
96 |
+
/** @var string[] $post_types */
|
97 |
$post_types = $post_type_query->get_results();
|
98 |
|
99 |
$this->post_type_assignment_cache = array();
|
vendor/toolset/toolset-common/inc/autoloaded/field/renderer/preview/post.php
ADDED
@@ -0,0 +1,32 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
<?php
|
2 |
+
|
3 |
+
class Toolset_Field_Renderer_Preview_Post extends Toolset_Field_Renderer_Preview_Base {
|
4 |
+
|
5 |
+
/**
|
6 |
+
* @param mixed $value Single field value in the intermediate format (see data mappers for details)
|
7 |
+
*
|
8 |
+
* @return string Rendered HTML
|
9 |
+
*/
|
10 |
+
protected function render_single( $value ) {
|
11 |
+
if ( ! $value ) {
|
12 |
+
return '';
|
13 |
+
}
|
14 |
+
$post = get_post( (int) $value);
|
15 |
+
|
16 |
+
if ( ! $post ) {
|
17 |
+
return '';
|
18 |
+
}
|
19 |
+
|
20 |
+
$has_permission = current_user_can( 'edit_posts' );
|
21 |
+
$has_permissions = apply_filters( 'toolset_access_api_get_post_type_permissions', $has_permission, $post->post_type, 'publish', get_current_user_id() );
|
22 |
+
|
23 |
+
if ( $has_permissions ) {
|
24 |
+
return sprintf( '<a href="%s" target="_blank">%s</a>',
|
25 |
+
esc_attr( get_edit_post_link( $post ) ),
|
26 |
+
esc_html( get_the_title( $post ) )
|
27 |
+
);
|
28 |
+
} else {
|
29 |
+
return esc_html( get_the_title( $post ) );
|
30 |
+
}
|
31 |
+
}
|
32 |
+
}
|
vendor/toolset/toolset-common/inc/autoloaded/field/renderer/toolset_forms_repeatable_group.php
CHANGED
@@ -14,36 +14,132 @@
|
|
14 |
*/
|
15 |
class Toolset_Field_Renderer_Toolset_Forms_Repeatable_Group extends Toolset_Field_Renderer_Toolset_Forms {
|
16 |
|
17 |
-
|
18 |
-
|
19 |
-
|
20 |
-
|
21 |
-
$field_config['hide_field_title'] = true;
|
22 |
-
}
|
23 |
|
24 |
-
|
25 |
-
|
26 |
-
|
|
|
27 |
|
28 |
-
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
29 |
|
30 |
-
|
31 |
-
|
32 |
-
|
33 |
-
|
34 |
-
|
35 |
-
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
36 |
}
|
37 |
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
38 |
}
|
39 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
40 |
$value_in_intermediate_format = $this->field->get_value();
|
41 |
$output = wptoolset_form_field( $this->get_form_id(), $field_config, $value_in_intermediate_format );
|
42 |
|
43 |
if ( $echo ) {
|
44 |
echo $output;
|
45 |
}
|
|
|
|
|
46 |
|
47 |
return $output;
|
48 |
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
49 |
}
|
14 |
*/
|
15 |
class Toolset_Field_Renderer_Toolset_Forms_Repeatable_Group extends Toolset_Field_Renderer_Toolset_Forms {
|
16 |
|
17 |
+
/**
|
18 |
+
* @var array
|
19 |
+
*/
|
20 |
+
private $field_config;
|
|
|
|
|
21 |
|
22 |
+
/**
|
23 |
+
* @var int
|
24 |
+
*/
|
25 |
+
private $group_id;
|
26 |
|
27 |
+
/**
|
28 |
+
* Get the legacy field config and modifiy the field names to work with rfg items.
|
29 |
+
*
|
30 |
+
* @param null $group_id
|
31 |
+
*
|
32 |
+
* @return array
|
33 |
+
*
|
34 |
+
* @since 2.6.5
|
35 |
+
*/
|
36 |
+
public function get_field_config( $group_id = null ) {
|
37 |
+
if( $this->field_config === null || ( $group_id !== null && $group_id !== $this->group_id ) ) {
|
38 |
+
$this->group_id = $group_id;
|
39 |
|
40 |
+
// done by legacy
|
41 |
+
$field_config = $this->get_toolset_forms_config();
|
42 |
+
|
43 |
+
if ( $this->hide_field_title ) {
|
44 |
+
$field_config['title'] = '';
|
45 |
+
$field_config['hide_field_title'] = true;
|
46 |
+
}
|
47 |
+
|
48 |
+
// no repetitive fields on rfg
|
49 |
+
$field_config['repetitive'] = false;
|
50 |
+
|
51 |
+
// convert field name to types-repeatable-group[item-id][field-slug]
|
52 |
+
$field_config['name'] = 'types-repeatable-group[' . $this->field->get_object_id() . '][' . $field_config['slug'] . ']';
|
53 |
+
if( isset( $field_config['options'] ) ) {
|
54 |
+
foreach ( (array) $field_config['options'] as $option_key => $option_value ) {
|
55 |
+
if ( isset( $option_value['name'] ) ) {
|
56 |
+
$field_config['options'][$option_key]['name'] =
|
57 |
+
'types-repeatable-group[' . $this->field->get_object_id() . '][' . $field_config['slug'] . '][' . $option_key . ']';
|
58 |
+
}
|
59 |
}
|
60 |
}
|
61 |
+
|
62 |
+
// check conditionals and rename field names
|
63 |
+
if( isset( $field_config['conditional'] ) && isset( $field_config['conditional']['conditions'] ) ) {
|
64 |
+
$group_fields = get_post_meta( $group_id, '_wp_types_group_fields', true );
|
65 |
+
$group_fields = explode( ',', $group_fields );
|
66 |
+
|
67 |
+
foreach( $field_config['conditional']['conditions'] as $con_key => $con_value ) {
|
68 |
+
$con_field_slug = str_replace( 'wpcf-', '', $con_value['id'] );
|
69 |
+
|
70 |
+
// only change the conditions field slug if the field is part of the rfg
|
71 |
+
if( in_array( $con_field_slug, $group_fields ) ) {
|
72 |
+
$field_config['conditional']['conditions'][ $con_key ][ 'id' ] =
|
73 |
+
'types-repeatable-group[' . $this->field->get_object_id() . '][' . $con_field_slug . ']';
|
74 |
+
}
|
75 |
+
}
|
76 |
+
|
77 |
+
// we also need to renaeme the keys of the values
|
78 |
+
// before 'wpcf-field-slug' => 1 / after: 'types-repeatable-group[item-id][field-slug]' => 1
|
79 |
+
if( isset( $field_config['conditional']['values'] ) && is_array( $field_config['conditional']['values'] ) ) {
|
80 |
+
foreach( $field_config['conditional']['values'] as $original_field_slug => $field_value ) {
|
81 |
+
$field_slug = str_replace( 'wpcf-', '', $original_field_slug );
|
82 |
+
|
83 |
+
// check if field is part of rfg
|
84 |
+
if( in_array( $field_slug, $group_fields ) ) {
|
85 |
+
$rfg_item_field_slug = 'types-repeatable-group[' . $this->field->get_object_id() . '][' . $field_slug . ']';
|
86 |
+
$field_config['conditional']['values'][$rfg_item_field_slug] = $field_value;
|
87 |
+
unset( $field_config['conditional']['values'][$original_field_slug] );
|
88 |
+
}
|
89 |
+
}
|
90 |
+
}
|
91 |
+
}
|
92 |
+
|
93 |
+
$this->field_config = $field_config;
|
94 |
}
|
95 |
|
96 |
+
return $this->field_config;
|
97 |
+
}
|
98 |
+
|
99 |
+
/**
|
100 |
+
* Render group
|
101 |
+
*
|
102 |
+
* @param bool $echo
|
103 |
+
* @param null $group_id
|
104 |
+
*
|
105 |
+
* @return mixed|void
|
106 |
+
*/
|
107 |
+
public function render( $echo = false, $group_id = null ) {
|
108 |
+
|
109 |
+
/**
|
110 |
+
* Use filter to set types-related-content to "true"
|
111 |
+
* This is necessary to make sure that all WYSIWYG fields will have unique ID
|
112 |
+
*/
|
113 |
+
add_filter( 'toolset_field_factory_get_attributes', array( $this, 'add_filter_attributes' ), 10, 2 );
|
114 |
+
|
115 |
+
$field_config = $this->get_field_config( $group_id );
|
116 |
+
|
117 |
$value_in_intermediate_format = $this->field->get_value();
|
118 |
$output = wptoolset_form_field( $this->get_form_id(), $field_config, $value_in_intermediate_format );
|
119 |
|
120 |
if ( $echo ) {
|
121 |
echo $output;
|
122 |
}
|
123 |
+
remove_filter( 'toolset_field_factory_get_attributes', array( $this, 'add_filter_attributes' ), 10, 2 );
|
124 |
+
|
125 |
|
126 |
return $output;
|
127 |
}
|
128 |
+
|
129 |
+
|
130 |
+
/**
|
131 |
+
* In case of wysiwyg fields set types-related-content to true
|
132 |
+
* to make sure that field ID is unique
|
133 |
+
* @param $attributes
|
134 |
+
* @param $field
|
135 |
+
*
|
136 |
+
* @return array
|
137 |
+
*/
|
138 |
+
public function add_filter_attributes( $attributes, $field ) {
|
139 |
+
$field_type = $field->getType();
|
140 |
+
if( 'wysiwyg' == $field_type ){
|
141 |
+
$attributes['types-related-content'] = true;
|
142 |
+
}
|
143 |
+
return $attributes;
|
144 |
+
}
|
145 |
}
|
vendor/toolset/toolset-common/inc/autoloaded/field/type/definition.php
CHANGED
@@ -101,9 +101,9 @@ class Toolset_Field_Type_Definition {
|
|
101 |
|
102 |
/**
|
103 |
* Retrieve CSS classes for a field type icon.
|
104 |
-
*
|
105 |
* To be placed in the i tag.
|
106 |
-
*
|
107 |
* @return string One or more CSS classes separated by spaces.
|
108 |
* @since 2.0
|
109 |
*/
|
@@ -112,19 +112,19 @@ class Toolset_Field_Type_Definition {
|
|
112 |
if( null != $fa_class ) {
|
113 |
return sprintf( 'fa fa-%s', esc_attr( $fa_class ) );
|
114 |
}
|
115 |
-
|
116 |
$types_class = $this->get_args( 'types-field-image', null );
|
117 |
if( null != $types_class ) {
|
118 |
return sprintf( 'types-field-icon types-field-icon-%s', esc_attr( $types_class ) );
|
119 |
}
|
120 |
-
|
121 |
-
return '';
|
122 |
}
|
123 |
|
124 |
|
125 |
/**
|
126 |
* Perform field type-specific sanitization of the field definition array.
|
127 |
-
*
|
128 |
* @link https://git.onthegosystems.com/toolset/types/wikis/database-layer/field-definition-arrays
|
129 |
* @param $definition_array
|
130 |
* @return array Sanitized definition array
|
@@ -175,7 +175,7 @@ class Toolset_Field_Type_Definition {
|
|
175 |
|
176 |
/**
|
177 |
* Make sure that the field definition array contains all necessary information.
|
178 |
-
*
|
179 |
* Note: This is a WIP, currently it sanitizes only very specific cases. It should be extended in the future.
|
180 |
*
|
181 |
* @link https://git.onthegosystems.com/toolset/types/wikis/database-layer/field-definition-arrays
|
@@ -199,9 +199,9 @@ class Toolset_Field_Type_Definition {
|
|
199 |
$definition_array = $this->sanitize_field_definition_array_generic( $definition_array );
|
200 |
|
201 |
$definition_array = $this->sanitize_numeric_validation( $definition_array );
|
202 |
-
|
203 |
$definition_array = $this->sanitize_field_definition_array_type_specific( $definition_array );
|
204 |
-
|
205 |
/**
|
206 |
* types_post_sanitize_field_definition_array
|
207 |
*
|
@@ -212,16 +212,16 @@ class Toolset_Field_Type_Definition {
|
|
212 |
* @since 2.1
|
213 |
*/
|
214 |
$definition_array = toolset_ensarr( apply_filters( 'types_post_sanitize_field_definition_array', $definition_array ) );
|
215 |
-
|
216 |
return $definition_array;
|
217 |
}
|
218 |
|
219 |
|
220 |
/**
|
221 |
* For all fields, remove the "number" validation option.
|
222 |
-
*
|
223 |
* Numeric field will override this and do the opposite instead.
|
224 |
-
*
|
225 |
* @param array $definition_array
|
226 |
* @return array
|
227 |
* @since 2.0
|
@@ -239,11 +239,11 @@ class Toolset_Field_Type_Definition {
|
|
239 |
|
240 |
/**
|
241 |
* Perform a basic "isset" sanitization of an array element.
|
242 |
-
*
|
243 |
-
* @param array $source
|
244 |
* @param string $element_name Name of the element to sanitize.
|
245 |
* @param string $default Default value for the element if not set or invalid.
|
246 |
-
* @param null|array $allowed If an array, defines the set of allowed values for the element.
|
247 |
* @param null|string $nested_key If not null, the element will be taken from $source[$nested_key][$element_name].
|
248 |
* @return array Updated source array.
|
249 |
* @since 2.1
|
@@ -251,13 +251,13 @@ class Toolset_Field_Type_Definition {
|
|
251 |
protected function sanitize_element_isset( $source, $element_name, $default = '', $allowed = null, $nested_key = null ) {
|
252 |
$src_array = ( null == $nested_key ? $source : $source[ $nested_key ] );
|
253 |
$value = toolset_getarr( $src_array, $element_name, $default, $allowed );
|
254 |
-
|
255 |
if( null == $nested_key ) {
|
256 |
$source[ $element_name ] = $value;
|
257 |
} else {
|
258 |
$source[ $nested_key ][ $element_name ] = $value;
|
259 |
}
|
260 |
-
|
261 |
return $source;
|
262 |
}
|
263 |
|
@@ -309,6 +309,9 @@ class Toolset_Field_Type_Definition {
|
|
309 |
case Toolset_Field_Type_Definition_Factory::SKYPE:
|
310 |
return new Toolset_Field_Renderer_Preview_Skype( $field, $renderer_args );
|
311 |
|
|
|
|
|
|
|
312 |
default:
|
313 |
return new Toolset_Field_Renderer_Preview_Textfield( $field, $renderer_args );
|
314 |
break;
|
101 |
|
102 |
/**
|
103 |
* Retrieve CSS classes for a field type icon.
|
104 |
+
*
|
105 |
* To be placed in the i tag.
|
106 |
+
*
|
107 |
* @return string One or more CSS classes separated by spaces.
|
108 |
* @since 2.0
|
109 |
*/
|
112 |
if( null != $fa_class ) {
|
113 |
return sprintf( 'fa fa-%s', esc_attr( $fa_class ) );
|
114 |
}
|
115 |
+
|
116 |
$types_class = $this->get_args( 'types-field-image', null );
|
117 |
if( null != $types_class ) {
|
118 |
return sprintf( 'types-field-icon types-field-icon-%s', esc_attr( $types_class ) );
|
119 |
}
|
120 |
+
|
121 |
+
return '';
|
122 |
}
|
123 |
|
124 |
|
125 |
/**
|
126 |
* Perform field type-specific sanitization of the field definition array.
|
127 |
+
*
|
128 |
* @link https://git.onthegosystems.com/toolset/types/wikis/database-layer/field-definition-arrays
|
129 |
* @param $definition_array
|
130 |
* @return array Sanitized definition array
|
175 |
|
176 |
/**
|
177 |
* Make sure that the field definition array contains all necessary information.
|
178 |
+
*
|
179 |
* Note: This is a WIP, currently it sanitizes only very specific cases. It should be extended in the future.
|
180 |
*
|
181 |
* @link https://git.onthegosystems.com/toolset/types/wikis/database-layer/field-definition-arrays
|
199 |
$definition_array = $this->sanitize_field_definition_array_generic( $definition_array );
|
200 |
|
201 |
$definition_array = $this->sanitize_numeric_validation( $definition_array );
|
202 |
+
|
203 |
$definition_array = $this->sanitize_field_definition_array_type_specific( $definition_array );
|
204 |
+
|
205 |
/**
|
206 |
* types_post_sanitize_field_definition_array
|
207 |
*
|
212 |
* @since 2.1
|
213 |
*/
|
214 |
$definition_array = toolset_ensarr( apply_filters( 'types_post_sanitize_field_definition_array', $definition_array ) );
|
215 |
+
|
216 |
return $definition_array;
|
217 |
}
|
218 |
|
219 |
|
220 |
/**
|
221 |
* For all fields, remove the "number" validation option.
|
222 |
+
*
|
223 |
* Numeric field will override this and do the opposite instead.
|
224 |
+
*
|
225 |
* @param array $definition_array
|
226 |
* @return array
|
227 |
* @since 2.0
|
239 |
|
240 |
/**
|
241 |
* Perform a basic "isset" sanitization of an array element.
|
242 |
+
*
|
243 |
+
* @param array $source
|
244 |
* @param string $element_name Name of the element to sanitize.
|
245 |
* @param string $default Default value for the element if not set or invalid.
|
246 |
+
* @param null|array $allowed If an array, defines the set of allowed values for the element.
|
247 |
* @param null|string $nested_key If not null, the element will be taken from $source[$nested_key][$element_name].
|
248 |
* @return array Updated source array.
|
249 |
* @since 2.1
|
251 |
protected function sanitize_element_isset( $source, $element_name, $default = '', $allowed = null, $nested_key = null ) {
|
252 |
$src_array = ( null == $nested_key ? $source : $source[ $nested_key ] );
|
253 |
$value = toolset_getarr( $src_array, $element_name, $default, $allowed );
|
254 |
+
|
255 |
if( null == $nested_key ) {
|
256 |
$source[ $element_name ] = $value;
|
257 |
} else {
|
258 |
$source[ $nested_key ][ $element_name ] = $value;
|
259 |
}
|
260 |
+
|
261 |
return $source;
|
262 |
}
|
263 |
|
309 |
case Toolset_Field_Type_Definition_Factory::SKYPE:
|
310 |
return new Toolset_Field_Renderer_Preview_Skype( $field, $renderer_args );
|
311 |
|
312 |
+
case Toolset_Field_Type_Definition_Factory::POST:
|
313 |
+
return new Toolset_Field_Renderer_Preview_Post( $field, $renderer_args );
|
314 |
+
|
315 |
default:
|
316 |
return new Toolset_Field_Renderer_Preview_Textfield( $field, $renderer_args );
|
317 |
break;
|
vendor/toolset/toolset-common/inc/autoloaded/field/type/definition_factory.php
CHANGED
@@ -31,7 +31,8 @@ class Toolset_Field_Type_Definition_Factory {
|
|
31 |
const URL = 'url';
|
32 |
const VIDEO = 'video';
|
33 |
const WYSIWYG = 'wysiwyg';
|
34 |
-
|
|
|
35 |
private static $instance = null;
|
36 |
|
37 |
private function __construct() { }
|
@@ -139,7 +140,7 @@ class Toolset_Field_Type_Definition_Factory {
|
|
139 |
|
140 |
/**
|
141 |
* Create the proper instance of a type definition class, based on the type slug.
|
142 |
-
*
|
143 |
* @param string $field_type_slug
|
144 |
* @param array $field_type_configuration Legacy configuration array
|
145 |
*
|
@@ -213,7 +214,7 @@ class Toolset_Field_Type_Definition_Factory {
|
|
213 |
|
214 |
/**
|
215 |
* Get a map of all field definition slugs to their properties.
|
216 |
-
*
|
217 |
* @return string[]
|
218 |
* @since 2.0
|
219 |
*/
|
@@ -247,4 +248,4 @@ class Toolset_Field_Type_Definition_Factory {
|
|
247 |
// ends in an error because of parents (abstract) $var = new self();
|
248 |
return Toolset_Field_Type_Definition_Factory::get_instance()->load_field_type_definition( $field_type_slug );
|
249 |
}
|
250 |
-
}
|
31 |
const URL = 'url';
|
32 |
const VIDEO = 'video';
|
33 |
const WYSIWYG = 'wysiwyg';
|
34 |
+
const POST = 'post';
|
35 |
+
|
36 |
private static $instance = null;
|
37 |
|
38 |
private function __construct() { }
|
140 |
|
141 |
/**
|
142 |
* Create the proper instance of a type definition class, based on the type slug.
|
143 |
+
*
|
144 |
* @param string $field_type_slug
|
145 |
* @param array $field_type_configuration Legacy configuration array
|
146 |
*
|
214 |
|
215 |
/**
|
216 |
* Get a map of all field definition slugs to their properties.
|
217 |
+
*
|
218 |
* @return string[]
|
219 |
* @since 2.0
|
220 |
*/
|
248 |
// ends in an error because of parents (abstract) $var = new self();
|
249 |
return Toolset_Field_Type_Definition_Factory::get_instance()->load_field_type_definition( $field_type_slug );
|
250 |
}
|
251 |
+
}
|
vendor/toolset/toolset-common/inc/autoloaded/i_query.php
DELETED
@@ -1,16 +0,0 @@
|
|
1 |
-
<?php
|
2 |
-
|
3 |
-
/**
|
4 |
-
* Generic interface for queries.
|
5 |
-
*
|
6 |
-
* @since m2m
|
7 |
-
*/
|
8 |
-
interface IToolset_Query {
|
9 |
-
|
10 |
-
|
11 |
-
/**
|
12 |
-
* @return array
|
13 |
-
*/
|
14 |
-
public function get_results();
|
15 |
-
|
16 |
-
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
vendor/toolset/toolset-common/inc/autoloaded/interop/handler/installer_compatibility_reporting.php
ADDED
@@ -0,0 +1,315 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
<?php
|
2 |
+
|
3 |
+
namespace OTGS\Toolset\Common\Interop\Handler;
|
4 |
+
|
5 |
+
use OTGS\Toolset\Common\Condition\Installer as installerCondition;
|
6 |
+
use OTGS\Toolset\Common\Interop\HandlerInterface;
|
7 |
+
|
8 |
+
/**
|
9 |
+
* Display the Installer's Compatibility Reporting setting wherever necessary.
|
10 |
+
*
|
11 |
+
* Specifically, we show it:
|
12 |
+
* - as a section in Toolset Settings (General tab)
|
13 |
+
* - as a first step if the clicks on the Register button on the repository listing page (Commercial tab)
|
14 |
+
* - as a orange Toolset notice if the user didn't make any choice yet
|
15 |
+
*
|
16 |
+
* @package OTGS\Toolset\Common\Interop\Handler
|
17 |
+
* @since 2.8
|
18 |
+
*/
|
19 |
+
class InstallerCompatibilityReporting implements HandlerInterface {
|
20 |
+
|
21 |
+
|
22 |
+
/** @var string Slug of the Toolset Settings section */
|
23 |
+
const SECTION_SLUG = 'toolset-installer-component-settings';
|
24 |
+
|
25 |
+
/** @var string ID of the Installer repository where we need to show the settings. */
|
26 |
+
const REPOSITORY_ID = 'toolset';
|
27 |
+
|
28 |
+
/** @var string ID of the admin notice. */
|
29 |
+
const NOTICE_ID = 'toolset-requires-installer-compatibility-reporting-setup';
|
30 |
+
|
31 |
+
// Different contexts used for rendering slightly different output.
|
32 |
+
const CONTEXT_TOOLSET_SETTINGS = 'toolset_settings';
|
33 |
+
|
34 |
+
const CONTEXT_REPOSITORY_LISTING = 'repository_listing';
|
35 |
+
|
36 |
+
const CONTEXT_ADMIN_NOTICE = 'admin_notice';
|
37 |
+
|
38 |
+
|
39 |
+
/** @var installerCondition\IsAvailable */
|
40 |
+
private $is_installer_available_condition;
|
41 |
+
|
42 |
+
|
43 |
+
/** @var installerCondition\IsToolsetSubscriptionValid */
|
44 |
+
private $is_toolset_subscription_valid_condition;
|
45 |
+
|
46 |
+
|
47 |
+
/**
|
48 |
+
* InstallerCompatibilityReporting constructor.
|
49 |
+
*
|
50 |
+
* @param installerCondition\IsAvailable|null $is_installer_available_di
|
51 |
+
* @param installerCondition\IsToolsetSubscriptionValid|null $is_toolset_subscription_valid_di
|
52 |
+
*/
|
53 |
+
public function __construct(
|
54 |
+
installerCondition\IsAvailable $is_installer_available_di = null,
|
55 |
+
installerCondition\IsToolsetSubscriptionValid $is_toolset_subscription_valid_di = null
|
56 |
+
) {
|
57 |
+
$this->is_installer_available_condition = $is_installer_available_di ?: new installerCondition\IsAvailable();
|
58 |
+
$this->is_toolset_subscription_valid_condition = $is_toolset_subscription_valid_di ?: new installerCondition\IsToolsetSubscriptionValid();
|
59 |
+
}
|
60 |
+
|
61 |
+
|
62 |
+
/**
|
63 |
+
* Hook into proper actions.
|
64 |
+
*
|
65 |
+
* This expects to be run during Toolset Common initialization.
|
66 |
+
*/
|
67 |
+
public function initialize() {
|
68 |
+
|
69 |
+
// Do nothing if there is no installer.
|
70 |
+
if( ! $this->is_installer_available_condition->is_met() ) {
|
71 |
+
return;
|
72 |
+
}
|
73 |
+
|
74 |
+
$that = $this;
|
75 |
+
$is_subscription_valid_condition = $this->is_toolset_subscription_valid_condition;
|
76 |
+
|
77 |
+
// Add the options for sending compatibility reports to the Toolset repository on the Installer's Commercial
|
78 |
+
// Plugins page.
|
79 |
+
add_filter( 'otgs_installer_repository_registration_steps', function ( $registration_steps, $repository_id ) use ( $that ) {
|
80 |
+
if ( self::REPOSITORY_ID === $repository_id ) {
|
81 |
+
$content = __( 'Choose if Toolset plugins should send reports about the active theme and plugins to toolset.com.', 'wpv-views' )
|
82 |
+
. $that->build_content( self::CONTEXT_REPOSITORY_LISTING )
|
83 |
+
. '* ' . __( 'These reports, if you decide to send them, will allow Toolset team to give you faster support. We will also use this information to send you alerts about potential compatibility issues with the theme and plugins that you use.', 'wpv-views' );
|
84 |
+
|
85 |
+
array_unshift( $registration_steps, $content );
|
86 |
+
}
|
87 |
+
|
88 |
+
return $registration_steps;
|
89 |
+
}, 10, 2 );
|
90 |
+
|
91 |
+
// Add a custom settings section.
|
92 |
+
// Note the priority. 9 means it will come before other usually present sections.
|
93 |
+
add_filter(
|
94 |
+
'toolset_filter_toolset_register_settings_general_section',
|
95 |
+
function ( $sections ) use ( $that, $is_subscription_valid_condition ) {
|
96 |
+
if ( $is_subscription_valid_condition->is_met() ) {
|
97 |
+
$sections = $that->build_section( $sections );
|
98 |
+
}
|
99 |
+
return $sections;
|
100 |
+
},
|
101 |
+
9
|
102 |
+
);
|
103 |
+
|
104 |
+
// Show the admin notice if the setting is still missing and the site has a valid Toolset subscription.
|
105 |
+
// If the subscription is not valid, the user will need to go through the registration steps will
|
106 |
+
// most probably save the setting there.
|
107 |
+
add_action( 'admin_init', function () use ( $that, $is_subscription_valid_condition ) {
|
108 |
+
if ( ! $that->has_setting() && $is_subscription_valid_condition->is_met() ) {
|
109 |
+
$that->show_notice();
|
110 |
+
}
|
111 |
+
} );
|
112 |
+
}
|
113 |
+
|
114 |
+
|
115 |
+
/**
|
116 |
+
* Build the content of the setting section, coming from Installer.
|
117 |
+
*
|
118 |
+
* Note that this may also cause Installer to enqueue some assets.
|
119 |
+
*
|
120 |
+
* @param string $context One of the CONTEXT_ constants.
|
121 |
+
*
|
122 |
+
* @return string HTML markup.
|
123 |
+
*/
|
124 |
+
public function build_content( $context ) {
|
125 |
+
ob_start();
|
126 |
+
|
127 |
+
do_action(
|
128 |
+
'otgs_installer_render_local_components_setting',
|
129 |
+
array(
|
130 |
+
'plugin_name' => 'Toolset',
|
131 |
+
'use_styles' => true, //Styles not defined yet
|
132 |
+
'use_radio' => true,
|
133 |
+
'privacy_policy_url' => $this->get_privacy_policy_url( $context ),
|
134 |
+
'plugin_uri' => 'https://toolset.com',
|
135 |
+
'plugin_repository' => self::REPOSITORY_ID,
|
136 |
+
)
|
137 |
+
);
|
138 |
+
|
139 |
+
return ob_get_clean();
|
140 |
+
|
141 |
+
}
|
142 |
+
|
143 |
+
|
144 |
+
/**
|
145 |
+
* @param string $context One of the CONTEXT_ constants.
|
146 |
+
*
|
147 |
+
* @return string URL
|
148 |
+
*/
|
149 |
+
private function get_privacy_policy_url( $context ) {
|
150 |
+
switch ( $context ) {
|
151 |
+
case self::CONTEXT_ADMIN_NOTICE:
|
152 |
+
$utm_medium = 'compatibility-message';
|
153 |
+
break;
|
154 |
+
case self::CONTEXT_REPOSITORY_LISTING:
|
155 |
+
$utm_medium = 'commercial-tab';
|
156 |
+
break;
|
157 |
+
case self::CONTEXT_TOOLSET_SETTINGS:
|
158 |
+
default:
|
159 |
+
$utm_medium = 'compatibility-settings';
|
160 |
+
break;
|
161 |
+
}
|
162 |
+
|
163 |
+
return sprintf(
|
164 |
+
'https://toolset.com/privacy-policy-and-gdpr-compliance/?utm_source=typesplugin&utm_campaign=compatibility-reporting&utm_medium=%s&utm_term=privacy-policy-and-gdpr-compliance',
|
165 |
+
$utm_medium
|
166 |
+
);
|
167 |
+
}
|
168 |
+
|
169 |
+
|
170 |
+
/**
|
171 |
+
* Add a new section to the General tab of Toolset Settings.
|
172 |
+
*
|
173 |
+
* See toolset_filter_toolset_register_settings_general_section for details.
|
174 |
+
*
|
175 |
+
* @param array $sections
|
176 |
+
*
|
177 |
+
* @return array
|
178 |
+
*/
|
179 |
+
public function build_section( $sections ) {
|
180 |
+
$sections[ self::SECTION_SLUG ] = array(
|
181 |
+
'slug' => self::SECTION_SLUG,
|
182 |
+
'title' => __( 'Fast support and compatibility alerts', 'wpv-views' ),
|
183 |
+
'content' => $this->build_content( self::CONTEXT_TOOLSET_SETTINGS ),
|
184 |
+
);
|
185 |
+
|
186 |
+
return $sections;
|
187 |
+
}
|
188 |
+
|
189 |
+
|
190 |
+
/**
|
191 |
+
* Check whether the user had aleady made a choice about the compatibility reporting.
|
192 |
+
*
|
193 |
+
* @return bool
|
194 |
+
*/
|
195 |
+
public function has_setting() {
|
196 |
+
return (bool) apply_filters( 'otgs_installer_has_local_components_setting', null, 'toolset' );
|
197 |
+
}
|
198 |
+
|
199 |
+
|
200 |
+
/**
|
201 |
+
* Build and register the admin notice that alerts about the missing setting of compatibility reporting.
|
202 |
+
*/
|
203 |
+
public function show_notice() {
|
204 |
+
$builder = new \OTGS\Toolset\Common\Utility\Admin\Notices\Builder();
|
205 |
+
|
206 |
+
$notice = $builder->createNotice( self::NOTICE_ID, 'undismissible' );
|
207 |
+
$notice->set_is_only_for_administrators( true );
|
208 |
+
$notice->set_template_path( TOOLSET_COMMON_PATH . '/templates/admin/notice/installer/compatibility-reporting-setting-needed.phtml' );
|
209 |
+
$notice->set_template_context( array(
|
210 |
+
'policy_url' => $this->get_privacy_policy_url( self::CONTEXT_ADMIN_NOTICE ),
|
211 |
+
) );
|
212 |
+
|
213 |
+
$that = $this;
|
214 |
+
|
215 |
+
// Enqueue assets only if the notice is actually about to be rendered.
|
216 |
+
$notice->add_dependency_callback( function () use ( $that ) {
|
217 |
+
$asset_manager = \Toolset_Assets_Manager::get_instance();
|
218 |
+
$asset_manager->enqueue_styles( \Toolset_Assets_Manager::STYLE_FONT_AWESOME );
|
219 |
+
$asset_manager->enqueue_scripts( \Toolset_Assets_Manager::SCRIPT_UTILS );
|
220 |
+
add_action( 'admin_print_footer_scripts', array( $that, 'print_notice_script' ) );
|
221 |
+
} );
|
222 |
+
|
223 |
+
$builder->addNotice( $notice );
|
224 |
+
}
|
225 |
+
|
226 |
+
|
227 |
+
/**
|
228 |
+
* Print additional script that controls the admin notice behaviour.
|
229 |
+
*
|
230 |
+
* - Allow to save the setting via yes/no buttons
|
231 |
+
* - Hide the notice when the setting is saved, via AJAX or elsewhere on the page
|
232 |
+
* - Reload the page if the setting was saved from the notice but there are other instances
|
233 |
+
* of the setting elsewhere on the page.
|
234 |
+
*
|
235 |
+
* Note: Deliberately not putting this into a template, to keep all the functionality in a single class.
|
236 |
+
* Basically, it handles a special case and this way we don't have to think about this case outside
|
237 |
+
* of the class.
|
238 |
+
*/
|
239 |
+
public function print_notice_script() {
|
240 |
+
|
241 |
+
// Fallback in case changes have been made in Installer. In the worst case, the action will not work.
|
242 |
+
$action_name = 'otgs_save_setting_share_local_components';
|
243 |
+
if ( defined( '\OTGS_Installer_WP_Components_Setting_Ajax::AJAX_ACTION' ) ) {
|
244 |
+
$action_name = \OTGS_Installer_WP_Components_Setting_Ajax::AJAX_ACTION;
|
245 |
+
}
|
246 |
+
|
247 |
+
$nonce = wp_create_nonce( $action_name );
|
248 |
+
|
249 |
+
?>
|
250 |
+
<script type="text/javascript">
|
251 |
+
jQuery(document).ready(function () {
|
252 |
+
|
253 |
+
var hideNotice = function () {
|
254 |
+
jQuery('div.toolset-notice-installer-compatibility-setting').fadeOut(500);
|
255 |
+
};
|
256 |
+
|
257 |
+
var applyChoice = function (choice) {
|
258 |
+
var $spinner = jQuery('.toolset-notice-installer-compatibility-setting__spinner');
|
259 |
+
WPV_Toolset.Utils.Spinner.show($spinner);
|
260 |
+
|
261 |
+
var finishProcess = function () {
|
262 |
+
var hasAnotherSettingOnPage = (0 < jQuery('.otgs-installer-component-setting input[type="radio"]').length);
|
263 |
+
// Reload the page if it contains the same setting in a different GUI. That way, that GUI will get in sync
|
264 |
+
// with the updated option. Not the most fancy solution, but this will happen very very rarely.
|
265 |
+
if (hasAnotherSettingOnPage) {
|
266 |
+
location.reload();
|
267 |
+
} else {
|
268 |
+
WPV_Toolset.Utils.Spinner.hide($spinner);
|
269 |
+
}
|
270 |
+
};
|
271 |
+
|
272 |
+
var failCallback = function () {
|
273 |
+
jQuery('.toolset-notice-installer-compatibility-setting__error').text('<?php _e( 'An error happened when saving the setting.', 'wpv-views' ); ?>');
|
274 |
+
finishProcess();
|
275 |
+
};
|
276 |
+
|
277 |
+
// Store the user's choice. Using directly an AJAX call in Installer.
|
278 |
+
jQuery.post({
|
279 |
+
async: true,
|
280 |
+
url: ajaxurl,
|
281 |
+
data: {
|
282 |
+
action: '<?php echo $action_name ?>',
|
283 |
+
nonce: '<?php echo $nonce ?>',
|
284 |
+
agree: (choice ? 1 : 0),
|
285 |
+
repo: '<?php echo self::REPOSITORY_ID ?>'
|
286 |
+
},
|
287 |
+
success: function () {
|
288 |
+
// Unfortunately, the AJAX call from Installer doesn't return any result. We have to hope.
|
289 |
+
hideNotice();
|
290 |
+
finishProcess();
|
291 |
+
},
|
292 |
+
error: failCallback
|
293 |
+
})
|
294 |
+
};
|
295 |
+
|
296 |
+
jQuery(document).on('click', '.toolset-notice-installer-compatibility-setting__accept-btn', function (e) {
|
297 |
+
e.preventDefault();
|
298 |
+
applyChoice(true);
|
299 |
+
});
|
300 |
+
|
301 |
+
jQuery(document).on('click', '.toolset-notice-installer-compatibility-setting__decline-btn', function (e) {
|
302 |
+
e.preventDefault();
|
303 |
+
applyChoice(false);
|
304 |
+
});
|
305 |
+
|
306 |
+
// If the user makes the choice in another place, e.g. the Commercial tab or Toolset Settings, we just hide the notice.
|
307 |
+
jQuery(document).on('click', '.otgs-installer-component-setting input[type="radio"]', function () {
|
308 |
+
hideNotice();
|
309 |
+
});
|
310 |
+
});
|
311 |
+
</script>
|
312 |
+
<?php
|
313 |
+
}
|
314 |
+
|
315 |
+
}
|
vendor/toolset/toolset-common/inc/autoloaded/interop/handler_interface.php
ADDED
@@ -0,0 +1,15 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
<?php
|
2 |
+
|
3 |
+
namespace OTGS\Toolset\Common\Interop;
|
4 |
+
|
5 |
+
/**
|
6 |
+
* Describes a class that handles interoperability issues with third-party software.
|
7 |
+
*
|
8 |
+
* @package OTGS\Toolset\Common\Interop
|
9 |
+
* @since 2.8
|
10 |
+
*/
|
11 |
+
interface HandlerInterface {
|
12 |
+
|
13 |
+
public function initialize();
|
14 |
+
|
15 |
+
}
|
vendor/toolset/toolset-common/inc/autoloaded/interop/mediator.php
ADDED
@@ -0,0 +1,24 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
<?php
|
2 |
+
|
3 |
+
namespace OTGS\Toolset\Common\Interop;
|
4 |
+
|
5 |
+
use OTGS\Toolset\Common\Interop\Handler as handler;
|
6 |
+
|
7 |
+
/**
|
8 |
+
* Interoperability mediator.
|
9 |
+
*
|
10 |
+
* Handle any interop tasks with non-Toolset software - including Installer, but excluding WPML (WPML plugins are
|
11 |
+
* handled in the Toolset_WPML_Compatibility class).
|
12 |
+
*
|
13 |
+
* @package OTGS\Toolset\Common\Interop
|
14 |
+
* @since 2.8
|
15 |
+
*/
|
16 |
+
class Mediator {
|
17 |
+
|
18 |
+
public function initialize() {
|
19 |
+
// If the class gets more complex, split it into subclasses, using the same design as in Types_Interop_Mediator.
|
20 |
+
$installer_compatibility_reporting = new handler\InstallerCompatibilityReporting();
|
21 |
+
$installer_compatibility_reporting->initialize();
|
22 |
+
}
|
23 |
+
|
24 |
+
}
|
vendor/toolset/toolset-common/inc/autoloaded/maintenance_mode/controller.php
ADDED
@@ -0,0 +1,112 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
<?php
|
2 |
+
|
3 |
+
namespace OTGS\Toolset\Common\MaintenanceMode;
|
4 |
+
|
5 |
+
/**
|
6 |
+
* Control (enable or disable) the WordPress maintenance mode.
|
7 |
+
*
|
8 |
+
* @package OTGS\Toolset\Common\MaintenanceMode
|
9 |
+
* @since 2.6.8
|
10 |
+
*/
|
11 |
+
class Controller {
|
12 |
+
|
13 |
+
|
14 |
+
private function get_maintenance_file_path() {
|
15 |
+
return ABSPATH . '/.maintenance';
|
16 |
+
}
|
17 |
+
|
18 |
+
|
19 |
+
/**
|
20 |
+
* Note that an existing file doesn't mean the maintenance mode is active - it can also be expired.
|
21 |
+
*
|
22 |
+
* @return bool
|
23 |
+
*/
|
24 |
+
public function maintenance_file_exists() {
|
25 |
+
return file_exists( $this->get_maintenance_file_path() );
|
26 |
+
}
|
27 |
+
|
28 |
+
|
29 |
+
/**
|
30 |
+
* Create the content of the .maintenance file.
|
31 |
+
*
|
32 |
+
* @param bool $allow_backend Allow access to backend - wp-admin/ and wp-login.php, but not AJAX calls.
|
33 |
+
* @param bool $allow_ajax Allow AJAX calls.
|
34 |
+
* @param bool $for_infinity If true, the maintenance mode will never expire. Otherwise, it will expire
|
35 |
+
* based on WordPress core logic (10min).
|
36 |
+
*
|
37 |
+
* @return bool|string Content of the .maintenance file or false on failure.
|
38 |
+
*/
|
39 |
+
private function build_maintenance_file( $allow_backend = true, $allow_ajax = false, $for_infinity = false ) {
|
40 |
+
$template = \Toolset_Output_Template_Repository::get_instance()->get( \Toolset_Output_Template_Repository::MAINTENANCE_FILE );
|
41 |
+
|
42 |
+
$context = array(
|
43 |
+
'allow_backend' => $allow_backend,
|
44 |
+
'allow_ajax' => $allow_ajax,
|
45 |
+
'upgrading_time' => ( $for_infinity ? 'time()' : time() )
|
46 |
+
);
|
47 |
+
|
48 |
+
try {
|
49 |
+
$output = \Toolset_Renderer::get_instance()->render( $template, $context, false );
|
50 |
+
} catch ( \Exception $e ) {
|
51 |
+
return false;
|
52 |
+
}
|
53 |
+
|
54 |
+
return $output;
|
55 |
+
}
|
56 |
+
|
57 |
+
|
58 |
+
/**
|
59 |
+
* Enable the maintenance mode.
|
60 |
+
*
|
61 |
+
* Note: If it's already active, the method will fail.
|
62 |
+
*
|
63 |
+
* @param bool $allow_backend Allow access to backend - wp-admin/ and wp-login.php, but not AJAX calls.
|
64 |
+
* @param bool $allow_ajax Allow AJAX calls.
|
65 |
+
* @param bool $for_infinity If true, the maintenance mode will never expire. Otherwise, it will expire
|
66 |
+
* based on WordPress core logic (10min).
|
67 |
+
*
|
68 |
+
* @return \Toolset_Result
|
69 |
+
*/
|
70 |
+
public function enable( $allow_backend = true, $allow_ajax = false, $for_infinity = false ) {
|
71 |
+
if( $this->maintenance_file_exists() ) {
|
72 |
+
return new \Toolset_Result( false, __( 'Maintenance mode is already active (.maintenance file present).', 'wpcf' ) );
|
73 |
+
}
|
74 |
+
|
75 |
+
$content = $this->build_maintenance_file( $allow_backend, $allow_ajax, $for_infinity );
|
76 |
+
|
77 |
+
if( false === $content ) {
|
78 |
+
return new \Toolset_Result( false, __( 'Unable to process the template for the ".maintenance" file.', 'wpcf' ) );
|
79 |
+
}
|
80 |
+
|
81 |
+
$result = file_put_contents( $this->get_maintenance_file_path(), $content );
|
82 |
+
|
83 |
+
if( false === $result ) {
|
84 |
+
return new \Toolset_Result( false, __( 'Couldn\'t write to the ".maintenance" file.', 'wpcf' ) );
|
85 |
+
}
|
86 |
+
|
87 |
+
return new \Toolset_Result( true, __( 'Maintenance mode enabled.', 'wpcf' ) );
|
88 |
+
}
|
89 |
+
|
90 |
+
|
91 |
+
/**
|
92 |
+
* Disable the maintenance mode.
|
93 |
+
*
|
94 |
+
* Note: If it's not enabled, the method will fail.
|
95 |
+
*
|
96 |
+
* @return \Toolset_Result
|
97 |
+
*/
|
98 |
+
public function disable() {
|
99 |
+
if( ! $this->maintenance_file_exists() ) {
|
100 |
+
return new \Toolset_Result( false, __( 'Maintenance mode is already disabled.', 'wpcf' ) );
|
101 |
+
}
|
102 |
+
|
103 |
+
$result = unlink( $this->get_maintenance_file_path() );
|
104 |
+
|
105 |
+
if( false === $result ) {
|
106 |
+
return new \Toolset_Result( false, __( 'Unable to delete the ".maintenance" file.', 'wpcf' ) );
|
107 |
+
}
|
108 |
+
|
109 |
+
return new \Toolset_Result( true, __( 'Maintenance mode disabled.', 'wpcf' ) );
|
110 |
+
}
|
111 |
+
|
112 |
+
}
|
vendor/toolset/toolset-common/inc/autoloaded/post_type/abstract.php
CHANGED
@@ -79,25 +79,32 @@ abstract class Toolset_Post_Type_Abstract implements IToolset_Post_Type {
|
|
79 |
|
80 |
/**
|
81 |
* @inheritdoc
|
82 |
-
* @return
|
83 |
*/
|
84 |
public function can_be_used_in_relationship() {
|
|
|
|
|
|
|
|
|
|
|
85 |
if( ! $this->get_wpml_compatibility()->is_wpml_active_and_configured() ) {
|
86 |
// no wpml = no limitations on relationships
|
87 |
-
return true;
|
88 |
}
|
89 |
|
90 |
if( ! $this->is_translatable() ) {
|
91 |
// no translation mode selected = all good
|
92 |
-
return true;
|
93 |
}
|
94 |
|
95 |
if( $this->is_in_display_as_translated_mode() ) {
|
96 |
// "display as translated" mode selected = all good
|
97 |
-
return true;
|
98 |
}
|
99 |
|
100 |
-
|
|
|
|
|
101 |
}
|
102 |
|
103 |
|
@@ -122,4 +129,4 @@ abstract class Toolset_Post_Type_Abstract implements IToolset_Post_Type {
|
|
122 |
return ( count( $results ) > 0 );
|
123 |
}
|
124 |
|
125 |
-
}
|
79 |
|
80 |
/**
|
81 |
* @inheritdoc
|
82 |
+
* @return Toolset_Result
|
83 |
*/
|
84 |
public function can_be_used_in_relationship() {
|
85 |
+
if ( 'attachment' == $this->get_slug() ) {
|
86 |
+
// Media post type can be used in relationships.
|
87 |
+
return new Toolset_Result( false, __( 'Media post type can not be part of a relationship.') );
|
88 |
+
}
|
89 |
+
|
90 |
if( ! $this->get_wpml_compatibility()->is_wpml_active_and_configured() ) {
|
91 |
// no wpml = no limitations on relationships
|
92 |
+
return new Toolset_Result( true );
|
93 |
}
|
94 |
|
95 |
if( ! $this->is_translatable() ) {
|
96 |
// no translation mode selected = all good
|
97 |
+
return new Toolset_Result( true );
|
98 |
}
|
99 |
|
100 |
if( $this->is_in_display_as_translated_mode() ) {
|
101 |
// "display as translated" mode selected = all good
|
102 |
+
return new Toolset_Result( true );
|
103 |
}
|
104 |
|
105 |
+
// at the end, we've decided to allow any translation mode for relationships
|
106 |
+
return new Toolset_Result( true );
|
107 |
+
// return new Toolset_Result( false, __( 'This post type uses the <strong>Translatable - only show translated items</strong> WPML translation mode. In order to use it in a relationship, switch to <strong>Translatable - use translation if available or fallback to default language</strong> mode.', 'wpcf' ) );
|
108 |
}
|
109 |
|
110 |
|
129 |
return ( count( $results ) > 0 );
|
130 |
}
|
131 |
|
132 |
+
}
|
vendor/toolset/toolset-common/inc/autoloaded/post_type/excluded_list.php
CHANGED
@@ -8,23 +8,24 @@
|
|
8 |
class Toolset_Post_Type_Exclude_List {
|
9 |
|
10 |
private static $initial_list = array(
|
11 |
-
|
12 |
-
|
13 |
-
|
|
|
|
|
|
|
|
|
|
|
|
|
14 |
'custom_css',
|
15 |
'customize_changeset',
|
16 |
-
'dd_layouts',
|
17 |
'deprecated_log',
|
18 |
'mediapage',
|
19 |
'nav_menu_item',
|
20 |
'revision',
|
21 |
-
'view',
|
22 |
-
'view-template',
|
23 |
-
'wp-types-group',
|
24 |
-
'wp-types-user-group',
|
25 |
-
'wp-types-term-group',
|
26 |
'acf-field-group',
|
27 |
-
'acf'
|
|
|
28 |
);
|
29 |
|
30 |
|
8 |
class Toolset_Post_Type_Exclude_List {
|
9 |
|
10 |
private static $initial_list = array(
|
11 |
+
Toolset_Post_Type_List::CRED_POST_FORM,
|
12 |
+
Toolset_Post_Type_List::CRED_USER_FORM,
|
13 |
+
Toolset_Post_Type_List::CRED_RELATIONSHIP_FORM,
|
14 |
+
Toolset_Post_Type_List::LAYOUT,
|
15 |
+
Toolset_Post_Type_List::VIEW_OR_WPA,
|
16 |
+
Toolset_Post_Type_List::CONTENT_TEMPLATE,
|
17 |
+
Toolset_Post_Type_List::POST_FIELD_GROUP,
|
18 |
+
Toolset_Post_Type_List::USER_FIELD_GROUP,
|
19 |
+
Toolset_Post_Type_List::TERM_FIELD_GROUP,
|
20 |
'custom_css',
|
21 |
'customize_changeset',
|
|
|
22 |
'deprecated_log',
|
23 |
'mediapage',
|
24 |
'nav_menu_item',
|
25 |
'revision',
|
|
|
|
|
|
|
|
|
|
|
26 |
'acf-field-group',
|
27 |
+
'acf',
|
28 |
+
'otgs_ps_bundles',
|
29 |
);
|
30 |
|
31 |
|
vendor/toolset/toolset-common/inc/autoloaded/post_type/from_types.php
CHANGED
@@ -326,6 +326,19 @@ class Toolset_Post_Type_From_Types extends Toolset_Post_Type_Abstract implements
|
|
326 |
}
|
327 |
|
328 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
329 |
/**
|
330 |
* @inheritdoc
|
331 |
* @return bool
|
@@ -484,7 +497,7 @@ class Toolset_Post_Type_From_Types extends Toolset_Post_Type_Abstract implements
|
|
484 |
public function set_is_repeating_field_group( $value ) {
|
485 |
$this->set_flag_to_definition( self::DEF_IS_REPEATING_FIELD_GROUP, (bool) $value );
|
486 |
if ( $value ) {
|
487 |
-
$this->definition['supports'] = array( 'post_title', 'author', 'custom-fields'
|
488 |
}
|
489 |
$this->set_is_public( false );
|
490 |
}
|
326 |
}
|
327 |
|
328 |
|
329 |
+
/**
|
330 |
+
* @param IToolset_Post_Type_Registered $registered_post_type
|
331 |
+
* @since 2.6.3
|
332 |
+
*/
|
333 |
+
public function set_registered_post_type( IToolset_Post_Type_Registered $registered_post_type ) {
|
334 |
+
if( $registered_post_type->get_slug() !== $this->get_slug() ) {
|
335 |
+
throw new InvalidArgumentException();
|
336 |
+
}
|
337 |
+
|
338 |
+
$this->registered_post_type = $registered_post_type;
|
339 |
+
}
|
340 |
+
|
341 |
+
|
342 |
/**
|
343 |
* @inheritdoc
|
344 |
* @return bool
|
497 |
public function set_is_repeating_field_group( $value ) {
|
498 |
$this->set_flag_to_definition( self::DEF_IS_REPEATING_FIELD_GROUP, (bool) $value );
|
499 |
if ( $value ) {
|
500 |
+
$this->definition['supports'] = array( 'post_title' => 1, 'author' => 1, 'custom-fields' => 1 );
|
501 |
}
|
502 |
$this->set_is_public( false );
|
503 |
}
|
vendor/toolset/toolset-common/inc/autoloaded/post_type/i_post_type.php
CHANGED
@@ -120,7 +120,7 @@ interface IToolset_Post_Type {
|
|
120 |
/**
|
121 |
* Check if the post type can be used in a relationship.
|
122 |
*
|
123 |
-
* @return
|
124 |
* @since 2.5.10
|
125 |
*/
|
126 |
public function can_be_used_in_relationship();
|
@@ -135,4 +135,4 @@ interface IToolset_Post_Type {
|
|
135 |
* @since 2.5.11
|
136 |
*/
|
137 |
public function is_involved_in_relationship();
|
138 |
-
}
|
120 |
/**
|
121 |
* Check if the post type can be used in a relationship.
|
122 |
*
|
123 |
+
* @return Toolset_Result
|
124 |
* @since 2.5.10
|
125 |
*/
|
126 |
public function can_be_used_in_relationship();
|
135 |
* @since 2.5.11
|
136 |
*/
|
137 |
public function is_involved_in_relationship();
|
138 |
+
}
|
vendor/toolset/toolset-common/inc/autoloaded/post_type/i_post_type_from_types.php
CHANGED
@@ -84,4 +84,18 @@ interface IToolset_Post_Type_From_Types extends IToolset_Post_Type {
|
|
84 |
* @return bool Corresponds with the disabled status of the post type.
|
85 |
*/
|
86 |
public function is_disabled();
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
87 |
}
|
84 |
* @return bool Corresponds with the disabled status of the post type.
|
85 |
*/
|
86 |
public function is_disabled();
|
87 |
+
|
88 |
+
|
89 |
+
/**
|
90 |
+
* @return IToolset_Post_Type_Registered|null
|
91 |
+
* @since 2.6.3
|
92 |
+
*/
|
93 |
+
public function get_registered_post_type();
|
94 |
+
|
95 |
+
|
96 |
+
/**
|
97 |
+
* @param IToolset_Post_Type_Registered $registered_post_type
|
98 |
+
* @since 2.6.3
|
99 |
+
*/
|
100 |
+
public function set_registered_post_type( IToolset_Post_Type_Registered $registered_post_type );
|
101 |
}
|
vendor/toolset/toolset-common/inc/autoloaded/post_type/list.php
ADDED
@@ -0,0 +1,25 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
<?php
|
2 |
+
|
3 |
+
/**
|
4 |
+
* Enum class for holding a list of special, well-known post types.
|
5 |
+
*
|
6 |
+
* @since 2.6.4
|
7 |
+
*/
|
8 |
+
abstract class Toolset_Post_Type_List {
|
9 |
+
|
10 |
+
const VIEW_OR_WPA = 'view';
|
11 |
+
const CONTENT_TEMPLATE = 'view-template';
|
12 |
+
|
13 |
+
const POST_FIELD_GROUP = 'wp-types-group';
|
14 |
+
const USER_FIELD_GROUP = 'wp-types-user-group';
|
15 |
+
const TERM_FIELD_GROUP = 'wp-types-term-group';
|
16 |
+
|
17 |
+
const CRED_POST_FORM = 'cred-form';
|
18 |
+
const CRED_USER_FORM = 'cred-user-form';
|
19 |
+
const CRED_RELATIONSHIP_FORM = 'cred_rel_form';
|
20 |
+
|
21 |
+
const LAYOUT = 'dd_layouts';
|
22 |
+
|
23 |
+
const ATTACHMENT = 'attachment';
|
24 |
+
|
25 |
+
}
|
vendor/toolset/toolset-common/inc/autoloaded/post_type/repository.php
CHANGED
@@ -73,9 +73,24 @@ class Toolset_Post_Type_Repository {
|
|
73 |
|
74 |
$this->post_types = $this->load_all_post_types();
|
75 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
76 |
$this->is_initialized = true;
|
77 |
}
|
78 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
79 |
/**
|
80 |
* Load all post types known on the site
|
81 |
*
|
@@ -91,6 +106,33 @@ class Toolset_Post_Type_Repository {
|
|
91 |
return $post_types;
|
92 |
}
|
93 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
94 |
/**
|
95 |
* Load post types currently registered on the site.
|
96 |
*
|
@@ -127,7 +169,7 @@ class Toolset_Post_Type_Repository {
|
|
127 |
*/
|
128 |
private function load_post_types_from_types( $registered_post_types ) {
|
129 |
|
130 |
-
$custom_types = get_option( self::POST_TYPES_OPTION_NAME, array() );
|
131 |
|
132 |
$results = $registered_post_types;
|
133 |
foreach ( $custom_types as $slug => $definition ) {
|
73 |
|
74 |
$this->post_types = $this->load_all_post_types();
|
75 |
|
76 |
+
if( ! did_action( 'init' ) ) {
|
77 |
+
// Run immediately after CPTs have been registered by Types.
|
78 |
+
//
|
79 |
+
// This is necessary if the post type repository gets initialized too early
|
80 |
+
// and does the initial loading before CPTs in Types are registered (at init:10 or earlier).
|
81 |
+
add_action( 'init', array( $this, 'finish_loading_registered_post_types' ), 11 );
|
82 |
+
}
|
83 |
+
|
84 |
$this->is_initialized = true;
|
85 |
}
|
86 |
|
87 |
+
/**
|
88 |
+
* Reloads all post types to the repository
|
89 |
+
*/
|
90 |
+
public function refresh_all_post_types() {
|
91 |
+
$this->post_types = $this->load_all_post_types();
|
92 |
+
}
|
93 |
+
|
94 |
/**
|
95 |
* Load all post types known on the site
|
96 |
*
|
106 |
return $post_types;
|
107 |
}
|
108 |
|
109 |
+
|
110 |
+
/**
|
111 |
+
* Load registered post types again and add them where they are missing:
|
112 |
+
*
|
113 |
+
* - if the CPT is defined in Types, add it to the IToolset_Post_Type_From_Types object (which will
|
114 |
+
* let the CPT object know that it's registered (== active))
|
115 |
+
* - if the CPT is not from Types but hasn't been stored in the repository at all, add it.
|
116 |
+
*
|
117 |
+
* @since 2.6.3
|
118 |
+
*/
|
119 |
+
public function finish_loading_registered_post_types() {
|
120 |
+
$post_types = $this->load_registered_post_types();
|
121 |
+
|
122 |
+
foreach( $post_types as $registered_post_type ) {
|
123 |
+
// The post type was newly registered, just add it to the repository.
|
124 |
+
if( ! array_key_exists( $registered_post_type->get_slug(), $this->post_types ) ) {
|
125 |
+
$this->post_types[ $registered_post_type->get_slug() ] = $registered_post_type;
|
126 |
+
}
|
127 |
+
|
128 |
+
/** @var IToolset_Post_Type_From_Types|IToolset_Post_Type $stored_post_type */
|
129 |
+
$stored_post_type = $this->post_types[ $registered_post_type->get_slug() ];
|
130 |
+
if( $stored_post_type->is_from_types() ) {
|
131 |
+
$stored_post_type->set_registered_post_type( $registered_post_type );
|
132 |
+
}
|
133 |
+
}
|
134 |
+
}
|
135 |
+
|
136 |
/**
|
137 |
* Load post types currently registered on the site.
|
138 |
*
|
169 |
*/
|
170 |
private function load_post_types_from_types( $registered_post_types ) {
|
171 |
|
172 |
+
$custom_types = toolset_ensarr( get_option( self::POST_TYPES_OPTION_NAME, array() ) );
|
173 |
|
174 |
$results = $registered_post_types;
|
175 |
foreach ( $custom_types as $slug => $definition ) {
|
vendor/toolset/toolset-common/inc/autoloaded/postmeta_access/loader.php
ADDED
@@ -0,0 +1,23 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
<?php
|
2 |
+
|
3 |
+
/**
|
4 |
+
* Hijack xxx_postmeta calls.
|
5 |
+
*
|
6 |
+
* Depending on the status of the m2m functionality, a proper adjustment class will be instantiated
|
7 |
+
* to allow for setting or getting legacy relationship postmeta-based entries.
|
8 |
+
*
|
9 |
+
* @since m2m
|
10 |
+
*/
|
11 |
+
class Toolset_Postmeta_Access_Loader {
|
12 |
+
|
13 |
+
|
14 |
+
public function initialize() {
|
15 |
+
|
16 |
+
if( apply_filters( 'toolset_is_m2m_enabled', false ) ) {
|
17 |
+
$adjustments = new Toolset_Postmeta_Access_M2m();
|
18 |
+
$adjustments->initialize();
|
19 |
+
}
|
20 |
+
|
21 |
+
}
|
22 |
+
|
23 |
+
}
|
vendor/toolset/toolset-common/inc/autoloaded/postmeta_access/m2m.php
ADDED
@@ -0,0 +1,348 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
<?php
|
2 |
+
|
3 |
+
/**
|
4 |
+
* Hijack add/update/get_post_meta native functions for legacy relationships converted to m2m.
|
5 |
+
*
|
6 |
+
* This assumes m2m is enabled.
|
7 |
+
*
|
8 |
+
* See Toolset_Postmeta_Access_Loader for details.
|
9 |
+
*
|
10 |
+
* @since m2m
|
11 |
+
*/
|
12 |
+
class Toolset_Postmeta_Access_M2m {
|
13 |
+
|
14 |
+
const KEY_START = '_wpcf_belongs_';
|
15 |
+
const KEY_START_LENGTH = 14;
|
16 |
+
|
17 |
+
const KEY_END = '_id';
|
18 |
+
const KEY_END_LENGTH = 3;
|
19 |
+
|
20 |
+
private $legacy_relationships = null;
|
21 |
+
|
22 |
+
private $array_filter_args = null;
|
23 |
+
|
24 |
+
public function initialize() {
|
25 |
+
$types_has_legacy_relationships_condition = new Toolset_Condition_Plugin_Types_Has_Legacy_Relationships();
|
26 |
+
$types_has_legacy_relationships = $types_has_legacy_relationships_condition->is_met();
|
27 |
+
|
28 |
+
if (
|
29 |
+
! $types_has_legacy_relationships
|
30 |
+
/**
|
31 |
+
* Force the initialization of this class.
|
32 |
+
*
|
33 |
+
* @since m2m
|
34 |
+
*/
|
35 |
+
&& ! apply_filters( 'toolset_force_legacy_relationships_meta_access', false )
|
36 |
+
) {
|
37 |
+
return;
|
38 |
+
}
|
39 |
+
|
40 |
+
/**
|
41 |
+
* Init the legacy postmeta access hooks, at init:11 so Types can register its post types at init:10.
|
42 |
+
*
|
43 |
+
* @since m2m
|
44 |
+
*/
|
45 |
+
add_action( 'init', array( $this, 'init' ), 11 );
|
46 |
+
}
|
47 |
+
|
48 |
+
/**
|
49 |
+
* Init the legacy postmeta access hooks.
|
50 |
+
*
|
51 |
+
* Note that this legacy layer is only available after init:11 since Types post types are registered at init:10.
|
52 |
+
*
|
53 |
+
* @since m2m
|
54 |
+
*/
|
55 |
+
public function init() {
|
56 |
+
do_action( 'toolset_do_m2m_full_init' );
|
57 |
+
|
58 |
+
// Cache the legacy relationships, and deactivate the hooks above if needed.
|
59 |
+
$this->set_legacy_relationships();
|
60 |
+
if ( ! empty( $this->legacy_relationships ) ) {
|
61 |
+
// Hijack the native set/update/get posteta functions
|
62 |
+
add_action( 'add_post_meta', array( $this, 'add_post_meta' ), 10, 3 );
|
63 |
+
add_action( 'update_post_meta', array( $this, 'update_post_meta' ), 10, 4 );
|
64 |
+
add_filter( 'get_post_metadata', array( $this, 'get_post_metadata' ), 10, 4 );
|
65 |
+
add_filter( 'toolset_postmeta_access_m2m_get_post_metadata', array( $this, 'get_post_metadata' ), 10, 4 );
|
66 |
+
}
|
67 |
+
|
68 |
+
// Deactivate this class hijcking in case there is nothing to hijack
|
69 |
+
add_action( 'toolset_deactivate_postmeta_access_m2m', array( $this, 'deactivate_postmeta_access_m2m' ) );
|
70 |
+
}
|
71 |
+
|
72 |
+
/**
|
73 |
+
* Transform a postmeta adding action into an association creation.
|
74 |
+
*
|
75 |
+
* @param $object_id int ID of the object metadata is for
|
76 |
+
* @param @meta_key string Metadata key
|
77 |
+
* @param $_meta_value mixed Metadata value
|
78 |
+
*
|
79 |
+
* @since m2m
|
80 |
+
*/
|
81 |
+
public function add_post_meta( $object_id, $meta_key, $_meta_value ) {
|
82 |
+
// It has to run update_post_meta because the IPT could exist and needs to be deleted.
|
83 |
+
$this->update_post_meta( null, $object_id, $meta_key, $_meta_value );
|
84 |
+
}
|
85 |
+
|
86 |
+
/**
|
87 |
+
* Transform a postmeta updating action into an association updating.
|
88 |
+
*
|
89 |
+
* @param $meta_id int ID of the metadata entry to update
|
90 |
+
* @param $object_id int ID of the object metadata is for
|
91 |
+
* @param @meta_key string Metadata key
|
92 |
+
* @param $_meta_value mixed Metadata value
|
93 |
+
*
|
94 |
+
* @since m2m
|
95 |
+
*/
|
96 |
+
public function update_post_meta( $meta_id, $object_id, $meta_key, $_meta_value ) {
|
97 |
+
$parent_type = $this->get_parent_type_from_meta_key( $meta_key );
|
98 |
+
if ( ! $parent_type ) {
|
99 |
+
return;
|
100 |
+
}
|
101 |
+
|
102 |
+
if ( ! Toolset_Utils::is_nonnegative_numeric( $_meta_value ) ) {
|
103 |
+
return;
|
104 |
+
}
|
105 |
+
|
106 |
+
$child_post_type = get_post_type( $object_id );
|
107 |
+
$matching_relationships = $this->get_legacy_relationship( $parent_type, $child_post_type );
|
108 |
+
|
109 |
+
if ( null === $matching_relationships ) {
|
110 |
+
return;
|
111 |
+
}
|
112 |
+
|
113 |
+
$current_relationship = key( $matching_relationships );
|
114 |
+
$relationship_definition = isset( $this->legacy_relationships[ $current_relationship ] )
|
115 |
+
? $this->legacy_relationships[ $current_relationship ]['definition']
|
116 |
+
: null;
|
117 |
+
|
118 |
+
if ( null === $relationship_definition ) {
|
119 |
+
return;
|
120 |
+
}
|
121 |
+
|
122 |
+
$current_association = $this->get_association( $current_relationship, $object_id );
|
123 |
+
|
124 |
+
if ( $current_association instanceof Toolset_Association ) {
|
125 |
+
if ( $_meta_value === $current_association->get_element_id( Toolset_Relationship_Role::PARENT ) ) {
|
126 |
+
// There is an association already for those two items, so do nothing else.
|
127 |
+
return;
|
128 |
+
}
|
129 |
+
$relationship_driver = $relationship_definition->get_driver();
|
130 |
+
// Delete the previously existing association between child and any parent in the known relationship, if any.
|
131 |
+
$relationship_driver->delete_association( $current_association );
|
132 |
+
}
|
133 |
+
|
134 |
+
// Create an association between child and parent in the known relationship.
|
135 |
+
// It should be one2many, so no intermediary fields are required.
|
136 |
+
try {
|
137 |
+
$relationship_definition->create_association( $_meta_value, $object_id );
|
138 |
+
} catch( Exception $e ) {
|
139 |
+
|
140 |
+
}
|
141 |
+
}
|
142 |
+
|
143 |
+
/**
|
144 |
+
* Transform a postmeta getting action into an association get.
|
145 |
+
*
|
146 |
+
* @param $return ull|array|string The value to return
|
147 |
+
* @param $object_id int ID of the object metadata is for
|
148 |
+
* @param @meta_key string Metadata key
|
149 |
+
* @param $single bool Whether to return only the first value of the specified $meta_key
|
150 |
+
*
|
151 |
+
* @return mixed Will be an array if $single is false. Will be value of meta data field if $single is true.
|
152 |
+
*
|
153 |
+
* @since m2m
|
154 |
+
*/
|
155 |
+
public function get_post_metadata( $return, $object_id, $meta_key, $single ) {
|
156 |
+
$parent_type = $this->get_parent_type_from_meta_key( $meta_key );
|
157 |
+
if ( ! $parent_type ) {
|
158 |
+
return $return;
|
159 |
+
}
|
160 |
+
|
161 |
+
$child_post_type = get_post_type( $object_id );
|
162 |
+
$matching_relationships = $this->get_legacy_relationship( $parent_type, $child_post_type );
|
163 |
+
|
164 |
+
if ( null === $matching_relationships ) {
|
165 |
+
return $return;
|
166 |
+
}
|
167 |
+
|
168 |
+
$current_relationship = key( $matching_relationships );
|
169 |
+
$parent_id = $this->get_association_parent_id( $current_relationship, $object_id );
|
170 |
+
|
171 |
+
if ( null === $parent_id ) {
|
172 |
+
return $single
|
173 |
+
? ''
|
174 |
+
: array();
|
175 |
+
}
|
176 |
+
|
177 |
+
return $single
|
178 |
+
? $parent_id
|
179 |
+
: array( $parent_id );
|
180 |
+
}
|
181 |
+
|
182 |
+
/**
|
183 |
+
* Remove the hooks to postmeta functions, on demand.
|
184 |
+
* Fired here when after getting legacy relationships, there is none.
|
185 |
+
*
|
186 |
+
* @since m2m
|
187 |
+
*/
|
188 |
+
public function deactivate_postmeta_access_m2m() {
|
189 |
+
remove_action( 'add_post_meta', array( $this, 'add_post_meta' ), 10, 3 );
|
190 |
+
remove_action( 'update_post_meta', array( $this, 'update_post_meta' ), 10, 4 );
|
191 |
+
remove_filter( 'get_post_metadata', array( $this, 'get_post_metadata' ), 10, 4 );
|
192 |
+
remove_filter( 'toolset_postmeta_access_m2m_get_post_metadata', array( $this, 'get_post_metadata' ), 10, 4 );
|
193 |
+
}
|
194 |
+
|
195 |
+
/**
|
196 |
+
* Check whether a given postmeta key matches the _wpcf_belongs_{slug}_id structure,
|
197 |
+
* and return the parent post type slug if available.
|
198 |
+
*
|
199 |
+
* @param $meta_key string The meta key
|
200 |
+
*
|
201 |
+
* @return bool|string False when the meta key does not match the pattern, the parent type slug otherwise.
|
202 |
+
*
|
203 |
+
* @since m2m
|
204 |
+
*/
|
205 |
+
private function get_parent_type_from_meta_key( $meta_key ) {
|
206 |
+
if ( substr( $meta_key, 0, self::KEY_START_LENGTH ) !== self::KEY_START ) {
|
207 |
+
return false;
|
208 |
+
}
|
209 |
+
|
210 |
+
if ( substr( $meta_key, - self::KEY_END_LENGTH ) !== self::KEY_END ) {
|
211 |
+
return false;
|
212 |
+
}
|
213 |
+
|
214 |
+
$parent_type = substr( $meta_key, self::KEY_START_LENGTH );
|
215 |
+
$parent_type = substr( $parent_type, 0, - self::KEY_END_LENGTH );
|
216 |
+
return $parent_type;
|
217 |
+
}
|
218 |
+
|
219 |
+
/**
|
220 |
+
* Cache the existing legacy relationships on this site.
|
221 |
+
*
|
222 |
+
* @note It deactivates the hijacking of postmeta functions if no legacy relationships are found.
|
223 |
+
*
|
224 |
+
* @since m2m
|
225 |
+
*/
|
226 |
+
private function set_legacy_relationships() {
|
227 |
+
if ( null !== $this->legacy_relationships ) {
|
228 |
+
return;
|
229 |
+
}
|
230 |
+
|
231 |
+
$relationship_query = new Toolset_Relationship_Query_V2();
|
232 |
+
$definitions = $relationship_query
|
233 |
+
->add( $relationship_query->is_legacy( true ) )
|
234 |
+
->get_results();
|
235 |
+
|
236 |
+
|
237 |
+
if ( empty( $definitions ) ) {
|
238 |
+
$this->legacy_relationships = array();
|
239 |
+
}
|
240 |
+
|
241 |
+
foreach ( $definitions as $definition ) {
|
242 |
+
$this->legacy_relationships[ $definition->get_slug() ] = array(
|
243 |
+
'parent' => $definition->get_parent_type()->get_types(),
|
244 |
+
'child' => $definition->get_child_type()->get_types(),
|
245 |
+
'definition' => $definition
|
246 |
+
);
|
247 |
+
}
|
248 |
+
}
|
249 |
+
|
250 |
+
/**
|
251 |
+
* Get a legacy relationship by its parent and child post types.
|
252 |
+
*
|
253 |
+
* @param $parent_type string The parent post type slug
|
254 |
+
* @param $child_type string The child post type slug
|
255 |
+
*
|
256 |
+
* @return null|array The list of matching legacy relationships, or null otherwise.
|
257 |
+
*
|
258 |
+
* @since m2m
|
259 |
+
*/
|
260 |
+
private function get_legacy_relationship( $parent_type, $child_type ) {
|
261 |
+
if ( empty( $this->legacy_relationships ) ) {
|
262 |
+
return null;
|
263 |
+
}
|
264 |
+
|
265 |
+
$this->array_filter_args = array(
|
266 |
+
'parent' => $parent_type,
|
267 |
+
'child' => $child_type
|
268 |
+
);
|
269 |
+
|
270 |
+
$matching_relationships = array_filter( $this->legacy_relationships, array( $this, 'filter_by_roles' ) );
|
271 |
+
|
272 |
+
$this->array_filter_args = null;
|
273 |
+
|
274 |
+
if ( empty( $matching_relationships ) ) {
|
275 |
+
return null;
|
276 |
+
}
|
277 |
+
|
278 |
+
return $matching_relationships;
|
279 |
+
}
|
280 |
+
|
281 |
+
/**
|
282 |
+
* Helper to filter an array of relationships by its parent and child post types.
|
283 |
+
*
|
284 |
+
* @param $relationship array
|
285 |
+
*
|
286 |
+
* @return bool
|
287 |
+
*
|
288 |
+
* @since m2m
|
289 |
+
*/
|
290 |
+
private function filter_by_roles( $relationship ) {
|
291 |
+
return (
|
292 |
+
in_array( $this->array_filter_args['parent'], $relationship['parent'] )
|
293 |
+
&& in_array( $this->array_filter_args['child'], $relationship['child'] )
|
294 |
+
);
|
295 |
+
}
|
296 |
+
|
297 |
+
/**
|
298 |
+
* Get a specific association given a child, and a relationship.
|
299 |
+
* Works because legacy relationships are one-to-many, hence the child can only have one associated parent.
|
300 |
+
*
|
301 |
+
* @param $elationship_slug string The relationship slug
|
302 |
+
* @param $child_id int The child ID
|
303 |
+
*
|
304 |
+
* @return null|Toolset_Association
|
305 |
+
*
|
306 |
+
* @since m2m
|
307 |
+
*/
|
308 |
+
private function get_association( $relationshup_slug, $child_id ) {
|
309 |
+
$association_query = new Toolset_Association_Query_V2();
|
310 |
+
$associations = $association_query
|
311 |
+
->add( $association_query->relationship_slug( $relationshup_slug ) )
|
312 |
+
->limit( 1 )
|
313 |
+
->add( $association_query->element_id_and_domain( $child_id, Toolset_Element_Domain::POSTS, new Toolset_Relationship_Role_Child() ) )
|
314 |
+
->get_results();
|
315 |
+
|
316 |
+
if ( empty( $associations ) ) {
|
317 |
+
return null;
|
318 |
+
}
|
319 |
+
return reset( $associations );
|
320 |
+
}
|
321 |
+
|
322 |
+
/**
|
323 |
+
* Get a specific association parent ID given a child, and a relationship.
|
324 |
+
* Works because legacy relationships are one-to-many, hence the child can only have one associated parent.
|
325 |
+
*
|
326 |
+
* @param $elationship_slug string The relationship slug
|
327 |
+
* @param $child_id int The child ID
|
328 |
+
*
|
329 |
+
* @return null|int
|
330 |
+
*
|
331 |
+
* @since m2m
|
332 |
+
*/
|
333 |
+
private function get_association_parent_id( $relationshup_slug, $child_id ) {
|
334 |
+
$association_query = new Toolset_Association_Query_V2();
|
335 |
+
$associations_ids = $association_query
|
336 |
+
->add( $association_query->relationship_slug( $relationshup_slug ) )
|
337 |
+
->return_element_ids( new Toolset_Relationship_Role_Parent() )
|
338 |
+
->limit( 1 )
|
339 |
+
->add( $association_query->element_id_and_domain( $child_id, Toolset_Element_Domain::POSTS, new Toolset_Relationship_Role_Child() ) )
|
340 |
+
->get_results();
|
341 |
+
|
342 |
+
if ( empty( $associations_ids ) ) {
|
343 |
+
return null;
|
344 |
+
}
|
345 |
+
return reset( $associations_ids );
|
346 |
+
}
|
347 |
+
|
348 |
+
}
|
vendor/toolset/toolset-common/inc/autoloaded/relationship_service.php
CHANGED
@@ -54,7 +54,6 @@ class Toolset_Relationship_Service {
|
|
54 |
* @param IToolset_Relationship_Definition $relationship
|
55 |
* @param $child_id
|
56 |
* @param null $parent_slug
|
57 |
-
*s
|
58 |
*
|
59 |
* @return bool|int[]|IToolset_Association[]|IToolset_Element[]
|
60 |
*/
|
@@ -66,20 +65,69 @@ class Toolset_Relationship_Service {
|
|
66 |
if( ! $this->is_m2m_enabled() ) {
|
67 |
return false;
|
68 |
}
|
|
|
|
|
|
|
|
|
|
|
69 |
|
70 |
-
$
|
71 |
-
|
72 |
-
|
73 |
-
|
74 |
-
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
75 |
|
76 |
if ( $parent_slug ) {
|
77 |
-
$
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
78 |
}
|
79 |
|
80 |
-
return $
|
81 |
}
|
82 |
|
|
|
83 |
/**
|
84 |
* Function to find parend id by relationship and child id
|
85 |
*
|
@@ -97,64 +145,129 @@ class Toolset_Relationship_Service {
|
|
97 |
if( ! $this->is_m2m_enabled() ) {
|
98 |
return false;
|
99 |
}
|
100 |
-
|
101 |
-
$
|
102 |
-
|
103 |
-
|
104 |
-
|
105 |
-
);
|
106 |
|
107 |
if ( $child_slug ) {
|
108 |
-
$
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
109 |
}
|
110 |
|
111 |
-
return $
|
112 |
}
|
113 |
|
114 |
/**
|
115 |
* Function to find intermediary post id by relationship and child id
|
116 |
*
|
117 |
* @param IToolset_Relationship_Definition $relationship
|
118 |
-
* @param $
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
119 |
*
|
120 |
* @return bool|int[]|IToolset_Association[]|IToolset_Element[]
|
121 |
*
|
|
|
122 |
*/
|
123 |
-
public function
|
|
|
|
|
|
|
|
|
124 |
if( ! $this->is_m2m_enabled() ) {
|
125 |
return false;
|
126 |
}
|
|
|
|
|
|
|
|
|
|
|
127 |
|
128 |
-
$
|
129 |
-
|
130 |
-
|
131 |
-
|
132 |
-
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
133 |
|
134 |
-
return $
|
135 |
}
|
136 |
|
137 |
/**
|
138 |
* Function to find intermediary post id by relationship and parent id
|
139 |
*
|
140 |
* @param IToolset_Relationship_Definition $relationship
|
141 |
-
* @param $
|
142 |
*
|
143 |
* @return bool|int[]|IToolset_Association[]|IToolset_Element[]
|
144 |
*
|
145 |
*/
|
146 |
-
public function find_intermediary_by_relationship_and_parent_id( IToolset_Relationship_Definition $relationship, $
|
147 |
if( ! $this->is_m2m_enabled() ) {
|
148 |
return false;
|
149 |
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
150 |
|
151 |
-
$
|
152 |
-
Toolset_Association_Query::QUERY_RELATIONSHIP_SLUG => $relationship->get_slug(),
|
153 |
-
Toolset_Association_Query::QUERY_PARENT_ID => $post_id,
|
154 |
-
Toolset_Association_Query::OPTION_RETURN => Toolset_Association_Query::RETURN_ASSOCIATIONS
|
155 |
-
);
|
156 |
-
|
157 |
-
return $this->query_association( $qry_args );
|
158 |
}
|
159 |
|
160 |
/**
|
@@ -189,21 +302,21 @@ class Toolset_Relationship_Service {
|
|
189 |
if( ! $this->is_m2m_enabled() ) {
|
190 |
return false;
|
191 |
}
|
192 |
-
|
193 |
-
$
|
194 |
-
|
195 |
-
|
196 |
-
|
197 |
-
|
198 |
-
|
199 |
-
|
200 |
-
|
201 |
-
|
202 |
-
|
203 |
-
|
204 |
-
|
205 |
-
|
206 |
-
return $
|
207 |
}
|
208 |
|
209 |
/**
|
@@ -225,41 +338,49 @@ class Toolset_Relationship_Service {
|
|
225 |
/**
|
226 |
* Find associations (IToolset_Associations[]) by parent id
|
227 |
*
|
228 |
-
* @param $
|
229 |
*
|
230 |
* @return IToolset_Association[]
|
231 |
*/
|
232 |
-
private function find_associations_by_parent_id( $
|
233 |
-
$
|
234 |
-
|
235 |
-
|
236 |
-
|
237 |
-
|
238 |
-
|
|
|
|
|
|
|
|
|
|
|
|
|
239 |
|
240 |
-
return
|
241 |
-
? $associations_parent
|
242 |
-
: array();
|
243 |
}
|
244 |
|
245 |
/**
|
246 |
* Find associations (IToolset_Associations[]) by child id
|
247 |
*
|
248 |
-
* @param $
|
249 |
*
|
250 |
* @return IToolset_Association[]
|
251 |
*/
|
252 |
-
private function find_associations_by_child_id( $
|
253 |
-
$
|
254 |
-
|
255 |
-
|
256 |
-
|
257 |
-
|
258 |
-
|
|
|
|
|
|
|
|
|
|
|
|
|
259 |
|
260 |
-
return
|
261 |
-
? $associations_child
|
262 |
-
: array();
|
263 |
}
|
264 |
|
265 |
/**
|
@@ -305,7 +426,7 @@ class Toolset_Relationship_Service {
|
|
305 |
* @return bool|int
|
306 |
*/
|
307 |
public function legacy_find_parent_id_by_child_id_and_parent_slug( $child_id, $parent_slug ) {
|
308 |
-
if(
|
309 |
return false;
|
310 |
}
|
311 |
|
54 |
* @param IToolset_Relationship_Definition $relationship
|
55 |
* @param $child_id
|
56 |
* @param null $parent_slug
|
|
|
57 |
*
|
58 |
* @return bool|int[]|IToolset_Association[]|IToolset_Element[]
|
59 |
*/
|
65 |
if( ! $this->is_m2m_enabled() ) {
|
66 |
return false;
|
67 |
}
|
68 |
+
|
69 |
+
$query = new Toolset_Association_Query_V2();
|
70 |
+
|
71 |
+
$query->add( $query->relationship( $relationship ) );
|
72 |
+
$query->add( $query->child_id( $child_id, Toolset_Element_Domain::POSTS ) );
|
73 |
|
74 |
+
if ( $parent_slug ) {
|
75 |
+
$query->add( $query->has_domain_and_type( Toolset_Element_Domain::POSTS, $parent_slug, new Toolset_Relationship_Role_Parent() ) );
|
76 |
+
}
|
77 |
+
|
78 |
+
$results = $query
|
79 |
+
->return_element_ids( new Toolset_Relationship_Role_Parent() )
|
80 |
+
->limit( 1 )
|
81 |
+
->get_results();
|
82 |
+
|
83 |
+
if ( ! $results || empty( $results ) ) {
|
84 |
+
return false;
|
85 |
+
}
|
86 |
+
|
87 |
+
return $results;
|
88 |
+
}
|
89 |
+
|
90 |
+
/**
|
91 |
+
* Function to find parent ID by relationship and intermediary post ID
|
92 |
+
* @param IToolset_Relationship_Definition $relationship
|
93 |
+
* @param $intermediary_post_id
|
94 |
+
* @param null $parent_slug
|
95 |
+
*
|
96 |
+
* @return bool|int[]|IToolset_Association[]|IToolset_Element[]
|
97 |
+
*
|
98 |
+
* @since 2.6.7
|
99 |
+
*/
|
100 |
+
public function find_parent_id_by_relationship_and_intermediary_post_id(
|
101 |
+
IToolset_Relationship_Definition $relationship,
|
102 |
+
$intermediary_post_id,
|
103 |
+
$parent_slug = null
|
104 |
+
) {
|
105 |
+
if( ! $this->is_m2m_enabled() ) {
|
106 |
+
return false;
|
107 |
+
}
|
108 |
+
|
109 |
+
$query = new Toolset_Association_Query_V2();
|
110 |
+
|
111 |
+
$query->add( $query->relationship( $relationship ) );
|
112 |
+
$query->add( $query->intermediary_id( $intermediary_post_id ) );
|
113 |
|
114 |
if ( $parent_slug ) {
|
115 |
+
$query->add( $query->has_domain_and_type( Toolset_Element_Domain::POSTS, $parent_slug, new Toolset_Relationship_Role_Parent() ) );
|
116 |
+
}
|
117 |
+
|
118 |
+
$results = $query
|
119 |
+
->return_element_ids( new Toolset_Relationship_Role_Parent() )
|
120 |
+
->limit( 1 )
|
121 |
+
->get_results();
|
122 |
+
|
123 |
+
if ( ! $results || empty( $results ) ) {
|
124 |
+
return false;
|
125 |
}
|
126 |
|
127 |
+
return $results;
|
128 |
}
|
129 |
|
130 |
+
|
131 |
/**
|
132 |
* Function to find parend id by relationship and child id
|
133 |
*
|
145 |
if( ! $this->is_m2m_enabled() ) {
|
146 |
return false;
|
147 |
}
|
148 |
+
|
149 |
+
$query = new Toolset_Association_Query_V2();
|
150 |
+
|
151 |
+
$query->add( $query->relationship( $relationship ) );
|
152 |
+
$query->add( $query->parent_id( $parent_id, Toolset_Element_Domain::POSTS ) );
|
|
|
153 |
|
154 |
if ( $child_slug ) {
|
155 |
+
$query->add( $query->has_domain_and_type( Toolset_Element_Domain::POSTS, $child_slug, new Toolset_Relationship_Role_Child() ) );
|
156 |
+
}
|
157 |
+
|
158 |
+
$results = $query
|
159 |
+
->return_element_ids( new Toolset_Relationship_Role_Child() )
|
160 |
+
->limit( 1 )
|
161 |
+
->get_results();
|
162 |
+
|
163 |
+
if ( ! $results || empty( $results ) ) {
|
164 |
+
return false;
|
165 |
}
|
166 |
|
167 |
+
return $results;
|
168 |
}
|
169 |
|
170 |
/**
|
171 |
* Function to find intermediary post id by relationship and child id
|
172 |
*
|
173 |
* @param IToolset_Relationship_Definition $relationship
|
174 |
+
* @param $child_id
|
175 |
+
*
|
176 |
+
* @return bool|int[]|IToolset_Association[]|IToolset_Element[]
|
177 |
+
*
|
178 |
+
*/
|
179 |
+
public function find_intermediary_by_relationship_and_child_id( IToolset_Relationship_Definition $relationship, $child_id ) {
|
180 |
+
if( ! $this->is_m2m_enabled() ) {
|
181 |
+
return false;
|
182 |
+
}
|
183 |
+
|
184 |
+
$query = new Toolset_Association_Query_V2();
|
185 |
+
|
186 |
+
$query->add( $query->relationship( $relationship ) );
|
187 |
+
$query->add( $query->child_id( $child_id, Toolset_Element_Domain::POSTS ) );
|
188 |
+
|
189 |
+
$results = $query
|
190 |
+
->return_association_instances()
|
191 |
+
->limit( 1 )
|
192 |
+
->get_results();
|
193 |
+
|
194 |
+
if ( ! $results || empty( $results ) ) {
|
195 |
+
return false;
|
196 |
+
}
|
197 |
+
|
198 |
+
return $results;
|
199 |
+
}
|
200 |
+
|
201 |
+
/**
|
202 |
+
* Function to find Child ID by relationship and intermediary post ID
|
203 |
+
*
|
204 |
+
* @param IToolset_Relationship_Definition $relationship
|
205 |
+
* @param $intermediary_post_id
|
206 |
+
* @param null $child_slug
|
207 |
*
|
208 |
* @return bool|int[]|IToolset_Association[]|IToolset_Element[]
|
209 |
*
|
210 |
+
* @since 2.6.7
|
211 |
*/
|
212 |
+
public function find_child_id_by_relationship_and_intermediary_post_id(
|
213 |
+
IToolset_Relationship_Definition $relationship,
|
214 |
+
$intermediary_post_id,
|
215 |
+
$child_slug = null
|
216 |
+
) {
|
217 |
if( ! $this->is_m2m_enabled() ) {
|
218 |
return false;
|
219 |
}
|
220 |
+
|
221 |
+
$query = new Toolset_Association_Query_V2();
|
222 |
+
|
223 |
+
$query->add( $query->relationship( $relationship ) );
|
224 |
+
$query->add( $query->intermediary_id( $intermediary_post_id ) );
|
225 |
|
226 |
+
if ( $child_slug ) {
|
227 |
+
$query->add( $query->has_domain_and_type( Toolset_Element_Domain::POSTS, $child_slug, new Toolset_Relationship_Role_Child() ) );
|
228 |
+
}
|
229 |
+
|
230 |
+
$results = $query
|
231 |
+
->return_element_ids( new Toolset_Relationship_Role_Child() )
|
232 |
+
->limit( 1 )
|
233 |
+
->get_results();
|
234 |
+
|
235 |
+
if ( ! $results || empty( $results ) ) {
|
236 |
+
return false;
|
237 |
+
}
|
238 |
|
239 |
+
return $results;
|
240 |
}
|
241 |
|
242 |
/**
|
243 |
* Function to find intermediary post id by relationship and parent id
|
244 |
*
|
245 |
* @param IToolset_Relationship_Definition $relationship
|
246 |
+
* @param $parent_id
|
247 |
*
|
248 |
* @return bool|int[]|IToolset_Association[]|IToolset_Element[]
|
249 |
*
|
250 |
*/
|
251 |
+
public function find_intermediary_by_relationship_and_parent_id( IToolset_Relationship_Definition $relationship, $parent_id ) {
|
252 |
if( ! $this->is_m2m_enabled() ) {
|
253 |
return false;
|
254 |
}
|
255 |
+
|
256 |
+
$query = new Toolset_Association_Query_V2();
|
257 |
+
|
258 |
+
$query->add( $query->relationship( $relationship ) );
|
259 |
+
$query->add( $query->parent_id( $parent_id, Toolset_Element_Domain::POSTS ) );
|
260 |
+
|
261 |
+
$results = $query
|
262 |
+
->return_association_instances()
|
263 |
+
->limit( 1 )
|
264 |
+
->get_results();
|
265 |
+
|
266 |
+
if ( ! $results || empty( $results ) ) {
|
267 |
+
return false;
|
268 |
+
}
|
269 |
|
270 |
+
return $results;
|
|
|
|
|
|
|
|
|
|
|
|
|
271 |
}
|
272 |
|
273 |
/**
|
302 |
if( ! $this->is_m2m_enabled() ) {
|
303 |
return false;
|
304 |
}
|
305 |
+
|
306 |
+
$query = new Toolset_Association_Query_V2();
|
307 |
+
|
308 |
+
$query->add( $query->parent_id( $parent_id, Toolset_Element_Domain::POSTS ) );
|
309 |
+
|
310 |
+
$results = $query
|
311 |
+
->return_element_ids( new Toolset_Relationship_Role_Child() )
|
312 |
+
->limit( PHP_INT_MAX )
|
313 |
+
->get_results();
|
314 |
+
|
315 |
+
if ( ! $results || empty( $results ) ) {
|
316 |
+
return false;
|
317 |
+
}
|
318 |
+
|
319 |
+
return $results;
|
320 |
}
|
321 |
|
322 |
/**
|
338 |
/**
|
339 |
* Find associations (IToolset_Associations[]) by parent id
|
340 |
*
|
341 |
+
* @param $parent_id
|
342 |
*
|
343 |
* @return IToolset_Association[]
|
344 |
*/
|
345 |
+
private function find_associations_by_parent_id( $parent_id ) {
|
346 |
+
$query = new Toolset_Association_Query_V2();
|
347 |
+
|
348 |
+
$query->add( $query->parent_id( $parent_id, Toolset_Element_Domain::POSTS ) );
|
349 |
+
|
350 |
+
$results = $query
|
351 |
+
->return_association_instances()
|
352 |
+
->limit( PHP_INT_MAX )
|
353 |
+
->get_results();
|
354 |
+
|
355 |
+
if ( ! $results || empty( $results ) ) {
|
356 |
+
return array();
|
357 |
+
}
|
358 |
|
359 |
+
return $results;
|
|
|
|
|
360 |
}
|
361 |
|
362 |
/**
|
363 |
* Find associations (IToolset_Associations[]) by child id
|
364 |
*
|
365 |
+
* @param $child_id
|
366 |
*
|
367 |
* @return IToolset_Association[]
|
368 |
*/
|
369 |
+
private function find_associations_by_child_id( $child_id ) {
|
370 |
+
$query = new Toolset_Association_Query_V2();
|
371 |
+
|
372 |
+
$query->add( $query->child_id( $child_id, Toolset_Element_Domain::POSTS ) );
|
373 |
+
|
374 |
+
$results = $query
|
375 |
+
->return_association_instances()
|
376 |
+
->limit( PHP_INT_MAX )
|
377 |
+
->get_results();
|
378 |
+
|
379 |
+
if ( ! $results || empty( $results ) ) {
|
380 |
+
return array();
|
381 |
+
}
|
382 |
|
383 |
+
return $results;
|
|
|
|
|
384 |
}
|
385 |
|
386 |
/**
|
426 |
* @return bool|int
|
427 |
*/
|
428 |
public function legacy_find_parent_id_by_child_id_and_parent_slug( $child_id, $parent_slug ) {
|
429 |
+
if( $this->is_m2m_enabled() ) {
|
430 |
return false;
|
431 |
}
|
432 |
|
vendor/toolset/toolset-common/inc/autoloaded/renderer/output_template_repository.php
CHANGED
@@ -14,17 +14,13 @@ class Toolset_Output_Template_Repository extends Toolset_Output_Template_Reposit
|
|
14 |
//
|
15 |
|
16 |
const FAUX_TEMPLATE = 'faux_template.twig';
|
|
|
17 |
|
18 |
|
19 |
/**
|
20 |
* @var array Template definitions.
|
21 |
*/
|
22 |
-
private $templates = array(
|
23 |
-
self::FAUX_TEMPLATE => array(
|
24 |
-
'base_path' => null,
|
25 |
-
'namespaces' => array()
|
26 |
-
)
|
27 |
-
);
|
28 |
|
29 |
|
30 |
/** @var Toolset_Output_Template_Repository */
|
@@ -43,6 +39,24 @@ class Toolset_Output_Template_Repository extends Toolset_Output_Template_Reposit
|
|
43 |
}
|
44 |
|
45 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
46 |
/**
|
47 |
* @inheritdoc
|
48 |
* @return string
|
@@ -52,6 +66,12 @@ class Toolset_Output_Template_Repository extends Toolset_Output_Template_Reposit
|
|
52 |
}
|
53 |
|
54 |
|
|
|
|
|
|
|
|
|
|
|
|
|
55 |
/**
|
56 |
* Get the array with template definitions.
|
57 |
*
|
14 |
//
|
15 |
|
16 |
const FAUX_TEMPLATE = 'faux_template.twig';
|
17 |
+
const MAINTENANCE_FILE = 'maintenance.twig';
|
18 |
|
19 |
|
20 |
/**
|
21 |
* @var array Template definitions.
|
22 |
*/
|
23 |
+
private $templates = array();
|
|
|
|
|
|
|
|
|
|
|
24 |
|
25 |
|
26 |
/** @var Toolset_Output_Template_Repository */
|
39 |
}
|
40 |
|
41 |
|
42 |
+
public function __construct(
|
43 |
+
Toolset_Output_Template_Factory $template_factory_di = null,
|
44 |
+
Toolset_Constants $constants_di = null
|
45 |
+
) {
|
46 |
+
parent::__construct( $template_factory_di, $constants_di );
|
47 |
+
|
48 |
+
$this->templates = array(
|
49 |
+
self::FAUX_TEMPLATE => array(
|
50 |
+
'base_path' => null,
|
51 |
+
'namespaces' => array()
|
52 |
+
),
|
53 |
+
self::MAINTENANCE_FILE => array(
|
54 |
+
'base_path' => $this->get_templates_dir_base_path()
|
55 |
+
)
|
56 |
+
);
|
57 |
+
}
|
58 |
+
|
59 |
+
|
60 |
/**
|
61 |
* @inheritdoc
|
62 |
* @return string
|
66 |
}
|
67 |
|
68 |
|
69 |
+
private function get_templates_dir_base_path() {
|
70 |
+
return $this->constants->constant( 'TOOLSET_COMMON_PATH' ) . '/templates';
|
71 |
+
}
|
72 |
+
|
73 |
+
|
74 |
+
|
75 |
/**
|
76 |
* Get the array with template definitions.
|
77 |
*
|
vendor/toolset/toolset-common/inc/autoloaded/shortcode/attr/item/gui/base.php
ADDED
@@ -0,0 +1,160 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
<?php
|
2 |
+
|
3 |
+
/**
|
4 |
+
* Abstract factory for the item attribute GUI selector.
|
5 |
+
*
|
6 |
+
* Extended depending on the relationship cardinality.
|
7 |
+
*
|
8 |
+
* @since m2m
|
9 |
+
*/
|
10 |
+
abstract class Toolset_Shortcode_Attr_Item_Gui_Base {
|
11 |
+
|
12 |
+
|
13 |
+
/**
|
14 |
+
* @var Toolset_Relationship_Definition
|
15 |
+
*/
|
16 |
+
protected $relationship_definition;
|
17 |
+
|
18 |
+
|
19 |
+
/**
|
20 |
+
* @var null|WP_Post_Type
|
21 |
+
*/
|
22 |
+
protected $current_post_object;
|
23 |
+
|
24 |
+
|
25 |
+
/**
|
26 |
+
* @var string
|
27 |
+
*/
|
28 |
+
protected $option_name;
|
29 |
+
|
30 |
+
|
31 |
+
/**
|
32 |
+
* @var Toolset_Post_Type_Repository
|
33 |
+
*/
|
34 |
+
protected $post_type_repository;
|
35 |
+
|
36 |
+
|
37 |
+
/**
|
38 |
+
* @var string[]
|
39 |
+
*/
|
40 |
+
protected $parent_types;
|
41 |
+
|
42 |
+
|
43 |
+
/**
|
44 |
+
* @var string[]
|
45 |
+
*/
|
46 |
+
protected $child_types;
|
47 |
+
|
48 |
+
|
49 |
+
/**
|
50 |
+
* @var string
|
51 |
+
*/
|
52 |
+
protected $intermediary_type;
|
53 |
+
|
54 |
+
|
55 |
+
/**
|
56 |
+
* @var string[]
|
57 |
+
*/
|
58 |
+
protected $options = array();
|
59 |
+
|
60 |
+
|
61 |
+
function __construct(
|
62 |
+
Toolset_Relationship_Definition $relationship_definition,
|
63 |
+
$current_post_object,
|
64 |
+
$option_name ,
|
65 |
+
Toolset_Post_Type_Repository $post_type_repository
|
66 |
+
) {
|
67 |
+
$this->relationship_definition = $relationship_definition;
|
68 |
+
$this->current_post_object = $current_post_object;
|
69 |
+
$this->option_name = $option_name;
|
70 |
+
$this->post_type_repository = $post_type_repository;
|
71 |
+
|
72 |
+
$this->parent_types = $relationship_definition->get_parent_type()->get_types();
|
73 |
+
$this->child_types = $relationship_definition->get_child_type()->get_types();
|
74 |
+
$this->intermediary_type = $relationship_definition->get_intermediary_post_type();
|
75 |
+
|
76 |
+
$this->set_options();
|
77 |
+
}
|
78 |
+
|
79 |
+
|
80 |
+
/**
|
81 |
+
* Get the option name attribute.
|
82 |
+
*
|
83 |
+
* @return string
|
84 |
+
*
|
85 |
+
* @since m2m
|
86 |
+
*/
|
87 |
+
public function get_option_name() {
|
88 |
+
return $this->option_name;
|
89 |
+
}
|
90 |
+
|
91 |
+
|
92 |
+
/**
|
93 |
+
* Get the generated options.
|
94 |
+
*
|
95 |
+
* @return string[]
|
96 |
+
*
|
97 |
+
* @since m2m
|
98 |
+
*/
|
99 |
+
public function get_options() {
|
100 |
+
return $this->options;
|
101 |
+
}
|
102 |
+
|
103 |
+
|
104 |
+
/**
|
105 |
+
* Get the label of a given role in the current relationship.
|
106 |
+
*
|
107 |
+
* @param string $role
|
108 |
+
* @param bool $singular
|
109 |
+
*
|
110 |
+
* @return null|string
|
111 |
+
*
|
112 |
+
* @since m2m
|
113 |
+
*/
|
114 |
+
public function get_post_type_label_by_role( $role, $singular = false ) {
|
115 |
+
$types_for_role = $this->relationship_definition->get_element_type( $role )->get_types();
|
116 |
+
$first_type_for_role = reset( $types_for_role );
|
117 |
+
|
118 |
+
$post_type_for_role = $this->post_type_repository->get( $first_type_for_role );
|
119 |
+
|
120 |
+
if ( null === $post_type_for_role ) {
|
121 |
+
return null;
|
122 |
+
}
|
123 |
+
|
124 |
+
$requested_label_name = ( $singular )
|
125 |
+
? Toolset_Post_Type_Labels::SINGULAR_NAME
|
126 |
+
: Toolset_Post_Type_Labels::NAME;
|
127 |
+
|
128 |
+
return $post_type_for_role->get_label( $requested_label_name );
|
129 |
+
}
|
130 |
+
|
131 |
+
|
132 |
+
/**
|
133 |
+
* Define options, to be implemnted by children classes.
|
134 |
+
*
|
135 |
+
* @since m2m
|
136 |
+
*/
|
137 |
+
abstract protected function set_options();
|
138 |
+
|
139 |
+
/**
|
140 |
+
* Compose documentation links and add the GA arguments.
|
141 |
+
*
|
142 |
+
* @param string $url
|
143 |
+
* @param array $args
|
144 |
+
* @param string $anchor
|
145 |
+
*
|
146 |
+
* @return string
|
147 |
+
*
|
148 |
+
* @since m2m
|
149 |
+
*/
|
150 |
+
protected function get_documentation_link( $url = '', $args = array(), $anchor = '' ) {
|
151 |
+
if ( ! empty( $args ) ) {
|
152 |
+
$url = esc_url( add_query_arg( $args, $url ) );
|
153 |
+
}
|
154 |
+
if ( ! empty( $anchor ) ) {
|
155 |
+
$url .= '#' . esc_attr( $anchor );
|
156 |
+
}
|
157 |
+
return $url;
|
158 |
+
}
|
159 |
+
|
160 |
+
}
|
vendor/toolset/toolset-common/inc/autoloaded/shortcode/attr/item/gui/factory.php
ADDED
@@ -0,0 +1,106 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
<?php
|
2 |
+
|
3 |
+
/**
|
4 |
+
* Factory for the item attribute GUI selector, based on the relationship cardinality.
|
5 |
+
*
|
6 |
+
* @since m2m
|
7 |
+
*/
|
8 |
+
class Toolset_Shortcode_Attr_Item_Gui_Factory {
|
9 |
+
|
10 |
+
|
11 |
+
/**
|
12 |
+
* @var Toolset_Relationship_Definition
|
13 |
+
*/
|
14 |
+
private $relationship_definition;
|
15 |
+
|
16 |
+
|
17 |
+
/**
|
18 |
+
* @var null|WP_Post_Type
|
19 |
+
*/
|
20 |
+
private $current_post_object;
|
21 |
+
|
22 |
+
|
23 |
+
/**
|
24 |
+
* @var string
|
25 |
+
*/
|
26 |
+
private $option_name = '';
|
27 |
+
|
28 |
+
|
29 |
+
/**
|
30 |
+
* @var string
|
31 |
+
*/
|
32 |
+
private $cardinality;
|
33 |
+
|
34 |
+
|
35 |
+
/**
|
36 |
+
* @var Toolset_Post_Type_Repository
|
37 |
+
*/
|
38 |
+
private $post_type_repository;
|
39 |
+
|
40 |
+
|
41 |
+
/**
|
42 |
+
* @var Toolset_Shortcode_Attr_Item_Gui_Base
|
43 |
+
*/
|
44 |
+
private $provider;
|
45 |
+
|
46 |
+
|
47 |
+
function __construct( Toolset_Relationship_Definition $relationship_definition, $current_post_object, $option_name ) {
|
48 |
+
$this->relationship_definition = $relationship_definition;
|
49 |
+
$this->current_post_object = $current_post_object;
|
50 |
+
$this->option_name = $option_name;
|
51 |
+
|
52 |
+
$this->cardinality = $relationship_definition->get_cardinality()->get_type();
|
53 |
+
|
54 |
+
$this->post_type_repository = Toolset_Post_Type_Repository::get_instance();
|
55 |
+
|
56 |
+
$this->create();
|
57 |
+
}
|
58 |
+
|
59 |
+
|
60 |
+
/**
|
61 |
+
* Fill options per relationship cardinality.
|
62 |
+
*
|
63 |
+
* @since m2m
|
64 |
+
*/
|
65 |
+
private function create() {
|
66 |
+
switch( $this->cardinality ) {
|
67 |
+
case 'many-to-many':
|
68 |
+
$this->provider = new Toolset_Shortcode_Attr_Item_Gui_M2m(
|
69 |
+
$this->relationship_definition,
|
70 |
+
$this->current_post_object,
|
71 |
+
$this->option_name,
|
72 |
+
$this->post_type_repository
|
73 |
+
);
|
74 |
+
break;
|
75 |
+
case 'one-to-many':
|
76 |
+
$this->provider = new Toolset_Shortcode_Attr_Item_Gui_O2m(
|
77 |
+
$this->relationship_definition,
|
78 |
+
$this->current_post_object,
|
79 |
+
$this->option_name,
|
80 |
+
$this->post_type_repository
|
81 |
+
);
|
82 |
+
break;
|
83 |
+
case 'one-to-one':
|
84 |
+
$this->provider = new Toolset_Shortcode_Attr_Item_Gui_O2o(
|
85 |
+
$this->relationship_definition,
|
86 |
+
$this->current_post_object,
|
87 |
+
$this->option_name,
|
88 |
+
$this->post_type_repository
|
89 |
+
);
|
90 |
+
break;
|
91 |
+
}
|
92 |
+
}
|
93 |
+
|
94 |
+
|
95 |
+
/**
|
96 |
+
* Get the options registered by the right provider based on the current relationship cardinality.
|
97 |
+
*
|
98 |
+
* @return string[]
|
99 |
+
*
|
100 |
+
* @since m2m
|
101 |
+
*/
|
102 |
+
public function get_options() {
|
103 |
+
return $this->provider->get_options();
|
104 |
+
}
|
105 |
+
|
106 |
+
}
|
vendor/toolset/toolset-common/inc/autoloaded/shortcode/attr/item/gui/m2m.php
ADDED
@@ -0,0 +1,474 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
<?php
|
2 |
+
|
3 |
+
/**
|
4 |
+
* item attribute GUI selector provider for many-to-many relationships.
|
5 |
+
*
|
6 |
+
* @since m2m
|
7 |
+
*/
|
8 |
+
class Toolset_Shortcode_Attr_Item_Gui_M2m extends Toolset_Shortcode_Attr_Item_Gui_Base {
|
9 |
+
|
10 |
+
|
11 |
+
/**
|
12 |
+
* Set options for post selectors on M2M relationships.
|
13 |
+
*
|
14 |
+
* @since m2m
|
15 |
+
*/
|
16 |
+
protected function set_options() {
|
17 |
+
if ( null === $this->intermediary_type ) {
|
18 |
+
$this->set_many_to_many_disabled();
|
19 |
+
return;
|
20 |
+
}
|
21 |
+
|
22 |
+
if ( null === $this->current_post_object ) {
|
23 |
+
|
24 |
+
if (
|
25 |
+
in_array( toolset_getget('get_page'), array( 'views-editor', 'view-archives-editor' ) )
|
26 |
+
|| (
|
27 |
+
is_admin()
|
28 |
+
&& in_array( toolset_getget('page'), array( 'views-editor', 'view-archives-editor' ) )
|
29 |
+
)
|
30 |
+
) {
|
31 |
+
$this->set_many_to_many_view_loop();
|
32 |
+
return;
|
33 |
+
}
|
34 |
+
|
35 |
+
if (
|
36 |
+
in_array( toolset_getget('get_page'), array( 'ct-editor' ) )
|
37 |
+
|| (
|
38 |
+
is_admin()
|
39 |
+
&& in_array( toolset_getget('page'), array( 'ct-editor' ) )
|
40 |
+
)
|
41 |
+
) {
|
42 |
+
$this->set_many_to_many_content_template();
|
43 |
+
return;
|
44 |
+
}
|
45 |
+
|
46 |
+
$this->set_many_to_many_disabled();
|
47 |
+
return;
|
48 |
+
|
49 |
+
}
|
50 |
+
|
51 |
+
if ( $this->current_post_object->name === $this->intermediary_type ) {
|
52 |
+
$this->set_many_to_many_current_intermediary();
|
53 |
+
return;
|
54 |
+
}
|
55 |
+
|
56 |
+
$this->set_many_to_many_disabled();
|
57 |
+
return;
|
58 |
+
}
|
59 |
+
|
60 |
+
|
61 |
+
/**
|
62 |
+
* Set a disabled option.
|
63 |
+
*
|
64 |
+
* M2M relationships usualy do not allow to display data from related objects,
|
65 |
+
* so a disabled option is rendered in most cases.
|
66 |
+
*
|
67 |
+
* @since m2m
|
68 |
+
*/
|
69 |
+
private function set_many_to_many_disabled() {
|
70 |
+
$option_parent = new Toolset_Shortcode_Attr_Item_Gui_Option(
|
71 |
+
$this->relationship_definition,
|
72 |
+
Toolset_Relationship_Role::PARENT,
|
73 |
+
$this
|
74 |
+
);
|
75 |
+
$option_parent->set_property( 'is_disabled', true );
|
76 |
+
$option_parent->set_property(
|
77 |
+
'pointer_content',
|
78 |
+
'<h3>' . sprintf(
|
79 |
+
__( '%1$s (many-to-many relationship)', 'wpv-views' ),
|
80 |
+
$this->relationship_definition->get_display_name()
|
81 |
+
) . '</h3><p>' . sprintf(
|
82 |
+
__( 'To display the %1$s that are connected to each %2$s, you will need to create a View.', 'wpv-views' ),
|
83 |
+
'<strong>' . $this->get_post_type_label_by_role( Toolset_Relationship_Role::CHILD ) . '</strong>',
|
84 |
+
'<strong>' . $this->get_post_type_label_by_role( Toolset_Relationship_Role::PARENT, true ) . '</strong>'
|
85 |
+
) . '</p><p>' . sprintf(
|
86 |
+
__( '%1$sDocumentation %2$s%3$s', 'wpv-views' ),
|
87 |
+
'<a href="'
|
88 |
+
. $this->get_documentation_link(
|
89 |
+
'https://toolset.com/documentation/post-relationships/how-to-display-related-posts-with-toolset/',
|
90 |
+
array(
|
91 |
+
'utm_source' => 'postselector',
|
92 |
+
'utm_campaign' => 'm2m',
|
93 |
+
'utm_medium' => 'post-selector-documentation-link',
|
94 |
+
'utm_term' => 'Documentation'
|
95 |
+
),
|
96 |
+
'displaying-many-related-items'
|
97 |
+
)
|
98 |
+
. '" target="_blank">',
|
99 |
+
'<i class="fa fa-external-link"></i>',
|
100 |
+
'</a>'
|
101 |
+
) . '</p>'
|
102 |
+
);
|
103 |
+
$this->options[] = $option_parent->get_option();
|
104 |
+
|
105 |
+
$option_child = new Toolset_Shortcode_Attr_Item_Gui_Option(
|
106 |
+
$this->relationship_definition,
|
107 |
+
Toolset_Relationship_Role::CHILD,
|
108 |
+
$this
|
109 |
+
);
|
110 |
+
$option_child->set_property( 'is_disabled', true );
|
111 |
+
$option_child->set_property(
|
112 |
+
'pointer_content',
|
113 |
+
'<h3>' . sprintf(
|
114 |
+
__( '%1$s (many-to-many relationship)', 'wpv-views' ),
|
115 |
+
$this->relationship_definition->get_display_name()
|
116 |
+
) . '</h3><p>' . sprintf(
|
117 |
+
__( 'To display the %1$s that are connected to each %2$s, you will need to create a View.', 'wpv-views' ),
|
118 |
+
'<strong>' . $this->get_post_type_label_by_role( Toolset_Relationship_Role::PARENT ) . '</strong>',
|
119 |
+
'<strong>' . $this->get_post_type_label_by_role( Toolset_Relationship_Role::CHILD, true ) . '</strong>'
|
120 |
+
) . '</p><p>' . sprintf(
|
121 |
+
__( '%1$sDocumentation %2$s%3$s', 'wpv-views' ),
|
122 |
+
'<a href="'
|
123 |
+
. $this->get_documentation_link(
|
124 |
+
'https://toolset.com/documentation/post-relationships/how-to-display-related-posts-with-toolset/',
|
125 |
+
array(
|
126 |
+
'utm_source' => 'postselector',
|
127 |
+
'utm_campaign' => 'm2m',
|
128 |
+
'utm_medium' => 'post-selector-documentation-link',
|
129 |
+
'utm_term' => 'Documentation'
|
130 |
+
),
|
131 |
+
'displaying-many-related-items'
|
132 |
+
)
|
133 |
+
. '" target="_blank">',
|
134 |
+
'<i class="fa fa-external-link"></i>',
|
135 |
+
'</a>'
|
136 |
+
) . '</p>'
|
137 |
+
);
|
138 |
+
$this->options[] = $option_child->get_option();
|
139 |
+
|
140 |
+
if ( null != $this->intermediary_type ) {
|
141 |
+
|
142 |
+
$option_intermediary = new Toolset_Shortcode_Attr_Item_Gui_Option(
|
143 |
+
$this->relationship_definition,
|
144 |
+
Toolset_Relationship_Role::INTERMEDIARY,
|
145 |
+
$this
|
146 |
+
);
|
147 |
+
$option_intermediary->set_property( 'is_disabled', true );
|
148 |
+
$option_intermediary->set_property(
|
149 |
+
'pointer_content',
|
150 |
+
'<h3>' . sprintf(
|
151 |
+
__( '%1$s (many-to-many relationship)', 'wpv-views' ),
|
152 |
+
$this->relationship_definition->get_display_name()
|
153 |
+
) . '</h3><p>' . sprintf(
|
154 |
+
__( '%1$s connects with %2$s through %3$s.', 'wpv-views' ),
|
155 |
+
'<strong>' . $this->get_post_type_label_by_role( Toolset_Relationship_Role::PARENT ) . '</strong>',
|
156 |
+
'<strong>' . $this->get_post_type_label_by_role( Toolset_Relationship_Role::CHILD ) . '</strong>',
|
157 |
+
'<strong>' . $this->get_post_type_label_by_role( Toolset_Relationship_Role::INTERMEDIARY ) . '</strong>'
|
158 |
+
) . '</p><p>' . sprintf(
|
159 |
+
__( 'To display %1$s you need to use a View that will list %2$s or %3$s and include a filter by the %4$s relationship.', 'wpv-views' ),
|
160 |
+
'<strong>' . $this->get_post_type_label_by_role( Toolset_Relationship_Role::INTERMEDIARY ) . '</strong>',
|
161 |
+
'<strong>' . $this->get_post_type_label_by_role( Toolset_Relationship_Role::PARENT ) . '</strong>',
|
162 |
+
'<strong>' . $this->get_post_type_label_by_role( Toolset_Relationship_Role::CHILD ) . '</strong>',
|
163 |
+
$this->relationship_definition->get_display_name()
|
164 |
+
) . '</p><p>' . sprintf(
|
165 |
+
__( '%1$sDocumentation %2$s%3$s', 'wpv-views' ),
|
166 |
+
'<a href="'
|
167 |
+
. $this->get_documentation_link(
|
168 |
+
'https://toolset.com/documentation/post-relationships/how-to-display-related-posts-with-toolset/',
|
169 |
+
array(
|
170 |
+
'utm_source' => 'postselector',
|
171 |
+
'utm_campaign' => 'm2m',
|
172 |
+
'utm_medium' => 'post-selector-documentation-link',
|
173 |
+
'utm_term' => 'Documentation'
|
174 |
+
),
|
175 |
+
'displaying-many-related-items'
|
176 |
+
)
|
177 |
+
. '" target="_blank">',
|
178 |
+
'<i class="fa fa-external-link"></i>',
|
179 |
+
'</a>'
|
180 |
+
) . '</p>'
|
181 |
+
);
|
182 |
+
$this->options[] = $option_intermediary->get_option();
|
183 |
+
|
184 |
+
}
|
185 |
+
}
|
186 |
+
|
187 |
+
|
188 |
+
/**
|
189 |
+
* Set the post selector options in Views and WPAs loops.
|
190 |
+
*
|
191 |
+
* In those cases, you can:
|
192 |
+
* - display parent and child data from the IPT.
|
193 |
+
* - display the IPT data from parent and child posts when the association is well defined.
|
194 |
+
*
|
195 |
+
* @since m2m
|
196 |
+
*/
|
197 |
+
private function set_many_to_many_view_loop() {
|
198 |
+
$option_parent = new Toolset_Shortcode_Attr_Item_Gui_Option(
|
199 |
+
$this->relationship_definition,
|
200 |
+
Toolset_Relationship_Role::PARENT,
|
201 |
+
$this
|
202 |
+
);
|
203 |
+
$option_parent->set_property(
|
204 |
+
'pointer_content',
|
205 |
+
'<h3>' . sprintf(
|
206 |
+
__( '%1$s (many-to-many relationship)', 'wpv-views' ),
|
207 |
+
$this->relationship_definition->get_display_name()
|
208 |
+
) . '</h3><p>' . sprintf(
|
209 |
+
__( 'You can display the related %1$s if this View is set to display %2$s.', 'wpv-views' ),
|
210 |
+
'<strong>' . $this->get_post_type_label_by_role( Toolset_Relationship_Role::PARENT, true ) . '</strong>',
|
211 |
+
'<strong>' . $this->get_post_type_label_by_role( Toolset_Relationship_Role::INTERMEDIARY ) . '</strong>'
|
212 |
+
) . '</p><p>' . sprintf(
|
213 |
+
__( '%1$sDocumentation %2$s%3$s', 'wpv-views' ),
|
214 |
+
'<a href="'
|
215 |
+
. $this->get_documentation_link(
|
216 |
+
'https://toolset.com/documentation/post-relationships/how-to-display-related-posts-with-toolset/',
|
217 |
+
array(
|
218 |
+
'utm_source' => 'postselector',
|
219 |
+
'utm_campaign' => 'm2m',
|
220 |
+
'utm_medium' => 'post-selector-documentation-link',
|
221 |
+
'utm_term' => 'Documentation'
|
222 |
+
),
|
223 |
+
'displaying-many-related-items'
|
224 |
+
)
|
225 |
+
. '" target="_blank">',
|
226 |
+
'<i class="fa fa-external-link"></i>',
|
227 |
+
'</a>'
|
228 |
+
) . '</p>'
|
229 |
+
);
|
230 |
+
$this->options[] = $option_parent->get_option();
|
231 |
+
|
232 |
+
$option_child = new Toolset_Shortcode_Attr_Item_Gui_Option(
|
233 |
+
$this->relationship_definition,
|
234 |
+
Toolset_Relationship_Role::CHILD,
|
235 |
+
$this
|
236 |
+
);
|
237 |
+
$option_child->set_property(
|
238 |
+
'pointer_content',
|
239 |
+
'<h3>' . sprintf(
|
240 |
+
__( '%1$s (many-to-many relationship)', 'wpv-views' ),
|
241 |
+
$this->relationship_definition->get_display_name()
|
242 |
+
) . '</h3><p>' . sprintf(
|
243 |
+
__( 'You can display the related %1$s if this View is set to display %2$s.', 'wpv-views' ),
|
244 |
+
'<strong>' . $this->get_post_type_label_by_role( Toolset_Relationship_Role::CHILD, true ) . '</strong>',
|
245 |
+
'<strong>' . $this->get_post_type_label_by_role( Toolset_Relationship_Role::INTERMEDIARY ) . '</strong>'
|
246 |
+
) . '</p><p>' . sprintf(
|
247 |
+
__( '%1$sDocumentation %2$s%3$s', 'wpv-views' ),
|
248 |
+
'<a href="'
|
249 |
+
. $this->get_documentation_link(
|
250 |
+
'https://toolset.com/documentation/post-relationships/how-to-display-related-posts-with-toolset/',
|
251 |
+
array(
|
252 |
+
'utm_source' => 'postselector',
|
253 |
+
'utm_campaign' => 'm2m',
|
254 |
+
'utm_medium' => 'post-selector-documentation-link',
|
255 |
+
'utm_term' => 'Documentation'
|
256 |
+
),
|
257 |
+
'displaying-many-related-items'
|
258 |
+
)
|
259 |
+
. '" target="_blank">',
|
260 |
+
'<i class="fa fa-external-link"></i>',
|
261 |
+
'</a>'
|
262 |
+
) . '</p>'
|
263 |
+
);
|
264 |
+
$this->options[] = $option_child->get_option();
|
265 |
+
|
266 |
+
$option_intermediary = new Toolset_Shortcode_Attr_Item_Gui_Option(
|
267 |
+
$this->relationship_definition,
|
268 |
+
Toolset_Relationship_Role::INTERMEDIARY,
|
269 |
+
$this
|
270 |
+
);
|
271 |
+
$option_intermediary->set_property(
|
272 |
+
'pointer_content',
|
273 |
+
'<h3>' . sprintf(
|
274 |
+
__( '%1$s (many-to-many relationship)', 'wpv-views' ),
|
275 |
+
$this->relationship_definition->get_display_name()
|
276 |
+
) . '</h3><p>' . sprintf(
|
277 |
+
__( 'You can display the related %1$s if this View is set to display %2$s or %3$s and has a filter by the %4$s relationship.', 'wpv-views' ),
|
278 |
+
'<strong>' . $this->get_post_type_label_by_role( Toolset_Relationship_Role::INTERMEDIARY, true ) . '</strong>',
|
279 |
+
'<strong>' . $this->get_post_type_label_by_role( Toolset_Relationship_Role::PARENT ) . '</strong>',
|
280 |
+
'<strong>' . $this->get_post_type_label_by_role( Toolset_Relationship_Role::CHILD ) . '</strong>',
|
281 |
+
$this->relationship_definition->get_display_name()
|
282 |
+
) . '</p><p>' . sprintf(
|
283 |
+
__( '%1$sDocumentation %2$s%3$s', 'wpv-views' ),
|
284 |
+
'<a href="'
|
285 |
+
. $this->get_documentation_link(
|
286 |
+
'https://toolset.com/documentation/post-relationships/how-to-display-related-posts-with-toolset/',
|
287 |
+
array(
|
288 |
+
'utm_source' => 'postselector',
|
289 |
+
'utm_campaign' => 'm2m',
|
290 |
+
'utm_medium' => 'post-selector-documentation-link',
|
291 |
+
'utm_term' => 'Documentation'
|
292 |
+
),
|
293 |
+
'displaying-many-related-items'
|
294 |
+
)
|
295 |
+
. '" target="_blank">',
|
296 |
+
'<i class="fa fa-external-link"></i>',
|
297 |
+
'</a>'
|
298 |
+
) . '</p>'
|
299 |
+
);
|
300 |
+
$this->options[] = $option_intermediary->get_option();
|
301 |
+
}
|
302 |
+
|
303 |
+
|
304 |
+
/**
|
305 |
+
* Set the post selector options in Content Templates.
|
306 |
+
*
|
307 |
+
* In this case, you can:
|
308 |
+
* - display parent and child data from the IPT.
|
309 |
+
*
|
310 |
+
* @since m2m
|
311 |
+
*/
|
312 |
+
private function set_many_to_many_content_template() {
|
313 |
+
$option_parent = new Toolset_Shortcode_Attr_Item_Gui_Option(
|
314 |
+
$this->relationship_definition,
|
315 |
+
Toolset_Relationship_Role::PARENT,
|
316 |
+
$this
|
317 |
+
);
|
318 |
+
$option_parent->set_property(
|
319 |
+
'pointer_content',
|
320 |
+
'<h3>' . sprintf(
|
321 |
+
__( '%1$s (many-to-many relationship)', 'wpv-views' ),
|
322 |
+
$this->relationship_definition->get_display_name()
|
323 |
+
) . '</h3><p>' . sprintf(
|
324 |
+
__( 'You can display the related %1$s if this Content Template is set to display %2$s.', 'wpv-views' ),
|
325 |
+
'<strong>' . $this->get_post_type_label_by_role( Toolset_Relationship_Role::PARENT, true ) . '</strong>',
|
326 |
+
'<strong>' . $this->get_post_type_label_by_role( Toolset_Relationship_Role::INTERMEDIARY ) . '</strong>'
|
327 |
+
) . '</p><p>' . sprintf(
|
328 |
+
__( '%1$sDocumentation %2$s%3$s', 'wpv-views' ),
|
329 |
+
'<a href="'
|
330 |
+
. $this->get_documentation_link(
|
331 |
+
'https://toolset.com/documentation/post-relationships/how-to-display-related-posts-with-toolset/',
|
332 |
+
array(
|
333 |
+
'utm_source' => 'postselector',
|
334 |
+
'utm_campaign' => 'm2m',
|
335 |
+
'utm_medium' => 'post-selector-documentation-link',
|
336 |
+
'utm_term' => 'Documentation'
|
337 |
+
),
|
338 |
+
'displaying-many-related-items'
|
339 |
+
)
|
340 |
+
. '" target="_blank">',
|
341 |
+
'<i class="fa fa-external-link"></i>',
|
342 |
+
'</a>'
|
343 |
+
) . '</p>'
|
344 |
+
);
|
345 |
+
$this->options[] = $option_parent->get_option();
|
346 |
+
|
347 |
+
$option_child = new Toolset_Shortcode_Attr_Item_Gui_Option(
|
348 |
+
$this->relationship_definition,
|
349 |
+
Toolset_Relationship_Role::CHILD,
|
350 |
+
$this
|
351 |
+
);
|
352 |
+
$option_child->set_property(
|
353 |
+
'pointer_content',
|
354 |
+
'<h3>' . sprintf(
|
355 |
+
__( '%1$s (many-to-many relationship)', 'wpv-views' ),
|
356 |
+
$this->relationship_definition->get_display_name()
|
357 |
+
) . '</h3><p>' . sprintf(
|
358 |
+
__( 'You can display the related %1$s if this Content Template is set to display %2$s.', 'wpv-views' ),
|
359 |
+
'<strong>' . $this->get_post_type_label_by_role( Toolset_Relationship_Role::CHILD, true ) . '</strong>',
|
360 |
+
'<strong>' . $this->get_post_type_label_by_role( Toolset_Relationship_Role::INTERMEDIARY ) . '</strong>'
|
361 |
+
) . '</p><p>' . sprintf(
|
362 |
+
__( '%1$sDocumentation %2$s%3$s', 'wpv-views' ),
|
363 |
+
'<a href="'
|
364 |
+
. $this->get_documentation_link(
|
365 |
+
'https://toolset.com/documentation/post-relationships/how-to-display-related-posts-with-toolset/',
|
366 |
+
array(
|
367 |
+
'utm_source' => 'postselector',
|
368 |
+
'utm_campaign' => 'm2m',
|
369 |
+
'utm_medium' => 'post-selector-documentation-link',
|
370 |
+
'utm_term' => 'Documentation'
|
371 |
+
),
|
372 |
+
'displaying-many-related-items'
|
373 |
+
)
|
374 |
+
. '" target="_blank">',
|
375 |
+
'<i class="fa fa-external-link"></i>',
|
376 |
+
'</a>'
|
377 |
+
) . '</p>'
|
378 |
+
);
|
379 |
+
$this->options[] = $option_child->get_option();
|
380 |
+
|
381 |
+
if ( null != $this->intermediary_type ) {
|
382 |
+
|
383 |
+
$option_intermediary = new Toolset_Shortcode_Attr_Item_Gui_Option(
|
384 |
+
$this->relationship_definition,
|
385 |
+
Toolset_Relationship_Role::INTERMEDIARY,
|
386 |
+
$this
|
387 |
+
);
|
388 |
+
$option_intermediary->set_property( 'is_disabled', true );
|
389 |
+
$option_intermediary->set_property(
|
390 |
+
'pointer_content',
|
391 |
+
'<h3>' . sprintf(
|
392 |
+
__( '%1$s (many-to-many relationship)', 'wpv-views' ),
|
393 |
+
$this->relationship_definition->get_display_name()
|
394 |
+
) . '</h3><p>' . sprintf(
|
395 |
+
__( '%1$s connects with %2$s through %3$s.', 'wpv-views' ),
|
396 |
+
'<strong>' . $this->get_post_type_label_by_role( Toolset_Relationship_Role::PARENT ) . '</strong>',
|
397 |
+
'<strong>' . $this->get_post_type_label_by_role( Toolset_Relationship_Role::CHILD ) . '</strong>',
|
398 |
+
'<strong>' . $this->get_post_type_label_by_role( Toolset_Relationship_Role::INTERMEDIARY ) . '</strong>'
|
399 |
+
) . '</p><p>' . sprintf(
|
400 |
+
__( 'To display %1$s you need to use a View that will list %2$s or %3$s and include a filter by the %4$s relationship.', 'wpv-views' ),
|
401 |
+
'<strong>' . $this->get_post_type_label_by_role( Toolset_Relationship_Role::INTERMEDIARY ) . '</strong>',
|
402 |
+
'<strong>' . $this->get_post_type_label_by_role( Toolset_Relationship_Role::PARENT ) . '</strong>',
|
403 |
+
'<strong>' . $this->get_post_type_label_by_role( Toolset_Relationship_Role::CHILD ) . '</strong>',
|
404 |
+
$this->relationship_definition->get_display_name()
|
405 |
+
) . '</p><p>' . sprintf(
|
406 |
+
__( '%1$sDocumentation %2$s%3$s', 'wpv-views' ),
|
407 |
+
'<a href="'
|
408 |
+
. $this->get_documentation_link(
|
409 |
+
'https://toolset.com/documentation/post-relationships/how-to-display-related-posts-with-toolset/',
|
410 |
+
array(
|
411 |
+
'utm_source' => 'postselector',
|
412 |
+
'utm_campaign' => 'm2m',
|
413 |
+
'utm_medium' => 'post-selector-documentation-link',
|
414 |
+
'utm_term' => 'Documentation'
|
415 |
+
)
|
416 |
+
)
|
417 |
+
. '" target="_blank">',
|
418 |
+
'<i class="fa fa-external-link"></i>',
|
419 |
+
'</a>'
|
420 |
+
) . '</p>'
|
421 |
+
);
|
422 |
+
$this->options[] = $option_intermediary->get_option();
|
423 |
+
|
424 |
+
}
|
425 |
+
}
|
426 |
+
|
427 |
+
|
428 |
+
/**
|
429 |
+
* Set the post selector options when editing an IPT.
|
430 |
+
*
|
431 |
+
* In this case, you can:
|
432 |
+
* - display parent and child data from the IPT.
|
433 |
+
*
|
434 |
+
* @since m2m
|
435 |
+
*/
|
436 |
+
private function set_many_to_many_current_intermediary() {
|
437 |
+
$option_parent = new Toolset_Shortcode_Attr_Item_Gui_Option(
|
438 |
+
$this->relationship_definition,
|
439 |
+
Toolset_Relationship_Role::PARENT,
|
440 |
+
$this
|
441 |
+
);
|
442 |
+
$option_parent->set_property(
|
443 |
+
'pointer_content',
|
444 |
+
'<h3>' . sprintf(
|
445 |
+
__( '%1$s (many-to-many relationship)', 'wpv-views' ),
|
446 |
+
$this->relationship_definition->get_display_name()
|
447 |
+
) . '</h3><p>' . sprintf(
|
448 |
+
__( 'You can display the related %1$s for the current %2$s.', 'wpv-views' ),
|
449 |
+
'<strong>' . $this->get_post_type_label_by_role( Toolset_Relationship_Role::PARENT, true ) . '</strong>',
|
450 |
+
'<strong>' . $this->get_post_type_label_by_role( Toolset_Relationship_Role::INTERMEDIARY, true ) . '</strong>'
|
451 |
+
) . '</p>'
|
452 |
+
);
|
453 |
+
$this->options[] = $option_parent->get_option();
|
454 |
+
|
455 |
+
$option_child = new Toolset_Shortcode_Attr_Item_Gui_Option(
|
456 |
+
$this->relationship_definition,
|
457 |
+
Toolset_Relationship_Role::CHILD,
|
458 |
+
$this
|
459 |
+
);
|
460 |
+
$option_child->set_property(
|
461 |
+
'pointer_content',
|
462 |
+
'<h3>' . sprintf(
|
463 |
+
__( '%1$s (many-to-many relationship)', 'wpv-views' ),
|
464 |
+
$this->relationship_definition->get_display_name()
|
465 |
+
) . '</h3><p>' . sprintf(
|
466 |
+
__( 'You can display the related %1$s for the current %2$s.', 'wpv-views' ),
|
467 |
+
'<strong>' . $this->get_post_type_label_by_role( Toolset_Relationship_Role::CHILD, true ) . '</strong>',
|
468 |
+
'<strong>' . $this->get_post_type_label_by_role( Toolset_Relationship_Role::INTERMEDIARY, true ) . '</strong>'
|
469 |
+
) . '</p>'
|
470 |
+
);
|
471 |
+
$this->options[] = $option_child->get_option();
|
472 |
+
}
|
473 |
+
|
474 |
+
}
|
vendor/toolset/toolset-common/inc/autoloaded/shortcode/attr/item/gui/o2m.php
ADDED
@@ -0,0 +1,96 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
<?php
|
2 |
+
|
3 |
+
/**
|
4 |
+
* item attribute GUI selector provider for one-to-many relationships.
|
5 |
+
*
|
6 |
+
* @since m2m
|
7 |
+
*/
|
8 |
+
class Toolset_Shortcode_Attr_Item_Gui_O2m extends Toolset_Shortcode_Attr_Item_Gui_Base {
|
9 |
+
|
10 |
+
|
11 |
+
/**
|
12 |
+
* Set options for post selectors on O2M relationships.
|
13 |
+
*
|
14 |
+
* @since m2m
|
15 |
+
*/
|
16 |
+
protected function set_options() {
|
17 |
+
$origin = $this->relationship_definition->get_origin()->get_origin_keyword();
|
18 |
+
|
19 |
+
if ( Toolset_Relationship_Origin_Post_Reference_Field::ORIGIN_KEYWORD === $origin ) {
|
20 |
+
$this->set_parent_reference_option();
|
21 |
+
} else {
|
22 |
+
$this->set_parent_option();
|
23 |
+
$this->set_child_option();
|
24 |
+
}
|
25 |
+
}
|
26 |
+
|
27 |
+
protected function set_parent_reference_option() {
|
28 |
+
if (
|
29 |
+
null === $this->current_post_object
|
30 |
+
|| ! in_array( $this->current_post_object->name, $this->parent_types )
|
31 |
+
) {
|
32 |
+
$option = new Toolset_Shortcode_Attr_Item_Gui_Option(
|
33 |
+
$this->relationship_definition,
|
34 |
+
Toolset_Relationship_Role::PARENT,
|
35 |
+
$this
|
36 |
+
);
|
37 |
+
$this->options[] = $option->get_option();
|
38 |
+
|
39 |
+
}
|
40 |
+
}
|
41 |
+
|
42 |
+
protected function set_parent_option() {
|
43 |
+
if (
|
44 |
+
null === $this->current_post_object
|
45 |
+
|| ! in_array( $this->current_post_object->name, $this->parent_types )
|
46 |
+
) {
|
47 |
+
$option = new Toolset_Shortcode_Attr_Item_Gui_Option(
|
48 |
+
$this->relationship_definition,
|
49 |
+
Toolset_Relationship_Role::PARENT,
|
50 |
+
$this
|
51 |
+
);
|
52 |
+
|
53 |
+
$this->options[] = $option->get_option();
|
54 |
+
|
55 |
+
}
|
56 |
+
}
|
57 |
+
|
58 |
+
private function set_child_option() {
|
59 |
+
$option = new Toolset_Shortcode_Attr_Item_Gui_Option(
|
60 |
+
$this->relationship_definition,
|
61 |
+
Toolset_Relationship_Role::CHILD,
|
62 |
+
$this
|
63 |
+
);
|
64 |
+
$option->set_property( 'is_disabled', true );
|
65 |
+
$option->set_property(
|
66 |
+
'pointer_content',
|
67 |
+
'<h3>' . sprintf(
|
68 |
+
__( '%1$s (one-to-many relationship)', 'wpv-views' ),
|
69 |
+
$this->relationship_definition->get_display_name()
|
70 |
+
) . '</h3><p>' . sprintf(
|
71 |
+
__( 'To display the %1$s that are connected to each %2$s, you will need to create a View.', 'wpv-views' ),
|
72 |
+
'<strong>' . $this->get_post_type_label_by_role( Toolset_Relationship_Role::CHILD ) . '</strong>',
|
73 |
+
'<strong>' . $this->get_post_type_label_by_role( Toolset_Relationship_Role::PARENT, true ) . '</strong>'
|
74 |
+
) . '</p><p>' . sprintf(
|
75 |
+
__( '%1$sDocumentation %2$s%3$s', 'wpv-views' ),
|
76 |
+
'<a href="'
|
77 |
+
. $this->get_documentation_link(
|
78 |
+
'https://toolset.com/documentation/post-relationships/how-to-display-related-posts-with-toolset/',
|
79 |
+
array(
|
80 |
+
'utm_source' => 'postselector',
|
81 |
+
'utm_campaign' => 'm2m',
|
82 |
+
'utm_medium' => 'post-selector-documentation-link',
|
83 |
+
'utm_term' => 'Documentation'
|
84 |
+
),
|
85 |
+
'displaying-many-related-items'
|
86 |
+
)
|
87 |
+
. '" target="_blank">',
|
88 |
+
'<i class="fa fa-external-link"></i>',
|
89 |
+
'</a>'
|
90 |
+
) . '</p>'
|
91 |
+
);
|
92 |
+
|
93 |
+
$this->options[] = $option->get_option();
|
94 |
+
}
|
95 |
+
|
96 |
+
}
|
vendor/toolset/toolset-common/inc/autoloaded/shortcode/attr/item/gui/o2o.php
ADDED
@@ -0,0 +1,83 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
<?php
|
2 |
+
|
3 |
+
/**
|
4 |
+
* item attribute GUI selector provider for one-to-one relationships.
|
5 |
+
*
|
6 |
+
* @since m2m
|
7 |
+
*/
|
8 |
+
class Toolset_Shortcode_Attr_Item_Gui_O2o extends Toolset_Shortcode_Attr_Item_Gui_Base {
|
9 |
+
|
10 |
+
|
11 |
+
/**
|
12 |
+
* Set options for post selectors on O2O relationships.
|
13 |
+
*
|
14 |
+
* @since m2m
|
15 |
+
*/
|
16 |
+
protected function set_options() {
|
17 |
+
if (
|
18 |
+
null != $this->current_post_object
|
19 |
+
&& in_array( $this->current_post_object->name, $this->parent_types )
|
20 |
+
) {
|
21 |
+
$this->set_one_to_one_current_parent();
|
22 |
+
return;
|
23 |
+
}
|
24 |
+
|
25 |
+
if (
|
26 |
+
null != $this->current_post_object
|
27 |
+
&& in_array( $this->current_post_object->name, $this->child_types )
|
28 |
+
) {
|
29 |
+
$this->set_one_to_one_current_child();
|
30 |
+
return;
|
31 |
+
}
|
32 |
+
|
33 |
+
$option_parent = new Toolset_Shortcode_Attr_Item_Gui_Option(
|
34 |
+
$this->relationship_definition,
|
35 |
+
Toolset_Relationship_Role::PARENT,
|
36 |
+
$this
|
37 |
+
);
|
38 |
+
$this->options[] = $option_parent->get_option();
|
39 |
+
|
40 |
+
$option_child = new Toolset_Shortcode_Attr_Item_Gui_Option(
|
41 |
+
$this->relationship_definition,
|
42 |
+
Toolset_Relationship_Role::CHILD,
|
43 |
+
$this
|
44 |
+
);
|
45 |
+
$this->options[] = $option_child->get_option();
|
46 |
+
return;
|
47 |
+
}
|
48 |
+
|
49 |
+
|
50 |
+
/**
|
51 |
+
* Set the post selector options when editing a parent post type.
|
52 |
+
*
|
53 |
+
* In this case, you can display the child post data.
|
54 |
+
*
|
55 |
+
* @since m2m
|
56 |
+
*/
|
57 |
+
private function set_one_to_one_current_parent() {
|
58 |
+
$option_child = new Toolset_Shortcode_Attr_Item_Gui_Option(
|
59 |
+
$this->relationship_definition,
|
60 |
+
Toolset_Relationship_Role::CHILD,
|
61 |
+
$this
|
62 |
+
);
|
63 |
+
$this->options[] = $option_child->get_option();
|
64 |
+
}
|
65 |
+
|
66 |
+
|
67 |
+
/**
|
68 |
+
* Set the post selector options when editing a child post type.
|
69 |
+
*
|
70 |
+
* In this case, you can display the parent post data.
|
71 |
+
*
|
72 |
+
* @since m2m
|
73 |
+
*/
|
74 |
+
private function set_one_to_one_current_child() {
|
75 |
+
$option_parent = new Toolset_Shortcode_Attr_Item_Gui_Option(
|
76 |
+
$this->relationship_definition,
|
77 |
+
Toolset_Relationship_Role::PARENT,
|
78 |
+
$this
|
79 |
+
);
|
80 |
+
$this->options[] = $option_parent->get_option();
|
81 |
+
}
|
82 |
+
|
83 |
+
}
|
vendor/toolset/toolset-common/inc/autoloaded/shortcode/attr/item/gui/option.php
ADDED
@@ -0,0 +1,186 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
<?php
|
2 |
+
|
3 |
+
/**
|
4 |
+
* Viewmodel for the item attribute GUI selector options.
|
5 |
+
*
|
6 |
+
* @since m2m
|
7 |
+
*
|
8 |
+
* @todo Remove the dependency of the Toolset_Shortcode_Attr_Item_Gui_Base $provider: it only passes a name and a label
|
9 |
+
* @todo This should include a method to return and/or print the output using a template, and
|
10 |
+
* Toolset_Shortcode_Attr_Item_Gui_Base::$options should be a Toolset_Shortcode_Attr_Item_Gui_Option[]
|
11 |
+
*/
|
12 |
+
class Toolset_Shortcode_Attr_Item_Gui_Option {
|
13 |
+
|
14 |
+
|
15 |
+
/**
|
16 |
+
* @var string[]
|
17 |
+
*/
|
18 |
+
private $public_properties = array(
|
19 |
+
'is_checked', 'is_disabled', 'pointer_content'
|
20 |
+
);
|
21 |
+
|
22 |
+
|
23 |
+
/**
|
24 |
+
* @var string
|
25 |
+
*/
|
26 |
+
private $id;
|
27 |
+
|
28 |
+
|
29 |
+
/**
|
30 |
+
* @var string
|
31 |
+
*/
|
32 |
+
private $value;
|
33 |
+
|
34 |
+
|
35 |
+
/**
|
36 |
+
* @var bool
|
37 |
+
*/
|
38 |
+
private $is_checked = false;
|
39 |
+
|
40 |
+
|
41 |
+
/**
|
42 |
+
* @var bool
|
43 |
+
*/
|
44 |
+
private $is_disabled = false;
|
45 |
+
|
46 |
+
|
47 |
+
/**
|
48 |
+
* @var string
|
49 |
+
*/
|
50 |
+
private $pointer_content = '';
|
51 |
+
|
52 |
+
|
53 |
+
/**
|
54 |
+
* @var Toolset_Relationship_Definition
|
55 |
+
*/
|
56 |
+
private $relationship_definition;
|
57 |
+
|
58 |
+
|
59 |
+
/**
|
60 |
+
* @var string
|
61 |
+
*/
|
62 |
+
private $role;
|
63 |
+
|
64 |
+
|
65 |
+
/**
|
66 |
+
* @var string
|
67 |
+
*/
|
68 |
+
private $origin;
|
69 |
+
|
70 |
+
|
71 |
+
/**
|
72 |
+
* @var Toolset_Shortcode_Attr_Item_Gui_Base
|
73 |
+
*/
|
74 |
+
private $provider;
|
75 |
+
|
76 |
+
|
77 |
+
function __construct(
|
78 |
+
Toolset_Relationship_Definition $relationship_definition,
|
79 |
+
$role,
|
80 |
+
Toolset_Shortcode_Attr_Item_Gui_Base $provider
|
81 |
+
) {
|
82 |
+
$this->relationship_definition = $relationship_definition;
|
83 |
+
$this->role = $role;
|
84 |
+
$this->provider = $provider;
|
85 |
+
|
86 |
+
$this->origin = $this->relationship_definition->get_origin()->get_origin_keyword();
|
87 |
+
|
88 |
+
$this->set_data();
|
89 |
+
}
|
90 |
+
|
91 |
+
|
92 |
+
/**
|
93 |
+
* Set the basic option data: id and value.
|
94 |
+
*
|
95 |
+
* @since m2m
|
96 |
+
*/
|
97 |
+
private function set_data() {
|
98 |
+
$this->id = $this->relationship_definition->get_slug() . '-' . $this->role;
|
99 |
+
$this->value = '@' . $this->relationship_definition->get_slug() . '.' . $this->role;
|
100 |
+
}
|
101 |
+
|
102 |
+
|
103 |
+
/**
|
104 |
+
* Public setter for expected properties.
|
105 |
+
*
|
106 |
+
* @param string $property
|
107 |
+
* @param mixed $value
|
108 |
+
*
|
109 |
+
* @since m2m
|
110 |
+
*/
|
111 |
+
public function set_property( $property, $value ) {
|
112 |
+
if ( ! in_array( $property, $this->public_properties ) ) {
|
113 |
+
return;
|
114 |
+
}
|
115 |
+
$this->{$property} = $value;
|
116 |
+
}
|
117 |
+
|
118 |
+
|
119 |
+
/**
|
120 |
+
* Get the option name attribute.
|
121 |
+
*
|
122 |
+
* @return string
|
123 |
+
*
|
124 |
+
* @since m2m
|
125 |
+
*/
|
126 |
+
private function get_option_name() {
|
127 |
+
return $this->provider->get_option_name();
|
128 |
+
}
|
129 |
+
|
130 |
+
|
131 |
+
/**
|
132 |
+
* Get the option label.
|
133 |
+
*
|
134 |
+
* @return string
|
135 |
+
*
|
136 |
+
* @since m2m
|
137 |
+
*/
|
138 |
+
private function get_label() {
|
139 |
+
return ( Toolset_Relationship_Origin_Post_Reference_Field::ORIGIN_KEYWORD === $this->origin )
|
140 |
+
? sprintf(
|
141 |
+
__( '%1$s (from %2$s)', 'wpv-views' ),
|
142 |
+
$this->provider->get_post_type_label_by_role( $this->role ),
|
143 |
+
$this->relationship_definition->get_display_name()
|
144 |
+
)
|
145 |
+
: $this->provider->get_post_type_label_by_role( $this->role );
|
146 |
+
}
|
147 |
+
|
148 |
+
|
149 |
+
/**
|
150 |
+
* Get the option output.
|
151 |
+
*
|
152 |
+
* @return string
|
153 |
+
*
|
154 |
+
* @since m2m
|
155 |
+
*/
|
156 |
+
public function get_option() {
|
157 |
+
$option = '';
|
158 |
+
|
159 |
+
$option .= sprintf(
|
160 |
+
'<label for="toolset-shortcode-gui-item-selector-post-relationship-id-%1$s"%2$s>',
|
161 |
+
esc_attr( $this->id ),
|
162 |
+
( $this->is_disabled ? ' class="toolset-option-label-disabled"' : '' )
|
163 |
+
);
|
164 |
+
$option .= sprintf(
|
165 |
+
'<input type="radio" name="%s" id="toolset-shortcode-gui-item-selector-post-relationship-id-%s" value="%s" %s %s />',
|
166 |
+
esc_attr( $this->get_option_name() ),
|
167 |
+
esc_attr( $this->id ),
|
168 |
+
esc_attr( $this->value ),
|
169 |
+
checked( $this->is_checked, true, false ),
|
170 |
+
disabled( $this->is_disabled, true, false )
|
171 |
+
);
|
172 |
+
$option .= esc_html( $this->get_label() );
|
173 |
+
if ( ! empty( $this->pointer_content ) ) {
|
174 |
+
$option .= ' <i class="fa fa-question-circle wp-toolset-pointer-trigger js-wp-toolset-shortcode-pointer-trigger" style="vertical-align:baseline"></i>';
|
175 |
+
}
|
176 |
+
$option .= '</label>';
|
177 |
+
if ( ! empty( $this->pointer_content ) ) {
|
178 |
+
$option .= '<div class="js-wp-toolset-shortcode-pointer-content" style="display:none">';
|
179 |
+
$option .= $this->pointer_content;
|
180 |
+
$option .= '</div>';
|
181 |
+
}
|
182 |
+
|
183 |
+
return $option;
|
184 |
+
}
|
185 |
+
|
186 |
+
}
|
vendor/toolset/toolset-common/inc/autoloaded/shortcode/attr/item/legacy.php
CHANGED
@@ -64,6 +64,39 @@ class Toolset_Shortcode_Attr_Item_Legacy extends Toolset_Shortcode_Attr_Item_Id
|
|
64 |
|
65 |
return $this->chain_link->get( $data );
|
66 |
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
67 |
|
68 |
if( ! apply_filters( 'toolset_is_m2m_enabled', false ) ) {
|
69 |
// m2m disabled
|
64 |
|
65 |
return $this->chain_link->get( $data );
|
66 |
}
|
67 |
+
|
68 |
+
if( $role_slug == 'current_page' ) {
|
69 |
+
if ( is_single() || is_page() ) {
|
70 |
+
global $wp_query;
|
71 |
+
if ( isset( $wp_query->posts[0] ) ) {
|
72 |
+
$current_post = $wp_query->posts[0];
|
73 |
+
return $this->return_single_id( $current_post->ID );
|
74 |
+
}
|
75 |
+
}
|
76 |
+
|
77 |
+
/**
|
78 |
+
* Get the current top post.
|
79 |
+
*
|
80 |
+
* Some Toolset plugins might need to set the top current post under some scenarios,
|
81 |
+
* like Toolset Views when doing AJAX pagination or AJAX custom search.
|
82 |
+
* In those cases, they can use this filter to get the top current post they are setting
|
83 |
+
* and override the ID to apply as the $current_page value.
|
84 |
+
*
|
85 |
+
* @not Toolset plugins should set this just in time, not globally, when needed, meaning AJAX calls or whatever.
|
86 |
+
*
|
87 |
+
* @param $top_post null
|
88 |
+
*
|
89 |
+
* @return $top_post null/WP_Post object The top current post, if set by any Toolset plugin.
|
90 |
+
*
|
91 |
+
* @since 2.3.0
|
92 |
+
*/
|
93 |
+
$top_current_post = apply_filters( 'toolset_filter_get_top_current_post', null );
|
94 |
+
if ( $top_current_post ) {
|
95 |
+
return $this->return_single_id( $top_current_post->ID );
|
96 |
+
}
|
97 |
+
|
98 |
+
return $this->chain_link->get( $data );
|
99 |
+
}
|
100 |
|
101 |
if( ! apply_filters( 'toolset_is_m2m_enabled', false ) ) {
|
102 |
// m2m disabled
|
vendor/toolset/toolset-common/inc/autoloaded/shortcode/attr/item/m2m.php
CHANGED
@@ -81,6 +81,11 @@ class Toolset_Shortcode_Attr_Item_M2M extends Toolset_Shortcode_Attr_Item_Id {
|
|
81 |
}
|
82 |
|
83 |
|
|
|
|
|
|
|
|
|
|
|
84 |
// no child, check if intermediary is requested
|
85 |
if ( $id = $this->get_intermediary_id( $request_relationship, $request_role_name, $post ) ) {
|
86 |
return $this->return_single_id( $id );
|
@@ -99,7 +104,10 @@ class Toolset_Shortcode_Attr_Item_M2M extends Toolset_Shortcode_Attr_Item_Id {
|
|
99 |
private function get_parent_id( $request_relationship, $request_role_name, $post ) {
|
100 |
$parent_types = $request_relationship->get_parent_type()->get_types();
|
101 |
|
102 |
-
if (
|
|
|
|
|
|
|
103 |
// 'parent' is used as item slug, only works if there is just one parent type
|
104 |
$request_role_name = current( $parent_types );
|
105 |
}
|
@@ -107,6 +115,18 @@ class Toolset_Shortcode_Attr_Item_M2M extends Toolset_Shortcode_Attr_Item_Id {
|
|
107 |
if ( array_key_exists( $request_role_name, $parent_types )
|
108 |
|| in_array( $request_role_name, $parent_types )
|
109 |
) {
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
110 |
$parent_id = $this->service_relationship->find_parent_id_by_relationship_and_child_id(
|
111 |
$request_relationship,
|
112 |
$post->ID,
|
@@ -116,9 +136,13 @@ class Toolset_Shortcode_Attr_Item_M2M extends Toolset_Shortcode_Attr_Item_Id {
|
|
116 |
return $this->return_single_id( $parent_id );
|
117 |
}
|
118 |
|
|
|
|
|
119 |
return false;
|
120 |
}
|
121 |
|
|
|
|
|
122 |
/**
|
123 |
* @param $request_relationship
|
124 |
* @param $request_role_name
|
@@ -129,7 +153,10 @@ class Toolset_Shortcode_Attr_Item_M2M extends Toolset_Shortcode_Attr_Item_Id {
|
|
129 |
private function get_child_id( IToolset_Relationship_Definition $request_relationship, $request_role_name, $post ) {
|
130 |
$child_types = $request_relationship->get_child_type()->get_types();
|
131 |
|
132 |
-
if (
|
|
|
|
|
|
|
133 |
// 'child' is used as item slug, only works if there is just one child type
|
134 |
$request_role_name = current( $child_types );
|
135 |
}
|
@@ -137,6 +164,17 @@ class Toolset_Shortcode_Attr_Item_M2M extends Toolset_Shortcode_Attr_Item_Id {
|
|
137 |
if ( array_key_exists( $request_role_name, $child_types )
|
138 |
|| in_array( $request_role_name, $child_types )
|
139 |
) {
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
140 |
$child_id = $this->service_relationship->find_child_id_by_relationship_and_parent_id(
|
141 |
$request_relationship,
|
142 |
$post->ID,
|
@@ -145,6 +183,8 @@ class Toolset_Shortcode_Attr_Item_M2M extends Toolset_Shortcode_Attr_Item_Id {
|
|
145 |
|
146 |
return $this->return_single_id( $child_id );
|
147 |
}
|
|
|
|
|
148 |
}
|
149 |
|
150 |
/**
|
@@ -154,9 +194,15 @@ class Toolset_Shortcode_Attr_Item_M2M extends Toolset_Shortcode_Attr_Item_Id {
|
|
154 |
*
|
155 |
* @return bool|int
|
156 |
*/
|
157 |
-
private function
|
|
|
|
|
|
|
|
|
|
|
|
|
158 |
if ( $request_role_name != 'association'
|
159 |
-
&& $request_role_name != $
|
160 |
) {
|
161 |
return false;
|
162 |
}
|
@@ -197,6 +243,103 @@ class Toolset_Shortcode_Attr_Item_M2M extends Toolset_Shortcode_Attr_Item_Id {
|
|
197 |
return false;
|
198 |
}
|
199 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
200 |
/**
|
201 |
* @param $intermediary
|
202 |
*
|
@@ -213,4 +356,4 @@ class Toolset_Shortcode_Attr_Item_M2M extends Toolset_Shortcode_Attr_Item_Id {
|
|
213 |
|
214 |
return $intermediary->get_intermediary_id();
|
215 |
}
|
216 |
-
}
|
81 |
}
|
82 |
|
83 |
|
84 |
+
// no child, check if association is requested
|
85 |
+
if ( $id = $this->get_association_id( $request_relationship, $request_role_name, $post ) ) {
|
86 |
+
return $this->return_single_id( $id );
|
87 |
+
}
|
88 |
+
|
89 |
// no child, check if intermediary is requested
|
90 |
if ( $id = $this->get_intermediary_id( $request_relationship, $request_role_name, $post ) ) {
|
91 |
return $this->return_single_id( $id );
|
104 |
private function get_parent_id( $request_relationship, $request_role_name, $post ) {
|
105 |
$parent_types = $request_relationship->get_parent_type()->get_types();
|
106 |
|
107 |
+
if (
|
108 |
+
( Toolset_Relationship_Role::PARENT === $request_role_name || $request_relationship->get_role_name( Toolset_Relationship_Role::PARENT ) === $request_role_name )
|
109 |
+
&& count( $parent_types ) === 1
|
110 |
+
) {
|
111 |
// 'parent' is used as item slug, only works if there is just one parent type
|
112 |
$request_role_name = current( $parent_types );
|
113 |
}
|
115 |
if ( array_key_exists( $request_role_name, $parent_types )
|
116 |
|| in_array( $request_role_name, $parent_types )
|
117 |
) {
|
118 |
+
$intermediary_post_type = $request_relationship->get_intermediary_post_type();
|
119 |
+
|
120 |
+
if ( $intermediary_post_type === $post->post_type ) {
|
121 |
+
$parent_id = $this->service_relationship->find_parent_id_by_relationship_and_intermediary_post_id(
|
122 |
+
$request_relationship,
|
123 |
+
$post->ID
|
124 |
+
);
|
125 |
+
|
126 |
+
return $this->return_single_id( $parent_id );
|
127 |
+
}
|
128 |
+
|
129 |
+
|
130 |
$parent_id = $this->service_relationship->find_parent_id_by_relationship_and_child_id(
|
131 |
$request_relationship,
|
132 |
$post->ID,
|
136 |
return $this->return_single_id( $parent_id );
|
137 |
}
|
138 |
|
139 |
+
|
140 |
+
|
141 |
return false;
|
142 |
}
|
143 |
|
144 |
+
|
145 |
+
|
146 |
/**
|
147 |
* @param $request_relationship
|
148 |
* @param $request_role_name
|
153 |
private function get_child_id( IToolset_Relationship_Definition $request_relationship, $request_role_name, $post ) {
|
154 |
$child_types = $request_relationship->get_child_type()->get_types();
|
155 |
|
156 |
+
if (
|
157 |
+
( Toolset_Relationship_Role::CHILD === $request_role_name || $request_relationship->get_role_name( Toolset_Relationship_Role::CHILD ) === $request_role_name )
|
158 |
+
&& count( $child_types ) === 1
|
159 |
+
) {
|
160 |
// 'child' is used as item slug, only works if there is just one child type
|
161 |
$request_role_name = current( $child_types );
|
162 |
}
|
164 |
if ( array_key_exists( $request_role_name, $child_types )
|
165 |
|| in_array( $request_role_name, $child_types )
|
166 |
) {
|
167 |
+
$intermediary_post_type = $request_relationship->get_intermediary_post_type();
|
168 |
+
|
169 |
+
if ( $intermediary_post_type === $post->post_type ) {
|
170 |
+
$child_id = $this->service_relationship->find_child_id_by_relationship_and_intermediary_post_id(
|
171 |
+
$request_relationship,
|
172 |
+
$post->ID
|
173 |
+
);
|
174 |
+
|
175 |
+
return $this->return_single_id( $child_id );
|
176 |
+
}
|
177 |
+
|
178 |
$child_id = $this->service_relationship->find_child_id_by_relationship_and_parent_id(
|
179 |
$request_relationship,
|
180 |
$post->ID,
|
183 |
|
184 |
return $this->return_single_id( $child_id );
|
185 |
}
|
186 |
+
|
187 |
+
return false;
|
188 |
}
|
189 |
|
190 |
/**
|
194 |
*
|
195 |
* @return bool|int
|
196 |
*/
|
197 |
+
private function get_association_id( IToolset_Relationship_Definition $request_relationship, $request_role_name, $post ) {
|
198 |
+
$intermediary_post_type = $request_relationship->get_driver()->get_intermediary_post_type();
|
199 |
+
|
200 |
+
if ( null === $intermediary_post_type ) {
|
201 |
+
return false;
|
202 |
+
}
|
203 |
+
|
204 |
if ( $request_role_name != 'association'
|
205 |
+
&& $request_role_name != $intermediary_post_type
|
206 |
) {
|
207 |
return false;
|
208 |
}
|
243 |
return false;
|
244 |
}
|
245 |
|
246 |
+
/**
|
247 |
+
* Get the intermediary post ID when in a View loop with a filter by post relationship.
|
248 |
+
*
|
249 |
+
* @param $request_relationship
|
250 |
+
* @param $request_role_name
|
251 |
+
* @param $post
|
252 |
+
*
|
253 |
+
* @return bool|int
|
254 |
+
*/
|
255 |
+
private function get_intermediary_id( IToolset_Relationship_Definition $request_relationship, $request_role_name, $post ) {
|
256 |
+
$intermediary_post_type = $request_relationship->get_driver()->get_intermediary_post_type();
|
257 |
+
|
258 |
+
if ( null === $intermediary_post_type ) {
|
259 |
+
return false;
|
260 |
+
}
|
261 |
+
|
262 |
+
if (
|
263 |
+
$request_role_name != Toolset_Relationship_Role::INTERMEDIARY
|
264 |
+
&& $request_role_name != $intermediary_post_type
|
265 |
+
) {
|
266 |
+
return false;
|
267 |
+
}
|
268 |
+
|
269 |
+
// Try to guess the intermediary post by a Views filter by post relationship
|
270 |
+
$post_owner_data = apply_filters( 'wpv_filter_wpv_get_current_post_relationship_frontend_filter_post_owner_data', false );
|
271 |
+
|
272 |
+
if ( $post_owner_data ) {
|
273 |
+
$related_item_one = false;
|
274 |
+
foreach( $post_owner_data as $post_type => $post_candidate_list ) {
|
275 |
+
if ( count( $post_candidate_list ) > 0 ) {
|
276 |
+
$related_item_one = current( $post_candidate_list );
|
277 |
+
break;
|
278 |
+
}
|
279 |
+
}
|
280 |
+
|
281 |
+
if ( $related_item_one ) {
|
282 |
+
$related_item_two = $post->ID;
|
283 |
+
|
284 |
+
$association_query = new Toolset_Association_Query_V2();
|
285 |
+
$association_query->add( $association_query->relationship( $request_relationship ) );
|
286 |
+
|
287 |
+
// Get associations in this relationship where both:
|
288 |
+
// - item one is parent or intermediary or child
|
289 |
+
// - item two is parent or intermediary or child
|
290 |
+
// Deal with it :-P
|
291 |
+
$association_query->add(
|
292 |
+
$association_query->do_and(
|
293 |
+
$association_query->do_or(
|
294 |
+
$association_query->element_id_and_domain(
|
295 |
+
$related_item_one,
|
296 |
+
Toolset_Element_Domain::POSTS,
|
297 |
+
new Toolset_Relationship_Role_Parent()
|
298 |
+
),
|
299 |
+
$association_query->element_id_and_domain(
|
300 |
+
$related_item_one,
|
301 |
+
Toolset_Element_Domain::POSTS,
|
302 |
+
new Toolset_Relationship_Role_Intermediary()
|
303 |
+
),
|
304 |
+
$association_query->element_id_and_domain(
|
305 |
+
$related_item_one,
|
306 |
+
Toolset_Element_Domain::POSTS,
|
307 |
+
new Toolset_Relationship_Role_Child()
|
308 |
+
)
|
309 |
+
),
|
310 |
+
$association_query->do_or(
|
311 |
+
$association_query->element_id_and_domain(
|
312 |
+
$related_item_two,
|
313 |
+
Toolset_Element_Domain::POSTS,
|
314 |
+
new Toolset_Relationship_Role_Parent()
|
315 |
+
),
|
316 |
+
$association_query->element_id_and_domain(
|
317 |
+
$related_item_two,
|
318 |
+
Toolset_Element_Domain::POSTS,
|
319 |
+
new Toolset_Relationship_Role_Intermediary()
|
320 |
+
),
|
321 |
+
$association_query->element_id_and_domain(
|
322 |
+
$related_item_two,
|
323 |
+
Toolset_Element_Domain::POSTS,
|
324 |
+
new Toolset_Relationship_Role_Child()
|
325 |
+
)
|
326 |
+
)
|
327 |
+
)
|
328 |
+
);
|
329 |
+
$association_query->limit( 1 );
|
330 |
+
|
331 |
+
$associations = $association_query->get_results();
|
332 |
+
|
333 |
+
if ( $intermediary = $this->get_single_intermediary_id( $associations ) ) {
|
334 |
+
return $intermediary;
|
335 |
+
};
|
336 |
+
}
|
337 |
+
}
|
338 |
+
|
339 |
+
// no unique intermediary post found
|
340 |
+
return false;
|
341 |
+
}
|
342 |
+
|
343 |
/**
|
344 |
* @param $intermediary
|
345 |
*
|
356 |
|
357 |
return $intermediary->get_intermediary_id();
|
358 |
}
|
359 |
+
}
|
vendor/toolset/toolset-common/inc/autoloaded/upgrade/command/delete_obsolete_version_number_option.php
ADDED
@@ -0,0 +1,26 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
<?php
|
2 |
+
|
3 |
+
/**
|
4 |
+
* Delete an options which were used in the previous upgrade mechanism implementation.
|
5 |
+
*
|
6 |
+
* @since 2.6.5
|
7 |
+
*/
|
8 |
+
class Toolset_Upgrade_Command_Delete_Obsolete_Upgrade_Options implements IToolset_Upgrade_Command {
|
9 |
+
|
10 |
+
|
11 |
+
/**
|
12 |
+
* Run the command.
|
13 |
+
*
|
14 |
+
* @return Toolset_Result|Toolset_Result_Set
|
15 |
+
*/
|
16 |
+
public function run() {
|
17 |
+
delete_option( 'toolset_database_version' );
|
18 |
+
|
19 |
+
// This is still used but we need to reset it.
|
20 |
+
/** @var Toolset_Upgrade_Executed_Commands $executed_commands */
|
21 |
+
$executed_commands = Toolset_Singleton_Factory::get( 'Toolset_Upgrade_Executed_Commands' );
|
22 |
+
$executed_commands->reset();
|
23 |
+
|
24 |
+
return new Toolset_Result( true );
|
25 |
+
}
|
26 |
+
}
|
vendor/toolset/toolset-common/inc/autoloaded/upgrade/command/m2m_v1_database_structure_upgrade.php
CHANGED
@@ -10,7 +10,7 @@
|
|
10 |
* command aims at a specific database structure and by using hardcoded values (e.g. for table names)
|
11 |
* we're becoming immune even to unlikely changes like future renaming of tables or columns.
|
12 |
*
|
13 |
-
* Note: This
|
14 |
*
|
15 |
* @since 2.5.4
|
16 |
*/
|
@@ -32,15 +32,20 @@ class Toolset_Upgrade_Command_M2M_V1_Database_Structure_Upgrade implements ITool
|
|
32 |
private $next_type_set_id = 1;
|
33 |
|
34 |
|
|
|
|
|
|
|
35 |
/**
|
36 |
* Toolset_Upgrade_Command_M2M_V1_Database_Structure_Upgrade constructor.
|
37 |
*
|
38 |
* @param wpdb|null $wpdb_di
|
39 |
* @param Toolset_Relationship_Database_Operations|null $relationship_database_operations_di
|
|
|
40 |
*/
|
41 |
public function __construct(
|
42 |
wpdb $wpdb_di = null,
|
43 |
-
Toolset_Relationship_Database_Operations $relationship_database_operations_di = null
|
|
|
44 |
) {
|
45 |
if( null === $wpdb_di ) {
|
46 |
global $wpdb;
|
@@ -50,6 +55,7 @@ class Toolset_Upgrade_Command_M2M_V1_Database_Structure_Upgrade implements ITool
|
|
50 |
}
|
51 |
|
52 |
$this->_database_operations = $relationship_database_operations_di;
|
|
|
53 |
}
|
54 |
|
55 |
|
@@ -75,24 +81,30 @@ class Toolset_Upgrade_Command_M2M_V1_Database_Structure_Upgrade implements ITool
|
|
75 |
|
76 |
$results = new Toolset_Result_Set();
|
77 |
|
78 |
-
$this->create_post_type_set_table();
|
79 |
-
$this->transform_post_type_sets();
|
80 |
-
$this->change_relationship_type_column_datatypes();
|
81 |
|
82 |
-
$this->add_extra_relationship_columns();
|
83 |
-
$this->transform_extra_relationship_data();
|
84 |
-
$this->drop_relationship_extra_column();
|
85 |
|
86 |
-
$this->add_indexes_for_relationships_table();
|
87 |
|
88 |
-
$this->add_relationship_id_column_for_associations();
|
89 |
-
$this->transform_relationship_references_for_associations();
|
90 |
-
$this->remove_relationship_slug_column_for_associations();
|
91 |
|
92 |
-
$this->add_indexes_for_associations_table();
|
93 |
|
94 |
error_log( 'The routine Toolset_Upgrade_Command_M2M_V1_Database_Structure_Upgrade::run() has finished' );
|
95 |
|
|
|
|
|
|
|
|
|
|
|
|
|
96 |
return $results;
|
97 |
}
|
98 |
|
@@ -104,13 +116,38 @@ class Toolset_Upgrade_Command_M2M_V1_Database_Structure_Upgrade implements ITool
|
|
104 |
* @return bool
|
105 |
*/
|
106 |
private function is_database_already_up_to_date() {
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
107 |
$table_name = $this->get_type_set_table_name();
|
108 |
-
$
|
109 |
-
$type_set_table_already_exists = ( $this->wpdb->get_var( $
|
|
|
110 |
return $type_set_table_already_exists;
|
111 |
}
|
112 |
|
113 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
114 |
private function create_post_type_set_table() {
|
115 |
|
116 |
// Note that dbDelta is very sensitive about details, almost nothing here is arbitrary.
|
@@ -123,7 +160,9 @@ class Toolset_Upgrade_Command_M2M_V1_Database_Structure_Upgrade implements ITool
|
|
123 |
KEY type (type)
|
124 |
) {$this->wpdb->get_charset_collate()};";
|
125 |
|
126 |
-
self::dbdelta( $query );
|
|
|
|
|
127 |
}
|
128 |
|
129 |
|
@@ -132,11 +171,13 @@ class Toolset_Upgrade_Command_M2M_V1_Database_Structure_Upgrade implements ITool
|
|
132 |
"SELECT id, parent_types, child_types FROM {$this->get_relationships_table_name()}"
|
133 |
);
|
134 |
|
|
|
|
|
135 |
foreach( $relationships as $relationship ) {
|
136 |
$parent_types = $this->save_post_type_set( maybe_unserialize( $relationship->parent_types ) );
|
137 |
$child_types = $this->save_post_type_set( maybe_unserialize( $relationship->child_types ) );
|
138 |
|
139 |
-
$this->wpdb->update(
|
140 |
$this->get_relationships_table_name(),
|
141 |
array(
|
142 |
'parent_types' => $parent_types,
|
@@ -148,16 +189,22 @@ class Toolset_Upgrade_Command_M2M_V1_Database_Structure_Upgrade implements ITool
|
|
148 |
'%s',
|
149 |
'%d'
|
150 |
);
|
|
|
|
|
151 |
}
|
|
|
|
|
152 |
}
|
153 |
|
154 |
|
155 |
private function change_relationship_type_column_datatypes() {
|
156 |
-
$this->wpdb->query(
|
157 |
"ALTER TABLE {$this->get_relationships_table_name()}
|
158 |
MODIFY parent_types bigint(20) UNSIGNED NOT NULL DEFAULT 0,
|
159 |
MODIFY child_types bigint(20) UNSIGNED NOT NULL DEFAULT 0"
|
160 |
);
|
|
|
|
|
161 |
}
|
162 |
|
163 |
|
@@ -208,7 +255,7 @@ class Toolset_Upgrade_Command_M2M_V1_Database_Structure_Upgrade implements ITool
|
|
208 |
|
209 |
|
210 |
private function add_extra_relationship_columns() {
|
211 |
-
$this->wpdb->query(
|
212 |
"ALTER TABLE {$this->get_relationships_table_name()}
|
213 |
CHANGE COLUMN display_name display_name_plural varchar(255) NOT NULL DEFAULT '',
|
214 |
ADD COLUMN display_name_singular varchar(255) NOT NULL DEFAULT '',
|
@@ -218,6 +265,8 @@ class Toolset_Upgrade_Command_M2M_V1_Database_Structure_Upgrade implements ITool
|
|
218 |
ADD COLUMN needs_legacy_support tinyint(1) NOT NULL DEFAULT 0,
|
219 |
ADD COLUMN is_active tinyint(1) NOT NULL DEFAULT 0"
|
220 |
);
|
|
|
|
|
221 |
}
|
222 |
|
223 |
|
@@ -226,10 +275,12 @@ class Toolset_Upgrade_Command_M2M_V1_Database_Structure_Upgrade implements ITool
|
|
226 |
"SELECT id, extra FROM {$this->get_relationships_table_name()}"
|
227 |
);
|
228 |
|
|
|
|
|
229 |
foreach( $relationships as $relationship ) {
|
230 |
$extra_data = maybe_unserialize( $relationship->extra );
|
231 |
|
232 |
-
$this->wpdb->update(
|
233 |
$this->get_relationships_table_name(),
|
234 |
array(
|
235 |
'role_name_parent' => 'parent',
|
@@ -243,34 +294,44 @@ class Toolset_Upgrade_Command_M2M_V1_Database_Structure_Upgrade implements ITool
|
|
243 |
array( '%s', '%s', '%s', '%d', '%d', '%s' ),
|
244 |
'%d'
|
245 |
);
|
|
|
|
|
246 |
}
|
|
|
|
|
247 |
}
|
248 |
|
249 |
|
250 |
private function drop_relationship_extra_column() {
|
251 |
-
$this->wpdb->query(
|
252 |
"ALTER TABLE {$this->get_relationships_table_name()}
|
253 |
DROP COLUMN extra"
|
254 |
);
|
|
|
|
|
255 |
}
|
256 |
|
257 |
|
258 |
private function add_indexes_for_relationships_table() {
|
259 |
-
$this->wpdb->query(
|
260 |
"ALTER TABLE {$this->get_relationships_table_name()}
|
261 |
ADD INDEX is_active (is_active),
|
262 |
ADD INDEX needs_legacy_support (needs_legacy_support),
|
263 |
ADD INDEX parent_type (parent_domain, parent_types),
|
264 |
ADD INDEX child_type (child_domain, child_types)"
|
265 |
);
|
|
|
|
|
266 |
}
|
267 |
|
268 |
|
269 |
private function add_relationship_id_column_for_associations() {
|
270 |
-
$this->wpdb->query(
|
271 |
"ALTER TABLE {$this->get_associations_table_name()}
|
272 |
ADD COLUMN relationship_id bigint(20) UNSIGNED NOT NULL"
|
273 |
);
|
|
|
|
|
274 |
}
|
275 |
|
276 |
|
@@ -279,32 +340,42 @@ class Toolset_Upgrade_Command_M2M_V1_Database_Structure_Upgrade implements ITool
|
|
279 |
"SELECT id, slug FROM {$this->get_relationships_table_name()}"
|
280 |
);
|
281 |
|
|
|
|
|
282 |
foreach( $relationships as $relationship ) {
|
283 |
-
$this->wpdb->update(
|
284 |
$this->get_associations_table_name(),
|
285 |
array( 'relationship_id' => $relationship->id ),
|
286 |
array( 'relationship' => $relationship->slug ),
|
287 |
'%d',
|
288 |
'%s'
|
289 |
);
|
|
|
|
|
290 |
}
|
|
|
|
|
291 |
}
|
292 |
|
293 |
|
294 |
private function remove_relationship_slug_column_for_associations() {
|
295 |
-
$this->wpdb->query(
|
296 |
"ALTER TABLE {$this->get_associations_table_name()}
|
297 |
DROP COLUMN relationship"
|
298 |
);
|
|
|
|
|
299 |
}
|
300 |
|
301 |
|
302 |
private function add_indexes_for_associations_table() {
|
303 |
-
$this->wpdb->query(
|
304 |
"ALTER TABLE {$this->get_associations_table_name()}
|
305 |
ADD INDEX relationship_id (relationship_id),
|
306 |
ADD INDEX parent_id (parent_id, relationship_id),
|
307 |
ADD INDEX child_id (child_id, relationship_id)"
|
308 |
);
|
|
|
|
|
309 |
}
|
310 |
}
|
10 |
* command aims at a specific database structure and by using hardcoded values (e.g. for table names)
|
11 |
* we're becoming immune even to unlikely changes like future renaming of tables or columns.
|
12 |
*
|
13 |
+
* Note: This might fail terribly if executed for the second time.
|
14 |
*
|
15 |
* @since 2.5.4
|
16 |
*/
|
32 |
private $next_type_set_id = 1;
|
33 |
|
34 |
|
35 |
+
private $constants;
|
36 |
+
|
37 |
+
|
38 |
/**
|
39 |
* Toolset_Upgrade_Command_M2M_V1_Database_Structure_Upgrade constructor.
|
40 |
*
|
41 |
* @param wpdb|null $wpdb_di
|
42 |
* @param Toolset_Relationship_Database_Operations|null $relationship_database_operations_di
|
43 |
+
* @param Toolset_Constants|null $constants_di
|
44 |
*/
|
45 |
public function __construct(
|
46 |
wpdb $wpdb_di = null,
|
47 |
+
Toolset_Relationship_Database_Operations $relationship_database_operations_di = null,
|
48 |
+
Toolset_Constants $constants_di = null
|
49 |
) {
|
50 |
if( null === $wpdb_di ) {
|
51 |
global $wpdb;
|
55 |
}
|
56 |
|
57 |
$this->_database_operations = $relationship_database_operations_di;
|
58 |
+
$this->constants = $constants_di ?: new Toolset_Constants();
|
59 |
}
|
60 |
|
61 |
|
81 |
|
82 |
$results = new Toolset_Result_Set();
|
83 |
|
84 |
+
$results->add( $this->create_post_type_set_table() );
|
85 |
+
$results->add( $this->transform_post_type_sets() );
|
86 |
+
$results->add( $this->change_relationship_type_column_datatypes() );
|
87 |
|
88 |
+
$results->add( $this->add_extra_relationship_columns() );
|
89 |
+
$results->add( $this->transform_extra_relationship_data() );
|
90 |
+
$results->add( $this->drop_relationship_extra_column() );
|
91 |
|
92 |
+
$results->add( $this->add_indexes_for_relationships_table() );
|
93 |
|
94 |
+
$results->add( $this->add_relationship_id_column_for_associations() );
|
95 |
+
$results->add( $this->transform_relationship_references_for_associations() );
|
96 |
+
$results->add( $this->remove_relationship_slug_column_for_associations() );
|
97 |
|
98 |
+
$results->add( $this->add_indexes_for_associations_table() );
|
99 |
|
100 |
error_log( 'The routine Toolset_Upgrade_Command_M2M_V1_Database_Structure_Upgrade::run() has finished' );
|
101 |
|
102 |
+
// This is a very basic check since dbDelta has a very bad way of reporting operation results.
|
103 |
+
// But if this detects a failure, we *know* for sure something went really wrong.
|
104 |
+
if( ! $this->is_database_already_up_to_date() ) {
|
105 |
+
$results->add( false, 'The m2m-v1 database structure upgrade to m2m-v2 seems to have failed.' );
|
106 |
+
}
|
107 |
+
|
108 |
return $results;
|
109 |
}
|
110 |
|
116 |
* @return bool
|
117 |
*/
|
118 |
private function is_database_already_up_to_date() {
|
119 |
+
return (
|
120 |
+
$this->is_type_set_table_present()
|
121 |
+
&& $this->are_new_relationship_columns_present()
|
122 |
+
);
|
123 |
+
}
|
124 |
+
|
125 |
+
|
126 |
+
private function is_type_set_table_present() {
|
127 |
$table_name = $this->get_type_set_table_name();
|
128 |
+
$type_set_table_query = $this->wpdb->prepare( 'SHOW TABLES LIKE %s', $table_name );
|
129 |
+
$type_set_table_already_exists = ( $this->wpdb->get_var( $type_set_table_query ) == $table_name );
|
130 |
+
|
131 |
return $type_set_table_already_exists;
|
132 |
}
|
133 |
|
134 |
|
135 |
+
private function are_new_relationship_columns_present() {
|
136 |
+
$relationship_column_query = "SELECT *
|
137 |
+
FROM information_schema.COLUMNS
|
138 |
+
WHERE
|
139 |
+
TABLE_NAME = '{$this->get_relationships_table_name()}'
|
140 |
+
AND TABLE_SCHEMA = '{$this->constants->constant( 'DB_NAME' )}'
|
141 |
+
AND COLUMN_NAME IN (
|
142 |
+
'display_name_plural', 'display_name_singular', 'role_name_parent', 'role_name_child',
|
143 |
+
'role_name_intermediary', 'needs_legacy_support', 'is_active'
|
144 |
+
)";
|
145 |
+
|
146 |
+
$results = $this->wpdb->get_results( $relationship_column_query );
|
147 |
+
return ( count( $results ) === 7 );
|
148 |
+
}
|
149 |
+
|
150 |
+
|
151 |
private function create_post_type_set_table() {
|
152 |
|
153 |
// Note that dbDelta is very sensitive about details, almost nothing here is arbitrary.
|
160 |
KEY type (type)
|
161 |
) {$this->wpdb->get_charset_collate()};";
|
162 |
|
163 |
+
$output = self::dbdelta( $query );
|
164 |
+
|
165 |
+
return new Toolset_Result( true, implode( "\n", $output ) );
|
166 |
}
|
167 |
|
168 |
|
171 |
"SELECT id, parent_types, child_types FROM {$this->get_relationships_table_name()}"
|
172 |
);
|
173 |
|
174 |
+
$results = new Toolset_Result_Set();
|
175 |
+
|
176 |
foreach( $relationships as $relationship ) {
|
177 |
$parent_types = $this->save_post_type_set( maybe_unserialize( $relationship->parent_types ) );
|
178 |
$child_types = $this->save_post_type_set( maybe_unserialize( $relationship->child_types ) );
|
179 |
|
180 |
+
$output = $this->wpdb->update(
|
181 |
$this->get_relationships_table_name(),
|
182 |
array(
|
183 |
'parent_types' => $parent_types,
|
189 |
'%s',
|
190 |
'%d'
|
191 |
);
|
192 |
+
|
193 |
+
$results->add( false !== $output, $this->wpdb->last_error );
|
194 |
}
|
195 |
+
|
196 |
+
return $results;
|
197 |
}
|
198 |
|
199 |
|
200 |
private function change_relationship_type_column_datatypes() {
|
201 |
+
$output = $this->wpdb->query(
|
202 |
"ALTER TABLE {$this->get_relationships_table_name()}
|
203 |
MODIFY parent_types bigint(20) UNSIGNED NOT NULL DEFAULT 0,
|
204 |
MODIFY child_types bigint(20) UNSIGNED NOT NULL DEFAULT 0"
|
205 |
);
|
206 |
+
|
207 |
+
return new Toolset_Result( false !== $output, $this->wpdb->last_error );
|
208 |
}
|
209 |
|
210 |
|
255 |
|
256 |
|
257 |
private function add_extra_relationship_columns() {
|
258 |
+
$output = $this->wpdb->query(
|
259 |
"ALTER TABLE {$this->get_relationships_table_name()}
|
260 |
CHANGE COLUMN display_name display_name_plural varchar(255) NOT NULL DEFAULT '',
|
261 |
ADD COLUMN display_name_singular varchar(255) NOT NULL DEFAULT '',
|
265 |
ADD COLUMN needs_legacy_support tinyint(1) NOT NULL DEFAULT 0,
|
266 |
ADD COLUMN is_active tinyint(1) NOT NULL DEFAULT 0"
|
267 |
);
|
268 |
+
|
269 |
+
return new Toolset_Result( false !== $output, $this->wpdb->last_error );
|
270 |
}
|
271 |
|
272 |
|
275 |
"SELECT id, extra FROM {$this->get_relationships_table_name()}"
|
276 |
);
|
277 |
|
278 |
+
$results = new Toolset_Result_Set();
|
279 |
+
|
280 |
foreach( $relationships as $relationship ) {
|
281 |
$extra_data = maybe_unserialize( $relationship->extra );
|
282 |
|
283 |
+
$output = $this->wpdb->update(
|
284 |
$this->get_relationships_table_name(),
|
285 |
array(
|
286 |
'role_name_parent' => 'parent',
|
294 |
array( '%s', '%s', '%s', '%d', '%d', '%s' ),
|
295 |
'%d'
|
296 |
);
|
297 |
+
|
298 |
+
$results->add( false !== $output, $this->wpdb->last_error );
|
299 |
}
|
300 |
+
|
301 |
+
return $results;
|
302 |
}
|
303 |
|
304 |
|
305 |
private function drop_relationship_extra_column() {
|
306 |
+
$output = $this->wpdb->query(
|
307 |
"ALTER TABLE {$this->get_relationships_table_name()}
|
308 |
DROP COLUMN extra"
|
309 |
);
|
310 |
+
|
311 |
+
return new Toolset_Result( false !== $output, $this->wpdb->last_error );
|
312 |
}
|
313 |
|
314 |
|
315 |
private function add_indexes_for_relationships_table() {
|
316 |
+
$output = $this->wpdb->query(
|
317 |
"ALTER TABLE {$this->get_relationships_table_name()}
|
318 |
ADD INDEX is_active (is_active),
|
319 |
ADD INDEX needs_legacy_support (needs_legacy_support),
|
320 |
ADD INDEX parent_type (parent_domain, parent_types),
|
321 |
ADD INDEX child_type (child_domain, child_types)"
|
322 |
);
|
323 |
+
|
324 |
+
return new Toolset_Result( false !== $output, $this->wpdb->last_error );
|
325 |
}
|
326 |
|
327 |
|
328 |
private function add_relationship_id_column_for_associations() {
|
329 |
+
$output = $this->wpdb->query(
|
330 |
"ALTER TABLE {$this->get_associations_table_name()}
|
331 |
ADD COLUMN relationship_id bigint(20) UNSIGNED NOT NULL"
|
332 |
);
|
333 |
+
|
334 |
+
return new Toolset_Result( false !== $output, $this->wpdb->last_error );
|
335 |
}
|
336 |
|
337 |
|
340 |
"SELECT id, slug FROM {$this->get_relationships_table_name()}"
|
341 |
);
|
342 |
|
343 |
+
$results = new Toolset_Result_Set();
|
344 |
+
|
345 |
foreach( $relationships as $relationship ) {
|
346 |
+
$output = $this->wpdb->update(
|
347 |
$this->get_associations_table_name(),
|
348 |
array( 'relationship_id' => $relationship->id ),
|
349 |
array( 'relationship' => $relationship->slug ),
|
350 |
'%d',
|
351 |
'%s'
|
352 |
);
|
353 |
+
|
354 |
+
$results->add( false !== $output, $this->wpdb->last_error );
|
355 |
}
|
356 |
+
|
357 |
+
return $results;
|
358 |
}
|
359 |
|
360 |
|
361 |
private function remove_relationship_slug_column_for_associations() {
|
362 |
+
$output = $this->wpdb->query(
|
363 |
"ALTER TABLE {$this->get_associations_table_name()}
|
364 |
DROP COLUMN relationship"
|
365 |
);
|
366 |
+
|
367 |
+
return new Toolset_Result( false !== $output, $this->wpdb->last_error );
|
368 |
}
|
369 |
|
370 |
|
371 |
private function add_indexes_for_associations_table() {
|
372 |
+
$output = $this->wpdb->query(
|
373 |
"ALTER TABLE {$this->get_associations_table_name()}
|
374 |
ADD INDEX relationship_id (relationship_id),
|
375 |
ADD INDEX parent_id (parent_id, relationship_id),
|
376 |
ADD INDEX child_id (child_id, relationship_id)"
|
377 |
);
|
378 |
+
|
379 |
+
return new Toolset_Result( false !== $output, $this->wpdb->last_error );
|
380 |
}
|
381 |
}
|
vendor/toolset/toolset-common/inc/autoloaded/upgrade/command/m2m_v2_database_structure_upgrade.php
ADDED
@@ -0,0 +1,118 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
<?php
|
2 |
+
|
3 |
+
/**
|
4 |
+
* Transform the m2m table structures and data from the m2m-v2 beta release to m2m-v3 beta.
|
5 |
+
*
|
6 |
+
* Note: This will fail terribly if executed for the second time.
|
7 |
+
*
|
8 |
+
* @since m2m
|
9 |
+
*/
|
10 |
+
class Toolset_Upgrade_Command_M2M_V2_Database_Structure_Upgrade implements IToolset_Upgrade_Command {
|
11 |
+
|
12 |
+
|
13 |
+
/** @var wpdb */
|
14 |
+
private $wpdb;
|
15 |
+
|
16 |
+
|
17 |
+
/** @var Toolset_Relationship_Database_Operations|null */
|
18 |
+
private $_database_operations;
|
19 |
+
|
20 |
+
|
21 |
+
/**
|
22 |
+
* Toolset_Upgrade_Command_M2M_V2_Database_Structure_Upgrade constructor.
|
23 |
+
*
|
24 |
+
* @param wpdb|null $wpdb_di
|
25 |
+
* @param Toolset_Relationship_Database_Operations|null $relationship_database_operations_di
|
26 |
+
*/
|
27 |
+
public function __construct(
|
28 |
+
wpdb $wpdb_di = null,
|
29 |
+
Toolset_Relationship_Database_Operations $relationship_database_operations_di = null
|
30 |
+
) {
|
31 |
+
if( null === $wpdb_di ) {
|
32 |
+
global $wpdb;
|
33 |
+
$this->wpdb = $wpdb;
|
34 |
+
} else {
|
35 |
+
$this->wpdb = $wpdb_di;
|
36 |
+
}
|
37 |
+
|
38 |
+
$this->_database_operations = $relationship_database_operations_di;
|
39 |
+
}
|
40 |
+
|
41 |
+
|
42 |
+
/**
|
43 |
+
* Run the command.
|
44 |
+
*
|
45 |
+
* @return Toolset_Result|Toolset_Result_Set
|
46 |
+
*/
|
47 |
+
public function run() {
|
48 |
+
|
49 |
+
if( ! apply_filters( 'toolset_is_m2m_enabled', false ) ) {
|
50 |
+
// Nothing to do here: The tables will be created as soon as m2m is activated for the first time.
|
51 |
+
return new Toolset_Result( true );
|
52 |
+
}
|
53 |
+
|
54 |
+
if( $this->is_database_already_up_to_date() ) {
|
55 |
+
// Nothing to do here: This happens when Types is activated on a fresh site: It creates
|
56 |
+
// the tables according to the new structure but runs the upgrade routine at the same time.
|
57 |
+
return new Toolset_Result( true );
|
58 |
+
}
|
59 |
+
|
60 |
+
error_log( 'The routine Toolset_Upgrade_Command_M2M_V2_Database_Structure_Upgrade::run() is starting' );
|
61 |
+
|
62 |
+
$results = new Toolset_Result_Set();
|
63 |
+
|
64 |
+
$results->add( $this->update_relationships_table() );
|
65 |
+
|
66 |
+
error_log( 'The routine Toolset_Upgrade_Command_M2M_V2_Database_Structure_Upgrade::run() has finished' );
|
67 |
+
|
68 |
+
return $results;
|
69 |
+
}
|
70 |
+
|
71 |
+
|
72 |
+
/**
|
73 |
+
* If role_name_parent_plural exists in relationship database, it means that we're dealing with a more recent database structure than this
|
74 |
+
* command aims to improve.
|
75 |
+
*
|
76 |
+
* @return bool
|
77 |
+
* @since m2m
|
78 |
+
*/
|
79 |
+
private function is_database_already_up_to_date() {
|
80 |
+
$table_name = $this->get_relationships_table_name();
|
81 |
+
$query = $this->wpdb->prepare( "SHOW COLUMNS FROM {$table_name} WHERE field = %s", 'role_label_parent_plural' );
|
82 |
+
$row = $this->wpdb->get_row( $query );
|
83 |
+
$is_updated = ! empty( $row );
|
84 |
+
return $is_updated;
|
85 |
+
}
|
86 |
+
|
87 |
+
|
88 |
+
private function update_relationships_table() {
|
89 |
+
|
90 |
+
$query = "ALTER TABLE `{$this->get_relationships_table_name()}`
|
91 |
+
ADD `role_label_parent_singular` VARCHAR(255) NOT NULL AFTER `role_name_intermediary`,
|
92 |
+
ADD `role_label_child_singular` VARCHAR(255) NOT NULL AFTER `role_label_parent_singular`,
|
93 |
+
ADD `role_label_parent_plural` VARCHAR(255) NOT NULL AFTER `role_label_child_singular`,
|
94 |
+
ADD `role_label_child_plural` VARCHAR(255) NOT NULL AFTER `role_label_parent_plural`";
|
95 |
+
|
96 |
+
$this->wpdb->query( $query );
|
97 |
+
|
98 |
+
return true;
|
99 |
+
}
|
100 |
+
|
101 |
+
|
102 |
+
/**
|
103 |
+
* Execute a dbDelta() query, ensuring that the function is available.
|
104 |
+
*
|
105 |
+
* @param string $query MySQL query.
|
106 |
+
*
|
107 |
+
* @return array dbDelta return value.
|
108 |
+
*/
|
109 |
+
private static function dbdelta( $query ) {
|
110 |
+
require_once( ABSPATH . 'wp-admin/includes/upgrade.php' );
|
111 |
+
return dbDelta( $query );
|
112 |
+
}
|
113 |
+
|
114 |
+
|
115 |
+
private function get_relationships_table_name() {
|
116 |
+
return $this->wpdb->prefix . 'toolset_relationships';
|
117 |
+
}
|
118 |
+
}
|
vendor/toolset/toolset-common/inc/autoloaded/upgrade/command_definition.php
CHANGED
@@ -52,7 +52,7 @@ class Toolset_Upgrade_Command_Definition {
|
|
52 |
* @return bool
|
53 |
*/
|
54 |
public function should_run( $from_version, /** @noinspection PhpUnusedParameterInspection */ $to_version ) {
|
55 |
-
return ( $from_version < $this->upgrade_version );
|
56 |
}
|
57 |
|
58 |
|
52 |
* @return bool
|
53 |
*/
|
54 |
public function should_run( $from_version, /** @noinspection PhpUnusedParameterInspection */ $to_version ) {
|
55 |
+
return ( $from_version < $this->upgrade_version && $this->upgrade_version <= $to_version );
|
56 |
}
|
57 |
|
58 |
|
vendor/toolset/toolset-common/inc/autoloaded/upgrade/command_definition_repository.php
CHANGED
@@ -12,13 +12,31 @@ class Toolset_Upgrade_Command_Definition_Repository {
|
|
12 |
public function get_commands() {
|
13 |
|
14 |
$upgrade_commands = array(
|
15 |
-
|
|
|
|
|
|
|
16 |
'Toolset_Upgrade_Command_M2M_V1_Database_Structure_Upgrade',
|
17 |
-
|
18 |
-
|
|
|
|
|
19 |
);
|
20 |
|
21 |
return $upgrade_commands;
|
22 |
}
|
23 |
|
24 |
-
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
12 |
public function get_commands() {
|
13 |
|
14 |
$upgrade_commands = array(
|
15 |
+
$this->definition(
|
16 |
+
'Toolset_Upgrade_Command_Delete_Obsolete_Upgrade_Options',
|
17 |
+
1 ),
|
18 |
+
$this->definition(
|
19 |
'Toolset_Upgrade_Command_M2M_V1_Database_Structure_Upgrade',
|
20 |
+
2 ),
|
21 |
+
$this->definition(
|
22 |
+
'Toolset_Upgrade_Command_M2M_V2_Database_Structure_Upgrade',
|
23 |
+
3 ),
|
24 |
);
|
25 |
|
26 |
return $upgrade_commands;
|
27 |
}
|
28 |
|
29 |
+
|
30 |
+
/**
|
31 |
+
* @param string $command_class_name
|
32 |
+
* @param int $upgrade_version
|
33 |
+
*
|
34 |
+
* @return Toolset_Upgrade_Command_Definition
|
35 |
+
*/
|
36 |
+
private function definition( $command_class_name, $upgrade_version ) {
|
37 |
+
return new Toolset_Upgrade_Command_Definition(
|
38 |
+
$command_class_name, $upgrade_version
|
39 |
+
);
|
40 |
+
}
|
41 |
+
|
42 |
+
}
|
vendor/toolset/toolset-common/inc/autoloaded/upgrade/command_interface.php
CHANGED
@@ -8,6 +8,8 @@
|
|
8 |
* WARNING: Since it's very difficult to recover from any errors that occur during the upgrade, it is extremely
|
9 |
* important to have the commands thoroughly covered by unit tests and well-tested.
|
10 |
*
|
|
|
|
|
11 |
* @since 2.5.3
|
12 |
*/
|
13 |
interface IToolset_Upgrade_Command {
|
8 |
* WARNING: Since it's very difficult to recover from any errors that occur during the upgrade, it is extremely
|
9 |
* important to have the commands thoroughly covered by unit tests and well-tested.
|
10 |
*
|
11 |
+
* Each command's run() method must be idempotent.
|
12 |
+
*
|
13 |
* @since 2.5.3
|
14 |
*/
|
15 |
interface IToolset_Upgrade_Command {
|
vendor/toolset/toolset-common/inc/autoloaded/upgrade/controller.php
CHANGED
@@ -2,7 +2,7 @@
|
|
2 |
|
3 |
/**
|
4 |
* Toolset Common Library upgrade mechanism.
|
5 |
-
*
|
6 |
* Compares a number of the library version in database with the current one. If the current version is lower,
|
7 |
* it executes all the commands defined in get_upgrade_commands() and updates the database.
|
8 |
*
|
@@ -16,7 +16,7 @@ class Toolset_Upgrade_Controller {
|
|
16 |
|
17 |
|
18 |
/** Name of the option used to store version number. */
|
19 |
-
const
|
20 |
|
21 |
|
22 |
/** @var Toolset_Upgrade_Controller */
|
@@ -92,9 +92,9 @@ class Toolset_Upgrade_Controller {
|
|
92 |
}
|
93 |
|
94 |
// This is required by the tcl-status plugin.
|
95 |
-
if( apply_filters( 'toolset_disable_upgrade_routine', false ) ) {
|
96 |
-
|
97 |
-
}
|
98 |
|
99 |
$this->do_upgrade( $database_version, $library_version );
|
100 |
}
|
@@ -109,8 +109,8 @@ class Toolset_Upgrade_Controller {
|
|
109 |
*/
|
110 |
private function get_library_version() {
|
111 |
$version = (
|
112 |
-
$this->constants->defined( '
|
113 |
-
? (int) $this->constants->constant( '
|
114 |
: 0
|
115 |
);
|
116 |
|
@@ -125,7 +125,7 @@ class Toolset_Upgrade_Controller {
|
|
125 |
* @since m2m
|
126 |
*/
|
127 |
private function get_database_version() {
|
128 |
-
$version = (int) get_option( self::
|
129 |
|
130 |
return $version;
|
131 |
}
|
@@ -139,22 +139,21 @@ class Toolset_Upgrade_Controller {
|
|
139 |
*/
|
140 |
private function update_database_version( $version_number ) {
|
141 |
if( is_numeric( $version_number ) ) {
|
142 |
-
update_option( self::
|
143 |
}
|
144 |
}
|
145 |
|
146 |
|
147 |
/**
|
148 |
* Perform the actual upgrade.
|
149 |
-
*
|
150 |
* @param int $from_version
|
151 |
* @param int $to_version
|
152 |
*/
|
153 |
private function do_upgrade( $from_version, $to_version ) {
|
154 |
|
155 |
-
$this->update_database_version( $to_version );
|
156 |
-
|
157 |
$command_definitions = $this->get_upgrade_commands();
|
|
|
158 |
|
159 |
foreach ( $command_definitions as $command_definition ) {
|
160 |
|
@@ -169,25 +168,73 @@ class Toolset_Upgrade_Controller {
|
|
169 |
if ( defined( 'WP_DEBUG' ) && WP_DEBUG ) {
|
170 |
|
171 |
$command = $command_definition->get_command();
|
172 |
-
$command->run();
|
173 |
|
174 |
} else {
|
175 |
// Ignore errors as we don't have a proper way to display any output from this yet.
|
176 |
try {
|
177 |
$command = $command_definition->get_command();
|
178 |
-
$command->run();
|
179 |
} catch ( Throwable $e ) {
|
180 |
// PHP 7
|
181 |
-
|
|
|
|
|
|
|
182 |
// PHP 5
|
|
|
183 |
}
|
184 |
}
|
185 |
|
186 |
-
$
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
187 |
}
|
188 |
}
|
189 |
|
190 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
191 |
/**
|
192 |
* Get the upgrade commands to consider.
|
193 |
*
|
@@ -211,11 +258,11 @@ class Toolset_Upgrade_Controller {
|
|
211 |
*/
|
212 |
public function get_executed_commands() {
|
213 |
if( null === $this->_executed_commands ) {
|
214 |
-
$this->_executed_commands =
|
215 |
}
|
216 |
|
217 |
return $this->_executed_commands;
|
218 |
}
|
219 |
|
220 |
|
221 |
-
}
|
2 |
|
3 |
/**
|
4 |
* Toolset Common Library upgrade mechanism.
|
5 |
+
*
|
6 |
* Compares a number of the library version in database with the current one. If the current version is lower,
|
7 |
* it executes all the commands defined in get_upgrade_commands() and updates the database.
|
8 |
*
|
16 |
|
17 |
|
18 |
/** Name of the option used to store version number. */
|
19 |
+
const DATABASE_VERSION_OPTION_NUMBER = 'toolset_data_structure_version';
|
20 |
|
21 |
|
22 |
/** @var Toolset_Upgrade_Controller */
|
92 |
}
|
93 |
|
94 |
// This is required by the tcl-status plugin.
|
95 |
+
// if( apply_filters( 'toolset_disable_upgrade_routine', false ) ) {
|
96 |
+
// return;
|
97 |
+
// }
|
98 |
|
99 |
$this->do_upgrade( $database_version, $library_version );
|
100 |
}
|
109 |
*/
|
110 |
private function get_library_version() {
|
111 |
$version = (
|
112 |
+
$this->constants->defined( 'TOOLSET_DATA_STRUCTURE_VERSION' )
|
113 |
+
? (int) $this->constants->constant( 'TOOLSET_DATA_STRUCTURE_VERSION' )
|
114 |
: 0
|
115 |
);
|
116 |
|
125 |
* @since m2m
|
126 |
*/
|
127 |
private function get_database_version() {
|
128 |
+
$version = (int) get_option( self::DATABASE_VERSION_OPTION_NUMBER, 0 );
|
129 |
|
130 |
return $version;
|
131 |
}
|
139 |
*/
|
140 |
private function update_database_version( $version_number ) {
|
141 |
if( is_numeric( $version_number ) ) {
|
142 |
+
update_option( self::DATABASE_VERSION_OPTION_NUMBER, (int) $version_number, true );
|
143 |
}
|
144 |
}
|
145 |
|
146 |
|
147 |
/**
|
148 |
* Perform the actual upgrade.
|
149 |
+
*
|
150 |
* @param int $from_version
|
151 |
* @param int $to_version
|
152 |
*/
|
153 |
private function do_upgrade( $from_version, $to_version ) {
|
154 |
|
|
|
|
|
155 |
$command_definitions = $this->get_upgrade_commands();
|
156 |
+
$final_result = new Toolset_Result_Set();
|
157 |
|
158 |
foreach ( $command_definitions as $command_definition ) {
|
159 |
|
168 |
if ( defined( 'WP_DEBUG' ) && WP_DEBUG ) {
|
169 |
|
170 |
$command = $command_definition->get_command();
|
171 |
+
$result = $command->run();
|
172 |
|
173 |
} else {
|
174 |
// Ignore errors as we don't have a proper way to display any output from this yet.
|
175 |
try {
|
176 |
$command = $command_definition->get_command();
|
177 |
+
$result = $command->run();
|
178 |
} catch ( Throwable $e ) {
|
179 |
// PHP 7
|
180 |
+
$result = new Toolset_Result( $e );
|
181 |
+
} /** @noinspection PhpRedundantCatchClauseInspection */
|
182 |
+
/** @noinspection PhpWrongCatchClausesOrderInspection */
|
183 |
+
catch ( Exception $e ) {
|
184 |
// PHP 5
|
185 |
+
$result = new Toolset_Result( $e );
|
186 |
}
|
187 |
}
|
188 |
|
189 |
+
$is_success = (
|
190 |
+
( $result instanceof Toolset_Result && $result->is_success() )
|
191 |
+
|| ( $result instanceof Toolset_Result_Set && $result->is_complete_success() )
|
192 |
+
);
|
193 |
+
|
194 |
+
if( $is_success ) {
|
195 |
+
$this->get_executed_commands()->add_executed_command( $command_definition->get_command_name() );
|
196 |
+
}
|
197 |
+
|
198 |
+
$final_result->add( $result );
|
199 |
+
}
|
200 |
+
|
201 |
+
// Only consider the database updated when everything has succeeded.
|
202 |
+
if( ! $final_result->has_results() || $final_result->is_complete_success() ) {
|
203 |
+
$this->update_database_version( $to_version );
|
204 |
+
} else {
|
205 |
+
$this->show_error_notice( $final_result );
|
206 |
}
|
207 |
}
|
208 |
|
209 |
|
210 |
+
/**
|
211 |
+
* Show an undismissible temporary error message with upgrade results.
|
212 |
+
*
|
213 |
+
* @param Toolset_Result_Set $results
|
214 |
+
* @since 2.6.4
|
215 |
+
*/
|
216 |
+
private function show_error_notice( Toolset_Result_Set $results ) {
|
217 |
+
$notice = new Toolset_Admin_Notice_Error(
|
218 |
+
'toolset-database-upgrade-error',
|
219 |
+
'<p>'
|
220 |
+
. __( 'Oops! There\'s been a problem when upgrading Toolset data structures. Please make sure your current configuration allows WordPress to alter database tables.', 'wpcf' )
|
221 |
+
. sprintf(
|
222 |
+
__( 'If the problem persists, please don\'t hesitate to contact %sour support%s with this technical information:', 'wpcf' ),
|
223 |
+
'<a href="https://toolset.com/forums/forum/professional-support/" target="_blank">',
|
224 |
+
' <i class="fa fa-external-link"></i></a>'
|
225 |
+
)
|
226 |
+
. '</p>'
|
227 |
+
. '<p><code>' . $results->concat_messages( "\n" ) . '</code></p>'
|
228 |
+
);
|
229 |
+
|
230 |
+
$notice->set_is_dismissible_permanent( false );
|
231 |
+
$notice->set_is_dismissible_globally( false );
|
232 |
+
$notice->set_is_only_for_administrators( true );
|
233 |
+
|
234 |
+
Toolset_Admin_Notices_Manager::add_notice( $notice );
|
235 |
+
}
|
236 |
+
|
237 |
+
|
238 |
/**
|
239 |
* Get the upgrade commands to consider.
|
240 |
*
|
258 |
*/
|
259 |
public function get_executed_commands() {
|
260 |
if( null === $this->_executed_commands ) {
|
261 |
+
$this->_executed_commands = Toolset_Singleton_Factory::get( 'Toolset_Upgrade_Executed_Commands' );
|
262 |
}
|
263 |
|
264 |
return $this->_executed_commands;
|
265 |
}
|
266 |
|
267 |
|
268 |
+
}
|
vendor/toolset/toolset-common/inc/autoloaded/upgrade/executed_commands.php
CHANGED
@@ -55,4 +55,10 @@ class Toolset_Upgrade_Executed_Commands {
|
|
55 |
return $this->executed_commands;
|
56 |
}
|
57 |
|
|
|
|
|
|
|
|
|
|
|
|
|
58 |
}
|
55 |
return $this->executed_commands;
|
56 |
}
|
57 |
|
58 |
+
|
59 |
+
public function reset() {
|
60 |
+
$this->executed_commands = null;
|
61 |
+
delete_option( self::OPTION_NAME );
|
62 |
+
}
|
63 |
+
|
64 |
}
|
vendor/toolset/toolset-common/inc/autoloaded/wp_query_adjustments/abstract.php
CHANGED
@@ -70,15 +70,21 @@
|
|
70 |
*/
|
71 |
abstract class Toolset_Wp_Query_Adjustments extends Toolset_Wpdb_User {
|
72 |
|
|
|
73 |
// Must not be changed, third-party software depends on it.
|
74 |
const RELATIONSHIP_QUERY_ARG = 'toolset_relationships';
|
75 |
|
76 |
|
|
|
|
|
|
|
|
|
|
|
77 |
/**
|
78 |
* Initialize the query adjustments.
|
79 |
*/
|
80 |
public function initialize() {
|
81 |
-
add_action( 'pre_get_posts', array( $this, 'check_custom_query_args' ) );
|
82 |
}
|
83 |
|
84 |
|
70 |
*/
|
71 |
abstract class Toolset_Wp_Query_Adjustments extends Toolset_Wpdb_User {
|
72 |
|
73 |
+
|
74 |
// Must not be changed, third-party software depends on it.
|
75 |
const RELATIONSHIP_QUERY_ARG = 'toolset_relationships';
|
76 |
|
77 |
|
78 |
+
// The time when we store the toolset_relationships query argument during pre_get_posts.
|
79 |
+
// It needs to happen late so that other query modifications (also meta_query ones) can happen before.
|
80 |
+
const TIME_TO_STORE_RELATIONSHIPS_ARG = 10000;
|
81 |
+
|
82 |
+
|
83 |
/**
|
84 |
* Initialize the query adjustments.
|
85 |
*/
|
86 |
public function initialize() {
|
87 |
+
add_action( 'pre_get_posts', array( $this, 'check_custom_query_args' ), self::TIME_TO_STORE_RELATIONSHIPS_ARG );
|
88 |
}
|
89 |
|
90 |
|
vendor/toolset/toolset-common/inc/autoloaded/wp_query_adjustments/m2m.php
CHANGED
@@ -7,6 +7,10 @@
|
|
7 |
*
|
8 |
* See the superclass for details.
|
9 |
*
|
|
|
|
|
|
|
|
|
10 |
* @since 2.6.1
|
11 |
*/
|
12 |
class Toolset_Wp_Query_Adjustments_M2m extends Toolset_Wp_Query_Adjustments {
|
@@ -20,22 +24,28 @@ class Toolset_Wp_Query_Adjustments_M2m extends Toolset_Wp_Query_Adjustments {
|
|
20 |
private $_element_factory;
|
21 |
|
22 |
|
|
|
|
|
|
|
|
|
23 |
/**
|
24 |
* Toolset_Wp_Query_Adjustments_M2m constructor.
|
25 |
*
|
26 |
* @param wpdb|null $wpdb_di
|
27 |
* @param Toolset_Relationship_Database_Operations|null $database_operations_di
|
28 |
* @param Toolset_Element_Factory|null $element_factory_di
|
|
|
29 |
*/
|
30 |
public function __construct(
|
31 |
wpdb $wpdb_di = null,
|
32 |
Toolset_Relationship_Database_Operations $database_operations_di = null,
|
33 |
-
Toolset_Element_Factory $element_factory_di = null
|
34 |
-
|
35 |
) {
|
36 |
parent::__construct( $wpdb_di );
|
37 |
$this->_database_operations = $database_operations_di;
|
38 |
$this->_element_factory = $element_factory_di;
|
|
|
39 |
}
|
40 |
|
41 |
|
@@ -45,7 +55,11 @@ class Toolset_Wp_Query_Adjustments_M2m extends Toolset_Wp_Query_Adjustments {
|
|
45 |
public function initialize() {
|
46 |
parent::initialize();
|
47 |
|
48 |
-
|
|
|
|
|
|
|
|
|
49 |
|
50 |
add_filter( 'posts_where', array( $this, 'posts_where' ), 10, 2 );
|
51 |
add_filter( 'posts_join', array( $this, 'posts_join' ), 10, 2 );
|
@@ -59,9 +73,10 @@ class Toolset_Wp_Query_Adjustments_M2m extends Toolset_Wp_Query_Adjustments {
|
|
59 |
* @param WP_Query $wp_query
|
60 |
*
|
61 |
* @return string
|
62 |
-
* @throws Toolset_Element_Exception_Element_Doesnt_Exist
|
63 |
*/
|
64 |
public function posts_where( $where, $wp_query ) {
|
|
|
|
|
65 |
if( property_exists( $wp_query, self::RELATIONSHIP_QUERY_ARG ) ) {
|
66 |
$where = $this->add_relationship_query_where( $where, $wp_query->{self::RELATIONSHIP_QUERY_ARG}, $wp_query );
|
67 |
}
|
@@ -78,6 +93,8 @@ class Toolset_Wp_Query_Adjustments_M2m extends Toolset_Wp_Query_Adjustments {
|
|
78 |
* @return string
|
79 |
*/
|
80 |
public function posts_join( $join, $wp_query ) {
|
|
|
|
|
81 |
if( property_exists( $wp_query, self::RELATIONSHIP_QUERY_ARG ) ) {
|
82 |
$join = $this->add_relationship_query_join( $join, $wp_query );
|
83 |
}
|
@@ -91,13 +108,12 @@ class Toolset_Wp_Query_Adjustments_M2m extends Toolset_Wp_Query_Adjustments {
|
|
91 |
* @param WP_Query $wp_query
|
92 |
*
|
93 |
* @return string
|
94 |
-
* @throws Toolset_Element_Exception_Element_Doesnt_Exist
|
95 |
*/
|
96 |
private function add_relationship_query_where( $where, $relationship_query, WP_Query $wp_query ) {
|
97 |
$relationship_query = $this->normalize_relationship_query_args( $relationship_query );
|
98 |
|
99 |
foreach( $relationship_query as $query_condition ) {
|
100 |
-
$where .= ' ' . $this->
|
101 |
}
|
102 |
|
103 |
return $where;
|
@@ -110,7 +126,7 @@ class Toolset_Wp_Query_Adjustments_M2m extends Toolset_Wp_Query_Adjustments {
|
|
110 |
*
|
111 |
* @return string
|
112 |
*/
|
113 |
-
private function
|
114 |
$relationship_slug = $this->get_relationship_slug( $query_condition );
|
115 |
$related_to_post = $this->get_post( $query_condition );
|
116 |
|
@@ -120,15 +136,20 @@ class Toolset_Wp_Query_Adjustments_M2m extends Toolset_Wp_Query_Adjustments {
|
|
120 |
return ' AND 0 = 1 ';
|
121 |
}
|
122 |
|
123 |
-
$
|
124 |
-
$associations_table = $this->get_table_join_manager( $wp_query )->associations_table( $relationship_slug, $role_to_return );
|
125 |
|
|
|
126 |
$role_to_query_by = $this->get_role( $query_condition, 'role_to_query_by', $role_to_return );
|
|
|
|
|
|
|
|
|
|
|
127 |
$role_to_query_by_column = $this->get_database_operations()->role_to_column( $role_to_query_by );
|
128 |
|
129 |
$clause = $this->wpdb->prepare(
|
130 |
" AND $associations_table.$role_to_query_by_column = %d ",
|
131 |
-
$
|
132 |
);
|
133 |
|
134 |
return $clause;
|
@@ -222,6 +243,17 @@ class Toolset_Wp_Query_Adjustments_M2m extends Toolset_Wp_Query_Adjustments {
|
|
222 |
}
|
223 |
|
224 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
225 |
/**
|
226 |
* Get the "related_to" post from the query condition array.
|
227 |
*
|
@@ -248,4 +280,278 @@ class Toolset_Wp_Query_Adjustments_M2m extends Toolset_Wp_Query_Adjustments {
|
|
248 |
return $post;
|
249 |
}
|
250 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
251 |
}
|
7 |
*
|
8 |
* See the superclass for details.
|
9 |
*
|
10 |
+
* Additionally, we also check for meta_key, meta_value, meta_value_num and meta_query
|
11 |
+
* for the legacy relationship postmeta and try to transform it into a toolset_relationships condition.
|
12 |
+
* See process_legacy_meta_query() for details.
|
13 |
+
*
|
14 |
* @since 2.6.1
|
15 |
*/
|
16 |
class Toolset_Wp_Query_Adjustments_M2m extends Toolset_Wp_Query_Adjustments {
|
24 |
private $_element_factory;
|
25 |
|
26 |
|
27 |
+
/** @var null|Toolset_Relationship_Query_Factory */
|
28 |
+
private $_query_factory;
|
29 |
+
|
30 |
+
|
31 |
/**
|
32 |
* Toolset_Wp_Query_Adjustments_M2m constructor.
|
33 |
*
|
34 |
* @param wpdb|null $wpdb_di
|
35 |
* @param Toolset_Relationship_Database_Operations|null $database_operations_di
|
36 |
* @param Toolset_Element_Factory|null $element_factory_di
|
37 |
+
* @param Toolset_Relationship_Query_Factory|null $query_factory_di
|
38 |
*/
|
39 |
public function __construct(
|
40 |
wpdb $wpdb_di = null,
|
41 |
Toolset_Relationship_Database_Operations $database_operations_di = null,
|
42 |
+
Toolset_Element_Factory $element_factory_di = null,
|
43 |
+
Toolset_Relationship_Query_Factory $query_factory_di = null
|
44 |
) {
|
45 |
parent::__construct( $wpdb_di );
|
46 |
$this->_database_operations = $database_operations_di;
|
47 |
$this->_element_factory = $element_factory_di;
|
48 |
+
$this->_query_factory = $query_factory_di;
|
49 |
}
|
50 |
|
51 |
|
55 |
public function initialize() {
|
56 |
parent::initialize();
|
57 |
|
58 |
+
add_action(
|
59 |
+
'pre_get_posts',
|
60 |
+
array( $this, 'process_legacy_meta_query' ),
|
61 |
+
self::TIME_TO_STORE_RELATIONSHIPS_ARG - 1 // do not change this, third-party software might depend on it
|
62 |
+
);
|
63 |
|
64 |
add_filter( 'posts_where', array( $this, 'posts_where' ), 10, 2 );
|
65 |
add_filter( 'posts_join', array( $this, 'posts_join' ), 10, 2 );
|
73 |
* @param WP_Query $wp_query
|
74 |
*
|
75 |
* @return string
|
|
|
76 |
*/
|
77 |
public function posts_where( $where, $wp_query ) {
|
78 |
+
do_action( 'toolset_do_m2m_full_init' );
|
79 |
+
|
80 |
if( property_exists( $wp_query, self::RELATIONSHIP_QUERY_ARG ) ) {
|
81 |
$where = $this->add_relationship_query_where( $where, $wp_query->{self::RELATIONSHIP_QUERY_ARG}, $wp_query );
|
82 |
}
|
93 |
* @return string
|
94 |
*/
|
95 |
public function posts_join( $join, $wp_query ) {
|
96 |
+
do_action( 'toolset_do_m2m_full_init' );
|
97 |
+
|
98 |
if( property_exists( $wp_query, self::RELATIONSHIP_QUERY_ARG ) ) {
|
99 |
$join = $this->add_relationship_query_join( $join, $wp_query );
|
100 |
}
|
108 |
* @param WP_Query $wp_query
|
109 |
*
|
110 |
* @return string
|
|
|
111 |
*/
|
112 |
private function add_relationship_query_where( $where, $relationship_query, WP_Query $wp_query ) {
|
113 |
$relationship_query = $this->normalize_relationship_query_args( $relationship_query );
|
114 |
|
115 |
foreach( $relationship_query as $query_condition ) {
|
116 |
+
$where .= ' ' . $this->add_single_relationship_query_where_clause( $query_condition, $wp_query );
|
117 |
}
|
118 |
|
119 |
return $where;
|
126 |
*
|
127 |
* @return string
|
128 |
*/
|
129 |
+
private function add_single_relationship_query_where_clause( $query_condition, WP_Query $wp_query ) {
|
130 |
$relationship_slug = $this->get_relationship_slug( $query_condition );
|
131 |
$related_to_post = $this->get_post( $query_condition );
|
132 |
|
136 |
return ' AND 0 = 1 ';
|
137 |
}
|
138 |
|
139 |
+
$related_to_post_id = $related_to_post->get_default_language_id();
|
|
|
140 |
|
141 |
+
$role_to_return = $this->get_role( $query_condition, 'role' );
|
142 |
$role_to_query_by = $this->get_role( $query_condition, 'role_to_query_by', $role_to_return );
|
143 |
+
|
144 |
+
$associations_table = $this->get_table_join_manager( $wp_query )->associations_table(
|
145 |
+
$relationship_slug, $role_to_return, $role_to_query_by, $related_to_post_id
|
146 |
+
);
|
147 |
+
|
148 |
$role_to_query_by_column = $this->get_database_operations()->role_to_column( $role_to_query_by );
|
149 |
|
150 |
$clause = $this->wpdb->prepare(
|
151 |
" AND $associations_table.$role_to_query_by_column = %d ",
|
152 |
+
$related_to_post_id
|
153 |
);
|
154 |
|
155 |
return $clause;
|
243 |
}
|
244 |
|
245 |
|
246 |
+
/**
|
247 |
+
* @return Toolset_Relationship_Query_Factory
|
248 |
+
*/
|
249 |
+
private function get_query_factory() {
|
250 |
+
if( null === $this->_query_factory ) {
|
251 |
+
$this->_query_factory = new Toolset_Relationship_Query_Factory();
|
252 |
+
}
|
253 |
+
return $this->_query_factory;
|
254 |
+
}
|
255 |
+
|
256 |
+
|
257 |
/**
|
258 |
* Get the "related_to" post from the query condition array.
|
259 |
*
|
280 |
return $post;
|
281 |
}
|
282 |
|
283 |
+
|
284 |
+
/**
|
285 |
+
* Check the postmeta query arguments and if we detect an understandable usage of
|
286 |
+
* the legacy relationship postmeta, transform it into a toolset_relationships query.
|
287 |
+
*
|
288 |
+
* We check for:
|
289 |
+
* - meta_key and meta_value or meta_value_num
|
290 |
+
* - meta_query
|
291 |
+
*
|
292 |
+
* There are several limitations as to what we can parse:
|
293 |
+
*
|
294 |
+
* - Only legacy (migrated) relationships are supported.
|
295 |
+
* - It must be possible to determine a single relationship from the information passed to the query:
|
296 |
+
* - The postmeta already contains the parent post type slug.
|
297 |
+
* - For the child slug, either there's some information in the "post_type" query argument, or
|
298 |
+
* we check against all post types.
|
299 |
+
*
|
300 |
+
* For example, if there are legacy relationships between CPTS: A >> B, A >> C, B >> C,
|
301 |
+
*
|
302 |
+
* we will always succeed with a meta_query for "_wpcf_belongs_b_id" (because there is only a
|
303 |
+
* single relationship that has B post type as a parent), but we will succeed with
|
304 |
+
* "_wpcf_belongs_a_id" only if the query also contains a post_type argument that doesn't contain
|
305 |
+
* both B and C post types.
|
306 |
+
*
|
307 |
+
* Non-legacy relationships are completely ignored here.
|
308 |
+
* - Only the topmost level of the 'meta_query' is processed, and we ignore anything nested.
|
309 |
+
* - 'meta_compare' argument or 'compare' within 'meta_query' must be '=' (or missing, since this is the default value)
|
310 |
+
* - 'relation' within 'meta_query' must be 'AND' (or missing).
|
311 |
+
*
|
312 |
+
* If we hit any of these limitations, we don't do anything and let the query run as-is.
|
313 |
+
*
|
314 |
+
* Otherwise, the condition is turned into a toolset_relationships one and removed.
|
315 |
+
*
|
316 |
+
* Note that we also remove meta_key together with meta_value/meta_value_num, which is necessary for the
|
317 |
+
* query to yield correct results. meta_key might be *theoretically* used for ordering, but it makes
|
318 |
+
* very little sense to order by IDs of parent post, so we take the risk.
|
319 |
+
*
|
320 |
+
* This is WPML-compatible and should yield results according to the allowed translation mode of post types
|
321 |
+
* involved in a relationship.
|
322 |
+
*
|
323 |
+
* @since 2.6.4
|
324 |
+
* @param WP_Query $query
|
325 |
+
*/
|
326 |
+
public function process_legacy_meta_query( $query ) {
|
327 |
+
if( ! $query instanceof WP_Query ) {
|
328 |
+
// Something weird is happening.
|
329 |
+
return;
|
330 |
+
}
|
331 |
+
|
332 |
+
$this->maybe_process_meta_value( $query );
|
333 |
+
$this->maybe_process_meta_query( $query );
|
334 |
+
}
|
335 |
+
|
336 |
+
|
337 |
+
/**
|
338 |
+
* Try transforming meta_key + meta_value/meta_value_num into a toolset_relationships condition.
|
339 |
+
*
|
340 |
+
* @since 2.6.4
|
341 |
+
* @param WP_Query $query
|
342 |
+
*/
|
343 |
+
private function maybe_process_meta_value( WP_Query $query ) {
|
344 |
+
if(
|
345 |
+
! array_key_exists( 'meta_key', $query->query_vars )
|
346 |
+
) {
|
347 |
+
return;
|
348 |
+
}
|
349 |
+
|
350 |
+
$parent_post_type = $this->parse_legacy_meta_key( $query->query_vars['meta_key'] );
|
351 |
+
if( null === $parent_post_type ) {
|
352 |
+
return; // not our legacy postmeta
|
353 |
+
}
|
354 |
+
|
355 |
+
if( array_key_exists( 'meta_value_num', $query->query_vars ) ) {
|
356 |
+
$post_id = (int) $query->query_vars['meta_value_num'];
|
357 |
+
} elseif( array_key_exists( 'meta_value', $query->query_vars ) ) {
|
358 |
+
$post_id = (int) $query->query_vars['meta_value'];
|
359 |
+
} else {
|
360 |
+
return;
|
361 |
+
}
|
362 |
+
|
363 |
+
if(
|
364 |
+
array_key_exists( 'meta_compare', $query->query_vars )
|
365 |
+
&& '=' !== $query->query_vars['meta_compare']
|
366 |
+
) {
|
367 |
+
return;
|
368 |
+
}
|
369 |
+
|
370 |
+
$was_transformed = $this->try_transforming_legacy_meta_query( $query, $parent_post_type, $post_id );
|
371 |
+
|
372 |
+
if( $was_transformed ) {
|
373 |
+
unset( $query->query_vars['meta_value'] );
|
374 |
+
unset( $query->query_vars['meta_value_num'] );
|
375 |
+
|
376 |
+
// Theoretically, meta_key could be also used for sorting, but it makes very little sense
|
377 |
+
// to sort by IDs of parent posts.
|
378 |
+
//
|
379 |
+
// We need to remove it because it would otherwise cause an inner join on the
|
380 |
+
// postmeta table with the legacy postmeta key, effectively excluding
|
381 |
+
// all posts with associations created after the migration to m2m.
|
382 |
+
unset( $query->query_vars['meta_key'] );
|
383 |
+
}
|
384 |
+
}
|
385 |
+
|
386 |
+
|
387 |
+
/**
|
388 |
+
* Try building a toolset_relationships condition out of the provided information.
|
389 |
+
*
|
390 |
+
* @param WP_Query $query
|
391 |
+
* @param string $parent_post_type
|
392 |
+
* @param int $parent_id
|
393 |
+
*
|
394 |
+
* @return bool True if the transformation took place, false if it couldn't be done.
|
395 |
+
* @since 2.6.4
|
396 |
+
*/
|
397 |
+
private function try_transforming_legacy_meta_query( WP_Query $query, $parent_post_type, $parent_id ) {
|
398 |
+
|
399 |
+
if( 0 === (int) $parent_id ) {
|
400 |
+
return false;
|
401 |
+
}
|
402 |
+
|
403 |
+
do_action( 'toolset_do_m2m_full_init' );
|
404 |
+
|
405 |
+
$relationship = $this->determine_relationship( $query, $parent_post_type );
|
406 |
+
|
407 |
+
if( null === $relationship ) {
|
408 |
+
return false;
|
409 |
+
}
|
410 |
+
|
411 |
+
$relationship_query_arg = array(
|
412 |
+
'role' => 'child', // legacy code had to be querying child posts
|
413 |
+
'related_to' => (int) $parent_id,
|
414 |
+
'relationship' => $relationship->get_slug(),
|
415 |
+
);
|
416 |
+
|
417 |
+
$this->add_relationship_query_condition( $query, $relationship_query_arg );
|
418 |
+
|
419 |
+
return true;
|
420 |
+
}
|
421 |
+
|
422 |
+
|
423 |
+
/**
|
424 |
+
* Look for a single matching relationship definition.
|
425 |
+
*
|
426 |
+
* Use the post_type query argument, parent post type and is_legacy flag of the relationship definition.
|
427 |
+
*
|
428 |
+
* @param WP_Query $query
|
429 |
+
* @param $parent_post_type
|
430 |
+
*
|
431 |
+
* @return IToolset_Relationship_Definition|null Relationship definition or null if there are more than
|
432 |
+
* one results or no results.
|
433 |
+
* @since 2.6.4
|
434 |
+
*/
|
435 |
+
private function determine_relationship( WP_Query $query, $parent_post_type ) {
|
436 |
+
$child_post_types = toolset_getarr( $query->query_vars, 'post_type' );
|
437 |
+
if( ! is_array( $child_post_types ) ) {
|
438 |
+
$child_post_types = array( $child_post_types );
|
439 |
+
}
|
440 |
+
if( in_array( 'any', $child_post_types ) ) {
|
441 |
+
$child_post_types = array();
|
442 |
+
}
|
443 |
+
|
444 |
+
$relationship_query = $this->get_query_factory()->relationships_v2();
|
445 |
+
$relationships = $relationship_query
|
446 |
+
->add( $relationship_query->is_legacy() )
|
447 |
+
->add( $relationship_query->has_domain_and_type(
|
448 |
+
$parent_post_type, Toolset_Element_Domain::POSTS, new Toolset_Relationship_Role_Parent() )
|
449 |
+
)
|
450 |
+
->add( $relationship_query->has_domain( Toolset_Element_Domain::POSTS, new Toolset_Relationship_Role_Child() ) )
|
451 |
+
->add(
|
452 |
+
// we can afford to add empty or condition
|
453 |
+
$relationship_query->do_or(
|
454 |
+
array_map(
|
455 |
+
function ( $child_post_type ) use ( $relationship_query ) {
|
456 |
+
return $relationship_query->has_type( $child_post_type, new Toolset_Relationship_Role_Child() );
|
457 |
+
}, $child_post_types
|
458 |
+
)
|
459 |
+
)
|
460 |
+
)
|
461 |
+
->get_results();
|
462 |
+
|
463 |
+
if( count( $relationships ) !== 1 ) {
|
464 |
+
return null;
|
465 |
+
}
|
466 |
+
|
467 |
+
return array_pop( $relationships );
|
468 |
+
}
|
469 |
+
|
470 |
+
|
471 |
+
/**
|
472 |
+
* Add a single condition to the toolset_relationships query argument.
|
473 |
+
*
|
474 |
+
* @param WP_Query $query
|
475 |
+
* @param $condition
|
476 |
+
* @since 2.6.4
|
477 |
+
*/
|
478 |
+
private function add_relationship_query_condition( WP_Query $query, $condition ) {
|
479 |
+
if( ! array_key_exists( self::RELATIONSHIP_QUERY_ARG, $query->query_vars ) ) {
|
480 |
+
$query->query_vars[ self::RELATIONSHIP_QUERY_ARG ] = array();
|
481 |
+
} else {
|
482 |
+
$query->query_vars[ self::RELATIONSHIP_QUERY_ARG ] = $this->normalize_relationship_query_args(
|
483 |
+
$query->query_vars[ self::RELATIONSHIP_QUERY_ARG ]
|
484 |
+
);
|
485 |
+
}
|
486 |
+
|
487 |
+
$query->query_vars[ self::RELATIONSHIP_QUERY_ARG ][] = $condition;
|
488 |
+
}
|
489 |
+
|
490 |
+
|
491 |
+
/**
|
492 |
+
* Try transforming a top level meta_query into toolset_relationships conditions.
|
493 |
+
*
|
494 |
+
* @param WP_Query $query
|
495 |
+
* @since 2.6.4
|
496 |
+
*/
|
497 |
+
private function maybe_process_meta_query( WP_Query $query ) {
|
498 |
+
if( ! array_key_exists( 'meta_query', $query->query_vars ) ) {
|
499 |
+
return;
|
500 |
+
}
|
501 |
+
|
502 |
+
$meta_query = $query->query_vars['meta_query'];
|
503 |
+
|
504 |
+
if( ! is_array( $meta_query ) ) {
|
505 |
+
return;
|
506 |
+
}
|
507 |
+
|
508 |
+
if( 'AND' !== toolset_getarr( $meta_query, 'relation', 'AND' ) ) {
|
509 |
+
return;
|
510 |
+
}
|
511 |
+
|
512 |
+
foreach( $meta_query as $single_meta_query_key => $single_meta_query ) {
|
513 |
+
|
514 |
+
if( '=' !== toolset_getarr( $single_meta_query, 'compare', '=' ) ) {
|
515 |
+
continue;
|
516 |
+
}
|
517 |
+
|
518 |
+
$parent_post_type = $this->parse_legacy_meta_key( toolset_getarr( $single_meta_query, 'key' ) );
|
519 |
+
if( null === $parent_post_type ) {
|
520 |
+
continue;
|
521 |
+
}
|
522 |
+
|
523 |
+
$parent_post_id = (int) toolset_getarr( $single_meta_query, 'value' );
|
524 |
+
|
525 |
+
$was_transformed = $this->try_transforming_legacy_meta_query( $query, $parent_post_type, $parent_post_id );
|
526 |
+
|
527 |
+
if( ! $was_transformed ) {
|
528 |
+
continue;
|
529 |
+
}
|
530 |
+
|
531 |
+
unset( $query->query_vars['meta_query'][ $single_meta_query_key ] );
|
532 |
+
}
|
533 |
+
}
|
534 |
+
|
535 |
+
|
536 |
+
/**
|
537 |
+
* Extract the parent post type from the legacy relationship postmeta key.
|
538 |
+
*
|
539 |
+
* @param string $meta_key
|
540 |
+
*
|
541 |
+
* @return string|null Parent post type slug or null if the meta_key stands for something else.
|
542 |
+
* @since 2.6.4
|
543 |
+
*/
|
544 |
+
private function parse_legacy_meta_key( $meta_key ) {
|
545 |
+
$matches = array();
|
546 |
+
preg_match( '/^_wpcf_belongs_([a-z0-9_-]+)_id$/', $meta_key, $matches );
|
547 |
+
|
548 |
+
if( empty( $matches ) || count( $matches ) < 2 ) {
|
549 |
+
return null;
|
550 |
+
}
|
551 |
+
|
552 |
+
return $matches[1];
|
553 |
+
}
|
554 |
+
|
555 |
+
|
556 |
+
|
557 |
}
|
vendor/toolset/toolset-common/inc/autoloaded/wp_query_adjustments/table_join_manager.php
CHANGED
@@ -9,7 +9,11 @@ class Toolset_Wp_Query_Adjustments_Table_Join_Manager extends Toolset_Wpdb_User
|
|
9 |
|
10 |
|
11 |
/**
|
12 |
-
* @var string[][] Unique aliases for the associations table, indexed by
|
|
|
|
|
|
|
|
|
13 |
*/
|
14 |
private $joins = array();
|
15 |
|
@@ -69,9 +73,21 @@ class Toolset_Wp_Query_Adjustments_Table_Join_Manager extends Toolset_Wpdb_User
|
|
69 |
public function get_join_clauses() {
|
70 |
$results = '';
|
71 |
|
72 |
-
foreach( $this->joins as $relationship_slug => $
|
73 |
-
foreach( $
|
74 |
-
$
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
75 |
}
|
76 |
}
|
77 |
|
@@ -79,9 +95,27 @@ class Toolset_Wp_Query_Adjustments_Table_Join_Manager extends Toolset_Wpdb_User
|
|
79 |
}
|
80 |
|
81 |
|
82 |
-
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
83 |
|
84 |
-
$
|
|
|
85 |
$relationship_definition = $this->definition_repository->get_definition( $relationship_slug );
|
86 |
|
87 |
if( null === $relationship_definition ) {
|
@@ -92,15 +126,19 @@ class Toolset_Wp_Query_Adjustments_Table_Join_Manager extends Toolset_Wpdb_User
|
|
92 |
$relationship_id = $relationship_definition->get_row_id();
|
93 |
|
94 |
if( $this->wpml_service->is_wpml_active_and_configured() ) {
|
95 |
-
return $this->get_single_join_clause_for_wpml(
|
|
|
|
|
96 |
}
|
97 |
|
98 |
return $this->wpdb->prepare(
|
99 |
"JOIN {$this->table_name->association_table()} AS {$associations_table_alias} ON (
|
100 |
-
wp_posts.ID = {$associations_table_alias}.{$
|
101 |
AND {$associations_table_alias}.relationship_id = %d
|
|
|
102 |
) ",
|
103 |
-
$relationship_id
|
|
|
104 |
);
|
105 |
}
|
106 |
|
@@ -111,35 +149,55 @@ class Toolset_Wp_Query_Adjustments_Table_Join_Manager extends Toolset_Wpdb_User
|
|
111 |
*
|
112 |
* @param int $relationship_id
|
113 |
* @param string $associations_table_alias
|
114 |
-
* @param string $
|
|
|
|
|
115 |
*
|
116 |
* @return string
|
117 |
*/
|
118 |
-
private function get_single_join_clause_for_wpml(
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
119 |
|
120 |
$clause = $this->wpdb->prepare(
|
121 |
"
|
122 |
# join the icl_translations table independently from WPML's 't'
|
123 |
# because that one may not be joined at all time, but we
|
124 |
# need it always - this is safer than trying to reuse the 't' one
|
125 |
-
LEFT JOIN {$this->wpml_service->icl_translations_table_name()} AS
|
126 |
-
wp_posts.ID =
|
127 |
-
AND
|
128 |
-
) LEFT JOIN {$this->wpml_service->icl_translations_table_name()} AS
|
129 |
-
|
130 |
-
AND
|
131 |
) JOIN {$this->table_name->association_table()} AS {$associations_table_alias} ON (
|
132 |
(
|
133 |
# join the association row if either the post ID matches the
|
134 |
# proper column in the associations table or if the ID of the default
|
135 |
# language version of the post matches it
|
136 |
-
wp_posts.ID = {$associations_table_alias}.{$
|
137 |
-
OR
|
138 |
)
|
139 |
AND {$associations_table_alias}.relationship_id = %d
|
|
|
140 |
)",
|
141 |
$this->wpml_service->get_default_language(),
|
142 |
-
$relationship_id
|
|
|
143 |
);
|
144 |
|
145 |
return $clause;
|
@@ -149,24 +207,34 @@ class Toolset_Wp_Query_Adjustments_Table_Join_Manager extends Toolset_Wpdb_User
|
|
149 |
/**
|
150 |
* Request an alias for the associations table.
|
151 |
*
|
|
|
|
|
152 |
* The table will be JOINed on wp_posts.ID by a given relationship slug and element role.
|
153 |
*
|
154 |
* @param string $relationship_slug
|
155 |
-
* @param IToolset_Relationship_Role $
|
|
|
|
|
|
|
156 |
*
|
157 |
* @return string
|
158 |
*/
|
159 |
-
public function associations_table(
|
160 |
-
|
161 |
-
|
162 |
-
|
|
|
|
|
|
|
163 |
|
164 |
-
if(
|
165 |
-
|
166 |
-
$this->joins[ $relationship_slug ][ $role->get_name() ] = $unique_alias;
|
167 |
}
|
168 |
|
169 |
-
|
|
|
|
|
|
|
170 |
}
|
171 |
|
172 |
}
|
9 |
|
10 |
|
11 |
/**
|
12 |
+
* @var string[][][][] Unique aliases for the associations table, indexed by:
|
13 |
+
* 1. relationship slug,
|
14 |
+
* 2. role name to join the table on (to wp_posts.ID) ("role to return")
|
15 |
+
* 3. role name to constrain the results with ("role to query by")
|
16 |
+
* 4. ID of the associated element in the role to query by
|
17 |
*/
|
18 |
private $joins = array();
|
19 |
|
73 |
public function get_join_clauses() {
|
74 |
$results = '';
|
75 |
|
76 |
+
foreach( $this->joins as $relationship_slug => $data_by_relationship_slug ) {
|
77 |
+
foreach( $data_by_relationship_slug as $role_to_return_name => $data_by_role_to_return ) {
|
78 |
+
foreach( $data_by_role_to_return as $role_to_query_by => $data_by_role_to_query ) {
|
79 |
+
foreach( $data_by_role_to_query as $post_to_query_by => $table_alias ) {
|
80 |
+
|
81 |
+
$results .= $this->get_single_join_clause(
|
82 |
+
$relationship_slug,
|
83 |
+
$role_to_return_name,
|
84 |
+
$role_to_query_by,
|
85 |
+
$post_to_query_by,
|
86 |
+
$table_alias
|
87 |
+
);
|
88 |
+
|
89 |
+
}
|
90 |
+
}
|
91 |
}
|
92 |
}
|
93 |
|
95 |
}
|
96 |
|
97 |
|
98 |
+
/**
|
99 |
+
* Build a JOIN clause for one table alias.
|
100 |
+
*
|
101 |
+
* Note: We need to limit the query by a particular associated element, otherwise we couldn't
|
102 |
+
* work with multiple JOINs in one query. This is not a problem because of how this class is used -
|
103 |
+
* to query only posts that have associations to all the requested elements (always AND, no OR).
|
104 |
+
*
|
105 |
+
* @param string $relationship_slug
|
106 |
+
* @param string $role_to_return_name
|
107 |
+
* @param string $role_to_query_by
|
108 |
+
* @param int $element_to_query_by
|
109 |
+
* @param string $associations_table_alias
|
110 |
+
*
|
111 |
+
* @return string
|
112 |
+
*/
|
113 |
+
private function get_single_join_clause(
|
114 |
+
$relationship_slug, $role_to_return_name, $role_to_query_by, $element_to_query_by, $associations_table_alias
|
115 |
+
) {
|
116 |
|
117 |
+
$role_to_return_id_column = $this->database_operations->role_to_column( $role_to_return_name );
|
118 |
+
$role_to_query_by_id_column = $this->database_operations->role_to_column( $role_to_query_by );
|
119 |
$relationship_definition = $this->definition_repository->get_definition( $relationship_slug );
|
120 |
|
121 |
if( null === $relationship_definition ) {
|
126 |
$relationship_id = $relationship_definition->get_row_id();
|
127 |
|
128 |
if( $this->wpml_service->is_wpml_active_and_configured() ) {
|
129 |
+
return $this->get_single_join_clause_for_wpml(
|
130 |
+
$relationship_id, $associations_table_alias, $role_to_return_id_column, $role_to_query_by_id_column, $element_to_query_by
|
131 |
+
);
|
132 |
}
|
133 |
|
134 |
return $this->wpdb->prepare(
|
135 |
"JOIN {$this->table_name->association_table()} AS {$associations_table_alias} ON (
|
136 |
+
wp_posts.ID = {$associations_table_alias}.{$role_to_return_id_column}
|
137 |
AND {$associations_table_alias}.relationship_id = %d
|
138 |
+
AND {$associations_table_alias}.{$role_to_query_by_id_column} = %d
|
139 |
) ",
|
140 |
+
$relationship_id,
|
141 |
+
$element_to_query_by
|
142 |
);
|
143 |
}
|
144 |
|
149 |
*
|
150 |
* @param int $relationship_id
|
151 |
* @param string $associations_table_alias
|
152 |
+
* @param string $role_to_return_column
|
153 |
+
* @param string $role_to_query_by_column
|
154 |
+
* @param int $element_to_query_by
|
155 |
*
|
156 |
* @return string
|
157 |
*/
|
158 |
+
private function get_single_join_clause_for_wpml(
|
159 |
+
$relationship_id,
|
160 |
+
$associations_table_alias,
|
161 |
+
$role_to_return_column,
|
162 |
+
$role_to_query_by_column,
|
163 |
+
$element_to_query_by
|
164 |
+
) {
|
165 |
+
|
166 |
+
$alias_translation = 'toolset_t_' . $this->uniqe_table_alias->generate(
|
167 |
+
$this->wpml_service->icl_translations_table_name(),
|
168 |
+
true
|
169 |
+
);
|
170 |
+
|
171 |
+
$alias_default_lang = 'toolset_dl_' . $this->uniqe_table_alias->generate(
|
172 |
+
$this->wpml_service->icl_translations_table_name(),
|
173 |
+
true
|
174 |
+
);
|
175 |
|
176 |
$clause = $this->wpdb->prepare(
|
177 |
"
|
178 |
# join the icl_translations table independently from WPML's 't'
|
179 |
# because that one may not be joined at all time, but we
|
180 |
# need it always - this is safer than trying to reuse the 't' one
|
181 |
+
LEFT JOIN {$this->wpml_service->icl_translations_table_name()} AS {$alias_translation} ON (
|
182 |
+
wp_posts.ID = {$alias_translation}.element_id
|
183 |
+
AND {$alias_translation}.element_type = CONCAT('post_', wp_posts.post_type)
|
184 |
+
) LEFT JOIN {$this->wpml_service->icl_translations_table_name()} AS {$alias_default_lang} ON (
|
185 |
+
{$alias_translation}.trid = {$alias_default_lang}.trid
|
186 |
+
AND {$alias_default_lang}.language_code = %s
|
187 |
) JOIN {$this->table_name->association_table()} AS {$associations_table_alias} ON (
|
188 |
(
|
189 |
# join the association row if either the post ID matches the
|
190 |
# proper column in the associations table or if the ID of the default
|
191 |
# language version of the post matches it
|
192 |
+
wp_posts.ID = {$associations_table_alias}.{$role_to_return_column}
|
193 |
+
OR {$alias_default_lang}.element_id = {$associations_table_alias}.{$role_to_return_column}
|
194 |
)
|
195 |
AND {$associations_table_alias}.relationship_id = %d
|
196 |
+
AND {$associations_table_alias}.{$role_to_query_by_column} = %d
|
197 |
)",
|
198 |
$this->wpml_service->get_default_language(),
|
199 |
+
$relationship_id,
|
200 |
+
$element_to_query_by
|
201 |
);
|
202 |
|
203 |
return $clause;
|
207 |
/**
|
208 |
* Request an alias for the associations table.
|
209 |
*
|
210 |
+
* Each call will cause a new JOIN and return a new unique table alias.
|
211 |
+
*
|
212 |
* The table will be JOINed on wp_posts.ID by a given relationship slug and element role.
|
213 |
*
|
214 |
* @param string $relationship_slug
|
215 |
+
* @param IToolset_Relationship_Role $role_to_return
|
216 |
+
*
|
217 |
+
* @param IToolset_Relationship_Role $role_to_query_by
|
218 |
+
* @param $query_by_element_id
|
219 |
*
|
220 |
* @return string
|
221 |
*/
|
222 |
+
public function associations_table(
|
223 |
+
$relationship_slug, IToolset_Relationship_Role $role_to_return,
|
224 |
+
IToolset_Relationship_Role $role_to_query_by,
|
225 |
+
$query_by_element_id
|
226 |
+
) {
|
227 |
+
$path_to_value = array( $relationship_slug, $role_to_return->get_name(), $role_to_query_by->get_name(), (int) $query_by_element_id );
|
228 |
+
$stored_alias = toolset_getnest( $this->joins, $path_to_value, null );
|
229 |
|
230 |
+
if( null !== $stored_alias ) {
|
231 |
+
return $stored_alias;
|
|
|
232 |
}
|
233 |
|
234 |
+
$unique_alias = $this->uniqe_table_alias->generate( $this->table_name->association_table(), true );
|
235 |
+
$this->joins = Toolset_Utils::set_nested_value( $this->joins, $path_to_value, $unique_alias );
|
236 |
+
|
237 |
+
return $unique_alias;
|
238 |
}
|
239 |
|
240 |
}
|
vendor/toolset/toolset-common/inc/m2m/association/Repository.php
ADDED
@@ -0,0 +1,193 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
<?php
|
2 |
+
|
3 |
+
|
4 |
+
namespace OTGS\Toolset\Common\M2M\Association;
|
5 |
+
|
6 |
+
|
7 |
+
/**
|
8 |
+
* Class Repository
|
9 |
+
*
|
10 |
+
* This is useful when you know you will have to do a lot of association request.
|
11 |
+
* Instead of doing a lot of small database queries you load them to this repository by doing bigger queries
|
12 |
+
* and use this for the smaller afterwards request instead of asking the database.
|
13 |
+
*
|
14 |
+
* Example of usage: Types_Import_Export::wp_export_before()
|
15 |
+
*
|
16 |
+
* It can also be (ab)used as a container of Assocation/Relationship_Query and Roles
|
17 |
+
* (to make sure you can still do very specific requests, without the need of additional injection).
|
18 |
+
* Always consider to extend this Repository class instead of abusing it as a container.
|
19 |
+
*
|
20 |
+
* @package OTGS\Toolset\Types\Relationship\Association
|
21 |
+
*/
|
22 |
+
class Repository {
|
23 |
+
/** @var \Toolset_Relationship_Role_Parent */
|
24 |
+
private $role_parent;
|
25 |
+
|
26 |
+
/** @var \Toolset_Relationship_Role_Child */
|
27 |
+
private $role_child;
|
28 |
+
|
29 |
+
/** @var \Toolset_Relationship_Role_Intermediary */
|
30 |
+
private $role_intermediary;
|
31 |
+
|
32 |
+
/** @var \Toolset_Relationship_Query_Factory */
|
33 |
+
private $query_factory;
|
34 |
+
|
35 |
+
/** @var \Toolset_Element_Domain */
|
36 |
+
private $element_domain;
|
37 |
+
|
38 |
+
/** @var \Toolset_Association[] */
|
39 |
+
private $associations = array();
|
40 |
+
|
41 |
+
/** @var array log of what's already loaded */
|
42 |
+
private $alreadyLoaded = array(
|
43 |
+
'posttype' => array(),
|
44 |
+
'child' => array()
|
45 |
+
);
|
46 |
+
|
47 |
+
/**
|
48 |
+
* Repository constructor.
|
49 |
+
*
|
50 |
+
* @param \Toolset_Relationship_Query_Factory $query_factory
|
51 |
+
* @param \Toolset_Relationship_Role_Parent $role_parent
|
52 |
+
* @param \Toolset_Relationship_Role_Child $role_child
|
53 |
+
* @param \Toolset_Relationship_Role_Intermediary $role_Intermediary
|
54 |
+
* @param \Toolset_Element_Domain $element_domain
|
55 |
+
*/
|
56 |
+
public function __construct(
|
57 |
+
\Toolset_Relationship_Query_Factory $query_factory,
|
58 |
+
\Toolset_Relationship_Role_Parent $role_parent,
|
59 |
+
\Toolset_Relationship_Role_Child $role_child,
|
60 |
+
\Toolset_Relationship_Role_Intermediary $role_Intermediary,
|
61 |
+
\Toolset_Element_Domain $element_domain
|
62 |
+
) {
|
63 |
+
$this->query_factory = $query_factory;
|
64 |
+
$this->role_parent = $role_parent;
|
65 |
+
$this->role_child = $role_child;
|
66 |
+
$this->role_intermediary = $role_Intermediary;
|
67 |
+
$this->element_domain = $element_domain;
|
68 |
+
}
|
69 |
+
|
70 |
+
/**
|
71 |
+
* @param \IToolset_Post $toolset_post
|
72 |
+
*
|
73 |
+
* @return \Toolset_Association[]
|
74 |
+
* @throws \Toolset_Element_Exception_Element_Doesnt_Exist
|
75 |
+
*/
|
76 |
+
public function getAssociationsByChildPost( \IToolset_Post $toolset_post ) {
|
77 |
+
$result = array();
|
78 |
+
|
79 |
+
foreach( $this->associations as $association ){
|
80 |
+
if( $association->get_element_id( $this->getRoleChild() ) == $toolset_post->get_id() ) {
|
81 |
+
$result[$association->get_uid()] = $association;
|
82 |
+
}
|
83 |
+
}
|
84 |
+
|
85 |
+
return $result;
|
86 |
+
}
|
87 |
+
|
88 |
+
/**
|
89 |
+
* @param \IToolset_Association $association
|
90 |
+
*/
|
91 |
+
public function addAssociation( \IToolset_Association $association ) {
|
92 |
+
$this->associations[ $association->get_uid() ] = $association;
|
93 |
+
}
|
94 |
+
|
95 |
+
public function addAssociationsByChild( \IToolset_Element $child ) {
|
96 |
+
if( isset( $this->alreadyLoaded['child'][ $child->get_id() ] ) ) {
|
97 |
+
// Associations of $child already applied
|
98 |
+
return;
|
99 |
+
}
|
100 |
+
|
101 |
+
// get associations by $child
|
102 |
+
$qry = $this->getAssociationQuery();
|
103 |
+
|
104 |
+
$associations = $qry
|
105 |
+
->add( $qry->element( $child, $this->getRoleChild(), false, false ) )
|
106 |
+
->get_results();
|
107 |
+
|
108 |
+
foreach( $associations as $association ) {
|
109 |
+
$this->addAssociation( $association );
|
110 |
+
}
|
111 |
+
|
112 |
+
// mark $child asoociations $
|
113 |
+
$this->alreadyLoaded['child'][ $child->get_id() ] = true;
|
114 |
+
}
|
115 |
+
|
116 |
+
/**
|
117 |
+
* Load associations by given post type
|
118 |
+
* This methods also tracks what's already loaded, means you don't need to care about loading associations
|
119 |
+
* of a post type more than once.
|
120 |
+
*
|
121 |
+
* @param \IToolset_Post_Type $post_type
|
122 |
+
*/
|
123 |
+
public function addAssociationsByPostType( \IToolset_Post_Type $post_type ) {
|
124 |
+
if( isset( $this->alreadyLoaded['posttype'][ $post_type->get_slug() ] ) ) {
|
125 |
+
// Associations of $post_type already applied
|
126 |
+
return;
|
127 |
+
}
|
128 |
+
|
129 |
+
// extra assignment is needed because PHP 5.3 does not support: $this->var::CONST, but $var::CONST is fine
|
130 |
+
$element_domain = $this->element_domain;
|
131 |
+
|
132 |
+
$qry = $this->getRelationshipQuery();
|
133 |
+
$relationships = $qry
|
134 |
+
->add( $qry->has_domain_and_type( $post_type->get_slug(), $element_domain::POSTS ) )
|
135 |
+
->add( $qry->origin( null ) )
|
136 |
+
->get_results();
|
137 |
+
|
138 |
+
foreach( $relationships as $relationship ) {
|
139 |
+
$qry = $this->getAssociationQuery();
|
140 |
+
$associations = $qry
|
141 |
+
->add( $qry->relationship( $relationship ) )
|
142 |
+
->get_results();
|
143 |
+
|
144 |
+
foreach( $associations as $association ) {
|
145 |
+
$this->addAssociation( $association );
|
146 |
+
}
|
147 |
+
}
|
148 |
+
|
149 |
+
// mark $post_type as loaded
|
150 |
+
$this->alreadyLoaded['posttype'][ $post_type->get_slug() ] = true;
|
151 |
+
}
|
152 |
+
|
153 |
+
/**
|
154 |
+
* @param int|null $limit Optional (the best feature of Toolset_Association_Query is back)
|
155 |
+
*
|
156 |
+
* @return \Toolset_Association_Query_V2
|
157 |
+
*/
|
158 |
+
public function getAssociationQuery( $limit = null ) {
|
159 |
+
$qry = $this->query_factory->associations_v2();
|
160 |
+
$qry->limit( $limit ?: 999999999 );
|
161 |
+
return $qry;
|
162 |
+
}
|
163 |
+
|
164 |
+
/**
|
165 |
+
* @return \Toolset_Relationship_Query_V2
|
166 |
+
*/
|
167 |
+
public function getRelationshipQuery() {
|
168 |
+
return $this->query_factory->relationships_v2();
|
169 |
+
}
|
170 |
+
|
171 |
+
/**
|
172 |
+
* @return \Toolset_Relationship_Role_Parent
|
173 |
+
*/
|
174 |
+
public function getRoleParent() {
|
175 |
+
return $this->role_parent;
|
176 |
+
}
|
177 |
+
|
178 |
+
/**
|
179 |
+
* @return \Toolset_Relationship_Role_Child
|
180 |
+
*/
|
181 |
+
public function getRoleChild() {
|
182 |
+
return $this->role_child;
|
183 |
+
}
|
184 |
+
|
185 |
+
/**
|
186 |
+
* @return \Toolset_Relationship_Role_Intermediary
|
187 |
+
*/
|
188 |
+
public function getRoleIntermediary() {
|
189 |
+
return $this->role_intermediary;
|
190 |
+
}
|
191 |
+
|
192 |
+
|
193 |
+
}
|
vendor/toolset/toolset-common/inc/m2m/association/association.php
CHANGED
@@ -8,27 +8,20 @@
|
|
8 |
* Not to be used directly outside of the m2m API.
|
9 |
*
|
10 |
* @since m2m
|
11 |
-
* @refactoring!!!! Store intermediary ID and post object in the same way as the other elements.
|
12 |
*/
|
13 |
class Toolset_Association implements IToolset_Association {
|
14 |
|
15 |
|
16 |
/**
|
17 |
-
* @var int[] IDs of elements, always complete.
|
18 |
*
|
19 |
* However, in case we deal with translatable elements, this will hold only the IDs
|
20 |
* of the default language versions, so these values can't be always used directly.
|
21 |
* get_element_id() will handle the translation if necessary.
|
22 |
-
*/
|
23 |
-
private $element_ids = array();
|
24 |
-
|
25 |
-
|
26 |
-
/**
|
27 |
-
* @var int Intermediary post ID or zero if there is no intermediary post at all.
|
28 |
*
|
29 |
-
*
|
30 |
*/
|
31 |
-
private $
|
32 |
|
33 |
|
34 |
/** @var Toolset_Relationship_Definition */
|
@@ -47,12 +40,6 @@ class Toolset_Association implements IToolset_Association {
|
|
47 |
private $uid;
|
48 |
|
49 |
|
50 |
-
/**
|
51 |
-
* @var null|IToolset_Post
|
52 |
-
*/
|
53 |
-
protected $intermediary_post;
|
54 |
-
|
55 |
-
|
56 |
/** @var Toolset_WPML_Compatibility */
|
57 |
private $wpml_service;
|
58 |
|
@@ -141,7 +128,7 @@ class Toolset_Association implements IToolset_Association {
|
|
141 |
&& 0 === (int) $element_source
|
142 |
) {
|
143 |
// No intermediary post.
|
144 |
-
$this->
|
145 |
return;
|
146 |
}
|
147 |
|
@@ -180,18 +167,10 @@ class Toolset_Association implements IToolset_Association {
|
|
180 |
throw new InvalidArgumentException( 'Invalid or missing element source.' );
|
181 |
}
|
182 |
|
183 |
-
|
184 |
-
|
185 |
-
|
186 |
-
$this->intermediary_post = $element;
|
187 |
-
}
|
188 |
-
} else {
|
189 |
-
$this->element_ids[ $role_name ] = $element_id;
|
190 |
-
if( null !== $element ) {
|
191 |
-
$this->elements[ $role_name ] = $element;
|
192 |
-
}
|
193 |
}
|
194 |
-
|
195 |
}
|
196 |
|
197 |
|
@@ -237,10 +216,6 @@ class Toolset_Association implements IToolset_Association {
|
|
237 |
$element_role_name = Toolset_Relationship_Role::name_from_role( $element_role );
|
238 |
|
239 |
if( ! $this->can_be_translated() ) {
|
240 |
-
if( Toolset_Relationship_Role::INTERMEDIARY === $element_role_name ) {
|
241 |
-
return $this->intermediary_id;
|
242 |
-
}
|
243 |
-
|
244 |
return $this->element_ids[ $element_role_name ];
|
245 |
}
|
246 |
|
@@ -272,10 +247,15 @@ class Toolset_Association implements IToolset_Association {
|
|
272 |
public function get_element( $element_role ) {
|
273 |
$element_role_name = Toolset_Relationship_Role::name_from_role( $element_role );
|
274 |
|
275 |
-
if(
|
276 |
-
|
|
|
|
|
|
|
|
|
277 |
}
|
278 |
|
|
|
279 |
if(
|
280 |
! array_key_exists( $element_role_name, $this->elements )
|
281 |
|| null === $this->elements[ $element_role_name ]
|
@@ -349,20 +329,10 @@ class Toolset_Association implements IToolset_Association {
|
|
349 |
* @return null|IToolset_Post
|
350 |
*/
|
351 |
protected function get_intermediary_post() {
|
352 |
-
|
353 |
-
|
354 |
-
}
|
355 |
-
|
356 |
-
if( null === $this->intermediary_post ) {
|
357 |
-
try {
|
358 |
-
$this->intermediary_post = $this->get_element_factory()->get_post( $this->intermediary_id );
|
359 |
-
} catch( Exception $e ) {
|
360 |
-
// We couldn't load the post, it probably doesn't exist. Reset the ID to avoid checking again.
|
361 |
-
$this->intermediary_id = 0;
|
362 |
-
}
|
363 |
-
}
|
364 |
|
365 |
-
return $
|
366 |
}
|
367 |
|
368 |
|
@@ -403,7 +373,7 @@ class Toolset_Association implements IToolset_Association {
|
|
403 |
*/
|
404 |
public function get_intermediary_id() {
|
405 |
if( ! $this->can_be_translated() ) {
|
406 |
-
return $this->
|
407 |
}
|
408 |
|
409 |
// We have to go through the post object because it might be translated.
|
8 |
* Not to be used directly outside of the m2m API.
|
9 |
*
|
10 |
* @since m2m
|
|
|
11 |
*/
|
12 |
class Toolset_Association implements IToolset_Association {
|
13 |
|
14 |
|
15 |
/**
|
16 |
+
* @var int[] IDs of elements indexed by role names, always complete.
|
17 |
*
|
18 |
* However, in case we deal with translatable elements, this will hold only the IDs
|
19 |
* of the default language versions, so these values can't be always used directly.
|
20 |
* get_element_id() will handle the translation if necessary.
|
|
|
|
|
|
|
|
|
|
|
|
|
21 |
*
|
22 |
+
* If the association has no intermediary post, zero will be stored as its ID.
|
23 |
*/
|
24 |
+
private $element_ids = array();
|
25 |
|
26 |
|
27 |
/** @var Toolset_Relationship_Definition */
|
40 |
private $uid;
|
41 |
|
42 |
|
|
|
|
|
|
|
|
|
|
|
|
|
43 |
/** @var Toolset_WPML_Compatibility */
|
44 |
private $wpml_service;
|
45 |
|
128 |
&& 0 === (int) $element_source
|
129 |
) {
|
130 |
// No intermediary post.
|
131 |
+
$this->element_ids[ Toolset_Relationship_Role::INTERMEDIARY ] = 0;
|
132 |
return;
|
133 |
}
|
134 |
|
167 |
throw new InvalidArgumentException( 'Invalid or missing element source.' );
|
168 |
}
|
169 |
|
170 |
+
$this->element_ids[ $role_name ] = $element_id;
|
171 |
+
if( null !== $element ) {
|
172 |
+
$this->elements[ $role_name ] = $element;
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
173 |
}
|
|
|
174 |
}
|
175 |
|
176 |
|
216 |
$element_role_name = Toolset_Relationship_Role::name_from_role( $element_role );
|
217 |
|
218 |
if( ! $this->can_be_translated() ) {
|
|
|
|
|
|
|
|
|
219 |
return $this->element_ids[ $element_role_name ];
|
220 |
}
|
221 |
|
247 |
public function get_element( $element_role ) {
|
248 |
$element_role_name = Toolset_Relationship_Role::name_from_role( $element_role );
|
249 |
|
250 |
+
if(
|
251 |
+
Toolset_Relationship_Role::INTERMEDIARY === $element_role_name
|
252 |
+
&& 0 === $this->element_ids[ Toolset_Relationship_Role::INTERMEDIARY ]
|
253 |
+
) {
|
254 |
+
// If we know that there is no intermediary post at all, we'll not even try.
|
255 |
+
return null;
|
256 |
}
|
257 |
|
258 |
+
// Load the element if missing.
|
259 |
if(
|
260 |
! array_key_exists( $element_role_name, $this->elements )
|
261 |
|| null === $this->elements[ $element_role_name ]
|
329 |
* @return null|IToolset_Post
|
330 |
*/
|
331 |
protected function get_intermediary_post() {
|
332 |
+
/** @var IToolset_Post|null $post */
|
333 |
+
$post = $this->get_element( new Toolset_Relationship_Role_Intermediary() );
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
334 |
|
335 |
+
return $post;
|
336 |
}
|
337 |
|
338 |
|
373 |
*/
|
374 |
public function get_intermediary_id() {
|
375 |
if( ! $this->can_be_translated() ) {
|
376 |
+
return $this->element_ids[ Toolset_Relationship_Role::INTERMEDIARY ];
|
377 |
}
|
378 |
|
379 |
// We have to go through the post object because it might be translated.
|
vendor/toolset/toolset-common/inc/m2m/association/cleanup/cron_handler.php
CHANGED
@@ -51,7 +51,4 @@ class Toolset_Association_Cleanup_Cron_Handler {
|
|
51 |
$event = $this->cleanup_factory->cron_event();
|
52 |
$this->cron->unschedule_event( $event );
|
53 |
}
|
54 |
-
|
55 |
-
|
56 |
-
|
57 |
}
|
51 |
$event = $this->cleanup_factory->cron_event();
|
52 |
$this->cron->unschedule_event( $event );
|
53 |
}
|
|
|
|
|
|
|
54 |
}
|
vendor/toolset/toolset-common/inc/m2m/association/cleanup/post.php
CHANGED
@@ -44,7 +44,7 @@ class Toolset_Association_Cleanup_Post extends Toolset_Wpdb_User {
|
|
44 |
const DELETE_POSTS_PER_BATCH = 25;
|
45 |
|
46 |
|
47 |
-
const IS_DELETING_FILTER = '
|
48 |
|
49 |
|
50 |
/** @var Toolset_Element_Factory */
|
@@ -114,6 +114,12 @@ class Toolset_Association_Cleanup_Post extends Toolset_Wpdb_User {
|
|
114 |
* @param int $post_id
|
115 |
*/
|
116 |
public function cleanup( $post_id ) {
|
|
|
|
|
|
|
|
|
|
|
|
|
117 |
$is_deleting_association = apply_filters( self::IS_DELETING_FILTER, false );
|
118 |
|
119 |
if( $is_deleting_association ) {
|
@@ -121,6 +127,9 @@ class Toolset_Association_Cleanup_Post extends Toolset_Wpdb_User {
|
|
121 |
// If we got here, it means that the association's intermediary post is about to
|
122 |
// be deleted and everything else is already handled either
|
123 |
// in Toolset_Association_Cleanup_Association, or within this class.
|
|
|
|
|
|
|
124 |
return;
|
125 |
}
|
126 |
|
44 |
const DELETE_POSTS_PER_BATCH = 25;
|
45 |
|
46 |
|
47 |
+
const IS_DELETING_FILTER = 'toolset_is_deleting_intermediary_post_purposefully';
|
48 |
|
49 |
|
50 |
/** @var Toolset_Element_Factory */
|
114 |
* @param int $post_id
|
115 |
*/
|
116 |
public function cleanup( $post_id ) {
|
117 |
+
/**
|
118 |
+
* Filter that can be used to indicate that an intermediary post is deleted
|
119 |
+
* purposefully, and that the association shouldn't be removed.
|
120 |
+
*
|
121 |
+
* @since 2.6.8
|
122 |
+
*/
|
123 |
$is_deleting_association = apply_filters( self::IS_DELETING_FILTER, false );
|
124 |
|
125 |
if( $is_deleting_association ) {
|
127 |
// If we got here, it means that the association's intermediary post is about to
|
128 |
// be deleted and everything else is already handled either
|
129 |
// in Toolset_Association_Cleanup_Association, or within this class.
|
130 |
+
//
|
131 |
+
// Or there is a different situation where an intermediary post is being deleted
|
132 |
+
// but we want to preserve the association.
|
133 |
return;
|
134 |
}
|
135 |
|
vendor/toolset/toolset-common/inc/m2m/association/cleanup/post_type.php
ADDED
@@ -0,0 +1,75 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
<?php
|
2 |
+
|
3 |
+
/**
|
4 |
+
* The class fetches all post ids of all published posts given a post type and deletes them programmatically, without letting m2m API run
|
5 |
+
* additional filters to delete Asociations and their data too.
|
6 |
+
*
|
7 |
+
* Class Toolset_Association_Cleanup_Post_Type
|
8 |
+
*/
|
9 |
+
class Toolset_Association_Cleanup_Post_Type extends Toolset_Wpdb_User {
|
10 |
+
|
11 |
+
|
12 |
+
const DELETE_POSTS_PER_BATCH = 25;
|
13 |
+
|
14 |
+
|
15 |
+
/** @var int */
|
16 |
+
private $found_rows = 0;
|
17 |
+
|
18 |
+
|
19 |
+
/**
|
20 |
+
* Toolset_Association_Cleanup_Post_Type constructor.
|
21 |
+
*
|
22 |
+
* @param wpdb|null $wpdb_di
|
23 |
+
*/
|
24 |
+
public function __construct( wpdb $wpdb_di = null ) {
|
25 |
+
parent::__construct( $wpdb_di );
|
26 |
+
}
|
27 |
+
|
28 |
+
|
29 |
+
/**
|
30 |
+
* @param $post_type
|
31 |
+
*
|
32 |
+
* @return array
|
33 |
+
*/
|
34 |
+
protected function get_post_type_posts_ids( $post_type ) {
|
35 |
+
|
36 |
+
$limit = (int) self::DELETE_POSTS_PER_BATCH;
|
37 |
+
|
38 |
+
$query = $this->wpdb->prepare(
|
39 |
+
"SELECT SQL_CALC_FOUND_ROWS post.ID FROM {$this->wpdb->posts} AS post
|
40 |
+
WHERE post.post_type = %s LIMIT %d", $post_type, $limit
|
41 |
+
);
|
42 |
+
|
43 |
+
$posts_ids = $this->wpdb->get_col( $query );
|
44 |
+
|
45 |
+
$this->found_rows = (int) $this->wpdb->get_var( 'SELECT FOUND_ROWS()' );
|
46 |
+
|
47 |
+
return $posts_ids;
|
48 |
+
}
|
49 |
+
|
50 |
+
/**
|
51 |
+
* @param $post_type
|
52 |
+
*
|
53 |
+
* @return array
|
54 |
+
*/
|
55 |
+
public function clean_up_posts( $post_type ) {
|
56 |
+
$post_ids = array_map( 'intval', $this->get_post_type_posts_ids( $post_type ) );
|
57 |
+
|
58 |
+
add_filter( Toolset_Association_Cleanup_Post::IS_DELETING_FILTER, '__return_true' );
|
59 |
+
|
60 |
+
foreach ( $post_ids as $post_id ) {
|
61 |
+
wp_delete_post( $post_id, true );
|
62 |
+
}
|
63 |
+
|
64 |
+
remove_filter( Toolset_Association_Cleanup_Post::IS_DELETING_FILTER, '__return_true' );
|
65 |
+
|
66 |
+
$results = array();
|
67 |
+
|
68 |
+
$results['total_posts'] = $this->found_rows;
|
69 |
+
|
70 |
+
$results['deleted_posts'] = count( $post_ids );
|
71 |
+
|
72 |
+
return $results;
|
73 |
+
}
|
74 |
+
|
75 |
+
}
|
vendor/toolset/toolset-common/inc/m2m/association/intermediary_post_persistence.php
CHANGED
@@ -180,6 +180,33 @@ class Toolset_Association_Intermediary_Post_Persistence {
|
|
180 |
}
|
181 |
|
182 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
183 |
|
184 |
/**
|
185 |
* Creates an empty association intermediary post
|
180 |
}
|
181 |
|
182 |
|
183 |
+
/**
|
184 |
+
* Removes intermediary post from associations.
|
185 |
+
*
|
186 |
+
* @param int $limit The number of associations in a loop.
|
187 |
+
* @return int Number of associations updated.
|
188 |
+
* @since 2.3
|
189 |
+
*/
|
190 |
+
public function remove_associations_intermediary_posts( $limit = 0 ) {
|
191 |
+
if ( (int) $limit <= 0 ) {
|
192 |
+
$limit = self::DEFAULT_LIMIT;
|
193 |
+
}
|
194 |
+
|
195 |
+
$association_query = new Toolset_Association_Query_V2();
|
196 |
+
$association_query->add( $association_query->relationship( $this->relationship ) )
|
197 |
+
->add( $association_query->has_intermediary_id() )
|
198 |
+
->limit( $limit );
|
199 |
+
$associations = $association_query->get_results();
|
200 |
+
foreach ( $associations as $association ) {
|
201 |
+
// Don't use `maybe_delete_intermediary_post` because it tries to access an object it doesn't exist.
|
202 |
+
$intermediary_id = $association->get_intermediary_id();
|
203 |
+
if ( $intermediary_id ) {
|
204 |
+
$database_operations = new Toolset_Relationship_Database_Operations();
|
205 |
+
$database_operations->update_association_intermediary_id( $association->get_uid(), 0 );
|
206 |
+
}
|
207 |
+
}
|
208 |
+
return count( $associations );
|
209 |
+
}
|
210 |
|
211 |
/**
|
212 |
* Creates an empty association intermediary post
|
vendor/toolset/toolset-common/inc/m2m/association/persistence.php
CHANGED
@@ -124,6 +124,8 @@ class Toolset_Association_Persistence {
|
|
124 |
|
125 |
$updated_association = $this->association_translator->from_database_row( (object) $row );
|
126 |
|
|
|
|
|
127 |
return $updated_association;
|
128 |
}
|
129 |
|
@@ -139,6 +141,7 @@ class Toolset_Association_Persistence {
|
|
139 |
* @since m2m
|
140 |
*/
|
141 |
public function delete_association( IToolset_Association $association ) {
|
|
|
142 |
$cleanup = $this->get_cleanup_factory()->association();
|
143 |
return $cleanup->delete( $association );
|
144 |
}
|
@@ -156,5 +159,64 @@ class Toolset_Association_Persistence {
|
|
156 |
}
|
157 |
|
158 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
159 |
|
160 |
}
|
124 |
|
125 |
$updated_association = $this->association_translator->from_database_row( (object) $row );
|
126 |
|
127 |
+
$this->report_inserted_association( $updated_association );
|
128 |
+
|
129 |
return $updated_association;
|
130 |
}
|
131 |
|
141 |
* @since m2m
|
142 |
*/
|
143 |
public function delete_association( IToolset_Association $association ) {
|
144 |
+
$this->report_before_association_delete( $association );
|
145 |
$cleanup = $this->get_cleanup_factory()->association();
|
146 |
return $cleanup->delete( $association );
|
147 |
}
|
159 |
}
|
160 |
|
161 |
|
162 |
+
/**
|
163 |
+
* Do the toolset_association_created action.
|
164 |
+
*
|
165 |
+
* See report_association_change() for action parameter information.
|
166 |
+
*
|
167 |
+
* @param IToolset_Association $association
|
168 |
+
* @since 2.7
|
169 |
+
*/
|
170 |
+
private function report_inserted_association( IToolset_Association $association ) {
|
171 |
+
$this->report_association_change( $association, 'toolset_association_created' );
|
172 |
+
}
|
173 |
+
|
174 |
+
|
175 |
+
|
176 |
+
/**
|
177 |
+
* Do the toolset_before_association_delete action.
|
178 |
+
*
|
179 |
+
* See report_association_change() for action parameter information.
|
180 |
+
*
|
181 |
+
* @param IToolset_Association $association
|
182 |
+
* @since 2.7
|
183 |
+
*/
|
184 |
+
public function report_before_association_delete( IToolset_Association $association ) {
|
185 |
+
$this->report_association_change( $association, 'toolset_before_association_delete' );
|
186 |
+
}
|
187 |
+
|
188 |
+
|
189 |
+
/**
|
190 |
+
* Do an action that indicates a change to an association.
|
191 |
+
*
|
192 |
+
* Action parameters:
|
193 |
+
* - (string) $relationship_slug
|
194 |
+
* - (int) $parent_id
|
195 |
+
* - (int) $child_id
|
196 |
+
* - (int) $intermediary_id, zero if there is none.
|
197 |
+
* - (int) $association_uid: An internal identifier for the association. May become useful in the future.
|
198 |
+
*
|
199 |
+
* Note that all element IDs will come in their default language version.
|
200 |
+
*
|
201 |
+
* @param IToolset_Association $association
|
202 |
+
* @param string $action_name Name of the hook.
|
203 |
+
* @since 2.7
|
204 |
+
*/
|
205 |
+
private function report_association_change( IToolset_Association $association, $action_name ) {
|
206 |
+
|
207 |
+
$intermediary_post_id = ( $association->has_intermediary_post()
|
208 |
+
? $association->get_element( new Toolset_Relationship_Role_Intermediary() )->get_default_language_id()
|
209 |
+
: 0
|
210 |
+
);
|
211 |
+
|
212 |
+
do_action(
|
213 |
+
$action_name,
|
214 |
+
$association->get_definition()->get_slug(),
|
215 |
+
$association->get_element( new Toolset_Relationship_Role_Parent() )->get_default_language_id(),
|
216 |
+
$association->get_element( new Toolset_Relationship_Role_Child() )->get_default_language_id(),
|
217 |
+
$intermediary_post_id,
|
218 |
+
$association->get_uid()
|
219 |
+
);
|
220 |
+
}
|
221 |
|
222 |
}
|
vendor/toolset/toolset-common/inc/m2m/association/query/association_query.php
CHANGED
@@ -35,6 +35,7 @@ class Toolset_Association_Query extends Toolset_Relationship_Query_Base {
|
|
35 |
const QUERY_LIMIT = 'limit';
|
36 |
const QUERY_SELECT_FIELDS = 'select_fields';
|
37 |
const QUERY_RELATIONSHIP_SLUG = 'relationship_slug';
|
|
|
38 |
const QUERY_RELATIONSHIP_ID = 'relationship_id';
|
39 |
const QUERY_PARENT_ID = 'parent_id';
|
40 |
const QUERY_CHILD_ID = 'child_id';
|
@@ -71,6 +72,7 @@ class Toolset_Association_Query extends Toolset_Relationship_Query_Base {
|
|
71 |
$this->parse_query_arg( $query, self::QUERY_RELATIONSHIP_ID, 'absint' );
|
72 |
$this->parse_query_arg( $query, self::QUERY_PARENT_ID, 'absint' );
|
73 |
$this->parse_query_arg( $query, self::QUERY_CHILD_ID, 'absint' );
|
|
|
74 |
$this->parse_query_arg( $query, self::QUERY_LIMIT, 'absint' );
|
75 |
$this->parse_query_arg( $query, self::QUERY_OFFSET, 'absint' );
|
76 |
$this->parse_query_arg( $query, self::QUERY_SELECT_FIELDS, null, array() );
|
@@ -102,6 +104,11 @@ class Toolset_Association_Query extends Toolset_Relationship_Query_Base {
|
|
102 |
$q->add( $q->relationship_id( $relationship_id ) );
|
103 |
}
|
104 |
|
|
|
|
|
|
|
|
|
|
|
105 |
if ( $this->has_query_var( self::QUERY_PARENT_ID ) ) {
|
106 |
$q->add( $q->parent_id( $this->get_query_var( self::QUERY_PARENT_ID ) ) );
|
107 |
}
|
35 |
const QUERY_LIMIT = 'limit';
|
36 |
const QUERY_SELECT_FIELDS = 'select_fields';
|
37 |
const QUERY_RELATIONSHIP_SLUG = 'relationship_slug';
|
38 |
+
const QUERY_INTERMEDIARY_ID = 'intermediary_id';
|
39 |
const QUERY_RELATIONSHIP_ID = 'relationship_id';
|
40 |
const QUERY_PARENT_ID = 'parent_id';
|
41 |
const QUERY_CHILD_ID = 'child_id';
|
72 |
$this->parse_query_arg( $query, self::QUERY_RELATIONSHIP_ID, 'absint' );
|
73 |
$this->parse_query_arg( $query, self::QUERY_PARENT_ID, 'absint' );
|
74 |
$this->parse_query_arg( $query, self::QUERY_CHILD_ID, 'absint' );
|
75 |
+
$this->parse_query_arg( $query, self::QUERY_INTERMEDIARY_ID, 'absint' );
|
76 |
$this->parse_query_arg( $query, self::QUERY_LIMIT, 'absint' );
|
77 |
$this->parse_query_arg( $query, self::QUERY_OFFSET, 'absint' );
|
78 |
$this->parse_query_arg( $query, self::QUERY_SELECT_FIELDS, null, array() );
|
104 |
$q->add( $q->relationship_id( $relationship_id ) );
|
105 |
}
|
106 |
|
107 |
+
if ( $this->has_query_var( self::QUERY_INTERMEDIARY_ID ) ) {
|
108 |
+
$intermediary_id = $this->get_query_var( self::QUERY_INTERMEDIARY_ID );
|
109 |
+
$q->add( $q->intermediary_id( $intermediary_id ) );
|
110 |
+
}
|
111 |
+
|
112 |
if ( $this->has_query_var( self::QUERY_PARENT_ID ) ) {
|
113 |
$q->add( $q->parent_id( $this->get_query_var( self::QUERY_PARENT_ID ) ) );
|
114 |
}
|
vendor/toolset/toolset-common/inc/m2m/association/query/association_query_v2.php
CHANGED
@@ -49,7 +49,7 @@
|
|
49 |
*
|
50 |
* @since 2.5.8
|
51 |
*/
|
52 |
-
class Toolset_Association_Query_V2 extends Toolset_Wpdb_User
|
53 |
|
54 |
|
55 |
/** @var IToolset_Association_Query_Condition[] */
|
@@ -115,6 +115,12 @@ class Toolset_Association_Query_V2 extends Toolset_Wpdb_User implements IToolset
|
|
115 |
/** @var IToolset_Association_Query_Restriction[] */
|
116 |
private $restrictions = array();
|
117 |
|
|
|
|
|
|
|
|
|
|
|
|
|
118 |
|
119 |
/**
|
120 |
* Toolset_Association_Query_V2 constructor.
|
@@ -128,6 +134,7 @@ class Toolset_Association_Query_V2 extends Toolset_Wpdb_User implements IToolset
|
|
128 |
* @param Toolset_Association_Query_Table_Join_Manager|null $join_manager_di
|
129 |
* @param Toolset_Association_Query_Orderby_Factory|null $orderby_factory_di
|
130 |
* @param Toolset_Association_Query_Element_Selector_Provider|null $element_selector_provider_di
|
|
|
131 |
*/
|
132 |
public function __construct(
|
133 |
wpdb $wpdb_di = null,
|
@@ -138,7 +145,8 @@ class Toolset_Association_Query_V2 extends Toolset_Wpdb_User implements IToolset
|
|
138 |
Toolset_Relationship_Definition_Repository $definition_repository_di = null,
|
139 |
Toolset_Association_Query_Table_Join_Manager $join_manager_di = null,
|
140 |
Toolset_Association_Query_Orderby_Factory $orderby_factory_di = null,
|
141 |
-
Toolset_Association_Query_Element_Selector_Provider $element_selector_provider_di = null
|
|
|
142 |
) {
|
143 |
parent::__construct( $wpdb_di );
|
144 |
$this->unique_table_alias = $unique_table_alias_di ?: new Toolset_Relationship_Database_Unique_Table_Alias();
|
@@ -149,6 +157,7 @@ class Toolset_Association_Query_V2 extends Toolset_Wpdb_User implements IToolset
|
|
149 |
$this->orderby_factory = $orderby_factory_di ?: new Toolset_Association_Query_Orderby_Factory();
|
150 |
$this->element_selector_provider = $element_selector_provider_di ?: new Toolset_Association_Query_Element_Selector_Provider();
|
151 |
$this->_definition_repository = $definition_repository_di;
|
|
|
152 |
}
|
153 |
|
154 |
|
@@ -273,6 +282,9 @@ class Toolset_Association_Query_V2 extends Toolset_Wpdb_User implements IToolset
|
|
273 |
$this->return_association_instances();
|
274 |
}
|
275 |
|
|
|
|
|
|
|
276 |
$this->apply_restrictions();
|
277 |
|
278 |
// We do this only after restrictions have been applied.
|
@@ -356,6 +368,10 @@ class Toolset_Association_Query_V2 extends Toolset_Wpdb_User implements IToolset
|
|
356 |
}
|
357 |
|
358 |
|
|
|
|
|
|
|
|
|
359 |
/**
|
360 |
* Query by a row ID of a relationship definition.
|
361 |
*
|
@@ -366,6 +382,16 @@ class Toolset_Association_Query_V2 extends Toolset_Wpdb_User implements IToolset
|
|
366 |
return $this->condition_factory->relationship_id( $relationship_id );
|
367 |
}
|
368 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
369 |
|
370 |
/**
|
371 |
* Query by a relationship definition.
|
@@ -444,6 +470,8 @@ class Toolset_Association_Query_V2 extends Toolset_Wpdb_User implements IToolset
|
|
444 |
* as stored in the association table. Default is false.
|
445 |
* @param bool $translate_provided_id If true, this will try to translate the element ID (if
|
446 |
* applicable on the domain) and use the translated one in the final condition. Default is true.
|
|
|
|
|
447 |
*
|
448 |
* @return Toolset_Association_Query_Condition_Element_Id_And_Domain
|
449 |
* @since 2.5.10
|
@@ -453,8 +481,13 @@ class Toolset_Association_Query_V2 extends Toolset_Wpdb_User implements IToolset
|
|
453 |
$domain,
|
454 |
IToolset_Relationship_Role $for_role,
|
455 |
$query_original_element = false,
|
456 |
-
$translate_provided_id = true
|
|
|
457 |
) {
|
|
|
|
|
|
|
|
|
458 |
return $this->condition_factory->element_id_and_domain(
|
459 |
$element_id,
|
460 |
$domain,
|
@@ -475,6 +508,8 @@ class Toolset_Association_Query_V2 extends Toolset_Wpdb_User implements IToolset
|
|
475 |
* as stored in the association table. Default is false.
|
476 |
* @param bool $translate_provided_id If true, this will try to translate the element ID (if
|
477 |
* applicable on the domain) and use the translated one in the final condition. Default is true.
|
|
|
|
|
478 |
*
|
479 |
* @return IToolset_Association_Query_Condition
|
480 |
*/
|
@@ -482,14 +517,18 @@ class Toolset_Association_Query_V2 extends Toolset_Wpdb_User implements IToolset
|
|
482 |
IToolset_Element $element,
|
483 |
IToolset_Relationship_Role $for_role = null,
|
484 |
$query_original_element = false,
|
485 |
-
$translate_provided_id = true
|
|
|
486 |
) {
|
|
|
|
|
|
|
487 |
|
488 |
if( null === $for_role ) {
|
489 |
$conditions = array();
|
490 |
foreach( Toolset_Relationship_Role::all() as $role ) {
|
491 |
$conditions[] = $this->element(
|
492 |
-
$element, $role, $query_original_element, $translate_provided_id
|
493 |
);
|
494 |
}
|
495 |
return $this->do_or( $conditions );
|
@@ -686,6 +725,28 @@ class Toolset_Association_Query_V2 extends Toolset_Wpdb_User implements IToolset
|
|
686 |
}
|
687 |
|
688 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
689 |
/**
|
690 |
* Query by a WP_Query arguments applied on an element of a specified role.
|
691 |
*
|
@@ -977,6 +1038,92 @@ class Toolset_Association_Query_V2 extends Toolset_Wpdb_User implements IToolset
|
|
977 |
}
|
978 |
|
979 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
980 |
/**
|
981 |
* Perform the query to only return the number of found rows, if we're not interested in
|
982 |
* the actual results.
|
49 |
*
|
50 |
* @since 2.5.8
|
51 |
*/
|
52 |
+
class Toolset_Association_Query_V2 extends Toolset_Wpdb_User {
|
53 |
|
54 |
|
55 |
/** @var IToolset_Association_Query_Condition[] */
|
115 |
/** @var IToolset_Association_Query_Restriction[] */
|
116 |
private $restrictions = array();
|
117 |
|
118 |
+
/** @var string|null */
|
119 |
+
private $translation_language;
|
120 |
+
|
121 |
+
/** @var Toolset_WPML_Compatibility */
|
122 |
+
private $wpml_service;
|
123 |
+
|
124 |
|
125 |
/**
|
126 |
* Toolset_Association_Query_V2 constructor.
|
134 |
* @param Toolset_Association_Query_Table_Join_Manager|null $join_manager_di
|
135 |
* @param Toolset_Association_Query_Orderby_Factory|null $orderby_factory_di
|
136 |
* @param Toolset_Association_Query_Element_Selector_Provider|null $element_selector_provider_di
|
137 |
+
* @param Toolset_WPML_Compatibility|null $wpml_service_di
|
138 |
*/
|
139 |
public function __construct(
|
140 |
wpdb $wpdb_di = null,
|
145 |
Toolset_Relationship_Definition_Repository $definition_repository_di = null,
|
146 |
Toolset_Association_Query_Table_Join_Manager $join_manager_di = null,
|
147 |
Toolset_Association_Query_Orderby_Factory $orderby_factory_di = null,
|
148 |
+
Toolset_Association_Query_Element_Selector_Provider $element_selector_provider_di = null,
|
149 |
+
Toolset_WPML_Compatibility $wpml_service_di = null
|
150 |
) {
|
151 |
parent::__construct( $wpdb_di );
|
152 |
$this->unique_table_alias = $unique_table_alias_di ?: new Toolset_Relationship_Database_Unique_Table_Alias();
|
157 |
$this->orderby_factory = $orderby_factory_di ?: new Toolset_Association_Query_Orderby_Factory();
|
158 |
$this->element_selector_provider = $element_selector_provider_di ?: new Toolset_Association_Query_Element_Selector_Provider();
|
159 |
$this->_definition_repository = $definition_repository_di;
|
160 |
+
$this->wpml_service = $wpml_service_di ?: Toolset_WPML_Compatibility::get_instance();
|
161 |
}
|
162 |
|
163 |
|
282 |
$this->return_association_instances();
|
283 |
}
|
284 |
|
285 |
+
// Sometimes it's not as straightforward as "get current language"
|
286 |
+
$this->determine_translation_language();
|
287 |
+
|
288 |
$this->apply_restrictions();
|
289 |
|
290 |
// We do this only after restrictions have been applied.
|
368 |
}
|
369 |
|
370 |
|
371 |
+
public function not( IToolset_Association_Query_Condition $condition ) {
|
372 |
+
return $this->condition_factory->not( $condition );
|
373 |
+
}
|
374 |
+
|
375 |
/**
|
376 |
* Query by a row ID of a relationship definition.
|
377 |
*
|
382 |
return $this->condition_factory->relationship_id( $relationship_id );
|
383 |
}
|
384 |
|
385 |
+
/**
|
386 |
+
* Query by a row intermediary_id of a relationship definition.
|
387 |
+
*
|
388 |
+
* @param int $relationship_id
|
389 |
+
* @return IToolset_Association_Query_Condition
|
390 |
+
*/
|
391 |
+
public function intermediary_id( $relationship_id ) {
|
392 |
+
return $this->condition_factory->intermediary_id( $relationship_id );
|
393 |
+
}
|
394 |
+
|
395 |
|
396 |
/**
|
397 |
* Query by a relationship definition.
|
470 |
* as stored in the association table. Default is false.
|
471 |
* @param bool $translate_provided_id If true, this will try to translate the element ID (if
|
472 |
* applicable on the domain) and use the translated one in the final condition. Default is true.
|
473 |
+
* @param bool $set_its_translation_language If true, the query may try to use the element's language
|
474 |
+
* to determine the desired language of the results (see determine_translation_language() for details)
|
475 |
*
|
476 |
* @return Toolset_Association_Query_Condition_Element_Id_And_Domain
|
477 |
* @since 2.5.10
|
481 |
$domain,
|
482 |
IToolset_Relationship_Role $for_role,
|
483 |
$query_original_element = false,
|
484 |
+
$translate_provided_id = true,
|
485 |
+
$set_its_translation_language = true
|
486 |
) {
|
487 |
+
if( $set_its_translation_language ) {
|
488 |
+
$this->set_translation_language_by_element_id_and_domain( $element_id, $domain );
|
489 |
+
}
|
490 |
+
|
491 |
return $this->condition_factory->element_id_and_domain(
|
492 |
$element_id,
|
493 |
$domain,
|
508 |
* as stored in the association table. Default is false.
|
509 |
* @param bool $translate_provided_id If true, this will try to translate the element ID (if
|
510 |
* applicable on the domain) and use the translated one in the final condition. Default is true.
|
511 |
+
* @param bool $set_its_translation_language If true, the query may try to use the element's language
|
512 |
+
* to determine the desired language of the results (see determine_translation_language() for details)
|
513 |
*
|
514 |
* @return IToolset_Association_Query_Condition
|
515 |
*/
|
517 |
IToolset_Element $element,
|
518 |
IToolset_Relationship_Role $for_role = null,
|
519 |
$query_original_element = false,
|
520 |
+
$translate_provided_id = true,
|
521 |
+
$set_its_translation_language = true
|
522 |
) {
|
523 |
+
if( $set_its_translation_language ) {
|
524 |
+
$this->set_translation_language_by_element_id_and_domain( $element->get_id(), $element->get_domain() );
|
525 |
+
}
|
526 |
|
527 |
if( null === $for_role ) {
|
528 |
$conditions = array();
|
529 |
foreach( Toolset_Relationship_Role::all() as $role ) {
|
530 |
$conditions[] = $this->element(
|
531 |
+
$element, $role, $query_original_element, $translate_provided_id, false
|
532 |
);
|
533 |
}
|
534 |
return $this->do_or( $conditions );
|
725 |
}
|
726 |
|
727 |
|
728 |
+
/**
|
729 |
+
* Condition that a relationship has a certain origin.
|
730 |
+
*
|
731 |
+
* @param String $origin Origin.
|
732 |
+
*
|
733 |
+
* @return IToolset_Relationship_Query_Condition
|
734 |
+
*/
|
735 |
+
public function has_origin( $origin ) {
|
736 |
+
return $this->condition_factory->has_origin( $origin, $this->join_manager );
|
737 |
+
}
|
738 |
+
|
739 |
+
|
740 |
+
/**
|
741 |
+
* Condition that the association has an intermediary id.
|
742 |
+
*
|
743 |
+
* @return IToolset_Relationship_Query_Condition
|
744 |
+
*/
|
745 |
+
public function has_intermediary_id() {
|
746 |
+
return $this->condition_factory->has_intermediary_id();
|
747 |
+
}
|
748 |
+
|
749 |
+
|
750 |
/**
|
751 |
* Query by a WP_Query arguments applied on an element of a specified role.
|
752 |
*
|
1038 |
}
|
1039 |
|
1040 |
|
1041 |
+
/**
|
1042 |
+
* Make sure that the elements in results will never get translated.
|
1043 |
+
*
|
1044 |
+
* @since 2.6.4
|
1045 |
+
* @return $this
|
1046 |
+
*/
|
1047 |
+
public function dont_translate_results() {
|
1048 |
+
$this->element_selector_provider->attempt_translating_elements( false );
|
1049 |
+
return $this;
|
1050 |
+
}
|
1051 |
+
|
1052 |
+
|
1053 |
+
/**
|
1054 |
+
* Set the preferred translation language.
|
1055 |
+
*
|
1056 |
+
* See determine_translation_language() for details.
|
1057 |
+
*
|
1058 |
+
* @param string $lang_code Valid language code.
|
1059 |
+
*
|
1060 |
+
* @return $this
|
1061 |
+
*/
|
1062 |
+
public function set_translation_language( $lang_code ) {
|
1063 |
+
if( ! is_string( $lang_code ) ) {
|
1064 |
+
throw new InvalidArgumentException();
|
1065 |
+
}
|
1066 |
+
|
1067 |
+
$this->translation_language = $lang_code;
|
1068 |
+
|
1069 |
+
return $this;
|
1070 |
+
}
|
1071 |
+
|
1072 |
+
|
1073 |
+
/**
|
1074 |
+
* Set the preferred translation language from a given element ID and domain.
|
1075 |
+
*
|
1076 |
+
* See determine_translation_language() for details.
|
1077 |
+
*
|
1078 |
+
* @param int $element_id ID of the element to take the language from.
|
1079 |
+
* @param string $domain Element domain.
|
1080 |
+
*
|
1081 |
+
* @return $this
|
1082 |
+
* @since 2.6.8
|
1083 |
+
*/
|
1084 |
+
public function set_translation_language_by_element_id_and_domain( $element_id, $domain ) {
|
1085 |
+
if( Toolset_Element_Domain::POSTS !== $domain ) {
|
1086 |
+
// no language information there
|
1087 |
+
return $this;
|
1088 |
+
}
|
1089 |
+
|
1090 |
+
$post_language = $this->wpml_service->get_post_language( $element_id );
|
1091 |
+
if( ! empty( $post_language ) ) {
|
1092 |
+
$this->set_translation_language( $post_language );
|
1093 |
+
}
|
1094 |
+
|
1095 |
+
return $this;
|
1096 |
+
}
|
1097 |
+
|
1098 |
+
|
1099 |
+
/**
|
1100 |
+
* Determine an alternative to the translation language (what language version of the results should be chosen).
|
1101 |
+
*
|
1102 |
+
* This will be used only if applicable - if WPML is active and the current language is set to "All languages",
|
1103 |
+
* in which case we're forced to pick one.
|
1104 |
+
*
|
1105 |
+
* If we have a valid lang code, we'll pass it to the element selector. Otherwise, it will use the default language.
|
1106 |
+
*
|
1107 |
+
* @since 2.6.8
|
1108 |
+
*/
|
1109 |
+
private function determine_translation_language() {
|
1110 |
+
if( ! $this->wpml_service->is_wpml_active_and_configured() ) {
|
1111 |
+
return;
|
1112 |
+
}
|
1113 |
+
|
1114 |
+
if( ! $this->wpml_service->is_showing_all_languages() ) {
|
1115 |
+
return;
|
1116 |
+
}
|
1117 |
+
|
1118 |
+
if( null === $this->translation_language ) {
|
1119 |
+
// Here, we may try to determine the language by some other means.
|
1120 |
+
return;
|
1121 |
+
}
|
1122 |
+
|
1123 |
+
$this->element_selector_provider->set_translation_language( $this->translation_language );
|
1124 |
+
}
|
1125 |
+
|
1126 |
+
|
1127 |
/**
|
1128 |
* Perform the query to only return the number of found rows, if we're not interested in
|
1129 |
* the actual results.
|
vendor/toolset/toolset-common/inc/m2m/association/query/condition/exclude_relationship.php
ADDED
@@ -0,0 +1,21 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
<?php
|
2 |
+
|
3 |
+
/**
|
4 |
+
* Condition to query associations that don't belong to a relationship.
|
5 |
+
*
|
6 |
+
* @since 2.5.8
|
7 |
+
*/
|
8 |
+
class Toolset_Association_Query_Condition_Exclude_Relationship extends Toolset_Association_Query_Condition_Relationship_Id {
|
9 |
+
|
10 |
+
|
11 |
+
/**
|
12 |
+
* Returns condition operator
|
13 |
+
*
|
14 |
+
* @return string
|
15 |
+
* @since m2m
|
16 |
+
*/
|
17 |
+
protected function get_operator() {
|
18 |
+
return '!=';
|
19 |
+
}
|
20 |
+
|
21 |
+
}
|
vendor/toolset/toolset-common/inc/m2m/association/query/condition/has_intermediary_id.php
ADDED
@@ -0,0 +1,20 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
<?php
|
2 |
+
|
3 |
+
/**
|
4 |
+
* Condition to query associations by a specific intermediary post (row) ID.
|
5 |
+
*
|
6 |
+
* @since 2.6.7
|
7 |
+
*/
|
8 |
+
class Toolset_Association_Query_Condition_Has_Intermediary_Id extends Toolset_Association_Query_Condition {
|
9 |
+
|
10 |
+
|
11 |
+
/**
|
12 |
+
* Get a part of the WHERE clause that applies the condition.
|
13 |
+
*
|
14 |
+
* @return string Valid part of a MySQL query, so that it can be
|
15 |
+
* used in WHERE ( $condition1 ) AND ( $condition2 ) AND ( $condition3 ) ...
|
16 |
+
*/
|
17 |
+
public function get_where_clause() {
|
18 |
+
return sprintf( ' ( associations.intermediary_id IS NOT NULL and associations.intermediary_id > 0 ) ' );
|
19 |
+
}
|
20 |
+
}
|
vendor/toolset/toolset-common/inc/m2m/association/query/condition/intermediary_id.php
ADDED
@@ -0,0 +1,41 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
<?php
|
2 |
+
|
3 |
+
/**
|
4 |
+
* Condition to query associations by a specific intermediary post (row) ID.
|
5 |
+
*
|
6 |
+
* @since 2.6.7
|
7 |
+
*/
|
8 |
+
class Toolset_Association_Query_Condition_Intermediary_Id extends Toolset_Association_Query_Condition {
|
9 |
+
|
10 |
+
|
11 |
+
/** @var int */
|
12 |
+
private $intermediary_id;
|
13 |
+
|
14 |
+
|
15 |
+
/**
|
16 |
+
* Toolset_Association_Query_Condition_Intermediary_Id constructor.
|
17 |
+
*
|
18 |
+
* @param int $intermediary_id
|
19 |
+
* @throws InvalidArgumentException
|
20 |
+
*/
|
21 |
+
public function __construct( $intermediary_id ) {
|
22 |
+
if( ! Toolset_Utils::is_nonnegative_integer( $intermediary_id ) ) {
|
23 |
+
throw new InvalidArgumentException();
|
24 |
+
}
|
25 |
+
|
26 |
+
$this->intermediary_id = (int) $intermediary_id;
|
27 |
+
}
|
28 |
+
|
29 |
+
|
30 |
+
/**
|
31 |
+
* Get a part of the WHERE clause that applies the condition.
|
32 |
+
*
|
33 |
+
* @return string Valid part of a MySQL query, so that it can be
|
34 |
+
* used in WHERE ( $condition1 ) AND ( $condition2 ) AND ( $condition3 ) ...
|
35 |
+
*/
|
36 |
+
public function get_where_clause() {
|
37 |
+
return sprintf( 'associations.intermediary_id = %d', $this->intermediary_id );
|
38 |
+
}
|
39 |
+
|
40 |
+
|
41 |
+
}
|
vendor/toolset/toolset-common/inc/m2m/association/query/condition/relationship_id.php
CHANGED
@@ -34,8 +34,18 @@ class Toolset_Association_Query_Condition_Relationship_Id extends Toolset_Associ
|
|
34 |
* used in WHERE ( $condition1 ) AND ( $condition2 ) AND ( $condition3 ) ...
|
35 |
*/
|
36 |
public function get_where_clause() {
|
37 |
-
return sprintf( 'associations.relationship_id
|
38 |
}
|
39 |
|
40 |
|
41 |
-
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
34 |
* used in WHERE ( $condition1 ) AND ( $condition2 ) AND ( $condition3 ) ...
|
35 |
*/
|
36 |
public function get_where_clause() {
|
37 |
+
return sprintf( 'associations.relationship_id %s %d', $this->get_operator(), $this->relationship_id );
|
38 |
}
|
39 |
|
40 |
|
41 |
+
/**
|
42 |
+
* Returns condition operator
|
43 |
+
*
|
44 |
+
* @return string
|
45 |
+
* @since m2m
|
46 |
+
*/
|
47 |
+
protected function get_operator() {
|
48 |
+
return '=';
|
49 |
+
}
|
50 |
+
|
51 |
+
}
|
vendor/toolset/toolset-common/inc/m2m/association/query/condition/relationship_origin.php
ADDED
@@ -0,0 +1,45 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
<?php
|
2 |
+
|
3 |
+
/**
|
4 |
+
* Query associations by the origin value of a relationship they belong to.
|
5 |
+
*
|
6 |
+
* @since m2m
|
7 |
+
*/
|
8 |
+
class Toolset_Association_Query_Condition_Relationship_Origin extends Toolset_Association_Query_Condition {
|
9 |
+
|
10 |
+
/** @var Toolset_Association_Query_Table_Join_Manager */
|
11 |
+
private $join_manager;
|
12 |
+
|
13 |
+
|
14 |
+
/** @var bool */
|
15 |
+
private $expected_value;
|
16 |
+
|
17 |
+
|
18 |
+
/**
|
19 |
+
* Toolset_Association_Query_Condition_Has_Active_Relationship constructor.
|
20 |
+
*
|
21 |
+
* @param bool $expected_value
|
22 |
+
* @param Toolset_Association_Query_Table_Join_Manager $join_manager
|
23 |
+
*/
|
24 |
+
public function __construct( $expected_value, Toolset_Association_Query_Table_Join_Manager $join_manager ) {
|
25 |
+
$this->expected_value = $expected_value;
|
26 |
+
$this->join_manager = $join_manager;
|
27 |
+
}
|
28 |
+
|
29 |
+
|
30 |
+
/**
|
31 |
+
* Get a part of the WHERE clause that applies the condition.
|
32 |
+
*
|
33 |
+
* @return string Valid part of a MySQL query, so that it can be
|
34 |
+
* used in WHERE ( $condition1 ) AND ( $condition2 ) AND ( $condition3 ) ...
|
35 |
+
*/
|
36 |
+
public function get_where_clause() {
|
37 |
+
$relationships_table = $this->join_manager->relationships();
|
38 |
+
|
39 |
+
return sprintf(
|
40 |
+
'%s.origin = %d',
|
41 |
+
$relationships_table,
|
42 |
+
esc_sql( $this->expected_value )
|
43 |
+
);
|
44 |
+
}
|
45 |
+
}
|
vendor/toolset/toolset-common/inc/m2m/association/query/condition_factory.php
CHANGED
@@ -65,6 +65,27 @@ class Toolset_Association_Query_Condition_Factory {
|
|
65 |
return new Toolset_Association_Query_Condition_Relationship_Id( $relationship_id );
|
66 |
}
|
67 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
68 |
|
69 |
/**
|
70 |
* Condition to query associations by a particular element involved in a particular role.
|
@@ -109,7 +130,7 @@ class Toolset_Association_Query_Condition_Factory {
|
|
109 |
$element_id, $domain, $for_role, $element_selector_provider, $query_original_element, $translate_provided_id
|
110 |
);
|
111 |
}
|
112 |
-
|
113 |
|
114 |
|
115 |
/**
|
@@ -319,4 +340,27 @@ class Toolset_Association_Query_Condition_Factory {
|
|
319 |
$join_manager
|
320 |
);
|
321 |
}
|
322 |
-
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
65 |
return new Toolset_Association_Query_Condition_Relationship_Id( $relationship_id );
|
66 |
}
|
67 |
|
68 |
+
/**
|
69 |
+
* Condition to query associations by a specific intermediary (row) ID.
|
70 |
+
*
|
71 |
+
* @param int $intermediary_id
|
72 |
+
*
|
73 |
+
* @return IToolset_Association_Query_Condition
|
74 |
+
*/
|
75 |
+
public function intermediary_id( $intermediary_id ) {
|
76 |
+
return new Toolset_Association_Query_Condition_Intermediary_Id( $intermediary_id );
|
77 |
+
}
|
78 |
+
|
79 |
+
|
80 |
+
/**
|
81 |
+
* Condition to query associations having intermediary id.
|
82 |
+
*
|
83 |
+
* @return IToolset_Association_Query_Condition
|
84 |
+
*/
|
85 |
+
public function has_intermediary_id() {
|
86 |
+
return new Toolset_Association_Query_Condition_Has_Intermediary_Id();
|
87 |
+
}
|
88 |
+
|
89 |
|
90 |
/**
|
91 |
* Condition to query associations by a particular element involved in a particular role.
|
130 |
$element_id, $domain, $for_role, $element_selector_provider, $query_original_element, $translate_provided_id
|
131 |
);
|
132 |
}
|
133 |
+
|
134 |
|
135 |
|
136 |
/**
|
340 |
$join_manager
|
341 |
);
|
342 |
}
|
343 |
+
|
344 |
+
|
345 |
+
/**
|
346 |
+
* Condition that a relationship has a certain origin.
|
347 |
+
*
|
348 |
+
* @param string $origin Origin: wizard, ...
|
349 |
+
* @param Toolset_Association_Query_Table_Join_Manager $join_manager Join manager.
|
350 |
+
*
|
351 |
+
* @return IToolset_Relationship_Query_Condition
|
352 |
+
*/
|
353 |
+
public function has_origin( $origin, Toolset_Association_Query_Table_Join_Manager $join_
|