适用于初学者的Drupal菜谱

原文:http://drupal.org/handbook/customization/tutorials/beginners-cookbook

译者:葛红儒, Think in Drupal Drupal 5.x 德文版

目的

帮助新手学习Drupal, 新手在Drupal.org上占据着大多数.

背景

本书中所讲的技巧,都是基于一个Windows PC(针对Windows的指南)上的一个测试站点。这里面的大部分内容,都能直接应用到在web服务器上构建站点。尽管这里所讲的是针对Drupal 5,但是大部分流程都适用于Drupal 6,当然有一小部分的导航按钮可能有些出入,被改名了或者被删除了。 奇迹 使用Drupal,你不必懂得编程(即便是不懂PHP也没关系)。懂得PHP, HTML, 和CSS的基本知识,有助于你对Drupal的理解,但这不是必须的。 一些非常好的资源:

• W3 Schools - 涉及到与互联网相关的方方面面

• PHP官方网站-PHP的完全实现

• PHP Builder –一些简明教程和快速上手的代码

本简明教程会用到HTML和少量的CSS,但是没有涉及一行PHP代码。我们把所有东西都封装到了Drupal下面。 一些人可能认为学习Drupal学要花费很长的时间,它可能花费你几个月或者几年的时间,来建设一个网站?这种观点是错误的。也是完全荒谬的!一个包含36个页面的静态网站,如果你是初次使用Drupal的话,你只需要花费不到一周的时间就可以将其建立起来。接着,你就可以考虑寻找主机和购买域名了,这可以由主机提供商帮你完成。 你可以做到!是的,你。 使用Drupal.org 在你向Drupal.org提交文章之前,你需要了解的一些东西:

• 先搜索一下,看看你所考虑的问题是不是已经存在了。这样可以避免重复发文。

• 每篇文章仅包含一个问题,这样可以缩短时间,也使得你更容易得到答案。

• 如果你没有理解你问题的回复,一定要再问一遍,不要不懂装懂,比如你可以说“我是个新手,你能不能用更简单的方式给我再讲一下?”

• 当你需要帮助时,请阅读在Drupal论坛提问的技巧。试着完整的描述你的情况。给出你已经做得,还有就是需要准确的给出你想要做什么。

• 例如,如果一个页面不能正常显示,它可以是: 1. 浏览器问题,那么你需要告诉读者你使用的是什么浏览器(名称,版本,..插件…) 2. 给出你所用Drupal的版本号(4.7.x, 5.x, 6.x 等等) 3. 可能与之相关的你用到的第3方模块(注明版本) 4. 还有,最好加上你所用的PHP 和MySQL的版本号(或者你的主机提供商)

• 下面是一些基本资源: 1. 术语(专有名词) 2. Drupal Jargon.

o 节点(Node):用简单的话来讲,就是一个内容单元。例如,它可以是一个"page," "story," "book page," 或者"blog entry."。这些不同的内容类型通常称为“Content types”。

o 主题(Theme):这是你的网站显示给终端用户的方式。在Drupal站点中,主题定义了图形化外观,布局和颜色。

o 区块(Block):这是一个容器,在你的页面上展示一小片内容。比如说“最新文章”,“赞助商链接”,或者“在线会员”。

o 菜单(Menu):一个菜单用来展示一列链接。Drupal菜单通常位于左栏中。例如,你的导航菜单就在这里。 排版习惯 在本站,以及其它Drupal站点,你将会经常看到这样的东西: Administer >> Access control >> User management >> Roles.这意味着,点击导航菜单上的"Administer",接着“Access control”,接着“User management,”,接着“Roles.”。 偶尔你也会遇到"production"(生产) 或者"live"(活得)站点。这些术语通常可以互换。后者---"live"站点----更正式并且更易于被接受,它的意思为“你的终端用户可以交互的网站”。前者,基本上和后者同义,但它是一个更“传统的”数据处理术语。

Drupal版本:

一些初步建议

原文:http://drupal.org/handbook/customization/tutorials/beginners-cookbook

译者:葛红儒, Think in Drupal

下面是在你开始学习Drupal以前给你的建议:

  •  

    • 如果你有什么新的功能,一定要先在测试站点(相同的模块和数据,不同的数据库)上试验过以后,才能放到线上,千万不要直接放到线上。
    • 不要一开始就尝试建立一个“完美的站点”。在你还没有更好理解以前,应该容忍瑕疵的存在。一味的追求完美,会让你不能按照预期达到目标。
    • 刚开始时,尝试着学习和使用Drupal的基本功能。首先看看Drupal能做什么,然后再尝试让它帮你做什么。如果你对核心特性已经非常熟悉了,你可以尝试着学习使用一些比较复杂的第3方模块:Views, Category, CCK, 和Organic Groups模块(modules)。
    • 在你创建自己的主题以前,你可以先尝试对默认主题进行定制,Drupal手册中的主题开发指南,对此很有帮助。
    • 当你使用模块时,遇到了问题以后,首先阅读模块自带的"readme"文件,然后使用搜索引擎进行搜索。通常情况下,我所遇到的问题都已经在论坛中或者问题列表中有了答案。
    • 更有效的使用google搜索:关键字 site:drupal.org。通常可以快速的找到你的问题和答案,一般有人已经问过这样的问题了。
    • 为了让站点成功的话,要让它迎合用户,而不是与用户作对。但你的站点初步建立以后,邀请你的朋友,家人,或者其它你熟悉的人,来访问你的站点并给出真诚的建议,或者采用更正式的用户测试(我运行一个公司内部网站,每隔几个月我都做一次用户测试)。
    • 有时间的话多逛逛论坛。帮助他人,就是帮助你自己。
    • 不要在你的站点上放置太多花哨的东西,比如无用的区块,图片等等。我喜欢简单,只有在需要的时候才放上去。当然这依赖于你的应用。

好运!

Drupal版本:

Drupal应该很容易吗?

Drupal很强大,很灵活。这意味着,它也很复杂。你觉得Myspace的工作人员没有自己的术语吗,或者他们是一天就把网站给建出来的吗?我不知道有谁在讲Drupal很简单,但是有很多人由于想一下子掌握所有的东西,反倒把事情搞复杂了。

为了在Drupal社区中,人们更好的相互交流,使用相同的术语是必须的。如果你说“在我屏幕右边的盒子一样的东西”,语意就不明确,别人也不好理解。你将其改为“右栏中的作者信息区块”----现在语意就非常准确了,每个人都能理解你的意思了。你告诉了他们它是什么,在哪里,甚至如何找到它以及相关部分的样式。

开始时,尝试着理解Drupal的简单部分,不要想着一下子都掌握了。例如,首先你需要理解什么是节点(可参看在我书中的定义)。接着你才能理解什么是节点类型。学习页面的基本构成部分(页首,页脚,左栏和右栏,以及中间或者内容区域)。多点点,多看看后台的管理页面,这样,即便是你现在不知道它们能干什么,你也能大概的知道它们在哪里。

如果你的目标是拥有一个"MySpace"一样的网站,愿望总是美好的,但你要记住,只有你一个人,而你所用的工具你也不太熟悉。很多人都能搭建一个"MySpace"一样的网站,这是因为它们对所用的工具,模块非常熟悉(顺便说一句,我觉得MySpace相当不符合逻辑)

首先,先把东西搭起来,这样看得见摸得着。然后你再为此庆祝,不要在那里做思想的巨人,行动的矮子。有了一个开始以后,你就可以实现更精彩的东西了,但你需要一步一步的去做。不要一下子就添加无数个模块,这样会把你的服务器累死的;你要跟着感觉走。一次添加一个模块,熟悉了以后,可以再添加新的。

为了让Drupal更易于使用,也更加符合逻辑,我们欢迎你提交反馈信息,比如说新的特性需求,或者你觉得一些地方不太符合逻辑。如果你没有看到你的方式出现在Drupal中,你也不能命令我们给你实现,或者威胁以后再也不用Drupal了。当然,也不要做出诬蔑性的评论,毕竟Drupal是免费的。

 原文:http://drupal.org/handbook/customization/tutorials/beginners-cookbook

译者:葛红儒, Think in Drupal

 

Drupal版本:

A.drupal入门

     有多种方式,可以在你的本地计算机上建立测试环境.在Drupal手册的建立开发环境一节中,包含了不同操作系统下面的许多应用和指南. 

建立本地开发环境的原因:

  • 本地开发允许你在不能上网的情况下也能进行开发.
  • 建立一个本地开发环境,即便是非常简单的比如WAMP,也能帮助你更好的理解服务器进程和数据库系统.随着你对Drupal理解的加深,你将会越来越得心应手.
  • 任何你放到网上的东西,都将被搜索,归档,一般都会放置很长时间.如果你的内容中包含错误的, Google将会把它搜索到,并保存起来,全世界的人们都有机会看到你的错误,难道你想这样吗?

在这本drupal简明教程中,我们采用来自DeveloperSide.net的集成安装包,测试环境为 Windows PC

这个安装包已经集成了以下东西:

  • Apache 2.2 HTTP服务器
  • MySQL 5.0数据库
  • PHP 5.2 Perl 5.8 脚本语言
  • WAMP图形控制器
  • 动态DNS客户端
  • Tomcat Servlet/JSP容器
  • mod_aspdotnet ASP.NET主机接口
  • OpenSSL加密工具集
  • mod_security网络应用防火墙
  • phpMyAdmin MySQL管理
  • Joomla
  • Drupal
  • WordPress
  • MediaWiki
  • phpBB

注意,对于任何包含了Drupal的安装包,比如DeveloperSide的,它们的Drupal可能不是最新的版本。因此,如果你使用这种安装包的话,我们建议你安装后,立即检查Drupal的版本,如果不是最新版本的话,立即对Drupal进行升级。

 

我按照他们的指导,构建了自己的开发环境!更多指导可参看开发环境一节中的Web.Developer。最好将"Web-Developer Controller"的快捷方式放到你的桌面上,这个非常方便,我不知道是不是安装过程中自动放上去的,如果不是的话,你可以手动的拖过来。

 

美中不足的是,当我访问Drupal的官方网站,想下载一些需要的模块和主题时,发现在drupal.org首页有个很显眼的通告,一个更新的Drupal版本发布了,而且官方推荐使用最新的版本。

我下载了最新的Drupal稳定版本。接着使用WinZip对其解压缩。

 

当然,现在创建的目录名为"Drupal-5.1,"(编写本文时的最新版本),而安装包里面需要的目录名为"Drupal." 现在我们关闭Apache的服务,将"Drupal"改为其它的名字,将"Drupal-5.1"改为"Drupal"。这样就可以了!现在我的Drupal升级到了5.1版!

 

如果你没有使用自带Drupal的集成安装包的话,安装过程也是非常简单的,只需要几分钟就可以了。根据你的Drupal版本,你可以在手册的入门一节中,找到相应的安装指导。这里是Druapl 5的,这里是Drupal 6的。

 

原文:http://drupal.org/node/120613

译者:葛红儒, Think in Drupal,

 

 

 

Drupal版本:

B.drupal基本配置

