diff --git a/modules/menu/tpl/sitemap.html b/modules/menu/tpl/sitemap.html index f79926ef4..bbeae8ff5 100644 --- a/modules/menu/tpl/sitemap.html +++ b/modules/menu/tpl/sitemap.html @@ -3433,6 +3433,7 @@ jQuery(function($){ var sTmpName; for(var sName in htData.skin_info_list){ if(!htData.skin_info_list.hasOwnProperty(sName)) continue; + if(sName == '/USE_DEFAULT/') continue; //$._xeAdminVar.htItemTypes[sType][sName].S = htInfo.title; //console.log(htDesign.sSkinName); diff --git a/modules/module/lang/lang.xml b/modules/module/lang/lang.xml index 8b906c0fe..09bc3c4d4 100644 --- a/modules/module/lang/lang.xml +++ b/modules/module/lang/lang.xml @@ -1109,4 +1109,7 @@ Le module [Administration des Modules] montera tous les modules installés et vo + + + diff --git a/modules/module/module.controller.php b/modules/module/module.controller.php index 9fdc6cf75..7a5231d6e 100644 --- a/modules/module/module.controller.php +++ b/modules/module/module.controller.php @@ -343,8 +343,37 @@ class moduleController extends module if(!$args->module_srl) $args->module_srl = getNextSequence(); // default value - $args->is_skin_fix = ($args->is_skin_fix != 'Y') ? 'N' : 'Y'; - $args->is_mskin_fix = ($args->is_mskin_fix != 'Y') ? 'N' : 'Y'; + if($args->skin == '/USE_DEFAULT/') + { + $args->is_skin_fix = 'N'; + } + else + { + if(isset($args->is_skin_fix)) + { + $args->is_skin_fix = ($args->is_skin_fix != 'Y') ? 'N' : 'Y'; + } + else + { + $args->is_skin_fix = 'Y'; + } + } + + if($args->mskin = '/USE_DEFAULT/') + { + $args->is_mskin_fix = 'N'; + } + else + { + if(isset($args->is_skin_fix)) + { + $args->is_mskin_fix = ($args->is_mskin_fix != 'Y') ? 'N' : 'Y'; + } + else + { + $args->is_mskin_fix = 'Y'; + } + } // Insert a module $output = executeQuery('module.insertModule', $args); @@ -393,8 +422,37 @@ class moduleController extends module } // default value - $args->is_skin_fix = ($args->is_skin_fix != 'Y') ? 'N' : 'Y'; - $args->is_mskin_fix = ($args->is_mskin_fix != 'Y') ? 'N' : 'Y'; + if($args->skin == '/USE_DEFAULT/') + { + $args->is_skin_fix = 'N'; + } + else + { + if(isset($args->is_skin_fix)) + { + $args->is_skin_fix = ($args->is_skin_fix != 'Y') ? 'N' : 'Y'; + } + else + { + $args->is_skin_fix = 'Y'; + } + } + + if($args->mskin = '/USE_DEFAULT/') + { + $args->is_mskin_fix = 'N'; + } + else + { + if(isset($args->is_skin_fix)) + { + $args->is_mskin_fix = ($args->is_mskin_fix != 'Y') ? 'N' : 'Y'; + } + else + { + $args->is_mskin_fix = 'Y'; + } + } $output = executeQuery('module.updateModule', $args); if(!$output->toBool()) diff --git a/modules/module/module.model.php b/modules/module/module.model.php index 24a03fbeb..3eaefbe44 100644 --- a/modules/module/module.model.php +++ b/modules/module/module.model.php @@ -66,6 +66,7 @@ class moduleModel extends module { $args->document_srl = $document_srl; $output = executeQuery('module.getModuleInfoByDocument', $args); + $this->applyDefaultSkin($output->data); return $this->addModuleExtraVars($output->data); } @@ -201,6 +202,7 @@ class moduleModel extends module } $module_info = $output->data; + $this->applyDefaultSkin($module_info); if(!$module_info->module_srl && $module_info->data[0]) $module_info = $module_info->data[0]; return $this->addModuleExtraVars($module_info); } @@ -241,8 +243,8 @@ class moduleModel extends module $oLayoutAdminModel = getAdminModel('layout'); $layoutSrlPc = ($moduleInfo->layout_srl == -1) ? $oLayoutAdminModel->getSiteDefaultLayout('P', $moduleInfo->site_srl) : $moduleInfo->layout_srl; $layoutSrlMobile = ($moduleInfo->mlayout_srl == -1) ? $oLayoutAdminModel->getSiteDefaultLayout('M', $moduleInfo->site_srl) : $moduleInfo->mlayout_srl; - $skinNamePc = (!$moduleInfo->skin) ? $this->getModuleDefaultSkin($moduleInfo->module, 'P') : $moduleInfo->skin; - $skinNameMobile = (!$moduleInfo->mskin) ? $this->getModuleDefaultSkin($moduleInfo->module, 'M') : $moduleInfo->mskin; + $skinNamePc = ($moduleInfo->is_skin_fix == 'N') ? $this->getModuleDefaultSkin($moduleInfo->module, 'P') : $moduleInfo->skin; + $skinNameMobile = ($moduleInfo->is_mskin_fix == 'N') ? $this->getModuleDefaultSkin($moduleInfo->module, 'M') : $moduleInfo->mskin; $oLayoutModel = getModel('layout'); $layoutInfoPc = $layoutSrlPc ? $oLayoutModel->getLayoutRawData($layoutSrlPc, array('title')) : NULL; @@ -264,9 +266,9 @@ class moduleModel extends module $moduleInfo->designSettings->layout->pc = $layoutInfoPc->title; $moduleInfo->designSettings->layout->mobileIsDefault = $moduleInfo->mlayout_srl == -1 ? 1 : 0; $moduleInfo->designSettings->layout->mobile = $layoutInfoMobile->title; - $moduleInfo->designSettings->skin->pcIsDefault = !$moduleInfo->skin ? 1 : 0; + $moduleInfo->designSettings->skin->pcIsDefault = $moduleInfo->is_skin_fix == 'N' ? 1 : 0; $moduleInfo->designSettings->skin->pc = $skinInfoPc->title; - $moduleInfo->designSettings->skin->mobileIsDefault = !$moduleInfo->mskin ? 1 : 0; + $moduleInfo->designSettings->skin->mobileIsDefault = $moduleInfo->is_mskin_fix == 'N' ? 1 : 0; $moduleInfo->designSettings->skin->mobile = $skinInfoMobile->title; $oCacheHandler = &CacheHandler::getInstance('object'); @@ -323,6 +325,7 @@ class moduleModel extends module { $output = executeQuery('module.getMidInfo', $args ); if(!$output->data) return; + $this->applyDefaultSkin($output->data); if($oCacheHandler->isSupport()) $oCacheHandler->put($cache_key,$output); } if(count($columnList)) @@ -339,6 +342,23 @@ class moduleModel extends module return $this->addModuleExtraVars($module_info); } + /** + * Apply default skin info + * + * @param stdClass $moduleInfo Module information + */ + private function applyDefaultSkin(&$moduleInfo) + { + if($moduleInfo->is_skin_fix == 'N') + { + $moduleInfo->skin = '/USE_DEFAULT'; + } + + if($moduleInfo->is_mskin_fix == 'N') + { + $moduleInfo->mskin = '/USE_DEFAULT'; + } + } /** * @brief Get module information corresponding to layout_srl */ @@ -904,12 +924,12 @@ class moduleModel extends module $skin_list[$skin_name] = $skin_info; } + $tmpPath = strtr($path, array('/' => ' ')); + $tmpPath = trim($tmpPath); + $module = array_pop(explode(' ', $tmpPath)); + if($dir == 'skins') { - $tmpPath = strtr($path, array('/' => ' ')); - $tmpPath = trim($tmpPath); - $module = array_pop(explode(' ', $tmpPath)); - $oAdminModel = getAdminModel('admin'); $themesInfo = $oAdminModel->getThemeList(); @@ -924,6 +944,31 @@ class moduleModel extends module } } + $siteInfo = Context::get('site_module_info'); + + if($dir == 'skins') + { + $type = 'P'; + } + else + { + $type = 'M'; + } + + $defaultSkinName = $this->getModuleDefaultSkin($module, $type, $site_info->site_srl); + + if(isset($defaultSkinName)) + { + $defaultSkinInfo = $this->loadSkinInfo($path, $defaultSkinName, $dir); + + $useDefault = new stdClass(); + $useDefault->title = Context::getLang('use_site_default_skin') . ' (' . $defaultSkinInfo->title . ')'; + + $useDefaultList['/USE_DEFAULT/'] = $useDefault; + + $skin_list = array_merge($useDefaultList, $skin_list); + } + return $skin_list; }