PHP主题是Drupal主题化的最直接的方式了。一个PHP主题包含了对Drupal内置主题函数的覆写。大多数情况下,你只需要覆写基本的主题钩子(比如,页面,节点,区块等等),但是你还可以覆写你想要的任何东西,比如列表和链接的主题。

为了创建一个PHP主题,你需要在你的themes目录下面创建一个子目录(我们这里假定为themes/mytheme),在子目录中,我们创建一个mytheme.theme文件。这个文件是普通的PHP文件,所以一定要包含<?php ?>标签。

在Drupal中,默认的主题函数的命名方式为theme_something() 或者theme_module_something(),后者允许模块为Drupal添加可以主题化的默认外观。一些基本的主题函数,比如theme_error() 和theme_table(),从它们的名字我们就可以看出,它们分别返回一个错误消息和一个表格的HTML代码。由模块定义的主题函数,包括theme_forum_display() 和theme_node_list()。

在你的.theme文件中,你可以覆写任何主题函数。为了覆写主题函数theme_something(),你需要在你的.theme文件中定义一个mytheme_something()函数。这个函数应该和原有函数保持一致。你可以将原有函数拷贝过来,重命名函数名,然后按照需求进行修改。为了避免在将来升级Drupal时出现问题,最好标出原始drupal函数与你定制版本的区别。这样当原有版本被修改时,你能方便的跟进。

必须的函数

除了这些主题函数以外,你还需要两个函数。

第一个就是mytheme_features()。这个函数返回以恶字符串数组,用来标记你主题所支持的特性(比如,搜索框,logo,使命(mission)…)。主题系统会在管理员界面提供这些特性的复选框和相应的设置。在你的代码中,你可以使用theme_get_setting()来获取这些设置的值。如果你打算把你的主题提交到drupal.org上的话,那么建议你实现所有的drupal特性,这样他人就可以定制你的主题了。

可用特性有:

logo

可用的logo。主题应该检查以下设置:default_logo (布尔值) 和logo_path (字符串)

toggle_logo

Logo可被开启和关闭

toggle_name

站名可被开启和关闭

toggle_search

搜索框可被开启和关闭

toggle_slogan

站点标语可被开启和关闭

toggle_mission

站点使命可被开启和关闭

toggle_node_user_picture

展示挨着节点的用户图片,可选的

toggle_comment_user_picture

展示挨着评论的用户图片,可选的

下面是标准的chameleon.theme中的_features()函数:

function chameleon_features() {

return array(

'logo',

'toggle_name',

'toggle_slogan');

}

?>

第2个必须的函数是mytheme_regions(),它定义了主题中可用的区域。

下面是chameleon.theme的_regions()函数:

function chameleon_regions() {

return array(

'left' => t('left sidebar'),

'right' => t('right sidebar')

);

}

?>

对于你定义的每个区域,你可能想包含一个代码片断,用来在页面中输出该区域的内容。一般情况下,代码是这个样子的:

if ($blocks = theme_blocks('regionname')) {

$output .= '[wrapping content]' . $blocks . '[/wrapping content]';

}

?>

注意这里的'regionname'是数组中的键,而不是它的文本描述(比如,使用'left',而不是'left sidebar')。这里的'wrapping content'(包装内容),是用来在你的区域内容外面添加一些div, td,文本,或者其它元素的。

所以,为了添加额外的区域,你需要 (a)将你的区域添加到你的_regions()函数的区域列表中, (b)如上所示,将结果内容输出到页面中去。这里的代码简洁易懂,不妨尝试一下。

目录名称

注意,于模板和样式不同,主题是和它们的目录名称绑定到一起的。如果你想复制一个主题,你需要对它的目录,.theme文件,以及.theme文件中的函数名,进行重命名。

