@@ -61,6 +61,59 @@ public function __construct( Visualizer_Plugin $plugin ) {
61
61
$ this ->_addFilter ( 'visualizer_logger_data ' , 'getLoggerData ' );
62
62
$ this ->_addFilter ( 'visualizer_get_chart_counts ' , 'getChartCountsByTypeAndMeta ' );
63
63
$ this ->_addFilter ( 'visualizer_feedback_review_trigger ' , 'feedbackReviewTrigger ' );
64
+
65
+ $ this ->_addAction ( 'admin_init ' , 'init ' );
66
+ }
67
+
68
+ /**
69
+ * Admin init.
70
+ *
71
+ * @access public
72
+ */
73
+ public function init () {
74
+ if ( current_user_can ( 'edit_posts ' ) && current_user_can ( 'edit_pages ' ) && 'true ' == get_user_option ( 'rich_editing ' ) ) {
75
+ $ this ->_addFilter ( 'mce_external_languages ' , 'add_tinymce_lang ' , 10 , 1 );
76
+ $ this ->_addFilter ( 'mce_external_plugins ' , 'tinymce_plugin ' , 10 , 1 );
77
+ $ this ->_addFilter ( 'mce_buttons ' , 'register_mce_button ' , 10 , 1 );
78
+ }
79
+ }
80
+
81
+ /**
82
+ * Load plugin translation for - TinyMCE API
83
+ *
84
+ * @access public
85
+ * @param array $arr The tinymce_lang array.
86
+ * @return array
87
+ */
88
+ public function add_tinymce_lang ( $ arr ) {
89
+ $ ui_lang = VISUALIZER_ABSPATH . '/classes/Visualizer/Module/Language.php ' ;
90
+ $ ui_lang = apply_filters ( 'visualizer_ui_lang_filter ' , $ ui_lang );
91
+ $ arr [] = $ ui_lang ;
92
+ return $ arr ;
93
+ }
94
+
95
+ /**
96
+ * Load custom js options - TinyMCE API
97
+ *
98
+ * @access public
99
+ * @param array $plugin_array The tinymce plugin array.
100
+ * @return array
101
+ */
102
+ public function tinymce_plugin ( $ plugin_array ) {
103
+ $ plugin_array ['visualizer_mce_button ' ] = VISUALIZER_ABSURL . 'js/mce.js ' ;
104
+ return $ plugin_array ;
105
+ }
106
+
107
+ /**
108
+ * Register new button in the editor
109
+ *
110
+ * @access public
111
+ * @param array $buttons The tinymce buttons array.
112
+ * @return array
113
+ */
114
+ public function register_mce_button ( $ buttons ) {
115
+ array_push ( $ buttons , 'visualizer_mce_button ' );
116
+ return $ buttons ;
64
117
}
65
118
66
119
/**
@@ -121,6 +174,7 @@ public function enqueueMediaScripts() {
121
174
* @return array The extended array of media view strings.
122
175
*/
123
176
public function setupMediaViewStrings ( $ strings ) {
177
+ $ chart_types = self ::_getChartTypesLocalized ( true , true , true );
124
178
$ strings ['visualizer ' ] = array (
125
179
'actions ' => array (
126
180
'get_charts ' => Visualizer_Plugin::ACTION_GET_CHARTS ,
@@ -134,8 +188,8 @@ public function setupMediaViewStrings( $strings ) {
134
188
'create ' => esc_html__ ( 'Create New ' , 'visualizer ' ),
135
189
),
136
190
'library ' => array (
137
- 'filters ' => self :: _getChartTypesLocalized ( true , true ) ,
138
- 'types ' => array_keys ( self :: _getChartTypesLocalized ( true , true ) ),
191
+ 'filters ' => $ chart_types ,
192
+ 'types ' => array_keys ( $ chart_types ),
139
193
),
140
194
'nonce ' => wp_create_nonce (),
141
195
'buildurl ' => add_query_arg ( 'action ' , Visualizer_Plugin::ACTION_CREATE_CHART , admin_url ( 'admin-ajax.php ' ) ),
@@ -153,57 +207,67 @@ public function setupMediaViewStrings( $strings ) {
153
207
* @access private
154
208
* @return array The associated array of chart types with localized names.
155
209
*/
156
- public static function _getChartTypesLocalized ( $ enabledOnly = false , $ get2Darray = false ) {
157
- $ types = array (
158
- 'pie ' => array (
159
- 'name ' => esc_html__ ( 'Pie ' , 'visualizer ' ),
160
- 'enabled ' => true ,
161
- ),
162
- 'line ' => array (
163
- 'name ' => esc_html__ ( 'Line ' , 'visualizer ' ),
164
- 'enabled ' => true ,
165
- ),
166
- 'area ' => array (
167
- 'name ' => esc_html__ ( 'Area ' , 'visualizer ' ),
168
- 'enabled ' => true ,
169
- ),
170
- 'geo ' => array (
171
- 'name ' => esc_html__ ( 'Geo ' , 'visualizer ' ),
172
- 'enabled ' => true ,
173
- ),
174
- 'bar ' => array (
175
- 'name ' => esc_html__ ( 'Bar ' , 'visualizer ' ),
176
- 'enabled ' => true ,
177
- ),
178
- 'column ' => array (
179
- 'name ' => esc_html__ ( 'Column ' , 'visualizer ' ),
180
- 'enabled ' => true ,
181
- ),
182
- 'gauge ' => array (
183
- 'name ' => esc_html__ ( 'Gauge ' , 'visualizer ' ),
184
- 'enabled ' => true ,
185
- ),
186
- 'scatter ' => array (
187
- 'name ' => esc_html__ ( 'Scatter ' , 'visualizer ' ),
210
+ public static function _getChartTypesLocalized ( $ enabledOnly = false , $ get2Darray = false , $ add_select = false ) {
211
+ $ additional = array ();
212
+ if ( $ add_select ) {
213
+ $ additional ['select ' ] = array (
214
+ 'name ' => esc_html__ ( 'All ' , 'visualizer ' ),
188
215
'enabled ' => true ,
189
- ),
190
- 'candlestick ' => array (
191
- 'name ' => esc_html__ ( 'Candlestick ' , 'visualizer ' ),
192
- 'enabled ' => true ,
193
- ),
194
- // pro types
195
- 'table ' => array (
196
- 'name ' => esc_html__ ( 'Table ' , 'visualizer ' ),
197
- 'enabled ' => false ,
198
- ),
199
- 'timeline ' => array (
200
- 'name ' => esc_html__ ( 'Timeline ' , 'visualizer ' ),
201
- 'enabled ' => false ,
202
- ),
203
- 'combo ' => array (
204
- 'name ' => esc_html__ ( 'Combo ' , 'visualizer ' ),
205
- 'enabled ' => false ,
206
- ),
216
+ );
217
+ }
218
+
219
+ $ types = array_merge (
220
+ $ additional , array (
221
+ 'pie ' => array (
222
+ 'name ' => esc_html__ ( 'Pie ' , 'visualizer ' ),
223
+ 'enabled ' => true ,
224
+ ),
225
+ 'line ' => array (
226
+ 'name ' => esc_html__ ( 'Line ' , 'visualizer ' ),
227
+ 'enabled ' => true ,
228
+ ),
229
+ 'area ' => array (
230
+ 'name ' => esc_html__ ( 'Area ' , 'visualizer ' ),
231
+ 'enabled ' => true ,
232
+ ),
233
+ 'geo ' => array (
234
+ 'name ' => esc_html__ ( 'Geo ' , 'visualizer ' ),
235
+ 'enabled ' => true ,
236
+ ),
237
+ 'bar ' => array (
238
+ 'name ' => esc_html__ ( 'Bar ' , 'visualizer ' ),
239
+ 'enabled ' => true ,
240
+ ),
241
+ 'column ' => array (
242
+ 'name ' => esc_html__ ( 'Column ' , 'visualizer ' ),
243
+ 'enabled ' => true ,
244
+ ),
245
+ 'gauge ' => array (
246
+ 'name ' => esc_html__ ( 'Gauge ' , 'visualizer ' ),
247
+ 'enabled ' => true ,
248
+ ),
249
+ 'scatter ' => array (
250
+ 'name ' => esc_html__ ( 'Scatter ' , 'visualizer ' ),
251
+ 'enabled ' => true ,
252
+ ),
253
+ 'candlestick ' => array (
254
+ 'name ' => esc_html__ ( 'Candlestick ' , 'visualizer ' ),
255
+ 'enabled ' => true ,
256
+ ),
257
+ // pro types
258
+ 'table ' => array (
259
+ 'name ' => esc_html__ ( 'Table ' , 'visualizer ' ),
260
+ 'enabled ' => false ,
261
+ ),
262
+ 'timeline ' => array (
263
+ 'name ' => esc_html__ ( 'Timeline ' , 'visualizer ' ),
264
+ 'enabled ' => false ,
265
+ ),
266
+ 'combo ' => array (
267
+ 'name ' => esc_html__ ( 'Combo ' , 'visualizer ' ),
268
+ 'enabled ' => false ,
269
+ ),
270
+ )
207
271
);
208
272
$ types = apply_filters ( 'visualizer_pro_chart_types ' , $ types );
209
273
if ( $ enabledOnly ) {
0 commit comments