ycloudyusa / yusaopeny_activity_finder
美国Y开放活动查找器
Replaces
- drupal/openy_activity_finder: *
- ymcatwincities/openy_activity_finder: *
- 5.x-dev
- 5.1.2
- 5.1.1
- 5.1.0
- 5.0.5
- 5.0.4
- 5.0.3
- 5.0.2
- 5.0.1
- 5.0.0
- 4.x-dev
- 4.6.2
- 4.6.1
- 4.6.0
- 4.5.1
- 4.5.0
- 4.4.0
- 4.4.0-rc1
- 4.3.1
- 4.3.0
- 4.2.x-dev
- 4.2.10
- 4.2.9
- 4.2.8
- 4.2.7
- 4.2.6
- 4.2.5
- 4.2.4
- 4.2.3
- 4.2.2
- 4.2.1
- 4.2.0
- 4.1.22
- 4.1.21
- 4.1.20
- 4.1.19
- 4.1.18
- 4.1.17
- 4.1.16
- 4.1.15
- 4.1.14
- 4.1.13
- 4.1.12
- 4.1.11
- 4.1.10
- 4.1.9
- 4.1.8
- 4.1.7
- 4.1.6
- 4.1.5
- 4.1.4
- 4.1.3
- 4.1.2
- 4.1.1
- 4.1.0
- 4.0.10
- 4.0.9
- 4.0.8
- 4.0.7
- 4.0.6
- 4.0.5
- 4.0.4
- 4.0.3
- 4.0.2
- 4.0.1
- 4.0.0
- 3.x-dev
- 3.1.1
- 3.1.0
- 3.0.0
- dev-snyk-upgrade-9e2e3ee90e2e59b2f5800b99bdacdc3f
- dev-snyk-upgrade-864503f0ef9c95f7d23be1188260b3a9
- dev-snyk-upgrade-ea69c0951928165ff1fa83a4105ce8b0
- dev-snyk-upgrade-5dcb2aed322ea581a9a0f97cfb1f4814
- dev-snyk-upgrade-33784e1ecf8741011e8b810dba7ddfe7
- dev-snyk-upgrade-1e4f8a7d74a34471d63b5c4fd1728440
- dev-snyk-upgrade-ccefc733344eb56b92569ed3f15becbb
- dev-snyk-upgrade-79bd26da0ce8daff9798736339cc1b43
- dev-snyk-upgrade-5f66347641357ce333de56ca5e01ecac
- dev-snyk-upgrade-8f50ed61c05526c86af518210403af84
- dev-snyk-upgrade-3b4488d68e6ddcae95d3d5066a5221e7
- dev-4.x-demo
- dev-9.x-3.x
This package is auto-updated.
Last update: 2024-08-26 08:44:41 UTC
README
要求
此模块需要以下模块
- openy_map(用于获取与位置相关的内容类型列表。)
此模块还需要以下之一来存储数据
- 一个Solr服务器(最好是每个环境一个服务器或索引)。
- 一个可以访问Daxko API的订阅。
推荐模块
活动查找器通常与同步器一起使用,以从外部源获取数据。
安装
活动查找器版本4是当前的主要版本。在9.2.10.0
之前,分发需要^3.1 || ^4.0
,允许您根据项目需求选择要使用的版本。
弃用
过时的实现不会立即删除,允许您更新项目并将迁移到新组件而不会破坏您的网站。它们将在下一个版本中标记为[已弃用]
通知,并计划在未来版本中删除。
新项目
按照您通常安装贡献的Drupal模块的方式进行安装。有关更多信息,请参阅安装Drupal模块。
新项目应启用
- 活动查找器(
openy_activity_finder
)
然后选择一个或两个前端
- LB(布局构建器)活动查找器(
lb_activity_finder
) - Open Y段落活动查找器(
openy_prgf_activity_finder_4
)
最后启用以下数据存储之一
- 搜索API Solr(
search_api_solr
) - Daxko API v2集成(
openy_daxko2
)
现有项目
您可以选择保留您使用的同一版本或更新到下一个版本。这取决于您项目的要求和定制。如果您有资源,我们建议更新到最新版本。
从3.x版本更新到4.x版本
活动查找器是一个复杂的功能,它连接了许多不同的组件,可能需要额外的步骤才能使其正常工作。以下列表概述了将活动查找器更新到版本4的主要步骤。
- 使用composer命令更新代码库:
composer require ycloudyusa/yusaopeny_activity_finder:"^4.0"
- 运行数据库更新
drush -y updb
。- 验证没有错误且更新顺利。
- 安装新的“Open Y段落活动查找器”(
openy_prgf_activity_finder_4
):drush en openy_prgf_activity_finder_4
- 创建或更新现有着陆页并包含活动查找器。
- 添加活动查找器段落(替换已弃用的段落),配置它并保存页面。
- 验证页面和活动查找器功能正常工作。
- 之前版本的活动查找器使用了2个着陆页和2个段落类型 - 一个用于向导,另一个用于结果。找到并删除这些页面。
- 卸载“OpenY段落活动查找器”(
openy_prgf_activity_finder
)。 - 卸载“OpenY段落活动查找器搜索”(
openy_paragraph_activity_finder_search
)。
配置
设置Solr
为了安装Solr - 请查看Drupal.org上的文档:点击此处查看文档.
在启用上述模块后,您应该访问 /admin/config/search/search-api
并从Open Y Solr服务器设置中获取预配置的config.zip
此配置应作为独立的核心安装到您的Solr服务器上。它应提取到solr核心的conf目录中
一旦完成 - 确保将core.properties文件中您的核心名称添加到Open Y的Solr服务器配置中
在/admin/config/search/search-api的下拉菜单中可以找到Solr服务器配置
如果您喜欢drush配置,可以使用以下命令,只需将SOLR_CORE_IS_HERE替换为实际的核心名称即可
drush cset -y search_api.server.solr backend_config.connector_config.host 127.0.0.1 -y
drush cset -y search_api.server.solr backend_config.connector_config.core ${SOLR_CORE_IS_HERE} -y
drush search-api:reset-tracker
drush search-api:index
完成此操作后,您应该在/admin/config/search/search-api
上看到Solr服务器作为索引已启用
如果您已使用演示内容安装了Open Y,现在是时候创建一个带有Activity Finder v4组件的着陆页了。
在Open Y中,我们有一个专门创建的模块可以为您完成这项工作
使用drush命令启用openy_prgf_af4_demo
drush en openy_prgf_af4_demo
当您访问它时。通过访问/activity-finder-v4?step=results或单击建议的按钮,您应该看到结果、具有过滤器的活动以及其他所有功能,这些都是Activity Finder v4附带的功能。对于来自OpenY的演示内容,它应如下所示
设置受信任的重定向主机模式
活动查找器具有跟踪重定向到第三方系统的功能。为了控制要重定向到的URL,您应使用受信任的主机模式。此功能与Drupal核心trusted_host_patterns设置类似。
示例 - 将此部分添加到settings.php
// Trusted hosts to redirect to for Activity Finder.
$settings['activity_finder_trusted_redirect_host_patterns'] = [
'^apm\.activecommunities\.com$',
];
还建议在robots.txt中禁止这些路径
# Activity Finder redirects
Disallow: /af/register-redirect/
Disallow: /index.php/af/register-redirect/
添加活动查找器块
有关如何将块添加到您的页面以及块选项的信息,请参阅活动查找器的完整文档
故障排除 & 常见问题解答
要演示活动查找器,请参阅以下沙盒
- 活动查找器v4
- 活动查找器v3
使用Daxko后端时的限制
在使用Daxko后端时,开发者应了解以下限制:
- 在启动屏幕上无法使用主分支功能。
- 必须使用旧版模式。
- 无法在年龄向导步骤中显示每个年龄的结果数量。
- 在用户点击活动详情之前,无法显示每个活动的可用位置数量。
- 结果页面上的分页功能有限。我们只能显示上一页和下一页链接,无法显示页数。
如何在活动查找器中覆盖processResults
参见openy_activity_finder.api.php
/** * Implements hook_activity_finder_program_process_results_alter(). */ function custom_module_activity_finder_program_process_results_alter(&$data, NodeInterface $entity) { // Get formatted session data from some custom service. $formatted_session = \Drupal::service('ymca_class_page.data_provider') ->formatSessions([$entity], FALSE); $formatted_session = reset($formatted_session); // Fix pricing according to YMCA price customization. $data['price'] = ''; if (!empty($formatted_session['prices'])) { foreach ($formatted_session['prices'] as $price) { $data['price'] .= implode(' ', $price) . '<br>'; } } // Fix availability and registration according to YMCA customization. $messages = [ 'begun' => t('This class has begun.'), 'will_open' => t('Registration for this class opens shortly. Please check back.'), 'inperson' => t('Online registration is closed. Visit a YMCA branch to register.'), 'included_in_membership' => t('Included in Membership'), ]; if (isset($messages[$formatted_session['reg_state']])) { $data['availability_note'] = $messages[$formatted_session['reg_state']]; } }
如何向分析事件添加外部功能
参见openy_af4_vue_app/main.js
// Listen to a custom event to pass events in Google Analytics. document.addEventListener('openy_activity_finder_event', (e) => { const { action, label, value, category } = e.detail if (window.gtag) { window.gtag('event', action, { event_category: category, event_label: label, value: value }) } else if (window.ga) { window.ga('send', 'event', category, action, label, value) } })
自定义事件的示例
document.addEventListener('openy_activity_finder_event', (e) => { const { action, label, value, category } = e.detail // Properties you can use for analitics. ... { your_functionality } ... })
在结果之间添加自定义组件
这为开发者提供了在结果渲染方面的灵活性
<ResultsList
:results="data.table"
:ages="ages"
:selected-ages="selectedAges"
:legacy-mode="legacyMode"
:disable-spots-available="disableSpotsAvailable"
@showActivityDetailsModal="showActivityDetailsModal($event)"
/>
可以改为这个
<ResultsList
:results="data.table.slice(0, 2)"
:ages="ages"
:selected-ages="selectedAges"
:legacy-mode="legacyMode"
:disable-spots-available="disableSpotsAvailable"
@showActivityDetailsModal="showActivityDetailsModal($event)"
/>
<YGBWAds />
<ResultsList
:results="data.table.slice(2)"
:ages="ages"
:selected-ages="selectedAges"
:legacy-mode="legacyMode"
:disable-spots-available="disableSpotsAvailable"
@showActivityDetailsModal="showActivityDetailsModal($event)"
/>
其中YGBWAds是自定义组件,用于在结果之间渲染自定义内容。参见ymcatwincities#148