小技巧,第一点:
1:clearCache 清缓存
2:Update Custom Data ---resolveCustomData=1 更新 metadata
位置如下:
清缓存我不说太多了,主要说Update Custom Data。你在修改Zurmo代码的是会遇到很多的getDefaultMetadata()方法,一般在module和model,view文件中,如果你这里的代码做了修改,就一定要去执行这个选项,不然页面是不会生效的。(个人建议同时还是清一下缓存,比较保险)
在数据库中有一个 globalmetadata 的表,
这个表中存的就是一下关于metadata的设置,这个表很关键,一些Zurmo的全局设置都是在这里存储的。数据库是以序列化的方法存储的。个人建议写一个反序列化的小工具,然后就可以将这些数据解析成数组,我们就可以很好的看里面的内容了。其实里面的内容就是对应某个文件里Metadata的所有设置。
Array
(
[configureMenuItems] => Array
(
[0] => Array
(
[category] => 1
[titleLabel] => eval:Zurmo::t('ZurmoModule', 'Global Configuration')
[descriptionLabel] => eval:Zurmo::t('ZurmoModule', 'Manage Global Configuration')
[route] => /zurmo/default/configurationEdit
[right] => Access Global Configuration
)
[1] => Array
(
[category] => 1
[titleLabel] => eval:Zurmo::t('ZurmoModule', 'Currency Configuration')
[descriptionLabel] => eval:Zurmo::t('ZurmoModule', 'Manage Currency Configuration')
[route] => /zurmo/currency/configurationList
[right] => Access Currency Configuration
)
[2] => Array
(
[category] => 1
[titleLabel] => eval:Zurmo::t('ZurmoModule', 'Languages')
[descriptionLabel] => eval:Zurmo::t('ZurmoModule', 'Manage Active Languages')
[route] => /zurmo/language/configurationList
[right] => Access Global Configuration
)
[3] => Array
(
[category] => 1
[titleLabel] => eval:Zurmo::t('ZurmoModule', 'Developer Tools')
[descriptionLabel] => eval:Zurmo::t('ZurmoModule', 'Access Developer Tools')
[route] => /zurmo/development/
[right] => Access Global Configuration
)
[4] => Array
(
[category] => 1
[titleLabel] => eval:Zurmo::t('ZurmoModule', 'Authentication Configuration')
[descriptionLabel] => eval:Zurmo::t('ZurmoModule', 'Manage Authentication Configuration')
[route] => /zurmo/authentication/configurationEdit
[right] => Access Global Configuration
)
[5] => Array
(
[category] => 1
[titleLabel] => eval:Zurmo::t('ZurmoModule', 'Plugins')
[descriptionLabel] => eval:Zurmo::t('ZurmoModule', 'Manage Plugins and Integrations')
[route] => /zurmo/plugins/configurationEdit
[right] => Access Global Configuration
)
)
[headerMenuItems] => Array
(
[0] => Array
(
[label] => eval:Zurmo::t('ZurmoModule', 'Settings')
[url] => Array
(
[0] => /configuration
)
[right] => Access Administration Tab
[order] => 6
[mobile] =>
)
[1] => Array
(
[label] => eval:Zurmo::t('ZurmoModule', 'Need Support?')
[url] => http://www.zurmo.com/needSupport.php
[order] => 9
[mobile] => 1
)
[2] => Array
(
[label] => eval:Zurmo::t('ZurmoModule', 'About Zurmo')
[url] => Array
(
[0] => /zurmo/default/about
)
[order] => 10
[mobile] => 1
)
)
[configureSubMenuItems] => Array
(
[0] => Array
(
[category] => 2
[titleLabel] => eval:Zurmo::t('ZurmoModule', 'LDAP Configuration')
[descriptionLabel] => eval:Zurmo::t('ZurmoModule', 'Manage LDAP Authentication')
[route] => /zurmo/ldap/configurationEditLdap
[right] => Access Global Configuration
)
)
[adminTabMenuItemsModuleOrdering] => Array
(
[0] => home
[1] => configuration
[2] => designer
[3] => import
[4] => groups
[5] => users
[6] => roles
[7] => workflows
[8] => contactWebForms
)
[tabMenuItemsModuleOrdering] => Array
(
[0] => home
[1] => mashableInbox
[2] => accounts
[3] => leads
[4] => contacts
[5] => opportunities
[6] => marketing
[7] => reports
[8] => products
[9] => animals
)
[globalState] => a:2:{s:14:"autoBuildState";s:5:"valid";s:15:"autoBuildModels";a:3:{i:18;a:2:{s:14:"modelClassName";s:9:"FileModel";s:7:"modelId";i:1;}i:19;a:2:{s:14:"modelClassName";s:11:"FileContent";s:7:"modelId";i:1;}i:40;a:2:{s:14:"modelClassName";s:15:"ExportFileModel";s:7:"modelId";i:1;}}}
[lastZurmoStableVersion] => 2.0.12 ()
[lastAttemptedInfoUpdateTimeStamp] => 1487384449
)
上面的内容就是我反序列化出来的结果,大家解析出来的结果有可能会不一样,因为我已经作了一些修改了,更加详细的内容大家就自己去看的。
对于 clearCache 和 Update Custom Data 是Zurmo本身的机制所决定的,在开发时这是个重要的地方,也是要理解原理的其中的一部分。如果一开始大家不熟悉的话,就修改完代码之后发现页面没有反应的话,就去执行这两步操作吧。
同时注意,这个操作是需要权限的,如果你用一个没有权限的账号去登录,是无法看到这些选项的。
接下来会举一些例子来说明,在下一篇博客中!
如有不对,请指正!