Drupal精华教程集1 目 录 第一部分外观主题 1.Drupal打造中国化主题系列教程. 2.http:lw.comeongame.coml的设计流程. .7 3.Drup阳模板建议8 4.page.tpl.php的图形化显示. 10 5.Drupale6的模板文件详解 11 6.drupale6.x中创建新的主题模版和区域(Regions) 13 7.Block(区块)管理. 15 8.如何为Drupal网站创建-个Magazine Style的首页..19 9.对一个Drupal主题的剖析......26 10.主题的.inf0文件........ .28 11.Drupal6开发用版型 31 12.7个步骤让您创建专属的Drupal版型......31 13.Drupal Theme-按照内容类型设计页面布局.. .31 14.garland主题页面分析与修改详解 .32 15.ZEN theme主题修改成果小结..… 38 16.小技巧-使用firebug幫忙定制theme..… .39 17.Drupal实现国内门户网站的风格 .41 第二部分CCK VIEWS模块使用 1.Views2.0从入门到精通.… 42 2.CCK&Views模块使用小结 .45 3.使用Drupal6 Views Module系列(-)...70 4.CCK的介绍及使用78 5.drupal的iews学习. .81 6.drupal教程views模块教程(显示同一类型的文章)....83 7.使用views创建一个最新文章列表区块 .85 8.综合首页VIEWS开发问题
Drupal 精华教程集 1 目 录 第一部分 外观主题 1. Drupal 打造中国化主题系列教程………………………………..……..……3 2. http://www.comeongame.com/ 的设计流程…………………………………..7 3. Drupal 模板建议 ……………………………………………………………..8 4. page.tpl.php 的图形化显示………………………………………………....10 5. Drupal6 的模板文件详解 …………………………………………………..11 6. drupal6.x 中创建新的主题模版和区域(Regions) ………………….……..13 7. Block(区块)管理…………………………………………………………..15 8. 如何为 Drupal 网站创建一个 Magazine Style 的首页 …………………..19 9. 对一个 Drupal 主题的剖析…………………………………………………..26 10. 主题的.info 文件……………………………………………………….. …..28 11. Drupal 6 开发用版型 …………………………………………………..…..31 12. 7 个步骤让您创建专属的 Drupal 版型 ………………………..…………..31 13. Drupal Theme --- 按照内容类型设计页面布局……………….…………..31 14. garland 主题页面分析与修改详解 ……………… ………..……………..32 15. ZEN theme 主题修改成果小结……………………………….……………..38 16. 小技巧--使用 firebug 幫忙定制 theme……………………………………..39 17. Drupal 实现国内门户网站的风格 ……………………...…………………..41 第二部分 CCK VIEWS 模块使用 1. Views2.0 从入门到精通……………………………..……………….………42 2. CCK & Views 模块使用小结…………………………..…………………….45 3. 使用 Drupal 6 Views Module 系列(一) ……………………….……………70 4. CCK 的介绍及使用 ……………………………………….…………………78 5. drupal 的 views 学习……………………………………………….…………81 6. drupal 教程 views 模块教程(显示同一类型的文章)……………………83 7. 使用 views 创建一个最新文章列表区块 ……………………………………85 8. 综合首页 VIEWS 开发问题 ……………………………………………………
87 9.Drup阳Views2摸块使用指南.87 10.首頁=Panels2+Views:2... .89 11.cck contemplate theming技巧.. .94 12.CCK图像字段:Imagefield. .97 13.实例BlueSne0w的工作平台(项目管理)98 14.Vews2教程创建一个显示相关网页的区块..103 15.V1EWS實作公告+分類.109 16.Views2與Tab.117 17.Dup阳项目实战:公司员工订餐系统120 18.Drupal模块-CCK和Views的使用...126 19.Drupal6中添加"相关链接"的方法.126 20.用CCK模组做一个"站内相关连结"的栏位 ..131 21.Drupal综合实战:CCK+VIEWS=CMS....133 第三部分其它备用模块 1.Panels2.X教學(基應用篇)...............140 2.Panels的使用.149 3.利用Panels模組來實做tab效果的block. .151 4.drupal模块教程-pathauto模块 .154 5.drupal教程giucktabs模块教程】 .159 6.Quicktabs模块的使用小技巧161 7.views 8.DRUPAL需要的模组 .162 第四部分案例分析 1.使用drupal建的芥菜种书房 181 2.drupal版山寨"开心网" .183 3.Popular Science Magazine架站案例分享.185 4.DRUPAL官方网站几个案例分析 188 第五部分技巧分享 1.编写提示 188
2 87 9. Drupal Views2 模块使用指南………………………………………..………87 10.首頁=Panels2+Views2 ………………………………………..……………89 11. cck contemplate theming 技巧……………………………………….……94 12. CCK 图像字段:Imagefield …………………………………………….……97 13. 实例 BlueSnow 的工作平台(项目管理) …………………………..………98 14. Views 2 教程:创建一个显示相关网页的区块……………………………103 15. VIEWS實作公告+分類………………………………..……………………109 16. Views 2 與 Tab …………………………………..………………………117 17. Drupal 项目实战:公司员工订餐系统…………………………….………120 18. Drupal 模块-CCK 和 Views 的使用…………………………….…………126 19. Drupal 6 中添加 "相关链接" 的方法………………………….…………126 20. 用 CCK 模组做一个 "站内相关连结" 的栏位 …………..….…………131 21. Drupal 综合实战 :CCK+VIEWS=CMS…………………………..……133 第三部分 其它备用模块 1. Panels 2.X 教學 (基礎應用篇) ……………………………………………140 2. Panels 的使用……………………………………………….………………149 3. 利用 Panels 模組來實做 tab 效果的 block…………………….………151 4. drupal 模块教程-pathauto 模块 ……………………………………………154 5. drupal 教程 qiucktabs 模块教程……………………………………………159 6. Quicktabs 模块的使用小技巧…………………….…………………………161 7. Views Slideshow ……………………………………………………………161 8. DRUPAL 需要的模组 …………………………………….…………………162 第四部分 案例分析 1. 使用 drupal 建的芥菜种书房 ………………………………………………181 2. drupal 版山寨"开心网" ……………………………………...………………183 3. Popular Science Magazine 架站案例分享 ……….………………………185 4. DRUPAL 官方网站几个案例分析 ……………………………….…………188 第五部分 技巧分享 1. 编写提示 ………………………………..…………………………………188
2.drupal开发建站系统的建议 .189 3.drupal建站常用小技巧191 4.有用的资源(含网址及视频教程). Drupal打造中国化主题系列教程 4-7th Drupal制作主题,主要有2个部分是比较有难度, 一个就是静态页面的制作,要熟悉W3C的标准,熟卷N+CSS,熟 悉各种网页制作工具,在一个就是由静态页面转化成Dupl主题,即将内容放置到Drupal的区块当中:我们在这里,从 拿到静态项面以后开始讲述,首先要分析一下这一个主题的版式和制作流程 (1)主题分为前后台两个部分,我使用的是drupal经典主题gaad更改得到我的主题的,这样我只覆写前台的主题, 后台的样式依然采用的garland. 因为后台都是自己看,适用默认的garland无论是标准还是大小,都是比较适合做管理界面的。 Drupaluser..cn的前台主愿主要是首页,列表页面,内容显示页面和其他静态页面,也就是静态页面只需要做4个页面就 OK. 首页我们使用page-文件覆写 列表页面我们使用page--taxonomy.tpl.php文件覆写 内容显示我们使用page-story.tplphp和node-story.tpl.php来覆写 其他的静态页面我们使用page-page.tpl.php和node-page.tpl.php来覆写 3
3 2. drupal 开发建站系统的建议 ………………………………………………189 3. drupal 建站常用小技巧 ……………………………………………………191 4.有用的资源(含网址及视频教程)………………………….………………… Drupal 打造中国化主题系列教程 Drupal 制作主题,主要有 2 个部分是比较有难度,一个就是静态页面的制作,要熟悉 W3C 的标准,熟悉 div+CSS,熟 悉各种网页制作工具,在一个就是由静态页面转化成 Drupal 主题,即将内容放置到 Drupal 的区块当中;我们在这里,从 拿到静态页面以后开始讲述,首先要分析一下这一个主题的版式和制作流程: (1)主题分为前后台两个部分,我使用的是 drupal 经典主题 garland 更改得到我的主题的,这样我只覆写前台的主题, 后台的样式依然采用的 garland, 因为后台都是自己看,适用默认的 garland 无论是标准还是大小,都是比较适合做管理界面的。 Drupaluser.cn 的前台主题主要是首页,列表页面,内容显示页面和其他静态页面,也就是静态页面只需要做 4 个页面就 OK。 首页我们使用 page-front.tpl.php 文件覆写 列表页面我们使用 page-taxonomy.tpl.php 文件覆写 内容显示我们使用 page-story.tpl.php 和 node-story.tpl.php 来覆写 其他的静态页面我们使用 page-page.tpl.php 和 node-page.tpl.php 来覆写
至于为什么能采用上述方式,请参阅htp /drupaluser,.cn/category/theme中的相关模板覆写的文章,采用上述方式是因 为这样可以不用修改gaad的默认模板,不会影响到后台模板的样式,这样看起来,比较像前后台相分离,这样也比较 符合中国人使用CMS前后台相分离的习惯 (2)流程方面,首先要在in0文件中添加区域,然后将一部分静态的内容做成区块,直接写在block文件中,例如 htp:drupaluser..cn中最下面 的版权声明和友情链接,都是直接书写html到区块中的方式,然后将4个html页面布局拆分,使用iews的要做iews 的切文件,其他的相应 制作上面所述的4个文件的1文件就OK,我们下面将一步一步详细说明」 创建区域 我们首先分析一下Drupal使用者中文社区hp:/drupaluser..cn的主题应该划分为哪一些区域,首页分为上、中、下 个大区域,右边有可以分为上下两个大块区域,这样划分,也是为了照顾关工方面比较容易用css控制d的0a 所以我们定义了 regions top] Top regions[left region1]Left Region1 regionslleft region2]Left Region2 regions(right region1]=Right Region1 regions right region2]=Right Region2 你或许我,为什么不使用garland定制好的左右区城呢,如果我把区块放置在garland的左边,么在后台也将会显示 哪个区块,这样是显示在几个页面还可以通过设置区块的显示位置来控制,而一旦多了,比较乱,所以我们对前台的左右 区域重新订制,当然你仍然可以只用garland的主愿左右区域,我为了以后好扩展,使用了此方法, 对于其他的列表页和内容页面,我定义了一个右侧的区域,这个主要考虑以后会放置AD,所以起了个名字叫做AD regior 呵,目前主要放置的是最新文章的一个views列表 提醒:在duPa16中,如果你自定义了区域,则需要把默认的5个区城也写上,否则是写你自己定义的区域,它不会显示 默认的5个区城,如下: regionsheftl Left sidebar regions rightl Right sidebar regions content]Content Header regions[footer] =Footer 在下一讲当中,我们介绍添加几个静态的区块 静态区块 对于一些不经常变化,需要硬编码而且需要多次调用的内容,我采用了直接将其htm代码放入blok中,然后将bioc必 放置在region中就OK 比如Drupal使用者中文社区http://drupaluser..cn]最上面的一个区块,就是使编码放上去的,包含了最上面的一个导航 和下面的L0g0部分 导航管理”-“站点创建”-“区块”:选择添加区块:在正文中将静态t页而中的代码写入即可,这里要提示的是,需要启 用php代码模块,因为在这里的路径,需要使用php代码写入drupal的变量,输入格式当然要使用php code格式: 4
4 至于为什么能采用上述方式,请参阅 http://drupaluser.cn/category/theme 中的相关模板覆写的文章,采用上述方式是因 为这样可以不用修改 garland 的默认模板,不会影响到后台模板的样式,这样看起来,比较像前后台相分离,这样也比较 符合中国人使用 CMS 前后台相分离的习惯 (2)流程方面,首先要在 info 文件中添加区域,然后将一部分静态的内容做成区块,直接写在 block 文件中,例如 http://drupaluser.cn 中最下面 的版权声明和友情链接,都是直接书写 html 到区块中的方式,然后将 4 个 html 页面布局拆分,使用 views 的要做 views 的 tpl 文件,其他的相应 制作上面所述的 4 个文件的 tpl 文件就 OK,我们下面将一步一步详细说明。 创建区域 我们首先分析一下 Drupal 使用者中文社区[ http://drupaluser.cn ]的主题应该划分为哪一些区域,首页分为上、中、下三 个大区域,右边有可以分为上下两个大块区域,这样划分,也是为了照顾美工方面比较容易用 css 控制 div 的 float 所以我们定义了 regions[top] = Top regions[left_region1] = Left Region1 regions[left_region2] = Left Region2 regions[right_region1] = Right Region1 regions[right_region2] = Right Region2 你或许问我,为什么不使用 garland 定制好的左右区域呢,如果我把区块放置在 garland 的左边,那么在后台也将会显示 那个区块,这样是显示在几个页面还可以通过设置区块的显示位置来控制,而一旦多了,比较乱,所以我们对前台的左右 区域重新订制,当然你仍然可以只用 garland 的主题左右区域,我为了以后好扩展,使用了此方法。 对于其他的列表页和内容页面,我定义了一个右侧的区域,这个主要考虑以后会放置 AD,所以起了个名字叫做 AD region, 呵呵,目前主要放置的是最新文章的一个 views 列表 regions[ad_region] = AD Region 提醒:在 drupal6 中,如果你自定义了区域,则需要把默认的 5 个区域也写上,否则是写你自己定义的区域,它不会显示 默认的 5 个区域,如下: regions[left] = Left sidebar regions[right] = Right sidebar regions[content] = Content regions[header] = Header regions[footer] = Footer 在下一讲当中,我们介绍添加几个静态的区块 静态区块 对于一些不经常变化,需要硬编码而且需要多次调用的内容,我采用了直接将其 html 代码放入 block 中,然后将 block 放置在 region 中就 OK 比如 Drupal 使用者中文社区[ http://drupaluser.cn ]最上面的一个区块,就是硬编码放上去的,包含了最上面的一个导航 和下面的 Logo 部分 导航“管理”--“站点创建”--“区块”;选择添加区块;在正文中将静态 html 页面中的代码写入即可,这里要提示的是,需要启 用 php 代码模块,因为在这里的路径,需要使用 php 代码写入 drupal 的变量,输入格式当然要使用 php code 格式;
提示:在区块中使用ohp code華常危险,如果php代码输入错误,有可能整个站点将不能访问:笔者就因为粗心,搞错 过一个字母,而不得已修改数据库才制除错误的,请各位谨慎使用。 页面可见性设置中,设置“在特定页面上显示区块,这里填入你要将此区块显示在那一个页面上 在这里解释一点,你这样添加到页面的区块,drupal会使用bloc以.pl,php模板显示区块的标签和css,所以我们在page 中并没有使用$style样式 添加css,而是手动添加的css样式:即便是有drupal歌认的dv标签包着,也不会影响到我们静态页中做好的样式,请 大家放心使用就OK 下一节,我们将自定义page-contenttype..tpl.php和node-contenttype.pl,php的页面 创建tpl文件 Drupal使用者中文社区[http//drupaluser..cnl的tol文件主要是以下几个:首页我们使用page-font.tpl.php文件覆写 列表页面我们使用page-taxonomy.tpl.php文件覆写:内容显示我们使用page-stoy.tplphp和node-story..tpl.php来覆写 其他的静态页面我们使用page-page..tpl,php和node-page.tpl.php来覆写 其中page-stoy.tpl.php和page-page.pl.php不是默认就会起作用,比较常见的有两种方法可以让他起作用: 种是drupal的风格 在emplate.php中覆写函数实现,这种方法老葛的hupou上面有介绍,在此不再述 另一种是比较容易理解的凤格,可以在page.plpp上面写一个判断,让他根据内容类型自己选择模板文件, if(Snode->type=pagearg()()Idelete)(include page-page.tplphp:) else if(Snode->type='story&arg()()=delete)(include page-story.tplphp: se(f/include page.tplphp中的原米的函数.】 这样可以和覆写函数得到一样的效果,这样微,只是为了不改动garland默认的page.pl,php, 这里而的样式就可以自己写了,我酸取一段分析如下: page-front.tpl,.php中的 (1)输出了自定义的css, 而没有用Ssye,也没有在in6文件中加入这两个样式 /css/layout.css"> /css/main.css"> ②输出了几个区域中的内容 sdiv class="c"> </dive <div class="partC
5 提示:在区块中使用 php code 非常危险,如果 php 代码输入错误,有可能整个站点将不能访问;笔者就因为粗心,搞错 过一个字母,而不得已修改数据库才删除错误的,请各位谨慎使用。 页面可见性设置中,设置“在特定页面上显示区块”,这里填入你要将此区块显示在那一个页面上 在这里解释一点,你这样添加到页面的区块,drupal 会使用 block.tpl.php 模板显示区块的标签和 css,所以我们在 page 中并没有使用$style 样式 添加 css,而是手动添加的 css 样式;即便是有 drupal 默认的 div 标签包着,也不会影响到我们静态页中做好的样式,请 大家放心使用就 OK 下一节,我们将自定义 page-contenttype.tpl.php 和 node-contenttype.tpl.php 的页面 创建 tpl 文件 Drupal 使用者中文社区[ http://drupaluser.cn ]的 tpl 文件主要是以下几个:首页我们使用 page-front.tpl.php 文件覆写 列表页面我们使用 page-taxonomy.tpl.php 文件覆写;内容显示我们使用 page-story.tpl.php 和 node-story.tpl.php 来覆写 其他的静态页面我们使用 page-page.tpl.php 和 node-page.tpl.php 来覆写 其中 page-story.tpl.php 和 page-page.tpl.php 不是默认就会起作用,比较常见的有两种方法可以让他起作用: 一种是 drupal 的风格,在 template.php 中覆写函数实现,这种方法老葛的 zhupou 上面有介绍,在此不再赘述了 另一种是比较容易理解的风格,可以在 page.tpl.php 上面写一个判断,让他根据内容类型自己选择模板文件, 如以下写法: type == 'page' && arg(2) != 'edit'&& arg(2) != 'delete') { include 'page-page.tpl.php'; } else if($node->type == 'story' && arg(2) != 'edit'&& arg(2) != 'delete') { include 'page-story.tpl.php'; } else{ //include page.tpl.php 中的原来的函数。} ?> 这样可以和覆写函数得到一样的效果,这样做,只是为了不改动 garland 默认的 page.tpl.php。 这里面的样式就可以自己写了,我截取一段分析如下: page-front.tpl.php 中的 (1)输出了自定义的 css,而没有用$style,也没有在 info 文件中加入这两个样式 /css/layout.css"> /css/main.css"> (2)输出了几个区域中的内容
(3)输出了导航菜虽 <?php print theme(links.Sprimary links)? </dive 其他的page页而类似,非常简单,id class写好了用css挖制样式 在下一讲当中,我将介绍一下我的es列表的创建:这是中国化主恩的关键之处 创建views列表 我估计大家感觉Drupal使用者[http:/drupaluser..cn】站点最中国化的地方应该是四个文章列表了吧,可呵 国内CMS的一个特点就是做列表了,这一点比较符合国人的习惯,这一讲当中,将介绍一下ws生成文章列表, 详细的views使用,诗参看http://drupaluser,.cn站内的相关文章,在此只是大概说一下主要的和需要注意的地方 (1)进入news,点击“添加 views name:ies区块的名称,比如Drupal theme block views type:选择节点 (2)进入Mews的详细配置页面, Fields项目中选择节点:标题"和节点:post date,即列表包含了两项,即标题和发布时间,不要忘记标塑 关联到节点的u. 过滤器项目就是选择你要生成那一个分类的内容了,这里选择了Dup1主题制作分类的文章,其他根据自己的需要添 加 Sort criteria:排序,一般我都是有两个排序,首先按照是否置项,其次是发布时间 basic setting中有几个看要注意的地方 sye最好选择列表方式 Row style:最好选择Fields方式 这样点击下面的预览看看是不是自己想要的文章列表,这样功能方面我们就OK了, 下一讲,我们将介绍一下如何覆写news输出的样式,做成Drupaluser,.cn首页那样的文章区块 覆写views主题 本章节只是大概介绍一下Drupal使用者中文社区http://drupaluser..cn首页当中下面四个views列表区块的履写方式 更详细的介绍,请期待Views2.0入门教程 在根据上一章节当中创建好的views中,在iews列表页面的操作框右侧选样block,点击add display 这样在basic settings中的Theme infomation中,会看例类似以下四个文件的横写: (1)覆写全局输出,整个views布局,如果你的es是一个页面的话,通过覆写这个文件,可以政变页面的布同 Display output:views-view.tpl.php.views-view-Drupal-Using-block.tpl.php.views-view--default.tpl.php. views-view--Drupal-Using-block--default.tpl.php (2)覆写Mews列表,即可以通过次文件覆写掉ves的列表的样式,我就是覆写的这一个文件 Style output:views-view-list.tpl.php.views-view-list--Drupal-Using-block.tpl.php.views-view-list-default.tpl.php. views-view-list-Drupal-Using-block-default.tpl.php (3)覆写iews列表一行的样式 6
6 (3)输出了导航菜单 其他的 page 页面类似,非常简单,id class 写好了用 css 控制样式 在下一讲当中,我将介绍一下我的 views 列表的创建;这是中国化主题的关键之处 创建 views 列表 我估计大家感觉 Drupal 使用者[ http://drupaluser.cn ] 站点最中国化的地方应该是 四个文章列表了吧,呵呵 国内 CMS 的一个特点就是做列表了,这一点比较符合国人的习惯,这一讲当中,将介绍一下 views 生成文章列表。 详细的 views 使用,请参看 http://drupaluser.cn 站内的相关文章,在此只是大概说一下主要的和需要注意的地方 (1)进入 views,点击“添加”, views name:views 区块的名称,比如 Drupal_theme_block views type :选择 “节点”; (2)进入 views 的详细配置页面, Fields 项目中 选择“节点:标题”和“节点:post date”,即列表包含了两项,即标题和发布时间,不要忘记标题 关联到节点的 url。 过滤器 项目 就是选择你要生成那一个分类的内容了,这里选择了 Drupal 主题制作分类的文章,其他根据自己的需要添 加 Sort criteria :排序,一般我都是有两个排序,首先按照是否置顶,其次是发布时间 basic setting 中有几个需要注意的地方 style 最好选择列表方式 Row style:最好选择 Fields 方式 这样点击下面的预览看看是不是自己想要的文章列表,这样 功能方面我们就 OK 了, 下一讲,我们将介绍一下如何覆写 views 输出的样式,做成 Drupaluser,cn 首页那样的文章区块 覆写 views 主题 本章节只是大概介绍一下 Drupal 使用者中文社区[http://drupaluser.cn]首页当中 下面四个 views 列表区块的覆写方式 更详细的介绍,请期待 Views2.0 入门教程 在根据上一章节当中创建好的 views 中,在 views 列表页面的操作框右侧选择“block”,点击 add display 这样在 basic settings 中的 Theme infomation 中,会看到类似以下四个文件的覆写: (1)覆写全局输出,整个 views 布局,如果你的 views 是一个页面的话,通过覆写这个文件,可以改变页面的布局 * Display output: views-view.tpl.php, views-view--Drupal-Using-block.tpl.php, views-view--default.tpl.php, views-view--Drupal-Using-block--default.tpl.php (2)覆写 views 列表,即可以通过次文件覆写掉 views 的列表的样式,我就是覆写的这一个文件 * Style output: views-view-list.tpl.php, views-view-list--Drupal-Using-block.tpl.php, views-view-list--default.tpl.php, views-view-list--Drupal-Using-block--default.tpl.php (3)覆写 views 列表一行的样式
Row style output:views-view-fields.tpl.php.views-view-fields-Drupal-Using-block.tpl.php views-view-fields-default.tpl.php,views-view-fields--Drupal-Using-block-default.tpl.php (4)覆写ews列表中一个字段的样式,这里只输出了一个te,所以只有一个 ·Field节点:标题(D:title:)iews-Mew-feld.tpl.php,iews-view-ield-tie.tpl.php, views-view-field-Drupal-Using-block.tpl.php.views-view-field--Drupal-Using-block-title.tpl.php. views-view-field--default tpl.php.views-view-field--default-title.tpl.php. views-view-field--Drupal-Using-block-default.tpl.php.views-view-field-Drupal-Using-block--default-title.tpl.php 以上列出的文件是优先级越来越高,你当前使用的文件会被高亮显示出来 我的iews-view-list--Drupal--Using--block.tpl..php文件代码如下: Drupal使用category/drupalusing">/images/img more.gif alt="/> Srow):? s?pho endforeach:? 以上代码中,sow即iews列表中的每一行标题,通过foreach将其循环输出 其次,我的每一行标题,我使用了优先级最低的那个文件覆写,这样,整站中s输出标题的时候,就会使用没有任何 views标签包裹,看着比较舒服 views-view-fields.tpl.php s?php foreach(Sfields as) content:? ?php endforeach:?> END- http://www.comeongame.com/的设计流程 这次我用了6.x设计我的game搜集站,主要是因为image field可以有link to node,并且图片和 7
7 * Row style output: views-view-fields.tpl.php, views-view-fields--Drupal-Using-block.tpl.php, views-view-fields--default.tpl.php, views-view-fields--Drupal-Using-block--default.tpl.php (4)覆写 views 列表中每一个字段的样式,这里只输出了一个 title,所以只有一个。 * Field 节点: 标题 (ID: title): views-view-field.tpl.php, views-view-field--title.tpl.php, views-view-field--Drupal-Using-block.tpl.php, views-view-field--Drupal-Using-block--title.tpl.php, views-view-field--default.tpl.php, views-view-field--default--title.tpl.php, views-view-field--Drupal-Using-block--default.tpl.php, views-view-field--Drupal-Using-block--default--title.tpl.php 以上列出的文件是优先级越来越高,你当前使用的文件会被高亮显示出来; 我的 views-view-list--Drupal-Using-block.tpl.php 文件代码如下: Drupal 使用category/drupalusing">/images/img_more.gif" alt="" /> $row): ?> 以上代码中, $row 即 views 列表中的每一行标题,通过 foreach 将其循环输出 其次,我的每一行标题,我使用了优先级最低的那个文件覆写,这样,整站中 views 输出标题的时候,就会使用没有任何 views 标签包裹,看着比较舒服 views-view-fields.tpl.php $field): ?> content; ?> --------------------------------- END------------------------------- http://www.comeongame.com/ 的设计流程 这次我用了 6.x 设计我的 game 搜集站,主要是因为 image field 可以有 link to node,并且图片和
Swf文件的上传都采用用户ID/年月.…这个方式,避免了大量文件都传到一个文件夹下的情况..以后 站大了,这样做文件管理也好些, 主 设计 关于主题设计主要是采用了复气 ,在这里感谢drupaluser.cn提供给我的帮助,使我终于脱离了panels 摸块,可以随意设计自己的排版! page-front.tpl,php复写首页 page-taxonomy..tpl.php复写列表页 p e-flashnode..tpl.php和node-flashnode.tpl.php复写flash内页 复写page--flashnode..tpl.php注意…直接复写并不会成功,参照 http://drupaluser.cn/html/mytheme/2009-01-01/332.html 这里主要是采用drupal的复写机制..首先在.info文件里面建立自己的region,like this: reaionsTleftl =Left sidebar regions[right]=Right sidebar regions[content]=Content regions[header]=Header regions[footer]Footer 然后你可以用css+div写自己的模板,将regins放在你想放的地方.regions不能放在node上.如 果想法似乎要搞template.php,我也尝试过,成功了!(见:添加regions到node.tpl.php (http://drupalchina.org/node/3804)) 关于flash游戏页面的设计,$content变量被我具体化成很多变量,主婴是我想按照自己的div排版安 排位置.这里我主要用content templete去找变量.然后同样道理用div+css结合变量去设计 layout..,这样可以方便随意设计出自己的排版..为了有很好的seo,mate keywords和desciption 部分我也加入了部分变量输出. 模块的使用 .输出用view2+cck,然后 有投票的功能我用了vote up and down..你也需要cck的image field去输出游戏的截图,用 pathauto去定义了下node的url,形式是/分类名/文章标题,分类用Taxonomy 主要有6大类,分别在首页输出block,关于view2的主题制作也是复写.…用css+div控制下就可以 大概就是这么个流程…希望高手指点… END Drupal模板建议 建议只有和基模板放在问一个目录下面时,才能工作换句话说,为了让comment-.blog.pl.php正常工作,你需要把 comment.tplphp也放到同一个目录下 下面列出默认建议,如果你想定制的话,可参看使用模板建议一页。 block-[region [modulel-deltall.tpl.php 基模板:block.tplphP 8
8 swf 文件的上传都采用 用户 ID/年月...这个方式,避免了大量文件都传到一个文件夹下的情况.... 以后 站大了,这样做文件管理也好些... 第一:主题设计 关于主题设计主要是采用了复写,在这里感谢 drupaluser.cn 提供给我的帮助,使我终于脱离了 panels 模块, 可以随意设计自己的排版! page-front.tpl.php 复写首页 page-taxonomy.tpl.php 复写列表页 page-flashnode.tpl.php 和 node-flashnode.tpl.php 复写 flash 内页 复写 page-flashnode.tpl.php 注意....直接复写并不会成功,参照 http://drupaluser.cn/html/mytheme/2009-01-01/332.html 这里主要是采用 drupal 的复写机制... 首先在.info 文件里面建立自己的 region, like this: regions[left] = Left sidebar regions[right] = Right sidebar regions[content] = Content regions[header] = Header regions[footer] = Footer 然后你可以用 css+div 写自己的模板,将 regins 放在你想放的地方... regions 不能放在 node 上... 如 果想法似乎要搞 template.php,我也尝试过,成功了!(见:添加 regions 到 node.tpl.php (http://drupalchina.org/node/3804)) 关于 flash 游戏页面的设计,$content 变量被我具体化成很多变量,主要是我想按照自己的 div 排版安 排位置...这里我主要用 content templete 去找变量...然后同样道理用 div+css 结合变量去设计 layout....这样可以方便随意设计出自己的排版.....为了有很好的 seo, mate keywords 和 desciption 部分我也加入了部分变量输出..... 第二:模块的使用 因为我的站是 flash 小游戏搜集站,所以主要依靠 flash node 的功能.....输出用 view2+cck, 然后还 有投票的功能我用了 vote up and down....你也需要 cck 的 image field 去输出游戏的截图, 用 pathauto 去定义了下 node 的 url,形式是...../分类名/文章标题,分类用 Taxonomy 主要有 6 大类,分别在首页输出 block,关于 view2 的主题制作也是复写....用 css+div 控制下就可以 了 大概就是这么个流程.... 希望高手指点.... ***************************** END**************************** Drupal 模板建议 建议只有和基模板放在同一个目录下面时,才能工作.换句话说,为了让 comment-blog.tpl.php 正常工作,你需要把 comment.tpl.php 也放到同一个目录下. 下面列出默认建议.,如果你想定制的话,可参看使用模板建议一页. block-[region|[module|-delta]].tpl.php 基模板: block.tpl.php
武认津议及题序, 1.block-module-delta.tplphp 2.block-module.tpl.php 3.block-region.tol.php "module"为模块名称,而delta"为模块分配给该区块的内部d.例如,block-User-1pl,php将用于默认用户导航区块,因为 该区块由user模块创建,且内部id为1."egion将对特定区域产生作用。 comment-[typej.tpl.php 基模板:comment.tpl.php 默认建议为comment--type.tpl.php,.它用于特定节点类型的评论格式以区别站内的其它评论.与node-type].tplphp类似 但是它用于评论 comment-wrapper-[type].pl.php 基模板:comment--wrapper..pl.php 与前者类似,但是用于包装器(wrapper)模板 forums-conainertopic-forumID]plphp 默认模板建议及顺序 对于论坛容器 1.forums-containers-forumID.tpl.php .forums-forumiD.tpl.php 3.forums-containers.tpl.php 对于论坛话题: 1.forums-topics-forumlD.tpl.php 2.forums-forumlD.tpl.php 3.forums-topics.tpl.php maintenance-page-[offlinel.tol.php 基模板:maintenance-page.tpl.php 当数据库不可用时,应用该模板建议用来为用户展示一个不带错误信息的页面首先需要设置维护页面的主愿化 node-[typej.tpl.php 基模板:node.ol.phg 节点类型,例node-story..tpl.php"."node-blog.tpl.php”,等等 page-oninemal/pat)pl.php 基模板:page.tpl.php 可以有无数个建议.具有优先级的为首页(0 nt page).剩下的都是基于当前页面的内部路径。不要将内部路径和路径别名混 淆了,这里不能使用路径别名.记住,通常使用pathauto.module来设置路径别名. 可通过"Administrator>Site configuration>Site information"来设置首页。.对于设置好的首项,将会为其使用 page--"模板 下面为模板建议文件,根据内部路径,越特殊的次序越靠前。如果系统为当前页面找到了一个模板建议的话,就不会再调 用位于它后面的模板建议了。例如,对于htp:ww.example,com/node/i/edt,将会有下面的建议可用: 1.page-node-edit.tpl.php 2.page-node-1.tpl.php 3.page-node.tpl.php 4.page.tpl.php poll-results-[blockl.tolpho 基模板:pol--results.tpl.php 9
9 默认建议及顺序: 1. block-module-delta.tpl.php 2. block-module.tpl.php 3. block-region.tpl.php "module"为模块名称,而"delta"为模块分配给该区块的内部 id.例如, "block-user-1.tpl.php"将用于默认用户导航区块,因为 该区块由 user 模块创建,且内部 id 为 1. "region"将对特定区域产生作用. comment-[type].tpl.php 基模板: comment.tpl.php 默认建议为 comment-type.tpl.php,它用于特定节点类型的评论格式,以区别站内的其它评论.与 node-[type].tpl.php 类似, 但是它用于评论. comment-wrapper-[type].tpl.php 基模板: comment-wrapper.tpl.php 与前者类似,但是用于包装器(wrapper)模板. forums-[[container|topic]-forumID].tpl.php 基模板: forums.tpl.php 默认模板建议及顺序。 对于论坛容器 1. forums-containers-forumID.tpl.php 2. forums-forumID.tpl.php 3. forums-containers.tpl.php 对于论坛话题: 1. forums-topics-forumID.tpl.php 2. forums-forumID.tpl.php 3. forums-topics.tpl.php maintenance-page-[offline].tpl.php 基模板: maintenance-page.tpl.php 当数据库不可用时,应用该模板建议.用来为用户展示一个不带错误信息的页面.首先需要设置维护页面的主题化. node-[type].tpl.php 基模板: node.tpl.php 节点类型,例如"node-story.tpl.php", "node-blog.tpl.php",等等. page-[front|internal/path].tpl.php 基模板: page.tpl.php 可以有无数个建议.具有优先级的为首页(front page).剩下的都是基于当前页面的内部路径。不要将内部路径和路径别名混 淆了,这里不能使用路径别名。记住,通常使用 pathauto.module 来设置路径别名。 可通过"Administrator > Site configuration > Site information"来设置首页。对于设置好的首页,将会为其使用 "page-front.tpl.php"模板。 下面为模板建议文件,根据内部路径,越特殊的次序越靠前。如果系统为当前页面找到了一个模板建议的话,就不会再调 用位于它后面的模板建议了。例如,对于 http://www.example.com/node/1/edit,将会有下面的建议可用: 1. page-node-edit.tpl.php 2. page-node-1.tpl.php 3. page-node.tpl.php 4. page.tpl.php poll-results-[block].tpl.php 基模板: poll-results.tpl.php
生成投票结果的主体函数,可供节点和区块共回使用。默认是用于节点的,但是模板建议使得可以用在区 块区域中。这个建议是默认的,它位于modules/poll/poll--results--block.tpl,.php, poll-vote-[block].tpl.php 基模板:pol-vote.tol..phd 与pol-results-.block].tplphp类似,但用来生成投票表单.你必须自己为其提供模板,以让其生效. poll-bar-[block].tpl.php 基模板:poll-bar.tpl.php 与po-vote-blockl.tpl.php一样,但是用来生成单个的bars(细长条纹). profile-wrapper-ifieldl.tpl.php 基模板:profile-w 这个p0e包装系模板,是在浏览会员列表页面时使用的。当浏览特定的字段时,在模板建议中需要使用 字段名称。例如htp://drupal..org/profile,country/Belgium使用的模板为suggest profile-wrappercountry. tpl.php". seach-resul-(.php 基模板:search---results,tpl.php search-results.tpl.php是搜素结果的默认包装器。根据搜素类型的不同,使用不同的建议。例如,对 于"example.com/search/node/Search+Term",将使用"search-results-node.tpl.php".而对 于"example..com/search/user/bob,则使用"'search--results-.User.tplphp.模块可以扩展搜素类 型, 并为其加更多的建议 search-result-[searchTypel.tpl.php 基模板:search-result.tpl.php与前者相同,但是用于单个的授索结果, END page.tpl.php的图形化显示 10
10 生成投票结果的主体函数,可供节点和区块共同使用。默认是用于节点的,但是模板建议使得可以用在区 块区域中。这个建议是默认的,它位于"modules/poll/poll-results-block.tpl.php"。 poll-vote-[block].tpl.php 基模板: poll-vote.tpl.php 与 poll-results-[block].tpl.php 类似,但用来生成投票表单。你必须自己为其提供模板,以让其生效。 poll-bar-[block].tpl.php 基模板: poll-bar.tpl.php 与 poll-vote-[block].tpl.php 一样,但是用来生成单个的 bars(细长条纹)。 profile-wrapper-[field].tpl.php 基模板: profile-wrapper.tpl.php 这个 profile 包装器模板,是在浏览会员列表页面时使用的。当浏览特定的字段时,在模板建议中需要使用 字段名称。例如 http://drupal.org/profile/country/Belgium 使用的模板为"suggest profile-wrappercountry. tpl.php"。 search-results-[searchType].tpl.php 基模板: search-results.tpl.php search-results.tpl.php 是搜索结果的默认包装器。根据搜索类型的不同,使用不同的建议。例如,对 于"example.com/search/node/Search+Term",将使用"search-results-node.tpl.php"。 而对 于"example.com/search/user/bob",则使用"search-results-user.tpl.php"。模块可以扩展 搜索类 型,并为其添加更多的建议。 search-result-[searchType].tpl.php 基模板: search-result.tpl.php 与前者相同,但是用于单个的搜索结果。 —————————————————— END _____________________________ page.tpl.php 的图形化显示