Cyr-To-Lat - Version 3.7

Version Description

(12.04.2019) = * Added Belorussian, Macedonian, Kazakh tables * Fixed bug with MariaDB during old slug conversion * Fixed not saving of user modifications in default iso9 table

Download this release

Release Info

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

Code changes from version 3.6.5 to 3.7

css/cyr-to-lat-admin.css CHANGED
@@ -24,7 +24,7 @@
24
  }
25
 
26
  #ctl-options .nav-tab-active {
27
- border-bottom: 1px solid #f1f1f1;
28
  background: #f1f1f1;
29
  }
30
 
24
  }
25
 
26
  #ctl-options .nav-tab-active {
27
+ border-bottom: none;
28
  background: #f1f1f1;
29
  }
30
 
cyr-to-lat.php CHANGED
@@ -5,18 +5,18 @@
5
  * Plugin Name: Cyr-To-Lat
6
  * Plugin URI: https://wordpress.org/plugins/cyr2lat/
7
  * Description: Converts Cyrillic characters in post and term slugs to Latin characters. Useful for creating human-readable URLs. Based on the original plugin by Anton Skorobogatov.
8
- * Author: Sergey Biryukov, Mikhail Kobzarev
9
  * Author URI: https://profiles.wordpress.org/sergeybiryukov/
10
  * Requires at least: 2.3
11
  * Tested up to: 5.1
12
- * Version: 3.6.5
13
- * Stable tag: 3.6.5
14
  *
15
- * Text Domain: cyr-to-lat
16
  * Domain Path: /languages/
17
  *
18
  * @package cyr-to-lat
19
- * @author Sergey Biryukov, Mikhail Kobzarev
20
  */
21
 
