Cyr-To-Lat - Version 4.2.2

Version Description

(28.08.2019) = * Added ACF (Advanced Custom Fields) plugin support * Added Serbian table * Added new filter ctl_pre_sanitize_filename * Fixed improper encoding of ,, , characters in file names on some Mac computers (old known problem on Mac's)

Download this release

Release Info

Developer mihdan
Plugin Icon 128x128 Cyr-To-Lat
Version 4.2.2
Comparing to
See all releases

Code changes from version 4.2.1 to 4.2.2

cyr-to-lat.php CHANGED
@@ -9,8 +9,8 @@
9
  * Author URI: https://profiles.wordpress.org/sergeybiryukov/
10
  * Requires at least: 2.3
11
  * Tested up to: 5.2
12
- * Version: 4.2.1
13
- * Stable tag: 4.2.1
14
  *
15
  * Text Domain: cyr2lat
16
  * Domain Path: /languages/
@@ -19,6 +19,7 @@
19
  * @author Sergey Biryukov, Mikhail Kobzarev, Igor Gergel
20
  */
21
 
 
22
  if ( ! defined( 'ABSPATH' ) ) {
23
  exit; // Exit if accessed directly.
24
  }
@@ -27,7 +28,7 @@ if ( ! defined( 'CYR_TO_LAT_VERSION' ) ) {
27
  /**
28
  * Plugin version.
29
  */
30
- define( 'CYR_TO_LAT_VERSION', '4.2.1' );
31
  }
32
 
33
  if ( ! defined( 'CYR_TO_LAT_PATH' ) ) {
@@ -78,6 +79,7 @@ if ( ! defined( 'CYR_TO_LAT_MINIMUM_PHP_REQUIRED_VERSION' ) ) {
78
  */
79
  define( 'CYR_TO_LAT_MINIMUM_PHP_REQUIRED_VERSION', '5.6' );
80
  }
 
81
 
82
  /**
83
  * Init plugin class on plugin load.
9
  * Author URI: https://profiles.wordpress.org/sergeybiryukov/
10
  * Requires at least: 2.3
11
  * Tested up to: 5.2
12
+ * Version: 4.2.2
13
+ * Stable tag: 4.2.2
14
  *
15
  * Text Domain: cyr2lat
16
  * Domain Path: /languages/
19
  * @author Sergey Biryukov, Mikhail Kobzarev, Igor Gergel
20
  */
21
 
22
+ // @codeCoverageIgnoreStart
23
  if ( ! defined( 'ABSPATH' ) ) {
24
  exit; // Exit if accessed directly.
25
  }
28
  /**
29
  * Plugin version.
30
  */
31
+ define( 'CYR_TO_LAT_VERSION', '4.2.2' );
32
  }
33
 
34
  if ( ! defined( 'CYR_TO_LAT_PATH' ) ) {
79
  */
80
  define( 'CYR_TO_LAT_MINIMUM_PHP_REQUIRED_VERSION', '5.6' );
81
  }
82
+ // @codeCoverageIgnoreEnd
83
 
84
  /**
85
  * Init plugin class on plugin load.
includes/class-cyr-to-lat-acf.php ADDED
@@ -0,0 +1,58 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ <?php
2
+ /**
3
+ * ACF Support.
4
+ *
5
+ * @package cyr-to-lat
6
+ */
7
+
8
+ /**
9
+ * Class Cyr_To_Lat_ACF
10
+ */
11
+ class Cyr_To_Lat_ACF {
12
+
13
+ /**
14
+ * Plugin settings.
15
+ *
16
+ * @var Cyr_To_Lat_Settings
17
+ */
18
+ private $settings;
19
+
20
+ /**
21
+ * Cyr_To_Lat_ACF constructor.
22
+ *
23
+ * @param Cyr_To_Lat_Settings $settings Plugin settings.
24
+ */
25
+ public function __construct( $settings ) {
26
+ $this->settings = $settings;
27
+
28
+ $this->init_hooks();
29
+ }
30
+
31
+ /**
32
+ * Init class hooks.
33
+ */
34
+ public function init_hooks() {
35
+ add_action( 'acf/field_group/admin_enqueue_scripts', array( $this, 'enqueue_script' ) );
36
+ }
37
+
38
+ /**
39
+ * Enqueue script in ACF field group page.
40
+ */
41
+ public function enqueue_script() {
42
+ $table = $this->settings->get_table();
43
+
44
+ wp_enqueue_script(
45
+ 'cyr-to-lat-acf-field-group',
46
+ CYR_TO_LAT_URL . '/js/acf-field-group.js',
47
+ array(),
48
+ CYR_TO_LAT_VERSION,
49
+ true
50
+ );
51
+
52
+ $object = array(
53
+ 'table' => $table,
54
+ );
55
+
56
+ wp_localize_script( 'cyr-to-lat-acf-field-group', 'CyrToLatAcfFieldGroup', $object );
57
+ }
58
+ }
includes/class-cyr-to-lat-conversion-tables.php CHANGED
@@ -5,6 +5,8 @@
5
  * @package cyr-to-lat
6
  */
7
 
 
 
8
  /**
9
  * Class Cyr_To_Lat_Conversion_Tables
10
  *
@@ -199,6 +201,55 @@ class Cyr_To_Lat_Conversion_Tables {
199
  unset( $table['Ѵ'] );
200
  unset( $table['ѵ'] );
201
  break;
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
202
  // Georgian.
203
  case 'ka_GE':
204
  $table['ა'] = 'a';
@@ -288,6 +339,7 @@ class Cyr_To_Lat_Conversion_Tables {
288
  $table['Ý'] = 'O';
289
  $table['ý'] = 'o';
290
  break;
 
291
  case 'he_IL':
292
  $table = array(
293
  'א' => '',
@@ -319,13 +371,13 @@ class Cyr_To_Lat_Conversion_Tables {
319
  'ת' => 'th',
320
  );
321
  for ( $code = 0x0590; $code <= 0x05CF; $code ++ ) {
322
- $table[ self::mb_chr( $code ) ] = '';
323
  }
324
  for ( $code = 0x05F0; $code <= 0x05F5; $code ++ ) {
325
- $table[ self::mb_chr( $code ) ] = '';
326
  }
327
  for ( $code = 0xFB1D; $code <= 0xFB4F; $code ++ ) {
328
- $table[ self::mb_chr( $code ) ] = '';
329
  }
330
  break;
331
  default:
@@ -335,26 +387,29 @@ class Cyr_To_Lat_Conversion_Tables {
335
  }
336
 
337
  /**
338
- * Simplified polyfill of mb_chr() function, to be used without mbstring extension.
339
- *
340
- * @link https://github.com/symfony/polyfill-mbstring/blob/master/Mbstring.php
341
  *
342
- * @param int $code Character code.
343
- *
344
- * @return string
345
  */
346
- public static function mb_chr( $code ) {
347
- $code = $code % 0x200000;
348
- if ( 0x80 > $code ) {
349
- $s = \chr( $code );
350
- } elseif ( 0x800 > $code ) {
351
- $s = \chr( 0xC0 | $code >> 6 ) . \chr( 0x80 | $code & 0x3F );
352
- } elseif ( 0x10000 > $code ) {
353
- $s = \chr( 0xE0 | $code >> 12 ) . \chr( 0x80 | $code >> 6 & 0x3F ) . \chr( 0x80 | $code & 0x3F );
354
- } else {
355
- $s = \chr( 0xF0 | $code >> 18 ) . \chr( 0x80 | $code >> 12 & 0x3F ) . \chr( 0x80 | $code >> 6 & 0x3F ) . \chr( 0x80 | $code & 0x3F );
356
- }
357
-
358
- return $s;
 
 
 
 
 
 
359
  }
360
  }
5
  * @package cyr-to-lat
6
  */
7
 
8
+ use Symfony\Polyfill\Mbstring\Mbstring;
9
+
10
  /**
11
  * Class Cyr_To_Lat_Conversion_Tables
12
  *
201
  unset( $table['Ѵ'] );
202
  unset( $table['ѵ'] );
203
  break;
204
+ // Serbian.
205
+ case 'sr_RS':
206
+ $table['Ђ'] = 'Dj';
207
+ $table['ђ'] = 'dj';
208
+ unset( $table['Ё'] );
209
+ unset( $table['ё'] );
210
+ $table['Ж'] = 'Z';
211
+ $table['ж'] = 'z';
212
+ unset( $table['Й'] );
213
+ unset( $table['й'] );
214
+ unset( $table['І'] );
215
+ unset( $table['і'] );
216
+ $table['J'] = 'J';
217
+ $table['j'] = 'j';
218
+ $table['Љ'] = 'Lj';
219
+ $table['љ'] = 'lj';
220
+ $table['Њ'] = 'Nj';
221
+ $table['њ'] = 'nj';
222
+ $table['Ћ'] = 'C';
223
+ $table['ћ'] = 'c';
224
+ $table['Ц'] = 'C';
225
+ $table['ц'] = 'c';
226
+ $table['Ч'] = 'C';
227
+ $table['ч'] = 'c';
228
+ $table['Џ'] = 'Dz';
229
+ $table['џ'] = 'dz';
230
+ $table['Ш'] = 'S';
231
+ $table['ш'] = 's';
232
+ unset( $table['Щ'] );
233
+ unset( $table['щ'] );
234
+ unset( $table['Ъ'] );
235
+ unset( $table['ъ'] );
236
+ unset( $table['Ы'] );
237
+ unset( $table['ы'] );
238
+ unset( $table['Ь'] );
239
+ unset( $table['ь'] );
240
+ unset( $table['Э'] );
241
+ unset( $table['э'] );
242
+ unset( $table['Ю'] );
243
+ unset( $table['ю'] );
244
+ unset( $table['Я'] );
245
+ unset( $table['я'] );
246
+ unset( $table['Ѣ'] );
247
+ unset( $table['ѣ'] );
248
+ unset( $table['Ѳ'] );
249
+ unset( $table['ѳ'] );
250
+ unset( $table['Ѵ'] );
251
+ unset( $table['ѵ'] );
252
+ break;
253
  // Georgian.
254
  case 'ka_GE':
255
  $table['ა'] = 'a';
339
  $table['Ý'] = 'O';
340
  $table['ý'] = 'o';
341
  break;
342
+ // Hebrew.
343
  case 'he_IL':
344
  $table = array(
345
  'א' => '',
371
  'ת' => 'th',
372
  );
373
  for ( $code = 0x0590; $code <= 0x05CF; $code ++ ) {
374
+ $table[ Mbstring::mb_chr( $code ) ] = '';
375
  }
376
  for ( $code = 0x05F0; $code <= 0x05F5; $code ++ ) {
377
+ $table[ Mbstring::mb_chr( $code ) ] = '';
378
  }
379
  for ( $code = 0xFB1D; $code <= 0xFB4F; $code ++ ) {
380
+ $table[ Mbstring::mb_chr( $code ) ] = '';
381
  }
382
  break;
383
  default:
387
  }
388
 
389
  /**
390
+ * Get fix table for MacOS.
391
+ * On MacOS, files containing characters in the table, are sometimes encoded improperly.
 
392
  *
393
+ * @return array
 
 
394
  */
395
+ public static function get_fix_table_for_mac() {
396
+ /**
397
+ * Keys in the table are standard ISO9 characters.
398
+ *
399
+ * Example of wrong encoding on Mac:
400
+ * берЁзовыЙ-белозёрский - original input,
401
+ * берЁзовыЙ-белозёрский.png - actual filename created on Mac,
402
+ * ber%d0%95%cc%88zovy%d0%98%cc%86-beloz%d0%B5%cc%88rski%d0%B8%cc%86.png - urlencode() of the above,
403
+ * berËzovyĬ-belozërskiĭ.png - actual filename passed via standard ISO9 transliteration table,
404
+ * berE%CC%88zovyI%CC%86-beloze%CC%88rskii%CC%86.png - urlencode() of the above.
405
+ *
406
+ * To avoid misunderstanding, we use urldecode() here.
407
+ */
408
+ return [
409
+ 'Ё' => urldecode( '%d0%95%cc%88' ),
410
+ 'ё' => urldecode( '%d0%B5%cc%88' ),
411
+ 'Й' => urldecode( '%d0%98%cc%86' ),
412
+ 'й' => urldecode( '%d0%B8%cc%86' ),
413
+ ];
414
  }
