第3章
设置路径别名、图片样式、列表
3.1 使用Pathauto模块设置路径别名
3.2 设置图片样式
3.3 使用Views创建列表
3.4 小结
实际中的站点、网站都是从主题层开始入手的,不过我们这里只是一个学习的案例,而且因为我们没有现成的PSD、静态HTML,所以这里先做功能。不过在一些实际项目中很多时候也可以先做一些功能性质的工作,然后再去做主题。我们在本章主要介绍Pathauto、Image styles、Views的设置,这是搭建网站时前期需要设置的。
3.1 使用Pathauto模块设置路径别名
我们先来看看Pathauto模块的配置。Drupal自带了路径别名的设置,但是这个路径别名的设置需要手工完成。而Pathauto模块通过预先设置好的规则,能够自动帮助我们生成路径别名。它现在已经起作用了。看看我们创建的图书“平凡的世界(全三部)”在IE 8下的路径:
http://localhost/bookstore/content/%E5%B9%B3%E5%87%A1%E7%9A%84%E4%B8%96%E7%95%8C%EF%BC%88%E5%85%A8%E4%B8%89%E9%83%A8%EF%BC%89
而它在Firefox下的路径如图3-1所示。
实际上,复制后的内容没变,也就是如下的形式:
http://localhost/bookstore/content/%E5%B9%B3%E5%87%A1%E7%9A%84%E4%B8%96%E7%95%8C%EF%BC%88%E5%85%A8%E4%B8%89%E9%83%A8%EF%BC%89
汉字在URL里被转义了,而转义后的URL对于普通用户来说并不友好。至少对于我个人来说,是不喜欢这个默认配置的。不过有很多中文Drupal站点都采用这个默认的配置。
3.1.1 Pathauto的管理界面
现在让我们来看看Pathauto的具体配置,Pathauto的配置页面不是很好找,我们需要首先导航到配置页面(admin/config),找到搜索及元数据,如图3-2所示。
单击“URL别名”,进入Drupal自带的URL路径别名的管理界面,在这里我们可以看到已有的别名列表,可以添加新的路径别名。当然,我们也看到了Pathauto模块提供的相关标签链接,如图3-3所示。
3.1.2 手动添加路径别名
在别名列表的最上面,有一个“添加别名”的链接,如图3-4所示。
单击这个链接可进入添加别名页面,如图3-5所示。
在这里可手动输入系统路径以及我们想要的路径别名。注意这里的语言设置,在搭建多语言站点时会用到,我们这个站点是没有用的。比如有一个节点node/1,我们可以为其设置路径别名为aboutus,如果它具有两种语言(英语和简体中文),在英语的上下文下面采用aboutus,而在中文的上下文下面采用汉语拼音的形式guanyuwomen,这个时候就需要设置语言了。
不过在节点的编辑页面、分类术语的编辑页面,都有对应的URL别名设置,我们可以在那里设置,而不需要在这里设置。
别名列表里面列出了现有的别名,如图3-6所示。
我们可以对现有的别名进行编辑、删除等操作。
3.1.3 别名模式
使用别名是为了让URL的可读性更加友好,方便普通用户,也方便搜索引擎。如果所有的别名都需要手动配置,实在是很麻烦。而Pathauto为我们提供了配置选项。首先访问菜单标签中的Patterns,现在默认提供了3种模式:①内容类型的路径别名设置;②分类术语的路径别名设置;③用户的路径别名设置。
1.内容类型
首先介绍内容类型的路径别名设置,在这里我们可以为每种内容类型分别设置对应的别名模式,最上面的默认路径模式可以应用于所有没有设置路径别名模式的内容类型,如图3-7所示。
我们将其修改为node/[node:nid],就是说,在没有配置的情况下,我们采用Drupal默认的路径形式。现有内容类型别名的具体配置如图3-8所示。
注意,这里的[node:nid]和[node:title]都是采用Token的形式。Token模块是目前第二流行的模块,仅次于Views。单击“置换模式”链接,在这里可以选择可用的Token,如图3-9所示。
Token模块提供了一个Token树,基于这个树形结构,可以方便地浏览可用的Token。找到想要的Token后,单击对应的Token链接,就可以将其插入文本输入框中。
2.分类术语
接着我们看看分类术语的路径模式,如图3-10所示。
Pathauto采用词汇表的名字和分类术语的名字作为路径别名,但是这两个名字我们这里都是采用的中文形式,把它们放在实际的浏览器下面就会被转义。比如在图书分类下面,小说的路径别名如下:
http://localhost/bookstore/%E5%9B%BE%E4%B9%A6%E5%88%86%E7%B1%BB/%E5%B0%8F%E8%AF%B4
放在Firefox浏览器下浏览,小说的分类术语别名路径如图3-11所示。
我们期望的格式应该是这样的:[词汇表的机读名字]/[分类术语的ID]。
操作步骤如下:
1)单击“置换模式”将其展开,如图3-12所示。
2)单击Taxonomy terms左边的展开按钮,如图3-13所示。
3)找到“词汇表”,单击它左边的展开按钮,如图3-14所示。
在这里面找到机读名称,单击对应的Token,便会自动插入输入框中,如图3-15所示。
4)删除默认的置换符,加上“/”,如图3-16所示。
用同样的办法,插入分类术语ID对应的Token,最终的模式如图3-17所示。
这里我们没有分别配置具体词汇表的路径模式。
3.用户
Pathauto默认的用户路径模式如图3-18所示。
我们用同样的办法修改其路径,如图3-19所示。
其实内容类型的别名模式可以更简单一点,采用如下结构即可:
[内容类型的机读名字]/[节点的ID]
对应的实际模式如下:
[node:content-type:machine-name]/[node:nid]
这样会更简洁一些。我们总是能在实践中不断提升自己的技能。
3.1.4 配置
现在单击“配置”标签,这里面有很多选项,我们这里就不逐一说明了,通常情况下,采用默认配置即可。这里强调一点,更新动作配置选项如图3-20所示。
图3-20包含了3个选项,第一个选项表示如果已经存在路径别名,此时不做任何操作;第二个选项表示保留已有的别名,同时创建一个新的别名;第三个选项表示删除已有的别名,创建一个新的别名。
这个配置选项在实际的应用中有时会用到。比如在我们搭建站点时,开始并没有使用Pathauto模块,并且我们已经创建好了一些别名,当我们使用Pathauto批量生成别名时,我们希望能够保留已有的别名,这样它们仍然有用,此时就需要选择第二项了。
3.1.5 批量更新路径别名
接下来,介绍如何批量更新路径别名。因为在创建测试内容的时候,系统已经自动为我们创建了很多别名,而这些别名不一定是我们想要的。单击“批量更新”(Bulk Update)标签,进入更新页面admin/config/search/path/update_bulk,如图3-21所示。
选中上面的所有项,单击“更新”按钮即可。
不过令人遗憾的是,只为没有别名的添加了别名,而对于已有别名的,则没有做任何操作。此时我们可以删除已有的别名,如图3-22所示。
然后再更新一遍就可以了,不过我们需要手动将node/1的别名设置为aboutus。
关于Pathauto和Drupal路径别名就介绍到这里。如果再有相关的配置,我们只要给出对应的路径模式即可。