22
  if ( ! defined( 'ABSPATH' ) ) {
@@ -26,7 +26,7 @@ if ( ! defined( 'ABSPATH' ) ) {
26
  /**
27
  * Plugin version.
28
  */
29
- define( 'CYR_TO_LAT_VERSION', '3.6.5' );
30
 
31
  /**
32
  * Path to the plugin dir.
5
  * Plugin Name: Cyr-To-Lat
6
  * Plugin URI: https://wordpress.org/plugins/cyr2lat/
7
  * Description: Converts Cyrillic characters in post and term slugs to Latin characters. Useful for creating human-readable URLs. Based on the original plugin by Anton Skorobogatov.
8
+ * Author: Sergey Biryukov, Mikhail Kobzarev, Igor Gergel
9
  * Author URI: https://profiles.wordpress.org/sergeybiryukov/
10
  * Requires at least: 2.3
11
  * Tested up to: 5.1
12
+ * Version: 3.7
13
+ * Stable tag: 3.7
14
  *
15
+ * Text Domain: cyr2lat
16
  * Domain Path: /languages/
17
  *
18
  * @package cyr-to-lat
19
+ * @author Sergey Biryukov, Mikhail Kobzarev, Igor Gergel
20
  */
21
 
22
  if ( ! defined( 'ABSPATH' ) ) {
26
  /**
27
  * Plugin version.
28
  */
29
+ define( 'CYR_TO_LAT_VERSION', '3.7' );
30
 
31
  /**
32
  * Path to the plugin dir.
includes/background-processes/class-cyr-to-lat-post-conversion-process.php CHANGED
@@ -1,6 +1,6 @@
1
  <?php
2
  /**
3
- * Background old post slugs converting process.
4
  *
5
  * @package cyr-to-lat
6
  */
@@ -11,28 +11,28 @@
11
  class Cyr_To_Lat_Post_Conversion_Process extends WP_Background_Process {
12
 
13
  /**
14
- * Prefix.
15
  *
16
  * @var string
17
  */
18
  protected $prefix = CYR_TO_LAT_PREFIX;
19
 
20
  /**
21
- * Process action name.
22
  *
23
  * @var string
24
  */
25
  protected $action = CYR_TO_LAT_POST_CONVERSION_ACTION;
26
 
27
  /**
28
- * Plugin main class.
29
  *
30
  * @var Cyr_To_Lat_Main
31
  */
32
  private $main;
33
 
34
  /**
35
- * Cyr_To_Lat_Post_Conversion_Process constructor.
36
  *
37
  * @param Cyr_To_Lat_Main $main Plugin main class.
38
  */
@@ -43,7 +43,7 @@ class Cyr_To_Lat_Post_Conversion_Process extends WP_Background_Process {
43
  }
44
 
45
  /**
46
- * Task. Updates single post.
47
  *
48
  * @param stdClass $post Queue item to iterate over.
49
  *
@@ -76,13 +76,15 @@ class Cyr_To_Lat_Post_Conversion_Process extends WP_Background_Process {
76
  }
77
 
78
  /**
79
- * Log.
80
  *
81
  * @param string $message Message to log.
82
  */
83
  public function log( $message ) {
84
  if ( WP_DEBUG_LOG ) {
 
85
  error_log( $message );
 
86
  }
87
  }
88
  }
1
  <?php
2
  /**
3
+ * Background old post slugs converting process
4
  *
5
  * @package cyr-to-lat
6
  */
11
  class Cyr_To_Lat_Post_Conversion_Process extends WP_Background_Process {
12
 
13
  /**
14
+ * Prefix
15
  *
16
  * @var string
17
  */
18
  protected $prefix = CYR_TO_LAT_PREFIX;
19
 
20
  /**
21
+ * Process action name
22
  *
23
  * @var string
24
  */
25
  protected $action = CYR_TO_LAT_POST_CONVERSION_ACTION;
26
 
27
  /**
28
+ * Plugin main class
29
  *
30
  * @var Cyr_To_Lat_Main
31
  */
32
  private $main;
33
 
34
  /**
35
+ * Cyr_To_Lat_Post_Conversion_Process constructor
36
  *
37
  * @param Cyr_To_Lat_Main $main Plugin main class.
38
  */
43
  }
44
 
45
  /**
46
+ * Task. Updates single post
47
  *
48
  * @param stdClass $post Queue item to iterate over.
49
  *
76
  }
77
 
78
  /**
79
+ * Log
80
  *
81
  * @param string $message Message to log.
82
  */
83
  public function log( $message ) {
84
  if ( WP_DEBUG_LOG ) {
85
+ // @phpcs:disable WordPress.PHP.DevelopmentFunctions.error_log_error_log
86
  error_log( $message );
87
+ // @phpcs:enable WordPress.PHP.DevelopmentFunctions.error_log_error_log
88
  }
89
  }
90
  }
includes/background-processes/class-cyr-to-lat-term-conversion-process.php CHANGED
@@ -1,6 +1,6 @@
1
  <?php
2
  /**
3
- * Background old term slugs converting process.
4
  *
5
  * @package cyr-to-lat
6
  */
@@ -18,7 +18,7 @@ class Cyr_To_Lat_Term_Conversion_Process extends WP_Background_Process {
18
  protected $prefix = CYR_TO_LAT_PREFIX;
19
 
20
  /**
21
- * Process action name.
22
  *
23
  * @var string
24
  */
@@ -32,7 +32,7 @@ class Cyr_To_Lat_Term_Conversion_Process extends WP_Background_Process {
32
  private $main;
33
 
34
  /**
35
- * Cyr_To_Lat_Post_Conversion_Process constructor.
36
  *
37
  * @param Cyr_To_Lat_Main $main Plugin main class.
38
  */
@@ -43,7 +43,7 @@ class Cyr_To_Lat_Term_Conversion_Process extends WP_Background_Process {
43
  }
44
 
45
  /**
46
- * Task. Updates single term.
47
  *
48
  * @param stdClass $term Queue item to iterate over.
49
  *
@@ -75,13 +75,15 @@ class Cyr_To_Lat_Term_Conversion_Process extends WP_Background_Process {
75
  }
76
 
77
  /**
78
- * Log.
79
  *
80
  * @param string $message Message to log.
81
  */
82
  public function log( $message ) {
83
  if ( WP_DEBUG_LOG ) {
 
84
  error_log( $message );
 
85
  }
86
  }
87
  }
1
  <?php
2
  /**
3
+ * Background old term slugs converting process
4
  *
5
  * @package cyr-to-lat
6
  */
18
  protected $prefix = CYR_TO_LAT_PREFIX;
19
 
20
  /**
21
+ * Process action name
22
  *
23
  * @var string
24
  */
32
  private $main;
33
 
34
  /**
35
+ * Cyr_To_Lat_Post_Conversion_Process constructor
36
  *
37
  * @param Cyr_To_Lat_Main $main Plugin main class.
38
  */
43
  }
44
 
45
  /**
46
+ * Task. Updates single term
47
  *
48
  * @param stdClass $term Queue item to iterate over.
49
  *
75
  }
76
 
77
  /**
78
+ * Log
79
  *
80
  * @param string $message Message to log.
81
  */
82
  public function log( $message ) {
83
  if ( WP_DEBUG_LOG ) {
84
+ // @phpcs:disable WordPress.PHP.DevelopmentFunctions.error_log_error_log
85
  error_log( $message );
86
+ // @phpcs:enable WordPress.PHP.DevelopmentFunctions.error_log_error_log
87
  }
88
  }
89
  }
includes/class-cyr-to-lat-conversion-tables.php CHANGED
@@ -15,6 +15,7 @@ class Cyr_To_Lat_Conversion_Tables {
15
  /**
16
  * Get conversion table by locale.
17
  *
 
18
  * @param string $locale WordPress locale.
19
  *
20
  * @return array
@@ -25,39 +26,28 @@ class Cyr_To_Lat_Conversion_Tables {
25
  'Б' => 'B',
26
  'В' => 'V',
27
  'Г' => 'G',
28
- 'Ѓ' => 'G',
29
- 'Ґ' => 'G',
30
  'Д' => 'D',
31
  'Е' => 'E',
32
  'Ё' => 'YO',
33
- 'Є' => 'YE',
34
  'Ж' => 'ZH',
35
  'З' => 'Z',
36
- 'Ѕ' => 'Z',
37
  'И' => 'I',
38
  'Й' => 'J',
39
- 'Ј' => 'J',
40
  'І' => 'I',
41
- 'Ї' => 'YI',
42
  'К' => 'K',
43
- 'Ќ' => 'K',
44
  'Л' => 'L',
45
- 'Љ' => 'L',
46
  'М' => 'M',
47
  'Н' => 'N',
48
- 'Њ' => 'N',
49
  'О' => 'O',
50
  'П' => 'P',
51
  'Р' => 'R',
52
  'С' => 'S',
53
  'Т' => 'T',
54
  'У' => 'U',
55
- 'Ў' => 'U',
56
  'Ф' => 'F',
57
  'Х' => 'H',
58
- 'Ц' => 'TS',
59
  'Ч' => 'CH',
60
- 'Џ' => 'DH',
61
  'Ш' => 'SH',
62
  'Щ' => 'SHH',
63
  'Ъ' => '',
@@ -66,43 +56,35 @@ class Cyr_To_Lat_Conversion_Tables {
66
  'Э' => 'E',
67
  'Ю' => 'YU',
68
  'Я' => 'YA',
 
 
 
69
  'а' => 'a',
70
  'б' => 'b',
71
  'в' => 'v',
72
  'г' => 'g',
73
- 'ѓ' => 'g',
74
- 'ґ' => 'g',
75
  'д' => 'd',
76
  'е' => 'e',
77
  'ё' => 'yo',
78
- 'є' => 'ye',
79
  'ж' => 'zh',
80
  'з' => 'z',
81
- 'ѕ' => 'z',
82
  'и' => 'i',
83
  'й' => 'j',
84
- 'ј' => 'j',
85
  'і' => 'i',
86
- 'ї' => 'yi',
87
  'к' => 'k',
88
- 'ќ' => 'k',
89
  'л' => 'l',
90
- 'љ' => 'l',
91
  'м' => 'm',
92
  'н' => 'n',
93
- 'њ' => 'n',
94
  'о' => 'o',
95
  'п' => 'p',
96
  'р' => 'r',
97
  'с' => 's',
98
  'т' => 't',
99
  'у' => 'u',
100
- 'ў' => 'u',
101
  'ф' => 'f',
102
  'х' => 'h',
103
- 'ц' => 'ts',
104
  'ч' => 'ch',
105
- 'џ' => 'dh',
106
  'ш' => 'sh',
107
  'щ' => 'shh',
108
  'ъ' => '',
@@ -111,18 +93,112 @@ class Cyr_To_Lat_Conversion_Tables {
111
  'э' => 'e',
112
  'ю' => 'yu',
113
  'я' => 'ya',
 
 
 
114
  );
115
  switch ( $locale ) {
116
- case 'bg_BG':
117
- $table['Щ'] = 'SHT';
118
- $table['щ'] = 'sht';
119
- $table['Ъ'] = 'A';
120
- $table['ъ'] = 'a';
 
 
 
 
 
 
 
 
 
 
 
121
  break;
 
122
  case 'uk':
 
 
 
 
 
 
123
  $table['И'] = 'Y';
124
  $table['и'] = 'y';
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
125
  break;
 
126
  case 'ka_GE':
127
  $table['ა'] = 'a';
128
  $table['ბ'] = 'b';
@@ -158,6 +234,59 @@ class Cyr_To_Lat_Conversion_Tables {
158
  $table['ჯ'] = 'j';
159
  $table['ჰ'] = 'h';
160
  break;
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
161
  default:
162
  }
163
 
15
  /**
16
  * Get conversion table by locale.
17
  *
18
+ * @link https://ru.wikipedia.org/wiki/ISO_9
19
  * @param string $locale WordPress locale.
20
  *
21
  * @return array
26
  'Б' => 'B',
27
  'В' => 'V',
28
  'Г' => 'G',
 
 
29
  'Д' => 'D',
30
  'Е' => 'E',
31
  'Ё' => 'YO',
 
32
  'Ж' => 'ZH',
33
  'З' => 'Z',
 
34
  'И' => 'I',
35
  'Й' => 'J',
 
36
  'І' => 'I',
 
37
  'К' => 'K',
 
38
  'Л' => 'L',
 
39
  'М' => 'M',
40
  'Н' => 'N',
 
41
  'О' => 'O',
42
  'П' => 'P',
43
  'Р' => 'R',
44
  'С' => 'S',
45
  'Т' => 'T',
46
  'У' => 'U',
 
47
  'Ф' => 'F',
48
  'Х' => 'H',
49
+ 'Ц' => 'CZ',
50
  'Ч' => 'CH',
 
51
  'Ш' => 'SH',
52
  'Щ' => 'SHH',
53
  'Ъ' => '',
56
  'Э' => 'E',
57
  'Ю' => 'YU',
58
  'Я' => 'YA',
59
+ 'Ѣ' => 'YE',
60
+ 'Ѳ' => 'FH',
61
+ 'Ѵ' => 'YH',
62
  'а' => 'a',
63
  'б' => 'b',
64
  'в' => 'v',
65
  'г' => 'g',
 
 
66
  'д' => 'd',
67
  'е' => 'e',
68
  'ё' => 'yo',
 
69
  'ж' => 'zh',
70
  'з' => 'z',
 
71
  'и' => 'i',
72
  'й' => 'j',
 
73
  'і' => 'i',
 
74
  'к' => 'k',
 
75
  'л' => 'l',
 
76
  'м' => 'm',
77
  'н' => 'n',
 
78
  'о' => 'o',
79
  'п' => 'p',
80
  'р' => 'r',
81
  'с' => 's',
82
  'т' => 't',
83
  'у' => 'u',
 
84
  'ф' => 'f',
85
  'х' => 'h',
86
+ 'ц' => 'cz',
87
  'ч' => 'ch',
 
88
  'ш' => 'sh',
89
  'щ' => 'shh',
90
  'ъ' => '',
93
  'э' => 'e',
94
  'ю' => 'yu',
95
  'я' => 'ya',
96
+ 'ѣ' => 'ye',
97
+ 'ѳ' => 'fh',
98
+ 'ѵ' => 'yh',
99
  );
100
  switch ( $locale ) {
101
+ // Belorussian.
102
+ case 'bel':
103
+ unset( $table['И'] );
104
+ unset( $table['и'] );
105
+ $table['Ў'] = 'U';
106
+ $table['ў'] = 'u';
107
+ unset( $table['Щ'] );
108
+ unset( $table['щ'] );
109
+ unset( $table['Ъ'] );
110
+ unset( $table['ъ'] );
111
+ unset( $table['Ѣ'] );
112
+ unset( $table['ѣ'] );
113
+ unset( $table['Ѳ'] );
114
+ unset( $table['ѳ'] );
115
+ unset( $table['Ѵ'] );
116
+ unset( $table['ѵ'] );
117
  break;
118
+ // Ukrainian.
119
  case 'uk':
120
+ $table['Ґ'] = 'G';
121
+ $table['ґ'] = 'g';
122
+ unset( $table['Ё'] );
123
+ unset( $table['ё'] );
124
+ $table['Є'] = 'YE';
125
+ $table['є'] = 'ye';
126
  $table['И'] = 'Y';
127
  $table['и'] = 'y';
128
+ $table['Ї'] = 'YI';
129
+ $table['ї'] = 'yi';
130
+ unset( $table['Ъ'] );
131
+ unset( $table['ъ'] );
132
+ unset( $table['Ы'] );
133
+ unset( $table['ы'] );
134
+ unset( $table['Э'] );
135
+ unset( $table['э'] );
136
+ unset( $table['Ѣ'] );
137
+ unset( $table['ѣ'] );
138
+ unset( $table['Ѳ'] );
139
+ unset( $table['ѳ'] );
140
+ unset( $table['Ѵ'] );
141
+ unset( $table['ѵ'] );
142
+ break;
143
+ // Bulgarian.
144
+ case 'bg_BG':
145
+ unset( $table['Ё'] );
146
+ unset( $table['ё'] );
147
+ $table['Щ'] = 'STH';
148
+ $table['щ'] = 'sth';
149
+ $table['Ъ'] = 'A';
150
+ $table['ъ'] = 'a';
151
+ unset( $table['Ы'] );
152
+ unset( $table['ы'] );
153
+ unset( $table['Э'] );
154
+ unset( $table['э'] );
155
+ $table['Ѫ'] = 'О';
156
+ $table['ѫ'] = 'о';
157
+ break;
158
+ // Macedonian.
159
+ case 'mk_MK':
160
+ $table['Ѓ'] = 'G';
161
+ $table['ѓ'] = 'g';
162
+ unset( $table['Ё'] );
163
+ unset( $table['ё'] );
164
+ $table['Ѕ'] = 'Z';
165
+ $table['ѕ'] = 'z';
166
+ unset( $table['Й'] );
167
+ unset( $table['й'] );
168
+ $table['Ј'] = 'J';
169
+ $table['ј'] = 'j';
170
+ unset( $table['I'] );
171
+ unset( $table['i'] );
172
+ $table['Ќ'] = 'K';
173
+ $table['ќ'] = 'k';
174
+ $table['Љ'] = 'L';
175
+ $table['љ'] = 'l';
176
+ $table['Њ'] = 'N';
177
+ $table['њ'] = 'n';
178
+ $table['Џ'] = 'DH';
179
+ $table['џ'] = 'dh';
180
+ unset( $table['Щ'] );
181
+ unset( $table['щ'] );
182
+ unset( $table['Ъ'] );
183
+ unset( $table['ъ'] );
184
+ unset( $table['Ы'] );
185
+ unset( $table['ы'] );
186
+ unset( $table['Ь'] );
187
+ unset( $table['ь'] );
188
+ unset( $table['Э'] );
189
+ unset( $table['э'] );
190
+ unset( $table['Ю'] );
191
+ unset( $table['ю'] );
192
+ unset( $table['Я'] );
193
+ unset( $table['я'] );
194
+ unset( $table['Ѣ'] );
195
+ unset( $table['ѣ'] );
196
+ unset( $table['Ѳ'] );
197
+ unset( $table['ѳ'] );
198
+ unset( $table['Ѵ'] );
199
+ unset( $table['ѵ'] );
200
  break;
201
+ // Georgian.
202
  case 'ka_GE':
203
  $table['ა'] = 'a';
204
  $table['ბ'] = 'b';
234
  $table['ჯ'] = 'j';
235
  $table['ჰ'] = 'h';
236
  break;
237
+ // Kazakh.
238
+ case 'kk':
239
+ $table['Ә'] = 'Ae';
240
+ $table['ә'] = 'ae';
241
+ $table['Ғ'] = 'Gh';
242
+ $table['ғ'] = 'gh';
243
+ unset( $table['Ё'] );
244
+ unset( $table['ё'] );
245
+ $table['Қ'] = 'Q';
246
+ $table['қ'] = 'q';
247
+ $table['Ң'] = 'Ng';
248
+ $table['ң'] = 'ng';
249
+ $table['Ө'] = 'Oe';
250
+ $table['ө'] = 'oe';
251
+ $table['У'] = 'W';
252
+ $table['у'] = 'w';
253
+ $table['Ұ'] = 'U';
254
+ $table['ұ'] = 'u';
255
+ $table['Ү'] = 'Ue';
256
+ $table['ү'] = 'ue';
257
+ $table['Һ'] = 'H';
258
+ $table['һ'] = 'h';
259
+ $table['Ц'] = 'C';
260
+ $table['ц'] = 'c';
261
+ unset( $table['Щ'] );
262
+ unset( $table['щ'] );
263
+ unset( $table['Ъ'] );
264
+ unset( $table['ъ'] );
265
+ unset( $table['Ь'] );
266
+ unset( $table['ь'] );
267
+ unset( $table['Э'] );
268
+ unset( $table['э'] );
269
+ unset( $table['Ю'] );
270
+ unset( $table['ю'] );
271
+ unset( $table['Я'] );
272
+ unset( $table['я'] );
273
+
274
+ // Kazakh 2018 latin.
275
+ $table['Á'] = 'A';
276
+ $table['á'] = 'a';
277
+ $table['Ǵ'] = 'G';
278
+ $table['ǵ'] = 'g';
279
+ $table['I'] = 'I';
280
+ $table['ı'] = 'i';
281
+ $table['Ń'] = 'N';
282
+ $table['ń'] = 'n';
283
+ $table['Ó'] = 'O';
284
+ $table['ó'] = 'o';
285
+ $table['Ú'] = 'O';
286
+ $table['ú'] = 'o';
287
+ $table['Ý'] = 'O';
288
+ $table['ý'] = 'o';
289
+ break;
290
  default:
291
  }
292
 
includes/class-cyr-to-lat-converter.php CHANGED
@@ -116,7 +116,7 @@ class Cyr_To_Lat_Converter {
116
  public function convert_existing_slugs() {
117
  global $wpdb;
118
 
119
- $regexp = '[^A-Za-z0-9[.hyphen.][.underscore.][.period.][.apostrophe.]]+';
120
 
121
  // phpcs:disable WordPress.DB.DirectDatabaseQuery
122
  $posts = $wpdb->get_results(
116
  public function convert_existing_slugs() {
117
  global $wpdb;
118
 
119
+ $regexp = Cyr_To_Lat_Main::PROHIBITED_CHARS_REGEX . '+';
120
 
121
  // phpcs:disable WordPress.DB.DirectDatabaseQuery
122
  $posts = $wpdb->get_results(
includes/class-cyr-to-lat-main.php CHANGED
@@ -10,6 +10,14 @@
10
  */
11
  class Cyr_To_Lat_Main {
12
 
 
 
 
 
 
 
 
 
13
  /**
14
  * Plugin settings.
15
  *
@@ -90,7 +98,7 @@ class Cyr_To_Lat_Main {
90
  // Locales list - https://make.wordpress.org/polyglots/teams/.
91
  $locale = get_locale();
92
  $iso9_table = $this->settings->get_option( $locale );
93
- $iso9_table = ! empty( $iso9_table ) ? $iso9_table : Cyr_To_Lat_Conversion_Tables::get( $locale );
94
 
95
  $is_term = false;
96
  // phpcs:disable WordPress.PHP.DevelopmentFunctions.error_log_debug_backtrace
@@ -116,7 +124,7 @@ class Cyr_To_Lat_Main {
116
  $title = iconv( 'UTF-8', 'UTF-8//TRANSLIT//IGNORE', $title );
117
  }
118
 
119
- $title = preg_replace( "/[^A-Za-z0-9'_\-\.]/", '-', $title );
120
  $title = preg_replace( '/\-+/', '-', $title );
121
  $title = trim( $title, '-' );
122
  }
10
  */
11
  class Cyr_To_Lat_Main {
12
 
13
+ /**
14
+ * Regex of prohibited chars in slugs
15
+ * [^A-Za-z0-9[.apostrophe.][.underscore.][.period.][.hyphen.]]+
16
+ *
17
+ * @link https://dev.mysql.com/doc/refman/5.6/en/regexp.html
18
+ */
19
+ const PROHIBITED_CHARS_REGEX = "[^A-Za-z0-9'_\.\-]";
20
+
21
  /**
22
  * Plugin settings.
23
  *
98
  // Locales list - https://make.wordpress.org/polyglots/teams/.
99
  $locale = get_locale();
100
  $iso9_table = $this->settings->get_option( $locale );
101
+ $iso9_table = ! empty( $iso9_table ) ? $iso9_table : $this->settings->get_option( 'iso9' );
102
 
103
  $is_term = false;
104
  // phpcs:disable WordPress.PHP.DevelopmentFunctions.error_log_debug_backtrace
124
  $title = iconv( 'UTF-8', 'UTF-8//TRANSLIT//IGNORE', $title );
125
  }
126
 
127
+ $title = preg_replace( '/' . self::PROHIBITED_CHARS_REGEX . '/', '-', $title );
128
  $title = preg_replace( '/\-+/', '-', $title );
129
  $title = trim( $title, '-' );
130
  }
includes/class-cyr-to-lat-settings.php CHANGED
@@ -137,6 +137,7 @@ class Cyr_To_Lat_Settings {
137
  'placeholder' => '',
138
  'helper' => '',
139
  'supplemental' => '',
 
140
  ),
141
  'iso9' => array(
142
  'label' => __( 'ISO9 Table', 'cyr2lat' ),
@@ -147,14 +148,14 @@ class Cyr_To_Lat_Settings {
147
  'supplemental' => '',
148
  'default' => Cyr_To_Lat_Conversion_Tables::get(),
149
  ),
150
- 'bg_BG' => array(
151
- 'label' => __( 'bg_BG Table', 'cyr2lat' ),
152
- 'section' => 'bg_BG_section',
153
  'type' => 'table',
154
  'placeholder' => '',
155
  'helper' => '',
156
  'supplemental' => '',
157
- 'default' => Cyr_To_Lat_Conversion_Tables::get( 'bg_BG' ),
158
  ),
159
  'uk' => array(
160
  'label' => __( 'uk Table', 'cyr2lat' ),
@@ -165,6 +166,24 @@ class Cyr_To_Lat_Settings {
165
  'supplemental' => '',
166
  'default' => Cyr_To_Lat_Conversion_Tables::get( 'uk' ),
167
  ),
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
168
  'ka_GE' => array(
169
  'label' => __( 'ka_GE Table', 'cyr2lat' ),
170
  'section' => 'ka_GE_section',
@@ -174,6 +193,15 @@ class Cyr_To_Lat_Settings {
174
  'supplemental' => '',
175
  'default' => Cyr_To_Lat_Conversion_Tables::get( 'ka_GE' ),
176
  ),
 
 
 
 
 
 
 
 
 
177
  );
178
  }
179
 
@@ -187,10 +215,13 @@ class Cyr_To_Lat_Settings {
187
  public function init_settings() {
188
  $this->settings = get_option( self::OPTION_NAME, null );
189
 
 
 
190
  // If there are no settings defined, use defaults.
191
  if ( ! is_array( $this->settings ) ) {
192
- $form_fields = $this->get_form_fields();
193
  $this->settings = array_merge( array_fill_keys( array_keys( $form_fields ), '' ), wp_list_pluck( $form_fields, 'default' ) );
 
 
194
  }
195
  }
196
 
@@ -308,8 +339,8 @@ class Cyr_To_Lat_Settings {
308
  self::PAGE
309
  );
310
  add_settings_section(
311
- 'bg_BG_section',
312
- __( 'bg_BG Table', 'cyr2lat' ),
313
  array( $this, 'cyr_to_lat_section' ),
314
  self::PAGE
315
  );
@@ -319,12 +350,30 @@ class Cyr_To_Lat_Settings {
319
  array( $this, 'cyr_to_lat_section' ),
320
  self::PAGE
321
  );
 
 
 
 
 
 
 
 
 
 
 
 
322
  add_settings_section(
323
  'ka_GE_section',
324
  __( 'ka_GE Table', 'cyr2lat' ),
325
  array( $this, 'cyr_to_lat_section' ),
326
  self::PAGE
327
  );
 
 
 
 
 
 
328
  }
329
 
330
  /**
137
  'placeholder' => '',
138
  'helper' => '',
139
  'supplemental' => '',
140
+ 'default' => 'no',
141
  ),
142
  'iso9' => array(
143
  'label' => __( 'ISO9 Table', 'cyr2lat' ),
148
  'supplemental' => '',
149
  'default' => Cyr_To_Lat_Conversion_Tables::get(),
150
  ),
151
+ 'bel' => array(
152
+ 'label' => __( 'bel Table', 'cyr2lat' ),
153
+ 'section' => 'bel_section',
154
  'type' => 'table',
155
  'placeholder' => '',
156
  'helper' => '',
157
  'supplemental' => '',
158
+ 'default' => Cyr_To_Lat_Conversion_Tables::get( 'bel' ),
159
  ),
160
  'uk' => array(
161
  'label' => __( 'uk Table', 'cyr2lat' ),
166
  'supplemental' => '',
167
  'default' => Cyr_To_Lat_Conversion_Tables::get( 'uk' ),
168
  ),
169
+ 'bg_BG' => array(
170
+ 'label' => __( 'bg_BG Table', 'cyr2lat' ),
171
+ 'section' => 'bg_BG_section',
172
+ 'type' => 'table',
173
+ 'placeholder' => '',
174
+ 'helper' => '',
175
+ 'supplemental' => '',
176
+ 'default' => Cyr_To_Lat_Conversion_Tables::get( 'bg_BG' ),
177
+ ),
178
+ 'mk_MK' => array(
179
+ 'label' => __( 'mk_MK Table', 'cyr2lat' ),
180
+ 'section' => 'mk_MK_section',
181
+ 'type' => 'table',
182
+ 'placeholder' => '',
183
+ 'helper' => '',
184
+ 'supplemental' => '',
185
+ 'default' => Cyr_To_Lat_Conversion_Tables::get( 'mk_MK' ),
186
+ ),
187
  'ka_GE' => array(
188
  'label' => __( 'ka_GE Table', 'cyr2lat' ),
189
  'section' => 'ka_GE_section',
193
  'supplemental' => '',
194
  'default' => Cyr_To_Lat_Conversion_Tables::get( 'ka_GE' ),
195
  ),
196
+ 'kk' => array(
197
+ 'label' => __( 'kk Table', 'cyr2lat' ),
198
+ 'section' => 'kk_section',
199
+ 'type' => 'table',
200
+ 'placeholder' => '',
201
+ 'helper' => '',
202
+ 'supplemental' => '',
203
+ 'default' => Cyr_To_Lat_Conversion_Tables::get( 'kk' ),
204
+ ),
205
  );
206
  }
207
 
215
  public function init_settings() {
216
  $this->settings = get_option( self::OPTION_NAME, null );
217
 
218
+ $form_fields = $this->get_form_fields();
219
+
220
  // If there are no settings defined, use defaults.
221
  if ( ! is_array( $this->settings ) ) {
 
222
  $this->settings = array_merge( array_fill_keys( array_keys( $form_fields ), '' ), wp_list_pluck( $form_fields, 'default' ) );
223
+ } else {
224
+ $this->settings = array_merge( wp_list_pluck( $form_fields, 'default' ), $this->settings );
225
  }
226
  }
227
 
339
  self::PAGE
340
  );
341
  add_settings_section(
342
+ 'bel_section',
343
+ __( 'bel Table', 'cyr2lat' ),
344
  array( $this, 'cyr_to_lat_section' ),
345
  self::PAGE
346
  );
350
  array( $this, 'cyr_to_lat_section' ),
351
  self::PAGE
352
  );
353
+ add_settings_section(
354
+ 'bg_BG_section',
355
+ __( 'bg_BG Table', 'cyr2lat' ),
356
+ array( $this, 'cyr_to_lat_section' ),
357
+ self::PAGE
358
+ );
359
+ add_settings_section(
360
+ 'mk_MK_section',
361
+ __( 'mk_MK Table', 'cyr2lat' ),
362
+ array( $this, 'cyr_to_lat_section' ),
363
+ self::PAGE
364
+ );
365
  add_settings_section(
366
  'ka_GE_section',
367
  __( 'ka_GE Table', 'cyr2lat' ),
368
  array( $this, 'cyr_to_lat_section' ),
369
  self::PAGE
370
  );
371
+ add_settings_section(
372
+ 'kk_section',
373
+ __( 'kk Table', 'cyr2lat' ),
374
+ array( $this, 'cyr_to_lat_section' ),
375
+ self::PAGE
376
+ );
377
  }
378
 
379
  /**
languages/cyr-to-lat-ru_RU.mo ADDED
Binary file
languages/cyr-to-lat-ru_RU.po ADDED
@@ -0,0 +1,85 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ msgid ""
2
+ msgstr ""
3
+ "Project-Id-Version: Cyr To Lat\n"
4
+ "POT-Creation-Date: 2019-01-28 17:51+0200\n"
5
+ "PO-Revision-Date: 2019-01-28 17:51+0200\n"
6
+ "Last-Translator: KAGG Design <info@kagg.eu>\n"
7
+ "Language-Team: KAGG Design\n"
8
+ "Language: ru_RU\n"
9
+ "MIME-Version: 1.0\n"
10
+ "Content-Type: text/plain; charset=UTF-8\n"
11
+ "Content-Transfer-Encoding: 8bit\n"
12
+ "X-Generator: Poedit 2.2.1\n"
13
+ "X-Poedit-Basepath: ..\n"
14
+ "Plural-Forms: nplurals=3; plural=(n%10==1 && n%100!=11 ? 0 : n%10>=2 && n"
15
+ "%10<=4 && (n%100<12 || n%100>14) ? 1 : 2);\n"
16
+ "X-Poedit-KeywordsList: __;esc_html__;esc_attr__\n"
17
+ "X-Poedit-Flags-xgettext: --add-comments\n"
18
+ "X-Poedit-SearchPath-0: .\n"
19
+ "X-Poedit-SearchPath-1: src\n"
20
+ "X-Poedit-SearchPathExcluded-0: vendor\n"
21
+ "X-Poedit-SearchPathExcluded-1: dist\n"
22
+ "X-Poedit-SearchPathExcluded-2: src\n"
23
+
24
+ #: includes/class-cyr-to-lat-settings.php:113
25
+ msgid "View Cyr To Lat settings"
26
+ msgstr "Посмотреть настройки Cyr To Lat"
27
+
28
+ #: includes/class-cyr-to-lat-settings.php:114
29
+ msgid "Settings"
30
+ msgstr "Настройки"
31
+
32
+ #: includes/class-cyr-to-lat-settings.php:126
33
+ msgid "Convert Existing Slugs"
34
+ msgstr "Конвертировать существующие слаги"
35
+
36
+ #: includes/class-cyr-to-lat-settings.php:134
37
+ #: includes/class-cyr-to-lat-settings.php:300
38
+ msgid "ISO9 Table"
39
+ msgstr "Таблица ISO9"
40
+
41
+ #: includes/class-cyr-to-lat-settings.php:143
42
+ #: includes/class-cyr-to-lat-settings.php:306
43
+ msgid "bg_BG Table"
44
+ msgstr "Таблица bg_BG"
45
+
46
+ #: includes/class-cyr-to-lat-settings.php:152
47
+ #: includes/class-cyr-to-lat-settings.php:312
48
+ msgid "uk Table"
49
+ msgstr "Таблица uk"
50
+
51
+ #: includes/class-cyr-to-lat-settings.php:161
52
+ #: includes/class-cyr-to-lat-settings.php:318
53
+ msgid "ka_GE Table"
54
+ msgstr "Таблица ka_GE"
55
+
56
+ #: includes/class-cyr-to-lat-settings.php:221
57
+ #: includes/class-cyr-to-lat-settings.php:222
58
+ msgid "Cyr To Lat"
59
+ msgstr "Cyr To Lat"
60
+
61
+ #. Admin panel title.
62
+ #: includes/class-cyr-to-lat-settings.php:244
63
+ msgid "Cyr To Lat Plugin Options"
64
+ msgstr "Опции плагина Cyr To Lat"
65
+
66
+ #: includes/class-cyr-to-lat-settings.php:258
67
+ msgid "Donate"
68
+ msgstr "Пожертвовать"
69
+
70
+ #: includes/class-cyr-to-lat-settings.php:261
71
+ msgid "Would you like to support the advancement of this plugin?"
72
+ msgstr "Хотите поддержать развитие этого плагина?"
73
+
74
+ #. @todo Change to Sergey's account
75
+ #: includes/class-cyr-to-lat-settings.php:276
76
+ msgid "Your appreciation"
77
+ msgstr "Ваша оценка"
78
+
79
+ #: includes/class-cyr-to-lat-settings.php:281
80
+ msgid "Leave a ★★★★★ plugin review on WordPress.org"
81
+ msgstr "Оставьте ★★★★★ обзор плагина на WordPress.org"
82
+
83
+ #: includes/class-cyr-to-lat-settings.php:294
84
+ msgid "General Options"
85
+ msgstr "Общие настройки"
languages/cyr2lat-ru_RU.mo CHANGED
Binary file
languages/cyr2lat-ru_RU.po CHANGED
@@ -1,8 +1,8 @@
1
  msgid ""
2
  msgstr ""
3
  "Project-Id-Version: Cyr To Lat\n"
4
- "POT-Creation-Date: 2019-01-31 19:21+0200\n"
5
- "PO-Revision-Date: 2019-01-31 19:21+0200\n"
6
  "Last-Translator: KAGG Design <info@kagg.eu>\n"
7
  "Language-Team: KAGG Design\n"
8
  "Language: ru_RU\n"
@@ -21,64 +21,79 @@ msgstr ""
21
  "X-Poedit-SearchPathExcluded-1: dist\n"
22
  "X-Poedit-SearchPathExcluded-2: src\n"
23
 
24
- #: includes/class-cyr-to-lat-settings.php:114
25
  msgid "View Cyr To Lat settings"
26
  msgstr "Посмотреть настройки Cyr To Lat"
27
 
28
- #: includes/class-cyr-to-lat-settings.php:115
29
  msgid "Settings"
30
  msgstr "Настройки"
31
 
32
- #: includes/class-cyr-to-lat-settings.php:127
33
  msgid "Convert Existing Slugs"
34
  msgstr "Конвертировать существующие слаги"
35
 
36
- #: includes/class-cyr-to-lat-settings.php:135
37
- #: includes/class-cyr-to-lat-settings.php:302
38
  msgid "ISO9 Table"
39
  msgstr "Таблица ISO9"
40
 
41
- #: includes/class-cyr-to-lat-settings.php:144
42
- #: includes/class-cyr-to-lat-settings.php:308
43
- msgid "bg_BG Table"
44
- msgstr "Таблица bg_BG"
45
 
46
- #: includes/class-cyr-to-lat-settings.php:153
47
- #: includes/class-cyr-to-lat-settings.php:314
48
  msgid "uk Table"
49
  msgstr "Таблица uk"
50
 
51
- #: includes/class-cyr-to-lat-settings.php:162
52
- #: includes/class-cyr-to-lat-settings.php:320
 
 
 
 
 
 
 
 
 
 
53
  msgid "ka_GE Table"
54
  msgstr "Таблица ka_GE"
55
 
56
- #: includes/class-cyr-to-lat-settings.php:222
57
- #: includes/class-cyr-to-lat-settings.php:223
 
 
 
 
 
58
  msgid "Cyr To Lat"
59
  msgstr "Cyr To Lat"
60
 
61
  #. Admin panel title.
62
- #: includes/class-cyr-to-lat-settings.php:247
63
  msgid "Cyr To Lat Plugin Options"
64
  msgstr "Опции плагина Cyr To Lat"
65
 
66
- #: includes/class-cyr-to-lat-settings.php:261
67
  msgid "Donate"
68
  msgstr "Пожертвовать"
69
 
70
- #: includes/class-cyr-to-lat-settings.php:264
71
  msgid "Would you like to support the advancement of this plugin?"
72
  msgstr "Хотите поддержать развитие этого плагина?"
73
 
74
- #: includes/class-cyr-to-lat-settings.php:278
75
  msgid "Your appreciation"
76
  msgstr "Ваша оценка"
77
 
78
- #: includes/class-cyr-to-lat-settings.php:283
79
  msgid "Leave a ★★★★★ plugin review on WordPress.org"
80
  msgstr "Оставьте ★★★★★ обзор плагина на WordPress.org"
81
 
82
- #: includes/class-cyr-to-lat-settings.php:296
83
  msgid "General Options"
84
  msgstr "Общие настройки"
1
  msgid ""
2
  msgstr ""
3
  "Project-Id-Version: Cyr To Lat\n"
4
+ "POT-Creation-Date: 2019-04-12 15:35+0300\n"
5
+ "PO-Revision-Date: 2019-04-12 15:37+0300\n"
6
  "Last-Translator: KAGG Design <info@kagg.eu>\n"
7
  "Language-Team: KAGG Design\n"
8
  "Language: ru_RU\n"
21
  "X-Poedit-SearchPathExcluded-1: dist\n"
22
  "X-Poedit-SearchPathExcluded-2: src\n"
23
 
24
+ #: includes/class-cyr-to-lat-settings.php:121
25
  msgid "View Cyr To Lat settings"
26
  msgstr "Посмотреть настройки Cyr To Lat"
27
 
28
+ #: includes/class-cyr-to-lat-settings.php:122
29
  msgid "Settings"
30
  msgstr "Настройки"
31
 
32
+ #: includes/class-cyr-to-lat-settings.php:134
33
  msgid "Convert Existing Slugs"
34
  msgstr "Конвертировать существующие слаги"
35
 
36
+ #: includes/class-cyr-to-lat-settings.php:143
37
+ #: includes/class-cyr-to-lat-settings.php:337
38
  msgid "ISO9 Table"
39
  msgstr "Таблица ISO9"
40
 
41
+ #: includes/class-cyr-to-lat-settings.php:152
42
+ #: includes/class-cyr-to-lat-settings.php:343
43
+ msgid "bel Table"
44
+ msgstr "Таблица bel"
45
 
46
+ #: includes/class-cyr-to-lat-settings.php:161
47
+ #: includes/class-cyr-to-lat-settings.php:349
48
  msgid "uk Table"
49
  msgstr "Таблица uk"
50
 
51
+ #: includes/class-cyr-to-lat-settings.php:170
52
+ #: includes/class-cyr-to-lat-settings.php:355
53
+ msgid "bg_BG Table"
54
+ msgstr "Таблица bg_BG"
55
+
56
+ #: includes/class-cyr-to-lat-settings.php:179
57
+ #: includes/class-cyr-to-lat-settings.php:361
58
+ msgid "mk_MK Table"
59
+ msgstr "Таблица mk_MK"
60
+
61
+ #: includes/class-cyr-to-lat-settings.php:188
62
+ #: includes/class-cyr-to-lat-settings.php:367
63
  msgid "ka_GE Table"
64
  msgstr "Таблица ka_GE"
65
 
66
+ #: includes/class-cyr-to-lat-settings.php:197
67
+ #: includes/class-cyr-to-lat-settings.php:373
68
+ msgid "kk Table"
69
+ msgstr "Таблица kk"
70
+
71
+ #: includes/class-cyr-to-lat-settings.php:261
72
+ #: includes/class-cyr-to-lat-settings.php:262
73
  msgid "Cyr To Lat"
74
  msgstr "Cyr To Lat"
75
 
76
  #. Admin panel title.
77
+ #: includes/class-cyr-to-lat-settings.php:282
78
  msgid "Cyr To Lat Plugin Options"
79
  msgstr "Опции плагина Cyr To Lat"
80
 
81
+ #: includes/class-cyr-to-lat-settings.php:296
82
  msgid "Donate"
83
  msgstr "Пожертвовать"
84
 
85
+ #: includes/class-cyr-to-lat-settings.php:299
86
  msgid "Would you like to support the advancement of this plugin?"
87
  msgstr "Хотите поддержать развитие этого плагина?"
88
 
89
+ #: includes/class-cyr-to-lat-settings.php:313
90
  msgid "Your appreciation"
91
  msgstr "Ваша оценка"
92
 
93
+ #: includes/class-cyr-to-lat-settings.php:318
94
  msgid "Leave a ★★★★★ plugin review on WordPress.org"
95
  msgstr "Оставьте ★★★★★ обзор плагина на WordPress.org"
96
 
97
+ #: includes/class-cyr-to-lat-settings.php:331
98
  msgid "General Options"
99
  msgstr "Общие настройки"
readme.txt CHANGED
@@ -1,9 +1,9 @@
1
  === Cyr-To-Lat ===
2
  Contributors: SergeyBiryukov, mihdan, karevn, webvitaly, kaggdesign
3
- Tags: cyrillic, georgian, latin, l10n, russian, rustolat, slugs, translations, transliteration
4
  Requires at least: 2.3
5
  Tested up to: 5.1
6
- Stable tag: 3.6.5
7
  Requires PHP: 5.2
8
 
9
  Converts Cyrillic characters in post, page and term slugs to Latin characters.
@@ -16,11 +16,13 @@ Converts Cyrillic characters in post, page and term slugs to Latin characters. U
16
  * Automatically converts existing post, page and term slugs on activation
17
  * Saves existing post and page permalinks integrity
18
  * Performs transliteration of attachment file names
19
- * Includes Russian, Belarusian, Ukrainian, Bulgarian and Georgian 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
  == Installation ==
25
 
26
  1. Upload `cyr2lat` folder to the `/wp-content/plugins/` directory.
@@ -42,10 +44,18 @@ add_filter('ctl_table', 'my_cyr_to_lat_table');
42
 
43
  = Can I contribute? =
44
 
45
- Yes you can! Join in on our [GitHub repository](https://github.com/mihdan/cyr2lat)
 
 
 
46
 
47
  == Changelog ==
48
 
 
 
 
 
 
49
  = 3.6.5 (11.02.2019) =
50
  * Added queues for background slug conversion process
51
 
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.1
6
+ Stable tag: 3.7
7
  Requires PHP: 5.2
8
 
9
  Converts Cyrillic characters in post, page and term slugs to Latin characters.
16
  * Automatically converts existing post, page and term slugs on activation
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.
44
 
45
  = Can I contribute? =
46
 
47
+ Yes you can!
48
+
49
+ * Join in on our [GitHub repository](https://github.com/mihdan/cyr2lat)
50
+ * Join in on our [Telegram Channel](https://t.me/cyr2lat)
51
 
52
  == Changelog ==
53
 
54
+ = 3.7 (12.04.2019) =
55
+ * Added Belorussian, Macedonian, Kazakh tables
56
+ * Fixed bug with MariaDB during old slug conversion
57
+ * Fixed not saving of user modifications in default iso9 table
58
+
59
  = 3.6.5 (11.02.2019) =
60
  * Added queues for background slug conversion process
61
 
vendor/autoload_52.php CHANGED
@@ -4,4 +4,4 @@
4
 
5
  require_once dirname(__FILE__) . '/composer'.'/autoload_real_52.php';
6
 
7
- return ComposerAutoloaderInit786610186433dbfeb9e2e79b41d77986::getLoader();
4
 
5
  require_once dirname(__FILE__) . '/composer'.'/autoload_real_52.php';
6
 
7
+ return ComposerAutoloaderInit45d109b755504f763d934370e259f554::getLoader();
vendor/composer/ClassLoader.php CHANGED
@@ -279,7 +279,7 @@ class ClassLoader
279
  */
280
  public function setApcuPrefix($apcuPrefix)
281
  {
282
- $this->apcuPrefix = function_exists('apcu_fetch') && ini_get('apc.enabled') ? $apcuPrefix : null;
283
  }
284
 
285
  /**
279
  */
280
  public function setApcuPrefix($apcuPrefix)
281
  {
282
+ $this->apcuPrefix = function_exists('apcu_fetch') && filter_var(ini_get('apc.enabled'), FILTER_VALIDATE_BOOLEAN) ? $apcuPrefix : null;
283
  }
284
 
285
  /**
vendor/composer/LICENSE CHANGED
@@ -1,4 +1,4 @@
1
- Format: http://www.debian.org/doc/packaging-manuals/copyright-format/1.0/
2
  Upstream-Name: Composer
3
  Upstream-Contact: Jordi Boggiano <j.boggiano@seld.be>
4
  Source: https://github.com/composer/composer
1
+ Format: https://www.debian.org/doc/packaging-manuals/copyright-format/1.0/
2
  Upstream-Name: Composer
3
  Upstream-Contact: Jordi Boggiano <j.boggiano@seld.be>
4
  Source: https://github.com/composer/composer
vendor/composer/autoload_real_52.php CHANGED
@@ -2,7 +2,7 @@
2
 
3
  // autoload_real_52.php generated by xrstf/composer-php52
4
 
5
- class ComposerAutoloaderInit786610186433dbfeb9e2e79b41d77986 {
6
  private static $loader;
7
 
8
  public static function loadClassLoader($class) {
@@ -19,9 +19,9 @@ class ComposerAutoloaderInit786610186433dbfeb9e2e79b41d77986 {
19
  return self::$loader;
20
  }
21
 
22
- spl_autoload_register(array('ComposerAutoloaderInit786610186433dbfeb9e2e79b41d77986', 'loadClassLoader'), true /*, true */);
23
  self::$loader = $loader = new xrstf_Composer52_ClassLoader();
24
- spl_autoload_unregister(array('ComposerAutoloaderInit786610186433dbfeb9e2e79b41d77986', 'loadClassLoader'));
25
 
26
  $vendorDir = dirname(dirname(__FILE__));
27
  $baseDir = dirname($vendorDir);
2
 
3
  // autoload_real_52.php generated by xrstf/composer-php52
4
 
5
+ class ComposerAutoloaderInit45d109b755504f763d934370e259f554 {
6
  private static $loader;
7
 
8
  public static function loadClassLoader($class) {
19
  return self::$loader;
20
  }
21
 
22
+ spl_autoload_register(array('ComposerAutoloaderInit45d109b755504f763d934370e259f554', 'loadClassLoader'), true /*, true */);
23
  self::$loader = $loader = new xrstf_Composer52_ClassLoader();
24
+ spl_autoload_unregister(array('ComposerAutoloaderInit45d109b755504f763d934370e259f554', 'loadClassLoader'));
25
 
26
  $vendorDir = dirname(dirname(__FILE__));
27
  $baseDir = dirname($vendorDir);