415
  }
includes/class-cyr-to-lat-main.php CHANGED
@@ -5,6 +5,8 @@
5
  * @package cyr-to-lat
6
  */
7
 
 
 
8
  /**
9
  * Class Cyr_To_Lat_Main
10
  */
@@ -33,20 +35,28 @@ class Cyr_To_Lat_Main {
33
  private $converter;
34
 
35
  /**
36
- * WP-CLI
37
  *
38
  * @var Cyr_To_Lat_WP_CLI
39
  */
40
  private $cli;
41
 
 
 
 
 
 
 
 
42
  /**
43
  * Cyr_To_Lat_Main constructor.
44
  *
45
  * @param Cyr_To_Lat_Settings $settings Plugin settings.
46
  * @param Cyr_To_Lat_Converter $converter Converter instance.
47
  * @param Cyr_To_Lat_WP_CLI $cli CLI instance.
 
48
  */
49
- public function __construct( $settings = null, $converter = null, $cli = null ) {
50
  $this->settings = $settings;
51
  if ( ! $this->settings ) {
52
  $this->settings = new Cyr_To_Lat_Settings();
@@ -64,6 +74,11 @@ class Cyr_To_Lat_Main {
64
  }
65
  }
66
 
 
 
 
 
 
67
  $this->init();
68
  }
69
 
@@ -92,7 +107,7 @@ class Cyr_To_Lat_Main {
92
  */
93
  public function init_hooks() {
94
  add_filter( 'sanitize_title', array( $this, 'ctl_sanitize_title' ), 9, 3 );
95
- add_filter( 'sanitize_file_name', array( $this, 'ctl_sanitize_title' ), 10, 2 );
96
  add_filter( 'wp_insert_post_data', array( $this, 'ctl_sanitize_post_name' ), 10, 2 );
97
  }
98
 
@@ -108,6 +123,10 @@ class Cyr_To_Lat_Main {
108
  public function ctl_sanitize_title( $title, $raw_title = '', $context = '' ) {
109
  global $wpdb;
110
 
 
 
 
 
111
  // Fixed bug with `_wp_old_slug` redirect.
112
  if ( 'query' === $context ) {
113
  return $title;
@@ -120,11 +139,6 @@ class Cyr_To_Lat_Main {
120
  return $pre;
121
  }
122
 
123
- // List of locales: https://make.wordpress.org/polyglots/teams/.
124
- $locale = get_locale();
125
- $table = $this->settings->get_option( $locale );
126
- $table = ! empty( $table ) ? $table : $this->settings->get_option( 'iso9' );
127
-
128
  $is_term = false;
129
  // phpcs:disable WordPress.PHP.DevelopmentFunctions.error_log_debug_backtrace
130
  $backtrace = debug_backtrace( ~ DEBUG_BACKTRACE_PROVIDE_OBJECT | DEBUG_BACKTRACE_IGNORE_ARGS );
@@ -143,25 +157,87 @@ class Cyr_To_Lat_Main {
143
  if ( ! empty( $term ) ) {
144
  $title = $term;
145
  } else {
146
- $title = strtr( $title, apply_filters( 'ctl_table', $table ) );
 
147
 
148
- if ( function_exists( 'iconv' ) ) {
149
- $title = iconv( 'UTF-8', 'UTF-8//TRANSLIT//IGNORE', $title );
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
150
  }
151
  }
152
 
153
- return $title;
154
  }
155
 
156
  /**
157
- * Helper function to make class unit-testable
158
  *
159
- * @param string $function Function name.
160
  *
161
- * @return bool
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
162
  */
163
- protected function ctl_function_exists( $function ) {
164
- return function_exists( $function );
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
165
  }
166
 
167
  /**
@@ -172,8 +248,10 @@ class Cyr_To_Lat_Main {
172
  * @return bool
173
  */
174
  private function ctl_is_classic_editor_plugin_active() {
175
- if ( ! $this->ctl_function_exists( 'is_plugin_active' ) ) {
 
176
  include_once ABSPATH . 'wp-admin/includes/plugin.php';
 
177
  }
178
 
179
  return is_plugin_active( 'classic-editor/classic-editor.php' );
5
  * @package cyr-to-lat
6
  */
7
 
8
+ use Symfony\Polyfill\Mbstring\Mbstring;
9
+
10
  /**
11
  * Class Cyr_To_Lat_Main
12
  */
35
  private $converter;
36
 
37
  /**
38
+ * Cyr_To_Lat_WP_CLI instance.
39
  *
40
  * @var Cyr_To_Lat_WP_CLI
41
  */
42
  private $cli;
43
 
44
+ /**
45
+ * Cyr_To_Lat_ACF instance.
46
+ *
47
+ * @var Cyr_To_Lat_ACF
48
+ */
49
+ private $acf;
50
+
51
  /**
52
  * Cyr_To_Lat_Main constructor.
53
  *
54
  * @param Cyr_To_Lat_Settings $settings Plugin settings.
55
  * @param Cyr_To_Lat_Converter $converter Converter instance.
56
  * @param Cyr_To_Lat_WP_CLI $cli CLI instance.
57
+ * @param Cyr_To_Lat_ACF $acf ACF instance.
58
  */
59
+ public function __construct( $settings = null, $converter = null, $cli = null, $acf = null ) {
60
  $this->settings = $settings;
61
  if ( ! $this->settings ) {
62
  $this->settings = new Cyr_To_Lat_Settings();
74
  }
75
  }
76
 
77
+ $this->acf = $acf;
78
+ if ( ! $this->acf ) {
79
+ $this->acf = new Cyr_To_Lat_ACF( $this->settings );
80
+ }
81
+
82
  $this->init();
83
  }
84
 
107
  */
108
  public function init_hooks() {
109
  add_filter( 'sanitize_title', array( $this, 'ctl_sanitize_title' ), 9, 3 );
110
+ add_filter( 'sanitize_file_name', array( $this, 'ctl_sanitize_filename' ), 10, 2 );
111
  add_filter( 'wp_insert_post_data', array( $this, 'ctl_sanitize_post_name' ), 10, 2 );
112
  }
113
 
123
  public function ctl_sanitize_title( $title, $raw_title = '', $context = '' ) {
124
  global $wpdb;
125
 
126
+ if ( ! $title ) {
127
+ return $title;
128
+ }
129
+
130
  // Fixed bug with `_wp_old_slug` redirect.
131
  if ( 'query' === $context ) {
132
  return $title;
139
  return $pre;
140
  }
141
 
 
 
 
 
 
142
  $is_term = false;
143
  // phpcs:disable WordPress.PHP.DevelopmentFunctions.error_log_debug_backtrace
144
  $backtrace = debug_backtrace( ~ DEBUG_BACKTRACE_PROVIDE_OBJECT | DEBUG_BACKTRACE_IGNORE_ARGS );
157
  if ( ! empty( $term ) ) {
158
  $title = $term;
159
  } else {
160
+ $title = $this->transliterate( $title );
161
+ }
162
 
163
+ return $title;
164
+ }
165
+
166
+ /**
167
+ * Sanitize filename.
168
+ *
169
+ * @param string $filename Sanitized filename.
170
+ * @param string $filename_raw The filename prior to sanitization.
171
+ *
172
+ * @return string
173
+ */
174
+ public function ctl_sanitize_filename( $filename, $filename_raw ) {
175
+ $pre = apply_filters( 'ctl_pre_sanitize_filename', false, $filename );
176
+
177
+ if ( false !== $pre ) {
178
+ return $pre;
179
+ }
180
+
181
+ if ( seems_utf8( $filename ) ) {
182
+ if ( function_exists( 'mb_strtolower' ) ) {
183
+ $filename = mb_strtolower( $filename, 'UTF-8' );
184
+ } else {
185
+ $filename = Mbstring::mb_strtolower( $filename );
186
  }
187
  }
188
 
189
+ return $this->transliterate( $filename );
190
  }
191
 
192
  /**
193
+ * Fix string encoding on MacOS.
194
  *
195
+ * @param string $string String.
196
  *
197
+ * @return string
198
+ */
199
+ private function fix_mac_string( $string ) {
200
+ $table = $this->get_filtered_table();
201
+ $fix_table = Cyr_To_Lat_Conversion_Tables::get_fix_table_for_mac();
202
+
203
+ $fix = [];
204
+ foreach ( $fix_table as $key => $value ) {
205
+ if ( isset( $table[ $key ] ) ) {
206
+ $fix[ $value ] = $table[ $key ];
207
+ }
208
+ }
209
+
210
+ return strtr( $string, $fix );
211
+ }
212
+
213
+ /**
214
+ * Get transliteration table.
215
+ *
216
+ * @return array
217
  */
218
+ private function get_filtered_table() {
219
+ return (array) apply_filters( 'ctl_table', $this->settings->get_table() );
220
+ }
221
+
222
+ /**
223
+ * Transliterate string using a table.
224
+ *
225
+ * @param string $string String.
226
+ *
227
+ * @return string
228
+ */
229
+ private function transliterate( $string ) {
230
+ $table = $this->get_filtered_table();
231
+
232
+ $string = $this->fix_mac_string( $string );
233
+ $string = strtr( $string, $table );
234
+
235
+ if ( function_exists( 'iconv' ) ) {
236
+ $new_string = iconv( 'UTF-8', 'UTF-8//TRANSLIT//IGNORE', $string );
237
+ $string = $new_string ? $new_string : $string;
238
+ }
239
+
240
+ return $string;
241
  }
242
 
243
  /**
248
  * @return bool
249
  */
250
  private function ctl_is_classic_editor_plugin_active() {
251
+ if ( ! function_exists( 'is_plugin_active' ) ) {
252
+ // @codeCoverageIgnoreStart
253
  include_once ABSPATH . 'wp-admin/includes/plugin.php';
254
+ // @codeCoverageIgnoreEnd
255
  }
256
 
257
  return is_plugin_active( 'classic-editor/classic-editor.php' );
includes/class-cyr-to-lat-requirements.php CHANGED
@@ -27,9 +27,6 @@ if ( ! class_exists( 'Cyr_To_Lat_Requirements' ) ) {
27
  * @return bool
28
  */
29
  private function is_php_version_required() {
30
- /**
31
- * Check php version number.
32
- */
33
  if ( version_compare( CYR_TO_LAT_MINIMUM_PHP_REQUIRED_VERSION, phpversion(), '>' ) ) {
34
  add_action( 'admin_notices', array( $this, 'php_requirement_message' ) );
35
 
27
  * @return bool
28
  */
29
  private function is_php_version_required() {
 
 
 
30
  if ( version_compare( CYR_TO_LAT_MINIMUM_PHP_REQUIRED_VERSION, phpversion(), '>' ) ) {
31
  add_action( 'admin_notices', array( $this, 'php_requirement_message' ) );
32
 
includes/class-cyr-to-lat-settings.php CHANGED
@@ -175,6 +175,15 @@ class Cyr_To_Lat_Settings {
175
  'supplemental' => '',
176
  'default' => Cyr_To_Lat_Conversion_Tables::get( 'mk_MK' ),
177
  ),
 
 
 
 
 
 
 
 
 
178
  'ka_GE' => array(
179
  'label' => __( 'ka_GE Table', 'cyr2lat' ),
180
  'section' => 'ka_GE_section',
@@ -309,7 +318,7 @@ class Cyr_To_Lat_Settings {
309
  <input type="hidden" name="cmd" value="_s-xclick">
310
  <input type="hidden" name="hosted_button_id" value="BENCPARA8S224">
311
  <input
312
- type="image" src="https://www.paypalobjects.com/en_US/i/btn/btn_donateCC_LG.gif"
313
  name="submit" alt="PayPal - The safer, easier way to pay online!">
314
  <img
315
  alt="" border="0" src="https://www.paypalobjects.com/en_US/i/scr/pixel.gif" width="1"
@@ -367,6 +376,12 @@ class Cyr_To_Lat_Settings {
367
  array( $this, 'cyr_to_lat_section' ),
368
  self::PAGE
369
  );
 
 
 
 
 
 
370
  add_settings_section(
371
  'ka_GE_section',
372
  __( 'ka_GE Table', 'cyr2lat' ),
@@ -722,6 +737,22 @@ class Cyr_To_Lat_Settings {
722
  );
723
  }
724
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
725
  /**
726
  * Is current admin screen the plugin options screen.
727
  *
175
  'supplemental' => '',
176
  'default' => Cyr_To_Lat_Conversion_Tables::get( 'mk_MK' ),
177
  ),
178
+ 'sr_RS' => array(
179
+ 'label' => __( 'sr_RS Table', 'cyr2lat' ),
180
+ 'section' => 'sr_RS_section',
181
+ 'type' => 'table',
182
+ 'placeholder' => '',
183
+ 'helper' => '',
184
+ 'supplemental' => '',
185
+ 'default' => Cyr_To_Lat_Conversion_Tables::get( 'sr_RS' ),
186
+ ),
187
  'ka_GE' => array(
188
  'label' => __( 'ka_GE Table', 'cyr2lat' ),
189
  'section' => 'ka_GE_section',
318
  <input type="hidden" name="cmd" value="_s-xclick">
319
  <input type="hidden" name="hosted_button_id" value="BENCPARA8S224">
320
  <input
321
+ type="image" src="https://www.paypalobjects.com/en_US/i/btn/btn_donate_SM.gif"
322
  name="submit" alt="PayPal - The safer, easier way to pay online!">
323
  <img
324
  alt="" border="0" src="https://www.paypalobjects.com/en_US/i/scr/pixel.gif" width="1"
376
  array( $this, 'cyr_to_lat_section' ),
377
  self::PAGE
378
  );
379
+ add_settings_section(
380
+ 'sr_RS_section',
381
+ __( 'sr_RS Table', 'cyr2lat' ),
382
+ array( $this, 'cyr_to_lat_section' ),
383
+ self::PAGE
384
+ );
385
  add_settings_section(
386
  'ka_GE_section',
387
  __( 'ka_GE Table', 'cyr2lat' ),
737
  );
738
  }
739
 
740
+ /**
741
+ * Get transliteration table.
742
+ *
743
+ * @return string
744
+ */
745
+ public function get_table() {
746
+ // List of locales: https://make.wordpress.org/polyglots/teams/.
747
+ $locale = get_locale();
748
+ $table = $this->get_option( $locale );
749
+ if ( empty( $table ) ) {
750
+ $table = $this->get_option( 'iso9' );
751
+ }
752
+
753
+ return $table;
754
+ }
755
+
756
  /**
757
  * Is current admin screen the plugin options screen.
758
  *
js/acf-field-group.js ADDED
@@ -0,0 +1,51 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ /**
2
+ * ACF support.
3
+ *
4
+ * @package cyr-to-lat
5
+ */
6
+ ( function( $, window, document, undefined ) {
7
+ 'use strict';
8
+
9
+ var table = window.CyrToLatAcfFieldGroup.table;
10
+ var convert = function( str ) {
11
+ $.each(
12
+ table,
13
+ function( k, v ) {
14
+ var regex = new RegExp( k, 'g' );
15
+ str = str.replace( regex, v );
16
+ }
17
+ );
18
+ str = str.replace( /[^\w\d\-_]/g, '' );
19
+ str = str.replace( /_+/g, '_' );
20
+ str = str.replace( /^_?(.*)$/g, '$1' );
21
+ str = str.replace( /^(.*)_$/g, '$1' );
22
+
23
+ return str;
24
+ };
25
+ window.acf.addFilter(
26
+ 'generate_field_object_name',
27
+ function( val ) {
28
+ return convert( val );
29
+ }
30
+ );
31
+
32
+ $( document ).on(
33
+ 'change',
34
+ '.acf-field .field-name',
35
+ function() {
36
+ var $this = $( this );
37
+ var str = '';
38
+
39
+ if ( $( this ).is( ':focus' ) ) {
40
+ return false;
41
+ } else {
42
+ str = $this.val();
43
+ str = convert( str );
44
+
45
+ if ( str !== $this.val() ) {
46
+ $this.val( str );
47
+ }
48
+ }
49
+ }
50
+ );
51
+ } )( window.jQuery, window, document );
readme.txt CHANGED
@@ -1,198 +1,208 @@
1
- === Cyr-To-Lat ===
2
- Contributors: SergeyBiryukov, mihdan, karevn, webvitaly, kaggdesign
3
- Tags: cyrillic, belorussian, ukrainian, bulgarian, macedonian, georgian, kazakh, latin, l10n, russian, cyr-to-lat, cyr2lat, rustolat, slugs, translations, transliteration
4
- Requires at least: 2.3
5
- Tested up to: 5.2
6
- Stable tag: 4.2.1
7
- Requires PHP: 5.6
8
-
9
- Converts Cyrillic characters in post, page and term slugs to Latin characters.
10
-
11
- == Description ==
12
-
13
- Converts Cyrillic characters in post, page and term slugs to Latin characters. Useful for creating human-readable URLs.
14
-
15
- = Features =
16
- * Converts any number of existing post, page and term slugs in background processes
17
- * Saves existing post and page permalinks integrity
18
- * Performs transliteration of attachment file names
19
- * Includes Russian, Belorussian, Ukrainian, Bulgarian, Macedonian, Georgian, and Kazakh characters
20
- * Transliteration table can be customized without editing the plugin by itself
21
-
22
- Based on the original Rus-To-Lat plugin by Anton Skorobogatov.
23
-
24
- [](http://coderisk.com/wp/plugin/cyr2lat/RIPS-nt7iXCmzoc)
25
-
26
- == Installation ==
27
-
28
- 1. Upload `cyr2lat` folder to the `/wp-content/plugins/` directory.
29
- 2. Activate the plugin through the 'Plugins' menu in WordPress.
30
-
31
- == Frequently Asked Questions ==
32
-
33
- = How can I define my own substitutions? =
34
-
35
- Add this code to your theme's `functions.php` file:
36
- `
37
- function my_cyr_to_lat_table( $ctl_table ) {
38
- $ctl_table['Ъ'] = 'U';
39
- $ctl_table['ъ'] = 'u';
40
-
41
- return $ctl_table;
42
- }
43
- add_filter( 'ctl_table', 'my_cyr_to_lat_table' );
44
- `
45
-
46
- = How can I redefine non-standard locale ? =
47
-
48
- For instance, if your non-standard locale is uk_UA, you can redefine it to `uk` by adding the following code to your theme's `function.php` file:
49
- `
50
- /**
51
- * Use conversion table for non-standard locale.
52
- *
53
- * @param array $table Conversion table.
54
- *
55
- * @return array
56
- */
57
- function my_ctl_table( $table ) {
58
- if ( 'uk_UA' === get_locale() ) {
59
- $settings = new Cyr_To_Lat_Settings();
60
- $table = $settings->get_option( 'uk' );
61
- }
62
-
63
- return $table;
64
- }
65
-
66
- add_filter( 'ctl_table', 'my_ctl_table' );
67
- `
68
-
69
- = How can I convert a large number of posts/terms using wp-cli? =
70
-
71
- Use the following command in console:
72
-
73
- `
74
- wp cyr2lat regenerate [--post_type=<post_type>] [--post_status=<post_status>]
75
- `
76
-
77
- Where
78
- `-post_type` is list of post types,
79
- `-post_status` is list of post statuses.
80
-
81
- = Can I contribute? =
82
-
83
- Yes you can!
84
-
85
- * Join in on our [GitHub repository](https://github.com/mihdan/cyr2lat)
86
- * Join in on our [Telegram Channel](https://t.me/cyr2lat)
87
-
88
- == Changelog ==
89
-
90
- = 4.2.1 (23.06.2019) =
91
- * Fixed problem with sessions
92
- * Fixed message sequence for conversion of existing slugs.
93
- * Added php version check to avoid fatal error on activation on old sites.
94
- * Added vertical tabs in plugin settings.
95
-
96
- = 4.2 (28.05.2019) =
97
- * Bumped up required php version - to 5.6
98
- * Added phpunit tests for all php versions from 5.6 to 7.3
99
- * Fixed php warning during conversion of existing slugs
100
- * Fixed locale selection during conversion of existing post slugs when WPML is activated
101
- * Fixed locale selection during conversion of existing term slugs when WPML is activated
102
- * Fixed bug with infinite redirection of some slugs after conversion of existing slugs
103
-
104
- = 4.1.2 (22.05.2019) =
105
- * Fixed bug with fatal error in Cyr_To_Lat_Converter with php 5.2
106
-
107
- = 4.1.1 (22.05.2019) =
108
- * Fixed bug with fatal error in Cyr_To_Lat_Converter with php 5.6
109
-
110
- = 4.1 (21.05.2019) =
111
- * Added he_IL Table
112
- * Added plugin translation to Ukrainian
113
- * Added plugin translation to Swedish
114
- * Added phpunit tests. All plugin classes are 100% covered
115
- * Added js tests. All plugin js code is 100% covered
116
- * Fixed bug with Jetpack sync
117
- * Fixed empty slug bug while using characters outside of locale
118
-
119
- = 4.0 (24.04.2019) =
120
- * Added button to convert existing slugs, instead of checkbox
121
- * Added admin notices during conversion of existing slugs
122
- * Added post_type and post_status parameters to wp-cli command
123
- * Fixed text domain
124
- * Simplified package.json to make final js even smaller
125
- * Added phpunit tests to the plugin main class
126
- * Added travis.yml for continuous integration on GitHub, and improvement of code reliability
127
-
128
- = 3.7 (12.04.2019) =
129
- * Added Belorussian, Macedonian, Kazakh tables
130
- * Fixed bug with MariaDB during old slug conversion
131
- * Fixed not saving of user modifications in default iso9 table
132
-
133
- = 3.6.5 (11.02.2019) =
134
- * Added queues for background slug conversion process
135
-
136
- = 3.6.4 (06.02.2019) =
137
- * Fixed bug with `_wp_old_slug` redirect.
138
- * Fixed bug with `urldecode` in posts.
139
-
140
- = 3.6.3 (04.02.2019) =
141
- * Fixed bug with network activation on multisite
142
-
143
- = 3.6.2 (01.02.2019) =
144
- * Moved the menu in the settings section
145
- * Text domain fixup.
146
-
147
- = 3.6.1 (31.01.2019) =
148
- * Text domain corrected.
149
-
150
- = 3.6 (31.01.2019) =
151
- * Plugin settings page added.
152
- * Settings page allows user to edit conversion tables online.
153
- * Code converted to OOP.
154
- * Code refactored to conform WordPress Coding Standards.
155
- * JS developed according to ECMA-6 script standards.
156
- * Settings page also works if JS is switched off in the browser.
157
- * Composer and yarn added.
158
- * Assets (banner, icon, admin icon) are added.
159
-
160
- = 3.4 (21.01.2019) =
161
- * Tested up to WP 5.1
162
- * Code formatting to follow WPCS.
163
- * Strict comparisons.
164
- * Braces {} removed from MySQL statements to allow checking of table names in PhpStorm.
165
- * Updated .gitignore and README.md
166
- * Added new filter `ctl_pre_sanitize_title`
167
-
168
- = 3.3 (18.01.2019) =
169
- * wpcs 1.0
170
- * Fixed many bugs
171
- * Added Gutenberg support
172
-
173
- = 3.2 =
174
- * Added transliteration when publishing via XML-RPC
175
- * Fixed Invalid Taxonomy error when viewing the most used tags
176
-
177
- = 3.1 =
178
- * Fixed transliteration when saving a draft
179
-
180
- = 3.0 =
181
- * Added automatic conversion of existing post, page and term slugs
182
- * Added saving of existing post and page permalinks integrity
183
- * Added transliteration of attachment file names
184
- * Adjusted transliteration table in accordance with ISO 9 standard
185
- * Included Russian, Ukrainian, Bulgarian and Georgian characters
186
- * Added filter for the transliteration table
187
-
188
- = 2.1 =
189
- * Optimized filter call
190
-
191
- = 2.0 =
192
- * Added check for existing terms
193
-
194
- = 1.0.1 =
195
- * Updated description
196
-
197
- = 1.0 =
198
- * Initial release
 
 
 
 
 
 
 
 
 
 
1
+ === Cyr-To-Lat ===
2
+ Contributors: SergeyBiryukov, mihdan, karevn, webvitaly, kaggdesign
3
+ Tags: cyrillic, belorussian, ukrainian, bulgarian, macedonian, georgian, kazakh, latin, l10n, russian, cyr-to-lat, cyr2lat, rustolat, slugs, translations, transliteration
4
+ Requires at least: 5.1
5
+ Tested up to: 5.2
6
+ Stable tag: 4.2.2
7
+ Requires PHP: 5.6
8
+
9
+ Converts Cyrillic characters in post, page and term slugs to Latin characters.
10
+
11
+ == Description ==
12
+
13
+ Converts Cyrillic characters in post, page and term slugs to Latin characters. Useful for creating human-readable URLs.
14
+
15
+ = Features =
16
+ * Converts any number of existing post, page and term slugs in background processes
17
+ * Saves existing post and page permalinks integrity
18
+ * Performs transliteration of attachment file names
19
+ * Includes Russian, Belorussian, Ukrainian, Bulgarian, Macedonian, Serbian, Georgian, Kazakh, and Hebrew characters
20
+ * Transliteration table can be customized without editing the plugin by itself
21
+ * [Officially compatible with WPML](https://wpml.org/plugin/cyr-to-lat/)
22
+
23
+ ![WPML Certificate](https://ps.w.org/cyr2lat/assets/Cyr-To-Lat---WPML-Compatibility-Certificate-240x250.png)
24
+
25
+ Based on the original Rus-To-Lat plugin by Anton Skorobogatov.
26
+
27
+ [](http://coderisk.com/wp/plugin/cyr2lat/RIPS-nt7iXCmzoc)
28
+
29
+ == Installation ==
30
+
31
+ 1. Upload `cyr2lat` folder to the `/wp-content/plugins/` directory.
32
+ 2. Activate the plugin through the 'Plugins' menu in WordPress.
33
+
34
+ == Frequently Asked Questions ==
35
+
36
+ = How can I define my own substitutions? =
37
+
38
+ Add this code to your theme's `functions.php` file:
39
+
40
+ ```
41
+ function my_cyr_to_lat_table( $ctl_table ) {
42
+ $ctl_table['Ъ'] = 'U';
43
+ $ctl_table['ъ'] = 'u';
44
+
45
+ return $ctl_table;
46
+ }
47
+ add_filter( 'ctl_table', 'my_cyr_to_lat_table' );
48
+ ```
49
+
50
+ = How can I redefine non-standard locale ? =
51
+
52
+ For instance, if your non-standard locale is uk_UA, you can redefine it to `uk` by adding the following code to your theme's `function.php` file:
53
+
54
+ ```
55
+ /**
56
+ * Use conversion table for non-standard locale.
57
+ *
58
+ * @param array $table Conversion table.
59
+ *
60
+ * @return array
61
+ */
62
+ function my_ctl_table( $table ) {
63
+ if ( 'uk_UA' === get_locale() ) {
64
+ $settings = new Cyr_To_Lat_Settings();
65
+ $table = $settings->get_option( 'uk' );
66
+ }
67
+
68
+ return $table;
69
+ }
70
+
71
+ add_filter( 'ctl_table', 'my_ctl_table' );
72
+ ```
73
+
74
+ = How can I convert a large number of posts/terms using wp-cli? =
75
+
76
+ Use the following command in console:
77
+
78
+ ```
79
+ wp cyr2lat regenerate [--post_type=<post_type>] [--post_status=<post_status>]
80
+ ```
81
+
82
+ Where
83
+ `-post_type` is list of post types,
84
+ `-post_status` is list of post statuses.
85
+
86
+ = Can I contribute? =
87
+
88
+ Yes you can!
89
+
90
+ * Join in on our [GitHub repository](https://github.com/mihdan/cyr2lat)
91
+ * Join in on our [Telegram Channel](https://t.me/cyr2lat)
92
+
93
+ == Changelog ==
94
+
95
+ = 4.2.2 (28.08.2019) =
96
+ * Added ACF (Advanced Custom Fields) plugin support
97
+ * Added Serbian table
98
+ * Added new filter `ctl_pre_sanitize_filename`
99
+ * Fixed improper encoding of `Ё`, `ё`, `Й`, `й` characters in file names on some Mac computers (old known problem on Mac's)
100
+
101
+ = 4.2.1 (23.06.2019) =
102
+ * Fixed problem with sessions
103
+ * Fixed message sequence for conversion of existing slugs.
104
+ * Added php version check to avoid fatal error on activation on old sites.
105
+ * Added vertical tabs in plugin settings.
106
+
107
+ = 4.2 (28.05.2019) =
108
+ * Bumped up required php version - to 5.6
109
+ * Added phpunit tests for all php versions from 5.6 to 7.3
110
+ * Fixed php warning during conversion of existing slugs
111
+ * Fixed locale selection during conversion of existing post slugs when WPML is activated
112
+ * Fixed bug with infinite redirection of some slugs after conversion of existing slugs
113
+
114
+ = 4.1.2 (22.05.2019) =
115
+ * Fixed bug with fatal error in Cyr_To_Lat_Converter with php 5.2
116
+
117
+ = 4.1.1 (22.05.2019) =
118
+ * Fixed bug with fatal error in Cyr_To_Lat_Converter with php 5.6
119
+
120
+ = 4.1 (21.05.2019) =
121
+ * Added he_IL Table
122
+ * Added plugin translation to Ukrainian
123
+ * Added plugin translation to Swedish
124
+ * Added phpunit tests. All plugin classes are 100% covered
125
+ * Added js tests. All plugin js code is 100% covered
126
+ * Fixed bug with Jetpack sync
127
+ * Fixed empty slug bug while using characters outside of locale
128
+
129
+ = 4.0 (24.04.2019) =
130
+ * Added button to convert existing slugs, instead of checkbox
131
+ * Added admin notices during conversion of existing slugs
132
+ * Added post_type and post_status parameters to wp-cli command
133
+ * Fixed text domain
134
+ * Simplified package.json to make final js even smaller
135
+ * Added phpunit tests to the plugin main class
136
+ * Added travis.yml for continuous integration on GitHub, and improvement of code reliability
137
+
138
+ = 3.7 (12.04.2019) =
139
+ * Added Belorussian, Macedonian, Kazakh tables
140
+ * Fixed bug with MariaDB during old slug conversion
141
+ * Fixed not saving of user modifications in default iso9 table
142
+
143
+ = 3.6.5 (11.02.2019) =
144
+ * Added queues for background slug conversion process
145
+
146
+ = 3.6.4 (06.02.2019) =
147
+ * Fixed bug with `_wp_old_slug` redirect.
148
+ * Fixed bug with `urldecode` in posts.
149
+
150
+ = 3.6.3 (04.02.2019) =
151
+ * Fixed bug with network activation on multisite
152
+
153
+ = 3.6.2 (01.02.2019) =
154
+ * Moved the menu in the settings section
155
+ * Text domain fixup.
156
+
157
+ = 3.6.1 (31.01.2019) =
158
+ * Text domain corrected.
159
+
160
+ = 3.6 (31.01.2019) =
161
+ * Plugin settings page added.
162
+ * Settings page allows user to edit conversion tables online.
163
+ * Code converted to OOP.
164
+ * Code refactored to conform WordPress Coding Standards.
165
+ * JS developed according to ECMA-6 script standards.
166
+ * Settings page also works if JS is switched off in the browser.
167
+ * Composer and yarn added.
168
+ * Assets (banner, icon, admin icon) are added.
169
+
170
+ = 3.4 (21.01.2019) =
171
+ * Tested up to WP 5.1
172
+ * Code formatting to follow WPCS.
173
+ * Strict comparisons.
174
+ * Braces {} removed from MySQL statements to allow checking of table names in PhpStorm.
175
+ * Updated .gitignore and README.md
176
+ * Added new filter `ctl_pre_sanitize_title`
177
+
178
+ = 3.3 (18.01.2019) =
179
+ * wpcs 1.0
180
+ * Fixed many bugs
181
+ * Added Gutenberg support
182
+
183
+ = 3.2 =
184
+ * Added transliteration when publishing via XML-RPC
185
+ * Fixed Invalid Taxonomy error when viewing the most used tags
186
+
187
+ = 3.1 =
188
+ * Fixed transliteration when saving a draft
189
+
190
+ = 3.0 =
191
+ * Added automatic conversion of existing post, page and term slugs
192
+ * Added saving of existing post and page permalinks integrity
193
+ * Added transliteration of attachment file names
194
+ * Adjusted transliteration table in accordance with ISO 9 standard
195
+ * Included Russian, Ukrainian, Bulgarian and Georgian characters
196
+ * Added filter for the transliteration table
197
+
198
+ = 2.1 =
199
+ * Optimized filter call
200
+
201
+ = 2.0 =
202
+ * Added check for existing terms
203
+
204
+ = 1.0.1 =
205
+ * Updated description
206
+
207
+ = 1.0 =
208
+ * Initial release
vendor/composer/ClassLoader52.php DELETED
@@ -1,271 +0,0 @@
1
- <?php
2
- /*
3
- * Copyright (c) 2013, Christoph Mewes, http://www.xrstf.de
4
- *
5
- * This file is released under the terms of the MIT license. You can find the
6
- * complete text in the attached LICENSE file or online at:
7
- *
8
- * http://www.opensource.org/licenses/mit-license.php
9
- *
10
- * --------------------------------------------------------------------------
11
- *
12
- * 99% of this is copied as-is from the original Composer source code and is
13
- * released under MIT license as well. Copyright goes to:
14
- *
15
- * - Fabien Potencier <fabien@symfony.com>
16
- * - Jordi Boggiano <j.boggiano@seld.be>
17
- */
18
-
19
- class xrstf_Composer52_ClassLoader {
20
- private $prefixes = array();
21
- private $fallbackDirs = array();
22
- private $useIncludePath = false;
23
- private $classMap = array();
24
- private $classMapAuthoratative = false;
25
- private $allowUnderscore = false;
26
-
27
- /**
28
- * @param boolean $flag true to allow class names with a leading underscore, false to disable
29
- */
30
- public function setAllowUnderscore($flag) {
31
- $this->allowUnderscore = (boolean) $flag;
32
- }
33
-
34
- /**
35
- * @return array
36
- */
37
- public function getPrefixes() {
38
- return $this->prefixes;
39
- }
40
-
41
- /**
42
- * Turns off searching the prefix and fallback directories for classes
43
- * that have not been registered with the class map.
44
- *
45
- * @param bool $classMapAuthoratative
46
- */
47
- public function setClassMapAuthoritative($classMapAuthoratative) {
48
- $this->classMapAuthoratative = $classMapAuthoratative;
49
- }
50
-
51
- /**
52
- * Should class lookup fail if not found in the current class map?
53
- *
54
- * @return bool
55
- */
56
- public function getClassMapAuthoratative() {
57
- return $this->classMapAuthoratative;
58
- }
59
-
60
- /**
61
- * @return array
62
- */
63
- public function getFallbackDirs() {
64
- return $this->fallbackDirs;
65
- }
66
-
67
- /**
68
- * @return array
69
- */
70
- public function getClassMap() {
71
- return $this->classMap;
72
- }
73
-
74
- /**
75
- * @param array $classMap class to filename map
76
- */
77
- public function addClassMap(array $classMap) {
78
- if ($this->classMap) {
79
- $this->classMap = array_merge($this->classMap, $classMap);
80
- }
81
- else {
82
- $this->classMap = $classMap;
83
- }
84
- }
85
-
86
- /**
87
- * Registers a set of classes, merging with any others previously set.
88
- *
89
- * @param string $prefix the classes prefix
90
- * @param array|string $paths the location(s) of the classes
91
- * @param bool $prepend prepend the location(s)
92
- */
93
- public function add($prefix, $paths, $prepend = false) {
94
- if (!$prefix) {
95
- if ($prepend) {
96
- $this->fallbackDirs = array_merge(
97
- (array) $paths,
98
- $this->fallbackDirs
99
- );
100
- }
101
- else {
102
- $this->fallbackDirs = array_merge(
103
- $this->fallbackDirs,
104
- (array) $paths
105
- );
106
- }
107
-
108
- return;
109
- }
110
-
111
- if (!isset($this->prefixes[$prefix])) {
112
- $this->prefixes[$prefix] = (array) $paths;
113
- return;
114
- }
115
-
116
- if ($prepend) {
117
- $this->prefixes[$prefix] = array_merge(
118
- (array) $paths,
119
- $this->prefixes[$prefix]
120
- );
121
- }
122
- else {
123
- $this->prefixes[$prefix] = array_merge(
124
- $this->prefixes[$prefix],
125
- (array) $paths
126
- );
127
- }
128
- }
129
-
130
- /**
131
- * Registers a set of classes, replacing any others previously set.
132
- *
133
- * @param string $prefix the classes prefix
134
- * @param array|string $paths the location(s) of the classes
135
- */
136
- public function set($prefix, $paths) {
137
- if (!$prefix) {
138
- $this->fallbackDirs = (array) $paths;
139
- return;
140
- }
141
-
142
- $this->prefixes[$prefix] = (array) $paths;
143
- }
144
-
145
- /**
146
- * Turns on searching the include path for class files.
147
- *
148
- * @param bool $useIncludePath
149
- */
150
- public function setUseIncludePath($useIncludePath) {
151
- $this->useIncludePath = $useIncludePath;
152
- }
153
-
154
- /**
155
- * Can be used to check if the autoloader uses the include path to check
156
- * for classes.
157
- *
158
- * @return bool
159
- */
160
- public function getUseIncludePath() {
161
- return $this->useIncludePath;
162
- }
163
-
164
- /**
165
- * Registers this instance as an autoloader.
166
- */
167
- public function register() {
168
- spl_autoload_register(array($this, 'loadClass'), true);
169
- }
170
-
171
- /**
172
- * Unregisters this instance as an autoloader.
173
- */
174
- public function unregister() {
175
- spl_autoload_unregister(array($this, 'loadClass'));
176
- }
177
-
178
- /**
179
- * Loads the given class or interface.
180
- *
181
- * @param string $class the name of the class
182
- * @return bool|null true, if loaded
183
- */
184
- public function loadClass($class) {
185
- if ($file = $this->findFile($class)) {
186
- include $file;
187
- return true;
188
- }
189
- }
190
-
191
- /**
192
- * Finds the path to the file where the class is defined.
193
- *
194
- * @param string $class the name of the class
195
- * @return string|null the path, if found
196
- */
197
- public function findFile($class) {
198
- if ('\\' === $class[0]) {
199
- $class = substr($class, 1);
200
- }
201
-
202
- if (isset($this->classMap[$class])) {
203
- return $this->classMap[$class];
204
- }
205
- elseif ($this->classMapAuthoratative) {
206
- return false;
207
- }
208
-
209
- $classPath = $this->getClassPath($class);
210
-
211
- foreach ($this->prefixes as $prefix => $dirs) {
212
- if (0 === strpos($class, $prefix)) {
213
- foreach ($dirs as $dir) {
214
- if (file_exists($dir.DIRECTORY_SEPARATOR.$classPath)) {
215
- return $dir.DIRECTORY_SEPARATOR.$classPath;
216
- }
217
- }
218
- }
219
- }
220
-
221
- foreach ($this->fallbackDirs as $dir) {
222
- if (file_exists($dir.DIRECTORY_SEPARATOR.$classPath)) {
223
- return $dir.DIRECTORY_SEPARATOR.$classPath;
224
- }
225
- }
226
-
227
- if ($this->useIncludePath && $file = self::resolveIncludePath($classPath)) {
228
- return $file;
229
- }
230
-
231
- return $this->classMap[$class] = false;
232
- }
233
-
234
- private function getClassPath($class) {
235
- if (false !== $pos = strrpos($class, '\\')) {
236
- // namespaced class name
237
- $classPath = str_replace('\\', DIRECTORY_SEPARATOR, substr($class, 0, $pos)).DIRECTORY_SEPARATOR;
238
- $className = substr($class, $pos + 1);
239
- }
240
- else {
241
- // PEAR-like class name
242
- $classPath = null;
243
- $className = $class;
244
- }
245
-
246
- $className = str_replace('_', DIRECTORY_SEPARATOR, $className);
247
-
248
- // restore the prefix
249
- if ($this->allowUnderscore && DIRECTORY_SEPARATOR === $className[0]) {
250
- $className[0] = '_';
251
- }
252
-
253
- $classPath .= $className.'.php';
254
-
255
- return $classPath;
256
- }
257
-
258
- public static function resolveIncludePath($classPath) {
259
- $paths = explode(PATH_SEPARATOR, get_include_path());
260
-
261
- foreach ($paths as $path) {
262
- $path = rtrim($path, '/\\');
263
-
264
- if ($file = file_exists($path.DIRECTORY_SEPARATOR.$file)) {
265
- return $file;
266
- }
267
- }
268
-
269
- return false;
270
- }
271
- }
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
vendor/composer/autoload_classmap.php CHANGED
@@ -6,6 +6,101 @@ $vendorDir = dirname(dirname(__FILE__));
6
  $baseDir = dirname($vendorDir);
7
 
8
  return array(
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
9
  'Cyr_To_Lat_Admin_Notices' => $baseDir . '/includes/class-cyr-to-lat-admin-notices.php',
10
  'Cyr_To_Lat_Conversion_Process' => $baseDir . '/includes/background-processes/class-cyr-to-lat-conversion-process.php',
11
  'Cyr_To_Lat_Conversion_Tables' => $baseDir . '/includes/class-cyr-to-lat-conversion-tables.php',
@@ -16,6 +111,7 @@ return array(
16
  'Cyr_To_Lat_Settings' => $baseDir . '/includes/class-cyr-to-lat-settings.php',
17
  'Cyr_To_Lat_Term_Conversion_Process' => $baseDir . '/includes/background-processes/class-cyr-to-lat-term-conversion-process.php',
18
  'Cyr_To_Lat_WP_CLI' => $baseDir . '/includes/class-cyr-to-lat-wp-cli.php',
 
19
  'WP_Async_Request' => $vendorDir . '/a5hleyrich/wp-background-processing/classes/wp-async-request.php',
20
  'WP_Background_Process' => $vendorDir . '/a5hleyrich/wp-background-processing/classes/wp-background-process.php',
21
  );
6
  $baseDir = dirname($vendorDir);
7
 
8
  return array(
9
+ 'Composer\\Installers\\AglInstaller' => $vendorDir . '/composer/installers/src/Composer/Installers/AglInstaller.php',
10
+ 'Composer\\Installers\\AimeosInstaller' => $vendorDir . '/composer/installers/src/Composer/Installers/AimeosInstaller.php',
11
+ 'Composer\\Installers\\AnnotateCmsInstaller' => $vendorDir . '/composer/installers/src/Composer/Installers/AnnotateCmsInstaller.php',
12
+ 'Composer\\Installers\\AsgardInstaller' => $vendorDir . '/composer/installers/src/Composer/Installers/AsgardInstaller.php',
13
+ 'Composer\\Installers\\AttogramInstaller' => $vendorDir . '/composer/installers/src/Composer/Installers/AttogramInstaller.php',
14
+ 'Composer\\Installers\\BaseInstaller' => $vendorDir . '/composer/installers/src/Composer/Installers/BaseInstaller.php',
15
+ 'Composer\\Installers\\BitrixInstaller' => $vendorDir . '/composer/installers/src/Composer/Installers/BitrixInstaller.php',
16
+ 'Composer\\Installers\\BonefishInstaller' => $vendorDir . '/composer/installers/src/Composer/Installers/BonefishInstaller.php',
17
+ 'Composer\\Installers\\CakePHPInstaller' => $vendorDir . '/composer/installers/src/Composer/Installers/CakePHPInstaller.php',
18
+ 'Composer\\Installers\\ChefInstaller' => $vendorDir . '/composer/installers/src/Composer/Installers/ChefInstaller.php',
19
+ 'Composer\\Installers\\CiviCrmInstaller' => $vendorDir . '/composer/installers/src/Composer/Installers/CiviCrmInstaller.php',
20
+ 'Composer\\Installers\\ClanCatsFrameworkInstaller' => $vendorDir . '/composer/installers/src/Composer/Installers/ClanCatsFrameworkInstaller.php',
21
+ 'Composer\\Installers\\CockpitInstaller' => $vendorDir . '/composer/installers/src/Composer/Installers/CockpitInstaller.php',
22
+ 'Composer\\Installers\\CodeIgniterInstaller' => $vendorDir . '/composer/installers/src/Composer/Installers/CodeIgniterInstaller.php',
23
+ 'Composer\\Installers\\Concrete5Installer' => $vendorDir . '/composer/installers/src/Composer/Installers/Concrete5Installer.php',
24
+ 'Composer\\Installers\\CraftInstaller' => $vendorDir . '/composer/installers/src/Composer/Installers/CraftInstaller.php',
25
+ 'Composer\\Installers\\CroogoInstaller' => $vendorDir . '/composer/installers/src/Composer/Installers/CroogoInstaller.php',
26
+ 'Composer\\Installers\\DecibelInstaller' => $vendorDir . '/composer/installers/src/Composer/Installers/DecibelInstaller.php',
27
+ 'Composer\\Installers\\DframeInstaller' => $vendorDir . '/composer/installers/src/Composer/Installers/DframeInstaller.php',
28
+ 'Composer\\Installers\\DokuWikiInstaller' => $vendorDir . '/composer/installers/src/Composer/Installers/DokuWikiInstaller.php',
29
+ 'Composer\\Installers\\DolibarrInstaller' => $vendorDir . '/composer/installers/src/Composer/Installers/DolibarrInstaller.php',
30
+ 'Composer\\Installers\\DrupalInstaller' => $vendorDir . '/composer/installers/src/Composer/Installers/DrupalInstaller.php',
31
+ 'Composer\\Installers\\ElggInstaller' => $vendorDir . '/composer/installers/src/Composer/Installers/ElggInstaller.php',
32
+ 'Composer\\Installers\\EliasisInstaller' => $vendorDir . '/composer/installers/src/Composer/Installers/EliasisInstaller.php',
33
+ 'Composer\\Installers\\ExpressionEngineInstaller' => $vendorDir . '/composer/installers/src/Composer/Installers/ExpressionEngineInstaller.php',
34
+ 'Composer\\Installers\\EzPlatformInstaller' => $vendorDir . '/composer/installers/src/Composer/Installers/EzPlatformInstaller.php',
35
+ 'Composer\\Installers\\FuelInstaller' => $vendorDir . '/composer/installers/src/Composer/Installers/FuelInstaller.php',
36
+ 'Composer\\Installers\\FuelphpInstaller' => $vendorDir . '/composer/installers/src/Composer/Installers/FuelphpInstaller.php',
37
+ 'Composer\\Installers\\GravInstaller' => $vendorDir . '/composer/installers/src/Composer/Installers/GravInstaller.php',
38
+ 'Composer\\Installers\\HuradInstaller' => $vendorDir . '/composer/installers/src/Composer/Installers/HuradInstaller.php',
39
+ 'Composer\\Installers\\ImageCMSInstaller' => $vendorDir . '/composer/installers/src/Composer/Installers/ImageCMSInstaller.php',
40
+ 'Composer\\Installers\\Installer' => $vendorDir . '/composer/installers/src/Composer/Installers/Installer.php',
41
+ 'Composer\\Installers\\ItopInstaller' => $vendorDir . '/composer/installers/src/Composer/Installers/ItopInstaller.php',
42
+ 'Composer\\Installers\\JoomlaInstaller' => $vendorDir . '/composer/installers/src/Composer/Installers/JoomlaInstaller.php',
43
+ 'Composer\\Installers\\KanboardInstaller' => $vendorDir . '/composer/installers/src/Composer/Installers/KanboardInstaller.php',
44
+ 'Composer\\Installers\\KirbyInstaller' => $vendorDir . '/composer/installers/src/Composer/Installers/KirbyInstaller.php',
45
+ 'Composer\\Installers\\KnownInstaller' => $vendorDir . '/composer/installers/src/Composer/Installers/KnownInstaller.php',
46
+ 'Composer\\Installers\\KodiCMSInstaller' => $vendorDir . '/composer/installers/src/Composer/Installers/KodiCMSInstaller.php',
47
+ 'Composer\\Installers\\KohanaInstaller' => $vendorDir . '/composer/installers/src/Composer/Installers/KohanaInstaller.php',
48
+ 'Composer\\Installers\\LanManagementSystemInstaller' => $vendorDir . '/composer/installers/src/Composer/Installers/LanManagementSystemInstaller.php',
49
+ 'Composer\\Installers\\LaravelInstaller' => $vendorDir . '/composer/installers/src/Composer/Installers/LaravelInstaller.php',
50
+ 'Composer\\Installers\\LavaLiteInstaller' => $vendorDir . '/composer/installers/src/Composer/Installers/LavaLiteInstaller.php',
51
+ 'Composer\\Installers\\LithiumInstaller' => $vendorDir . '/composer/installers/src/Composer/Installers/LithiumInstaller.php',
52
+ 'Composer\\Installers\\MODULEWorkInstaller' => $vendorDir . '/composer/installers/src/Composer/Installers/MODULEWorkInstaller.php',
53
+ 'Composer\\Installers\\MODXEvoInstaller' => $vendorDir . '/composer/installers/src/Composer/Installers/MODXEvoInstaller.php',
54
+ 'Composer\\Installers\\MagentoInstaller' => $vendorDir . '/composer/installers/src/Composer/Installers/MagentoInstaller.php',
55
+ 'Composer\\Installers\\MajimaInstaller' => $vendorDir . '/composer/installers/src/Composer/Installers/MajimaInstaller.php',
56
+ 'Composer\\Installers\\MakoInstaller' => $vendorDir . '/composer/installers/src/Composer/Installers/MakoInstaller.php',
57
+ 'Composer\\Installers\\MauticInstaller' => $vendorDir . '/composer/installers/src/Composer/Installers/MauticInstaller.php',
58
+ 'Composer\\Installers\\MayaInstaller' => $vendorDir . '/composer/installers/src/Composer/Installers/MayaInstaller.php',
59
+ 'Composer\\Installers\\MediaWikiInstaller' => $vendorDir . '/composer/installers/src/Composer/Installers/MediaWikiInstaller.php',
60
+ 'Composer\\Installers\\MicroweberInstaller' => $vendorDir . '/composer/installers/src/Composer/Installers/MicroweberInstaller.php',
61
+ 'Composer\\Installers\\ModxInstaller' => $vendorDir . '/composer/installers/src/Composer/Installers/ModxInstaller.php',
62
+ 'Composer\\Installers\\MoodleInstaller' => $vendorDir . '/composer/installers/src/Composer/Installers/MoodleInstaller.php',
63
+ 'Composer\\Installers\\OctoberInstaller' => $vendorDir . '/composer/installers/src/Composer/Installers/OctoberInstaller.php',
64
+ 'Composer\\Installers\\OntoWikiInstaller' => $vendorDir . '/composer/installers/src/Composer/Installers/OntoWikiInstaller.php',
65
+ 'Composer\\Installers\\OsclassInstaller' => $vendorDir . '/composer/installers/src/Composer/Installers/OsclassInstaller.php',
66
+ 'Composer\\Installers\\OxidInstaller' => $vendorDir . '/composer/installers/src/Composer/Installers/OxidInstaller.php',
67
+ 'Composer\\Installers\\PPIInstaller' => $vendorDir . '/composer/installers/src/Composer/Installers/PPIInstaller.php',
68
+ 'Composer\\Installers\\PhiftyInstaller' => $vendorDir . '/composer/installers/src/Composer/Installers/PhiftyInstaller.php',
69
+ 'Composer\\Installers\\PhpBBInstaller' => $vendorDir . '/composer/installers/src/Composer/Installers/PhpBBInstaller.php',
70
+ 'Composer\\Installers\\PimcoreInstaller' => $vendorDir . '/composer/installers/src/Composer/Installers/PimcoreInstaller.php',
71
+ 'Composer\\Installers\\PiwikInstaller' => $vendorDir . '/composer/installers/src/Composer/Installers/PiwikInstaller.php',
72
+ 'Composer\\Installers\\PlentymarketsInstaller' => $vendorDir . '/composer/installers/src/Composer/Installers/PlentymarketsInstaller.php',
73
+ 'Composer\\Installers\\Plugin' => $vendorDir . '/composer/installers/src/Composer/Installers/Plugin.php',
74
+ 'Composer\\Installers\\PortoInstaller' => $vendorDir . '/composer/installers/src/Composer/Installers/PortoInstaller.php',
75
+ 'Composer\\Installers\\PrestashopInstaller' => $vendorDir . '/composer/installers/src/Composer/Installers/PrestashopInstaller.php',
76
+ 'Composer\\Installers\\PuppetInstaller' => $vendorDir . '/composer/installers/src/Composer/Installers/PuppetInstaller.php',
77
+ 'Composer\\Installers\\PxcmsInstaller' => $vendorDir . '/composer/installers/src/Composer/Installers/PxcmsInstaller.php',
78
+ 'Composer\\Installers\\RadPHPInstaller' => $vendorDir . '/composer/installers/src/Composer/Installers/RadPHPInstaller.php',
79
+ 'Composer\\Installers\\ReIndexInstaller' => $vendorDir . '/composer/installers/src/Composer/Installers/ReIndexInstaller.php',
80
+ 'Composer\\Installers\\Redaxo5Installer' => $vendorDir . '/composer/installers/src/Composer/Installers/Redaxo5Installer.php',
81
+ 'Composer\\Installers\\RedaxoInstaller' => $vendorDir . '/composer/installers/src/Composer/Installers/RedaxoInstaller.php',
82
+ 'Composer\\Installers\\RoundcubeInstaller' => $vendorDir . '/composer/installers/src/Composer/Installers/RoundcubeInstaller.php',
83
+ 'Composer\\Installers\\SMFInstaller' => $vendorDir . '/composer/installers/src/Composer/Installers/SMFInstaller.php',
84
+ 'Composer\\Installers\\ShopwareInstaller' => $vendorDir . '/composer/installers/src/Composer/Installers/ShopwareInstaller.php',
85
+ 'Composer\\Installers\\SilverStripeInstaller' => $vendorDir . '/composer/installers/src/Composer/Installers/SilverStripeInstaller.php',
86
+ 'Composer\\Installers\\SiteDirectInstaller' => $vendorDir . '/composer/installers/src/Composer/Installers/SiteDirectInstaller.php',
87
+ 'Composer\\Installers\\SyDESInstaller' => $vendorDir . '/composer/installers/src/Composer/Installers/SyDESInstaller.php',
88
+ 'Composer\\Installers\\Symfony1Installer' => $vendorDir . '/composer/installers/src/Composer/Installers/Symfony1Installer.php',
89
+ 'Composer\\Installers\\TYPO3CmsInstaller' => $vendorDir . '/composer/installers/src/Composer/Installers/TYPO3CmsInstaller.php',
90
+ 'Composer\\Installers\\TYPO3FlowInstaller' => $vendorDir . '/composer/installers/src/Composer/Installers/TYPO3FlowInstaller.php',
91
+ 'Composer\\Installers\\TaoInstaller' => $vendorDir . '/composer/installers/src/Composer/Installers/TaoInstaller.php',
92
+ 'Composer\\Installers\\TheliaInstaller' => $vendorDir . '/composer/installers/src/Composer/Installers/TheliaInstaller.php',
93
+ 'Composer\\Installers\\TuskInstaller' => $vendorDir . '/composer/installers/src/Composer/Installers/TuskInstaller.php',
94
+ 'Composer\\Installers\\UserFrostingInstaller' => $vendorDir . '/composer/installers/src/Composer/Installers/UserFrostingInstaller.php',
95
+ 'Composer\\Installers\\VanillaInstaller' => $vendorDir . '/composer/installers/src/Composer/Installers/VanillaInstaller.php',
96
+ 'Composer\\Installers\\VgmcpInstaller' => $vendorDir . '/composer/installers/src/Composer/Installers/VgmcpInstaller.php',
97
+ 'Composer\\Installers\\WHMCSInstaller' => $vendorDir . '/composer/installers/src/Composer/Installers/WHMCSInstaller.php',
98
+ 'Composer\\Installers\\WolfCMSInstaller' => $vendorDir . '/composer/installers/src/Composer/Installers/WolfCMSInstaller.php',
99
+ 'Composer\\Installers\\WordPressInstaller' => $vendorDir . '/composer/installers/src/Composer/Installers/WordPressInstaller.php',
100
+ 'Composer\\Installers\\YawikInstaller' => $vendorDir . '/composer/installers/src/Composer/Installers/YawikInstaller.php',
101
+ 'Composer\\Installers\\ZendInstaller' => $vendorDir . '/composer/installers/src/Composer/Installers/ZendInstaller.php',
102
+ 'Composer\\Installers\\ZikulaInstaller' => $vendorDir . '/composer/installers/src/Composer/Installers/ZikulaInstaller.php',
103
+ 'Cyr_To_Lat_ACF' => $baseDir . '/includes/class-cyr-to-lat-acf.php',
104
  'Cyr_To_Lat_Admin_Notices' => $baseDir . '/includes/class-cyr-to-lat-admin-notices.php',
105
  'Cyr_To_Lat_Conversion_Process' => $baseDir . '/includes/background-processes/class-cyr-to-lat-conversion-process.php',
106
  'Cyr_To_Lat_Conversion_Tables' => $baseDir . '/includes/class-cyr-to-lat-conversion-tables.php',
111
  'Cyr_To_Lat_Settings' => $baseDir . '/includes/class-cyr-to-lat-settings.php',
112
  'Cyr_To_Lat_Term_Conversion_Process' => $baseDir . '/includes/background-processes/class-cyr-to-lat-term-conversion-process.php',
113
  'Cyr_To_Lat_WP_CLI' => $baseDir . '/includes/class-cyr-to-lat-wp-cli.php',
114
+ 'Symfony\\Polyfill\\Mbstring\\Mbstring' => $vendorDir . '/symfony/polyfill-mbstring/Mbstring.php',
115
  'WP_Async_Request' => $vendorDir . '/a5hleyrich/wp-background-processing/classes/wp-async-request.php',
116
  'WP_Background_Process' => $vendorDir . '/a5hleyrich/wp-background-processing/classes/wp-background-process.php',
117
  );
vendor/composer/autoload_files.php ADDED
@@ -0,0 +1,10 @@
 
 
 
 
 
 
 
 
 
 
1
+ <?php
2
+
3
+ // autoload_files.php @generated by Composer
4
+
5
+ $vendorDir = dirname(dirname(__FILE__));
6
+ $baseDir = dirname($vendorDir);
7
+
8
+ return array(
9
+ '0e6d7bf4a5811bfa5cf40c5ccd6fae6a' => $vendorDir . '/symfony/polyfill-mbstring/bootstrap.php',
10
+ );
vendor/composer/autoload_psr4.php CHANGED
@@ -6,5 +6,6 @@ $vendorDir = dirname(dirname(__FILE__));
6
  $baseDir = dirname($vendorDir);
7
 
8
  return array(
 
9
  'Composer\\Installers\\' => array($vendorDir . '/composer/installers/src/Composer/Installers'),
10
  );
6
  $baseDir = dirname($vendorDir);
7
 
8
  return array(
9
+ 'Symfony\\Polyfill\\Mbstring\\' => array($vendorDir . '/symfony/polyfill-mbstring'),
10
  'Composer\\Installers\\' => array($vendorDir . '/composer/installers/src/Composer/Installers'),
11
  );
vendor/composer/autoload_real.php CHANGED
@@ -47,6 +47,24 @@ class ComposerAutoloaderInit889b56da8e5c956977b4e015c55d5852
47
 
48
  $loader->register(true);
49
 
 
 
 
 
 
 
 
 
 
50
  return $loader;
51
  }
52
  }
 
 
 
 
 
 
 
 
 
47
 
48
  $loader->register(true);
49
 
50
+ if ($useStaticLoader) {
51
+ $includeFiles = Composer\Autoload\ComposerStaticInit889b56da8e5c956977b4e015c55d5852::$files;
52
+ } else {
53
+ $includeFiles = require __DIR__ . '/autoload_files.php';
54
+ }
55
+ foreach ($includeFiles as $fileIdentifier => $file) {
56
+ composerRequire889b56da8e5c956977b4e015c55d5852($fileIdentifier, $file);
57
+ }
58
+
59
  return $loader;
60
  }
61
  }
62
+
63
+ function composerRequire889b56da8e5c956977b4e015c55d5852($fileIdentifier, $file)
64
+ {
65
+ if (empty($GLOBALS['__composer_autoload_files'][$fileIdentifier])) {
66
+ require $file;
67
+
68
+ $GLOBALS['__composer_autoload_files'][$fileIdentifier] = true;
69
+ }
70
+ }
vendor/composer/autoload_real_52.php DELETED
@@ -1,44 +0,0 @@
1
- <?php
2
-
3
- // autoload_real_52.php generated by xrstf/composer-php52
4
-
5
- class ComposerAutoloaderInit5dcf7a98b032f1c0e3482e43ab2c5865 {
6
- private static $loader;
7
-
8
- public static function loadClassLoader($class) {
9
- if ('xrstf_Composer52_ClassLoader' === $class) {
10
- require dirname(__FILE__).'/ClassLoader52.php';
11
- }
12
- }
13
-
14
- /**
15
- * @return xrstf_Composer52_ClassLoader
16
- */
17
- public static function getLoader() {
18
- if (null !== self::$loader) {
19
- return self::$loader;
20
- }
21
-
22
- spl_autoload_register(array('ComposerAutoloaderInit5dcf7a98b032f1c0e3482e43ab2c5865', 'loadClassLoader'), true /*, true */);
23
- self::$loader = $loader = new xrstf_Composer52_ClassLoader();
24
- spl_autoload_unregister(array('ComposerAutoloaderInit5dcf7a98b032f1c0e3482e43ab2c5865', 'loadClassLoader'));
25
-
26
- $vendorDir = dirname(dirname(__FILE__));
27
- $baseDir = dirname($vendorDir);
28
- $dir = dirname(__FILE__);
29
-
30
- $map = require $dir.'/autoload_namespaces.php';
31
- foreach ($map as $namespace => $path) {
32
- $loader->add($namespace, $path);
33
- }
34
-
35
- $classMap = require $dir.'/autoload_classmap.php';
36
- if ($classMap) {
37
- $loader->addClassMap($classMap);
38
- }
39
-
40
- $loader->register(true);
41
-
42
- return $loader;
43
- }
44
- }
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
vendor/composer/autoload_static.php CHANGED
@@ -6,7 +6,15 @@ namespace Composer\Autoload;
6
 
7
  class ComposerStaticInit889b56da8e5c956977b4e015c55d5852
8
  {
 
 
 
 
9
  public static $prefixLengthsPsr4 = array (
 
 
 
 
10
  'C' =>
11
  array (
12
  'Composer\\Installers\\' => 20,
@@ -14,6 +22,10 @@ class ComposerStaticInit889b56da8e5c956977b4e015c55d5852
14
  );
15
 
16
  public static $prefixDirsPsr4 = array (
 
 
 
 
17
  'Composer\\Installers\\' =>
18
  array (
19
  0 => __DIR__ . '/..' . '/composer/installers/src/Composer/Installers',
@@ -21,6 +33,101 @@ class ComposerStaticInit889b56da8e5c956977b4e015c55d5852
21
  );
22
 
23
  public static $classMap = array (
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
24
  'Cyr_To_Lat_Admin_Notices' => __DIR__ . '/../..' . '/includes/class-cyr-to-lat-admin-notices.php',
25
  'Cyr_To_Lat_Conversion_Process' => __DIR__ . '/../..' . '/includes/background-processes/class-cyr-to-lat-conversion-process.php',
26
  'Cyr_To_Lat_Conversion_Tables' => __DIR__ . '/../..' . '/includes/class-cyr-to-lat-conversion-tables.php',
@@ -31,6 +138,7 @@ class ComposerStaticInit889b56da8e5c956977b4e015c55d5852
31
  'Cyr_To_Lat_Settings' => __DIR__ . '/../..' . '/includes/class-cyr-to-lat-settings.php',
32
  'Cyr_To_Lat_Term_Conversion_Process' => __DIR__ . '/../..' . '/includes/background-processes/class-cyr-to-lat-term-conversion-process.php',
33
  'Cyr_To_Lat_WP_CLI' => __DIR__ . '/../..' . '/includes/class-cyr-to-lat-wp-cli.php',
 
34
  'WP_Async_Request' => __DIR__ . '/..' . '/a5hleyrich/wp-background-processing/classes/wp-async-request.php',
35
  'WP_Background_Process' => __DIR__ . '/..' . '/a5hleyrich/wp-background-processing/classes/wp-background-process.php',
36
  );
6
 
7
  class ComposerStaticInit889b56da8e5c956977b4e015c55d5852
8
  {
9
+ public static $files = array (
10
+ '0e6d7bf4a5811bfa5cf40c5ccd6fae6a' => __DIR__ . '/..' . '/symfony/polyfill-mbstring/bootstrap.php',
11
+ );
12
+
13
  public static $prefixLengthsPsr4 = array (
14
+ 'S' =>
15
+ array (
16
+ 'Symfony\\Polyfill\\Mbstring\\' => 26,
17
+ ),
18
  'C' =>
19
  array (
20
  'Composer\\Installers\\' => 20,
22
  );
23
 
24
  public static $prefixDirsPsr4 = array (
25
+ 'Symfony\\Polyfill\\Mbstring\\' =>
26
+ array (
27
+ 0 => __DIR__ . '/..' . '/symfony/polyfill-mbstring',
28
+ ),
29
  'Composer\\Installers\\' =>
30
  array (
31
  0 => __DIR__ . '/..' . '/composer/installers/src/Composer/Installers',
33
  );
34
 
35
  public static $classMap = array (
36
+ 'Composer\\Installers\\AglInstaller' => __DIR__ . '/..' . '/composer/installers/src/Composer/Installers/AglInstaller.php',
37
+ 'Composer\\Installers\\AimeosInstaller' => __DIR__ . '/..' . '/composer/installers/src/Composer/Installers/AimeosInstaller.php',
38
+ 'Composer\\Installers\\AnnotateCmsInstaller' => __DIR__ . '/..' . '/composer/installers/src/Composer/Installers/AnnotateCmsInstaller.php',
39
+ 'Composer\\Installers\\AsgardInstaller' => __DIR__ . '/..' . '/composer/installers/src/Composer/Installers/AsgardInstaller.php',
40
+ 'Composer\\Installers\\AttogramInstaller' => __DIR__ . '/..' . '/composer/installers/src/Composer/Installers/AttogramInstaller.php',
41
+ 'Composer\\Installers\\BaseInstaller' => __DIR__ . '/..' . '/composer/installers/src/Composer/Installers/BaseInstaller.php',
42
+ 'Composer\\Installers\\BitrixInstaller' => __DIR__ . '/..' . '/composer/installers/src/Composer/Installers/BitrixInstaller.php',
43
+ 'Composer\\Installers\\BonefishInstaller' => __DIR__ . '/..' . '/composer/installers/src/Composer/Installers/BonefishInstaller.php',
44
+ 'Composer\\Installers\\CakePHPInstaller' => __DIR__ . '/..' . '/composer/installers/src/Composer/Installers/CakePHPInstaller.php',
45
+ 'Composer\\Installers\\ChefInstaller' => __DIR__ . '/..' . '/composer/installers/src/Composer/Installers/ChefInstaller.php',
46
+ 'Composer\\Installers\\CiviCrmInstaller' => __DIR__ . '/..' . '/composer/installers/src/Composer/Installers/CiviCrmInstaller.php',
47
+ 'Composer\\Installers\\ClanCatsFrameworkInstaller' => __DIR__ . '/..' . '/composer/installers/src/Composer/Installers/ClanCatsFrameworkInstaller.php',
48
+ 'Composer\\Installers\\CockpitInstaller' => __DIR__ . '/..' . '/composer/installers/src/Composer/Installers/CockpitInstaller.php',
49
+ 'Composer\\Installers\\CodeIgniterInstaller' => __DIR__ . '/..' . '/composer/installers/src/Composer/Installers/CodeIgniterInstaller.php',
50
+ 'Composer\\Installers\\Concrete5Installer' => __DIR__ . '/..' . '/composer/installers/src/Composer/Installers/Concrete5Installer.php',
51
+ 'Composer\\Installers\\CraftInstaller' => __DIR__ . '/..' . '/composer/installers/src/Composer/Installers/CraftInstaller.php',
52
+ 'Composer\\Installers\\CroogoInstaller' => __DIR__ . '/..' . '/composer/installers/src/Composer/Installers/CroogoInstaller.php',
53
+ 'Composer\\Installers\\DecibelInstaller' => __DIR__ . '/..' . '/composer/installers/src/Composer/Installers/DecibelInstaller.php',
54
+ 'Composer\\Installers\\DframeInstaller' => __DIR__ . '/..' . '/composer/installers/src/Composer/Installers/DframeInstaller.php',
55
+ 'Composer\\Installers\\DokuWikiInstaller' => __DIR__ . '/..' . '/composer/installers/src/Composer/Installers/DokuWikiInstaller.php',
56
+ 'Composer\\Installers\\DolibarrInstaller' => __DIR__ . '/..' . '/composer/installers/src/Composer/Installers/DolibarrInstaller.php',
57
+ 'Composer\\Installers\\DrupalInstaller' => __DIR__ . '/..' . '/composer/installers/src/Composer/Installers/DrupalInstaller.php',
58
+ 'Composer\\Installers\\ElggInstaller' => __DIR__ . '/..' . '/composer/installers/src/Composer/Installers/ElggInstaller.php',
59
+ 'Composer\\Installers\\EliasisInstaller' => __DIR__ . '/..' . '/composer/installers/src/Composer/Installers/EliasisInstaller.php',
60
+ 'Composer\\Installers\\ExpressionEngineInstaller' => __DIR__ . '/..' . '/composer/installers/src/Composer/Installers/ExpressionEngineInstaller.php',
61
+ 'Composer\\Installers\\EzPlatformInstaller' => __DIR__ . '/..' . '/composer/installers/src/Composer/Installers/EzPlatformInstaller.php',
62
+ 'Composer\\Installers\\FuelInstaller' => __DIR__ . '/..' . '/composer/installers/src/Composer/Installers/FuelInstaller.php',
63
+ 'Composer\\Installers\\FuelphpInstaller' => __DIR__ . '/..' . '/composer/installers/src/Composer/Installers/FuelphpInstaller.php',
64
+ 'Composer\\Installers\\GravInstaller' => __DIR__ . '/..' . '/composer/installers/src/Composer/Installers/GravInstaller.php',
65
+ 'Composer\\Installers\\HuradInstaller' => __DIR__ . '/..' . '/composer/installers/src/Composer/Installers/HuradInstaller.php',
66
+ 'Composer\\Installers\\ImageCMSInstaller' => __DIR__ . '/..' . '/composer/installers/src/Composer/Installers/ImageCMSInstaller.php',
67
+ 'Composer\\Installers\\Installer' => __DIR__ . '/..' . '/composer/installers/src/Composer/Installers/Installer.php',
68
+ 'Composer\\Installers\\ItopInstaller' => __DIR__ . '/..' . '/composer/installers/src/Composer/Installers/ItopInstaller.php',
69
+ 'Composer\\Installers\\JoomlaInstaller' => __DIR__ . '/..' . '/composer/installers/src/Composer/Installers/JoomlaInstaller.php',
70
+ 'Composer\\Installers\\KanboardInstaller' => __DIR__ . '/..' . '/composer/installers/src/Composer/Installers/KanboardInstaller.php',
71
+ 'Composer\\Installers\\KirbyInstaller' => __DIR__ . '/..' . '/composer/installers/src/Composer/Installers/KirbyInstaller.php',
72
+ 'Composer\\Installers\\KnownInstaller' => __DIR__ . '/..' . '/composer/installers/src/Composer/Installers/KnownInstaller.php',
73
+ 'Composer\\Installers\\KodiCMSInstaller' => __DIR__ . '/..' . '/composer/installers/src/Composer/Installers/KodiCMSInstaller.php',
74
+ 'Composer\\Installers\\KohanaInstaller' => __DIR__ . '/..' . '/composer/installers/src/Composer/Installers/KohanaInstaller.php',
75
+ 'Composer\\Installers\\LanManagementSystemInstaller' => __DIR__ . '/..' . '/composer/installers/src/Composer/Installers/LanManagementSystemInstaller.php',
76
+ 'Composer\\Installers\\LaravelInstaller' => __DIR__ . '/..' . '/composer/installers/src/Composer/Installers/LaravelInstaller.php',
77
+ 'Composer\\Installers\\LavaLiteInstaller' => __DIR__ . '/..' . '/composer/installers/src/Composer/Installers/LavaLiteInstaller.php',
78
+ 'Composer\\Installers\\LithiumInstaller' => __DIR__ . '/..' . '/composer/installers/src/Composer/Installers/LithiumInstaller.php',
79
+ 'Composer\\Installers\\MODULEWorkInstaller' => __DIR__ . '/..' . '/composer/installers/src/Composer/Installers/MODULEWorkInstaller.php',
80
+ 'Composer\\Installers\\MODXEvoInstaller' => __DIR__ . '/..' . '/composer/installers/src/Composer/Installers/MODXEvoInstaller.php',
81
+ 'Composer\\Installers\\MagentoInstaller' => __DIR__ . '/..' . '/composer/installers/src/Composer/Installers/MagentoInstaller.php',
82
+ 'Composer\\Installers\\MajimaInstaller' => __DIR__ . '/..' . '/composer/installers/src/Composer/Installers/MajimaInstaller.php',
83
+ 'Composer\\Installers\\MakoInstaller' => __DIR__ . '/..' . '/composer/installers/src/Composer/Installers/MakoInstaller.php',
84
+ 'Composer\\Installers\\MauticInstaller' => __DIR__ . '/..' . '/composer/installers/src/Composer/Installers/MauticInstaller.php',
85
+ 'Composer\\Installers\\MayaInstaller' => __DIR__ . '/..' . '/composer/installers/src/Composer/Installers/MayaInstaller.php',
86
+ 'Composer\\Installers\\MediaWikiInstaller' => __DIR__ . '/..' . '/composer/installers/src/Composer/Installers/MediaWikiInstaller.php',
87
+ 'Composer\\Installers\\MicroweberInstaller' => __DIR__ . '/..' . '/composer/installers/src/Composer/Installers/MicroweberInstaller.php',
88
+ 'Composer\\Installers\\ModxInstaller' => __DIR__ . '/..' . '/composer/installers/src/Composer/Installers/ModxInstaller.php',
89
+ 'Composer\\Installers\\MoodleInstaller' => __DIR__ . '/..' . '/composer/installers/src/Composer/Installers/MoodleInstaller.php',
90
+ 'Composer\\Installers\\OctoberInstaller' => __DIR__ . '/..' . '/composer/installers/src/Composer/Installers/OctoberInstaller.php',
91
+ 'Composer\\Installers\\OntoWikiInstaller' => __DIR__ . '/..' . '/composer/installers/src/Composer/Installers/OntoWikiInstaller.php',
92
+ 'Composer\\Installers\\OsclassInstaller' => __DIR__ . '/..' . '/composer/installers/src/Composer/Installers/OsclassInstaller.php',
93
+ 'Composer\\Installers\\OxidInstaller' => __DIR__ . '/..' . '/composer/installers/src/Composer/Installers/OxidInstaller.php',
94
+ 'Composer\\Installers\\PPIInstaller' => __DIR__ . '/..' . '/composer/installers/src/Composer/Installers/PPIInstaller.php',
95
+ 'Composer\\Installers\\PhiftyInstaller' => __DIR__ . '/..' . '/composer/installers/src/Composer/Installers/PhiftyInstaller.php',
96
+ 'Composer\\Installers\\PhpBBInstaller' => __DIR__ . '/..' . '/composer/installers/src/Composer/Installers/PhpBBInstaller.php',
97
+ 'Composer\\Installers\\PimcoreInstaller' => __DIR__ . '/..' . '/composer/installers/src/Composer/Installers/PimcoreInstaller.php',
98
+ 'Composer\\Installers\\PiwikInstaller' => __DIR__ . '/..' . '/composer/installers/src/Composer/Installers/PiwikInstaller.php',
99
+ 'Composer\\Installers\\PlentymarketsInstaller' => __DIR__ . '/..' . '/composer/installers/src/Composer/Installers/PlentymarketsInstaller.php',
100
+ 'Composer\\Installers\\Plugin' => __DIR__ . '/..' . '/composer/installers/src/Composer/Installers/Plugin.php',
101
+ 'Composer\\Installers\\PortoInstaller' => __DIR__ . '/..' . '/composer/installers/src/Composer/Installers/PortoInstaller.php',
102
+ 'Composer\\Installers\\PrestashopInstaller' => __DIR__ . '/..' . '/composer/installers/src/Composer/Installers/PrestashopInstaller.php',
103
+ 'Composer\\Installers\\PuppetInstaller' => __DIR__ . '/..' . '/composer/installers/src/Composer/Installers/PuppetInstaller.php',
104
+ 'Composer\\Installers\\PxcmsInstaller' => __DIR__ . '/..' . '/composer/installers/src/Composer/Installers/PxcmsInstaller.php',
105
+ 'Composer\\Installers\\RadPHPInstaller' => __DIR__ . '/..' . '/composer/installers/src/Composer/Installers/RadPHPInstaller.php',
106
+ 'Composer\\Installers\\ReIndexInstaller' => __DIR__ . '/..' . '/composer/installers/src/Composer/Installers/ReIndexInstaller.php',
107
+ 'Composer\\Installers\\Redaxo5Installer' => __DIR__ . '/..' . '/composer/installers/src/Composer/Installers/Redaxo5Installer.php',
108
+ 'Composer\\Installers\\RedaxoInstaller' => __DIR__ . '/..' . '/composer/installers/src/Composer/Installers/RedaxoInstaller.php',
109
+ 'Composer\\Installers\\RoundcubeInstaller' => __DIR__ . '/..' . '/composer/installers/src/Composer/Installers/RoundcubeInstaller.php',
110
+ 'Composer\\Installers\\SMFInstaller' => __DIR__ . '/..' . '/composer/installers/src/Composer/Installers/SMFInstaller.php',
111
+ 'Composer\\Installers\\ShopwareInstaller' => __DIR__ . '/..' . '/composer/installers/src/Composer/Installers/ShopwareInstaller.php',
112
+ 'Composer\\Installers\\SilverStripeInstaller' => __DIR__ . '/..' . '/composer/installers/src/Composer/Installers/SilverStripeInstaller.php',
113
+ 'Composer\\Installers\\SiteDirectInstaller' => __DIR__ . '/..' . '/composer/installers/src/Composer/Installers/SiteDirectInstaller.php',
114
+ 'Composer\\Installers\\SyDESInstaller' => __DIR__ . '/..' . '/composer/installers/src/Composer/Installers/SyDESInstaller.php',
115
+ 'Composer\\Installers\\Symfony1Installer' => __DIR__ . '/..' . '/composer/installers/src/Composer/Installers/Symfony1Installer.php',
116
+ 'Composer\\Installers\\TYPO3CmsInstaller' => __DIR__ . '/..' . '/composer/installers/src/Composer/Installers/TYPO3CmsInstaller.php',
117
+ 'Composer\\Installers\\TYPO3FlowInstaller' => __DIR__ . '/..' . '/composer/installers/src/Composer/Installers/TYPO3FlowInstaller.php',
118
+ 'Composer\\Installers\\TaoInstaller' => __DIR__ . '/..' . '/composer/installers/src/Composer/Installers/TaoInstaller.php',
119
+ 'Composer\\Installers\\TheliaInstaller' => __DIR__ . '/..' . '/composer/installers/src/Composer/Installers/TheliaInstaller.php',
120
+ 'Composer\\Installers\\TuskInstaller' => __DIR__ . '/..' . '/composer/installers/src/Composer/Installers/TuskInstaller.php',
121
+ 'Composer\\Installers\\UserFrostingInstaller' => __DIR__ . '/..' . '/composer/installers/src/Composer/Installers/UserFrostingInstaller.php',
122
+ 'Composer\\Installers\\VanillaInstaller' => __DIR__ . '/..' . '/composer/installers/src/Composer/Installers/VanillaInstaller.php',
123
+ 'Composer\\Installers\\VgmcpInstaller' => __DIR__ . '/..' . '/composer/installers/src/Composer/Installers/VgmcpInstaller.php',
124
+ 'Composer\\Installers\\WHMCSInstaller' => __DIR__ . '/..' . '/composer/installers/src/Composer/Installers/WHMCSInstaller.php',
125
+ 'Composer\\Installers\\WolfCMSInstaller' => __DIR__ . '/..' . '/composer/installers/src/Composer/Installers/WolfCMSInstaller.php',
126
+ 'Composer\\Installers\\WordPressInstaller' => __DIR__ . '/..' . '/composer/installers/src/Composer/Installers/WordPressInstaller.php',
127
+ 'Composer\\Installers\\YawikInstaller' => __DIR__ . '/..' . '/composer/installers/src/Composer/Installers/YawikInstaller.php',
128
+ 'Composer\\Installers\\ZendInstaller' => __DIR__ . '/..' . '/composer/installers/src/Composer/Installers/ZendInstaller.php',
129
+ 'Composer\\Installers\\ZikulaInstaller' => __DIR__ . '/..' . '/composer/installers/src/Composer/Installers/ZikulaInstaller.php',
130
+ 'Cyr_To_Lat_ACF' => __DIR__ . '/../..' . '/includes/class-cyr-to-lat-acf.php',
131
  'Cyr_To_Lat_Admin_Notices' => __DIR__ . '/../..' . '/includes/class-cyr-to-lat-admin-notices.php',
132
  'Cyr_To_Lat_Conversion_Process' => __DIR__ . '/../..' . '/includes/background-processes/class-cyr-to-lat-conversion-process.php',
133
  'Cyr_To_Lat_Conversion_Tables' => __DIR__ . '/../..' . '/includes/class-cyr-to-lat-conversion-tables.php',
138
  'Cyr_To_Lat_Settings' => __DIR__ . '/../..' . '/includes/class-cyr-to-lat-settings.php',
139
  'Cyr_To_Lat_Term_Conversion_Process' => __DIR__ . '/../..' . '/includes/background-processes/class-cyr-to-lat-term-conversion-process.php',
140
  'Cyr_To_Lat_WP_CLI' => __DIR__ . '/../..' . '/includes/class-cyr-to-lat-wp-cli.php',
141
+ 'Symfony\\Polyfill\\Mbstring\\Mbstring' => __DIR__ . '/..' . '/symfony/polyfill-mbstring/Mbstring.php',
142
  'WP_Async_Request' => __DIR__ . '/..' . '/a5hleyrich/wp-background-processing/classes/wp-async-request.php',
143
  'WP_Background_Process' => __DIR__ . '/..' . '/a5hleyrich/wp-background-processing/classes/wp-background-process.php',
144
  );
vendor/composer/installed.json CHANGED
@@ -41,17 +41,17 @@
41
  },
42
  {
43
  "name": "composer/installers",
44
- "version": "v1.6.0",
45
- "version_normalized": "1.6.0.0",
46
  "source": {
47
  "type": "git",
48
  "url": "https://github.com/composer/installers.git",
49
- "reference": "cfcca6b1b60bc4974324efb5783c13dca6932b5b"
50
  },
51
  "dist": {
52
  "type": "zip",
53
- "url": "https://api.github.com/repos/composer/installers/zipball/cfcca6b1b60bc4974324efb5783c13dca6932b5b",
54
- "reference": "cfcca6b1b60bc4974324efb5783c13dca6932b5b",
55
  "shasum": ""
56
  },
57
  "require": {
@@ -65,7 +65,7 @@
65
  "composer/composer": "1.0.*@dev",
66
  "phpunit/phpunit": "^4.8.36"
67
  },
68
- "time": "2018-08-27T06:10:37+00:00",
69
  "type": "composer-plugin",
70
  "extra": {
71
  "class": "Composer\\Installers\\Plugin",
@@ -109,6 +109,7 @@
109
  "RadPHP",
110
  "SMF",
111
  "Thelia",
 
112
  "WolfCMS",
113
  "agl",
114
  "aimeos",
@@ -131,6 +132,7 @@
131
  "installer",
132
  "itop",
133
  "joomla",
 
134
  "kohana",
135
  "laravel",
136
  "lavalite",
@@ -160,5 +162,66 @@
160
  "zend",
161
  "zikula"
162
  ]