没有合适的资源?快使用搜索试试~ 我知道了~
首页drupal PHPTemplate主题引擎
drupal PHPTemplate主题引擎
3星 · 超过75%的资源 需积分: 9 12 下载量 83 浏览量
更新于2023-03-16
评论
收藏 611KB PDF 举报
PHPTemplate是由Adrian Rossouw编写的一个drupal主题引擎,Adrian Rossouw还是Drupal 4.5主题改革的幕后推动者。 它使用something.tpl.php模板文件来实现Drupal的theme_something()函数的功能。Drupal的主题化函数文档可参看Development Plumbing站点。每个模板文件都包含了一个HTML骨架,里面嵌入了一些简单的PHP语句,用来输出动态数据。因此,如果你仅仅了解一点PHP的话,那么PHPTemplate应该是你的很好的选择:使用一些基本的PHP代码片断,你可以很容易的创建高级的drupal主题。 如果你不了解PHP的话,那么PHPTemplate仍然是一个很好的选择,因为这里面仅涉及到了很少的代码,而且这些代码都是一个模式的。你可以复制粘贴这些代码就可以了。 一个扩展的论坛讨论提供了创建PHPTemplate背后的原因。
资源详情
资源评论
资源推荐
PHPTemplate 主题引擎
PHPTemplate 是由 Adrian Rossouw 编写的一个 drupal 主题引擎,Adrian
Rossouw 还是 Drupal 4.5 主题改革的幕后推动者。
它使用 something.tpl.php 模板文件来实现 Drupal 的 theme_something()
函数的功能。Drupal 的主题化函数文档可参看 Development Plumbing 站点。每
个模板文件都包含了一个 HTML 骨架,里面嵌入了一些简单的 PHP 语句,用来输
出动态数据。因此,如果你仅仅了解一点 PHP 的话,那么 PHPTemplate 应该是你
的很好的选择:使用一些基本的 PHP 代码片断,你可以很容易的创建高级的
drupal 主题。
如果你不了解 PHP 的话,那么 PHPTemplate 仍然是一个很好的选择,因为
这里面仅涉及到了很少的代码,而且这些代码都是一个模式的。你可以复制粘贴
这些代码就可以了。
一个扩展的论坛讨论提供了创建 PHPTemplate 背后的原因。
提示:输出可用的变量
输出变量数组
<?php
print '<pre>';
print_r(get_defined_vars());
print '</pre>';
?>
使用 HTML 标记输出变量数组
<?php
print '<pre>';
print htmlspecialchars(print_r(get_defined_vars(), TRUE), ENT_QUOTES);
print '</pre>';
?>
创建一个新的 PHPTemplate
Block.tpl.php
Box.tpl.php
Comment.tpl.php
Node.tpl.php
Page.tpl.php
为你的模板文件添加其它变量
PHPTemplate 中的区域
template.php:覆写其它的主题函数
XTemplate 到 PHPTemplate 的转换
相关联接:http://drupal.org/phptemplate , http://zhupou.cn
创建一个新的 PHPTemplate 主题
为了创建一个新的 PHPTemplate 主题,你需要在你的 themes 目录下,创建一
个新的目录,例如 themes/mytheme.接着,你需要在该目录下创建一个名为
page.tpl.php 的文件.或者你也可以拷贝一个已有主题,仅仅改一下名字.对于
Drupal 5,你可以基于 Zen 或者 Blue breeze 来构建自己的主题.
page.tpl.php 是唯一的一个必须的文件.它将覆写 theme('page')函数,用来输出
页面的最终内容,包括各种修饰,比如页首、标签、面包屑、左右栏、和页脚等等。
You can create files to override the following functions:
你可以创建模板文件来覆写下面的函数
theme('page') (page.tpl.php):页面的主题化
theme('block') (block.tpl.php): 区块的主题化
theme('box') (box.tpl.php):主区域中的一个通用容器(box)的主题化
theme('comment') (comment.tpl.php):评论的主题化
theme('node') (node.tpl.php):节点的主题化
Themes/engines/phptemplate 下面包含了这些模板文件的样板,对于
page.tpl.php 的例子可参看 box_grey。简单的将这些模板文件拷贝到你的
theme/mytheme 目录下,然后编辑它们。注意,对于 PHPTemplate 主题,你需要
通过访问 administer > themes
,
来刷新它的缓存,从而识别出新的.tpl.php 模板文
件。
如果你要覆写的主题函数,在这里没有列出来的话,你需要自己提供一个覆
写。
相关联接: http://drupal.org/node/11819 , http://zhupou.cn
Block.tpl.php
用于输出区块中(页面的左右栏)的内容.这个模板是可选的,通过拷贝默认
的模板文件,并修改它,就可以覆写这个模板.
模板可用的变量
$block 对象包括:
$block->module
生成该区块的模块的名称.
$block->delta
区块在其模块中的 id.
$block->subject
区块标题.
$block->content
区块的 html 内容
$block->status
区块的状态(0 或者 1).
$block->region
区域名称,默认可用的区域有'left', 'right', 'header' 和'footer'(左栏,
右栏,页首,页脚).
$block->throttle:
节流阀设置.
其它变量:
$directory
主题所在的目录,比如 themes/garland 或者 themes/garland/minelli.
$is_front
如果当前页面为 drupal 站点首页的话,返回 True。
$id
展示的区块的序列 id,比如,第一个区块为 1,第 2 个区块为 2,等等。
$block_id
与$id 一样,但是在左右栏中将被重置。
$zebra
'odd' 或者'even'。这对于使用 css 创建斑马线非常有用。
$block_zebra
与$zebra 一样,但是在左右栏中将被重置。
默认模板
默认的 block.tpl.php,位于 themes/engines/phptemplate/block.tpl.php。
<div id="block-<?php print $block->module .'-'. $block->delta; ?>"
class="block block-<?php print $block->module ?>">
<?php if ($block->subject): ?>
<h2><?php print $block->subject ?></h2>
<?php endif;?>
<div class="content"><?php print $block->content ?></div>
</div>
Drupal 4.6 vs. Drupal 4.7 及更高版本
在 Drupal 4.6 中这些变量是不同的:
$block->region 只允许使用 0(左栏)或者 1(右栏)。
使用$seqid 代替$id。
使用$block_seqid 代替$block_id。
在 drupal4.7 及更高的版本中,除了默认的'left', 'right', 'header' 和
'footer'以外,你还可以定义自己的区域。
推荐阅读:
PHPTemplate 中的区域
将区块的内容放在任何位置
将 drupal4.6 主题转化为 drupal4.7 板
添加一个“编辑该区块”链接
按区域或者模块,对区块进行主题化
相关链接: http://drupal.org/node/11813 , http://zhupou.cn
添加一个“编辑这个区块”链接
我为客户创建过一些 drupal 站点,站点创建后由客户来维护,我发现客户
对于节点、页面、区块这些 drupal 概念非常困惑,所以我在所有的自定义区块
的底部都添加了一个链接“编辑这个区块”,而只有具有区块管理权限的用户才
可以看到这个链接(同样,我对 page.tpl.php 也作了相应的修改,使得只有具
有页面管理权限的用户才能看到页面右下角的编辑链接)。
<div class="<?php print "block block-$block->module" ?>" id="<?php print
"block-$block->module-$block->delta"; ?>">
<?php print $block->subject ?>
<div class="content"><?php print $block->content ?>
<?php if ($block->module == "block"):?>
<?php if (user_access('administer blocks')) :?>
<br /><center><a href='/admin/block/edit/<?php print
$block->delta;?>'>(edit this block)</a></center>
<?php endif; ?>
<?php endif; ?>
</div>
</div>
注意编辑链接的路径在各个 drupal 版本下有所不同。
/admin/build/block/configure 用于 drupal5.x
/admin/block/configure 用于 drupal4.7
/admin/block/edit/ 用于 drupal4.6
相关链接: http://drupal.org/node/120334, http://zhupou.cn
按区域或者模块,对区块进行主题化
在 Drupal5.0 中,设计者可以基于特定的区块、区块所属的模块、以及区块
所在的区域,为区块创建多个 tpl.php 文件。
模板文件的查找顺序如下:
block-[module]-[delta].tpl.php
block-[module].tpl.php
block-[region].tpl.php
block.tpl.php
例如,用户登录区块的 delta 为 0。假如你将它放在了左栏中,当它显示时,
PHPTemplate 将按照下面的顺序寻找模板文件:
block-user-0.tpl.php
block-user.tpl.php
block-left.tpl.php
block.tpl.php
通过查看页面的源文件,你可以找到区块所属的模块以及 delta:每个区块
的主 DIV 都使用了下面的类和 ID:
<div class="block block-{module}" id="block-{module}-{delta}">
使用 CSS 自定义样式
你也可以使用这些类和 IDs 为区块添加 CSS 规则,可用于所有的区块,特定
模块的区块,或者单个区块。(为了通过区域来自定义区块的样式,你需要在选
择器中使用整个区域 DIV 的类或者 ID)。
注意,delta 一般是一个数字:模块中区块的排序,从 0 开始。在一些情况
下,delta 也可以是一个名字:为了给 Views 模块创建的区块定义外观,你可以
使用 block-views-[name of your block].tpl.php。
用于不同区块类型的另类模板(drupal4.7)
相关链接:http://drupal.org/node/104319 , http://zhupou.cn
用于不同区块类型的可选模板
(drupal4.7)
注意:在 Drupal 5 中,这更简单了。只需要像前文所讲的那样就可以了。
方法 1
这里所讲的具有一些技巧性,它允许你为特定的区块创建一个单独的
block.tpl.php 模板。你可以使用区块名称或者区块 ID 进行控制。下面是一个
修改后的 block.tpl.php,在前面带了一个条件语句。你所要做的就是编辑
module == '[模块名]' 和 delta == '[区块名或 id]'部分就可以了。
下面是我当前的 block.tpl.php,条件里面的区块信息是我站点特有的。如
果你想在你的 drupal 站点上使用它的话,你需要按照前面所说的对其进行修改。
这个是在我的站点上,为两个区块加载一个自定义 block.tpl.php,你可以根据
需要用于,1 个,6 个等等。对于每个自定义模板,你都需要一个条件语句("if
"部分)。
剩余56页未读,继续阅读
qianchangnian
- 粉丝: 0
- 资源: 1
上传资源 快速赚钱
- 我的内容管理 收起
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助
会员权益专享
最新资源
- ExcelVBA中的Range和Cells用法说明.pdf
- 基于单片机的电梯控制模型设计.doc
- 主成分分析和因子分析.pptx
- 共享笔记服务系统论文.doc
- 基于数据治理体系的数据中台实践分享.pptx
- 变压器的铭牌和额定值.pptx
- 计算机网络课程设计报告--用winsock设计Ping应用程序.doc
- 高电压技术课件:第03章 液体和固体介质的电气特性.pdf
- Oracle商务智能精华介绍.pptx
- 基于单片机的输液滴速控制系统设计文档.doc
- dw考试题 5套.pdf
- 学生档案管理系统详细设计说明书.doc
- 操作系统PPT课件.pptx
- 智慧路边停车管理系统方案.pptx
- 【企业内控系列】企业内部控制之人力资源管理控制(17页).doc
- 温度传感器分类与特点.pptx
资源上传下载、课程学习等过程中有任何疑问或建议,欢迎提出宝贵意见哦~我们会及时处理!
点击此处反馈
安全验证
文档复制为VIP权益,开通VIP直接复制
信息提交成功
评论1