From 3a18325a620751b3253fb49ff51c6928a4daa295 Mon Sep 17 00:00:00 2001 From: Jean-Christian Denis Date: Sat, 25 Sep 2021 17:24:38 +0200 Subject: [PATCH] fix install and behaviors --- _admin.php | 4 ++-- _install.php | 16 +++++++--------- inc/class.dc.translater.php | 29 ++++++++++++----------------- 3 files changed, 21 insertions(+), 28 deletions(-) diff --git a/_admin.php b/_admin.php index 4b3f7c9..214c90c 100644 --- a/_admin.php +++ b/_admin.php @@ -44,7 +44,7 @@ class translaterAdminBehaviors private static function translater($core) { if (!(self::$translater instanceof dcTranslater)) { - self::$translater = new dcTranslater($core); + self::$translater = new dcTranslater($core, false); } return self::$translater; } @@ -69,7 +69,7 @@ class translaterAdminBehaviors return ' '; + ']" value="' . __('Translate') . '" /> '; } /** diff --git a/_install.php b/_install.php index fa41ce2..22b8111 100644 --- a/_install.php +++ b/_install.php @@ -14,19 +14,17 @@ if (!defined('DC_CONTEXT_ADMIN')) { return null; } - +$id = 'translater'; try { - if (version_compare($core->getVersion($id), $this->moduleInfo($id, 'version'), '>=')) { + if (version_compare($core->getVersion($id), $core->plugins->moduleInfo($id, 'version'), '>=')) { return null; } - - $t = new dcTranslater($core); - $s = $t->getDefaultSettings(); - foreach($s as $v) { - $t->setSetting($v[0], $v[1], false); + $translater = new dcTranslater($core, false); + $settings = $translater->getDefaultSettings(); + foreach($settings as $key => $setting) { + $translater->setSetting($key, $setting['value'], false); } - - $core->setVersion($id, $this->moduleInfo($id, 'version')); + $core->setVersion($id, $core->plugins->moduleInfo($id, 'version')); return true; } catch (Exception $e) { diff --git a/inc/class.dc.translater.php b/inc/class.dc.translater.php index d35bb50..86505ee 100644 --- a/inc/class.dc.translater.php +++ b/inc/class.dc.translater.php @@ -57,7 +57,7 @@ class dcTranslater ], 'start_page' => [ 'id' => 'translater_start_page', - 'value' => 'setting', + 'value' => '-', 'type' => 'string', 'label' => 'Page to start on' ], @@ -151,15 +151,18 @@ class dcTranslater /** * translater instance * - * @param dcCore $core dcCore instance + * @param dcCore $core dcCore instance + * @param boolean $core Also load modules */ - public function __construct($core) + public function __construct(dcCore $core, bool $full = true) { $this->core = $core; $core->blog->settings->addNamespace('translater'); - $this->loadModules(); - // fill with translated string + if ($full) { + $this->loadModules(); + } + self::$allowed_backup_folders = [ __('locales folders of each module') => 'module', __('plugins folder root') => 'plugin', @@ -167,8 +170,6 @@ class dcTranslater __('cache folder of Dotclear') => 'cache', __('locales folder of translater') => 'translater' ]; - - // fill distrib modules list self::$default_distrib_modules = [ 'plugin' => explode(',', DC_DISTRIB_PLUGINS), 'theme' => explode(',', DC_DISTRIB_THEMES) @@ -215,20 +216,14 @@ class dcTranslater * @param mixed $overwrite Overwrite settings if exists * @return boolean Success */ - public function setSetting(string $id, $value, $overwrite = true) + public function setSetting(string $id, $value, $overwrite = true): bool { if (!array_key_exists($id, self::$default_settings)) { return false; } - $this->core->blog->settings->translater->drop(self::$default_settings[$id]['id']); - $this->core->blog->settings->translater->put( - self::$default_settings[$id]['id'], - $value, - self::$default_settings[$id]['type'], - self::$default_settings[$id]['label'], - $overwrite, - true - ); + $s = self::$default_settings[$id]; + $this->core->blog->settings->translater->drop($s['id']); + $this->core->blog->settings->translater->put($s['id'], $value, $s['type'], $s['label'], $overwrite, true); return true; }