网络营销电子商务研究中心  
How to buy the best prescription safety glasses in Canada? Let's study!
Go Back   网络营销电子商务研究中心 > 网站建设 > Blog(博客)/Wiki(维客)/RSS/Cms
User Name
Password
 
FAQ Members List Calendar Cheap Glasses

Blog(博客)/Wiki(维客)/RSS/Cms Blog(博客)/、Wiki(维客)、RSS、Cms等WEB 2.0相关技术讨论专区。

 
 
Thread Tools Display Modes
Prev Previous Post   Next Post Next
  #1   IP: 222.184.76.217
Old 2007-06-06, 08:15 AM
topvip topvip is offline
超级版主
 
Join Date: 2006-01-04
Posts: 1206
topvip 正向着好的方向发展
Default Drupal宝典之定制篇

在对Drupal做定制前,需要了解一些Drupal的基本术语:

+ Block(区块)

区块一般位于网页两边的侧栏中,用于导航或显示一些附加内容。区块是一种把数据定位到页面的方法之一。各主题风格可以通过block($subject, $content, $region = "main")函数来控制区块的显示风格。

+ Box(盒子)

盒子是Drupal页面内容的容器。每一个盒子有一个标题和一些内容。各主题风格可以通过box($subject, $content, $region = "main")函数来控制盒子的显示风格。

+ Engine(引擎)

引擎是一类特殊的主题,它通过模板来输出HTML内容。

+ Filter(过滤器)

过滤器是做内容过滤的框架。

+ Module(模块)

模块是为Drupal提供扩展功能的代码片段。有些模块是Drupal核心系统的一部分(例如taxonomy和blog模块),扩展模块(例如 weblinks和image模块)则不属于Drupal的核心系统。核心模块已包含在Drupal的下载包中,扩展模块则需要单独下载。

+ Node(节点)

节点是Drupal中最简单又最难理解的一个概念。几乎Drupal中所有的内容都被存储为一个节点。一个节点就是Drupal的一块内容,它可以是投票、报道、书的一页、或一张图片。

+ Permissions(权限)

权限用于控制内容的创建、修改和站点管理等访问。管理员可以将权限赋给角色,将角色赋给用户。一个用户可以属于一个或多个角色。Drupal缺省提供了两种角色:游客和注册用户

+ Style(样式)

样式是主题或引擎提供的CSS文件,用于替换缺省的CSS。

+ Taxonomy(分类)

Drupal通过分类来描述目录系统,用于对网站的内容进行组织和分类。

+ Template(模板)

模板是基于某一模板引擎的,普通人可读懂的HTML文件,这些文件有一些特殊的代码,用于产生动态信息。

+ Theme(主题)

主题是包含一些函数的PHP文件,用于提供不同的布局风格。
= Drupal 模块安装 =

Drupal 已经自带了许多基本功能模块,在完成 Drupal 的安装后,开启这些模块就可以了。

如果你需要功能扩展模块,则需要到 http://drupal.org/project/Modules 下载并安装这些模块。

步骤非常简单:

+ 下载模块包

+ 解压缩

+ 把模块文件上传到 Drupal 的 modules 目录中

+ 有些模块可能需要运行 mysql 文件创建表

+ 在“管理->模块"中开启这个模块
= Drupal的邮件发送设置 =

用户在网站进行注册时,口令将发送到用户的邮箱里。这需要你的网站能进行邮件发送。

网站发送邮件的办法有许多种,这里推荐一种使用ssmtp发送邮件的方法。

假设你有一个gmail帐户,并打算用该帐户发送邮件:

+ 设置ssmtp

# vi /etc/ssmtp/ssmtp.conf

对该文件做如下设置:

root=xxxx*gmail.com (注:xxxx为用户名)

mailhub=smtp.gmail.com:465

rewriteDomail=gmail.com

hostname=gmail.com

+ 设置php.ini

# vi /etc/php/apache2-php4/php.ini

对该文件做如下设置:

sendmail_path = /usr/sbin/ssmtp -t -auxxxx*gmail.com -apxxxx (注:前一个xxxx是用户名,后一个xxxx是口令)

+ 在Drupal的"管理->设置->通用设置->E-mail地址"中

将E-mail地址设置为xxxx*gmail.com。
= forum:论坛 =

Drupal的forum模块提供论坛功能。

在使用论坛模块时,应同时开启comment模块和taxonomy模块。comment模块为Drupal的节点提供讨论板功能,对论坛主题的回复就要用到该功能。taxonomy是智能分类模块,用于组织网站的内容,能自动对内容进行归类。

comment和taxonomy是论坛正常运行所必需的两个模块。

还可以配合其它模块来增强论坛的功能:

+ "管理->用户->配置"可以开启头像(图片)功能

+ 通过开启profile模块增强用户个人信息,可在"管理->设置->个人信息"中增加自定义内容

+ 通过使用privatemsg模块,用户间可以互相发短消息

privatemsg是一个站内消息系统,可在这里下载:

http://drupal.org/project/privatemsg

privatemsg的中文包在这里下载:

http://drupal.org/files/issues/priva…s-4.6.0.tar.gz

+ 通过subscriptions模块或notify模块让用户接收E-mail通知

+ 通过bbcode模块提供BBCode支持。

bbcode模块将提供一个工具条,能很方便地在帖子中插入bbcode。
= 定制自己的首页 =

在"管理->设置->通用设置->默认首页"里可以设置自己的首页,默认值是"node"。它仅仅显示一些被设置为“推荐到首页”的文章。

+ 假设你创建了一个新的节点,包含有非常多的链接和非常复杂的内容,想把这个节点设置为首页。首先找到这个节点的id,假设节点id是83,你只需要将默认首页设置为"node/83"就行了。

+ 假设你想将用户blog设置为首页,则须将默认首页设置为"blog"。

+ 假设你想把论坛设置为首页,则须将默认首页设置为"forum"。
= Drupal 界面定制 =

当 Drupal 站点安装好后,有许多方法对站点界面进行个性化的设置和定制:

+ 安装主题风格

主题风格控制了站点的外观和感受,你可以在网上下载Drupal的主题风格,并在"管理->主题"中启用这些风格。

+ 创建你自己的主题风格

如果你不想用别人预先做好的主题风格,而想为自己的站点打造一个完全不一样的外观,你可以通过开发自己的主题风格来达到这个目的。主题风格的开发人员应具备HTML/CSS知识,如果要开发复杂的主题,则需要懂得PHP。

+ 定制导航菜单

页面顶部和底部的菜单可以在"管理->主题->配置->菜单设置"中进行定制,主链接和备用链接中可以直接编写HTML代码。如果主链接为空,Drupal将根据你安装的模块自动建立导航菜单。每个主题风格可以定义不同的导航菜单。

如果是基于PHPTemplate引擎的主题风格,导航菜单的定义方式是为每个菜单进行定义。

+ 定制文字串

可以通过"管理->本地化->管理字符串"来定制本地语言的文本字符串,Drupal中几乎所有的文本字符串都可以修改。
= Drupal 的主题风格 =

== 模板引擎 ==

Drupal支持三种模板引擎:xTemplate、PHPTemplate、wgSmarty。xTemplate是Drupal自带的模板引擎,但支持该引擎的主题风格数量不多。其他两个模板引擎需要到 http://drupal.org/project/Theme%20engines 下载。其中基于 PHPTemplate 的主题风格非常多。

推荐使用 PHPTemplage,这个引擎大大加快Drupal的速度,非常有利于自己自定义模板,一些大型的Drupal站点都是用的这个引擎。

PHPTemplage 的安装方法:

+ 下载 PHPTemplate

+ 将解压后的phptemplate目录拷贝到Drupal的themes/engines目录

== 主题风格 ==

“主题”是Drupal站点的基本外貌和感觉。有时一个特定的站点会安装不止一个的主题。如果站点管理员提供了多个主题,你可以为你的帐号选择你喜欢的默认主题。

Drupal的官方站点提供了许多主题风格,具体见:

http://drupal.org/project/Themes

其中,Spreadfirefox是我最喜欢的主题风格,著名的 spreadfirefox.com 使用的就是这款主题。

除Drupal的官方站点外,还有许多其他机构或个人提供Drupal的主题风格,通过Google可以搜索到这些风格。

== Drupal 主题风格安装 ==

Drupal 主题风格的安装非常简单:

+ 在 http://drupal.org/project/Themes 下载新的主题风格

+ 阅读主题风格包中的 README 和 INSTALL 文件,看该主题风格包的安装是否需要一些特殊的步骤

+ 检查一下主题风格需要的模板引擎是否已安装

+ 将主题风格上载到Drupal的themes目录中

+ 通过"管理->主题"启用该主题风格,并将其设置为默认风格
== 主题风格中CSS的定制 ==

Drupal的主题定制非常灵活,可以定制每个区块定制的风格。如果懂PHP的话,几乎可以做出可以想得到风格来。

实际上,在大多时候我们主要是通过图片+CSS来定制,这是一种最简单的定制,也不需要懂得太多的PHP知识。

在themes目录下的每个主题目录中,有一个style.css文件。定制CSS的关键是搞清楚CSS元素控制的对象。但许多人搞不清楚CSS元素控制的对象,在这方面花了不少时间。其实只要选对工具,这实际上是非常容易做的。

这个强大的工具就是Firefox。大多数人只知道Firefox是一个浏览器,实际上Firefox提供了大量网页开发的工具。例如:

+ 选定一部分网页内容,通过右键菜单的View Selection Source功能,可以查看选定部分网页的源码。这是一个杀手级的功能,再也不必为在庞大的HTML源码中找不到相应的目标内容而头痛了。

+ 菜单 Tools->Page Info 可以看到非常详细的网页内容,包括表单、链接、多媒体等信息

+ 菜单 Tools->DOM Inspector 可以对网页的HTML、JavaScript、CSS等内容进行很方便的分级浏览

Firefox的功能太多,一时半刻说不完,我们还是回到CSS定制上面来。这需要用到一个Firefox的插件,插件名称是Web Developer,可以在Firefox的网站上下载到这个插件。

安装好Web Developer插件后,就可以用其提供的功能来定位对象的CSS控制元素:

+ 插件的CSS菜单下有一个View Style Information功能非常好用,当你的鼠标电击到网页的某项内容,就能看到该项内容所使用的相关CSS内容。

+ 在Information菜单下有一个Display ID & Class Details功能,能在网页上显示所有的ID和Class信息。

Web Developer插件是专门为网页开发人员提供的一把宝刀,功能太丰富了,你们就慢慢去体会吧。
= 提供搜索引擎友好的URL地址 =

Drupal提供了一个path模块,该模块能定义URL地址的别名。这些别名能大大提高地址的可读性,能帮助搜索引擎更有效地对站内内容进行索引。每个页面可以创建多个别名。

例如(左边是URL地址,右边是为其创建的别名):

user/login => login

image/tid/16 => store

taxonomy/term/7+19+20+21 => store/products/whirlygigs

node/3 => contact

node/10 => products/merchandise/cups

node/10 => cups

node/11 => products/merchandise/coffeemakers
== 批量别名设置 ==

Drupal里允许批量为URL设置别名。通过这个功能,可以提供完全不一样的URL地址,甚至可以为不同的语言提供完全本地化的地址。

批量修改别名的方法是在sites/default/settings.php中添加一个conf_url_rewrite函数(4.6.x),如果是Drupal 4.7.x,则函数名是custom_url_rewrite。

以下例子将所有的"node/$node_id"类型的URL修改为"display/$node_id":

<?php

// 用于 Drupal 4.6.x 的例子

function conf_url_rewrite($path, $mode = ‘incoming’) {

if ($mode == ‘incoming’) { // 从客户端来的URL

return preg_replace(’!^display/(\d+)$!’, ‘node/\1′, $path);

} elseif ($mode == ‘outgoing’) { // 到客户端去的URL

return preg_replace(’!^node/(\d+)$!’, ‘display/\1′, $path);

}

}

?>

<?php

// 用于 Drupal 4.7.x 及更高版本的例子:

function custom_url_rewrite($type, $path, $original) {

// 如果已经为该地址设置了别名,则不作进一步处理

if ($path != $original) {

return $path;

}

if ($type == ’source’) { // 从客户端来的URL

return preg_replace(’!^display/(\d+)$!’, ‘node/\1′, $path);

} elseif ($type == ‘alias’) { // 到客户端去的URL

return preg_replace(’!^node/(\d+)$!’, ‘display/\1′, $path);

}

}

?>
Reply With Quote
 


Currently Active Users Viewing This Thread: 1 (0 members and 1 guests)
 

Posting Rules
You may not post new threads
You may not post replies
You may not post attachments
You may not edit your posts

BB code is On
Smilies are Off
[IMG] code is On
HTML code is Off

Forum Jump

Prescription-glasses.com offers prescription glasses online at discount prices.
All times are GMT +8. The time now is 10:46 AM.


Powered by vBulletin Version 3.8.7
Copyright ©2000 - 2026, Jelsoft Enterprises Ltd.