《Drupal实战》——第3章 设置路径别名、图片样式、列表 3.1 使用Pathauto模块设置路径别名

简介: 本节书摘来自华章计算机《Drupal实战》一书中的第3章,第3.1节,作者 葛红儒,更多章节内容可以访问云栖社区“华章计算机”公众号查看。

第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所示。

image

实际上,复制后的内容没变,也就是如下的形式:

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所示。

image

单击“URL别名”,进入Drupal自带的URL路径别名的管理界面,在这里我们可以看到已有的别名列表,可以添加新的路径别名。当然,我们也看到了Pathauto模块提供的相关标签链接,如图3-3所示。

image

3.1.2 手动添加路径别名

在别名列表的最上面,有一个“添加别名”的链接,如图3-4所示。

image

单击这个链接可进入添加别名页面,如图3-5所示。

image

在这里可手动输入系统路径以及我们想要的路径别名。注意这里的语言设置,在搭建多语言站点时会用到,我们这个站点是没有用的。比如有一个节点node/1,我们可以为其设置路径别名为aboutus,如果它具有两种语言(英语和简体中文),在英语的上下文下面采用aboutus,而在中文的上下文下面采用汉语拼音的形式guanyuwomen,这个时候就需要设置语言了。

不过在节点的编辑页面、分类术语的编辑页面,都有对应的URL别名设置,我们可以在那里设置,而不需要在这里设置。

别名列表里面列出了现有的别名,如图3-6所示。

image

我们可以对现有的别名进行编辑、删除等操作。

3.1.3 别名模式

使用别名是为了让URL的可读性更加友好,方便普通用户,也方便搜索引擎。如果所有的别名都需要手动配置,实在是很麻烦。而Pathauto为我们提供了配置选项。首先访问菜单标签中的Patterns,现在默认提供了3种模式:①内容类型的路径别名设置;②分类术语的路径别名设置;③用户的路径别名设置。

1.内容类型

首先介绍内容类型的路径别名设置,在这里我们可以为每种内容类型分别设置对应的别名模式,最上面的默认路径模式可以应用于所有没有设置路径别名模式的内容类型,如图3-7所示。

image

我们将其修改为node/[node:nid],就是说,在没有配置的情况下,我们采用Drupal默认的路径形式。现有内容类型别名的具体配置如图3-8所示。

注意,这里的[node:nid]和[node:title]都是采用Token的形式。Token模块是目前第二流行的模块,仅次于Views。单击“置换模式”链接,在这里可以选择可用的Token,如图3-9所示。

Token模块提供了一个Token树,基于这个树形结构,可以方便地浏览可用的Token。找到想要的Token后,单击对应的Token链接,就可以将其插入文本输入框中。

image

image

2.分类术语
接着我们看看分类术语的路径模式,如图3-10所示。

image

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所示。

image

我们期望的格式应该是这样的:[词汇表的机读名字]/[分类术语的ID]。

操作步骤如下:

1)单击“置换模式”将其展开,如图3-12所示。

image

2)单击Taxonomy terms左边的展开按钮,如图3-13所示。

image

3)找到“词汇表”,单击它左边的展开按钮,如图3-14所示。

image

在这里面找到机读名称,单击对应的Token,便会自动插入输入框中,如图3-15所示。

4)删除默认的置换符,加上“/”,如图3-16所示。

image

用同样的办法,插入分类术语ID对应的Token,最终的模式如图3-17所示。

image

这里我们没有分别配置具体词汇表的路径模式。

3.用户

Pathauto默认的用户路径模式如图3-18所示。

image

我们用同样的办法修改其路径,如图3-19所示。

image

其实内容类型的别名模式可以更简单一点,采用如下结构即可:

[内容类型的机读名字]/[节点的ID]

对应的实际模式如下:

[node:content-type:machine-name]/[node:nid]

这样会更简洁一些。我们总是能在实践中不断提升自己的技能。

3.1.4 配置

现在单击“配置”标签,这里面有很多选项,我们这里就不逐一说明了,通常情况下,采用默认配置即可。这里强调一点,更新动作配置选项如图3-20所示。

image

