Просмотр исходного кода

Ticket #4980 - Studio: Launcher icons.

AntonLV 2 месяцев назад
Родитель
Сommit
b08706afe5

+ 35 - 0
studio/classes/BxDolStudioTemplate.php

@@ -92,6 +92,22 @@ class BxDolStudioTemplate extends BxDolTemplate implements iBxDolSingleton
         $this->_oTemplateFunctions = BxTemplStudioFunctions::getInstance($this);
     }
 
+    function getIconUrl($sName, $sCheckIn = BX_DOL_TEMPLATE_CHECK_IN_BOTH)
+    {
+        if(($sModuleIcon = $this->_getModuleIcon('url', $sName)) !== false)
+            return $sModuleIcon;
+
+        return parent::getIconUrl($sName, $sCheckIn);
+    }
+
+    function getIconPath($sName, $sCheckIn = BX_DOL_TEMPLATE_CHECK_IN_BOTH)
+    {
+        if(($sModuleIcon = $this->_getModuleIcon('path', $sName)) !== false)
+            return $sModuleIcon;
+
+        return parent::getIconUrl($sName, $sCheckIn);
+    }
+
     function _getAbsoluteLocation($sType, $sFolder, $sName, $sCheckIn = BX_DOL_TEMPLATE_CHECK_IN_BOTH)
     {
     	return parent::_getAbsoluteLocation($sType, $sFolder, $sName, BX_DOL_TEMPLATE_CHECK_IN_BASE);
@@ -141,6 +157,11 @@ class BxDolStudioTemplate extends BxDolTemplate implements iBxDolSingleton
         return $this->_getAbsoluteLocation('url', $this->_sFolderModuleIcons, $sName, $sCheckIn);
     }
 
+    function getModuleIconPath($sName, $sCheckIn = BX_DOL_TEMPLATE_CHECK_IN_BOTH)
+    {
+        return $this->_getAbsoluteLocation('path', $this->_sFolderModuleIcons, $sName, $sCheckIn);
+    }
+
     function setPageBreadcrumb($aItems)
     {
         $this->aPage['breadcrumb'] = $aItems;
@@ -228,6 +249,20 @@ class BxDolStudioTemplate extends BxDolTemplate implements iBxDolSingleton
         $this->addJs($oPage->getPageJs());
         $this->getPageCode();
     }
+
+    protected function _getModuleIcon($sType, $sName)
+    {
+        if(strpos($sName, '|') !== false) {
+            list($sLocation, $sFile) = explode('|', $sName);
+            if($sFile == 'std-icon.svg' && strpos($sLocation, '@') !== false) {
+                list($sModule) = explode('@', $sLocation);
+                if($sModule && ($sModuleIcon = $this->{'getModuleIcon' . ucfirst($sType)}($sModule . '.svg')))
+                    return $sModuleIcon;
+            }
+        }
+
+        return false;
+    }
 }
 
 /** @} */

+ 0 - 0
studio/template/images/modules/bx_english.svg → studio/template/images/modules/bx_en.svg


+ 0 - 0
studio/template/images/modules/bx_russian.svg → studio/template/images/modules/bx_ru.svg