- 浏览: 13632774 次
- 性别:
- 来自: 洛杉矶
文章分类
- 全部博客 (1994)
- Php / Pear / Mysql / Node.js (378)
- Javascript /Jquery / Bootstrap / Web (435)
- Phone / IOS / Objective-C / Swift (137)
- Ubuntu / Mac / Github / Aptana / Nginx / Shell / Linux (335)
- Perl / Koha / Ruby / Markdown (8)
- Java / Jsp (12)
- Python 2 / Wxpython (25)
- Codeigniter / CakePHP (32)
- Div / Css / XML / HTML5 (179)
- WP / Joomla! / Magento / Shopify / Drupal / Moodle / Zimbra (275)
- Apache / VPN / Software (31)
- AS3.0/2.0 / Flex / Flash (45)
- Smarty (6)
- SEO (24)
- Google / Facebook / Pinterest / SNS (80)
- Tools (22)
最新评论
-
1455975567:
xuezhongyu01 写道wocan23 写道我想问下那个 ...
Mysql: LBS实现查找附近的人 (两经纬度之间的距离) -
xuezhongyu01:
wocan23 写道我想问下那个111.1是怎么得来的我也看不 ...
Mysql: LBS实现查找附近的人 (两经纬度之间的距离) -
18335864773:
试试 pageoffice 在线打开 PDF 文件吧. pag ...
jquery在线预览PDF文件,打开PDF文件 -
青春依旧:
opacity: 0.5; 个人喜欢这种方式!关于其他css特 ...
css透明度的设置 (兼容所有浏览器) -
July01:
推荐用StratoIO打印控件,浏览器和系统的兼容性都很好,而 ...
搞定网页打印自动分页问题
Drupal是一个开源的内容管理系统(CMS) 平台,它是用PHP写成的。主要用于构造提供多种功能和服务的动态网站,这些功能包括用户管理(UserAdministration)、发布工作流 (Publishing Workflow)、讨论、新闻聚合(NewsAggregation)、元数据(Metadata)操作和用于内容共享的XML发布。Drupal有一个优秀的模块化结构,提供了许多模块,包括短消息、个性化书签、网站管理、Blog、日记、电子商务、电子出版、留言簿、Job、网上电影院、论坛、投票 等模块。并且Drupal模块的下载、安装、定制非常方便。
一、Drupal主题模板的构造
Drupal主题模板是一些定义描述层的文件组合,你也可以创造子主题(sub-theme),只有.info文件是必须的,当然大多数主题和子主题同样需要其他文件。
.info
.info文件的文件格式类似于INI文件,它是用来配置主题的静态文本文件,每一行都有一个关键词和一个相对的值,中间用“等号”相连(范例:key = value),分号用来注释一行字符。有些关键词使用数组的形式来表现一组关联的值。
.info包含以下关键词:
-
name 必须
- description 推荐
- screenshot
- version 不推荐
- core 必须
- engine 多数情况下并须
- base theme
- regions
- features
- stylesheets
- scripts
- php
范例(通常不会这么完整):
name = A fantasy name //模板名称是必须的,这是用户可读的名字,与主题的Drupal内部名字可以分开单独进行设置。这在这里,字符的限制则很少。 description = Tableless multi-column theme designed for blogs. //推荐,主题的简短描述 screenshot = screenshot.png //截图键时可选的,它告诉Drupal主题的缩略图在哪里,在选择主题页面(admin/build/themes)里用到了缩略图.如果.info文件中忽略了该键,那么Drupal就会使用主题目录下面的”screenshot.png”文件。 只有当你的缩略图不叫"screenshot.png",或者你不想把它放到你主题的根目录(比如,screenshot = images/screenshot.png)下面时,才使用该键。 version = 1.0 当发布一个新的版本时,drupal.org会自动为其添加一个版本号。当你为Drupal贡献主题时,你可以忽略该值。如果你的主题没有放到drupal.org上的话,你可以为你的主题指定任意一个版本号。 core = 7.x //内核,必须的,从Drupal 6.x开始,模块和主题的.info文件都必须指明它们兼容的Drupal内核主版本号。这里设的值将与DRUPAL_CORE_COMPATIBILITY常量相比较。如果不匹配的话,那么主题将被禁用。 engine = phptemplate //主题引擎,推荐供主题使用。如果没有提供引擎的话,那么主题就是独立的,比如,实现一个”.theme”文件。大多数主题都使用”phptemplate”作为默认引擎。 PHPTemplate负责查找主题用到的主题函数和模板。只有当你理解你在做什么的时候,你才可以忽略这一设置。 base theme = garland //子主题可以声明一个基主题。这允许主题的继承,也就是说基主题中的资源将被传递下来并在子主题中使用。子主题可以声明别的子主题作为其基主题,也就是允许多重继承的存在。基主题的名字为其在Drupal内部的名字。下面是Garland的子主题Minnelli的相应设置。 regions[header] = Header regions[highlighted] = Highlighted regions[help] = Help regions[content] = Content regions[sidebar_first] = Left sidebar regions[sidebar_second] = Right sidebar regions[footer] = Footer //我们这样定义主题中的区域,声明键’regions’,紧跟着“[”,接下来是内部名字,接着是“]”,然后是一个等号,右边是用户可读的区域名字。例如,regions[theRegion] = The region name. features[] = logo features[] = name features[] = slogan features[] = node_user_picture features[] = comment_user_picture features[] = favicon features[] = main_menu features[] = secondary_menu //特性 许多由主题控制输出的页面元素,可以在主题的配置页面启用或者禁用. “features”键控制着出现在主题配置页面上的复选框.对于一个主题,如果你不想为其定义某个复选框时,着非常有用.为了删去某个复选框,只需要在”features”中将其删除即可.如果一个也没有定义的话,那么会输出所有默认的复选框. 下面的例子列出了所有由features键控制的元素.通过注释掉primary_links和secondary_links元素,那么站点管理员就不会看到这两个复选框了. stylesheets[all][] = theStyle.css stylesheets[print][] = print.css //传统方式,主题可自动的使用默认的style.css,并且可以在它们的template.php文件中通过调用drupal_add_css()来添加其它样式表。从Drupal6开始,主题也可以通过.info文件来添加样式表。 scripts[] = myscript.js //传统方式,主题通过在template.php文件中调用drupal_add_js()来添加javascripts脚本。从Drupal6开始,主题也可以通过.info文件来添加javascripts了。 php = 4.3.3 //这个定义了主题支持的PHP最低版本。其默认值源自DRUPAL_MINIMUM_PHP常量,它是Drupal内核所需要的php最低版本。对于一个新的版本,如果需要的话,可以对其进行重新定义。而对于大多数的主题,都不应该添加这一项。 ; Information added by drupal.org packaging script on 2011-04-23 version = "7.0" project = "drupal" datestamp = "1202913006"
二、核心模板 Core Template
默认模板:
In order to override these templates, all you need to do is copy them into your theme folder and clear the theme registry.
To override templates in a more targeted way, see the section on Template Suggestions.
注意: Drupal 6 版本的 block.tpl.php 属于 “modules/system/…” 一部分.
- comment-wrapper.tpl.php 评论框架
- comment.tpl.php 评论内容
注意: comment-folded.tpl.php在 Drupal 7 中已被弃用.
注意: field.tpl.php 是Drupal 7 的新模板.
- forum-icon.tpl.php
- forum-list.tpl.php
- forum-submitted.tpl.php
- forum-topic-list.tpl.php
- forums.tpl.php
注意: forum-topic-navigation.tpl.php 在 Drupal 7 中已被弃用.
注意: overlay.tpl.php 是Drupal 7 的新模板.
- poll-bar–block.tpl.php
- poll-bar.tpl.php
- poll-results–block.tpl.php
- poll-results.tpl.php
- poll-vote.tpl.php
注意: 表单模板 poll-results-block.tpl.php 和 poll-bar-block.tpl.php 在 Drupal 7中被改名添加双破折号.
注意: search-theme-form.tpl.php 在 Drupal 7 中已被弃用.
- page.tpl.php 页面模版
- maintenance-page.tpl.php
- region.tpl.php 区域模版
- html.tpl.php 主体模版
注意: box.tpl.php 在 Drupal 7 中已被弃用. html.tpl.php 和 region.tpl.php 被添加.
注意: taxonomy-term.tpl.php 是Drupal 7 的新模板.
注意: toolbar.tpl.php 是Drupal 7 的新模板.
注意:如果想重写这些模板,就将tpl.php文件复制到模板目录修改即可。我最开始重写html.tpl.php文件,不论怎么改,怎么刷新都没有反应,后来找到了清理Drupal缓存的方法:db_query("DELETE FROM {cache};");,将这段代码复制到模板目录的template.php中即可,运行后就可以看到效果了,使用后记得删除它。
来源:http://project.qqworld.org/archives/823
主题是一系列定义表示层的文件。你还可以建一个或多个子主题(sub-themes)来改变一个主题,只有.info文件是必须的,但很多主题和子主题都会使用一些其它的文件。下图表示了在一个典型主题和子主题的文件结构:
Drupal所必须靠.info文件才能看到你的主题。原数据,样式表,JavaScripts,区块区域和其它内容可以在这里定义。但其它内容全部是可选的。
主题的内部名字也是继承于这个名字,例如,如果它的名字命名为 "eureka.info",则Drupal会将该主题的名字作为“eureka”看待,(注:以前的版本可能以文件夹的名称作为主题名称)
这些模板用作为 xHTML 标记和 PHP 变量。在某些情况下,它们还输出其他类型的数据,例如xml rss。每一个 .tpl.php 文件处理特定的可主题化数据的输出,而有些时候,它能通过“ 这些建议处理多个multiple .tpl.php 文件。它们是可选的,如果在你的主题中没有这些文件,则会回退到缺省的输出。在这些文件中尽量控制住复杂的逻辑。在很多情况下,应该是简单的xHTML 标记和PHP变量。在核心和贡献模块中有许多的这些模板文件。把它们拷到你的主题目录中会使Drupal读取你的这个版本。
注: The 主题注册有关于存在的主题数据的缓存信息。当你添加 移除或相关主题文件或功能函数时,你需要重置它。
对所有的条件逻辑和输出数据的处理过程,有template.php 文件。它不是必须的,但是保持.tpl.php文件整洁,常习惯于让 预处理器在产生变量前同.tpl.php文件中的标记合并。 自定义函数 重裁主题函数或者其它自定义的原始输出都可以在这里完成。这个文件必须使用PHP的开始标记 "<?php"打头。而结束标记并不需要,并且也建议你略过它。
表面上,子主题同其它主题的行为是一样的。唯一区别是它继承了父主题的资源。要创建一个,则在.info文件中需要有一个“基主题”入口。在这里,它可以从父主题继承资源。还可以有多层的继承;例如,子主题可以声明其它的子主题作为它的基主题。对此没有固定的限制。
Drupal 5 以前的版本需要子主题目录在父主题目录中,现在不需要了。
- 要让主题能运行,图标和截图不是绝对需要,但建议有,特别是当你将主题贡献到Drupal库中时。截图会显示在内部的主题管理页面,以及如果有相应权限的话用户账号设置中可以选择主题。更多信息请参见 截图指南
- 为支持管理UI设置或在图标,搜索,使命等等上面的 "特性" ,可以使用 "theme-settings.php" 文件。这是一个高级特性,更多的信息参见手册中的 高级设置
- 对于 颜色模块支持,需要一个有 "color.inc" 文件及相关文件的目录 "color"来支持。
- 如果你想使用核心主题来做的话,使用 子主题 或者拷贝一份重命名一下。 强烈不建议直接修改Garland 或 Minnelli。因为它们要用来安装和更新过程。
- 所有非核心的或者对核心进行修改的主题应该安装在 "sites/all/themes" 目录下以同核心文件分开。如果你用一套Drupal代码计划运行多个站点,你可以将主题分别放在特定的站点目录下,参见 多站点安装.
发表评论
-
Magento: 后台显示图片不能找到 Image file was not found on product tab
2016-08-30 02:22 2883I was uploading some images f ... -
理解WordPress的PingBack和TrackBack
2016-08-26 02:21 5669pingback和trackback的功 ... -
零基础 Amazon Web Services (AWS) 入门教程图文版(四)
2016-06-07 11:40 982自上一篇之后,5天过去了,这篇文章总算是挤出来了... 其实 ... -
零基础 Amazon Web Services (AWS) 入门教程图文版(三)
2016-06-07 11:41 2000原则上WDCP安装好了,就可以直接使用了,FTP、MySQL ... -
零基础 Amazon Web Services (AWS) 入门教程图文版(二)
2016-06-07 01:33 948上一篇讲到,主机正常运转了。但是此时如果直接访问公网IP是 ... -
零基础 Amazon Web Services (AWS) 入门教程图文版(一)
2016-06-07 01:31 21549现在小站唯一的流量都靠AWS这个关键词了,刚好要用AWS重新 ... -
零基础 Amazon Web Services (AWS) 入门教程 (列表)
2016-06-07 01:32 2033在 Amazon Web Services 上托 ... -
Magento 1.9:新订单通知 Admin Order Notifier
2016-06-02 02:48 800Here is a little Mag ... -
Magento 1.9.X 系列教程
2016-05-14 02:44 2245Magento安装下载教学: Magento教程 1 ... -
Magento: 产品页面下jquery change函数失效 Call javascript function onchange product option
2016-05-05 06:39 1698明显的原因是change函数跟magento默认的oncha ... -
Magento: 判断是否为手机浏览 Optimise Web's Mobile Detect Class for Magento
2016-04-29 07:01 1122项目地址:Optimise Web's Mobile Det ... -
Magento: Gird 和 form 区域 Module Development Series – Magento Admin Module
2016-04-28 02:39 634In this tutorial, we are goi ... -
Magento: addAttributeToFilter 和 addFieldToFilter 的区别 Difference between addAttri
2016-04-28 02:34 983addAttributeToFilter is use ... -
Magento: 后台获取menu链接 Getting the admin panel urls
2016-04-28 02:34 735The url for customer page in t ... -
Magento : 调用文件上传 upload file frontend
2016-04-27 01:25 1317bool mkdir ( string $pathname ... -
Magento: 自定义用户登录导向页面 Redirect Customer to Previous Page After Login
2016-04-26 02:45 1818Configuration Settings – L ... -
Magento: 代替flash上传 How to disable Flash uploader in Magento (product images and
2016-04-06 05:04 10831. 替换产品页flash上传按钮 - 使用 Du ... -
Magento: 在客户账户中添加自定义链接 My Account Add Link
2016-04-05 14:05 1196This extension add new link an ... -
Magento: 根据产品属性加载产品信息 Load A Category or Product by an Attribute
2016-03-26 01:35 895Load a Product by ID <?ph ... -
Magento模块开发之数据库SQL操作方法说明
2016-03-26 01:31 1292今天主要来看Magento中的Mysql4/Resource ...
相关推荐
drupal7主题教学指南,值得看哦, 信不信由你,反正我是信了
这个是一个不错的drupal7的主题,是学习drupal主题开发的经典模版,你会对drupal7主题开发有很大的作用。
Drupal7主题化菜谱 Drupal 7 Theming Cookbook 《Drupal7主题化菜谱》(Drupal 7 Theming Cookbook)是一本介绍定制开发Drupal主题的手册,几乎涵盖了Drupal主题化工作所有方面的知识,作者是印度Drupal大牛Karthik ...
drupal-template-helper, Drupal 8.Drupal 7和背景CMS模板的Chrome 扩展 模板 helperChrome 8,Drupal 7和背景CMS模板的DevTools扩展: https://chrome.google.com/webstore/detail/ppiceaegogijpjodfpiimifhbnaifb
drupal7中使用的一个主题,很清爽,功能也还不错。
Drupal模板开发时常用的模板变量汇总列表!从网上看到的,分享给我我一样的Drupal菜鸟使用!
Drupal QuickFix模板
drupal7图文安装教程
一本关于Drupal 7的英文书 Beginning Drupal 7 2010年出版的。
drupal 主题包,带有实例文件,下载后安装可用
Drupal Classic主题
drupal7 主题开发文档 英文版,讲述了drupal7主题的开发过程,主题制作者和入门建议学习
本教程默认开发者已经熟悉Drupal的...明白Drupal的节点,区块等基础内容,我们将从零开始创建一套新的主题。 内容安排: 首先我们制作一套完整的主题,并使之能够使用,然后再介绍复写机制, 最后介绍子主题的制作。
包含:Drupal7宝典; Drupal开发指南; Using Drupal(强烈推荐) 值得你下载!
一本很实用的Drupal7开发书籍 适合各个年龄段的开发人员
drupal 7 以附加中文语言包,安装时,选择简体中文即可。
Drupal 7 高级开发第三版 Drupal7专业开发指南
drupal7模块开发实例,这里用一个简单的模块开发实例来讲述drupal7模块开发
Drupal 7 Social Networking
Drupal7 API