drupal php 版本,纯PHP drupal主题相关推荐

  1. drupal与html转换,在Drupal中将HTMl添加到CCK

    原始HTML CCK字段(Drupal 6) - 没有过滤器,格式或编辑器 简单修复!只需使用纯文本格式即可过滤未经过滤的HTML.然后在构建节点时将其转换回字段.tpl中的html. CCK字段上的 ...

  2. Drupal实战(think in Drupal 2,3合集)正式出版了

    Drupal实战一书,由机械工业出版社出版了,现在,可以在当当.亚马逊,china-pub上订购了,订购地址: CHina-pub: http://product.china-pub.com/3768 ...

  3. Drupal的介绍----第一章:Drupal的介绍

    本章提供一个什么样的内容管理系统(CMS)是一个基本的概述,Drupal的如何填充作为一个CMS,Drupal的主要组成部分,以及如何作用,创建新的Drupal的网站内容. 内容管理系统 在最简单的形 ...

  4. drupal 使用补丁_使用Drupal解决大学需求

    drupal 使用补丁 网络出版和体育媒体行业的资深人士, 杰夫Diecks导致专业的服务,并在客户交付Mediacurrent ,是Drupal社区的活跃成员. 杰夫还为当地的路易斯安那Drupal ...

  5. ios设置tabbar背景颜色_WooCommerce微信小程序2.9.3版本发布 后台设置主题色 底栏装修定制...

    更新又来咯! 本次更新主要以配置小程序方面的体验优化为主 通过后台设置主题色 以往更换小程序的主题色,需要重新下载小程序,万一小程序已经改动过,下载后又要重新修改一次 本次更新后,主题色可直接在后台选 ...

  6. FL Studio 2023最新发布的21版本新功能介绍/主题包/下载安装激活教程

    万众期待的 FL Studio 21 版本将于近日正式发布上线,目前在紧锣密鼓的安排上线中,届时所有购买正版 FL Studio 的用户,都可以免费升级到21版! 按照惯例,本次新版也会增加全新插件, ...

  7. WordPress主题 wpdx 响应式CMS/Blog 开源无限制版本含用户中心主题[v3.5版]

    现用主题 wpdx 也已更新至 3.5 版本,在原有横向布局(主菜单在左边)的基础上,再添加垂直布局(主菜单在上方),每种布局都有 5 种配色,选择更自由!同时主菜单已经支持 3 级菜单啦!依旧响应式 ...

  8. CentOS6.6 32位 Minimal版本纯编译安装Nginx Mysql PHP Memcached

    声明:部分编译指令在博客编辑器里好像被处理了,如双横线变成单横线了等等,于是在本地生成了一个pdf版本,在下面地址可以下载. LNMP+Memcached CentOS是红帽发行的免费的稳定Linux ...

  9. php版本纯静态什么意思,什么是php数据库?与纯静态空间有什么关系?

    PHP 是一种用来制作动态网页的服务器端脚本语言.你通过PHP和HTML创建页面.当访问者打开网页时,服务器端便会处理 PHP 指令,然后把其处理结果送到访问者的浏览器上面,就好像 ASP 或者是 C ...

  10. 【一】Drupal 入门之新建主题

    安装完成 Drupal 以后,在根目录会看到一个  themes 主题目录,这时,Drupal 已经提供了几个默认的主题风格,接下来我们需要创建自己的主题(我们将主题创建在 sites/all/the ...

最新文章

  1. 皮一皮:如此父母...究竟是好还是不好(沉思)...
  2. 寺库等奢侈品电商补贴下的奢侈品市场,会是怎样的未来
  3. Pandas——loc、iloc、ix 函数区别
  4. mysql mydumper_MySQL 之mydumper安装详解
  5. 5187. 收集足够苹果的最小花园周长
  6. Kotlin——初级篇(一):最详细的环境搭建
  7. windows 安装php7.4并配置phpstorm环境
  8. 服务器运维实习周记,设备维护实习周记 - 实习周记 - 书业网.doc
  9. 悉尼大学 GC in Data Science 学习总结
  10. 基于c#的IE 代理服务器设置
  11. Duang,Duang,H5 +酷炫效果+干货,此时不收更待何时
  12. C语言手机通讯录系统
  13. 计算机文化学习笔记3
  14. 解决浏览器被毒霸篡改问题
  15. px、pt、dpi、dip、分辨率、屏幕尺寸等等概念
  16. gif图片的体积怎么缩小?如何压缩动图大小?
  17. 云流量成为数据中心的王者
  18. (附源码)基于Python的“书怡”在线书店系统的设计与实现 毕业设计082332
  19. 数据提取或数据恢复工具
  20. git客户端安装(windows)

热门文章

  1. 【VMware】vmware15 安装win10教程【史上最详细图文教程】
  2. 10大最毒路边小吃盘点,你常吃吗?
  3. 共基极放大电路_轻松辨别放大电路的正负反馈
  4. 云服务器ubuntu建网站,云服务器ubuntu建网站
  5. 芯片代理商哪家专业 品质是否有保障
  6. linux shell 内存利用率,linux上使用shell脚本查看内存使用率
  7. 文件服务器 磁盘配额,文件服务器磁盘配额管理.doc
  8. C语言或C++中不同类型指针所占内存大小
  9. 托福听力速记符号单词表
  10. 七种常见的数据分析法之:对比分析法