AntonLV 6 лет назад
Родитель
Сommit
bcc8ea0eea
1 измененных файлов с 49 добавлено и 39 удалено
  1. 49 39
      modules/boonex/developer/classes/BxDevModule.php

+ 49 - 39
modules/boonex/developer/classes/BxDevModule.php

@@ -41,54 +41,64 @@ class BxDevModule extends BxDolModule
         return $this->aTools;
     }
 
-    public function actionResetHash($sType) {
+    public function actionResetHash($sType, $sModule = '') {
     	$oDb = bx_instance('BxDolStudioInstallerQuery');
 
     	$sResult = '';
     	switch ($sType) {
     		case 'system':
-    			$oHasher = bx_instance('BxDolInstallerHasher');
+                    $oHasher = bx_instance('BxDolInstallerHasher');
 
-    			$oDb->deleteModuleTrackFiles(BX_SYSTEM_MODULE_ID);
+                    $oDb->deleteModuleTrackFiles(BX_SYSTEM_MODULE_ID);
 
-    			$sResult = _t('_bx_dev_hash_' . ($oHasher->hashSystemFiles() ? 'msg' : 'err') . '_reset_hash_system');    			
-    			break;
+                    $sResult = _t('_bx_dev_hash_' . ($oHasher->hashSystemFiles() ? 'msg' : 'err') . '_reset_hash_system');    			
+                    break;
 
     		case 'modules':
-				$aModules = BxDolModuleQuery::getInstance()->getModules();
-
-				$aTmplVarsModules = array();
-				foreach($aModules as $aModule) {
-					if($aModule['name'] == 'system')
-						continue;
-
-					$aConfig = BxDolInstallerUtils::getModuleConfig($aModule);
-					$sPathInstaller = BX_DIRECTORY_PATH_MODULES . $aModule['path'] . 'install/installer.php';
-					if(empty($aConfig) || !file_exists($sPathInstaller))
-						continue;
-
-					require_once($sPathInstaller);
-
-					$sClassName = $aConfig['class_prefix'] . 'Installer';
-					$oInstaller = new $sClassName($aConfig);
-
-					$oDb->deleteModuleTrackFiles($aModule['id']);
-
-					$aFiles = array();
-				    $oInstaller->hashFiles(BX_DIRECTORY_PATH_ROOT . 'modules/' . $aModule['path'], $aFiles);
-					foreach($aFiles as $aFile)
-				    	$oDb->insertModuleTrack($aModule['id'], $aFile);
-
-					$aTmplVarsModules[] = array(
-						'module' => $aModule['title'],
-						'files' => count($aFiles)
-					);
-				}
-
-				$sResult = $this->_oTemplate->parseHtmlByName('hash_modules.html', array(
-					'bx_repeat:modules' => $aTmplVarsModules
-				));
-				break;
+                    $oModuleQuery = BxDolModuleQuery::getInstance();
+                    if(!empty($sModule)) {
+                        $aNames = strpos($sModule, ',') !== false ? explode(',', $sModule) : array($sModule);
+
+                        $aModule = array();
+                        foreach($aNames as $aName)
+                            $aModules[] = $oModuleQuery->getModuleByName($aName);
+                    }
+                    else
+                        $aModules = $oModuleQuery->getModules();
+
+                    $aTmplVarsModules = array();
+                    if(!empty($aModules) && is_array($aModules))
+                        foreach($aModules as $aModule) {
+                            if($aModule['name'] == 'system')
+                                continue;
+
+                            $aConfig = BxDolInstallerUtils::getModuleConfig($aModule);
+                            $sPathInstaller = BX_DIRECTORY_PATH_MODULES . $aModule['path'] . 'install/installer.php';
+                            if(empty($aConfig) || !file_exists($sPathInstaller))
+                                continue;
+
+                            require_once($sPathInstaller);
+
+                            $sClassName = $aConfig['class_prefix'] . 'Installer';
+                            $oInstaller = new $sClassName($aConfig);
+
+                            $oDb->deleteModuleTrackFiles($aModule['id']);
+
+                            $aFiles = array();
+                            $oInstaller->hashFiles(BX_DIRECTORY_PATH_ROOT . 'modules/' . $aModule['path'], $aFiles);
+                            foreach($aFiles as $aFile)
+                                $oDb->insertModuleTrack($aModule['id'], $aFile);
+
+                            $aTmplVarsModules[] = array(
+                                'module' => $aModule['title'],
+                                'files' => count($aFiles)
+                            );
+                        }
+
+                        $sResult = $this->_oTemplate->parseHtmlByName('hash_modules.html', array(
+                            'bx_repeat:modules' => $aTmplVarsModules
+                        ));
+                        break;
     	}
 
     	echo $sResult;