PluginProbe
Elementor Website Builder – more than just a page builder / 3.35.3
Elementor Website Builder – more than just a page builder v3.35.3
4.3.0-beta2 4.3.0-beta1 4.2.4 4.2.3 4.2.2 4.2.1 4.2.0 4.1.5 4.2.0-beta2 4.2.0-dev2 4.2.0-beta1 4.1.4 4.1.3 4.1.2 4.1.1 4.1.0 4.1.0-beta3 4.1.0-dev3 4.0.9 4.1.0-beta2 4.1.0-dev2 4.0.8 4.1.0-beta1 4.1.0-dev1 4.0.7 All 451 releases
elementor / modules / apps / module.php

module.php in Elementor Website Builder – more than just a page builder 3.35.3, at modules/apps/module.php

112 lines 3.9 KB
No matching file
Up and down to move Enter to open Esc to close
Raw Download Zip
1 <?php
2 namespace Elementor\Modules\Apps;
3
4 use Elementor\Core\Admin\Menu\Admin_Menu_Manager;
5 use Elementor\Core\Base\Module as BaseModule;
6 use Elementor\Plugin;
7
8 if ( ! defined( 'ABSPATH' ) ) {
9 exit; // Exit if accessed directly.
10 }
11
12 class Module extends BaseModule {
13
14 const PAGE_ID = 'elementor-apps';
15
16 public function get_name() {
17 return 'apps';
18 }
19
20 public function __construct() {
21 parent::__construct();
22
23 Admin_Pointer::add_hooks();
24
25 add_action( 'elementor/admin/menu/register', function( Admin_Menu_Manager $admin_menu ) {
26 if ( ! Plugin::instance()->modules_manager->get_modules( 'editor-one' ) ) {
27 $admin_menu->register( static::PAGE_ID, new Admin_Menu_Apps() );
28 }
29 }, 115 );
30
31 add_action( 'elementor/admin/menu/after_register', function ( Admin_Menu_Manager $admin_menu, array $hooks ) {
32 if ( ! empty( $hooks[ static::PAGE_ID ] ) ) {
33 add_action( "admin_print_scripts-{$hooks[ static::PAGE_ID ]}", [ $this, 'enqueue_assets' ] );
34 }
35 }, 10, 2 );
36
37 add_filter( 'elementor/finder/categories', function( array $categories ) {
38 $categories['site']['items']['apps'] = [
39 'title' => esc_html__( 'Add-ons', 'elementor' ),
40 'url' => admin_url( 'admin.php?page=' . static::PAGE_ID ),
41 'icon' => 'apps',
42 'keywords' => [ 'apps', 'addon', 'plugin', 'extension', 'integration' ],
43 ];
44
45 return $categories;
46 } );
47
48 // Add the Elementor Apps link to the plugin install action links.
49 add_filter( 'install_plugins_tabs', [ $this, 'add_elementor_plugin_install_action_link' ] );
50 add_action( 'install_plugins_pre_elementor', [ $this, 'maybe_open_elementor_tab' ] );
51 add_action( 'admin_print_styles-plugin-install.php', [ $this, 'add_plugins_page_styles' ] );
52 }
53
54 public function enqueue_assets() {
55 add_filter( 'admin_body_class', [ $this, 'body_status_classes' ] );
56
57 wp_enqueue_style(
58 'elementor-apps',
59 $this->get_css_assets_url( 'modules/apps/admin' ),
60 [],
61 ELEMENTOR_VERSION
62 );
63 }
64
65 public function body_status_classes( $admin_body_classes ) {
66 $admin_body_classes .= ' elementor-apps-page';
67
68 return $admin_body_classes;
69 }
70
71 public function add_elementor_plugin_install_action_link( $tabs ) {
72 $tabs['elementor'] = esc_html__( 'For Elementor', 'elementor' );
73
74 return $tabs;
75 }
76
77 public function maybe_open_elementor_tab() {
78 if ( ! isset( $_GET['tab'] ) || 'elementor' !== $_GET['tab'] ) {
79 return;
80 }
81
82 $elementor_url = add_query_arg( [
83 'page' => static::PAGE_ID,
84 'tab' => 'elementor',
85 'ref' => 'plugins',
86 ], admin_url( 'admin.php' ) );
87
88 wp_safe_redirect( $elementor_url );
89 exit;
90 }
91
92 public function add_plugins_page_styles() {
93 ?>
94 <style>
95 .plugin-install-elementor > a::after {
96 content: "";
97 display: inline-block;
98 background-image: url("data:image/svg+xml,%3Csvg width='16' height='16' viewBox='0 0 16 16' fill='none' xmlns='http://www.w3.org/2000/svg'%3E%3Cpath fill-rule='evenodd' clip-rule='evenodd' d='M8.33321 3H12.9999V7.66667H11.9999V4.70711L8.02009 8.68689L7.31299 7.97978L11.2928 4H8.33321V3Z' fill='%23646970'/%3E%3Cpath d='M6.33333 4.1665H4.33333C3.8731 4.1665 3.5 4.5396 3.5 4.99984V11.6665C3.5 12.1267 3.8731 12.4998 4.33333 12.4998H11C11.4602 12.4998 11.8333 12.1267 11.8333 11.6665V9.6665' stroke='%23646970'/%3E%3C/svg%3E%0A");
99 width: 16px;
100 height: 16px;
101 background-repeat: no-repeat;
102 vertical-align: text-top;
103 margin-left: 2px;
104 }
105 .plugin-install-elementor:hover > a::after {
106 background-image: url("data:image/svg+xml,%3Csvg width='16' height='16' viewBox='0 0 16 16' fill='none' xmlns='http://www.w3.org/2000/svg'%3E%3Cpath fill-rule='evenodd' clip-rule='evenodd' d='M8.33321 3H12.9999V7.66667H11.9999V4.70711L8.02009 8.68689L7.31299 7.97978L11.2928 4H8.33321V3Z' fill='%23135E96'/%3E%3Cpath d='M6.33333 4.1665H4.33333C3.8731 4.1665 3.5 4.5396 3.5 4.99984V11.6665C3.5 12.1267 3.8731 12.4998 4.33333 12.4998H11C11.4602 12.4998 11.8333 12.1267 11.8333 11.6665V9.6665' stroke='%23135E96'/%3E%3C/svg%3E%0A");
107 }
108 </style>
109 <?php
110 }
111 }
112