大概可以分为以下几种:
1,
2,
3,
4,
5,
6,
这个分类不大规范,仅仅作为参考。
drupal的首页制作,有多种方式,可谓条条道路通罗马,很多复杂的情况自己也没有遇到过,我会搜集更多的一些资料,到时候和大家分享一下。
相关链接: http://zhupou.cn
1.drupal首页制作-前期选型
讲 首页制作,我们先找个案例,这个当然是假定的,要选取的是个很简单很简单的例子了,客户要建一个网站,用来发布新闻,网站的主题是关于drupal的,新 闻分3类,drupal国际新闻,drupal国内新闻,drupal安全公告.每个分类下面,有这个分类的文章,在网站的首页,是显示关于3类新闻的相 关信息,简单的介绍,或者是3类中最近发表的一些文章.
这样的网站,很多地方都用得到,一个机构,一个学校,公司,都会遇到这种需求.比如,可以把drupal换成joomla,换成公司.这类网站也是最简单的一种.
那么我们看看怎么实现这样的网站.当你知道你 要做的网站是什么样子以后,接下来考虑的是使用什么程序,什么语言,来实现你心中的这个站点. asp? 很多公司的网站都是用这种技术实现的,这和微软软件的汉化程度有关,不错的选择..net?还是微软的,asp的升级版,也不错。Jsp,用的人在中国相 对比较少,不过不少有实力的公司都在用它。这个还不错。Php,用的最广泛了,在世界范围内。事实上,每种技术特别是语言层级的,都可以解决这样的问题。 但是你在考虑的时候,不得不考虑成本,考虑网站以后的维护,包括升级性。这个时候你就需要权衡。你要做的是一个新闻分类发布系统,有没有现成的可用呢,很 多这类的软件,现成的,国内的我听说过的dedecms,国外的有joomla,drupal,还有.net的dotnetnuke。
是自己找人从头定制一个呢,还是找人使用现有 的软件通过2次开发,这个也需要权衡。至于怎么决策,这是领导的任务,也是那些技术相关领导的任务。好了,现在决定使用php,使用drupal来实现你 的网站。你找到了我,听说你做过不少的网站,这个帮我看看吧。私活,ok接了。需求很简单,drupal很强大,实现起来很方便。你半信半疑。不过以前看 过我的文章,觉得还具有一定的可信性,决定让我做做试试。
现在开始选drupal版本了,drupal 有两个稳定版本,一个是drupal5.x,现在已经到了5.11了,另一个就是drupal6.x,现在已经到了6.5了。前者有丰富的模块支持,后者 由更强的最新特性,速度,用户体验与前者相比都有不少的提升。这时候还是需要进行选择,从程序员的角度,来说,选择drupal5.x无疑是对的,有过开 发的经验,各种模块都已经熟悉了,轻车熟路,而且比较稳定,用起来放心。Drupal开发者会告诉客户,我们使用前者吧,这个版本更稳定,更节省时间。但 是对于客户来说,要考虑的就与程序员不一样了。客户看到的是,drupal5.11和drupal6.5都是免费的,6比5大,也就是更高级,更强大,将 来使用的时间也更长,就是说2年内不会落伍。客户坚持使用drupal6.5。很多人,遇到这种情况,程序员,其中的不少都会说服客户,采用自己的观点。 不过这里我们假定客户就是上帝,上帝永远是对的。我们决定采用drupal6.5。
drupal有一个最佳实践经验,就是当有更 高的稳定版本出现时,你需要马上得跟进,至少要准备跟进。现在drupal.org还是跑在drupal5.x上的,但是这并不应为着,官方没有打算升 级,事实上,以及专门成立了一个升级小组,专门负责向drupal6的迁移,只不过由于涉及到的方面太多,工作量比较大而已,一个小组,3个月的准备时 间。这是题外话。但是对于新站点来说,现在建站,就应该采用drupal6.x。这个是正确的选择。
相关链接: http://zhupou.cn
10.1使用drupal6.5制作中英文双语网站
Some required modules must be enabled
- You must enable the Locale module to install Content translation.
Would you like to continue with enabling the above?
”
点击“继续”.两个模块同时安装成功了,在drupal5中,如果存在依赖关系,你必须一个一个的分别选中保存,来完成安装,在drupal6中,可以同时安装存在依赖关系的模块。而系统会自动识别里面的依赖关系,并弹出前面所示的对话框。这一点也是6对5的改进。
再来看看内容翻译模块,在admin/by- module里,找到这个模块所在的位置,里面只有两个链接,1是配置权限,2是帮助链接,有点失望了,培植权限对于大多数站点都没啥用的,所以不用管, 让我们看看帮助页面里面有啥提示。帮助里面给出了详细的使用说明,可惜是英文的,读了一遍,没有完全明白,怎么办?让我们导入drupal6的中文包。详 细的看看这个页面都讲了什么内容。
跑到drupal.org上看了看,又有新的新闻了,那就是09年的华盛顿drupal大会正式开始卖票了,而且卖的挺火,啥时候drupal在中国也能这么火就好了。好了进入下载页面,找到drupal6的汉化包的位置,project/zh-hans,下载汉化包。
里面没有安装说明,解压后里面有很多文件。不知道怎么办了。先不管它,先到admin/settings/language/add,把简体中文添加上去。在网上找到了安装说明,如何使用6.x中文安装包。 将汉化包拷贝到drupal的目录下面,没有反应,在翻译界面的导入页面看到一点提示,删除简体中文语言,再重新添加一遍,有反应,出现了导入添加语言的 进度条,而且没有抱错,看来成功了。将简体中文设为默认语言,看到了汉化成果。Drupal6的汉化这么简单,比5还容易。向那些为汉化包作出贡献的朋友 说声感谢了。
好了,导航到内容翻译的帮助页面,看到如下内容,就是内容翻译的指南了:
“
内容翻译模块使得站点文章可以被翻译为其它语言。内容翻译模块与本地化模块(locale模块用于系统界面的翻译,并用于管理并开启指定的语言)一道,用于创建并维护对站点内容的翻译。
设置内容翻译与开启翻译支持的内容类型。
- 在权限设置页面给适当的用户角色分配翻译内容的权限。
- 在语言设置页面添加并启用想要的语言。
- 决定哪些内容类型支持翻译功能。要对某内容类型开启翻译支持,进入类型编辑页面,在多语种支持下拉框中选择启用,包括翻译选项。(多语种支持框在流程设置一栏下。)记住在启用多语种支持后保存该内容类型。
设置启用了翻译支持的内容类型:
- 在创建或编辑文章时,使用语言下拉框选择恰当的语言。
- 在翻译页签处为文章添加新翻译或编辑已有翻译。此翻译页签(tab)使用一个特制的编辑表单,在显示原文的同时,允许添加新的翻译或编辑已有翻译。只有拥有翻译内容权限的用户才能看到此页签。
- 翻译要及时更新,已准确反映原文内容。翻译状态标志提供了一种跟踪失效翻译的简便方式。例如,当编辑文章后,勾选将翻译标记为过期选项,标记文章翻译已失效需要修订。每个翻译还可以通过在翻译编辑表单中,勾选此翻译版本需要更新选择框,来标志此翻译版本需要修订。
- 内容管理页面显示了每篇文章的语言,并且可以按语言或翻译状态显示列表。
本地化(locale)模块提供的语言切换区块使用户可以自行选择语言版本。
“
接下来,我们将按照这里的提示,来制作中英文切换的网站。使用的内容还是在前面用到的。
相关链接:http://drupal.org/project/zh-hans
10.2 显示翻译标签
我 把上篇文章编号为10.1,但是drupal还是把它排到最上面,其实我是想让它排到8的后面的.而在这方面,微软的操作系统就做得比较好.不必苛求于 drupal了.在上面,我们把drupal6.5的后台汉化了,而且找到了内容汉化的途径,也就是内容翻译模块中的帮助文本,还是中文版的。下面让我们 按照里面的说明,来实现为内容添加英文版本。
导航到节点类型列表页面,编辑story节点 类型的设置admin/content/node-type/story,在“流程设定”部分下面的,“多语言支持”中选择“启用”,保存。在 drupal国际新闻下面,找到“Acquia drupal发布了”这篇文章,点击编辑,在编辑页面多了一个语言选项,现在为“与语言无关”,我们将它设置为“简体中文”,保存。
我们就将这个节点的语言设置为了简体中文。怎 么为它添加一个英文版本的节点呢? 郁闷了,确实找不到翻译那个标签,在那里可以添加本节点的英文翻译呢?是不是刚才,在节点类型的设置时,选错了选项?再次导航到 admin/content/node-type/story,在“流程设定”部分下面的,“多语言支持”中选择“激活,并有翻译”,如图所示。保存,谢 天谢地,看到了“编辑”旁边的“翻译标签了”。
相关链接:http://zhupou.cn
2.安装drupal6.5
那么就让我们开始drupal6.5的建站之旅。首先是现在drupal,登录到官方网站drupal.org上,在正文的最上面,以及在右上角,都有drupal6.5的下载,点击,再点击,就看到下载链接了http://ftp.drupal.org/files/projects/drupal-6.5.tar.gz。
下载到本地,我的存在了 C:\QQDownload\drupal\ drupal-6.5.tar.gz。使用解压缩文件对其进行解压缩。在当前目录中,多了一个drupal-6.5目录,里面就是我们要用得软件。现在让 我们进行安装。Drupal的安装其实已经很简单了,有些集成开发包比如wdp甚至为你装好了drupal。我现在用的是xampp,安装在F盘下面。现 在将drupal-6.5目录拷贝到F:\xampp\htdocs目录下面,这里面有一点,drupal-6.5解压后有两层,要拷贝里面的一层。然后 就是创建数据库。我们把数据库命名为drupal65,创建步骤为,打开xampp控制面板,启动apache,启动mysql。如果你装了QQ或者QQ 超级旋风的话,需要先退出这两个软件,不然打不开apache,因为前者把80端口给占了,不过打开apache以后,可以继续使用QQ,霸道的QQ 阿。(不过我装过GG的浏览器搜索插件,后来不小心把QQ的产品全部安装上了(包含了QQ的搜索插件),GG向我提示,不法软件想取代它的地位,被它拒 绝,看来还是GG的技术更强一点)。
打开mysql的客户段,我这里用的是SQLyog,当然也有其它产品。连接到本地数据库。找到左栏的root@localhost,右键单击,你会看到“创建数据库这一选项”,点击它,在弹出的对话框中输入drupal65。现在,你看看这个数据库,里面还是空空的,没有内容。
接下来是,修改settings.php配置 文件。在目录F:\xampp\htdocs\drupal-6.5\sites\default下面,现在有一个默认的 default.settings.php文件,复制该文件,粘贴到当前目录,并将复制品重命名为settings.php。打开 settings.php文件,这个是个配置文件,里面有各种网站的配置信息。现在我们关心的只是数据库的配置,在第92行,有一句:
$db_url = 'mysql://username:password@localhost/databasename';
将这行代码注释掉,然后紧接着在下面另起一行,复制这一段代码。然后修改里面的数据库,用户名,密码。修改后我的结果为:
//$db_url = 'mysql://username:password@localhost/databasename';
$db_url = 'mysql://root:@localhost/drupal65';
在浏览器中输入http://localhost/drupal6.5,抱错,没关系,还没有安装呢。输入http://localhost//drupal6.5/install.php,还是抱错:
“The requested URL was not found on this server. If you entered the URL manually please check your spelling and try again.”
估计是这个6.5的原因,把中间这个点去掉。不好意思,地址输错了。应该为http://localhost/drupal-6.5/。有时候想当然的一件事情也会出错。少了一个连字符“-”。还是抱错,不过这次的错误信息我见过了。“Warning: Table 'drupal65.access' doesn't exist query:”。
在地址栏中地址后面追加install.php,也就是http://localhost/drupal-6.5/install.php, 这样就进入安装页面了。选择“Install Drupal in English”,安装很快就进入了“Configure site”这一步。输入站点名称,邮件地址,管理员的用户名和密码,后者我输入的是admin/admin,密码太短了,会有警告提示,说你的密码不安 全。另一个值得一提的就是简洁URL,在drupal6.5中,系统会自动对当前环境进行判断,如果环境支持简洁URL的话,就默认将其设置为启用,如果 环境不支持的话,就默认为禁用。简洁URL(clean url)的配置可参看本站及官方上面的配置信息。输入好这些配置以后,点击保存。显示安装成功。不过里面有错误信息出现。“
- warning: mail() [function.mail]: Failed to connect to mailserver at "localhost" port 25, verify your "SMTP" and "smtp_port" setting in php.ini or use ini_set() in F:\xampp\htdocs\drupal-6.5\includes\mail.inc on line 193.
- Unable to send e-mail. Please contact the site admin, if the problem persists.
”
相关链接:
3.使用page节点创建首页
让我们继续我们的drupal6.x之旅。这一系列的文章,是关于首页制作的,围绕着首页制作,我们将建立一个简单的站点。也算是drupal入门教程吧。在前面,我们安装好了drupal6.5。现在我们进入了http://localhost/drupal-6.5/。看到了是drupal的默认首页。右边是正文,左边是管理菜单。
在右边的正文中,有4个部分,1是配置站 点,2是添加模块,3是定值主题,4是填充内容。平时做项目的时候,开始要做的,就是先简单的配置一下站点,加上一些常用的模块,接着就是制作主题了。制 作主题应该算是项目正式进入开发期了,它前面的都是准备工作。主题的制作,通常为客户发过来PSD文件,美工将其转化为静态HTML+css,然后 drupal开发者,或者专门的drupal主题制作者,将静态的HTML替换为模板文件,tpl.php。主题的制作设计到这个过程,直到项目结束通常 还设计到主题的东西。主题制作的最开始的任务就是,制作页面模板文件,接着才是节点模块,区块模板文件,根据项目的进展,开发的需要,有时候需要对这些模 板进行调整,或者添加更加具体的模板文件,比如page-node-1.tpl.php这样的具体模板文件。这里暂时不讲主题的制作,相关内容可参看本站 及官方还有其它站点的主题制作指南。我们假定我们的客户觉得garland主题,已经够用了。这个默认主题其实很强大的,只不过大家都在用,让人觉得比较 土而已。
先进性简单的配置,通常就是cron还有 files文件的路径了。这两个也比较简单。前者手工的运行就好了,后者,因为是在本地,所以怎么办都可以。对于初学者来说,我建议先看看drupal的 后台,从上面到下面,看看每个选项,每个页面,每段文字,先看看英文的吧,看完以后,然后再装上drupal的中文包,再看看。也就是说先熟悉一下环境, 我刚开始学的时候,这一点就花了2-3,这样你就基本上知道每个选项,每个功能的大致位置了。很多人,搞drupal也有一段时间了,遇到一些简单的问 题,还是不会,就是因为他不知道在哪里配置,没有认真的钻研过。这是有用的。如果你仅仅是暂时的使用drupal,过段时间就不搞这个了,那也没有太多的 必要。如果想靠这个吃饭的话,建议你按照我说的去学习。
假如你已经了解了drupal的管理界面,前 面的基本配置,常用模块的安装,都已经完成了。现在就让我们添加内容。点击“Create content”(创建内容),里面有两个选项,page和story,两者之间的区别,很多人都应该知道,前者更多的是静态性的页面,后者更多的是实时 性的动态性的页面。记住这些就可以了。我更多的时候,觉得两者之间并无区别,但是我的同事,包括很多的一些人,觉得page和story就是完全不同的概 念。Page多用于介绍性的文章,联系方式,等等这样的内容,story则应该是新闻,博客这样的文章。不过两者在数据库中的存储结构是一样的。
好了,我们这里选择使用page,在标题中输入“首页”,在正文中输入以下测试内容:
“
Drupal国内新闻:
Drupal国际新闻:
Drupal安全公告:
“
当然这个页面是丑陋的,我们有了第一个节点node/1。现在点击首页,还是drupal的默认首页。
导航到admin/settings/site-information,在最下面的“Default front page”输入框中,现在默认为node,我们把它改为node/1.当你再访问首页时,看到的就是刚刚我们创建的第一个节点。使用page作为首页,是 最简的一种方式了。当然你可以使用任何类型的节点作为首页。觉得页面丑陋的话,可以专门做个静态的html,放到节点的正文中,然后选择full html就可以了。
相关链接: http://zhupou.cn
4.把节点推到首页
我 们接着前面的继续往下学习.由于网站分成了3个子栏目,每个栏目里面都包含相应的新闻.这个时候,如何实现每个子栏目呢?你可以为每个子栏目创建一种节点 类型,然后为其使用views输出.还有就是,你可以使用drupal的分类,创建一个词汇表,下面添加3个术语.然后在创建新闻时,选择分类.第一种方 式,可行,但是不可取,第2种方式,可行,可取.尽管是一个小网站,也不妨让我们探索一下drupal的分类机制.
好了,让我们看看另一种首页的生成方式.你看 看drupalchina.org,还有官方,以及我的个人网站zhupou.cn,都是采用的这种方式。那就是首页有很多节点摘要,而不是单独的一个节 点。导航到admin/settings/site-information,将上文中输入的node/1改为node。
让我们创建内容,node/add /story,在这个页面多了一个drupal新闻: *下拉选项,而且是必选的,输入标题,摘要,正文,选择drupal新闻类型,还有在下面的发布选项中,看是不是选中了“Promoted to front page”(推到首页)。我们这里把所有的文章都推到首页,这和我们的博客就差不多了。不过很多网站,只有很重要的文章,还有站长密切关注的文章才被推到 首页。Drupal6.5中,正文和摘要是可以分开的,而在输入格式中,没有了php code这一选项。Php 代码经过实践,是一种很不drupal位的一种输入方式,以前很多人都推荐不要用它,现在终于拿下了。而正文,摘要,这个是为了用户界面的友好性,因为很 多人都不知道使用<!--break-->标签来分隔摘要和正文。现在就更加灵活一点,不过我在zhupou.cn上,装了tinyMCE以 后,正文摘要的选择按钮不见了,js冲突,不过不妨事,我知道可以使用<!--break-->标签。Page节点和story节点的另一个 区别就是,story节点默认是推到首页的,Page节点不是,刚刚发现的。
根据上文node/1中提到的新闻标题,我们分别为国际,国内,安全公告创建2个节点,现在出现在首页的就如图所示,内容和前文讲的差不多,就是格式不一样,另外就是里面有摘要,还有3个栏目下不时分开按照时间先后访的,而是按照总体的先后顺序来放的。
现在让我们添加一级导航。导航到 admin/build/menu-customize/primary-links,点击add item链接,输入菜单的路径和标题,就可以依次添加“首页”,“drupal国内新闻”,“drupal国际新闻”,“drupal安全公告”菜单了。 添加过程中的注意事项,首页的路径为”<front>”,3个新闻分类的路径可以到admin/content/taxonomy,点击该词 汇表的术语列表admin/content/taxonomy/1,就可以查看相应的链接了,分别为taxonomy/term/1,taxonomy /term/2,taxonomy/term/3。添加后,发现首页出现在了菜单的最后方,我们在admin/build/menu-customize /primary-links,用鼠标拖住首页,将它提到最前面,点击保存就可以了。
现在就满足客户的基本要求了。让我们考虑一些更具体的问题:如何不显示摘要?每个新闻分类页面只显示10个标题,首页分成3个子栏,每个里面显示5个对应的标题,按时间顺序。这些问题我们将在接下来的文章中继续讲解。
相关链接: http://zhupou.cn
5.如何去掉摘要,以及将摘要置为空
把 摘要去掉,只保留标题,这是客户提出来的需求.如何去掉摘要,也有多种方式,常见的有,使用views,修改模板文件,自己单独写个函数.方法有多种,又 没有可能将摘要的字数设置为0呢,这样不也可以解决问题吗?这是我想到的另一个办法,如果可行的话,那么最简单不过了.
导航到admin/content /node-settings,查看里面的Length of trimmed posts:选项,里面最少的为200,默认的为600,还有一个叫做unlimited,看样子是无限制的意思,有点失望。不过看了看下面的说明。 “To disable teasers, set to 'Unlimited'”,看来我的想法有戏。试一下。将选项置为'Unlimited',保存。修改一篇新闻,来查看效果。果然没有摘要了,把整篇文章 都显示在了首页,如果你需要把整篇都显示在首页的话,就选这个吧,经验就是从无数的失败的经历中积累起来的,学习drupal也一样,遇到问题不妨去点 点,去实践一下。虽然没有达到我们想要的目标,但还是涨了一点知识。
继续我们的问题探索,可不可以在 drupal6种的正文,摘要切换中做点文章?我们再试一下。编辑节点,将摘要中的置为空,刚才的选项'Unlimited'还没有取消,不过不妨先看看 效果。“You specified that the summary should not be shown when this post is displayed in full view. This setting is ignored when the summary is empty.”警告出现了。不过摘要确实没有了。那么我们发现了新大陆了,在创建节点时,选择“split summary at cursor”以将摘要和正文分开,将最上面的一栏,也就是摘要的输入框置为空,什么也不添,这样就没有摘要输出了。不过令人遗憾的是,<div class="content clear-block">
相关链接: http://zhupou.cn
6.1.使用CCK创建首页节点类型,来制作首页
CCK 模块和views模块很好用,但是也有缺点,最大的缺点是,当你学会了使用这两个模块以后,你老想着用它,有种上瘾的感觉.我刚开始学会的时候,是个地方 都想用CCK,比如创建首页的时候,我就想到了将首页当作一个特殊的节点来用,并亲自实践过.后来,我在网上看到过以前辈写的文章,介绍用CCK来制作首 页的方法, 看来这种方法早有人用.
如果说教程前面的部分还有点假大空的话,那么越往后越不好写,所需的技术也就越高了.本文可以当作drupal 6.5 CCK的入门教程吧.先列一下中文方面的资料吧,都是CCK的:
1. Drupal cck contemplate theming 技巧, 教學
Drupal cck contemplate theming-drupal的使用教程
台湾阿舍的CCK
Drupal China 上Loocor的CCK & Views 模块使用小结(Drupal6.x)之一(系列文章)
Zhupou.cn翻译的 drupal CCK节点类型的主题定制
CCK的项目下在地址为:http://drupal.org/project/cck。现在还不是正式版,不过Views都有正式版了,这个的正式版也不远了。我们先下载这个 模块,并将其解压到sites\all\modules\cck下面。进入模块列表页面,启用CCK。
由于是学习,所把CCK的所有模块都启用了。CCK就是一个模块集合,核心就包括了9个模块,如果你还需要其它功能的话,还需要安装CCK的字段模块,这些就暂时不在这里讲了。
现在,让我们分析一下首页,先为原来的纯文本加点html标签:
<div>
<h2>Drupal国内新闻</h2>
</div>
<div>
<h2>Drupal国际新闻</h2>
</div>
<div>
<h2>Drupal安全公告</h2>
</div>
显示的效果如图所示:
同样是图片,而且是同一抓图,png格式的就比jpg格式的小很多,为了节省带宽,这里都用png格式。同样,在drupal中,实现某种功能,也有不同的方式,各种方式有不同的优缺点,这个你需要去比较,从而选用最适合自己的方式。
上面的图,是3个div,我们可以创建6个字段,前两个使用drupal自带的title和body就可以了,我们为“Drupal国际新 闻”,“Drupal安全公告”分别创建两个字段。这里都是文本字段,没有太高级的字段。我们用CCK,做出来的,应该就是上图所示的效果。
导航到“Administer>>Content types”,admin/content/types,点击“add content type”。
我们进入节点类型的创建页面,在里面输入节点类型的名称,内部名称(类型 type),以及描述。这里名称为“Front Page”,类型为“front_page”,描述为“Front Page description”。为了简单起见,呵呵^_^,实际项目中,描述不能像我这样省事的,不过我见很多人,在实际项目中,根本不添描述的,比我更懒。
下面的3个选项,是这个节点类型的默认选项,你可以对其进行设置。在“Submission form settings”,配置节点创建表单中的默认选项。“Workflow settings”是关于工作流的,节点创建后,会触发哪些事件。“comment settings”是关于评论的,里面的选项我就不多介绍了,自己看看。在这里,我们修改一下“Submission form settings”的设置。
改成Drupal国内新闻的了。保存,导航到“Create content”,node/add,这里就多了一个节点类型Front Page,点击进到Front Page节点类型的创建节点页面node/add/front-page,注意该节点类型的内部名称为“front_page”,而这里的url为 “front-page”,一个下划线,一个连字符,系统自动作了转换。
现在还只有两个字段,这两个都是系统自带的,我们这里就换了换标签,有些人创建节点类型的时候,不喜欢使用自带的,其实能用上还是用上自带的这两个字段,毕竟这两个字段跑的比用CCK添加的字段要快那么一点点。而且只需要改改标签就可以了。