图3-20包含了3个选项,第一个选项表示如果已经存在路径别名,此时不做任何操作;第二个选项表示保留已有的别名,同时创建一个新的别名;第三个选项表示删除已有的别名,创建一个新的别名。

这个配置选项在实际的应用中有时会用到。比如在我们搭建站点时,开始并没有使用Pathauto模块,并且我们已经创建好了一些别名,当我们使用Pathauto批量生成别名时,我们希望能够保留已有的别名,这样它们仍然有用,此时就需要选择第二项了。

3.1.5 批量更新路径别名

接下来,介绍如何批量更新路径别名。因为在创建测试内容的时候,系统已经自动为我们创建了很多别名,而这些别名不一定是我们想要的。单击“批量更新”(Bulk Update)标签,进入更新页面admin/config/search/path/update_bulk,如图3-21所示。

image

选中上面的所有项,单击“更新”按钮即可。

不过令人遗憾的是,只为没有别名的添加了别名,而对于已有别名的,则没有做任何操作。此时我们可以删除已有的别名,如图3-22所示。

image

然后再更新一遍就可以了,不过我们需要手动将node/1的别名设置为aboutus。

关于Pathauto和Drupal路径别名就介绍到这里。如果再有相关的配置,我们只要给出对应的路径模式即可。

相关文章
|
7月前
|
前端开发
Antd中Table列表行默认包含修改及删除功能的封装
Antd中Table列表行默认包含修改及删除功能的封装
176 0
|
3月前
|
JavaScript 前端开发
新建全局代码片段==》输入自定义文件名称
要在文本编辑器中创建和使用自定义代码片段,请按照以下步骤操作:首先通过设置菜单进入用户代码片段选项,并新建一个全局代码片段文件,输入自定义文件名。随后,在新创建的文件中定义代码片段,包括指定片段名称、适用范围、触发前缀、代码主体及描述。例如,“myscript”片段可设置前缀为“myscript”,并在各类文件中自动生成`<script>`标签。通过这种方式,可以快速插入常用的代码结构,提高编程效率。
31 1
|
5月前
|
Windows
修改SubVI的LabVIEW默认搜索路径
修改SubVI的LabVIEW默认搜索路径
76 0
文本,vitepress如何实现路由跳转,你可以在文件夹中设置多个md文件,然后在nav的link文件下使用匹配相应路径,就可以实现跳转了
文本,vitepress如何实现路由跳转,你可以在文件夹中设置多个md文件,然后在nav的link文件下使用匹配相应路径,就可以实现跳转了
|
7月前
模板查找路径配置
模板查找路径配置。
37 1
|
7月前
|
Shell
grep 搜索当前文件夹下的所有子文件中的文件是否包含8888字符串的命令
要在当前文件夹及其所有子文件夹中的文件中搜索包含字符串 "8888" 的文件,你可以使用 grep 命令结合 -r 或 -R 选项(表示递归搜索)。这里是具体的命令: bash grep -r "8888" . 其中: -r 或 -R:递归搜索。 "8888":你要搜索的字符串。 .:表示当前目录。 这个命令会列出所有包含字符串 "8888" 的文件的名称以及匹配的行。如果你只想看到文件名,而不看具体的匹配行,可以加上 -l 选项: bash grep -rl "8888" . 这样,命令只会输出包含字符串 "8888" 的文件名。
106 1
|
应用服务中间件
怎么设置去掉8080端口也能访问项目,怎么设置去掉项目名也能访问自己的项目。
怎么设置去掉8080端口也能访问项目,怎么设置去掉项目名也能访问自己的项目。
173 0
|
Java 应用服务中间件
publiccms中,怎么修改默认的端口8080以及默认上下文名称
publiccms中,怎么修改默认的端口8080以及默认上下文名称
134 0
|
小程序 开发者
小程序__02--navigationBarTitleText配置子页面标题,依旧显示默认标题,子页面配置不显示
navigationBarTitleText配置子页面标题,依旧显示默认标题,子页面配置不显示
win7,如何把文件夹和文件,视图改成平铺,默认是列表
win7,如何把文件夹和文件,视图改成平铺,默认是列表
173 0

相关实验场景

更多