欢迎各位兄弟 发布技术文章

这里的技术是共享的

You are here

主题 默认的模板建议文件 模板建议 顺序

shiping1 的头像
主题包含哪些文件
    1)主题名.info文件
    2)page.tpl.php(可能还有各种分支)
    3)node.tpl.php(可能还有各种分支)
    4)block.tpl.php(也许可能没有)
    4)box.tpl.php 评论的容器设置,其实一般不用改,一般用不到(也许可能没有)
    5)comment.tpl.php(也许可能没有)
    6)template.php文件(也许可能没有)
    7)phptemplate.engine一般用不到(也许可能没有)里面的函数可以重写的

themes->engines-> 模板引擎目录
去drupal网站上找smarty,因为drupal已为它封装
 不要在smarty网站上找smarty
sites/all/themes 的目录下
1)http://drupal.org/project/smarty
  放到 engine的目录中就可以了
2)主题的目录在 sites/all/themes 下面
themes 的 主题目录中应包含的文件
block.tpl.php 区块的tpl文件
box.tpl.php 评论容器的显示 一般不需要更改 ,但是是可以更改的
default.tpl.php 暂时无用
phptemplate.engine 函数库 里面包含模板函数 不必要拷到主题目录中 是可以重写的
3)模板机制的原理
  设置好各种变量
  传递给模板变量 page.tpl.php,node.tpl.php等
  显示
  phptemplate根据不同的内容,重新组织页面,页面的不同部分
    是由不同的主题文件来控制的
4)phpTemplate页面的组成
  page.tpl.php模板来控制整个页面的显示
  有一部分是区块来显示的,读的是 block.tpl.php
  另有一部分是node.tpl.php来控制
  以摘要形式显示的时候也是读node.tpl.php,它也是读title及body的部分(摘要) 其它就不读取了
  如果不读view 也可以手动的修改 node.tpl.php文件来进行摘要简单的列表的处理

 创建主题步骤
 一)创建主题文件夹
 二)准备设计 somepage.html
         somestyle.css
             images
 三)决定是否在现有的主题上开发,drupal的主题它一般不规范
    有一种叫zen的主题非常适合在它上面开发
    将theme/engines/phptemplate/下的
    除default.tpl.php和 phptemplate.engine外的所有文件,
    copy到mytheme
 四)Garland 默认的 较友好的 可通过UI调节颜色配置
    Chameleon(不建议,因为未使用phpTemplate主题引擎
      不是某种意义上的MVC,不能更好的表示层与逻辑层分离)
   Zen是drupal的一个主题框架
      自带两个主题 普通版 像Garland主题使用
      经典版(Zen Classic) 比较优秀 效率高
      自带一个创建工具包 StarterKit 其实是一堆模板文件
     简洁 良好的布局 可以随意修改主题 兼容各个浏览器 符合标准(对宽窄屏也友好)
 五)page.tpl.php 根据url来决定调用哪个模板文件
    http://localhost/?q=node/2/edit
    找(1)page-node-edit.tpl.php
      (2)page-node-2.tpl.php  
      (3)page-node-tpl.php
      (4)page.tpl.php
      如果还找不到 就回到引擎中,根据默认的形式输出来
      http://localhost/   page-front.tpl.php(首页)
  六)page.tpl.php 代码片断
    预定义的变量
  七)node.tpl.php
    每个内容都是node
    只要和内容的显示有关 一定调用node.tpl.php
    在列表中显示,(view除外)使用node.tpl.php
        views中(full, teaser)是会调用node.tpl.php
     views中(table view, list view)不会调用node.tpl.php
    node会根据节点类型,可以调用不同的node.tpl.php
      比如  node-blog.tpl.php node-story.tpl.php
  
普通分类: