摘要:接下来介绍全局的配置。之后会把这些配置信息存入到数据库的一个名叫的表。要先执行操作,这个操作的本质就是把配置存入表中。
简介:Zurmo的很多功能都是通过配置的形式来完成,有
全局的配置(metadata)
每个模块独立的配置(metadata)
全局配置的一些功能体现在,顶部的导航行,最左边的导航行等等,这些都是公共的部分。此外还有一些其他的功能,这里就不一一列举了。模块独立的配置是针对模块内部的配置,每个模块的样式,功能都可以根据配置的参数来改变。接下来介绍全局的配置。
二:Zurmo读取数据顺序
1:系统安装时候的顺序:
读取代码配置 --> 存入数据库 --> 缓存
2:以后系统运行的时候顺序:
缓存 --> 数据库 --> 代码配置
详解第一点:
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; }
之后会把这些配置信息存入到数据库的一个名叫 globalmetadata 的表。配置以序列化的形式存入 serializedmetadata 字段中,我们可以选取 一条 classname 的值为 ZurmoModule 的序列化值解序列出来看看。就可以发现ZurmoModule的配置是其中的一部分,还有一部分是从其他地方读取。之后会存入缓存中。
PS:有时候可能会出现你改了这里的配置,但是页面却没有改变。
原因就是以后系统是先读缓存。有时候清除了缓存,但是页面还是没有发生变化,
那是因为之后是读取数据库的数据的,如果你把数据库的对应数据删除了,再刷新页面。有可能会报错
因为这个时候你没有把配置存入数据库中。要先执行 Update Custom Data 操作,这个操作的本质就是把配置存入globalmetadata 表中。之后再刷新页面,页面就发生改变了。
上面的注解就是第二点的以后系统运行的时候读取数据的顺序了。
三:清除缓存 和 Update Custom Data的操作
具体步骤看我在CSDN的文章,这两点的重要性我也在博客写了。很多时候的操作与这两步密切相关。
四:getDefaultMetadata()方法 metadata["global"] 数组中的部分配置参数:
configureMenuItems
headerMenuItems
configureSubMenuItems
adminTabMenuItemsModuleOrdering
tabMenuItemsModuleOrdering
headerMenuItems参数对应的页面上:
adminTabMenuItemsModuleOrdering 参数对应的页面上:
tabMenuItemsModuleOrdering 参数对应的页面上:
还有部分的参数的位置迟点再补上。
如有不对,请指正!
文章版权归作者所有,未经允许请勿转载,若此文章存在违规行为,您可以联系管理员删除。
转载请注明本文地址:https://www.ucloud.cn/yun/35884.html
摘要:接下来介绍全局的配置。之后会把这些配置信息存入到数据库的一个名叫的表。要先执行操作,这个操作的本质就是把配置存入表中。 简介:Zurmo的很多功能都是通过配置的形式来完成,有 全局的配置(metadata) 每个模块独立的配置(metadata) 全局配置的一些功能体现在,顶部的导航行,最左边的导航行等等,这些都是公共的部分。此外还有一些其他的功能,这里就不一一列举了。模块独立的配...
摘要:作用不祥与测试目录多对多字段的实现需要用上,还有模块页面模态框里面的数据显示也要等等作用不祥存放视图文件可能与某些视图组件相关的目录模块的全局配置文件上面这些目录里面的下一级目录就不在详细介绍,开发者自己去摸索了。欢迎补充,如有不对,请指正 目录介绍 根目录下的第一层目录 app 代码主目录 redbean redbean 代码目录 yii ...
摘要:作用不祥与测试目录多对多字段的实现需要用上,还有模块页面模态框里面的数据显示也要等等作用不祥存放视图文件可能与某些视图组件相关的目录模块的全局配置文件上面这些目录里面的下一级目录就不在详细介绍,开发者自己去摸索了。欢迎补充,如有不对,请指正 目录介绍 根目录下的第一层目录 app 代码主目录 redbean redbean 代码目录 yii ...
阅读 2593·2021-11-22 15:25
阅读 1386·2021-11-15 17:59
阅读 1111·2021-09-29 09:34
阅读 1503·2021-09-26 09:46
阅读 3014·2021-09-02 15:40
阅读 1156·2019-08-30 15:56
阅读 3241·2019-08-30 15:55
阅读 677·2019-08-29 17:08