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文件中加入这两个样式 <link rel="stylesheet"type="text/css"href="<?php print base path().path to theme():?>/css/layout.css"> <link rel="stylesheet"type="text/css"href="<?php print base path().path to theme():?>/css/main.css"> ②输出了几个区域中的内容 <div class="partA"> <?php print Sleft_region1:?> sdiv class="c"></div <div class=partB"> <?php print Sleft region2:? cdiv 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 上面写一个判断,让他根据内容类型自己选择模板文件, 如以下写法: <?php if($node->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 文件中加入这两个样式 <link rel="stylesheet" type="text/css" href="<?php print base_path().path_to_theme();?>/css/layout.css"> <link rel="stylesheet" type="text/css" href="<?php print base_path().path_to_theme();?>/css/main.css"> (2)输出了几个区域中的内容 <div id="mainleft"> <div class="partA"> <?php print $left_region1 ;?> <div class="c"></div> </div> <div class="partB"> <?php print $left_region2 ;?> <div class="c"></div> </div> <div class="partC">