drupal文档

来源:互联网 发布:最具潜力的淘宝商品 编辑:程序博客网 时间:2024/06/04 18:06


Drupal.org
社区文档由Drupal团队负责维护。

用户与建站者指南

了解Drupal
学习有关Drupal的理念,技术簇群,术语以及资源。

安装指南
安装Drupal以及相配套的第三方模块与主题。同一个安装实现多站点技术。从其他CMS和地址平台迁移过来可能遇到的问题。

管理指南
管理用户和内容,执行备份与升级,网站安全,提高性能等等。受益群体:系统和网站管理人员

架构指南
关于内容类型,区块,菜单,视图,面板,分类,用户资料以及导航的工作。受益群体:信息架构师

建站指南
增加功能与特色比如电子商务,论坛,媒体,搜索,地理数据,日期,工作流,发送消息应用,表单,社交网络等等。受益群体:站点搭建人员,开发人员以及业务架构师

多语种指南
如何用其他语言建站以及多语言站点的建立。受益群体:站点搭建人员,网站管理人员

主题指南
使用模板,CSS等自定义界面。重写来自core或第三方模块的输出数据。受益群体:设计人员,美化师以及界面专家。

移动站点指南
如何建立一个支持移动设备的站点。受益群体:站点搭建人员,网站管理人员,网站设计者



 

 

了解Drupal
欢迎来到Drupal世界!Drupal是一个强大的内容管理系统,纵使不懂的任何编程语言您也能够轻易建立和维护各种类型的网站。
如果您是一个Drupal新人或刚开始拥有一个自己的站点,那么这个指南正适合您。
工作的开始阶段是至关重要的——柏拉图
接下来的页面将为您逐渐展开Drupal的神秘面纱,社区收集的一些优秀案例,可以加强Drupal基础的概念与技术以及基本的安装与配置知识。
Drupal
文档当前正在重建。一些内容已被移到管理指南,架构指南和建站指南当中去了。
如果您在安装Drupal时需要帮助,安装指南提供了手把手的说明以及故障排除技巧。

        

Drupal概念

在您开始安装并使用它之前,全面的了解它是什么、是如何工作的会是一个好主意。这部分给您一张大图纸以帮助您规划Drupal是怎样的,并且让您做出准确判断它是否真的适合您接下来的工作。预先做这样一个小小的时间投资将让您长久受益。

 


Drupal之路:抽象而可控性
有效的Web设计应当介于简单与灵活之间的平衡。如果一个系统过于简单,则只能实现单一目的 ——但是如果它变化多端,那么对初学者来说将带来学习上的困难。

