whatsns中如何通过当前页面的路由url找到当前页面使用的模板

2019-03-13 14:41发布

对于新手肯定很苦恼修改模板却不知道模板文件在哪个位置,也许你看完这篇文章后你就能快速上手随意修改模板文件布局和文字了


我们通过url查找法去定位文件位置,whatsnsV3.7后版本都是基于开源的php框架codeigniter开发,MVC模式,做过开发写过代码的基本都知道mvc的定义,mvc思想直接体现在路由的url上。

废话不多说,直接上例子,whatsns中有不少短url,如 q-,article-,c-,u-等等。

下面我们找下问题详情页面模板文件在哪里,如这个地址:https://www.ask2.cn/q-315414.html

比如我们想修改这个详情页面中“相关问题”这个改成“相关已解决”(图一中蓝色圈位置)

看路由是 q-315414.html,这样看是找不到具体文件位置。

知识点一-CI中路由配置文件位置

文件位置:application/config/routes.php

打开routes.php文件后,你可以发现:

$route['q-(:num)'] = 'Question/view/$1';//对问题重写

实际地址是Question/view/$1,没错实际路由是https://www.ask2.cn/question/view/315414.html

通过路由url真实地址,我们可以在控制器文件的方法中找到实际应用这个详情页面模板文件。

知识点二--CI中路由url构造格式

http://你的域名/控制器文件名/控制器方法名/参数1/参数2  


从上面路由格式可以看出控制器文件名称是question.php文件,这个文件中有个方法名称是view

知识点三--CI中MVC文件夹存储位置,控制器文件,视图文件,操作数据库的实体类文件

打开问答根目录下的application文件夹,你会看到controllers,models,views这三个文件夹

controllers文件夹就是控制器文件夹,views文件夹就是存放前后台模板的文件夹,models文件夹一般人不需要动,除非是修改前端显示的数据(从数据库中取的)


这个“question/view/315414”中我们先打开 application/controllers/Question.php文件(控制器文件,因为url中第一个英文名是代表控制器文件名称)

然后在打开的Question.php搜索 “function view()”或者“function view”,找到解析问答详情页面的这个方法位置


到这里,你已经知道解析这个url的是哪个控制器中哪个方法控制的了,然后在这个方法中“}”结束位置找到这段代码“include template ( ‘模板文件名’ );”。

whatsns中控制器里解析模板方法用 include template(‘模板文件名称’)

模板文件具体在application/views/哪个文件夹,请参考后台中系统设置--站点设置,pc和wap对应的模板文件夹(当前应用的),然后在对应的模板文件夹中找到这个‘模板文件名’,上图中‘solve’,对应的是application/views/default/solve.php(pc端,我使用的是默认的模板),application/views/fronzewap/solve.php(wap端,移动端我也使用的默认的模板)。

比如我想修改pc端这个问题详情页面中左侧“相关问答”改成“相关已解决”,那么打开pc端这个问题详情页面模板文件:

application/views/default/solve.php

搜索“相关问答”关键词

找到后直接修改保存上传即可,如果发现模板修改没有生效,记住在后台左下角点击清空缓存(非清理浏览缓存),后台左下角清空缓存后就能显示已修改的内容了。


---码字不易,欢迎收藏评论,多多指教!


赞赏支持

登录 后发表评论
1条评论
行嗒
1楼 · 2019-03-13 14:49

写的很详细,学到了