带有Codeigniter的Smarty模板,当hirarichy中的目录太多时无法加载模板
我正在使用CI Smarty
https://github.com/Vheissu/Ci-Smarty
据我所知,这有两个问题。但我打开此问题的原因是,如果.tpl
文件位于另一个目录的目录中,则无法加载该文件。
e-g这是我当前SmartyTemplate的目录结构
--Themes
--SomeOtherThemeName
--Default //Default Theme Directory i am currently using
--css
--js
--images
--views
--admin (directory)
--sitesettings (directory)
--site-settings.tpl (template file) //This Template file will Not Work
如果我将此模板文件移动到父目录admin
,如果我调用它,它将起作用,但如果我从sitesettings
目录内部调用它,它将不起作用。
我这样称呼它。
function functionName(){
$data['title']="Some Title";
$this->parser->parse('admin/sitesettings/site-settings.tpl',$this->data);
}
简单地说,Smarty只允许我在视图文件夹下的层次结构中有一个额外的目录,我想知道是否有任何修复方法,以便我可以在层次结构中有无限或至少更多的目录,这样我就不会搞砸文件系统。
更新: 如果任何人想查看我的项目代码,请转到此GitHub项目。
https://github.com/pakistanihaider/HouseRentSystem
有关此项目的数据库。
http://www.mediafire.com/view/1jp9u906r8i10u0/houserentsystem.sql
注意:无法在此处附加文件,因此已将.sql
文件上载到Mediafire并添加了链接。如果有任何规则禁止这样做,管理员当然可以删除链接,但请让我知道给予文件链接的正确方式。
不知何故找到了主要问题,这要归功于@Sauryabhat。
我认为{{extends file='adminLayout.tpl'}}
中存在问题
它如何知道文件存在的位置,我的意思是,如果我将文件移动到大多数内部目录中,它如何知道主布局文件退出的位置,它将成为子级。扩展文件时需要定义路径吗?
更新: 我也试图定义布局的路径,但似乎也不适合我。
$this->parser->parse('extends:layouts/adminLayout.tpl|file:systemConfigurationSitePreferences.tpl',$this->data);
如果我将失败放在admin目录中,它会起作用,但如果我将文件移到admin目录的另一个目录中,它就会停止工作。
解决方案
天哪,在这么长的时间里,我几乎尝试了所有的方法,我甚至下载了Zebra CMS来看看为什么有代码可以工作,而不是我的代码,xD我甚至尝试用我的代码更改那里的代码,即使知道它不会解决任何问题,只是希望。XD
但最终我终于看到了真正的问题, 当我尝试将模板文件放入目录的另一个目录中时,相对路径在管理布局中受到干扰。我在主布局文件中包含了一些单独文件中的文件组件,如菜单选项卡。 E-G:
{{include file="../admin/ui_components/user-media.tpl" name="user media"}}
因此,如果模板位于1个目录中,则模板工作正常,但当我尝试再添加1个目录并将文件放入其中时,路径出错。
CI Smarty最大的问题是,如果TPL文件有任何错误,它永远不会给出错误,只给出空白页。
如果错误系统是好的,我可能会更快地找到解决方案。
总之,现在刚刚添加了基本路径,所以无论我进入多少个目录,都不会有任何问题。
感谢您的所有支持。看来我的赏金白白浪费了..
相关文章