Drupal 8是一个旨在满足复杂内容管理需求的Web项目需求的工具。我们听到了很多关于headless,API优先,去耦等概念,这些概念坚决地复杂内容管理需求的项目提供了坚实的架构。但这并不意味着Drupal 8不再推动更传统的,有时甚至更不那么雄心勃勃的网站:简单,小型甚至大型网站,但我们希望从中受益于Drupal的模块化,灵活性和健壮性。
Drupal 8,适用于小型或大型站点的工业化解决方案
Drupal也是一种解决方案,它提供了不同的架构来实现网站的生产。能够简单快速地生成和管理多个站点的反复出现的需求,管理多个简单站点的项目中,或多或少会有些复杂。
Drupal 8为我们提供了多种网站设计工业化解决方案:Drupal 8原生的多站点架构和Domain Access模块。
Drupal原生多站点架构允许生成和维护多个独立的Drupal 8站点,这些站点基于相同的Drupal核心及其第三方贡献模块,而Domain Access提供从单个Drupal 8实例为不同站点提供支持,只需通过访问权限来分离内容。然而,这些解决方案中的每一种都有其优点和缺点。在多站点架构上维护大量Drupal 8实例可能很快变得复杂和耗时,并且其优势之一是上线时间,可以根据结构及其IT中的或多或少复杂的组织来缓解。
在简要介绍了Drupal 工业化解决方案之后,本文的目的不是详细介绍每个工具,而是提供一种可能的第三种方法,基于Micro Site模块,以及它的许多贡献的模块。
使用Drupal 8为众多微站提供支持
Micro Site模块提出的多站点架构的主要思想基于以下思路:
能够像发布博客文章一样轻松快速地发布新网站
实际上,它的概念可以与Typo 3提出的多站点解决方案进行比较,甚至可能启发了Micro Site模块的大部分起源。
Typo 3允许管理员,甚至是简单的网站管理员,只需创建一个新网站,配置其URL和一些基本属性(名称,徽标等),将用户分配到这个新网站并将权限委托给他们,然后只需发布链接到此新站点的页面可以在内容和管理中快速拥有独立权限的站点,同时通过单个界面进行管理和维护。
与Typo 3的多站点解决方案一样,Micro Site模块旨在:
- 使您能够在同一个Drupal 8实例中驱动和管理数百个(以及更多,如有必要的)站点
- 在专用且简化的管理空间内委派Micro站点的管理权限
- 允许Micro Sites之间的内容和用户共享。
- 尽量减少对复杂IT基础架构的修改
- 允许在线发布,上线时间极短
- 并从Drupal的所有模块化中受益,使您能够为具有不同属性的微站提供支持
Micro Site模块(及其外围模块)可以以多种方式使用:大学的每个部门或实验室的专用站点,活动站点,合作伙伴站点,品牌站点,允许联盟或协会为其成员提供打包的,准备好的使用网站,同时促进内容共享和共同的用户群,任何想要掌握其多个互联网存在的企业,以及一般来说,轻松简单地推动和管理几十个网站,从几十个到几百个。
Micro Site模块的体系结构
微站的体系结构与Domain Access模块非常相似,因为Drupal 8低级访问权限系统用于在微站之间分离内容,但在一个基本方面有所不同:Domain Access依赖于配置实体来定义和创建由单个实例提供支持的不同站点,Micro Site模块依赖于一个内容实体,该实体将用于提供微站点的URL以及许多其他内容,例如为Drupal 8实例的用户提供非管理员,独立创建和发布微型站点的权限。
通过依赖内容实体,微站允许您随意进行本地自定义,简单的站点构建和主题化,只需使用Drupal 8提供的模块化,即您希望能够为不同类型的微站站点提供支持。例如:
- 微站点的主页由内容实体站点本身构成,因此可以随意定制,而不必遵守主站的一般配置。
- 通过简单的站点构建和主题,在微站实体上添加的所有字段都可以用于构成微站点的所有内容。因此,只需在微站提供的内容实体上添加一些专用字段,即可通过几次单击和模板修改来配置微站点的页脚。
- 通过简单地使用Drupal 8生态系统,可以添加针对某种微站点的自定义开发,复杂的业务需求。
微站,甚至可以制作咖啡的解决方案?
像任何工业化解决方案一样,除了最终的通用解决方案之外,微站也有其优势和劣势,与其他工业化解决方案相比。如果是Drupal 8原生的多站点架构,因为网站工厂的每个实例都是一个完整的,独立的Drupal 8站点,基于Micro Site的架构,让你从Drupal 8贡献模块的整个生态系统开箱即用。
一些模块将能够开箱即用,没有特定的集成,由于它们的性质(例如提供特定字段小部件的模块,例如jQuery minicolors或Paragraphs模块),其他模块将需要稍微的通过对其配置的简单修改(例如Matomo模块)进行集成,而提供内容实体的模块(例如参考书目和引用模块或Simplenews)将需要更完整的集成。
Micro Sites本身简化了用户及其在Micro站点及其相关内容上的相关权限的管理。该想法是通过即时,简单和有效的解决方案覆盖80%的用例。因此,Micro Site有4种类型的用户(除了Micro Site的所有者),他们是:
- 管理员:拥有所有权利的人员
- 内容管理员:对链接到微型站点的所有内容具有修改权限的人员
- 投稿者:可以发布与Micro站点相关的内容,并修改自己的内容的人员
- 成员:可以简单地查看未发布的内容的人员
关于更复杂或更具体的需求,Micro网站本身并不打算对其进行处理。但很简单,这些需求可以通过一些改动或特定字段的添加以及通过定制模块应用其业务逻辑来解决。
因此,Micro Site不是能够通过几次点击覆盖所有使用情况的终极解决方案。另一方面,它为您提供了坚实的架构,管理空间以及任何更改所需的API,以达到预期的结果。对于最常见的用途和需求,可以使用与Drupal 8管理不同类型内容相同的方式创建和修改Micro站点。
微站生态系统
Micro Site是核心模块,提供Site实体以及主要API。然而,仅使用Micro Site模块,我们只能创建One Page类型的微型站点,这是一个由Site实体本身创建的唯一页面。但是有几个模块扩展了Micro Sites的功能,允许超越简单的One Page站点的框架,主要是以下几个。
Micro Node - 微站点节点模块
Micro Node是允许您在Micro Site中集成节点(以及任何内容类型)的模块。因此,它允许在Master实例中配置可用于Micro站点的不同内容类型。然后可以针对每种类型的Micro Site调制这些参数。我们可以在Micro站点,多个Micro站点甚至所有Micro站点上发布内容。
Micro Menu Menu - 微站点菜单模块
Micro Menu模块允许您创建菜单并将其专门分配给Micro Site。此外,它允许在编辑或创建内容时自动选择此菜单,当您在Micro站点的上下文中时,允许直接将内容与此菜单中的条目相关联。
Micro Theme - 微站点主题模块
Micro Theme模块允许您为每个激活的主题声明Micro Site是否可以使用它。默认情况下,Micro Sites将使用默认主题,但可以根据需要为每个Micro Site分配不同的主题。此外,Micro Theme模块提供了一个界面来动态修改主题的某些颜色,使用的字体,类似于Core Color模块中可以找到的颜色。默认情况下,此接口提供可以配置的特定数量的颜色,可以扩展的变量,以及为此提供相应CSS文件所必需的,从而允许此接口适应所使用的任何主题。
Micro Taxonomy - 微站点分类模块
Micro Taxonomy模块允许将Drupal 8实例的分类与Micro Sites集成。一方面,通过允许为每个Micro站点分配专用词汇表,还通过使不同类型的Micro站点可以访问公共词汇表,允许他们在这些公共和共享词汇表中使用或创建分类词。
Micro Path - 微站点路径模块
Micro Path模块允许您在多个Micro站点上自动管理相同URL的别名。因此,在两个不同的Micro站点上发布的两个内容可以具有相同的别名。此外,此模块还允许您为可用的内容类型创建特定于Micro站点的自动别名模式,允许您修改在Master实例上以一般方式配置的自动别名模式。
Micro SSO - 微站点SSO模块
Micro SSO模块允许从主实例到每个Micro站点设置SSO身份验证。
Micro User - 微站点用户模块
Micro User模块允许您在每个Micro Site和/或Master实例的级别控制哪个用户可以连接到Micro Site或Master实例。其功能范围正在等待可能需要扩展其功能的用例。
Micro Sitemap - 微站点地图模块
Micro Sitemap模块允许您将Sitemap模块集成到每个Micro站点的上下文中,允许您从每个Micro站点自定义自动站点地图。
Micro Contact - 微站点联系表单模块
Micro Contact模块允许在每个Micro Site中集成Drupal 8 Contact模块,可以配置在Master实例上配置的哪个联系表单用于每个Micro站点。请注意,Webform表单的使用可以通过Paragraph的简单构造来完成,允许加载和呈现Webform表单,因此不需要特定的集成。
Micro Simple Sitemap - 微站点地图生成模块
Micro Simple Sitemap模块允许您为每个Micro站点生成sitemap.xml文件。请注意,此模块在其当前版本2.x中集成了Simple Sitemap模块,因此在主实例上集成了所有参数,但不排除使用更简单的方法以自主方式生成XML站点地图文件对于每个Micro站点。
Micro Bibcite - 微型Bibcite
Micro Bibcite模块允许您将参考书目和引文模块与Micro Site集成。到目前为止,仅支持此模块提供的参考内容实体。
最后,这些不同的模块可以发布能够满足许多编辑需求的微站点。
Micro Site的功能简要概述
作为序言,由于绕过自动分配给User-1的内容访问控制权限,建议不要使用此特定用户来管理具有Micro Site模块的Drupal实例,因此也不应使用特殊管理员角色。否则,该用户将会看到所有Micro站点上发布的所有内容,并且所有内容都混淆在一起了,这令用户感到不愉快。因此,您必须创建一个新角色,您可以为其分配除绕过内容访问控制权限之外的所有权限,并将此角色分配给管理员。这直到这个问题删除uid#1的特殊行为已经解决。
一般配置
Micro Site模块提供了使用新的Site内容实体创建和发布新站点的基本体系结构。它还提供了主站实例的常规配置。要执行的第一个操作是全局配置为Micro Sites提供支持的Master实例的基本URL,以及此实例的公共URL(可以与基本URL相同)。
我们可以全局配置Micro Sites可以使用的内容类型。这些参数可以通过Micro Site的类型进行调整。
我们还可以配置Micro Sites可以使用哪些词汇表。这些参数也可以通过Micro站点的类型进行调制。
创建微型站点类型
然后,可以创建不同类型的站点(单页,通用,事件,部门,部门,品牌等),以便能够以不同方式配置它们。
每种站点类型的配置可以不同,具体取决于贡献模块提供的选项,例如Micro Node或Micro Taxonomy。
因此,当然可以在站点类型上添加尽可能多的字段,就像内容类型一样,也可以配置一些通用选项,这些选项随后可用于将要创建的此类型的所有Micro站点。我们可以为每种类型的站点配置:
- 为每个Micro站点自动创建专用菜单
- 创建专门为每个Micro站点保留的专用词汇表
- 可以在此类型的每个Micro站点上管理用户及其不同的配置文件
- 每个Micro站点可以使用的主实例上存在的不同类型的内容
- 主实例上存在的不同词汇表可供每个Micro站点使用
管理和创建Micro Sites
然后可以创建和管理Micro Sites作为Drupal 8项目的内容类型。
Micro Site有两种状态:已注册和已发布。
已注册状态将验证Micro站点的URL以及是否存在有效的虚拟主机。只要Micro Site已注册,对Micro Site的任何访问都会自动返回到Micro Site的URL。已注册状态条件访问用于管理和创建与Micro站点关联的内容的菜单。换句话说,在注册之前,无法开始创建与Micro Site关联的内容。
已发布的状态更为典型。未发布的站点只能由其作者或其成员(如果他们具有相应的权限)以及与未发布的Micro站点关联的任何内容可见。
管理微型站点
这里的主要思想是,简单用户可以完全独立于Master实例管理微站点。最终,微网站的管理者可能甚至不知道他的网站是在Drupal主实例上托管的。Micro Site具有可从Micro Site主页上的Local Tasks访问的管理区域。
因此,我们可以随意定制可以构成微网站管理的不同屏幕,这些屏幕与已连接到的不同字段有关。
在下面的示例中,Micro Site的默认表单允许您修改和查看以下元素:
- Micro Site的名称和电子邮件地址
- Micro Site的状态
- 允许填写Micro Site页面,其主页和页脚的顶部的不同字段(段落的使用允许对这些不同元素的内容具有很大的灵活性)
- Metatag信息
- Micro站点的URL
- 微网站所有者
- Micro网站的Logo和Favicon
另一种称为配置的表单模式已创建并配置(请参阅向Drupal 8实体提供自定义表单模式)以对其他字段进行分组以配置Micro Site行为。例如下面:
- Micro Site用户
- 此Micro Site的Matomo / Piwik配置
- 此Micro站点的资源管理(即为此Micro站点编写某些特定CSS规则的能力)
Micro Menu模块添加了一个选项卡,可直接从Micro Site本身管理Micro Site菜单条目,而无需通过标准的Drupal管理菜单界面。
Micro Node模块添加了一个Content选项卡,用于管理与Micro Site关联的所有内容,其方式与传统Drupal 8实例相同。
Micro Taxonomy模块添加了Taxonomy选项卡来管理专用于Micro Site的词汇表,还添加了与Micro Site关联的共享词汇表的所有分类术语。
最后,我们有一个参数,任何贡献模块都可以使用这些参数将特定配置屏幕添加到Micro站点。例如,下面可以创建特定于Micro Site的新自动别名模式。
这个Micro站点管理空间的快速概述向我们表明,用户可以直接从该空间管理和管理Micro站点的内容,而无需管理访问Drupal Master实例上的任何参数。至少在管理微型站点的基本和必要功能方面。
Micro Site的初始设计旨在允许无数相对简单的网站的发布和管理,具有专用的管理空间,可以快速执行最常见的网站管理操作。Micro站点只在一个空间中汇集了Drupal管理功能的子集。它允许我们在Micro Site的上下文中原生使用Drupal提供的实体,几乎没有或没有改变。因此,我们可以从Drupal的所有功能中受益,以满足更高级的需求。例如,需要多语言的Micro Site吗?只需在Master实例上激活多语言,即可轻松访问它。
Micro Site是否可用于生产?
这里介绍的大多数模块仍然是alpha版本。当然,在API的整合,要测试的不同用例以及自动化测试方面的正确覆盖方面,仍然有许多工作要做,这在我们切换到测试版之前是必不可少的。当然,欢迎任何帮助来完成这次登录。
就我个人而言,我已经在两个不同的项目上使用它们,反馈非常好。该生态系统模块的功能覆盖已涵盖许多共同需求。但肯定有一些尚未涵盖的用例需要或多或少的复杂集成。
Drupal的一些有趣方面仍然需要在Micro Site中进行集成,例如块管理和放置。当然,可以使用Micro Site提供的可见性参数在Drupal Master实例级别本身管理此功能,但是出现的问题是该管理功能是否可以在微型站点中委派。但是,使用Paragraphs,甚至是新的Layout Builder,可以满足截至目前的许多布局需求。通过相关的网站建设热情,一些修饰主题和模板适应不同的网站类型和基于段落的内容架构的选择,无数的可能性已经触手可及,而无需对其他模块进行重大更改。
无论如何,对于Drupal 8基础上考虑的任何多站点项目,Micro Site是一个需要认真考虑的附加选项。作为一个例子,您可以快速了解Micro Site提供的可能性,以建立一个Drupal 8网站工厂,该工厂已经推动了一些不同性质的网站,例如Freelance Drupal和其他网站。
链接 原文链接