codecraft / silverstripe-pathfinder
通过一系列问题和答案引导访客访问由分类术语标记的内容
0.1.x-dev
2022-08-09 05:26 UTC
Requires
- silverstripe/admin: ^1.0
- silverstripe/framework: ^4.0
- silverstripe/taxonomy: ^2.0
Requires (Dev)
- phpunit/phpunit: ^5.7
- squizlabs/php_codesniffer: ^3.0
Suggests
- symbiote/silverstripe-gridfieldextensions: Allows for questions, answers, and choices to be sorted
- 0.1.x-dev
- dev-dependabot/npm_and_yarn/express-4.18.2
- dev-dependabot/npm_and_yarn/qs-6.5.3
- dev-dependabot/npm_and_yarn/decode-uri-component-0.2.2
- dev-dependabot/npm_and_yarn/minimatch-3.0.8
- dev-dependabot/npm_and_yarn/async-2.6.4
- dev-dependabot/npm_and_yarn/nth-check-2.0.1
- dev-dependabot/npm_and_yarn/tmpl-1.0.5
- dev-dependabot/npm_and_yarn/path-parse-1.0.7
- dev-dependabot/npm_and_yarn/ws-5.2.3
- dev-dependabot/npm_and_yarn/hosted-git-info-2.8.9
- dev-dependabot/npm_and_yarn/ssri-6.0.2
This package is auto-updated.
Last update: 2024-09-13 20:21:06 UTC
README
简介
此模块允许CMS用户创建一系列问题和答案,然后通过标签(分类)建议内容给访客,充当站点的路径引导器。
需求
查看composer.json中的"require"部分
依赖于silverstripe/silverstripe-taxonomy
功能
- 创建问题和答案的路径,完成后建议用户内容
- 自定义路径引导内容
- 简介文字
- 找到结果文字
- 没有找到结果文字
- 支持文字(显示在结果页面上)
- 通过给页面标记分类术语来控制内容建议
- 答案可以是单选或多项选择
- 问题可以组织在流程中,使CMS使用更加简单,并多样化路径逻辑
- 路径引导器可以作为页面创建或添加到现有模型的扩展中
- 当用户从部分完成的路径引导器中导航离开时,用户进度会被保留
- 提供多种和可定制的进度存储类型
- 提供简码以帮助作者创建路径引导内容
- 可以通过扩展进行自定义
安装
composer require codecraft/silverstripe-pathfinder
配置
进度存储
路径引导器使用ProgressStore
来动态跟踪用户的进度。这是路径引导器知道用户在哪个路径上的方式,基于他们答案的顺序。
默认的ProgressStore是SessionProgressStore
,并将进度存储在用户的PHP会话中。
要更改会话存储,更新ProgressStore
注入器配置,分配所需的进度存储类的class
SilverStripe\Core\Injector\Injector: CodeCraft\Pathfinder\Model\Store\ProgressStore: class: CodeCraft\Pathfinder\Model\Store\SessionProgressStore
可用的进度存储
CodeCraft\Pathfinder\Model\Store\SessionProgressStore
- (默认) 将进度存储在PHP会话中。 在用户会话过期时过期CodeCraft\Pathfinder\Model\Store\RequestVarProgressStore
- 将进度存储在编码的URL请求变量中。 在URL请求变量被丢弃时过期CodeCraft\Pathfinder\Model\Store\LocalStorageProgressStore
- 将进度存储在本地存储中。 在本地存储被清除时过期
创建自定义进度存储
可以通过继承CodeCraft\Pathfinder\Model\Store\ProgressStore
并修改Injector
配置来创建自定义进度存储。
示例子类
<?php use CodeCraft\Pathfinder\Model\Store\ProgressStore; /** * My custom progress store */ class MyProgressStore extends ProgressStore {}
示例Injector
配置
SilverStripe\Core\Injector\Injector: CodeCraft\Pathfinder\Model\Store\ProgressStore: class: MyProgressStore
这与dnadesign/silverstripe-elemental-decisiontree一样吗?
主要区别
- 路径引导器可以用作页面
- CMS用户不需要为每个答案分配建议(路径引导器使用按分类术语标记的内容的建议模式)
版本控制
此库遵循Semver。根据Semver,您将能够升级到该库的任何次要或补丁版本,而不会对公共API造成破坏性更改。Semver还要求我们明确定义该库的公共API。
所有公开可见的方法都是公共API的一部分。其他所有方法都不是公共API的一部分。在可能的情况下,我们会尝试在小的/补丁版本中保持受保护的方法向后兼容,但如果您正在重写方法,请在升级之前测试您的作品。
问题报告
请为发现的任何错误或缺少的功能创建一个问题。
鸣谢
- 初始概念由James Ford和Stephen Makrogianni提出。