无论你的Drupal是单站点还是多站点,现在你都需要做些基本的设置.下面这些是我做的,你可能会有所不同;这里数据库的权限为"root",这样做的好处是,比较方便,干什么都比较省事,你不用担心权限的问题.对于一些东西,我将给出Drupal.org上的相关链接,但是还没有发现与本文相近的相关内容。

  1. 导航到Administer>>User management>>Roles,创建一个角色"administrator"
  2. 导航到Administer>>User management>>Users,为你自己创建一个用户。这将使得在你需要的时候,你可以通过切换用户,来测试你的Drupal站点。
  3. 导航到Administer>>User management>>Access control,将所有的权限授予角色"administrator"
  4. 现在,你可以设置登陆用户和匿名用户的权限了,比如说,使用联系表单。这种设置,在需要的时候,随时能对其进行更改。
  5. 导航到Administer>>Site configuration>>Site information页面,在靠近底部的地方,将"Default front page"设置为"node." 在该页面上,你还可以为其它字段设置基本的默认值。我不了解这里的所有的字段,但是我不喜欢,当我访问一个drupal站点时,被称为“匿名的”("Anonymous"),所以我将其改为了“访问者”。
  6. 对于那些在所有站点上都用得到的Drupal模块(核心的或者第3方的),现在就可以启用它们了(Administer>>Site building>>Modules)。例如,可能在所有的Drupal站点上,你都会用到"Page"或者"Story." 我现在发现越来越多的用户使用"Book."了。

我强烈建议你启用Drupal的核心模块"Path"模块,这样你就可以为你的页面使用“普通的”名字了。

如果你想使用联系表单,通过站点为用户发送电子邮件的话,一定要启用"Contact"模块。

  1. 对于drupal主题的设置,和模块的做法一样。

 

有些东西我推荐你在你的所有Drupal站点中都采用,现在就是最好的时候来做这些事:

  • 启用"CLEAN URLS"(简洁URL),这样你的站点对用户更加友好。导航到Administer>>Site configuration>>Clean URLs。在那段描述的底部,有一个链接,用来测试简洁URL。如果通过测试的话,那么"Enable"单选按钮,现在就可用了。点击这个单选按钮。(如果由于某种原因,不能正常工作的话,可参看取消简洁URL的指示
  • 为了让我创建各种类型的内容,当我的站点准备好上线时,我来到Administer>>Site configuration>>Input formats,将"Full HTML"设为默认选项。接着我仍然允许管理员们(和我的其他ID一样)能够使用这种格式。现在你就这样做,这样在构建站点时,你就能够避免一些常见问题
  • 我不喜欢将"Promoted to front page"(发布到首页)作为发布内容的默认选项,导航到Administer>>Content management>>Content types,在每种格式下都关闭它。
  • 现在你该决定你默认的评论模式了。导航到Administer>>Content management>>Comments>>Settings,对于一个单独页面,允许用户对其评论,确保将"Preview comment"(评论预览)设为"Required."
  • 现在,让我们启用联系表单,这样你的用户就可以给你发消息了。导航到Administer>>Site building>>Menus,找到"Contact"一项。点击"enable"链接。记住,接下来,你需要导航到Administer>>Site building>>Contact form,以完成相应的设置。

相关链接:http://drupal.org/node/120614

         Think in Drupal 

 

 

Drupal版本:

C.在一个本地计算机上建立多个drupal站点

需要第2drupal测试站点?下面是如何简单的实现它。[提示:如果你已经想好了要创建多个站点,你首先需要将要创建的站点列出来,接着阅读本文给出的这些指示。有些步骤可以批量进行,从而节省你的时间。]

为什么还要创建其它站点呢?除了我的已经运行的几个站点以外,我还想起了一些新的玩意,还没有完全成型,而在现有的测试站点中,又很难将这种想法加进去。我可能还有一些关于将来自己要建立的站点的想法。总之,人总是会有这样或者那样的想法的,对于程序员来讲,想法就意味着网站的原型。所以,在你完全放弃自己的想法以前,你可以花上几分钟仔细考虑一下。过一段时间,你很可能会改变自己的主意;现在它看起来还有点凌乱。

 

最终,我决定为我的新想法创建一个测试站点。因为是测试用得,即便是将来它完全失去了控制,你也能将其推倒重来。

 

这个过程看起来很长,其实不然,我只是在这里对其进行了详细的描述。扩展阅读材料,可参看“在本地的Windows PClocalhost)上,使用一个Drupal,运行多个站点”。更多关于站点目录的官方细节,可参看为多站点设置站点目录

如果你想了解这方面的更深的知识,你可以在drupal.org上对论坛进行搜索,输入"multi-site",最好使用google, drupal.org自带的搜索功能经常被关闭,而且速度也很慢;在http://groups.drupal.org/multisite上,有专门的一个小组来讨论这个问题。而在手册内部,有很好的一节:Drupal多站点安装和设置

相关联接:http://drupal.org/node/120647

               Think in Drupal(勿删)

Drupal版本:

步骤

  • 打开phpMyAdmin(使用Web-Developer控制器中的“其它”(other))

开始批量循环1

  • 在左边,选择数据库Drupal51。这个数据库是在前面安装时创建的,数据库名可能会有所不同。
  • 点击"Operations"(操作)
  • 向下滚动到“Copy Database to:”(复制数据库到:)
  • 输入新的数据库名。
  • 验证是否点击了单选按钮:

    • 结构和数据
    • 在拷贝以前首先创建数据库
    • 切换到要拷贝的数据库
  • 点击这个区域下面的Go(开始)按钮。
  • 拷贝完成以后,点击"SQL"
  • "Run SQL query/queries on database"输入框中,输入:

GRANT SELECT, INSERT, UPDATE, DELETE, CREATE, DROP, INDEX, ALTER, CREATE TEMPORARY TABLES, LOCK TABLES ON databasename.* TO 'admin'@'localhost' IDENTIFIED BY 'superpw';
FLUSH PRIVILEGES;

admin是我的管理角色(它是用户1的用户名)
 
superpw
是该用户的密码(我为我的所有的数据库也使用这同一密码,这样更方便一些)。
 

提示:我将这段文本创建并保存在了c:/www/drupal/grant.txt,这样将来我可以重复利用它。

  • databasename改为新的数据库名。

结束批量循环1

  • 关闭phpMyAdmin
  • 导航到www/Drupal/sites目录。

开始批量循环2

  • 拷贝一个站点文件夹(例如:default),将其改名为你的新站点。
  • 打开该目录,使用记事本打开settings.php文件。
  • 修改$db_url $base_url$db_url应为你刚刚创建的数据库名。$base_url应为你访问站点时用到的URL
  • 关闭settings.php文件。
  • 如果你需要为该站点使用特定的模块或者主题,你可以在该站点的目录下面创建两个子目录"modules" "themes"

结束批量循环2

  • 导航到/www/Apache22/conf文件夹下。
  • 找到并打开"httpd.conf"文件(提示:如果我要向修改一些东西的话,我首先对其进行备份,以防万一。)

我注意到我的Apacheindex.html放到index.php前面,所以在你的目录下面删除index.html,如果存在的话。

  • 找到"# Virtual hosts."一行。删除下面一行前面的注释符"#"。这使得你可以创建一个单独的文件来放置你的其它改动,这样会更安全一些。
  • 保存。
  • 导航到/www/Apache22/conf/extra文件夹。
  • 打开httpd-vhosts.conf文件。
  • 在已存在列表的底部,将例子注释掉("#")。

结束批量循环3

  • 在已存在列表的底部,输入:

<VirtualHost *:80>
    DocumentRoot /www/drupal/
    ServerName databasename
</VirtualHost>

  • databasename改为新的数据库名。

结束批量循环3

  • 关闭该文件。
  • 导航到/windows/system32/drivers/etc文件夹下面。
  • 使用记事本打开Hosts文件。提示:这两步也可以使用Web-Developer控制器重的"other"选项完成。

开始批量循环4

  • 添加一行:

    127.0.0.1   databasename

  • databasename改为新的数据库名。

结束批量循环4

  • 关闭该文件。
  • 返回到Web-Developer控制器。
  • 点击Apache2(左上)
  • 点击Stop Service(停止服务)按钮
  • 等待,直到状态改为"stopped."
  • 点击Start Service按钮。
  • 等待,直到状态改为" running."

继续。现在你可以打开浏览器,并输入http://databasename了。

多站点目录的更多细节,可参看为多站点设置站点目录

相关链接:http://drupal.org/node/120647

 

Think in Drupal(勿删)

 

Drupal版本:

D.drupal错误页面

偶尔,用户可能会做出一些让Drupal头疼的事情,比如说键入了一个错误页面或者试图访问他们无权访问的内容.这些将分别生成404 403错误.

在最近的一篇SEO文章中提到,Drupal处理这些错误的好处:

你的404错误页面应该和你站点的其它页面一样.它应该包括站点的页首,页脚和导航条,这样用户可以方便的点击你站点的其它区域.这个404错误页面的内容应该包括解释信息,向用户解释所访问的页面现在不可用,还有就是联系信息,这样用户可以联系你,发邮件或者给你打电话.

 

当用户看到一个错误页面时,总会有些沮丧的.而现在,很明显,最好的做法是让用户方便的回到你的站点上去.

对于“拒绝访问”("access denied" (403))错误消息页面,道理也基本上是一样的。让用户知道他们不能这样做,并给他们解释为什么这样。

 

导航到"Create content",选择"Page."。我使用的标题为"Access Denied" "Page Not Found",你可根据你的实际情况采用自己的标题。当你提交以后,记住节点的id。接着,导航到Administer >> Site Configuration >> Error,在相应的字段中输入"node/nnn"

 

Page Not Found(未找到相应页面)

下面是我的404页面的HTML

<p>Sorry! The page you were looking for no longer exists. We redesigned our site and many of the pages have changed.</p>
<p>&nbsp;</p>
<p>If you are unable to find something on our new site or have a question about our site or services feel free to <a href="/contact">contact us</a>.</p>
<p>&nbsp;</p>
<p>--Webmistress</p>

 

Access Denied(拒绝访问)

下面是我的403页面的HTML

<p>We're sorry, but you must have permission to view the page you requested.</p>
<p>&nbsp;</p>
<p>If you are already a registered member of this site, please try <a href="user">logging in</a>.</p>
<p>&nbsp;</p>
<p>If you are not a member, you need to <a href="/join_us">join us</a>.</p>
<p>&nbsp;</p>
<p>If you have any questions about our site or group, please feel free to <a href="/contact">contact us</a>.</p>
<p>&nbsp;</p>
<p>--Webmistress</p>

不要担心,你尚未创建"join_us"页面。这就是启用URL别名(Path module 路径模块)的好处。将创建该页面放在你的待做任务列表中,在本书后面的章节中将会讲到相关的内容。

相关联接:http://drupal.org/node/120646

                  Think in Drupal(转载时请勿删)

 

Drupal版本:

E. 访问你的drupal测试站点

现在该装的软件都装好了.但是我们该如何使用它呢?

首先, 通过点击桌面上的快捷方式,打开"Web-Developer Controller",.看左上角.你应该检查一下Apache MySQL是否在运行.如果是的话,那一切都准备好了.如果没有的话,选择Apache,接着点击"Start Service"按钮.等待,直到状态改变为"Running.".现在选择"MySQL"并启动它.

 