通过为它的用户群体提供搭建内容管理系统解决方案的工具以及一些预先建立的组件来帮助他们开始工作,Drupal在努力调整这些有着冲突的目标。因此,它可以被描述成同时具备内容管理系统(CMS)和内容管理架构(CMF——一个争取拥有两者优势摒弃两者缺点的系统。

很多CMS就像玩具船或卡车一样 ——特别的假设一下已经被整体制作完成只能拿来使用,这样将对您的重写造成困难。犹如骨架,换句话说,仅提供给您一些原始的材料 ——您需要懂得一些编程语言并且有着清晰的设计思路才能将它们整合到一起。

Drupal
就像乐高积木的工具箱。熟练的开发人员已经制作好了这些积木 ——以第三方模块的形式 ——而您只需要建立一个符合自己需求的网站,不管是一个新闻站点,一个在线商城,一个社交网络,博客,维基百科,亦或是综合类型。

Drupal在行动

详细对比Drupal和其他CMS,以新闻站点为例。您希望在这个网站上发布新闻,并且希望在首页某个位置可以显示最新的五条记录。接下来,您打算添加一个博客,而且同样在首页添加五条带链接的最新博客内容。

如果您先前使用过一般的CMS系统,首先您需要安装一个插件以便处理新闻并在首页放置导航短语。其次,您需要安装一个插件以便于跟踪最新博文并将其罗列在首页。每个插件或许只对某个特定内容负责,而且互相独立。

但是,假如您在大半夜的时候突然灵光闪现,想要把这两个功能整合起来在最新文章旁边显示一溜儿博文,并以作者活跃度排序呢?如果您使用的是玩具卡车CMS系统,您可能不太走运了,或许需要专门雇一名开发人员为您从零开始定制插件。但通过强大的Drupal,这种易于掌控的抽象概念形式,您可以快速拿出一套完美解决方案并将他们漂亮的整合到一起。(小提示:仅用 Views 即可。)自从Drupal的模块在标准化方式下工作,接口遵从统一底层规范以来,搭建各种灵活而高度用户化特征的站点变得犹如整合零部件一样简单。

当然,这样的灵活性会带来一定的成本开销。当一个玩具卡车可以立即被理解无需多考虑就可以使用的时候,模块化的车辆组装工具包自然会要求您先阅读说明手册。但,类似积木的模块的存在,在您能够取得原型图纸并且把它变成功能完善的网站之前,您同样需要先去学习如何把他们组装到一起。

Drupal core
,以成百上千的第三方模块为基础,需要稍稍做点学习上的投资,但是掌握Drupal方法会获得丰厚回报;充满热情的Drupal社区犹如福音书一样以其强大的力量使得网站建设者们从简单/灵活性的困扰中解脱出来。一旦您接触过Drupal,您很可能会将您的玩具卡车和玩具船弃之于壁橱纵然落满尘灰而不顾。

 


Drupal是如何来实现的

感兴趣了吗?让我们再仔细看看Drupal的工作原理。

人们经常将网站看成一个拥有一些功能(比如博客,或新闻系统)的静态页面的**。当他们去管理网站的时候,他们将其考虑成拥有树状层级结构的页面来登入与编辑。

Drupal,
换句话说,以相同的概念的不同变化提供了大量的内容类型:节点(稍后详细讨论)。静态页面博文以及新闻条目(已有的节点类型)都以相同的方式被存储,以及通过编辑菜单被独立设计的站点导航视图(内容列表),和区块(可以链接到不同网站版块的网页端内容)。

这就像你在标准页面代码——XHTML中看到的那些注释语言提供了有意义的架构信息,在Drupal的世界里,“节点控制着与博文(比如标题,内容,作者,日期)或新闻条目(标题,内容,上线日期,下线日期)有关的结构信息,并与菜单系统分类(内容标记)以及视图一起,创建完整的信息架构。最后,主题系统,连同显示模块比如面板,把所有的这些都展现给网站访客。

自从这些层面被独立开来以后,您能够基于不同用户指定的不同需求与角色提供一个完全不同的内容导航与描述。页面可以不同的形式进行组合,比如不同的优先顺序,以及各种功能和内容按需求进行显示或隐藏。

 

 

节点:Drupal的灵活性的秘诀

我们不必每天都来讨论“节点”,但自从它们成为Drupal设计的核心后,它们值得进一步研究。最基本的,“节点”是个一系列相关联知识。当您建立一条新博文的时候,您不仅仅只定义它的正文,同时需要关注标题,内容,作者链接,创建日期,分类(标签)等等。这些元素会在“节点”被展示的时候随着“主题”一起被展示出来。另外一些是元数据用于控制“节点”的完全显示 - 比如分类或发布状态。

自从每个项内容以“节点”形式存储起来后,他们均包含有同样的基础信息,无论是通过Drupal内核还是第三方模块每项都以标准方式来处理。这样做的好处在于站点搭建人员可以准确选择内容显示位置,以及准确显示在每个实例中的外观。大多数站点搭建者的时间都花在定义节点存储的信息类型上,以及配置显示其内的结构(菜单,分类树,视图,面板)。

在建议之前,您完全不用局限于单一的展现您的站点。您可以定义许多导航方案,自定义主题(站点的“皮肤”),区块(小块的内容,比如前面所描述过的五条最新博文),以及功能**作为您的网站的特别之处。

比起“节点”来说“评论”是Drupal世界的第二大成员,但是他们也同样可以阐述Drupal之路。“评论”不只是博客系统的一部分,因为没有一个“博客系统”是独立而存在的。“评论”可以在您选择的任何节点类型中被使用 - “博文”,“新闻条目”,“书页”(提供基本的wiki功能)以及您可能创建的任何对象。

 

 

以协同工作为核心

建立从“一到多”广播节目的信息型网站多数CMS系统都可以做到。尽管如此,Drupal的真正亮点是当您想要授权网站用户创建内容,以及相互沟通 - 正在从 “一对多”到“多对多”转变。

对于一些CMS来讲,您可以建立一个博客,并且安装插件来处理社区用户,但是当您想要给每一个用户单独的博客系统,整理他们的内容以便他们可以独立展示他们自己的样貌,同时也生成用以博客交叉使用的主题摘要,最新前五排名,以及链接到详尽的,自定义的用户资料时会发生什么呢?您是否还需要整合论坛,一个像wiki这样的环境,以及给予每个用户独立的照片标识功能?

Drupal是一套全新设计的系统,因此站点搭建者可以授权创建内容甚至管理员权限给用户。您所要做的只是定义每个人可以去做什么(通过用户权限),然后就可以开始协同工作了。




入手容易,定义灵活

Drupal的灵活令人难以置信,但安装它是非常容易的。使用简单的FTP上传文件并完成简短配置,在一小时内就可以链接数据库并开始使用您的第一个Drupal网站。

选择一个自带的“主题”,稍微添加些内容。您想要有访问者登陆网站吗?将“身份验证”开启或关闭就可以了。想要开启一些自带的工具?开启“论坛”;启用“节点类型”的“评论”功能;为像wiki这样的协同工作开启“书页”模块;创建“论坛”和“投票”;对网站内容的结构化,层次分类或自由格式的标签使用“分类”。

您想要对网站应用自定义“皮肤”吗?Drupal的“主题系统”允许使用“PHP代码小片段”以便在合适地方用动态内容来替换您的代码设计当中的占位符文本。Drupal生成的标识语言是干净,标准而兼容的XHTML。没有老式的td\tables语句。没有繁琐的东西。没有开玩笑。

 

 

 

Drupal工作流

如果您想要深入研究Drupal,您应该了解在各个系统层之间信息是如何流动的。主要有五大层面需要考虑到:


1.
系统的底层是一个节点的**——数据源。在任何东西需要被显示在网站上之前,都必须先转化为数据形式。

2.
上一层则是模块所在层。模块属于功能插件既是Drupal核心(伴随Drupal一同运行)的组成部分也是Drupal社区成员开发的第三方插件。模块依靠Drupal的核心功能,允许用户自定义各节点类型的数据项(字段);建立电子商务;编程排序以及显示内容(以您定义的过滤方式显示输出);甚至更多。在快速增长的第三方Drupal模块资源库中拥有成百上千个不同的模块可供选择。它们代表着从个人到大型企业的革新与协作的努力的成果。

3.
再上一层,我们可以找到区块菜单区块常常提供模块的输出或可以被用来显示您所需要的东西,然后可以被放置在模板(主题)布局的任何地方。区块可以多种方式进行配置以便输出,也可以显示在特定的页面,或只针对某一特定的用户。

4.
接着是用户权限。它用来设置以配置决定各种不同的用户允许做什么或看到什么。不同的角色可以定义权限,或者相互交叉,用户被分配到这些角色当中以便授予已经被定义好的权限。


5.
在顶层则是站点主题(也就是皮肤)。它主要由XHTMLCSS组成,附带一些PHP变量穿插其中,因此Drupal生成的内容可以出现在任何一个合适的地方。另外包括每个主题在内都是一系列在模块里被用来覆写标准函数的函数以便为在输出的时候模块生成标记语言提供完全控制。模板也同样可以基于用户权限进行动态分配。
这种从下到上的控制解释了Drupal是如何工作的。还有哪些您需要的新功能没有出现吗?假定您已上传了模块到系统中但却没有激活它,这样的话是不会起作用的(如同上面图表中的"A"一样)。

也许模块已经被安装并且激活,但是您却依然没在您的站点上发现它。您是否忘记了放置区块呢,比如像"B"一样?或者您的用户权限设置与所期望的功能或用户允许看到的输出有所冲突,归属为"C"

另外——先前提到过——获取这种您想要的遍及XHTML模块输出的每个细节的精细控制需要对Drupal工作流程的充分了解。您是希望使用一个能够完全满足需求的模块,仅希望标记语言有一点点不同吗?也许您想要去使用不同的标签,或您想要指派一个CSS类到某处?通过从模块中复制输出函数来实现它并且推送至主题中的函数文档当中去。修改代码,当系统输出的时候,就能看到自定义函数替换了原有函数了。

Drupal是否是正确的选择?

事实上对于建立任意类型的网站 Drupal是一个强大而灵活的架构。以下是一些在某些状况下之所以选择Drupal的引人注目的地方。

·
您需要一个足够灵活的网站以便可以涉足任意领域。比如,您开始的时候使用的是博客但是还想要添加其他功能像wiki,电子商务,论坛等等。
·
您需要一个易于配置的网站以便开展与其他网站或技术的交互。
·
您需要一个易于处理复杂表单和工作流的网站。
·
您需要一个允许自建内容类型的网站。比如,您需要添加自定义字段到页面上。
·
您需要一个能够快速组织和显示信息的网站。
·
任何一个或多个Drupal的第三方模块在致力于实现您的需求。
·
您需要快速开发自定义功能。
·
您需要使用第三方API来创建网页应用和插件。

另一方面,对于某些特定用途,Drupal或许不是最好的选择:


·
如果您的需求只是为了发表博客文章,您或许也会斟酌其他更多的专业博客平台像WordPress(http://wordpress.org/)或像Blogger(http://www.blogger.com/)一样的博客托管解决方案。尽管Drupal能够轻而易举的胜任做为一个博客平台来用,但专业的博客软件或许会有更加简便的管理界面。


·
同样,如果您的需求只是为了创建一个wiki,您或许应该考虑使用专用wiki软件像MediaWiki(http://www.mediawiki.org/wiki/MediaWiki)wiki托管解决方案。您当然可以把Drupal配置成人人都能编辑内容的模式(以至借助许多第三方模块像wikitoolsDiff来启用高级wiki功能),但是使用更专业的解决方案更容易满足您的需求。

·
如果您的需求只是主机论坛类型,您需要考虑拥有一系列成熟论坛功能的系统比如SimpleMachines(http://www.simplemachines.org/)phpBB(https://www.phpbb.com/),或者拥有很多插件的Vanilla(vanillaforums.org)。如果您需要的是一个自定义论坛,尽管如此,附带论坛增强模块的Drupal的论坛模块比如 Advanced Forum 或许能够更好的进行扩展使用。

重要提示:当对任何软件进行评估时使用者应该总是尽职审查和确保软件是适合常规安全维护与升级的。Drupal.org不对以上提到的托管在外部网站的任何软件负责。更多关于Drupal安全的信息请查看此页(http://drupal.org/security-team)。

对于每个版本,Drupal变得越来越容易使用;但是像大多数强大工具一样,它有一个被认知的过程。如果您或您的组织不准备花一些时间去学习Drupal的工作原理(或者如果您不打算雇佣些Drupal专业人员),或许它不是您的最好选择。

 

 

通用概念

字段
“字段”是Drupal世界中的最小信息单位。通常字段包括数字,日期或一些文本。

节点/实体

在Drupal中“节点”是网站内容的通用术语。节点由多个字段组成。(注意 选择单词“节点”并不代表网络中的数学观念)有关“节点”的例子:

书页
论坛的帖子标题
博客中的条目
新闻 文章/故事

网站上的每个“节点”都有其内容类型。它包含字段比如节点ID,标题,创建日期,作者(网站上的用户),内容(对某些内容类型可以省略/忽视),以及其他属性。通过使用模块比如第三方内容构建包(CCK)模块,内核中的分类模块,以及第三方的 Location 模块,您可以为您的节点添加字段和其他属性。
在Drupal7中“节点”依然被使用,但节点的概念已经得到扩展并被命名为“实体”。“实体”不仅仅包括“节点”还包括“用户”,“评论”,节点与节点之间的关系等等。所有“实体”同样可以附带额外信息(字段)就如使用“内容构建包”时对“节点”的操作那样。

评论
“评论”是您可以使用的另外一个内容类型(如果您已经启用了内核中的评论模块)。每个评论都是用户所提交的典型的内容小片段,它们附着在一个特定节点上。例如,依附于一个特定论坛主题节点下的每个讨论就是一个“评论”。

模块

模块就是用来扩展Drupal特性和/或功能的软件(代码)。内核模块已包含在下载的Drupal主程序中,不用安装额外软件您便可以开启它们的功能。第三方模块可以从 drupal.org 的模块下载页面获得,并安装到Drupal程序中。您同样可以创建自己的模块;但这需要对DrupalPHP编程,以及Drupal的模块API有个透彻了解。

区域,区块,菜单


页面被布置在Drupal站点的各区域中,包括header,footer,sidebars以及主体部分;主题可以定义更多额外区域区块是显示在站点页面区域中的零散信息。区块可以作为菜单(涉及到站点导航),模块的输出(比如,论坛热点),或您自己已创建的动态和静态的信息块(比如,待办事件列表)。

Drupal
中有三类标准菜单:主链接,次链接,以及导航。主与次链接由站点管理员建立,并自动显示在大多数主题的页面头部(如果没有,您可以启用相应区块以便显示它们)。导航是一类囊括管理菜单的全包型菜单,也是站点上模块提供的链接。您同样可以创建自定义菜单,以便通过启用区块来显示它们。

您可以有很多种方式来定制菜单,比如按权重重排或简单拖拽,重命名菜单项,以及改变链接标题(鼠标悬停在菜单项上时出现的提示文本)。您可以通过编辑父级菜单项属性将一个菜单项移动到另一个不同的菜单下面。
通过菜单管理页面的添加菜单选项卡,您也可以在菜单中添加自定义菜单项,创建菜单项,您需要提供到内容的路径(见上文)。

所有提到的菜单项只显示给拥有浏览页面权限的访客;例如,管理菜单是不会被未登陆的访客看到的。



用户,权限,角色

 

来您网站的每个访客,无论是注册过并已登陆还是匿名访问,都可被视为Drupal用户。每个用户都有一个数字ID,并且已注册用户还会有用户名和邮件地址。通过模块还可以为用户增加其他信息;例如,如果您使用内核自带的用户配置信息模块还可以为每个用户定义配置文件字段。

通常匿名用户的ID“0”。至于为“1”的用户ID则是您在安装Drupal后产生的,其特殊在:这类用户拥有网站的绝对权限。

网站上的另外一些用户则可以通过角色功能来分配权限。做这之前,您首先需要创建角色,您或许会称之为内容编辑成立会员。接下来,您要将权限分配给这些角色,告诉Drupal这些角色可以和不可以做什么。最后,您将网站上的某些用户指定到这些新建立的角色中,也就意味着当这些用户登录之后,Drupal将按照您所分配的角色权限来决定他们可以做什么样的操作。

您也可以分配权限给内置的特殊角色匿名用户(未登录用户)和注册用户(已登录用户但未被分配到特殊的角色中)。Drupal的权限是非常灵活的——基于网站需求,它允许您分配权限给任意任务到任意角色中。


主题(theme)
主题控制着站点的显示,包括外观,布局以及色彩。主题由一个或多个定义站点HTML页面输出的 PHP文件,以及用来定义布局,字体,色彩和其他样式的CSS文件构成。

 
视图(Views)
虽然不是所有站点都有但大多数网站还是包含了 Views模块以便提供这种功能。视图允许人们选择一组节点或其他实体Drupal7)并将它们呈现在页面,区块或RSS订阅中。把节点或实体作为一个分组的内容(字段)以及视图作为选择和显示这些内容分组的方式。


 

分类(Taxonomy )
Drupal
有一个用于分类内容的系统,被称为分类并在内核当中的分类模块中执行。您可以定义自己的词汇表(包含大量的分类学术语),也可以添加术语到每个词汇表当中。词汇表可以平板树形结构显示,允许单或多选,也可以自由标记(意思就是当创建或编辑内容时,您可以实时增加新术语)。每个词汇表到时候都可以被附着到一个或多个内容类型上,通过这种方式,您站点上的节点可以按类别区分,加标记,或者以任何您选择的方式进行分类。

 


数据库(Database )
Drupal
的信息存储在数据库当中;每种类型的信息都有其自己的数据库表。例如,您站点上节点的基本信息被存储于节点表当中,并且如果您使用CCK模块为节点添加字段,字段信息是被存储于单独的表中的。评论用户也有它们自己的数据库表,以及角色权限,和其他设置都存储在数据库表中。

 

 


路径(Path )
当您访问Drupal站点中的URL的时候,在您的站点地址后面的那部分就被称为路径。当您访问Drupal站点的路径的时候,通过一次或多次数据库查询,Drupal知道要将什么样的信息传递给浏览器。通常来讲,Drupal允许您所启用的每个模块定义自己的路径,这些模块将自行负责,并且当您选择访问特定路径时,Drupal会在模块要求下将所要的东西显示在页面上。

例如,本站(drupal.org)是由Drupal搭建的(当然)。您当前所浏览的页面是http://drupal.org/node/19828,路径就是“node/19828”。对本路径负责的模块是内核节点模块,因此当您访问本页时,Drupal节点模块来决定要显示的内容。


在站点上为特定页面指定路径,为此目的创建一个链接,前往您想要链接的页面并查看地址栏里的URL。默认情况下您站点地址后面的URL将是由‘?q=’开头。当开启了‘Clean URLs’功能的话那么您会在URL里看到目录结构。用于菜单项的路径是站点地址后面的那部分并没有“?q=”

 

0 0
原创粉丝点击