PluginProbe
Depicter — Popup & Slider Builder / 1.3.3
Depicter — Popup & Slider Builder v1.3.3
4.8.1 trunk 1.0.0 1.1.0 1.1.2 1.1.4 1.1.6 1.1.7 1.1.8 1.1.9 1.2.0 1.3.0 1.3.1 1.3.2 1.3.3 1.3.5 1.3.8 1.5.0 1.5.1 1.5.2 1.5.5 1.6.0 1.6.1 1.6.2 1.7.0 All 76 releases
depicter / app / src / Modules / ModulesServiceProvider.php

ModulesServiceProvider.php in Depicter — Popup & Slider Builder 1.3.3, at app/src/Modules/ModulesServiceProvider.php

151 lines 3.4 KB
No matching file
Up and down to move Enter to open Esc to close
Raw Download Zip
1 <?php
2
3 namespace Depicter\Modules;
4 ;
5 use Depicter\Modules\Elementor\SliderWidget;
6 use WPEmerge\ServiceProviders\ServiceProviderInterface;
7
8 /**
9 * Register widgets.
10 */
11 class ModulesServiceProvider implements ServiceProviderInterface {
12 /**
13 * {@inheritDoc}
14 */
15 public function register( $container ) {
16 add_action( 'plugins_loaded', [ $this, 'elementorModulesLoaded' ] );
17 $this->modulesLoaded();
18 }
19
20 public function elementorModulesLoaded() {
21 if( defined( 'ELEMENTOR_VERSION' ) ){
22 New Elementor\Module();
23 }
24 }
25
26 public function modulesLoaded(){
27
28 add_action( 'init', [ $this, 'initGutenbergBlock'] );
29 add_action( 'admin_enqueue_scripts', [ $this, 'loadGutenbergWidgetScripts'] );
30
31 add_action( 'init', [ $this, 'initBeaverModule' ] );
32 add_action( 'wp_enqueue_scripts', [ $this, 'load_beaver_builder_widget_script'] );
33
34 add_action( 'vc_before_init', [ $this, 'initWPBakeryModule' ] );
35 add_action( 'init', [ $this, 'initDiviModule' ] );
36 }
37
38 /**
39 * {@inheritDoc}
40 */
41 public function bootstrap( $container ) {
42
43 }
44
45 public function load_beaver_builder_widget_script() {
46 if ( class_exists( '\FLBuilderModel' ) && \FLBuilderModel::is_builder_active() ) {
47 $this->enqueueEditorScripts();
48 }
49 }
50
51 public function enqueueEditorScripts() {
52
53 \Depicter::core()->assets()->enqueueStyle(
54 'depicter-admin',
55 \Depicter::core()->assets()->getUrl() . '/resources/styles/admin/admin.css'
56 );
57
58 \Depicter::core()->assets()->enqueueScript(
59 'depicter-admin',
60 \Depicter::core()->assets()->getUrl() . '/resources/scripts/admin/index.js',
61 ['jquery'],
62 true
63 );
64
65 wp_localize_script( 'depicter-admin', 'depicterParams',[
66 'ajaxUrl' => admin_url( 'admin-ajax.php' ),
67 'editorUrl' => \Depicter::editor()->getEditUrl('1'),
68 'token' => \Depicter::csrf()->getToken( \Depicter\Security\CSRF::EDITOR_ACTION ),
69 'publishedText' => esc_html__( 'Published', 'depicter' )
70 ]);
71 }
72
73 public function loadGutenbergWidgetScripts() {
74
75 $current_screen = get_current_screen();
76 if ( !$current_screen->is_block_editor() ) {
77 return;
78 }
79
80 $list = [
81 [
82 'id' => "0",
83 'name' => __( 'Select Slider', 'depicter' )
84 ]
85 ];
86 $list = array_merge( $list, \Depicter::app()->documentRepository()->getList(['name','id']) );
87 if ( !empty( $list ) ) {
88 foreach ( $list as $key => $item ) {
89 $list[ $key ]['label'] = $item['name'];
90 unset( $list[ $key ]['name'] );
91
92 $list[ $key ]['value'] = $item['id'];
93 unset( $list[ $key ]['id'] );
94 }
95 }
96 wp_localize_script( 'wp-block-editor', 'depicterSliders',[
97 'list' => $list
98 ]);
99
100 }
101
102 public function initGutenbergBlock() {
103 register_block_type( __DIR__ . '/Gutenberg/build', [
104 'render_callback' => [ $this, 'renderGutenbergBlock' ]
105 ] );
106 }
107
108 public function renderGutenbergBlock( $blockAttributes ) {
109
110 if ( !empty( $blockAttributes['id'] ) ) {
111 $id = (int) $blockAttributes['id'];
112 return depicter( $id, ['echo' => false ] );
113 } else {
114 echo esc_html__( 'Slider ID required', 'depicter' );
115 }
116
117 }
118
119
120 /**
121 * Load beaver builder module
122 *
123 * @return void
124 */
125 public function initBeaverModule() {
126 if ( class_exists( '\FLBuilder' ) ) {
127 require_once 'Beaver/module.php';
128 }
129 }
130
131 /**
132 * Load WPBakery module
133 *
134 * @return void
135 */
136 public function initWPBakeryModule() {
137 require_once 'WPBakery/module.php';
138 }
139
140 /**
141 * Load divi module
142 *
143 * @return void
144 */
145 public function initDiviModule() {
146 if ( class_exists( 'ET_Builder_Plugin' ) ) {
147 require_once 'Divi/depicter-divi.php';
148 }
149 }
150 }
151