Kaynağa Gözat

Ticket #2374 - Point №3

AntonLV 6 yıl önce
ebeveyn
işleme
c94a010f9e

+ 9 - 1
inc/classes/BxDolUpgrader.php

@@ -18,13 +18,21 @@ class BxDolUpgrader extends BxDol
      * After all check are successfully completed, transient cron job is set to run upgrade upon next cron run.
      * After all check are successfully completed, transient cron job is set to run upgrade upon next cron run.
      * @return true if upgrade was successfully scheduled to run, or false on error (you can call @see getError to determine particular error message)
      * @return true if upgrade was successfully scheduled to run, or false on error (you can call @see getError to determine particular error message)
      */
      */
-    public function prepare()
+    public function prepare($bAuto = true)
     {
     {
         $this->setError(false);
         $this->setError(false);
         $iUmaskSave = umask(0);
         $iUmaskSave = umask(0);
 
 
         while(true) {
         while(true) {
 
 
+            if(!$bAuto) {
+                $aUpdates = BxDolStudioInstallerUtils::getInstance()->checkUpdates();
+                if(!empty($aUpdates) && is_array($aUpdates)) {
+                    $this->setError(_t('_sys_upgrade_modules_upgrade_first'));
+                    break;
+                }
+            }
+
             $aVersionUpdateInfo = $this->getVersionUpdateInfo();
             $aVersionUpdateInfo = $this->getVersionUpdateInfo();
             if (null === $aVersionUpdateInfo) {
             if (null === $aVersionUpdateInfo) {
                 $this->setError(_t('_sys_upgrade_get_version_info_failed'));
                 $this->setError(_t('_sys_upgrade_get_version_info_failed'));

+ 1 - 0
modules/boonex/english/data/langs/system/en.xml

@@ -3021,6 +3021,7 @@ If it is not enabled then please consider implement this optimization, since it
 	<string name="_sys_upgrade_files_checksum_failed_too_many"><![CDATA[Can't apply upgrade because too many files({0}%) were modified]]></string>
 	<string name="_sys_upgrade_files_checksum_failed_too_many"><![CDATA[Can't apply upgrade because too many files({0}%) were modified]]></string>
 	<string name="_sys_upgrade_files_checksum_failed_too_many_module"><![CDATA[Can't apply upgrade because too many files({0}%) were modified in {1} module]]></string>
 	<string name="_sys_upgrade_files_checksum_failed_too_many_module"><![CDATA[Can't apply upgrade because too many files({0}%) were modified in {1} module]]></string>
 	<string name="_sys_upgrade_get_version_info_failed"><![CDATA[Get version info failed, please check internet connection on the web-server or web-server firewall]]></string>
 	<string name="_sys_upgrade_get_version_info_failed"><![CDATA[Get version info failed, please check internet connection on the web-server or web-server firewall]]></string>
+        <string name="_sys_upgrade_modules_upgrade_first"><![CDATA[You have outdated modules. Upgrade them first in Studio &gt; Apps Market &gt; Updates.]]></string>
 	<string name="_sys_upgrade_patch_checksum_failed"><![CDATA[Downloaded patch file checksum is invalid]]></string>
 	<string name="_sys_upgrade_patch_checksum_failed"><![CDATA[Downloaded patch file checksum is invalid]]></string>
 	<string name="_sys_upgrade_patch_download_failed"><![CDATA[Patch download failed, or downloaded file can't be saved]]></string>
 	<string name="_sys_upgrade_patch_download_failed"><![CDATA[Patch download failed, or downloaded file can't be saved]]></string>
 	<string name="_sys_upgrade_patch_invalid"><![CDATA[Invalid patch, it can't be applied to your version or incorrect files structure in the patch.]]></string>
 	<string name="_sys_upgrade_patch_invalid"><![CDATA[Invalid patch, it can't be applied to your version or incorrect files structure in the patch.]]></string>

+ 1 - 0
modules/boonex/russian/data/langs/system/ru.xml

@@ -3003,6 +3003,7 @@
 	<string name="_sys_upgrade_files_checksum_failed_too_many"><![CDATA[Невозможно применить обновление, потому что слишком много файлов ({0}%) было изменено]]></string>
 	<string name="_sys_upgrade_files_checksum_failed_too_many"><![CDATA[Невозможно применить обновление, потому что слишком много файлов ({0}%) было изменено]]></string>
 	<string name="_sys_upgrade_files_checksum_failed_too_many_module"><![CDATA[Невозможно применить обновление, потому что слишком много файлов ({0}%) было изменено в {1} модуле]]></string>
 	<string name="_sys_upgrade_files_checksum_failed_too_many_module"><![CDATA[Невозможно применить обновление, потому что слишком много файлов ({0}%) было изменено в {1} модуле]]></string>
 	<string name="_sys_upgrade_get_version_info_failed"><![CDATA[Невозможно получить информацию о версии. Пожалуйста, проверьте соединение с Интернетом на веб-сервере или в брандмауэре.]]></string>
 	<string name="_sys_upgrade_get_version_info_failed"><![CDATA[Невозможно получить информацию о версии. Пожалуйста, проверьте соединение с Интернетом на веб-сервере или в брандмауэре.]]></string>
+        <string name="_sys_upgrade_modules_upgrade_first"><![CDATA[Некоторые из ваших модулей устарели. Для начала Вам нужно обновить их в Студии &gt; Магазин приложений &gt; Обновления.]]></string>
 	<string name="_sys_upgrade_patch_checksum_failed"><![CDATA[Проверочная сумма загруженного патч-файла неверна]]></string>
 	<string name="_sys_upgrade_patch_checksum_failed"><![CDATA[Проверочная сумма загруженного патч-файла неверна]]></string>
 	<string name="_sys_upgrade_patch_download_failed"><![CDATA[Не удалось скачать патч или скачанный файл не может быть сохранён]]></string>
 	<string name="_sys_upgrade_patch_download_failed"><![CDATA[Не удалось скачать патч или скачанный файл не может быть сохранён]]></string>
 	<string name="_sys_upgrade_patch_invalid"><![CDATA[Неправильный патч, он не может быть применён для Вашей версии или имеет неправильную структуру файлов.]]></string>
 	<string name="_sys_upgrade_patch_invalid"><![CDATA[Неправильный патч, он не может быть применён для Вашей версии или имеет неправильную структуру файлов.]]></string>

+ 1 - 1
studio/classes/BxDolStudioDashboard.php

@@ -67,7 +67,7 @@ class BxDolStudioDashboard extends BxTemplStudioPage
 
 
             	case 'perform_upgrade':
             	case 'perform_upgrade':
                     $oUpgrader = bx_instance('BxDolUpgrader');
                     $oUpgrader = bx_instance('BxDolUpgrader');
-                    if(!$oUpgrader->prepare())
+                    if(!$oUpgrader->prepare(false))
                         $aResult = array('code' => 1, 'message' => $oUpgrader->getError());
                         $aResult = array('code' => 1, 'message' => $oUpgrader->getError());
                     else
                     else
                         $aResult = array('code' => 0, 'message' => _t('_adm_dbd_msg_upgrade_started', BX_DOL_URL_STUDIO));
                         $aResult = array('code' => 0, 'message' => _t('_adm_dbd_msg_upgrade_started', BX_DOL_URL_STUDIO));

+ 1 - 1
studio/classes/BxDolStudioUpdater.php

@@ -9,7 +9,7 @@
 
 
 class BxDolStudioUpdater extends BxDolStudioInstaller
 class BxDolStudioUpdater extends BxDolStudioInstaller
 {
 {
-	protected $_aModule;
+    protected $_aModule;
 
 
     public function __construct($aConfig)
     public function __construct($aConfig)
     {
     {