原文: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以前给你的建议:
好运!
Drupal很强大,很灵活。这意味着,它也很复杂。你觉得Myspace的工作人员没有自己的术语吗,或者他们是一天就把网站给建出来的吗?我不知道有谁在讲Drupal很简单,但是有很多人由于想一下子掌握所有的东西,反倒把事情搞复杂了。
为了在Drupal社区中,人们更好的相互交流,使用相同的术语是必须的。如果你说“在我屏幕右边的盒子一样的东西”,语意就不明确,别人也不好理解。你将其改为“右栏中的作者信息区块”----现在语意就非常准确了,每个人都能理解你的意思了。你告诉了他们它是什么,在哪里,甚至如何找到它以及相关部分的样式。
开始时,尝试着理解Drupal的简单部分,不要想着一下子都掌握了。例如,首先你需要理解什么是节点(可参看在我书中的定义)。接着你才能理解什么是节点类型。学习页面的基本构成部分(页首,页脚,左栏和右栏,以及中间或者内容区域)。多点点,多看看后台的管理页面,这样,即便是你现在不知道它们能干什么,你也能大概的知道它们在哪里。
如果你的目标是拥有一个"MySpace"一样的网站,愿望总是美好的,但你要记住,只有你一个人,而你所用的工具你也不太熟悉。很多人都能搭建一个"MySpace"一样的网站,这是因为它们对所用的工具,模块非常熟悉(顺便说一句,我觉得MySpace相当不符合逻辑)
首先,先把东西搭起来,这样看得见摸得着。然后你再为此庆祝,不要在那里做思想的巨人,行动的矮子。有了一个开始以后,你就可以实现更精彩的东西了,但你需要一步一步的去做。不要一下子就添加无数个模块,这样会把你的服务器累死的;你要跟着感觉走。一次添加一个模块,熟悉了以后,可以再添加新的。
为了让Drupal更易于使用,也更加符合逻辑,我们欢迎你提交反馈信息,比如说新的特性需求,或者你觉得一些地方不太符合逻辑。如果你没有看到你的方式出现在Drupal中,你也不能命令我们给你实现,或者威胁以后再也不用Drupal了。当然,也不要做出诬蔑性的评论,毕竟Drupal是免费的。
有多种方式,可以在你的本地计算机上建立测试环境.在Drupal手册的建立开发环境一节中,包含了不同操作系统下面的许多应用和指南.
建立本地开发环境的原因:
在这本drupal简明教程中,我们采用来自DeveloperSide.net的集成安装包,测试环境为 Windows PC。
这个安装包已经集成了以下东西:
注意,对于任何包含了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是单站点还是多站点,现在你都需要做些基本的设置.下面这些是我做的,你可能会有所不同;这里数据库的权限为"root",这样做的好处是,比较方便,干什么都比较省事,你不用担心权限的问题.对于一些东西,我将给出Drupal.org上的相关链接,但是还没有发现与本文相近的相关内容。
我强烈建议你启用Drupal的核心模块"Path"模块,这样你就可以为你的页面使用“普通的”名字了。
如果你想使用联系表单,通过站点为用户发送电子邮件的话,一定要启用"Contact"模块。
有些东西我推荐你在你的所有Drupal站点中都采用,现在就是最好的时候来做这些事:
相关链接:http://drupal.org/node/120614
需要第2个drupal测试站点?下面是如何简单的实现它。[提示:如果你已经想好了要创建多个站点,你首先需要将要创建的站点列出来,接着阅读本文给出的这些指示。有些步骤可以批量进行,从而节省你的时间。]
为什么还要创建其它站点呢?除了我的已经运行的几个站点以外,我还想起了一些新的玩意,还没有完全成型,而在现有的测试站点中,又很难将这种想法加进去。我可能还有一些关于将来自己要建立的站点的想法。总之,人总是会有这样或者那样的想法的,对于程序员来讲,想法就意味着网站的原型。所以,在你完全放弃自己的想法以前,你可以花上几分钟仔细考虑一下。过一段时间,你很可能会改变自己的主意;现在它看起来还有点凌乱。
最终,我决定为我的新想法创建一个测试站点。因为是测试用得,即便是将来它完全失去了控制,你也能将其推倒重来。
这个过程看起来很长,其实不然,我只是在这里对其进行了详细的描述。扩展阅读材料,可参看“在本地的Windows PC(localhost)上,使用一个Drupal,运行多个站点”。更多关于站点目录的官方细节,可参看为多站点设置站点目录。
如果你想了解这方面的更深的知识,你可以在drupal.org上对论坛进行搜索,输入"multi-site",最好使用google, drupal.org自带的搜索功能经常被关闭,而且速度也很慢;在http://groups.drupal.org/multisite上,有专门的一个小组来讨论这个问题。而在手册内部,有很好的一节:Drupal多站点安装和设置。
相关联接:http://drupal.org/node/120647
开始批量循环1
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,这样将来我可以重复利用它。
结束批量循环1
开始批量循环2
结束批量循环2
我注意到我的Apache将index.html放到index.php前面,所以在你的目录下面删除index.html,如果存在的话。
结束批量循环3
<VirtualHost *:80>
DocumentRoot /www/drupal/
ServerName databasename
</VirtualHost>
结束批量循环3
开始批量循环4
127.0.0.1 databasename
结束批量循环4
继续。现在你可以打开浏览器,并输入http://databasename了。
多站点目录的更多细节,可参看为多站点设置站点目录。
相关链接:http://drupal.org/node/120647
Think in 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> </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> </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> </p>
<p>If you are already a registered member of this site, please try <a href="user">logging in</a>.</p>
<p> </p>
<p>If you are not a member, you need to <a href="/join_us">join us</a>.</p>
<p> </p>
<p>If you have any questions about our site or group, please feel free to <a href="/contact">contact us</a>.</p>
<p> </p>
<p>--Webmistress</p>
不要担心,你尚未创建"join_us"页面。这就是启用URL别名(Path module 路径模块)的好处。将创建该页面放在你的待做任务列表中,在本书后面的章节中将会讲到相关的内容。
相关联接:http://drupal.org/node/120646
Think in Drupal(转载时请勿删)
现在该装的软件都装好了.但是我们该如何使用它呢?
首先, 通过点击桌面上的快捷方式,打开"Web-Developer Controller",.看左上角.你应该检查一下Apache 和MySQL是否在运行.如果是的话,那一切都准备好了.如果没有的话,选择Apache,接着点击"Start Service"按钮.等待,直到状态改变为"Running.".现在选择"MySQL"并启动它.
是不是很好玩阿,我们把所有的软件都搞定了.现在,让我们开始我们的Drupal之旅吧.
打开你的浏览器.在地址栏中键入http://localhost/drupal/,来访问你的测试站点.由于前期工作都已经准备妥当了,你现在就能看到你的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服务器(我的在线站点)。
drupal主题
相关链接:http://drupal.org/node/120641
Think in 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方模块 |
|
|
想要了解有哪些drupal模块可用,你可以访问:drupal模块手册和第3方模块手册。
相关链接:http://drupal.org/node/120642
http://nanwich.info, Think in Drupal(转载时请勿删除)
如果要启用一个drupal主题的话,可以导航到Administer>>Site building>>Themes.
如果在这个站点从来没有启用过这个drupal主题的话,你需要选中"enable"复选框,接着点击底部的"Save configuration"(保存设置)按钮.
为了设置主题如何工作,点击"Configure"链接(不是顶部的标签)
输入相应的字段.
保存设置.
现在先别离开这个页面.
Logo 和Favorite Icon
现在使用那个"Configure"标签
我喜欢在"Global Settings"下面完成这一设置,如果你喜欢的话,你也可以一个主题一个主题的分别进行设置.
默认的Logo就是位于页面左上角处的一个小图片。例如,在"Bluemarine"主题上,它用的是Drupal logo。
如果你想修改它的话,你可以这样:
主题名 |
宽 |
高 |
Bluemarine |
48 |
55 |
Chameleon |
49 |
57 |
|
64 |
73 |
Minelli |
64 |
73 |
Pushbutton |
144 |
63 |
Fancy |
80 |
80 |
现在点击"Save configuration"按钮。如果你是在"Global settings"设置的话,她敬爱那个影响到所有的主题(假定一切正常的话);如果你是在单个主题下面设置的话,那么仅仅影响到这个主题。
可用的主题列表,参看主题。
提示:想对一个标准的主题作出一些(或者很多)的修改吗?你可以考虑,将其拷贝到你的/sites/sitename/themes/文件夹下,然后对其重新命名。现在你就可以随心所欲的进行修改了,如果不顺眼的话,你再拷贝一遍就可以了。如果改动比较多的话,而且质量比较好的话,你可以考虑将其贡献给整个社区(当然,注明你的名字)。
“哇,我已经做了很多了,但是在我的站点上,现在还没有任何内容!”那么,现在就让我们添加内容.
首先,让我解释一下,你的用户访问你的站点首先看到的一页通常称为首页.在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"。手册的另一节创建新的内容可能会对你有所帮助。
有多种方式,可用来向文本中添加图片,每种方式都有自己的优点和缺点。
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(转载时请勿删除)
使用下面的几步,你在将来的任何时候,都能够方便的添加/修改你的首页.
1. 创建你的首页
用管理员登陆以后,从左栏选择
Create content > Page
来创建你自己的内容.完成了以后,点击提交,查看结果.注意,当前的URL(你当前新建页面的路径)应该这个样子:
http://www.example.com/?q=node/# (普通)
http://www.example.com/node/# (使用了简洁URL)
在这里, #代表着节点ID.我们需要这个id,将它拷贝到一个地方,或者记住它.
2. 首页
现在你有多种选择:
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模块来
在http://drupal.org/project/front你可以找到Front模块
安装完Front模块以后,选择
Administer > Site configuration > Advanced front page settings
这里面的下拉菜单都有很好的解释。如果你点击了其中的任何一个,你都会看到:
当你设置完以后,点击“Save configuration”,这样就可以了。
点击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站点添加了一些内容了。
对于在前面所讲的创建一个page页面,里面的东西同样也适用于story页面。许多时候,你都可以认为,这两种类型是可以互换的,至少使用两种内容类型是有好处的,这样可以避免潜在的内容类型冲突(例如,分类“冲突”)。
Stories包含一个“teaser”(摘要),或者是一段开场白,用来获取读者的注意。摘要的长度可通过两种方式进行设置:
注意:你可能会在一些地方看到使用<break>标签来设置摘要的结束点。这一改变最初是在drupal5.0中,而它带来了很大的争议,所以现在继续使用< !--break-->。
一个story页面一般没有菜单项的。如果你遵循一般的习惯的话,那么一个"page"适用于静态的独立的内容的,而"story"则用于相关内容的集合(例如,RSS种子,通讯文章,新闻稿等),那么一个story通常是与其它stories放到一块的,那么应该为哪一个story添加一个菜单项呢?一般来讲,用于一组story页面的菜单,应该是一个描述页面,指出如何展示这些story。
你可能想将story页面推到首页。对于你的“欢迎”消息,你可能想将它放在最上面。不幸的是,这里没有“weight”(重量)属性可用,所以你需要使用"Authoring"里面的日期来控制顺序(或者你也可以使用Weight module(重量模块))。
什么是Teaser?
下面的内容来自于zoon_unit在2007年1月10日发布的一篇帖子。
"teaser"实质上是一个文本片断,在用户未读全文的前提下,告诉用户帖子的内容。由于大部分作者通常在文章的首段来对文章做出解释,所以teasers适用于大多数文章。
下面是都发生了哪些东西:
一般来说,我为每本书仅创建一个书页。也就是第一页,通常介绍这本书的用途。而其它页面,则作为子页面添加上去(准确一点来说,子页面的节点类型仍然为"book page")
与page页面大部分都一样,不同的是,书页(book page)有一个父节点选项("Parent")。对于第一个页面,它的父节点为"<top-level>."如果你使用“Add child page”(添加子页面),在父节点选项中(Parent)已经自动为你设置了书的名称。如果你要创建另一个书页的话,你需要弄清楚这个页面应该放在哪本书或者哪个页面下面。
书的首页一般应该有一个菜单项。而剩余的页面则不需要,除非它们非常特殊。记住,在drupal中,书是有自己的导航的。
你现在阅读的就是一本书("book")。
在drupal中,博客条目与其它节点类型有一点点不同.假定你启用了"Blog"模块,你应该能够在你的导航菜单中看到"My blog"一项.当你点击它时,在该页面就会有一个“Post new blog entry”(发布新的博客)链接。
如果博客是日常的,你可以使用日期作为标题。
如果它是一些想法的集合,你可以给它起个有意义的标题。
输入博客内容。
当用户访问你的博客时,看到的总是最近发布的博客。
相关联接:http://drupal.org/node/120640
下面是一个自定义区块的简单例子.关于drupal区块的更多信息,可参看drupal手册的Blocks页面.
添加一个“联系信息”区块
一个组织一般都应该让人们知道如何去联系他们。一个方便的做法是,在你的页面中放上你的邮件地址。这应该是最简单的区块了。
Example Organization<br>
Mytown, State Zip<br>
(123) 456-7890
添加最近更新声明
这是一个相当普遍的做法,特别是对于一个组织的站点,让访问者知道站点的最近更新日期,就更普遍了。这个例子需要你,网管或者站点管理员(有时称为超级用户)来维护这个区块。有办法可以实现自动化,但是现在我们将手动的实现它。
<em>Site Late Updated on
附件 |
大小 |
118.39 KB |
|
110.19 KB |
相关链接:http://drupal.org/node/120634, Think in Drupal
使用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的菜单是如何工作的.关于drupal菜单的一个更完整的指南可参看创建一个菜单结构一文.
我们都知道菜单或者说导航系统,可以成就一个网站,也可以毁掉一个网站.它必须方便人们使用,也就是通常所说的直观性.它必须完整,并且紧凑.
在Drupal官方网站上,有大量讨论菜单的内容.大多数新手刚开始都很难理解drupal的菜单.我使用Drupal已经有一个多月了,而且我还在编写这本简明教程,但是我仍然没有完全理解Drupal的菜单.
对于初学者来说,最容易混淆的莫过于菜单和分类这两个概念.菜单是一个导航系统,而分类是一个用来组织内容的系统.所以说,菜单是通过内容的路径,而分类则用来维持内容的秩序.为了更好的理解Drupal,你必须将这两者区分开来.
使用菜单,你可以直接将其指向一个节点,比如page或者story页面,但是你也可以指向taxonomy/term/id,它将为你展示一个节点列表.比如在http://zhupou.cn/taxonomy/term/3中,你可以看到所有关于Drupal 5.x的节点.
如何创建菜单
Drupal提供了3种主要的方式,这3种方式可以联合使用,来为你的用户提供站点导航.
文本菜单
文本导航是最容易理解的。事实上 ,我现在还不能理解标签式导航中的“二级”菜单的工作方式,而许多人都觉得它应该那样的(下拉)。
在许多帖子中,你都会看到“一级链接”和“二级链接”这样的术语。我觉得,在这个地方是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
联系表单用起来很简单,但是它的设立和操作却是一件非常复杂的事情.
设立
首先,必须启用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/124129,Think in Drupal
"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站点与数据库。
这个对你可能也有帮助:备份你的数据库。
我知道“官方的”的流程是,向主机上上传"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/120627, Think in Drupal,
使用phpMyAdmin的备份流程
截图中使用是phpMyAdmin 2.9.2,这是我本地安装的phpMyAdmin版本.我的网站主机上装的是2.9.0.2,看起来基本上一样.两者生成的结果可相互交换.
现在你就备份了你的数据库!(还行吧,是不是?)
下载完成后,你也可以选择"zipped"选项,点击"Go",然后再下载一个文件。如果想要的话,你可以为每种压缩格式都下载一个备份。你可以试试。
偶尔,除了内容以外,你还需要更新一些其它东西,比如样式表,或者新的代码.
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.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返回给浏览器以后,才会触发这些钩子,所以对于用户来讲,不会有任何延迟。
使用你的hostmonster帐号登录到cPanel接口界面,将页面下拉到底部,查看高级选项部分.
相关联接: http://drupal.org/node/208579 , Think in Drupal
在Drupal.org上,你将看到许多帖子都是关于如何创建和使用分类的(或者“词汇表”("vocabulary")和“术语集”("terms"))。大部分帖子你可能都看不懂---许多我也看不懂。
事实上,如果一个站点的内容越多,那么越就需要使用使用分类,但是这并不意味着,小站点,就不能使用分类了。
为了帮你更好的理解如何使用分类,我将通过一个实例来为你讲解Drupal中的分类。
Recipe(食谱)模块应该是一个很好的例子。在我的一个网站上,为了形成更好的社区氛围,为了鼓励大家经常访问我的站点,我决定添加一组菜谱(一个真正的,而不是像本书这样)。食谱模块就用到了分类。
我很快就认识到,如果没有任何组织的话,输入一堆食谱以后,很快就会变得混乱起来。那么,食谱可分成多个类别:Appetizers(开胃),Entrées,Desserts(甜点)等等。所以让我们根据这些东西来建立一个“词汇表”(vocabulary),这样我们就可以管理食谱了。
填完以后,我们就可以点击提交按钮了。这样你又回到了类别列表页面。此时你应该可以看到你新加的词汇表了。
在它的右边,你将看到一个链接“add terms”。点击这个链接。
这也不像那些帖子中所说的那么复杂吧,是不是?
又例如,我为一个组织建过这样的网站,在网站上,会员可以为每月通讯提交文章。他们希望能用一种方式来管理这些文章,让他们可以根据日期或者话题来评审这些文章。所以我创建了两个词汇表,一个用于发行日期,一个用于话题。现在,当他们点击其中的一个时,就可以看到所有相关的读书报告,电影评论,或者幽默文章。而且,当每个月他们提交新文章时,这些文章将被自动归类到里面去。[这里使用了一个定定义的内容模块,稍加修改就可用作他用。你可以联系我,来得到这个模块。]
我在另一个站点上,对FAQs的归类时,也曾用到过drupal的分类。在原始的网站上,在我用Drupal为其改造以前,他们用3个静态页面放置了3种类型的FAQs。没有人想管理这些。我安装了FAQ module(非常好用),为其建立了一个词汇表(vocabulary),带有3个术语(terms)。他们后来又让我添加了3个术语(terms),他们觉得太麻烦,不愿自己去维护站点。
相关联接:http://drupal.org/node/120624,Think in Drupal
一些问题我们大家都见过;在这里,我给出几个这样的问题.[记住,在论坛上发帖以前,县搜索一下.]
表格的格式乱了,图片不能显示了,还有其它的一些奇怪的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中,页面之间可以有链接的.这一点和不使用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>.
这部分给你讲一些技巧,帮你改进你的Drupal站点或者让你的生活更轻松.
你可以在你本地建立一个专门的“包罗万象”的站点,里面放上你用到的所有的drupal模块和主题,以及Update Status(状态更新)模块,用来监测模块和主题的状态。
状态更新模块将检查Drupal官方站点,并告诉你,你的模块是否有更新的版本可用。
你可能觉得这样做有点荒唐,不过在你拒绝这一想法以前,让我给你一些额外的提示:很多人最后发现,他们需要修补,调整或者说是修改模块以及主题。如果你创建了一个“包罗万象”的站点的话,你可以把未被修改的模块和主题都放在这里,这样你就有了一个干净的拷贝,当你的修改到了不能控制时,你可以重新使用这个干净的拷贝。现在,你不仅仅有了一个很好的备份计划,还有一个好处,就是知道了是不是需要升级模块。
相关联接:http://drupal.org/node/124933, Think in Drupal
很多人都觉得,浏览器的首页,要么是空白页,要么是网络上的某个页面,但是从没想过这个页面可以是你本地的.
这个是我首页的一部分.你可以看到,我对所有的维护任务(cPanel, FTP,等等)都加了链接,这样我就不用到处查找它们了.
我也把drupal测试站点的相应链接也加了进来,这样便也能很容易的找到它们了.
相关链接:http://drupal.org/node/120620, Think in Drupal
我怎么才能禁用“创建一个新帐号”呢?
导航到drupal的后台管理页面Administer » User management >> User settings。点击单选按钮“Only site administrators can create new user accounts”(只有站点管理员才能创建新的用户帐号)。
怎么才能完全禁止用户登录呢,禁用以后,当我使用时,又该怎么登录进去呢?
首先,你可以导航到Administer » Site building >> Blocks,将"User Login"(用户登录)区块的"Region"(区域)设为<none>。现在你的用户登录区块就消失了。
为了让你能够登录,我提供两种技术:
测试站点,就是用来试验或者开发新内容的地方,它不影响当前的用户,只有当新内容可用时,才迁移到在线站点上去.但是确保你测试站点与在线(live)站点版本的一致性,也是非常重要的.
让我们忽略这一点,就目前来讲,假定我们处于一个理想的状态中,你的测试站点(staging site)总是与在线站点保持一致的,所有新加的东西都要经过测试站点的检验以后才能正式上线.
有两种基本的技术,可用于站点的同步:
第一种技术非常耗费时间,如果用户评论很多的话,它很难保证不丢失数据.你还需要记好,都有哪些地方做了改动,除非你是同时更新两个站点的.如果内容之间存在依赖关系的话,你需要小心的按照顺序来对他们进行更新,这样你的随机访问者就不会打乱它了.
第2种技术,允许将用户评论下载到你的测试站点.在这里,可以将其纳入到内容中去,或者将其删除,或者保持原样.你要小心一些,这样在没有正式上线以前,你不会丢失新的,试验的或者未完成的内容.
哪一个更好呢?这个问题我回答不了.你需要权衡利弊,自己做出决定.就我个人来说,以我现在的年龄和记忆力,我觉得第2中技术可能更好一些,当然,也可能会丢掉一些未上传的东西.我还有一个坏习惯,就是在在线站点上更新了内容以后,忘记将修改同步到测试站点中去.
这个专题的更多讨论,可参看drupal开发者邮件列表中的这个线程一文,作者Larry Garfield (Crell)。
现在你已成为了一名Drupal专家了,下面的这些资料,你应该觉得非常有用:
一个节点(node)就是一个容器,用来装东西的.节点中的部分东西是你创建的,还有部分东西是Drupal自己创建的.
一个模块(module)就是扩展Drupal功能的一种方式。它通常包含许多代码(一般为PHP)以及一个样式表(CSS)。例如,如果你想包含元标签来描述你的内容的话。你可以添加"Nodewords"模块(也称为"Meta Tags"模块)。
一个摘要(Teaser)就是关于页面的一段介绍性文字,用来吸引用户访问整个页面。默认情况下,通常为页面内容的第1段,或者前两段,通常在后面还加上一个"read more..."链接。
主题,就是用来将你的内容展示给访问者的,怎么展示,使用什么样的样式,布局,等等都归主题负责。它包括的元素有,你的页首,图标(icon),区块布局等等。它也包含代码和样式表。
一个服务器通常是一个能够提供上网服务的计算机。这些服务可能是运行数据库,或者管理信息的收集和传播。
一个浏览器就是用来展示网页内容的程序。实际上,它通常是一组程序集,而不是单个程序;它还使用了一组表格集(例如,设置)用来控制它的展示。例如,IE,Netscape,和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),它可以用于各种情况下。在前面的例子中,我们可以把“生物”作为一个词汇表。而每个词汇表下面都有一个或者多个“术语集”用来描述你的东西。而“术语集”可以是多层级的,也就是说它们存在着等级之分。“属”和“种”就是多层级术语。词汇表用于输入类型(Pages,stories等等。)而“术语集”则指定给特定的节点(“对澳洲坚果产量的开创性的研究”)。注意,我说的是“术语集”,因为一个节点可以有一个或者多个术语与之相连;例如,那上面的“…坚果…研究”这篇文章为例,可以为其指定“坚果”,“树木”,“丰收”。通过任何一个术语(或者说关键字)都可以找到这篇文章。
面包屑是从Hansel和Gretel借来的术语,在这个故事中,主人公为了走出大森林,在他们走过的路上撒下面包屑作为记号。在目前的计算机用于中,它通常指的是页面顶部附近的一小部分,用来说明到达当前页面所走过的路径。例如,浏览这篇文章时,你会看到顶部附近有Home › Drupal简明教程 › 适用于初学者的Drupal菜谱,它意味着,你首先来到了Home,接着点击了“Drupal简明教程”,最后选择了“适用于初学者的Drupal菜谱”,最终你看到了这篇文章。
数据库是存储在一起的相关数据的集合,这些数据是结构化的,无有害的或不必要的冗余,并为多种应用服务;数据的存储独立于使用它的程序;对数据库插入新数据,修改和检索原有数据均能按一种公用的和可控制的方式进行。当某个系统中存在结构上完全分开的若干个数据库时,则该系统包含一个“数据库集合”。
SQL是数据库的查询语言。例如:SELECT country FROM user_profile WHERE username = "Nancy";它将得到用户"Nancy"所在的国家。
See also:
在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