Cyr-To-Lat - Version 5.0.3

Version Description

(03.04.2021) = * Add filter 'ctl_locale' * Fix translation of tabs on settings pages * Fix registered post types in conversion settings

Download this release

Release Info

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

Code changes from version 5.0.2 to 5.0.3

cyr-to-lat.php CHANGED
@@ -10,7 +10,7 @@
10
  * Plugin Name: Cyr-To-Lat
11
  * Plugin URI: https://wordpress.org/plugins/cyr2lat/
12
  * Description: Convert Non-Latin characters in post and term slugs to Latin characters. Useful for creating human-readable URLs. Based on the original plugin by Anton Skorobogatov.
13
- * Version: 5.0.2
14
  * Requires at least: 5.1
15
  * Requires PHP: 5.6.20
16
  * Author: Sergey Biryukov, Mikhail Kobzarev, Igor Gergel
@@ -36,7 +36,7 @@ if ( defined( 'CYR_TO_LAT_VERSION' ) ) {
36
  /**
37
  * Plugin version.
38
  */
39
- define( 'CYR_TO_LAT_VERSION', '5.0.2' );
40
 
41
  /**
42
  * Path to the plugin dir.
10
  * Plugin Name: Cyr-To-Lat
11
  * Plugin URI: https://wordpress.org/plugins/cyr2lat/
12
  * Description: Convert Non-Latin characters in post and term slugs to Latin characters. Useful for creating human-readable URLs. Based on the original plugin by Anton Skorobogatov.
13
+ * Version: 5.0.3
14
  * Requires at least: 5.1
15
  * Requires PHP: 5.6.20
16
  * Author: Sergey Biryukov, Mikhail Kobzarev, Igor Gergel
36
  /**
37
  * Plugin version.
38
  */
39
+ define( 'CYR_TO_LAT_VERSION', '5.0.3' );
40
 
41
  /**
42
  * Path to the plugin dir.
readme.txt CHANGED
@@ -3,7 +3,7 @@ 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.7
6
- Stable tag: 5.0.2
7
  Requires PHP: 5.6.20
8
 
9
  Convert Non-Latin characters in post, page and term slugs to Latin characters.
@@ -30,6 +30,7 @@ Based on the original Rus-To-Lat plugin by Anton Skorobogatov.
30
  1. Tables settings page
31
  2. Converter settings page
32
  3. Block editor with transliterated slug
 
33
 
34
  == Plugin Support ==
35
 
@@ -71,22 +72,21 @@ For instance, if your non-standard locale is uk_UA, you can redefine it to `uk`
71
 
72
  `
73
  /**
74
- * Use conversion table for non-standard locale.
75
- *
76
- * @param array $table Conversion table.
77
- *
78
- * @return array
79
- */
80
- function my_ctl_table( $table ) {
81
- if ( 'uk_UA' === get_locale() ) {
82
- $settings = new Cyr_To_Lat_Settings();
83
- $table = $settings->get_option( 'uk' );
84
  }
85
 
86
- return $table;
87
  }
88
 
89
- add_filter( 'ctl_table', 'my_ctl_table' );
90
  `
91
 
92
  = How can I define own transliteration of titles? =
@@ -183,6 +183,11 @@ Yes you can!
183
 
184
  == Changelog ==
185
 
 
 
 
 
 
186
  = 5.0.2 (27.03.2021) =
187
  * Fix bug creating tag with the same slug as category
188
 
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.7
6
+ Stable tag: 5.0.3
7
  Requires PHP: 5.6.20
8
 
9
  Convert Non-Latin characters in post, page and term slugs to Latin characters.
30
  1. Tables settings page
31
  2. Converter settings page
32
  3. Block editor with transliterated slug
33
+ 4. WPML Certificate
34
 
35
  == Plugin Support ==
36
 
72
 
73
  `
74
  /**
75
+ * Use non-standard locale.
76
+ *
77
+ * @param string $locale Current locale.
78
+ *
79
+ * @return string
80
+ */
81
+ function my_ctl_locale( $locale ) {
82
+ if ( 'uk_UA' === $locale ) {
83
+ return 'uk';
 
84
  }
85
 
86
+ return $locale;
87
  }
88
 
89
+ add_filter( 'ctl_locale', 'my_ctl_locale' );
90
  `
91
 
92
  = How can I define own transliteration of titles? =
183
 
184
  == Changelog ==
185
 
186
+ = 5.0.3 (03.04.2021) =
187
+ * Add filter 'ctl_locale'
188
+ * Fix translation of tabs on settings pages
189
+ * Fix registered post types in conversion settings
190
+
191
  = 5.0.2 (27.03.2021) =
192
  * Fix bug creating tag with the same slug as category
193
 
src/php/Settings/Abstracts/SettingsBase.php CHANGED
@@ -164,11 +164,11 @@ abstract class SettingsBase {
164
  $this->tabs = $tabs;
165
 
166
  if ( ! $this->is_tab() ) {
167
- add_action( 'current_screen', [ $this, 'setup_tabs_section' ] );
168
  }
169
 
170
  if ( $this->is_tab_active( $this ) ) {
171
- add_action( 'plugins_loaded', [ $this, 'init' ] );
172
  }
173
  }
174
 
@@ -176,7 +176,6 @@ abstract class SettingsBase {
176
  * Init class.
177
  */
178
  public function init() {
179
- $this->load_plugin_textdomain();
180
  $this->init_form_fields();
181
  $this->init_settings();
182
  $this->init_hooks();
@@ -186,6 +185,8 @@ abstract class SettingsBase {
186
  * Init class hooks.
187
  */
188
  protected function init_hooks() {
 
 
189
  add_filter(
190
  'plugin_action_links_' . $this->plugin_basename(),
191
  [ $this, 'add_settings_link' ],
@@ -215,6 +216,7 @@ abstract class SettingsBase {
215
  * Is this the main menu page.
216
  *
217
  * @return bool
 
218
  */
219
  protected function is_main_menu_page() {
220
  // Main menu page should have empty string as parent slug.
@@ -432,7 +434,7 @@ abstract class SettingsBase {
432
 
433
  ?>
434
  <a class="ctl-settings-tab<?php echo esc_attr( $active ); ?>" href="<?php echo esc_url( $url ); ?>">
435
- <?php echo esc_html( $tab->tab_name() ); ?>
436
  </a>
437
  <?php
438
  }
@@ -566,6 +568,7 @@ abstract class SettingsBase {
566
  * @param array $arguments Field arguments.
567
  *
568
  * @noinspection PhpUnusedPrivateMethodInspection
 
569
  */
570
  private function print_check_box_field( array $arguments ) {
571
  $value = (array) $this->get( $arguments['field_id'] );
@@ -625,6 +628,7 @@ abstract class SettingsBase {
625
  * @param array $arguments Field arguments.
626
  *
627
  * @noinspection PhpUnusedPrivateMethodInspection
 
628
  */
629
  private function print_radio_field( array $arguments ) {
630
  $value = $this->get( $arguments['field_id'] );
@@ -680,6 +684,7 @@ abstract class SettingsBase {
680
  * @param array $arguments Field arguments.
681
  *
682
  * @noinspection PhpUnusedPrivateMethodInspection
 
683
  */
684
  private function print_select_field( array $arguments ) {
685
  $value = $this->get( $arguments['field_id'] );
@@ -720,6 +725,7 @@ abstract class SettingsBase {
720
  * @param array $arguments Field arguments.
721
  *
722
  * @noinspection PhpUnusedPrivateMethodInspection
 
723
  */
724
  private function print_multiple_select_field( array $arguments ) {
725
  $value = $this->get( $arguments['field_id'] );
164
  $this->tabs = $tabs;
165
 
166
  if ( ! $this->is_tab() ) {
167
+ add_action( 'current_screen', [ $this, 'setup_tabs_section' ], 9 );
168
  }
169
 
170
  if ( $this->is_tab_active( $this ) ) {
171
+ $this->init();
172
  }
173
  }
174
 
176
  * Init class.
177
  */
178
  public function init() {
 
179
  $this->init_form_fields();
180
  $this->init_settings();
181
  $this->init_hooks();
185
  * Init class hooks.
186
  */
187
  protected function init_hooks() {
188
+ add_action( 'plugins_loaded', [ $this, 'load_plugin_textdomain' ] );
189
+
190
  add_filter(
191
  'plugin_action_links_' . $this->plugin_basename(),
192
  [ $this, 'add_settings_link' ],
216
  * Is this the main menu page.
217
  *
218
  * @return bool
219
+ * @noinspection PhpPureAttributeCanBeAddedInspection
220
  */
221
  protected function is_main_menu_page() {
222
  // Main menu page should have empty string as parent slug.
434
 
435
  ?>
436
  <a class="ctl-settings-tab<?php echo esc_attr( $active ); ?>" href="<?php echo esc_url( $url ); ?>">
437
+ <?php echo esc_html( $tab->page_title() ); ?>
438
  </a>
439
  <?php
440
  }
568
  * @param array $arguments Field arguments.
569
  *
570
  * @noinspection PhpUnusedPrivateMethodInspection
571
+ * @noinspection HtmlUnknownAttribute
572
  */
573
  private function print_check_box_field( array $arguments ) {
574
  $value = (array) $this->get( $arguments['field_id'] );
628
  * @param array $arguments Field arguments.
629
  *
630
  * @noinspection PhpUnusedPrivateMethodInspection
631
+ * @noinspection HtmlUnknownAttribute
632
  */
633
  private function print_radio_field( array $arguments ) {
634
  $value = $this->get( $arguments['field_id'] );
684
  * @param array $arguments Field arguments.
685
  *
686
  * @noinspection PhpUnusedPrivateMethodInspection
687
+ * @noinspection HtmlUnknownAttribute
688
  */
689
  private function print_select_field( array $arguments ) {
690
  $value = $this->get( $arguments['field_id'] );
725
  * @param array $arguments Field arguments.
726
  *
727
  * @noinspection PhpUnusedPrivateMethodInspection
728
+ * @noinspection HtmlUnknownAttribute
729
  */
730
  private function print_multiple_select_field( array $arguments ) {
731
  $value = $this->get( $arguments['field_id'] );
src/php/Settings/Converter.php CHANGED
@@ -97,13 +97,46 @@ class Converter extends PluginSettingsBase {
97
  }
98
 
99
  /**
100
- * Init form fields.
 
 
 
 
 
 
 
 
 
 
101
  */
102
  public function init_form_fields() {
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
103
  $default_post_types = [ 'post', 'page', 'nav_menu_item' ];
104
- $post_types = get_post_types( [ 'public' => true ] );
105
 
106
- $post_types += [ 'nav_menu_item' => 'nav_menu_item' ];
107
 
108
  $filtered_post_types = apply_filters( 'ctl_post_types', $post_types );
109
 
@@ -151,12 +184,13 @@ class Converter extends PluginSettingsBase {
151
  }
152
 
153
  /**
154
- * Init class hooks.
 
155
  */
156
- protected function init_hooks() {
157
- parent::init_hooks();
158
 
159
- add_action( 'in_admin_header', [ $this, 'in_admin_header' ] );
160
  }
161
 
162
  /**
97
  }
98
 
99
  /**
100
+ * Init class hooks.
101
+ */
102
+ protected function init_hooks() {
103
+ parent::init_hooks();
104
+
105
+ add_action( 'in_admin_header', [ $this, 'in_admin_header' ] );
106
+ add_action( 'init', [ $this, 'delayed_init_settings' ], PHP_INT_MAX );
107
+ }
108
+
109
+ /**
110
+ * Empty method. Do stuff in the delayed_init_form_fields.
111
  */
112
  public function init_form_fields() {
113
+ $this->form_fields = [];
114
+ }
115
+
116
+ /**
117
+ * Empty method. Do stuff in the delayed_init_settings.
118
+ */
119
+ public function init_settings() {
120
+ }
121
+
122
+ /**
123
+ * Get convertible post types.
124
+ *
125
+ * @return array
126
+ */
127
+ public static function get_convertible_post_types() {
128
+ $post_types = get_post_types( [ 'public' => true ] );
129
+
130
+ return array_merge( $post_types, [ 'nav_menu_item' => 'nav_menu_item' ] );
131
+ }
132
+
133
+ /**
134
+ * Init form fields.
135
+ */
136
+ public function delayed_init_form_fields() {
137
  $default_post_types = [ 'post', 'page', 'nav_menu_item' ];
 
138
 
139
+ $post_types = self::get_convertible_post_types();
140
 
141
  $filtered_post_types = apply_filters( 'ctl_post_types', $post_types );
142
 
184
  }
185
 
186
  /**
187
+ * Init form fields and settings late, on 'init' hook with PHP_INT_MAX priority,
188
+ * to allow all plugins to register post types.
189
  */
190
+ public function delayed_init_settings() {
191
+ $this->delayed_init_form_fields();
192
 
193
+ parent::init_settings();
194
  }
195
 
196
  /**
src/php/Settings/PluginSettingsBase.php CHANGED
@@ -29,6 +29,8 @@ abstract class PluginSettingsBase extends SettingsBase {
29
  * Get plugin url.
30
  *
31
  * @return string
 
 
32
  */
33
  protected function plugin_url() {
34
  return constant( 'CYR_TO_LAT_URL' );
@@ -38,6 +40,8 @@ abstract class PluginSettingsBase extends SettingsBase {
38
  * Get plugin version.
39
  *
40
  * @return string
 
 
41
  */
42
  protected function plugin_version() {
43
  return constant( 'CYR_TO_LAT_VERSION' );
29
  * Get plugin url.
30
  *
31
  * @return string
32
+ *
33
+ * @noinspection PhpPureAttributeCanBeAddedInspection
34
  */
35
  protected function plugin_url() {
36
  return constant( 'CYR_TO_LAT_URL' );
40
  * Get plugin version.
41
  *
42
  * @return string
43
+ *
44
+ * @noinspection PhpPureAttributeCanBeAddedInspection
45
  */
46
  protected function plugin_version() {
47
  return constant( 'CYR_TO_LAT_VERSION' );
src/php/Settings/Settings.php CHANGED
@@ -118,7 +118,7 @@ class Settings implements SettingsInterface {
118
  */
119
  public function get_table() {
120
  // List of locales: https://make.wordpress.org/polyglots/teams/.
121
- $locale = get_locale();
122
  $table = $this->get( $locale );
123
  if ( empty( $table ) ) {
124
  $table = $this->get( 'iso9' );
118
  */
119
  public function get_table() {
120
  // List of locales: https://make.wordpress.org/polyglots/teams/.
121
+ $locale = (string) apply_filters( 'ctl_locale', get_locale() );
122
  $table = $this->get( $locale );
123
  if ( empty( $table ) ) {
124
  $table = $this->get( 'iso9' );
src/php/class-conversion-tables.php CHANGED
@@ -1202,6 +1202,7 @@ class Conversion_Tables {
1202
  * On MacOS, files containing characters in the table, are sometimes encoded improperly.
1203
  *
1204
  * @return array
 
1205
  */
1206
  public static function get_fix_table_for_mac() {
1207
  /**
1202
  * On MacOS, files containing characters in the table, are sometimes encoded improperly.
1203
  *
1204
  * @return array
1205
+ * @noinspection PhpArrayShapeAttributeCanBeAddedInspection
1206
  */
1207
  public static function get_fix_table_for_mac() {
1208
  /**
src/php/class-converter.php CHANGED
@@ -177,7 +177,10 @@ class Converter {
177
  protected function convert_existing_post_slugs( $args = [] ) {
178
  global $wpdb;
179
 
180
- $post_types = $this->settings->get( 'background_post_types' );
 
 
 
181
  $post_statuses = $this->settings->get( 'background_post_statuses' );
182
 
183
  $defaults = [
177
  protected function convert_existing_post_slugs( $args = [] ) {
178
  global $wpdb;
179
 
180
+ $post_types = array_intersect(
181
+ \Cyr_To_Lat\Settings\Converter::get_convertible_post_types(),
182
+ $this->settings->get( 'background_post_types' )
183
+ );
184
  $post_statuses = $this->settings->get( 'background_post_statuses' );
185
 
186
  $defaults = [
src/php/class-main.php CHANGED
@@ -5,6 +5,10 @@
5
  * @package cyr-to-lat
6
  */
7
 
 
 
 
 
8
  namespace Cyr_To_Lat;
9
 
10
  use WP_Error;
@@ -121,6 +125,7 @@ class Main {
121
  * Init class.
122
  *
123
  * @noinspection PhpUndefinedClassInspection
 
124
  */
125
  public function init() {
126
  if ( defined( 'WP_CLI' ) && constant( 'WP_CLI' ) ) {
@@ -131,7 +136,7 @@ class Main {
131
  * @noinspection PhpParamsInspection
132
  */
133
  \WP_CLI::add_command( 'cyr2lat', $this->cli );
134
- } catch ( Exception $e ) {
135
  return;
136
  }
137
  }
5
  * @package cyr-to-lat
6
  */
7
 
8
+ // phpcs:disable Generic.Commenting.DocComment.MissingShort
9
+ /** @noinspection PhpUndefinedClassInspection */
10
+ // phpcs:enable Generic.Commenting.DocComment.MissingShort
11
+
12
  namespace Cyr_To_Lat;
13
 
14
  use WP_Error;
125
  * Init class.
126
  *
127
  * @noinspection PhpUndefinedClassInspection
128
+ * @noinspection PhpUnusedLocalVariableInspection
129
  */
130
  public function init() {
131
  if ( defined( 'WP_CLI' ) && constant( 'WP_CLI' ) ) {
136
  * @noinspection PhpParamsInspection
137
  */
138
  \WP_CLI::add_command( 'cyr2lat', $this->cli );
139
+ } catch ( Exception $ex ) {
140
  return;
141
  }
142
  }
src/php/class-requirements.php CHANGED
@@ -5,6 +5,10 @@
5
  * @package cyr-to-lat
6
  */
7
 
 
 
 
 
8
  namespace Cyr_To_Lat;
9
 
10
  use Cyr_To_Lat\Settings\Settings;
@@ -178,6 +182,8 @@ if ( ! class_exists( __NAMESPACE__ . '\Requirements' ) ) {
178
 
179
  /**
180
  * Try to fix max_input_vars.
 
 
181
  */
182
  protected function try_to_fix_max_input_vars() {
183
  $user_ini_filename = $this->get_user_ini_filename();
@@ -219,6 +225,7 @@ if ( ! class_exists( __NAMESPACE__ . '\Requirements' ) ) {
219
  * Get .user.ini filename.
220
  *
221
  * @return string
 
222
  */
223
  private function get_user_ini_filename() {
224
  return ABSPATH . 'wp-admin/' . ini_get( 'user_ini.filename' );
5
  * @package cyr-to-lat
6
  */
7
 
8
+ // phpcs:disable Generic.Commenting.DocComment.MissingShort
9
+ /** @noinspection PhpUndefinedClassInspection */
10
+ // phpcs:enable Generic.Commenting.DocComment.MissingShort
11
+
12
  namespace Cyr_To_Lat;
13
 
14
  use Cyr_To_Lat\Settings\Settings;
182
 
183
  /**
184
  * Try to fix max_input_vars.
185
+ *
186
+ * @noinspection PhpStrFunctionsInspection
187
  */
188
  protected function try_to_fix_max_input_vars() {
189
  $user_ini_filename = $this->get_user_ini_filename();
225
  * Get .user.ini filename.
226
  *
227
  * @return string
228
+ * @noinspection PhpPureAttributeCanBeAddedInspection
229
  */
230
  private function get_user_ini_filename() {
231
  return ABSPATH . 'wp-admin/' . ini_get( 'user_ini.filename' );
vendor/autoload.php CHANGED
@@ -4,4 +4,4 @@
4
 
5
  require_once __DIR__ . '/composer/autoload_real.php';
6
 
7
- return ComposerAutoloaderInit681e309def2815858e5a28423a87233c::getLoader();
4
 
5
  require_once __DIR__ . '/composer/autoload_real.php';
6
 
7
+ return ComposerAutoloaderInit33e8bee773e45737380b52bc3231ec4b::getLoader();
vendor/composer/InstalledVersions.php CHANGED
@@ -25,12 +25,12 @@ class InstalledVersions
25
  private static $installed = array (
26
  'root' =>
27
  array (
28
- 'pretty_version' => '5.0.2',
29
- 'version' => '5.0.2.0',
30
  'aliases' =>
31
  array (
32
  ),
33
- 'reference' => 'b13080f905519be869babc177891b40de5b81b00',
34
  'name' => 'mihdan/cyr2lat',
35
  ),
36
  'versions' =>
@@ -46,12 +46,12 @@ private static $installed = array (
46
  ),
47
  'mihdan/cyr2lat' =>
48
  array (
49
- 'pretty_version' => '5.0.2',
50
- 'version' => '5.0.2.0',
51
  'aliases' =>
52
  array (
53
  ),
54
- 'reference' => 'b13080f905519be869babc177891b40de5b81b00',
55
  ),
56
  'roundcube/plugin-installer' =>
57
  array (
25
  private static $installed = array (
26
  'root' =>
27
  array (
28
+ 'pretty_version' => '5.0.3',
29
+ 'version' => '5.0.3.0',
30
  'aliases' =>
31
  array (
32
  ),
33
+ 'reference' => '287d621753ebf1f472ab6b2e8c81fc14e71f464f',
34
  'name' => 'mihdan/cyr2lat',
35
  ),
36
  'versions' =>
46
  ),
47
  'mihdan/cyr2lat' =>
48
  array (
49
+ 'pretty_version' => '5.0.3',
50
+ 'version' => '5.0.3.0',
51
  'aliases' =>
52
  array (
53
  ),
54
+ 'reference' => '287d621753ebf1f472ab6b2e8c81fc14e71f464f',
55
  ),
56
  'roundcube/plugin-installer' =>
57
  array (
vendor/composer/autoload_real.php CHANGED
@@ -2,7 +2,7 @@
2
 
3
  // autoload_real.php @generated by Composer
4
 
5
- class ComposerAutoloaderInit681e309def2815858e5a28423a87233c
6
  {
7
  private static $loader;
8
 
@@ -22,15 +22,15 @@ class ComposerAutoloaderInit681e309def2815858e5a28423a87233c
22
  return self::$loader;
23
  }
24
 
25
- spl_autoload_register(array('ComposerAutoloaderInit681e309def2815858e5a28423a87233c', 'loadClassLoader'), true, true);
26
  self::$loader = $loader = new \Composer\Autoload\ClassLoader(\dirname(\dirname(__FILE__)));
27
- spl_autoload_unregister(array('ComposerAutoloaderInit681e309def2815858e5a28423a87233c', 'loadClassLoader'));
28
 
29
  $useStaticLoader = PHP_VERSION_ID >= 50600 && !defined('HHVM_VERSION') && (!function_exists('zend_loader_file_encoded') || !zend_loader_file_encoded());
30
  if ($useStaticLoader) {
31
  require __DIR__ . '/autoload_static.php';
32
 
33
- call_user_func(\Composer\Autoload\ComposerStaticInit681e309def2815858e5a28423a87233c::getInitializer($loader));
34
  } else {
35
  $map = require __DIR__ . '/autoload_namespaces.php';
36
  foreach ($map as $namespace => $path) {
@@ -51,19 +51,19 @@ class ComposerAutoloaderInit681e309def2815858e5a28423a87233c
51
  $loader->register(true);
52
 
53
  if ($useStaticLoader) {
54
- $includeFiles = Composer\Autoload\ComposerStaticInit681e309def2815858e5a28423a87233c::$files;
55
  } else {
56
  $includeFiles = require __DIR__ . '/autoload_files.php';
57
  }
58
  foreach ($includeFiles as $fileIdentifier => $file) {
59
- composerRequire681e309def2815858e5a28423a87233c($fileIdentifier, $file);
60
  }
61
 
62
  return $loader;
63
  }
64
  }
65
 
66
- function composerRequire681e309def2815858e5a28423a87233c($fileIdentifier, $file)
67
  {
68
  if (empty($GLOBALS['__composer_autoload_files'][$fileIdentifier])) {
69
  require $file;
2
 
3
  // autoload_real.php @generated by Composer
4
 
5
+ class ComposerAutoloaderInit33e8bee773e45737380b52bc3231ec4b
6
  {
7
  private static $loader;
8
 
22
  return self::$loader;
23
  }
24
 
25
+ spl_autoload_register(array('ComposerAutoloaderInit33e8bee773e45737380b52bc3231ec4b', 'loadClassLoader'), true, true);
26
  self::$loader = $loader = new \Composer\Autoload\ClassLoader(\dirname(\dirname(__FILE__)));
27
+ spl_autoload_unregister(array('ComposerAutoloaderInit33e8bee773e45737380b52bc3231ec4b', 'loadClassLoader'));
28
 
29
  $useStaticLoader = PHP_VERSION_ID >= 50600 && !defined('HHVM_VERSION') && (!function_exists('zend_loader_file_encoded') || !zend_loader_file_encoded());
30
  if ($useStaticLoader) {
31
  require __DIR__ . '/autoload_static.php';
32
 
33
+ call_user_func(\Composer\Autoload\ComposerStaticInit33e8bee773e45737380b52bc3231ec4b::getInitializer($loader));
34
  } else {
35
  $map = require __DIR__ . '/autoload_namespaces.php';
36
  foreach ($map as $namespace => $path) {
51
  $loader->register(true);
52
 
53
  if ($useStaticLoader) {
54
+ $includeFiles = Composer\Autoload\ComposerStaticInit33e8bee773e45737380b52bc3231ec4b::$files;
55
  } else {
56
  $includeFiles = require __DIR__ . '/autoload_files.php';
57
  }
58
  foreach ($includeFiles as $fileIdentifier => $file) {
59
+ composerRequire33e8bee773e45737380b52bc3231ec4b($fileIdentifier, $file);
60
  }
61
 
62
  return $loader;
63
  }
64
  }
65
 
66
+ function composerRequire33e8bee773e45737380b52bc3231ec4b($fileIdentifier, $file)
67
  {
68
  if (empty($GLOBALS['__composer_autoload_files'][$fileIdentifier])) {
69
  require $file;
vendor/composer/autoload_static.php CHANGED
@@ -4,7 +4,7 @@
4
 
5
  namespace Composer\Autoload;
6
 
7
- class ComposerStaticInit681e309def2815858e5a28423a87233c
8
  {
9
  public static $files = array (
10
  '344a0f93a05b8ca362c22e39586db500' => __DIR__ . '/../..' . '/lib/polyfill-mbstring/bootstrap.php',
@@ -50,9 +50,9 @@ class ComposerStaticInit681e309def2815858e5a28423a87233c
50
  public static function getInitializer(ClassLoader $loader)
51
  {
52
  return \Closure::bind(function () use ($loader) {
53
- $loader->prefixLengthsPsr4 = ComposerStaticInit681e309def2815858e5a28423a87233c::$prefixLengthsPsr4;
54
- $loader->prefixDirsPsr4 = ComposerStaticInit681e309def2815858e5a28423a87233c::$prefixDirsPsr4;
55
- $loader->classMap = ComposerStaticInit681e309def2815858e5a28423a87233c::$classMap;
56
 
57
  }, null, ClassLoader::class);
58
  }
4
 
5
  namespace Composer\Autoload;
6
 
7
+ class ComposerStaticInit33e8bee773e45737380b52bc3231ec4b
8
  {
9
  public static $files = array (
10
  '344a0f93a05b8ca362c22e39586db500' => __DIR__ . '/../..' . '/lib/polyfill-mbstring/bootstrap.php',
50
  public static function getInitializer(ClassLoader $loader)
51
  {
52
  return \Closure::bind(function () use ($loader) {
53
+ $loader->prefixLengthsPsr4 = ComposerStaticInit33e8bee773e45737380b52bc3231ec4b::$prefixLengthsPsr4;
54
+ $loader->prefixDirsPsr4 = ComposerStaticInit33e8bee773e45737380b52bc3231ec4b::$prefixDirsPsr4;
55
+ $loader->classMap = ComposerStaticInit33e8bee773e45737380b52bc3231ec4b::$classMap;
56
 
57
  }, null, ClassLoader::class);
58
  }
vendor/composer/installed.php CHANGED
@@ -1,12 +1,12 @@
1
  <?php return array (
2
  'root' =>
3
  array (
4
- 'pretty_version' => '5.0.2',
5
- 'version' => '5.0.2.0',
6
  'aliases' =>
7
  array (
8
  ),
9
- 'reference' => 'b13080f905519be869babc177891b40de5b81b00',
10
  'name' => 'mihdan/cyr2lat',
11
  ),
12
  'versions' =>
@@ -22,12 +22,12 @@
22
  ),
23
  'mihdan/cyr2lat' =>
24
  array (
25
- 'pretty_version' => '5.0.2',
26
- 'version' => '5.0.2.0',
27
  'aliases' =>
28
  array (
29
  ),
30
- 'reference' => 'b13080f905519be869babc177891b40de5b81b00',
31
  ),
32
  'roundcube/plugin-installer' =>
33
  array (
1
  <?php return array (
2
  'root' =>
3
  array (
4
+ 'pretty_version' => '5.0.3',
5
+ 'version' => '5.0.3.0',
6
  'aliases' =>
7
  array (
8
  ),
9
+ 'reference' => '287d621753ebf1f472ab6b2e8c81fc14e71f464f',
10
  'name' => 'mihdan/cyr2lat',
11
  ),
12
  'versions' =>
22
  ),
23
  'mihdan/cyr2lat' =>
24
  array (
25
+ 'pretty_version' => '5.0.3',
26
+ 'version' => '5.0.3.0',
27
  'aliases' =>
28
  array (
29
  ),
30
+ 'reference' => '287d621753ebf1f472ab6b2e8c81fc14e71f464f',
31
  ),
32
  'roundcube/plugin-installer' =>
33
  array (