php smarty
网站目录下
top.php(网站头文件)其模板在文件夹根目录temps里.文件夹hotel(酒店版块)
有个index.php 要包含根目录下的top.php。
index.tpl文件在hotel下的temps文件夹里。
请问如何在酒店的首页里调用 跟目下的top.php使其显示。
(注:top.php可以单独运行,无任何问题,可我在index.tpl里包含top.php他就提示找不到top.tpl)来,指点下我。各位。

解决方案 »

  1.   

    1、在根目录下建个common.php 文件,如下<?php
    define('S_ROOT', dirname(__FILE__).DIRECTORY_SEPARATOR);
    ?>还可以写一些 common函数放里面
    2、在hotel下调用 common.php(本级用:./ 上级用:../ 下一级:文件名/)
    在index.php里include S_ROOT.'./top.php';
      

  2.   

    top.php可以单独运行,无任何问题,可我在index.tpl里包含top.php他就提示找不到top.tpl是你的目录对应的不对,你是在index.php里引入了根目录的top.php,这个就把top.php里的内容写入到hotel这个目录下,这时这些代码就都是在hotel目录里了,而top.php里又以相对路径引用了top.tpl模板那这个引入语句当然是在hotel这个目录里找temps里的top.tpl模板,这样当然找不到了,所以你要不就把top.php和temps里的top.tpl都移到hotel目录里,要不就把hotel目录里的index.php和它对应的模块移到根目录去才行。
      

  3.   

    先说楼上2楼的吧。
    我要是把:[引用]
    所以你要不就把top.php和temps里的top.tpl都移到hotel目录里,要不就把hotel目录里的index.php和它对应的模块移到根目录去才行我知道一动能够解决问题。可这样,那么所有版块里都有top.tpl
    我要改上面东西,所有版块的top.tpl都得改一次么。
      

  4.   

    是啊
    所以我不知道这个系统你是自己写的还是用了别人的,我觉得在top.php里引用模板的这个写法肯定设计的不好,要不然就不会有这样的问题了,
    既然是公用的,那就所有内容都放到一个文件里,要不就要用绝对路径引用。
      

  5.   

    既然你使用 smarty ,那么就应该遵守它的约定。
    全部模板都应该放在 smarty::$template_dir 指定的目录中