1
1
<?php
2
2
/**
3
- * Classe gérant les actions principales de l'application.
3
+ * Classe gérant les actions principales de DigiRisk.
4
+ *
5
+ * Elle ajoute les styles et scripts JS principaux pour le bon fonctionnement de DigiRisk.
6
+ * Elle ajoute également les textes de traductions (fichiers .mo)
7
+ * Elle déclare la page principale "DigiRisk".
4
8
*
5
9
* @author Evarisk <[email protected] >
10
+ * @copyright (c) 2006 2018 Evarisk <[email protected] >.
11
+ *
12
+ * @license AGPLv3 <https://spdx.org/licenses/AGPL-3.0-or-later.html>
13
+ *
14
+ * @package DigiRisk\Classes
15
+ *
6
16
* @since 6.0.0
7
- * @version 6.6.0
8
- * @copyright 2018 Evarisk.
9
- * @package DigiRisk
10
17
*/
11
18
12
19
namespace digi ;
13
20
14
- if ( ! defined ( 'ABSPATH ' ) ) {
15
- exit ;
16
- }
21
+ defined ( 'ABSPATH ' ) || exit;
17
22
18
23
/**
19
24
* Classe gérant les actions principales de l'application.
20
25
*/
21
26
class Digirisk_Action {
22
27
23
28
/**
24
- * Le constructeur ajoutes les actions WordPress suivantes:
25
- * admin_enqueue_scripts (Pour appeller les scripts JS et CSS dans l'admin)
26
- * admin_print_scripts (Pour appeler les scripts JS en bas du footer)
27
- * plugins_loaded (Pour appeler le domaine de traduction)
29
+ * Constructeur.
30
+ *
31
+ * @since 7.0.0
28
32
*/
29
33
public function __construct () {
30
- // Initialises ses actions que si nous sommes sur une des pages réglés dans le fichier digirisk.config.json dans la clé "insert_scripts_pages".
31
- $ page = ( ! empty ( $ _REQUEST ['page ' ] ) ) ? sanitize_text_field ( $ _REQUEST ['page ' ] ) : '' ;
34
+ $ page = ( ! empty ( $ _REQUEST ['page ' ] ) ) ? sanitize_text_field ( wp_unslash ( $ _REQUEST ['page ' ] ) ) : '' ; // WPCS: input var ok, CSRF ok.
32
35
33
- if ( in_array ( $ page , \eoxia001 \Config_Util::$ init ['digirisk ' ]->insert_scripts_pages_css , true ) ) {
36
+ if ( in_array ( $ page , \eoxia \Config_Util::$ init ['digirisk ' ]->insert_scripts_pages_css , true ) ) {
34
37
add_action ( 'admin_enqueue_scripts ' , array ( $ this , 'callback_before_admin_enqueue_scripts_css ' ), 10 );
35
38
add_action ( 'admin_enqueue_scripts ' , array ( $ this , 'callback_admin_enqueue_scripts_css ' ), 11 );
36
39
add_action ( 'admin_print_scripts ' , array ( $ this , 'callback_admin_print_scripts_css ' ) );
37
40
}
38
41
39
- if ( in_array ( $ page , \eoxia001 \Config_Util::$ init ['digirisk ' ]->insert_scripts_pages_js , true ) ) {
42
+ if ( in_array ( $ page , \eoxia \Config_Util::$ init ['digirisk ' ]->insert_scripts_pages_js , true ) ) {
40
43
add_action ( 'admin_enqueue_scripts ' , array ( $ this , 'callback_before_admin_enqueue_scripts_js ' ), 10 );
41
44
add_action ( 'admin_enqueue_scripts ' , array ( $ this , 'callback_admin_enqueue_scripts_js ' ), 11 );
42
45
add_action ( 'admin_print_scripts ' , array ( $ this , 'callback_admin_print_scripts_js ' ) );
@@ -51,15 +54,11 @@ public function __construct() {
51
54
/**
52
55
* Initialise les fichiers JS inclus dans WordPress (jQuery, wp.media et thickbox)
53
56
*
54
- * @return void nothing
55
- *
56
57
* @since 6.0.0
57
- * @version 6.3.1
58
58
*/
59
59
public function callback_before_admin_enqueue_scripts_js () {
60
60
wp_enqueue_script ( 'jquery ' );
61
61
wp_enqueue_script ( 'jquery-form ' );
62
- wp_enqueue_script ( 'jquery-ui-datepicker ' );
63
62
wp_enqueue_script ( 'jquery-ui-sortable ' );
64
63
wp_enqueue_script ( 'jquery-ui-accordion ' );
65
64
wp_enqueue_script ( 'jquery-ui-autocomplete ' );
@@ -72,26 +71,19 @@ public function callback_before_admin_enqueue_scripts_js() {
72
71
/**
73
72
* Initialise le fichier style.min.css et backend.min.js du plugin DigiRisk.
74
73
*
75
- * @since 6.0.0
76
- * @version 6.6.0
77
- *
78
- * @return void nothing
74
+ * @since 6.0.0
79
75
*/
80
76
public function callback_admin_enqueue_scripts_js () {
81
- wp_enqueue_script ( 'signature-pad ' , PLUGIN_DIGIRISK_URL . 'core/assets/js/signature-pad.min.js ' , array ( 'jquery ' ), \eoxia001 \Config_Util::$ init ['digirisk ' ]->version , false );
82
- wp_enqueue_script ( 'digi-script-datetimepicker-script ' , PLUGIN_DIGIRISK_URL . 'core/assets/js/jquery.datetimepicker.full.js ' , array (), \eoxia001 \Config_Util::$ init ['digirisk ' ]->version );
83
- wp_enqueue_script ( 'digi-script ' , PLUGIN_DIGIRISK_URL . 'core/assets/js/backend.min.js ' , array (), \eoxia001 \Config_Util::$ init ['digirisk ' ]->version , false );
84
- wp_enqueue_script ( 'digi-script-owl-carousel ' , PLUGIN_DIGIRISK_URL . 'core/assets/js/owl.carousel.min.js ' , array (), \eoxia001 \Config_Util::$ init ['digirisk ' ]->version , false );
85
- wp_enqueue_script ( 'digi-script-treetable ' , PLUGIN_DIGIRISK_URL . 'core/assets/js/jquery.treetable.js ' , array (), \eoxia001 \Config_Util::$ init ['digirisk ' ]->version , false );
77
+ wp_enqueue_script ( 'signature-pad ' , PLUGIN_DIGIRISK_URL . 'core/assets/js/signature-pad.min.js ' , array ( 'jquery ' ), \eoxia \Config_Util::$ init ['digirisk ' ]->version , false );
78
+ wp_enqueue_script ( 'digi-script ' , PLUGIN_DIGIRISK_URL . 'core/assets/js/backend.min.js ' , array (), \eoxia \Config_Util::$ init ['digirisk ' ]->version , false );
79
+ wp_enqueue_script ( 'digi-script-owl-carousel ' , PLUGIN_DIGIRISK_URL . 'core/assets/js/owl.carousel.min.js ' , array (), \eoxia \Config_Util::$ init ['digirisk ' ]->version , false );
80
+ wp_enqueue_script ( 'digi-script-treetable ' , PLUGIN_DIGIRISK_URL . 'core/assets/js/jquery.treetable.js ' , array (), \eoxia \Config_Util::$ init ['digirisk ' ]->version , false );
86
81
}
87
82
88
83
/**
89
84
* Initialise en php le fichier permettant la traduction des variables string JavaScript.
90
85
*
91
- * @since 6.0.0
92
- * @version 6.6.0
93
- *
94
- * @return void nothing
86
+ * @since 6.0.0
95
87
*/
96
88
public function callback_admin_print_scripts_js () {
97
89
require PLUGIN_DIGIRISK_PATH . '/core/assets/js/define-string.js.php ' ;
@@ -100,112 +92,78 @@ public function callback_admin_print_scripts_js() {
100
92
/**
101
93
* Initialise les fichiers JS inclus dans WordPress (jQuery, wp.media et thickbox)
102
94
*
103
- * @return void nothing
104
- *
105
95
* @since 6.0.0
106
- * @version 6.2.5.0
107
96
*/
108
97
public function callback_before_admin_enqueue_scripts_css () {}
109
98
110
99
/**
111
100
* Initialise le fichier style.min.css et backend.min.js du plugin DigiRisk.
112
101
*
113
- * @return void nothing
114
- *
115
102
* @since 6.0.0
116
- * @version 6.3.0
117
103
*/
118
104
public function callback_admin_enqueue_scripts_css () {
119
- wp_register_style ( 'digi-style ' , PLUGIN_DIGIRISK_URL . 'core/assets/css/style.min.css ' , array (), \eoxia001 \Config_Util::$ init ['digirisk ' ]->version );
120
- wp_enqueue_style ( 'digi-style ' );
121
-
122
- wp_enqueue_style ( 'digi-datepicker ' , PLUGIN_DIGIRISK_URL . 'core/assets/css/jquery.datetimepicker.css ' , array (), \eoxia001 \Config_Util::$ init ['digirisk ' ]->version );
123
- wp_enqueue_style ( 'digi-treetable ' , PLUGIN_DIGIRISK_URL . 'core/assets/css/jquery.treetable.css ' , array (), \eoxia001 \Config_Util::$ init ['digirisk ' ]->version );
124
- wp_enqueue_style ( 'digi-treetable-default ' , PLUGIN_DIGIRISK_URL . 'core/assets/css/jquery.treetable.theme.default.css ' , array (), \eoxia001 \Config_Util::$ init ['digirisk ' ]->version );
125
- wp_enqueue_style ( 'digi-owl-carousel ' , PLUGIN_DIGIRISK_URL . 'core/assets/css/owl.carousel.min.css ' , array (), \eoxia001 \Config_Util::$ init ['digirisk ' ]->version );
105
+ wp_enqueue_style ( 'digi-style ' , PLUGIN_DIGIRISK_URL . 'core/assets/css/style.css ' , array (), \eoxia \Config_Util::$ init ['digirisk ' ]->version );
106
+ wp_enqueue_style ( 'digi-treetable ' , PLUGIN_DIGIRISK_URL . 'core/assets/css/jquery.treetable.css ' , array (), \eoxia \Config_Util::$ init ['digirisk ' ]->version );
107
+ wp_enqueue_style ( 'digi-treetable-default ' , PLUGIN_DIGIRISK_URL . 'core/assets/css/jquery.treetable.theme.default.css ' , array (), \eoxia \Config_Util::$ init ['digirisk ' ]->version );
108
+ wp_enqueue_style ( 'digi-owl-carousel ' , PLUGIN_DIGIRISK_URL . 'core/assets/css/owl.carousel.min.css ' , array (), \eoxia \Config_Util::$ init ['digirisk ' ]->version );
126
109
}
127
110
128
111
/**
129
112
* Initialise en php le fichier permettant la traduction des variables string JavaScript.
130
113
*
131
- * @return void nothing
132
- *
133
114
* @since 6.0.0
134
- * @version 6.2.5.0
135
115
*/
136
116
public function callback_admin_print_scripts_css () {}
137
117
138
118
/**
139
119
* Initialise le fichier MO
120
+ * Initialise les capabilities des roles.
140
121
*
141
122
* @since 6.0.0
142
- * @version 6.4.0
143
123
*/
144
124
public function callback_plugins_loaded () {
145
125
load_plugin_textdomain ( 'digirisk ' , false , PLUGIN_DIGIRISK_DIR . '/core/assets/languages/ ' );
146
126
147
- /** Set capability to administrator by default */
148
- $ administrator_role = get_role ( 'administrator ' );
149
- if ( ! $ administrator_role ->has_cap ( 'manage_digirisk ' ) ) {
150
- $ administrator_role ->add_cap ( 'manage_digirisk ' );
151
- }
152
-
153
- /** Set capability to administrator by default */
154
- $ administrator_role = get_role ( 'administrator ' );
155
- if ( ! $ administrator_role ->has_cap ( 'manage_causerie ' ) ) {
156
- $ administrator_role ->add_cap ( 'manage_causerie ' );
157
- }
158
-
159
- /** Set capability to administrator by default */
160
- $ administrator_role = get_role ( 'administrator ' );
161
- if ( ! $ administrator_role ->has_cap ( 'create_causerie ' ) ) {
162
- $ administrator_role ->add_cap ( 'create_causerie ' );
163
- }
164
-
165
- /** Set capability to editor by default */
166
- $ editor_role = get_role ( 'editor ' );
167
- if ( ! $ editor_role ->has_cap ( 'manage_causerie ' ) ) {
168
- $ editor_role ->add_cap ( 'manage_causerie ' );
169
- }
170
-
171
- /** Set capability to editor by default */
172
- $ editor_role = get_role ( 'editor ' );
173
- if ( ! $ editor_role ->has_cap ( 'create_causerie ' ) ) {
174
- $ editor_role ->add_cap ( 'create_causerie ' );
175
- }
176
-
177
- /** Set capability to author by default */
178
- $ author_role = get_role ( 'author ' );
179
- if ( ! $ author_role ->has_cap ( 'manage_causerie ' ) ) {
180
- $ author_role ->add_cap ( 'manage_causerie ' );
127
+ if ( ! empty ( \eoxia \Config_Util::$ init ['digirisk ' ]->default_capabilities ) ) {
128
+ foreach ( \eoxia \Config_Util::$ init ['digirisk ' ]->default_capabilities as $ role => $ capabilities ) {
129
+ $ wp_role = get_role ( $ role );
130
+
131
+ if ( $ wp_role ) {
132
+ if ( ! empty ( $ capabilities ) ) {
133
+ foreach ( $ capabilities as $ capability ) {
134
+ if ( $ wp_role && ! $ wp_role ->has_cap ( $ capability ) ) {
135
+ $ wp_role ->add_cap ( $ capability );
136
+ }
137
+ }
138
+ }
139
+ }
140
+ }
181
141
}
182
142
}
183
143
184
144
/**
185
- * Définition du menu dans l'administration de wordpress pour Digirisk / Define the menu for wordpress administration
145
+ * Définition du menu dans l'administration de WordPress pour Digirisk
186
146
*
187
147
* @since 6.0.0
188
- * @version 6.2.5.0
189
148
*/
190
149
public function callback_admin_menu () {
191
- /** Création du menu de gestion de la société et de l'évaluation des risques / Create the menu for society strcuture management and risk evaluation */
192
- $ digirisk_core = get_option ( \eoxia001 \Config_Util::$ init ['digirisk ' ]->core_option );
150
+ $ digirisk_core = get_option ( \eoxia \Config_Util::$ init ['digirisk ' ]->core_option );
193
151
194
152
if ( ! empty ( $ digirisk_core ['installed ' ] ) ) {
195
- add_menu_page ( __ ( 'DigiRisk ' , 'digirisk ' ), __ ( 'DigiRisk ' , 'digirisk ' ), 'manage_digirisk ' , 'digirisk-simple-risk-evaluation ' , array ( Digirisk_Class ::g (), 'display ' ), PLUGIN_DIGIRISK_URL . 'core/assets/images/favicon2.png ' , 4 );
153
+ add_menu_page ( __ ( 'DigiRisk ' , 'digirisk ' ), __ ( 'DigiRisk ' , 'digirisk ' ), 'manage_digirisk ' , 'digirisk-simple-risk-evaluation ' , array ( Digirisk ::g (), 'display ' ), PLUGIN_DIGIRISK_URL . 'core/assets/images/favicon2.png ' , 4 );
196
154
}
197
155
}
198
156
199
157
/**
200
158
* Lors de la fermeture de la notification de la popup.
201
159
* Met la metadonnée '_wpdigi_user_change_log' avec le numéro de version actuel à true.
202
160
*
203
- * @return void
161
+ * @since 6.0.0
204
162
*/
205
163
public function callback_close_change_log () {
206
164
check_ajax_referer ( 'close_change_log ' );
207
165
208
- $ version = ! empty ( $ _POST ['version ' ] ) ? sanitize_text_field ( $ _POST ['version ' ] ) : '' ;
166
+ $ version = ! empty ( $ _POST ['version ' ] ) ? sanitize_text_field ( wp_unslash ( $ _POST ['version ' ] ) ) : '' ; // WPCS: input var ok.
209
167
210
168
if ( empty ( $ version ) ) {
211
169
wp_send_json_error ();
@@ -220,7 +178,7 @@ public function callback_close_change_log() {
220
178
$ meta [ $ version ] = true ;
221
179
update_user_meta ( get_current_user_id (), '_wpdigi_user_change_log ' , $ meta );
222
180
223
- wp_send_json_success ( array () );
181
+ wp_send_json_success ();
224
182
}
225
183
}
226
184
0 commit comments