Zurmo - - 全局配置
簡介:Zurmo的很多功能都是通過配置的形式來完成,有
全局配置的一些功能體現(xiàn)在,頂部的導航行,最左邊的導航行等等,這些都是公共的部分。此外還有一些其他的功能,這里就不一一列舉了。模塊獨立的配置是針對模塊內(nèi)部的配置,每個模塊的樣式,功能都可以根據(jù)配置的參數(shù)來改變。接下來介紹全局的配置。
二:Zurmo讀取數(shù)據(jù)順序
1:系統(tǒng)安裝時候的順序:
讀取代碼配置 --> 存入數(shù)據(jù)庫 --> 緩存2:以后系統(tǒng)運行的時候順序:
緩存 --> 數(shù)據(jù)庫 --> 代碼配置詳解第一點:
Zurmo安裝的時候,會從一些代碼配置文件讀取配置,比如 zurmo/app/protected/modules/zurmo/ZurmoModule.php文件,代碼如下。
public static function getDefaultMetadata(){$metadata = array();$metadata['global'] = array('configureMenuItems' => array(array('category' => ZurmoModule::ADMINISTRATION_CATEGORY_GENERAL,'titleLabel' => "eval:Zurmo::t('ZurmoModule', 'Global Configuration')",'descriptionLabel' => "eval:Zurmo::t('ZurmoModule', 'Manage Global Configuration')",'route' => '/zurmo/default/configurationEdit','right' => self::RIGHT_ACCESS_GLOBAL_CONFIGURATION,),array('category' => ZurmoModule::ADMINISTRATION_CATEGORY_GENERAL,'titleLabel' => "eval:Zurmo::t('ZurmoModule', 'Currency Configuration')",'descriptionLabel' => "eval:Zurmo::t('ZurmoModule', 'Manage Currency Configuration')",'route' => '/zurmo/currency/configurationList','right' => self::RIGHT_ACCESS_CURRENCY_CONFIGURATION,),array('category' => ZurmoModule::ADMINISTRATION_CATEGORY_GENERAL,'titleLabel' => "eval:Zurmo::t('Core', 'Languages')",'descriptionLabel' => "eval:Zurmo::t('ZurmoModule', 'Manage Active Languages')",'route' => '/zurmo/language/configurationList','right' => self::RIGHT_ACCESS_GLOBAL_CONFIGURATION,),array('category' => ZurmoModule::ADMINISTRATION_CATEGORY_GENERAL,'titleLabel' => "eval:Zurmo::t('ZurmoModule', 'Developer Tools')",'descriptionLabel' => "eval:Zurmo::t('ZurmoModule', 'Access Developer Tools')",'route' => '/zurmo/development/','right' => self::RIGHT_ACCESS_GLOBAL_CONFIGURATION,),array('category' => ZurmoModule::ADMINISTRATION_CATEGORY_GENERAL,'titleLabel' => "eval:Zurmo::t('ZurmoModule', 'Authentication Configuration')",'descriptionLabel' => "eval:Zurmo::t('ZurmoModule', 'Manage Authentication Configuration')",'route' => '/zurmo/authentication/configurationEdit','right' => self::RIGHT_ACCESS_GLOBAL_CONFIGURATION,),array('category' => ZurmoModule::ADMINISTRATION_CATEGORY_GENERAL,'titleLabel' => "eval:Zurmo::t('ZurmoModule', 'Plugins')",'descriptionLabel' => "eval:Zurmo::t('ZurmoModule', 'Manage Plugins and Integrations')",'route' => '/zurmo/plugins/configurationEdit','right' => self::RIGHT_ACCESS_GLOBAL_CONFIGURATION,),array('category' => ZurmoModule::ADMINISTRATION_CATEGORY_GENERAL,'titleLabel' => "eval:Zurmo::t('ZurmoModule', 'User Interface Configuration')",'descriptionLabel' => "eval:Zurmo::t('ZurmoModule', 'Manage User Interface Configuration')",'route' => '/zurmo/default/userInterfaceConfigurationEdit','right' => self::RIGHT_ACCESS_GLOBAL_CONFIGURATION,),array('category' => ZurmoModule::ADMINISTRATION_CATEGORY_GENERAL,'titleLabel' => "eval:Zurmo::t('ZurmoModule', 'System Configuration')",'descriptionLabel' => "eval:Zurmo::t('ZurmoModule', 'Manage System Configuration')",'route' => '/zurmo/default/systemConfigurationEdit','right' => self::RIGHT_ACCESS_GLOBAL_CONFIGURATION,),),'headerMenuItems' => array(array('label' => "eval:Zurmo::t('ZurmoModule', 'Administration')",'url' => array('/configuration'),'right' => self::RIGHT_ACCESS_ADMINISTRATION,'order' => 1,'mobile' => false,),array('label' => "eval:Zurmo::t('ZurmoModule', 'Get More')",'url' => 'eval:ZurmoModule::resolveGetMoreUrl()','order' => 9,'mobile' => true,),array('label' => "eval:Zurmo::t('ZurmoModule', 'About Zurmo')",'url' => array('/zurmo/default/about'),'order' => 10,'mobile' => true,),),'configureSubMenuItems' => array(array('category' => self::ADMINISTRATION_CATEGORY_AUTHENTICATION,'titleLabel' => "eval:Zurmo::t('ZurmoModule', 'LDAP Configuration')",'descriptionLabel' => "eval:Zurmo::t('ZurmoModule', 'Manage LDAP Authentication')",'route' => '/zurmo/ldap/configurationEditLdap','right' => self::RIGHT_ACCESS_GLOBAL_CONFIGURATION,),),'adminTabMenuItemsModuleOrdering' => array('home','configuration','designer','import','groups','users','roles','workflows','contactWebForms'),'tabMenuItemsModuleOrdering' => array('home','mashableInbox','accounts','leads','contacts','opportunities','marketing','projects','products','reports',));return $metadata;}之后會把這些配置信息存入到數(shù)據(jù)庫的一個名叫 globalmetadata 的表。配置以序列化的形式存入 serializedmetadata 字段中,我們可以選取 一條 classname 的值為 ZurmoModule 的序列化值解序列出來看看。就可以發(fā)現(xiàn)ZurmoModule的配置是其中的一部分,還有一部分是從其他地方讀取。之后會存入緩存中。
PS:有時候可能會出現(xiàn)你改了這里的配置,但是頁面卻沒有改變。
- 原因就是以后系統(tǒng)是先讀緩存。有時候清除了緩存,但是頁面還是沒有發(fā)生變化,
- 那是因為之后是讀取數(shù)據(jù)庫的數(shù)據(jù)的,如果你把數(shù)據(jù)庫的對應(yīng)數(shù)據(jù)刪除了,再刷新頁面。有可能會報錯
- 因為這個時候你沒有把配置存入數(shù)據(jù)庫中。要先執(zhí)行 Update Custom Data 操作,這個操作的本質(zhì)就是把配置存入globalmetadata 表中。之后再刷新頁面,頁面就發(fā)生改變了。
上面的注解就是第二點的以后系統(tǒng)運行的時候讀取數(shù)據(jù)的順序了。
三:清除緩存 和 Update Custom Data的操作
具體步驟看我在CSDN的文章,這兩點的重要性我也在博客寫了。很多時候的操作與這兩步密切相關(guān)。
四:getDefaultMetadata()方法 metadata['global'] 數(shù)組中的部分配置參數(shù):
- configureMenuItems
- headerMenuItems
- configureSubMenuItems
- adminTabMenuItemsModuleOrdering
- tabMenuItemsModuleOrdering
headerMenuItems參數(shù)對應(yīng)的頁面上:
adminTabMenuItemsModuleOrdering 參數(shù)對應(yīng)的頁面上:
tabMenuItemsModuleOrdering 參數(shù)對應(yīng)的頁面上:
還有部分的參數(shù)的位置遲點再補上。
如有不對,請指正!
總結(jié)
以上是生活随笔為你收集整理的Zurmo - - 全局配置的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 测试过程中常用的linux命令之【查找指
- 下一篇: [转] C# TextBox、DataG