日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當(dāng)前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

Zurmo - - 全局配置

發(fā)布時(shí)間:2023/12/20 编程问答 31 豆豆
生活随笔 收集整理的這篇文章主要介紹了 Zurmo - - 全局配置 小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.

簡介:Zurmo的很多功能都是通過配置的形式來完成,有

  • 全局的配置(metadata)
  • 每個(gè)模塊獨(dú)立的配置(metadata)
  • 全局配置的一些功能體現(xiàn)在,頂部的導(dǎo)航行,最左邊的導(dǎo)航行等等,這些都是公共的部分。此外還有一些其他的功能,這里就不一一列舉了。模塊獨(dú)立的配置是針對模塊內(nèi)部的配置,每個(gè)模塊的樣式,功能都可以根據(jù)配置的參數(shù)來改變。接下來介紹全局的配置。

    二:Zurmo讀取數(shù)據(jù)順序

    1:系統(tǒng)安裝時(shí)候的順序:

    讀取代碼配置 --> 存入數(shù)據(jù)庫 --> 緩存

    2:以后系統(tǒng)運(yùn)行的時(shí)候順序:

    緩存 --> 數(shù)據(jù)庫 --> 代碼配置

    詳解第一點(diǎn):

    Zurmo安裝的時(shí)候,會(huì)從一些代碼配置文件讀取配置,比如 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;}

    之后會(huì)把這些配置信息存入到數(shù)據(jù)庫的一個(gè)名叫 globalmetadata 的表。配置以序列化的形式存入 serializedmetadata 字段中,我們可以選取 一條 classname 的值為 ZurmoModule 的序列化值解序列出來看看。就可以發(fā)現(xiàn)ZurmoModule的配置是其中的一部分,還有一部分是從其他地方讀取。之后會(huì)存入緩存中。

    PS:有時(shí)候可能會(huì)出現(xiàn)你改了這里的配置,但是頁面卻沒有改變。

    • 原因就是以后系統(tǒng)是先讀緩存。有時(shí)候清除了緩存,但是頁面還是沒有發(fā)生變化,
    • 那是因?yàn)橹笫亲x取數(shù)據(jù)庫的數(shù)據(jù)的,如果你把數(shù)據(jù)庫的對應(yīng)數(shù)據(jù)刪除了,再刷新頁面。有可能會(huì)報(bào)錯(cuò)
    • 因?yàn)檫@個(gè)時(shí)候你沒有把配置存入數(shù)據(jù)庫中。要先執(zhí)行 Update Custom Data 操作,這個(gè)操作的本質(zhì)就是把配置存入globalmetadata 表中。之后再刷新頁面,頁面就發(fā)生改變了。

    上面的注解就是第二點(diǎn)的以后系統(tǒng)運(yùn)行的時(shí)候讀取數(shù)據(jù)的順序了。

    三:清除緩存 和 Update Custom Data的操作

    具體步驟看我在CSDN的文章,這兩點(diǎn)的重要性我也在博客寫了。很多時(shí)候的操作與這兩步密切相關(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ù)的位置遲點(diǎn)再補(bǔ)上。

    如有不對,請指正!

    總結(jié)

    以上是生活随笔為你收集整理的Zurmo - - 全局配置的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。

    如果覺得生活随笔網(wǎng)站內(nèi)容還不錯(cuò),歡迎將生活随笔推薦給好友。