对视图层(view)扩展

2014-09-01 15:13:29
王春生
19622
最后编辑:王春生 于 2014-09-01 16:50:47
简介:视图文件的扩展分为两种方式,一种是完全覆盖,第二种是通过钩子机制来扩展。

视图文件的扩展分为两种方式,一种是完全覆盖,第二种是通过钩子机制来扩展。

一、完全覆盖

视图文件的覆盖可以通过完全覆盖的方式来重新定义。比如我对bug模块的create页面进行扩展。原来的视图文件是存放在module/bug/view/create.html.php。如果需要对其进行扩展,只需要将这个create.html.php拷贝到module/bug/ext/view/create.html.php,然后对这个网页进行修改就可以了。

需要 注意 拷贝 过去 时候, 包含 路径 相应 改动。

二、通过钩子进行扩展

第一种方法比较简单,也比较直观,但有它的缺点,就是代码无法重用。假设后面版本有了新的改动之后,老版本的视图文件和新版本的程序就有可能不兼容。所以可以考虑通过钩子脚本来实现代码的重用。钩子脚本的命名规则为方法名. 扩展名.html.hook.php。该钩子文件会在整个模板加载完之后加载,在里面可以执行相应的php代码,或者js代码。这样就提供了一种通过js来动态修改页面元素的机制,从而达到对页面元素的完全控制。

比如misc/ext/view/getsid.color.html.hook.php

$('#topbar').css('color', 'red');
通过上面这段js代码,实现了对顶部导航条的加红显示。
评论列表
刘梦洁 2019-08-17 15:02:55
禅道是不是用zui插件开发的,我用了zui的片段,样式没有生效?
王春生 2019-08-18 13:55:12
是用zui开发的。不过禅道里面使用的zui没有把所有的组件都包含进来。
nothing0000 2019-07-29 17:04:14
请问我要在bug中增加字段,类似“影响版本”这个字段,如何增加,多谢?
王春生 2019-07-30 11:57:11
需要了解我们的框架修改代码开发。
我们最新的企业版增加了工作流引擎,可以自定义添加。可以联系我们网站的销售试用下。
mmw 2019-05-14 18:01:52
我通过第一种方式对模板覆盖之后,升级之后会不会覆盖啊?还又数据库添加新的字段,升级的时候怎么才能不覆盖,把我添加的字段覆盖没有了?
王春生 2019-05-15 08:16:32
用扩展就不会。数据库结构你们新增的字段只要和我们不冲突就没事。
代学 2019-04-23 16:16:22
请问下,如果采用完全覆盖方式对视图层进行扩展,它对应的js是否也一定要扩展?
王春生 2019-04-23 16:34:22
看你的需要啦。控制权都是在你这里嘛。
zjc 2019-04-08 14:00:05
你好 ,现在的view的扩展,按照狗子扩展的规则,扩展方式有没有变化?按照上面说的做似乎无效,扩展名具体怎么写,钩子扩展的方法步骤现在是怎么样的?
zjc 2019-04-08 14:16:21
就是说钩子扩展的具体步骤是什么,有没有变化?命名的时候方法名,扩展名有需要注意的吗?先单独对view层写扩展文件应该是没有问题的吧?
王春生 2019-04-09 11:53:49
没有变化。注意目录和文件名大小写。
snail_chen 2019-03-17 20:43:07
请问如何控制页面上的必填项,我指的是在前端控制,不是在config里面设置字段。我对比了下页面上非必填项和必填项(带红色星号)的前端代码,没看出有啥区别。而且即使带了红色星号,只要config里面没设置,这个字段不填内容也可以提交请求。
snail_chen 2019-03-17 20:45:17
PS:我想问的是如何让某个文本框或下拉框后面带红色星号
王春生 2019-03-19 09:03:33
参考每个模块配置文件里面的requiredFiled设置。
王春生 2019-03-20 16:24:03
control层的代码有检查的。我们系统里面的检查都是在后端做的。然后返回检查结果到前端。
小白 2018-12-03 14:33:57
请问下,用完全覆盖的方式扩展视图,红字说的“需要 注意 的 是 拷贝 过去 时候, 包含 路径 要 做 相应 的 改动”,指的是改哪个路径,需要做怎样的改动?
王春生 2018-12-10 09:07:44
include的公用头文件的路径要修改。
彭先生 2017-12-28 17:02:57
同时扩展pc端和移动端,应该怎么区分目录,要求是扩展,不修改原来的自带文件,请给出路径提示,谢谢
王春生 2017-12-29 08:43:42
pc端和移动端的模板文件本来是分开的。
王春生 2017-12-29 08:52:31
判断终端的类型,然后调用不同的模板文件。可以看一下我们蝉知里面的逻辑。www.chanzhi.org
咕噜咕噜 2017-10-25 20:10:47
问下,我要对message前台页面进行扩展,不通过后台编辑主题的方式,直接在template的message里面加个ext扩展可以吗?我现在在template的message里面加个ext扩展文件夹,ext里面包含css和js还有*.html.php,但是访问地址确是ext外面的*.html.php ,是怎么回事?具体要怎么操作?
王春生 2017-10-26 09:27:10
前台的模板是单独分目录放的。
咕噜咕噜 2017-10-26 09:51:33
前台模板目录就是放到那个template吧,能不能支持用ext扩展呢
王春生 2017-10-27 14:55:55
可以。
Candy 2017-04-21 11:26:23
发送邮件的接口 不支持 群发邮件吗
王春生 2017-04-25 08:24:20
你可以自己做个邮件列表。发信到邮件列表就可以。
1/2
发表评论
评论通过审核后显示。