cubear/finder

Finder是一个Drupal 8模块,帮助用户找到符合他们标准的服务

安装数量: 4,104

依赖项: 0

建议者: 0

安全性: 0

星标: 33

关注者: 20

分支: 26

开放问题: 12

语言:JavaScript

类型:drupal-module

dev-master 2024-03-15 19:24 UTC

This package is not auto-updated.

Last update: 2024-09-29 05:48:30 UTC


README

由:康奈尔数据管理服务小组和康奈尔信息技术定制开发小组创建

此软件免费提供,无任何限制地重新使用或修改。代码“按原样”提供,不提供任何形式的保证,包括明示或暗示的保证,康奈尔大学不对维护或升级负责。

如果您选择重新使用代码,请引用原始创作者为:康奈尔大学研究数据管理服务小组和康奈尔信息技术定制开发小组(2018)。Finder模块。Dupal 8。 https://github.com/CU-CommunityApps/CD-finder

概述

Finder模块的目的是帮助用户在众多类似的相关替代品中选择。

在我们最初的用例中,我们有18-20种计算机数据存储替代品可供研究人员使用。我们的帮助台创建了一个问题列表,以指导研究人员指定他们的需求。Finder模块允许研究人员输入需求,并交互式地将18-20个选项缩小到可能只有2-3个替代品。在用户点击复选框输入他们的标准后,不符合条件的结果会变为灰色。用户可以点击剩余的合格结果;这些会被突出显示,并以表格形式呈现这些最小组的详细特征,以便研究人员做出最终选择。

在Drupal中实现此应用程序允许服务管理人员在不进行额外编程的情况下轻松编辑可用的服务和支持数据。

我们相信其他团队也将有类似的自我服务产品的需求,以引导最终用户在一系列中等复杂的选择中缩小选择范围。

规划

当使用此模块帮助最终用户根据多个标准以及多个类别的信息评估在多个复杂替代品中选择时,请预计收集支持信息和设计有用问题将需要大量的规划和时间。在输入服务后更改问题或答案或添加或删除信息类别需要编辑每个服务。

我们建议从下面的简单示例开始,熟悉数据布局和编辑工作流程,然后再开始“真实”项目。

通过Composer安装Finder模块

使用Composer安装Drupal 8

  • composer create-project drupal-composer/drupal-project:8.x-dev testdrupal

需要Finder模块

  • cd testdrupal
  • composer require cubear/finder

注意:如果您不使用Composer管理您的Drupal 8网站,您可以从以下网址克隆模块:https://github.com/CU-CommunityApps/CD-finder

从“扩展”管理页面(/admin/modules)安装Finder模块及其依赖项。

Finder模块的设置

  • 在控制类型分类法(/admin/structure/taxonomy/manage/control_type/overview)中添加两个术语:“复选框”和“单选按钮”。
  • 在“Facets”分类法中创建一个包含代表标准/问题及选项的术语的两级层次结构。对于每个标准(顶级Facets),指定一个控件类型:可以是“复选框”(用于可以选择任何、所有或没有任何选项的情况)或“单选按钮”(用于只能选择一个选项的情况)。
  • 将“Facets”分类法术语拖动到两级层次结构中,以表示标准/问题与选项之间的关系。

服务(选择的事物)可以包含大量数据,因此需要一些规划。一旦最终用户缩小了他们的选择范围,他们将被展示一个包含多个字段数据的比较表。这些字段由Drupal段落“Service Paragraphs”表示。在开始于/admin/structure/paragraphs_type/service_paragraphs/fields输入服务数据之前,应编辑服务段落。

在交付时,“Finder”模块在服务段落中包含两个字段:“第一分类”和“第二分类”。您可以重命名或替换这些字段,并添加您想要的任意多个字段。我们发现,文本(格式化,长)字段效果最好。

现在您可以添加服务。从上面的图像中,您可以看到服务有一个标题、摘要(在第一张图的卡片上显示。它们“有资格”被选择,具体取决于最终用户指定的选项,因此需要一组“facet-matches”来指示它们是否与特定选项兼容。它们还有在几个类别中的文本数据,以便能够填充比较表。

使用Drupal服务内容类型创建服务。为每个添加标题和摘要。然后填写您选择的服务段落的文本。

必需:添加一个标题为“帮助”的附加服务,并在每个字段中添加描述该字段应期望的内容的文本。这将由Finder模块用于在比较表的每一行中显示帮助信息。如果未定义帮助服务,则比较表可能不会显示。

提示

  • 您可能希望从该页面上删除所有侧边栏块,以便Finder可以使用整个页面的宽度。
  • “Finder”模块在URL路径/finder上显示。
  • 在/finder上的Finder页面上有一个配置页面,用于编辑标题和其他数据。
  • 查看我们的生产实现:https://finder.research.cornell.edu
  • 您需要配置SMTP模块,以便Finder模块可以发送邮件。
  • 安装仅在根站点上工作,如果在子目录中安装则不会工作。

Drupal 9更改

如果您想使用Drupal 9使用此模块,以下是一些可能有用的注释。

src/Controller/StorageController.php line 231: Call to deprecated method entityManager() of class Drupal. Use Drupal::entityTypeManager() instead in most cases.If the needed method is not on \Drupal\Core\Entity\EntityTypeManagerInterface, see the deprecated \Drupal\Core\Entity\EntityManager to find the correct interface or service. 
The corrected line 231 is:
  $field_config = \Drupal::entityTypeManager()->getStorage('field_config')->load("paragraph" . '.' . "service_paragraphs" . '.' . $machine_name)->toArray();
src/Controller/StorageController.php lines 364, 368:
Call to deprecated function drupal_set_message().
Use Drupal\Core\Messenger\MessengerInterface::addMessage() instead.
Line 364: \Drupal::messenger()->addMessage($this->t('There was a problem sending your message and it was not sent.'), 'error');
Line 368: \Drupal::messenger()->addMessage($this->t('Your message has been sent.')); 

storage.info.yml: 添加 core_version_requirement: ^8 || ^9

For PHP 8: same file, at/nearline 361: implode($facets,",") . becomes implode(",",$facets) .