是不是很好玩阿,我们把所有的软件都搞定了.现在,让我们开始我们的Drupal之旅吧.

打开你的浏览器.在地址栏中键入http://localhost/drupal/,来访问你的测试站点.由于前期工作都已经准备妥当了,你现在就能看到你的Drupal测试站点了.恭喜你!现在你就可以正式开工了.

 

 

Drupal版本:

F.安装drupal模块和主题

我首先要讲的是,对于一个新手来说,在开始的时候,不要去考虑添加什么drupal模块和主题.首先先使用站点自带的基本功能,等熟悉了以后,如果需要的话,再添加附加的功能.

主题更多的是一个口味问题,众口难调.例如,我不明白为什么有些人会使用“固定宽度”("fixed width")的主题,但是很多人都喜欢这样。关于主题的很好的一点是,主题更多的是依赖于你的内容的(接下来,你将看到许多主题的东西都依赖于内容)。

3方模块,是用来为你的drupal站点添加或者扩展功能的。我个人认为现在唯一需要添加的模块是Nodewords(又叫Meta Tags)模块;在我看来,你应该成为drupal核心模块。这个模块允许你为你的页面添加元标签,比如"content," "keywords," "robots"等等。如果你对搜索引擎排名感兴趣的话,这将对你很有帮助。你也将会发现,许多第3方模块(contributed module)都依赖于Views模块;继续前进,让我们将主题和模块的添加过程标准化。

现在,如果你使用过不同的主题和模块的话,我建议你试试Update Status(升级状态,drupal6核心模块)和Site Documentation(站点文档)模块,这样既可以确保你能够跟上Drupal发展的脚步,同时又可以为你的站点生成相关文档。下面是选择版本时的一些建议:Strong stomach?(好胃口?)

 

安装

模块或者主题的安装,基本上是同一个个模式。现在记住,我使用的环境为Windows PC(开发)和Linux服务器(我的在线站点)。

  1. 访问Drupal.org,点击"Downloads"标签。然后根据你的需要选择"Modules"或者"Themes"
  2. 找到你想要的模块或主题所在的位置。
  3. 确保模块的版本与drupal的版本相匹配。D5的模块和主题不能用在D6上的.
  4. 我经常点击"Find out more"链接,并阅读里面的材料.这样你就可以了解到,现在这个模块是不是还有开发者在支持它,因为有些模块,用的人少,原作者就停止了对它的维护.你也可以查看bug列表和请求特性列表----如果bug比较多的话,或者你需要的功能还没有实现的话,你就有可能放弃使用这个模块。
  5. 下载合适的版本(我将它们放在了"My Downloads"下面的一个Drupal文件夹下)
  6. 解压缩你下载的文件(我用的是WinZip)。它可能会告诉你压缩文件中仅包含一个文件;点击"" 或者"同意"
  7. 将代码拷贝到你的/sites/sitename/modules或者/sites/sitename/ themes文件夹中。如果你用的不是多站点的话,它将是/sites/all/modules 或者/sites/all/themes
  8. 这样就可以了!现在你需要启用它了。

drupal主题

相关链接:http://drupal.org/node/120641

                 Think in Drupal(转载时请勿删除)

Drupal版本:

drupal模块

导航到Administer>>Site building>>Modules,在这里,你可以启用一个drupal模块.非核心模块一般都位于靠下面的部分.drupal5.x中,现在drupal模块之间可以存在依赖关系了。由于依赖关系的存在,我需要不断的启用并保存它们。例如,"Views UI"依赖于"Views",所以我先选择"Views",保存设置后,接着选择"Views UI.",然后再保存。

大多数模块都会引入一些菜单项。当模块启用后,这些菜单项一般会自动出现。一些菜单项,需要设置相应的权限后(接下来的一步),才能显示出来。还有一小部分甚至需要你手动的添加菜单项,但这些模块已给出了相应的说明,以帮你完成这些步骤。

 

好的,现在真正的工作开始了。导航到Administer>>User management>>Access control,为新模块设置权限。

 

如果drupal模块引入了一个新的内容类型,导航到Administer>>Content management>>Content types,来配置这些内容类型。不要忘了,这也将影响到你的"Input formats"(输入格式)(Administer>>Site configuration>>Input formats)"Categories"(分类)(或者taxonomy, Administer>>Content management>>Categories);你也需要对这些进行检查一下。

 

好的,现在你就可以使用新装的drupal模块了。

 

本站

我的文档站点是一个相对普通的Drupal站点

启用的核心模块

使用的第3方模块

  • Blog
  • Book
  • Comment
  • Contact
  • Help
  • Menu
  • Path
  • Codefilter – 提供相应的标签,用于代码的格式化。
  • Meta Tags (Nodewords) –允许用户添加元标签,比如关键字或者描述。
  • Site Documentation –将你的配置生成干净的文档

想要了解有哪些drupal模块可用,你可以访问:drupal模块手册3方模块手册

相关链接:http://drupal.org/node/120642

http://nanwich.infoThink in Drupal(转载时请勿删除)

Drupal版本:

drupal主题

如果要启用一个drupal主题的话,可以导航到Administer>>Site building>>Themes.

 

如果在这个站点从来没有启用过这个drupal主题的话,你需要选中"enable"复选框,接着点击底部的"Save configuration"(保存设置)按钮.

 

为了设置主题如何工作,点击"Configure"链接(不是顶部的标签)

 

输入相应的字段.

 

保存设置.

 

现在先别离开这个页面.

 

 

Logo Favorite Icon

现在使用那个"Configure"标签

我喜欢在"Global Settings"下面完成这一设置,如果你喜欢的话,你也可以一个主题一个主题的分别进行设置.

默认的Logo就是位于页面左上角处的一个小图片。例如,在"Bluemarine"主题上,它用的是Drupal logo

如果你想修改它的话,你可以这样:

  1. 首先,需要检查一下它的大小,因为你自己的logo要使用同样的大小(如果你熟悉HTMLCSS的话,你也可以编辑主题的代码让其适应你的logo,而不是调整图片的大小。在这个新手指南中,我们就不涉及如何编辑主题的代码了)。

主题名

Bluemarine

48

55

Chameleon

49

57

Garland

64

73

Minelli

64

73

Pushbutton

144

63

Fancy

80

80

  1. "Logo image settings"下面,你需要输入你logo所在的路径,或者你需要将其上传上来。
  2. 注意:这些选项都没有取消"Use default logo"复选框。你必须自己选择合适的复选框。
  3. 对于"Shortcut icon"(又叫做favorite icon或者"favicon.ico"),做法也完全一样。如果你要修改它,你需要专门的告诉Drupal,“嘿, drupal ,我要改变这个”。

 

 

现在点击"Save configuration"按钮。如果你是在"Global settings"设置的话,她敬爱那个影响到所有的主题(假定一切正常的话);如果你是在单个主题下面设置的话,那么仅仅影响到这个主题。

可用的主题列表,参看主题

提示:想对一个标准的主题作出一些(或者很多)的修改吗?你可以考虑,将其拷贝到你的/sites/sitename/themes/文件夹下,然后对其重新命名。现在你就可以随心所欲的进行修改了,如果不顺眼的话,你再拷贝一遍就可以了。如果改动比较多的话,而且质量比较好的话,你可以考虑将其贡献给整个社区(当然,注明你的名字)。

Drupal版本:

G.创建内容

“哇,我已经做了很多了,但是在我的站点上,现在还没有任何内容!”那么,现在就让我们添加内容.

 

首先,让我解释一下,你的用户访问你的站点首先看到的一页通常称为首页.在Drupal中称为"front"页面,很像一家报纸.这个页面在Drupal中非常特殊.我知道,你现在已经急不可待了,但在你决定使用哪种内容类型来创建你的首页以前,首先让我们讲一下Drupal中的内容类型.

 

内容类型

Page

Drupal,“如果你想添加一个静态页面的话,比如说“联系”页面或者“关于我们”页面,使用page”。如果你熟悉使用HTML构建网站的话,过去人们通常都这样做。概括一点来讲,一个"page"通常是独立的,而且一般有一个菜单项。将来你也可以将它添加到一本书(book)中。我最初创建的两个站点,基于以前的静态HTML站点,我的首页使用的是"page;"从那以后,我开始改用"story"了。

 

Story(故事)

Drupal说,“Stories是最简单的文章:拥有一个标题,一个摘要(teaser),和一个主体(body)。其它模块可以扩展这一类型。摘要也是主体的一部分。通常可用于个人博客或者新闻”。

 

好了,你一定访问过drupal.org吧,在首页上,除了上面的导航,和右栏里面的区块以外,其中的正文中,包含的就是"stories."通常为6个,最上面的为当前最稳定的Drupal版本消息。现在我的站点也改用了这种形式。“欢迎”消息就是一个story。我使用的是一个用于通知的story节点,站点上的每个管理员都可以编辑它。如果你的站点是关于天气或者卡通的,最好使用story。另一种用途是,如果你用的是net ring的话,你也可以将ring的链接放到story中。

 

Book Page(书)

Drupal说,“一个book()是协作编写的结果:用户一起努力编写图书中的页面,为页面进行排序,复审或者修改以前编写的页面。所以当你有东西拿出来分享时,或者你看到其中一个页面,你不怎么喜欢它,或者你觉得某个页面应该编写的更好一些,这时候你就可以使用book了”。

 

Book的另一种用法是用来收集相关信息。一个book拥有自己的导航,所以它也可以用来做导航用。

 

Blog Entry(博客条目)

你可能已经知道什么是博客了,但是在这里:一个blog是一个日常的想法的总结,或者其它按时间排序的内容。博客条目内容类型是由blog模块添加的。Blog模块允许你有一个多用户博客,这意味着每个人都可以拥有自己的个人博客。它添加了标题和面包屑,用来指示博客作者的名字。一帮情况下,如果你仅仅需要单用户博客的话,最好使用Story节点。

 

现在,决定了要采用的内容了没有?没有,好吧,让我们从page开始;它比较简单。当你决定创建内容时,同时也要考虑一下菜单项。

 

注意:如果你想将你的首页设为"node"Administer >> Site configuration >> Site information),那么你至少需要创建一点内容,并将其“推到首页”(promoted to front page)。如果没有的话,你看到的应该还是"Welcome to your new Drupal site"。手册的另一节创建新的内容可能会对你有所帮助。

 相关链接:http://drupal.org/node/120635

                  Think in Drupal(转载时请勿删除)

 

Drupal版本:

向你的文本中添加图片

有多种方式,可用来向文本中添加图片,每种方式都有自己的优点和缺点。

1.       使用图片模块Image module),以及相关特性。这种方式下,每个图片都是一个节点,这增加了许多能力。

· Image_Attach,为目标节点添加一个独立的图片字段,指向该图片节点。它提供了简单的图片上传功能,但是其它功能有限。

· Image_Assist,它使得能够在文本字段中嵌入图片。提供了可视化的工具,可以选择图片,上传图片,以及控制图片的大小和左右浮动。需要向文本字段中添加必要的HTML。

· drupalimage,TinyMCE编辑器的插件,它使得Image Assist作为TinyMCE的一个字段来使用,将其展示为一个所见即所得(WYSIWYG)的图片(虽然风格不完全与你的主题相一致)。

还有一些未测试的高级特性,包括:

· 批量上传能力。

·可与drupal的相册模块(Gallery module)相集成。
·可与Acidfree模块相集成。

 

2.CCK ImageField。与Image Attach非常相似,但它仅仅能够将图片上传到一个文件夹下,而其它功能有限,比如大小或者样式的控制都有所欠缺。一般都与Imagecache一起使用,从而很好的控制图片的大小。

 

3. IMCE(演示http://ufku.com/drupal/imce/demo).提供了在服务器上,上传和搜索图片的能力。它的功能类似于Image_Assist+drupalimage的集成,但它可以与TinyMCE相集成,从而能够很方便的插入图片,它还可以对插入图片的属性进行更多的控制。但是它的图形操作界面非常丑陋---影响了易用性,而且它相关的相册功能也很不好用,有人专门对此提出了批评。

 

4.或者可以考虑使用FCK Editor。从演示可以看出,它是一个功能强大的编辑器,可与TinyMCE相媲美,而且还拥有自己的图片上传和插入机制。但是:

·它没有自动生成缩略图的功能。(cf Drupal Image)

· 图片就是普通的独立的文件,都放在一个files目录下面-----根据个人需求的不同,这可能也是优点。

 

我犹豫了很久,觉得这个好,那个也可以,但是最终选择使用Image模块:

 

· 安装Image模块,和通常的步骤一样。

· 按照http://mybesinformatik.com/tinymce-and-drupal5的指示,向TinyMCE中添加drupalimage插件。

·TinyMCE Profile中调整设置,从而显示需要的特性。

· 创建一个分类,允许为图片添加标签,这样更易于检索。

 

相关链接:http://drupal.org/node/163346

                    Think in Drupal(转载时请勿删除)

 

 

 

 

Drupal版本:

drupal首页

使用下面的几步,你在将来的任何时候,都能够方便的添加/修改你的首页.

1.       创建你的首页

用管理员登陆以后,从左栏选择

Create content > Page

来创建你自己的内容.完成了以后,点击提交,查看结果.注意,当前的URL(你当前新建页面的路径)应该这个样子:

http://www.example.com/?q=node/# (普通)
http://www.example.com/node/# (使用了简洁URL)

在这里, #代表着节点ID.我们需要这个id,将它拷贝到一个地方,或者记住它.

 

2.       首页

现在你有多种选择:

  • 2.1.将一个单独的页面设为你的首页。
  • 2.2.将你的页面推到首页,它将位于首页页面列表的最上方(这里只展示一个简短的摘要(作为一个预览),你需要点击它才能看到整个页面)。
  • 2.3. 使用Front模块来充分的自定义你的首页(主题化,不同用户角色

 

2.1.将你的页面设为首页

创建完你的自定义页面以后,选择

Administer > Site Configuration > Site Information

在该页面的底部,你将看到“Default front page”(默认的首页),以及下面的这些东西:

http://www.example.com/?q=(普通)
http://www.example.com/(使用简洁URL

紧跟着是一个文本输入字段。在这里你需要输入

node/#

其中#就是前面你拷贝下来的节点id。点击“Save configuration”(保存设置),你的首页自动变为了前面创建的页面。你可以随时对其进行重置,只需要通过仅仅输入node(这个是默认值),就可以了。

 

2.2.将你的页面推到首页去

如果你想把你的页面推到首页的话,你应该返回到步骤1,现在你不点击“提交”,或者编辑你刚才创建的页面(导航到这个地址)

http://www.example.com/?q=node/#/edit (normal)(普通)
http://www.example.com/node/#/edit (using clean URLs)(使用简洁URL

其中#是节点id
无论采取哪种方式,在页面的底部,你将看到一个下拉菜单,叫做“Publishing options”(发布选项),在这里,你需要选中“Promoted to front page”复选框,要做的就这么多。点击提交按钮。

 

 

2.3.使用Front Module

如果你需要对你的首页进行更多控制的话,你可以使用Front模块来

  1. Set a different theme to your front page
  2. 为你的首页设一个不同的主题
  3. Set different front pages depending on user roles (admin, anonymous, authenticated)
  4. 根据用户角色(管理员,匿名用户,登录用户)设置不同的首页
  5. Insert custom php snippets into the front page
  6. 在首页中插入php代码片断

http://drupal.org/project/front你可以找到Front模块



 

安装完Front模块以后,选择

Administer > Site configuration > Advanced front page settings

这里面的下拉菜单都有很好的解释。如果你点击了其中的任何一个,你都会看到:

  • Body:你可以输入你想展示的文本,html,甚至php代码。
  • Select Type:你可以设置,其它用户角色也使用这个首页,对其使用默认的或者自定义的主题,等等。
  • Redirect to(重定向到):你可以设置一个用户要重定向到的地点。

当你设置完以后,点击“Save configuration”,这样就可以了。

 

 相关链接:http://drupal.org/node/265172

                   Think in Drupal(转载时请勿删除)

Drupal版本:

G1.创建一个Page

点击drupal菜单中的"Create content",然后选择要创建的内容类型。

 

标题和主体都自带了很好的说明。在下面有一些可伸缩的字段。"Input format"用于控制你可以向页面中输入什么的;我们假定你是超级用户(user/1),所以你有权使用"Full HTML."

 

如果你安装了Nodewords的话,接下来的部分就是"Meta Tags."它的解释也很详细。

 

使用日志消息来提供相应的信息,这对其他想要编辑你的文档的作者非常有用,当你想编辑自己的或者他人的内容时,日志消息也为你提供了参考。而对于不具有相应的内容编辑权限的用户,他们是看不到日志消息的。

 

日志的记录是基于每次修订(per-revision)的,每当你修订了你的内容时,就会创建一个日志,日志消息的内容是关于该文章的这次修订的信息。如果你对一个页面拥有编辑权限的话,你可以看到一列修订信息(如果你每次编辑内容时都选择创建一个修订的话),通过点击修订标签你可以看到它们相关的日志消息。

 

如果你启用了drupal的核心模块"Path"的话,接下来你将看到URL路径设置。在这里你可以为其输入一个普通的名字,这样在将来你需要引用它的话,你就不需要再使用“node/#”了。提示:如果你是从一个静态网站转为drupal网站的话,你可能需要在名字后面添加".htm" 或者".html",这样搜索引擎仍然可以访问到原来的这个页面。

 

接下来是"Menu settings"(菜单设置),"Title"是菜单项的名字。"Description"是,当用户的鼠标移到该菜单项时所显示的内容。"Parent item"允许你创建可伸缩的多层级菜单。"Weight"允许你设置菜单项在菜单中的相对位置;非常不幸的是,许多Drupal内核中的菜单项都将其硬编码为0了。

 

一般你不需要使用"Authoring information",除非你想将这个页面归功于他人。这一部分的另一个用途是用来控制页面(page)或者故事(story)的顺序,当排序是按照节点的创建时间来进行时。

 

最后是"Publishing options," 在前面你将其设为了默认值,对吧?选择"Published",将会发布节点。选择"Promoted to front page.",能将其推到首页去。

 

提交。

恭喜你,现在你已经为你的drupal站点添加了一些内容了。

相关联接:http://drupal.org/node/120637

                    Think in Drupal

Drupal版本:

G2.创建一个Story页面

对于在前面所讲的创建一个page页面,里面的东西同样也适用于story页面。许多时候,你都可以认为,这两种类型是可以互换的,至少使用两种内容类型是有好处的,这样可以避免潜在的内容类型冲突(例如,分类“冲突”)。

 

Stories包含一个“teaser”(摘要),或者是一段开场白,用来获取读者的注意。摘要的长度可通过两种方式进行设置:

  • 在Administer>>Content management>>Post settings里面。默认为600个字符。你可以修改它。
  • 通过在内容中使用标签< !--break-->(没有空格),将前面的部分设为摘要,而这里摘要的长度不能超过默认限制。

注意:你可能会在一些地方看到使用<break>标签来设置摘要的结束点。这一改变最初是在drupal5.0中,而它带来了很大的争议,所以现在继续使用< !--break-->

 

一个story页面一般没有菜单项的。如果你遵循一般的习惯的话,那么一个"page"适用于静态的独立的内容的,而"story"则用于相关内容的集合(例如,RSS种子,通讯文章,新闻稿等),那么一个story通常是与其它stories放到一块的,那么应该为哪一个story添加一个菜单项呢?一般来讲,用于一组story页面的菜单,应该是一个描述页面,指出如何展示这些story

 

你可能想将story页面推到首页。对于你的“欢迎”消息,你可能想将它放在最上面。不幸的是,这里没有“weight”(重量)属性可用,所以你需要使用"Authoring"里面的日期来控制顺序(或者你也可以使用Weight module(重量模块))。

 

什么是Teaser

下面的内容来自于zoon_unit2007110日发布的一篇帖子。

 

"teaser"实质上是一个文本片断,在用户未读全文的前提下,告诉用户帖子的内容。由于大部分作者通常在文章的首段来对文章做出解释,所以teasers适用于大多数文章。

下面是都发生了哪些东西:

  1. 一个节点包含了整篇文章。
  2. Drupal"teaser"函数,"node_teaser,"从文章中截取了前面的x个字符,作为teaser,它和内容一样可用。这里的x是由drupalAdminister » Content management >> Post settings里面的设置决定的。
  3. 所以,如果你在一个页面列出一列文章的话。如果你想让这些文章每个都展示整篇文章的部分文本,这样就没有必要将所有的内容都显示给用户了,假如你把所有的内容都列出来的话,页面会很长很长,用户会觉得很反感。如果用户读完"teaser"后,觉得该文章不错的话,他就会点击标题进入文章的正文页面了。实际上,teaser的功能就像文章的摘要一样,不同之处在于在这里teaser是由软件截取出来的。如果你想teaser的具体结束位置的话,你可以插入一个注释标签,明确地告诉drupal从哪里截取teaser
  4. 相关联接:http://drupal.org/node/120638

                     http://zhupou.cn 

Drupal版本:

G3.创建一个书页(Book Page)

一般来说,我为每本书仅创建一个书页。也就是第一页,通常介绍这本书的用途。而其它页面,则作为子页面添加上去(准确一点来说,子页面的节点类型仍然为"book page")

 

与page页面大部分都一样,不同的是,书页(book page)有一个父节点选项("Parent")。对于第一个页面,它的父节点为"<top-level>."如果你使用“Add child page”(添加子页面),在父节点选项中(Parent)已经自动为你设置了书的名称。如果你要创建另一个书页的话,你需要弄清楚这个页面应该放在哪本书或者哪个页面下面。

 

书的首页一般应该有一个菜单项。而剩余的页面则不需要,除非它们非常特殊。记住,在drupal中,书是有自己的导航的。

      

你现在阅读的就是一本书("book")。

Drupal版本:

G4. 创建一个博客条目(Blog entry)

在drupal中,博客条目与其它节点类型有一点点不同.假定你启用了"Blog"模块,你应该能够在你的导航菜单中看到"My blog"一项.当你点击它时,在该页面就会有一个“Post new blog entry”(发布新的博客)链接。

 

如果博客是日常的,你可以使用日期作为标题。

 

如果它是一些想法的集合,你可以给它起个有意义的标题。

输入博客内容。

 

当用户访问你的博客时,看到的总是最近发布的博客。

相关联接:http://drupal.org/node/120640

           Think in Drupal

 

 

Drupal版本:

H.自定义区块(Blocks)

下面是一个自定义区块的简单例子.关于drupal区块的更多信息,可参看drupal手册的Blocks页面.

 

添加一个“联系信息”区块

一个组织一般都应该让人们知道如何去联系他们。一个方便的做法是,在你的页面中放上你的邮件地址。这应该是最简单的区块了。

 

  1. 导航到Administer>>Site building>>Blocks
  2. 点击"Add block"(添加区块)标签
  3. "Description" "Body"中填充内容,下面是一个body例子:

Example Organization<br>
123 Main St.
<br>
Mytown, State Zip<br>
USA
<br>
(123) 456-7890

  1. 保存区块。
  2. 现在你可以配置(“Configure”)区块了,添加区块的标题和定义它的可见性。
  3. 点击Configure链接后,进入区块配置页面,输入"Contact Information"(“联系信息”)作为区块的标题。
  4. 现在你应该是否允许用户打开或者关闭这个区块,如果允许的话,哪些角色具有这种能力。你也可以不管它,这样所有人都能够看到这个drupa区块。然后选择这个区块所在的页面;如果不添的话,这个区块将展示在所有的页面上。
  5. 保存区块。
  6. 现在你又回到了区块列表页面。找到你刚创建的区块,为它选一个“Region”(区域)。你可以使用"Weight"参数来设置它在区域中的位置;在这里,我想把地址放到最下面,所以我选了一个比较大的重量值。
  7. 点击“Save blocks”按钮。

 

 

 

添加最近更新声明

 

这是一个相当普遍的做法,特别是对于一个组织的站点,让访问者知道站点的最近更新日期,就更普遍了。这个例子需要你,网管或者站点管理员(有时称为超级用户)来维护这个区块。有办法可以实现自动化,但是现在我们将手动的实现它。

  • 和前面的“联系信息”区块的创建流程一样,把这个区块的重量设置的再稍微大一点,这样就将它放在了底部。

<em>Site Late Updated on Feb. 12, 2007</em>

  • 对于这个区块,我们让它显示在除首页外的所有页面上。所以,在"Page specific visibility settings,"下面,我选择了"Show on every page except the listed pages."单选按钮,并在下面的输入框中输入<front>

附件

大小

block_add_1.png

118.39 KB

block_add_2.png

110.19 KB

相关链接:http://drupal.org/node/120634, Think in Drupal

Drupal版本:

在drupal中使用views创建一个最新文章列表区块

使用drupal的Views模块,可以非常容易的创建一个最新文章列表区块。略加变通,你就可以创建最新评论列表区块,如果安装了评价模块(rating module)的话,你也可以按照分数高低来对节点排序。这里所讲的是用于Drupal5.X。在Drupal 6.X可能会有所不同。

 

步骤1 – 安装Views

下载Views模块。按照指示来安装它。

 

步骤2 – 区块标题

决定这个区块的名称。

 

步骤3 – 节点数目

决定你想在区块中放置几个节点。你也可能需要决定要放置哪些信息。在我们这个drupal简明教程中,我们将仅仅列出节点标题,当然你也可以把teaser(摘要)也列列出来。要展示的单个信息的总量将会影响到你的节点数目,如果只列出标题的话,展示的节点数目就会多一些。

 

步骤4 – 开始使用Views

登录到你drupal站点的后台管理界面,导航到Site Building > Views

 

步骤5 – 区块基本信息

当你来到Views的管理页面以互,点击添加。然后输入基本信息-名称,描述,和访问权限。名称必须是字母数字字符,外加下划线可用,不能包含其它特殊字符。

 

步骤5 – 基本的区块设置

创建区块是非常容易的。在当前页面,你往下拉,直到你看到带有超链接的"Block"。点击它就会显示出区块部分。

在区块部分的顶部,你会看到一个复选框"Provide Block",选中它。这意味着Views将为你创建一个区块。

现在,我们得告诉Views如何展示我们的输出。你有多个选项,但是在这里,我们选用"list View"。这是由于我们仅仅想列出节点标题。如果你想列出更多信息的话,你可以使用"Teaser List"来给出标题和teaser.所以,在"List Type"上我们将选择"List View"

最后,你需要指出列表中节点的数目。在"Nodes per Block"中填入你想要的数字。如果你使用的是"Denver"主题的话,要将列表放在顶部区域的话,你可能选择5个。如果想放在左栏或者右栏的话,你是以使用10个或者更多。这也依赖于你内容的更新速度。

 

步骤7 – 选择字段

完成了上面的步骤以后,你需要告诉views你想展示哪些字段。在"Block"部分下面就是"Fields"部分。点击"Fields"来打开它。然后选择你要添加的字段。然后点击"Fields"按钮。在我们的这个例子中,我们想选择节点的标题。所以我们选择"Node : Title"。如果你愿意的话,你可以为它加个标签,比如"Newest Posts" 或者"Latest News"

 

步骤8 – 过滤

你可能不想在最近发布中展示所有的东西。你可以对它进行限制。为此,你需要找到页面的"Filters"部分。点击"Filters"打开它,这样就显示出来了过滤选项。在这里,你可以选择在区块中展示的节点类型。在"Add Filer"中选择"Node : Type",然后点击"Add Filter"按钮。操作符你需要选择"Is One Of",接下来,你需要在"Value"下拉列表中选出要用的节点类型。

 

步骤9 – 保存View

做完以后,保存你的View

 

步骤10 – 展示区块

导航到Site Building > Blocks。在这里你将看到所有的区块。找到你最新创建的,并为它选择要放置的区域。根据你主题的不同,你的区域可多可少。

指定了区域以后,设置重量(weight)。重量越大,区块在区域中所处的位置越往后。

设置完重量以后,配置区块。你可以决定哪些人可以看到区块,以及区块展示在哪些页面.一个放置最新文章列表的最好的地方是首页.为了实现这一点,你需要找出要这些页面,选择"Show only on selected pages"选项,然后把你的页面输入到文本框中.

当你为这个区块完成了所有的配置以后,保存区块.

 

注意

你可以使用这种方法以其它的方式展示你的内容.你可以展示评价最高的内容或者最近的评论.

你也可能像使用一个特定的页面,来列出你的评价最高的或者最新的25篇文章.有专门的模块能帮你实现这一点.你可以使用"Insert View" 或者"Viewfield"views放到页面中.

 

Views相关的模块位于http://drupal.org/project/Modules/category/89.

相关链接: http://drupal.org/node/234370 ,  Think in Drupal

 

Drupal版本:

I. 使用drupal菜单

介绍

 

在这里,我并没有打算对菜单进行深入详细的讲解.我的出发点是帮你构建一个自己的菜单,让你了解drupal的菜单是如何工作的.关于drupal菜单的一个更完整的指南可参看创建一个菜单结构一文.

我们都知道菜单或者说导航系统,可以成就一个网站,也可以毁掉一个网站.它必须方便人们使用,也就是通常所说的直观性.它必须完整,并且紧凑.

在Drupal官方网站上,有大量讨论菜单的内容.大多数新手刚开始都很难理解drupal的菜单.我使用Drupal已经有一个多月了,而且我还在编写这本简明教程,但是我仍然没有完全理解Drupal的菜单.

对于初学者来说,最容易混淆的莫过于菜单和分类这两个概念.菜单是一个导航系统,而分类是一个用来组织内容的系统.所以说,菜单是通过内容的路径,而分类则用来维持内容的秩序.为了更好的理解Drupal,你必须将这两者区分开来.

使用菜单,你可以直接将其指向一个节点,比如page或者story页面,但是你也可以指向taxonomy/term/id,它将为你展示一个节点列表.比如在http://zhupou.cn/taxonomy/term/3,你可以看到所有关于Drupal 5.x的节点.

 

 

如何创建菜单

Drupal提供了3种主要的方式,3种方式可以联合使用,来为你的用户提供站点导航.

  1. 文本菜单这是标准形式的菜单,就像你在大多数网站上看到的,包括我的在内,都是这种形式.有多种方式,可对其进行改进,比如使用CSS或者单独的book导航(就像我这里用的)。
  2. 标签式菜单因为在外观上更时髦一些的原因,现在这种标签越来越流行了。对于用户来讲,它是否更加有效,这一点还有待商榷。在drupal中,它被分为“一级”(总能看到的标签)和“二级”(下拉出来的菜单)。并不是所有的主题都支持二级链接的。
  3. 书(Books - 书有着自己的独立的组织方式,它们有自己的导航,你在本站就能够看到这种形式。参看创建一个Book页面

 

文本菜单

文本导航是最容易理解的。事实上 ,我现在还不能理解标签式导航中的“二级”菜单的工作方式,而许多人都觉得它应该那样的(下拉)。

在许多帖子中,你都会看到“一级链接”和“二级链接”这样的术语。我觉得,在这个地方是Drupal文档最混乱的一个地方。尽管它们说的非常好,而且我也在使用它们,但对于初学者来讲,它们未必是最好的选择。首先,先使用标准的导航菜单,直到你熟悉了以后,你随时可以对菜单作出修改。

在大多数的时候,当你创建内容时,这种标准的菜单是最好用的,但是有时候你会觉得外观不够美观,需要稍微的调整一下。

当你创建一个page, story, blog,或者book页面时,在提交以前,一个你可能需要输入的字段就是菜单项(如果节点需要的话)。这里有一个“标题”(人们所看到的菜单项)和“描述”(当鼠标移到菜单项时所看到的东西)。

我通常不考虑菜单项的重量,直到我觉看起来有点不顺眼时,再去调整。此时,你可以可以通过编辑你的内容,也可以导航到Administer >> Site building >> Menus,在这里进行编辑。

好的,前面的都比较简单。现在让我们考虑一下子菜单的使用,把一个页面作为另一个页面的子页面。假如你已经有了某个主题的介绍页面,它已经列在了菜单中,比如说“家族历史”。而你当前创建的页面时"1860-1899." 当你构建菜单项时,你会注意到有一个标记为Parent Item."的下拉列表。展开这个列表,找出"Family History."现在你提交当前页面以后,它就成为"Family History"的一个子页面了,使得这个菜单项具有了可伸缩的能力。你已经创建了一个多层级的菜单了!

 

标签式菜单

在支持这一技术的主题中,在你构建导航菜单时,“一级菜单”看起来就是自动完成的,除非你声明一个不同的菜单集。到目前为止,我还不知道二级菜单是怎么显示出来的---我觉得可能需要一个单独的模块吧。我知道,在一个区块中,如果二级链接存在的话,如何显示它们。我觉得这种方式很好,但是开始时它有点难以理解,可能并不适用于所有的人。

 

Books(书)

book菜单是自动为你构建的。你需要管的是菜单项的顺序(提示:重量)。

比较难的一点是,启用book导航区块,它位于Administer >> Site building >> Blocks。你所需要做的是告诉Drupal,将这个区块放到哪个区域中,以及它的相对重量。如果你想要的话,使用样式表,你可以得到更漂亮的外观。

 

更多

将来,你可能会使用taxonomy_menu module(模块)。它有点复杂,但是当你的词汇表不断修改时,它非常好用。它将菜单和分类的不同之处完全抹掉了,因为它允许你把分类当作菜单使用。在这种方式下,菜单时自动生成的。

如果你需要多层级的下拉菜单的话,你可以考虑使用nice_menus module(模块)。

相关链接:http://drupal.org/node/120632 , Think in Drupal

 

 

Drupal版本:

I2.drupal联系表单(Contact Form)

联系表单用起来很简单,但是它的设立和操作却是一件非常复杂的事情.

设立

首先,必须启用contact(联系)模块.导航到Administer >> Site building >> Modules,从核心模块列表中找到contact模块.选中复选框,然后保存设置.导航到Administer >> Site building >> Contact form,在这里你需要设置分类—或者收件人名称[不要将这个与分类模块中的分类混淆了].

例如,销售部门的email应该使用分类"Sales."这样,收件人的地址可能为sales@mycompany.com。如果你需要自动回复发件人的话,你可以在这里声明。如果你不明白所有功能的话,你也不用担心,你随时都可以回到这个页面作出修改。点击提交按钮。

接着点击"Settings"标签。在这里,你可以对个人一小时内发送的email数量进行限制---这将帮助你限制垃圾邮件。你也可以在这里启用个人联系表单,从而允许用户相互联系。点击"Save configuration"按钮。

 

控制对它的访问

对于我来说,这一步完全没有必要,但我觉得有些人可能会用到它。

导航到Administer >> User management >> Access control,找到"Contact module",为角色分配相应的权限。保存修改。这样,对于没有权限的用户,就不会看到这个菜单链接(下一步)了。

 

"Contact"添加到菜单

导航到Administer >> Site building >> Menus。在"Navigation"下面,按照指示启用"Contact"。保存你的修改。

 

在内容中使用它

使用<a href="/contact">Contact Us</a>可以在一个内容页面中添加一个链接。不幸的是,你不能在这里声明你要发给谁。所幸的是,这有帮助。看看Contact Forms module更多信息看这里

需要对联系表单进行定制?可以考虑使用WebForm 或者CCK模块。对Contact_Forms模块的一个最新修改就是允许你结合使用这两个模块。

 

联系表单的垃圾邮件

如果你发现有人通过你的联系表单发送垃圾邮件的话,可以考虑使用Gotcha模块(module)。

 

 

相关链接:http://drupal.org/node/124129Think in Drupal

 

 

 

 

Drupal版本:

J. drupal URL别名

"URL"是"Uniform Resource Locater"(统一资源定位器)的简称.大家都喜欢说“我网页在网络上的网址”。它是浏览器标识一个要展示页面的名字。我们都看到过这样的广告,“详情请登陆我们的网站abcxyz.com.”在这里,abcxyz.com就是他们网站首页的网址(当然,在这里隐含的包括了index.html,也就是省略了这个)

而在默认情况下,Drupal将你的内容称为节点,并通过它们在数据库中的位置来标识它们。所以你关于“澳洲坚果的历史-第一部分”一页,在drupal中应该是这样的"node/167."对于Drupal来说,这是正确的,因为Drupal可以理解这种形式。但是你的用户实际上并不关心页面在数据库中的位置;他们想要的怎么才能再次找到这个页面,或者直到这个页面在他们书签中的位置。

 

所以Drupal提供了对URL别名("URL Alias")的支持,从而允许你为内容提供一个人们更易理解的名字。对于浏览器,服务器,和搜索引擎来讲,这是完全没有必要的。但是对于普通用户来说,它就是必须的。这就是我经常的告诉那些Drupal新手们,一定要启用支持URL别名的Path模块(我也将简单的提到另一个模块Pathauto)。

 

现在,有些人可能会认为,把".htm"放在后面是多余的。这完全正确。确实也没有必要去在后面添加".htm"。我的观点是,如果你想让你的用户看到一个普通的名字的话,像其它的静态网站一样,这时我们就应该为它加上网页的类型,比如".htm"。不过这个是个人喜好,觉得好就加,觉得不好就不加。

 

糟糕,提交页面以前忘记设置别名了?不要担心-Drupal中有补救的方法!首先,访问你所创建的页面。在你的浏览器地址栏中,你将看到它的URL。在最后面的部分,它应该是"node/xxx",其中xxx是一个数字。记下这个数字。现在导航到Administer>>Site building>>URL Aliases。在顶部有一个"Add Alias"(添加别名)标签。在第一个输入框中输入"node/xxx",在第2个输入框中输入"MacadamiaHistory.htm"

 

现在返回,并再次访问这一页面,检查你浏览器地址栏中的URL

 

 如果你的Drupal站点将要包含大量的内容,特别是用户提交的内容,你可能需要使用PathAuto module。这个模块不但能够自动为新内容(根据你设定的规则)生成URL别名,它还可以批量的修改已有内容的URL别名。

 

 

相关链接: http://drupal.org/node/120631, Think in Drupal

 

 

 

 

Drupal版本:

K. 迁移整个Drupal站点与数据库

可以先看看迁移整个Drupal站点与数据库

这个对你可能也有帮助:备份你的数据库

我知道“官方的”的流程是,向主机上上传"tar"文件并解压它。另一种选择是,可以直接从你的PC测试站点上将代码拷贝过去。我试了两次,从我的机子上上传代码,两次都带来了灾难性的影响。(好吧,难道这和我的人品有关!)。所以,我摸索出来了自己的流程。[顺便说一句,这种方式也能够减少带宽的使用,这对于那些带宽受限的人来说是有些帮助的。]

 

我一般都使用cPanel/Fantastico来安装Drupal,(我知道可能有人会对Fantastico不满,但对我来说,它还是不错的)。现在,为了公平起见,我先告诉你Fantastico能做什么,不能做什么。

 

Fantastico仅支持核心功能。她不支持自定义主体,第3方模块,或者定制代码(超出了本书讨论的范围)。Fantastico也没有使用"update.php"(事实上,根本就没有加载它),所以最好不要使用它来升级你的站点。当你了解到这些限制以后,你可能就不再抱怨了。

 

确保在你的测试站点上,模块和主题的版本都正确,并且都能正常工作。

 

下面是我的流程:(顺便讲一句,对于大多数主机,这一流程也基本能够适用)

1.       找一支笔和一张纸,记下你都做了哪些修改。好记性不如烂笔头的,如果你需要重做,或者考虑哪些修改阻碍了向新版本的升级时,这对你会很有帮助。

2.       使用phpMyAdmin(在一些主机上,它隐藏在MySql后面),来备份你的在线数据库。如果你的drupal站点,有大量用户正在创建新的内容的话,那你需要将站点改为维护模式,从而阻止丢失内容。

3.       最好也备份你的测试数据库,以防万一

4.       将你的数据库导入到测试站点中。

5.       下载你上传的所有图片,以及上传的所有模块。

6.       如果你的在线站点和测试站点的drupal版本不一样的话,你需要运行"update.php."

o        打开浏览器,访问你的测试站点。如果看到有地方不对劲或者整个站点一片空白的话,不必惊慌。

o        在地址栏中的URL后面,追加"update.php",然后点击Enter键。如果它告诉你没有相应的访问权限的话,也不用担心。

§         使用记事本或者类似的文本编辑器,打开"update.php".

§         在顶部附近,你将看到:

// Enforce access checking?
$access_check = TRUE;

§         将它改为FALSE并保存。

§         再试一遍。

§         如果仍然有错误的话,你可以搜索Drupal官方网站来寻求解决方案。一般情况下,应该有人也遇到过同样的问题。如果还是找不到的话,你可以发个帖子寻求帮助。将你的站点退出维护模式,当这个问题解决以后,再重新开始。

§         $access_check改回TRUE

o        如果你有一个自定义主题的话,为了正常工作,你可能需要重新启用它。

o        现在查看一下你的模块设置。它们应该一切正常。

o        检查你的内容,特别是首页。确保菜单是正确的。

o        检查任何用到了自定义代码的内容,特别是当你升级Drupal版本时,尤其需要注意这一点。

o        所有的都检查完了吗?好的,现在所有的困难都已经解决。现在开始容易的部分。

7.       好的,现在来做剩余的工作。对我来说,剩余的部分花了不到15分钟,所余对于大家来说,所需要做的工作也非常容易。

8.       如果你当前的站点是安装在Fantastico,那么删除当前站点的文件夹。如果没有的话,你需要手工的删除所有的文件夹。

9.       现在让Fantastico来安装当前的版本。目录字段不要填写,这样就可以装在你的根目录下面了(可能是"public_html")。你提供的用户名和密码应该是超级用户的(user/1.

10.   当完成以后,我一般都让它给我发封关于安装总结的电子邮件。

11.   如果你的用到了自定义主题,第3方模块,或者图片等等的话,使用FTP将它们上传到服务器上的合适位置。

12.   如果有图片或者模块相关的文件夹的话,现在上传它们。

13.   完成以后,在你的测试站点上使用phpMyAdmin创建一个备份。

14.   接着,再次访问你的cPanel,打开phpMyAdmin。选择你的Drupal数据库,接着点击"Import."通过一个文件浏览窗口找到你本地的备份sql,然后点击"Go"按钮。

15.   如果你有一个自定义主题的话,导航到Administer>>Site Configuration>>Themes,启用这个主题。[提示:如果你的站点开始看起来有点怪怪的话,不必惊慌。记住你可以试用http://www.mywebsite.com/?q=user登陆后台管理界面的。]

16.   如果你的测试站点和在线站点目录不一样的话,你可能需要更新IMG链接等等。特别是对于一些硬编码的链接,你一定要记号哪些硬编码的链接需要修改。

17.   现在一切都搞定了。

18.   如果你使用的是Fantastico的话,你还需要多做一点:进入你本地的主Drupal目录,将update.php脚本拷贝到你的服务器上。我不知道他们为什么删掉了这个文件,即便是他们不使用它。你将来可能会用到这个文件。

 

相关联接:http://drupal.org/node/120627Think in Drupal,

 

Drupal版本:

使用phpMyAdmin的drupal备份流程

使用phpMyAdmin的备份流程

截图中使用是phpMyAdmin 2.9.2,这是我本地安装的phpMyAdmin版本.我的网站主机上装的是2.9.0.2,看起来基本上一样.两者生成的结果可相互交换.

  • 接下来的截图为你展示了你的Drupal数据库中的表。不要管这些,点击顶部标签集中的"Export"标签。

  1. 查看Export部分顶部左侧的方块。所有的数据库表都在这里。

  •  

    • 如果在这个数据库中你还安装了其它程序,那么你需要选中你Drupal中所用到的数据库表。
    • 如果你只安装了Drupal的话,在左栏中,点击“Select All.
  • 选中左栏中的SQL单选按钮。
  • Structure(结构)部分,选中下面的复选框:"Add DROP TABLE," "Add AUTO_INCREMENT," "Enclose table and field names with backquotes."如图所示。
  • "DATA"部分,只选择顶部的复选框,其它都不选。如果有预先就选中的,取消对它的选中。
  • 选中"Save as file"选项,不用修改模板名称。
  • 现在,对于压缩,选择"None"
  • 现在点击"Go",将会弹出一个提示,告诉你下载文件。将文件保存到你的数据库中。根据数据库大小的不同,花费的时间也会有所不同。





现在你就备份了你的数据库!(还行吧,是不是?)

下载完成后,你也可以选择"zipped"选项,点击"Go",然后再下载一个文件。如果想要的话,你可以为每种压缩格式都下载一个备份。你可以试试。

 相关链接:http://drupal.org/node/120630Think in Drupal

Drupal版本:

L. 向你的drupal网站加点东西

偶尔,除了内容以外,你还需要更新一些其它东西,比如样式表,或者新的代码.

FTP是File Transfer Protocol(文件传输协议)的缩写.这是一个相当标准的方式,来向你的站点添加文件,代码,样式表等等这样的东西.此时你创建的不是站点的内容,内容都是保存到Drupal的数据库中的.

现在,Drupal官方站点中的帖子会告诉你有哪些好用的FTP程序。如果你用的还是Windows 2000的话,你根本不需要FTP软件。你可以使用Windows,它看起来就像一个文件夹一样,你可以进行拖拽。如果你使用的浏览器是IE的话,这一过程非常方便。

在你IE浏览器的地址栏中,输入ftp:username:password@ftp.domain.com,其中username是你的站点的用户名(不是Drupal里的)password是该用户的密码,domain.com是你站点的域名(不带www)。

这样你就可以看到你站点上的文件了。在Linux中,你可能需要点击"public_html"文件夹,来找到相应的Drupal文件。接下来,找到对应的文件夹,将更新后的文件上传上去就可以了。

 

Drupal版本:

M. 设定drupal Cron

在Drupal.org上,我不能找到一个关于“设定cron”的像样的答案,大家都在抱怨。而我的主机提供商的技术支持人员也不能帮我搞定(“这是一个用户问题,不归我们管…”)

 

我的主机提供商不允许我使用Shell命令(可能是个明智之举)。但是他们多多少少提供了一些标准的cPanel功能。在我的版本中,"Cron"项位于左下边。

 

在我的一个站点中,我还安装了WebCalendar。当我访问cPanel时,我注意到WebCalendar有个命令已经设立。对其做些简单的修改,下面是我使用的命令:
cd '/home/<i>username</i>/public_html/' ; php -q 'cron.php';

注意,这里的username是我主机的用于域名管理的用户ID,而我的Drupal装在根目录下面(实际的"public_html")。

这样Cron就运行了,但是它生成了一些错误信息。

 

Cron终于运行了,但是我还是对这些错误信息有所担心。所以,我就在Drupal站点上进行搜索,的确搜到相关的帖子,但是没有答案。所以我又发了一个帖子。这时有人看到了我的帖子。

他们建议我使用WGET,但是我没有shell权限。由于一些原因,我又检查了一遍cPanel"Advanced"模式。我注意到这里有个帮助提示(当然字体很小,不然以前不会注意不到它)。它说,可以使用GET http://nanwich.info/cron.php(很明显,使用你自己的URL)。我照着做了,错误信息没了,Cron完全正常工作了。

 

对于Cron任务,另一个可选的是http://drupal.org/project/poormanscron里的poormanscron模块。

每当一个页面被访问时,这个模块都回检查Cron的最近运行时间,如果超过了1小时的话(这个时间可以配置),将会调用Cron钩子,这样Drupal就高兴了。只有当所有的HTML返回给浏览器以后,才会触发这些钩子,所以对于用户来讲,不会有任何延迟。

相关链接:http://drupal.org/node/120625Think in Drupal

Drupal版本:

在Hostmonster上使用cPanel接口设立drupal Cron

使用你的hostmonster帐号登录到cPanel接口界面,将页面下拉到底部,查看高级选项部分.

  1. 选择"Cron Jobs".它显示为一个日历图标.
  2. 选择"Standard"(标准)

    • 不要使用email地址,否则的话, cron任务每执行一次都会给你发送一封email.
  3. 输入下面的命令: php /home/+++Your hostmonster login username+++/public_html/cron.php

    • 这个仅用于你的主域名,子域名位于不同的文件夹下.
  4. 选择cron任务多长时间运行一次.
  5. 检查它是否工作 --- 可以在Drupal菜单中的Logs中查看一个Cron任务的运行情况.

 

相关联接: http://drupal.org/node/208579Think in Drupal

 

 

 

 

 

 

 

Drupal版本:

N. drupal分类(Taxonomy)

 

在Drupal.org上,你将看到许多帖子都是关于如何创建和使用分类的(或者“词汇表”("vocabulary")和“术语集”("terms"))。大部分帖子你可能都看不懂---许多我也看不懂。

事实上,如果一个站点的内容越多,那么越就需要使用使用分类,但是这并不意味着,小站点,就不能使用分类了。

为了帮你更好的理解如何使用分类,我将通过一个实例来为你讲解Drupal中的分类。

 

Recipe(食谱)模块应该是一个很好的例子。在我的一个网站上,为了形成更好的社区氛围,为了鼓励大家经常访问我的站点,我决定添加一组菜谱(一个真正的,而不是像本书这样)。食谱模块就用到了分类。

我很快就认识到,如果没有任何组织的话,输入一堆食谱以后,很快就会变得混乱起来。那么,食谱可分成多个类别:Appetizers(开胃),Entrées,Desserts(甜点)等等。所以让我们根据这些东西来建立一个“词汇表”(vocabulary),这样我们就可以管理食谱了。

 

  1.            1,导航到Administer>>Content management>>Categories,点击"Add vocabulary"标签。[在Drupal 6 中,菜单路径改为了Administer>>Content management>>Taxonomy]
  2.            2,输入名字,例如"Recipes"。在“描述”(Description)中输入“Our community cookbook”(我们社区的菜谱)。
  3.             3,选择适用的内容类型。Recipe引入了一个"recipe"类型。
  4.             4,我选择了单一层次。在将来,如果数量越来越大的话,我可以添加更多的子类别(比如“牛肉”,“鸡肉”和“猪肉”),并将其修改为多层级结构。
  5.             5,接着我选择"Required",这样当用户输入一个食谱时,必须为其选择一个类别。

 

填完以后,我们就可以点击提交按钮了。这样你又回到了类别列表页面。此时你应该可以看到你新加的词汇表了。

在它的右边,你将看到一个链接“add terms”。点击这个链接。

 

    1.            1,由于它是单层次结构,所以"Parent"应该为"<root>."
    2.            2,在"Term name"中输入你的第一个术语,比如"Appetizers."
    3.            3,在"Description"中输入"Things for before the meal."(饭前的开胃菜)
    4.            4,其它现在都不用管,点击提交就可以了
    5.            5,添加其它的术语("Salads,"(沙拉) "Soups,"(汤) "Side dishes,"(拼盘)等等)
  1.       
  2. 现在,当一个用户要创建一个"Recipe"时,他需要为其从中选择一个分类。如果他们访问"Cookbook"菜单项(Recipes模块创建的菜单项)时,他们将看到一列分类,他们可以使用这个分类进行浏览。

 

这也不像那些帖子中所说的那么复杂吧,是不是?

 

又例如,我为一个组织建过这样的网站,在网站上,会员可以为每月通讯提交文章。他们希望能用一种方式来管理这些文章,让他们可以根据日期或者话题来评审这些文章。所以我创建了两个词汇表,一个用于发行日期,一个用于话题。现在,当他们点击其中的一个时,就可以看到所有相关的读书报告,电影评论,或者幽默文章。而且,当每个月他们提交新文章时,这些文章将被自动归类到里面去。[这里使用了一个定定义的内容模块,稍加修改就可用作他用。你可以联系我,来得到这个模块。]

 

我在另一个站点上,对FAQs的归类时,也曾用到过drupal的分类。在原始的网站上,在我用Drupal为其改造以前,他们用3个静态页面放置了3种类型的FAQs。没有人想管理这些。我安装了FAQ module(非常好用),为其建立了一个词汇表(vocabulary),带有3个术语(terms)。他们后来又让我添加了3个术语(terms),他们觉得太麻烦,不愿自己去维护站点。

 

 

 

 

 

 

相关联接:http://drupal.org/node/120624Think in Drupal

 

 

 

 

 

 

O. 常见问题

一些问题我们大家都见过;在这里,我给出几个这样的问题.[记住,在论坛上发帖以前,县搜索一下.]

 

表格的格式乱了,图片不能显示了,还有其它的一些奇怪的HTML问题---我觉得每个Drupal用户都会遇到过这样的问题. Drupal默认使用的是过虑了的HTML的;也就是说,只有特定的一些标签允许使用.还有,输入格式将一行很长的文本隔断了.解决的方法很容易:改用"Full HTML"输入格式.我将它设为管理员的默认选项.注意,对于这一输入格式,你可能还想加上URL Filter 和Code Filter;它们也不是默认的.

 

帮忙啊,我启用了站点维护模式,而现在我登录不进去了!---70-80%的用户都遇到过这样的问题(包括我).你仍然可以使用http://www.example.com/?q=user进行登录.注意,这里的"user"不能修改,更不要替换为你的用户名.

 

我不想让匿名用户看到"Create content"菜单---"Create content"通常是"Content"的子菜单项,"Content"通常被禁用的.访问你的菜单管理页面,然后启用"Create Content"上面的"Content".这样你就可以看到一个"Reset"(重置)链接了.点击这个链接.这样, "Content"又被禁止了,这次,对于那些没有访问权限的人(特别是匿名用户)来说,他们就看不到"Create content"菜单项了.

 

我启用了Contact模块,但是当我作为一个匿名用户点击它的时候,我得到一个拒绝访问页面--- 你忘了一步.导航到Administer >> User management >> Access control页面,找到contact module部分,现在你可以为匿名用户赋予合适的权限了,(当然,登录用户也得设置).

 

其它问题可参看手册部分Troubleshooting FAQ.

 

 

Drupal版本:

P. drupal中的链接和图片

是的,在Drupal中,页面之间可以有链接的.这一点和不使用Drupal一样,唯一不同的是,如果你没有使用Path模块的话(URL别名),你会觉得名字有点怪怪的.

 

人们最常犯的错误就是,不知道在前面加一个斜线"/".忽略它,将会导致"404:Page not found"错误,而且,根据你浏览器的不同,可能会附带其它的一些问题,比如莫名其妙的退出登录了.

 

我这个站点的首页是node #4,所以到首页的链接应该为这样: <a href="/node/4">Home</a>.如果启用了URL别名的话,我也可以这样: <a href="/home">Home</a>.

 

"访问你的站点"页面的图片是通过下面的标签创建的: <img src="/files/pictures/Docs/WDP.jpg" align="right" hspace=1>.

相关链接:http://drupal.org/node/120621Think in Drupal

Drupal版本:

Q. 额外的Drupal技巧

这部分给你讲一些技巧,帮你改进你的Drupal站点或者让你的生活更轻松.

 

Drupal版本:

Q1. 追踪drupal模块状态

你可以在你本地建立一个专门的“包罗万象”的站点,里面放上你用到的所有的drupal模块和主题,以及Update Status(状态更新)模块,用来监测模块和主题的状态。

 

状态更新模块将检查Drupal官方站点,并告诉你,你的模块是否有更新的版本可用。

      

你可能觉得这样做有点荒唐,不过在你拒绝这一想法以前,让我给你一些额外的提示:很多人最后发现,他们需要修补,调整或者说是修改模块以及主题。如果你创建了一个“包罗万象”的站点的话,你可以把未被修改的模块和主题都放在这里,这样你就有了一个干净的拷贝,当你的修改到了不能控制时,你可以重新使用这个干净的拷贝。现在,你不仅仅有了一个很好的备份计划,还有一个好处,就是知道了是不是需要升级模块。

相关联接:http://drupal.org/node/124933, Think in Drupal

 

 

Q2. 让多个drupal站点的维护更容易一点

很多人都觉得,浏览器的首页,要么是空白页,要么是网络上的某个页面,但是从没想过这个页面可以是你本地的.

这个是我首页的一部分.你可以看到,我对所有的维护任务(cPanel, FTP,等等)都加了链接,这样我就不用到处查找它们了.

 

我也把drupal测试站点的相应链接也加了进来,这样便也能很容易的找到它们了.

相关链接:http://drupal.org/node/120620Think in Drupal

 

Drupal版本:

Q3. 控制drupal用户登录

我怎么才能禁用“创建一个新帐号”呢?

导航到drupal的后台管理页面Administer » User management >> User settings。点击单选按钮“Only site administrators can create new user accounts”(只有站点管理员才能创建新的用户帐号)。

 

怎么才能完全禁止用户登录呢,禁用以后,当我使用时,又该怎么登录进去呢?

首先,你可以导航到Administer » Site building >> Blocks,将"User Login"(用户登录)区块的"Region"(区域)设为<none>。现在你的用户登录区块就消失了。

 

为了让你能够登录,我提供两种技术:

  • 输入http://www.myexample.com/user(如果你没有使用简洁URL的话,那么为http://www.myexample.com/?q=user)。注意,在这里,是单词"user",而不是你的用户ID
  • 访问你的站点信息设置页面(Site information settings),在页脚(footer)里加入一个"login"链接。<a href="/user">login</a>,我在几个drupal站点上都这么用。

 相关链接:http://drupal.org/node/127454Think in Drupal

Drupal版本:

R. 同步你的本地和远程drupal站点

测试站点,就是用来试验或者开发新内容的地方,它不影响当前的用户,只有当新内容可用时,才迁移到在线站点上去.但是确保你测试站点与在线(live)站点版本的一致性,也是非常重要的.

让我们忽略这一点,就目前来讲,假定我们处于一个理想的状态中,你的测试站点(staging site)总是与在线站点保持一致的,所有新加的东西都要经过测试站点的检验以后才能正式上线.

 

有两种基本的技术,可用于站点的同步:

  • 通过手工的拷贝粘贴,来保持两个站点的内容同步.
  • 周期性的上传或者下载数据库备份.

第一种技术非常耗费时间,如果用户评论很多的话,它很难保证不丢失数据.你还需要记好,都有哪些地方做了改动,除非你是同时更新两个站点的.如果内容之间存在依赖关系的话,你需要小心的按照顺序来对他们进行更新,这样你的随机访问者就不会打乱它了.

 

2种技术,允许将用户评论下载到你的测试站点.在这里,可以将其纳入到内容中去,或者将其删除,或者保持原样.你要小心一些,这样在没有正式上线以前,你不会丢失新的,试验的或者未完成的内容.

 

哪一个更好呢?这个问题我回答不了.你需要权衡利弊,自己做出决定.就我个人来说,以我现在的年龄和记忆力,我觉得第2中技术可能更好一些,当然,也可能会丢掉一些未上传的东西.我还有一个坏习惯,就是在在线站点上更新了内容以后,忘记将修改同步到测试站点中去.

 

这个专题的更多讨论,可参看drupal开发者邮件列表中的这个线程一文,作者Larry Garfield (Crell)

 

 相关链接:http://drupal.org/node/120617Think in Drupal

Drupal版本:

S. 更多drupal阅读资料

现在你已成为了一名Drupal专家了,下面的这些资料,你应该觉得非常有用:

Drupal版本:

T. drupal词汇表

一个节点(node)就是一个容器,用来装东西的.节点中的部分东西是你创建的,还有部分东西是Drupal自己创建的.

一个模块(module)就是扩展Drupal功能的一种方式。它通常包含许多代码(一般为PHP)以及一个样式表(CSS)。例如,如果你想包含元标签来描述你的内容的话。你可以添加"Nodewords"模块(也称为"Meta Tags"模块)。

一个摘要(Teaser)就是关于页面的一段介绍性文字,用来吸引用户访问整个页面。默认情况下,通常为页面内容的第1段,或者前两段,通常在后面还加上一个"read more..."链接。

 

主题,就是用来将你的内容展示给访问者的,怎么展示,使用什么样的样式,布局,等等都归主题负责。它包括的元素有,你的页首,图标(icon),区块布局等等。它也包含代码和样式表。

一个服务器通常是一个能够提供上网服务的计算机。这些服务可能是运行数据库,或者管理信息的收集和传播。

一个浏览器就是用来展示网页内容的程序。实际上,它通常是一组程序集,而不是单个程序;它还使用了一组表格集(例如,设置)用来控制它的展示。例如,IENetscape,和Firefox。它用在客户端,做展示用。

 

URL(统一资源定位器),是网上资源(比如网页)的地址。它是浏览器定位你的内容或者站点的方式。你在浏览器的地址栏中,通常会看到一个URL列表。

路径,通常是特定于某个站点的,用来标识一个资源的位置。它可以是一个完整的URL(参看前面),或者是一个相对位置(比如"files/xyz/image.jpg"-其中"files/xyz"是通往文件"image.jpg"的路径)。

 

HTML是网络的标准语言.它有自己的一套“词汇表”(vocabulary,包括标签,元素,和描述。一个标签就是一个基本组件,它就是告诉浏览器,“下面的内容要根据这些规则进行展示”。举个例子来说,一级标题标签<H1>。大多数标签都带有一些其它的信息,以进一步告诉浏览器下面的内容应该怎么展示。这个声明就称为元素。标签还需要更多的信息来协助它们工作,这就是描述,准确一点来说就是“值”。例如,如果你想要标题居中显示的话,你可以使用"align"元素,并给它一个描述(值)“center”。所以它完整的结构应该是这样的:<H1 ALIGN="CENTER">

 

分类就是对东西的一种划分。可用于对东西的分组,选择和保护。许多Drupal新手可能会认为这是一个非常难的概念(事实上,可以这么认为),然而,我们每个人在学校都学过分类:生物分类,即林奈的分类。在这种分类下,先分为“界”(植物,动物),在“界”之下划分为“纲”,“纲”划分成“目”,“目”划分成“属”,最后是“种”。事实上,在“种”下面还有更细一些的划分,“子种”,或者“变种”,通常所说的“杂种”。大概就是这样,这就是一个分类。

Drupal中,分类的最高层次,被称为“词汇表”(vocabulary),它用来定义“术语集”(terms),或者“标签集”(tags),它可以用于各种情况下。在前面的例子中,我们可以把“生物”作为一个词汇表。而每个词汇表下面都有一个或者多个“术语集”用来描述你的东西。而“术语集”可以是多层级的,也就是说它们存在着等级之分。“属”和“种”就是多层级术语。词汇表用于输入类型(Pagesstories等等。)而“术语集”则指定给特定的节点(对澳洲坚果产量的开创性的研究)。注意,我说的是“术语集”,因为一个节点可以有一个或者多个术语与之相连;例如,那上面的“坚果研究”这篇文章为例,可以为其指定“坚果”,“树木”,“丰收”。通过任何一个术语(或者说关键字)都可以找到这篇文章。

 

面包屑是从HanselGretel借来的术语,在这个故事中,主人公为了走出大森林,在他们走过的路上撒下面包屑作为记号。在目前的计算机用于中,它通常指的是页面顶部附近的一小部分,用来说明到达当前页面所走过的路径。例如,浏览这篇文章时,你会看到顶部附近有HomeDrupal简明教程适用于初学者的Drupal菜谱,它意味着,你首先来到了Home,接着点击了“Drupal简明教程”,最后选择了“适用于初学者的Drupal菜谱”,最终你看到了这篇文章。

 

数据库是存储在一起的相关数据的集合,这些数据是结构化的,无有害的或不必要的冗余,并为多种应用服务;数据的存储独立于使用它的程序;对数据库插入新数据,修改和检索原有数据均能按一种公用的和可控制的方式进行。当某个系统中存在结构上完全分开的若干个数据库时,则该系统包含一个“数据库集合”。

 

SQL是数据库的查询语言。例如:SELECT country FROM user_profile WHERE username = "Nancy";它将得到用户"Nancy"所在的国家。

See also:

  • 术语表给出了更完整的Drupal术语。

 相关链接: http://drupal.org/node/122018Think in Drupal 

 

Drupal版本:

通往drupal地狱之门

    在drupal的世界里,有天堂,也有地狱,天堂我没去过,地狱我却经历过多次,地狱之中有冰山,有火海,有毒蛇,有各种各样的刑具.有句话说得很好,天堂有路你不走,地狱无门你却找过来,尽管地狱不好走,但是还是有很多人想去见识见识.

 

   所以,在这里,我给大家指条明路,让你一步步踏入到druapal的地狱之中.你可以这样:

1,在实际的项目中,不管三七二十一,装上个百八十个Drupal模块,并同时启用它们.

2,自定义drupal模块,却不会Drupal表单API,也不愿意学

3,使用php的数据库层的函数,而不是drupal封装好的数据库层的函数.

4,不了解也不愿意去学习drupal的主题机制

5,直接修改drupal核心代码,以及修改第3方模块中的代码

6,大量的使用php代码输入格式

7,使用自己独创的代码编写习惯

8,现在还是使用drupal5.2,没有向drupal5.12升级,并且没有打算向drupal6.x迁移。

9,不愿学习drupal的钩子机制

10,不愿与人分享自己的drupal机能

…..

     当然,还有很多,如果你觉得一条不够用的话,你可以多试几条,当然这是说与drupal开发者听的。

 

事实上,在drupal的项目开发中,出来开发者以外,还有客户,还有老板。有时候,客户的天堂,就意味着开发者的地狱,而开发者的天堂,则意味着客户的地狱。

 

比如说,客户有个项目,资金有限,需求很多,恨不得把程序员给累死,如果真的实现了这个目标,对于客户来说,就是天堂,对于程序员来说就是地狱。同样的项目,程序员可以选择多种方式,为了赶时间,顺利地交活,总会选择这样或者那样的“捷径”,这些所谓的捷径,对于程序员来说,就是天堂,对于客户来说就是地狱。

 

对于老板来说,有了drupal项目,找几个啥都不会的新手,现学现卖,项目过关,无疑是老板的天堂,客户的地狱。这些都是项目管理方面的了。就不再所说了。

 

      有篇英文的文章,我看过,那时好久以前的事了,按照原文的思路,自己写了几句,当作中文版的“通往drupal地狱之门”

相关链接: Think in Drupal

Drupal版本: