marco-pm / zencart-instantsearch
Zen Cart 的即时搜索插件
dev-main
2024-03-31 17:08 UTC
Requires
- php: 7.4 - 8.2
Requires (Dev)
- php: 8.0 - 8.2
README
在用户输入时显示自动完成搜索结果。在具有无限滚动的列表页上显示相关搜索结果。
功能
此插件结合使用 MySQL 全文搜索和 LIKE/REGEXP 查询,根据用户查询的相关性快速查找和排序产品、品牌和类别。
通过 Typesense 扩展插件,可以使用 Typesense 替代 MySQL 作为搜索引擎。
结果可以以用户在搜索框中输入时显示的自动完成下拉菜单形式显示,也可以在用户提交搜索表单后以具有可排序产品列表和无限滚动的搜索结果页面显示,从而为经典的 Zen Cart 搜索结果页面提供替代方案。
插件 4.0 版本带来了新的和改进的功能
- 重构搜索类以允许使用不同的搜索引擎(如果搜索引擎不可用,则自动回退到 MySQL)
- 支持使用 Typesense 作为搜索引擎(使用 Typesense 扩展插件)
- 改进了下拉菜单中类别和品牌的显示
- 在产品类别和品牌中搜索
- 使用 React 和 TypeScript 完全重写了下拉和结果页面的 JavaScript 代码
- 改进了下拉菜单的无障碍性和键盘导航
- 各种错误修复和改进
这些增加了版本 3.0 的功能和改进
- 更快速、更好的搜索,包括 MySQL 全文搜索和查询扩展
- 新的附加搜索结果页面,具有可排序的产品列表和无限滚动
- 新的管理员设置,包括控制要搜索的产品字段及其顺序
- 更健壮的下拉自动定位
- 支持 Zen Cart 1.5.8 语言文件和插件升级功能
- 与搜索日志插件的集成
- 包含响应式经典和 Bootstrap 模板文件
- 代码几乎全部重写,删除了 jQuery 依赖,并进行了许多其他改进
没有修改 Zen Cart 核心文件。
先决条件
- Zen Cart 1.5.7 或 1.5.8
- PHP 7.4 至 8.2
安装、使用和常见问题解答
请参阅 readme.html。
故障排除
请参阅 readme.html 中的常见问题解答和故障排除部分。
开发
要从 .tsx 源文件构建 .js 文件,请安装 Node.js 和 NPM,然后运行
npm install
# dropdown:
npm run build-instant_search_dropdown
# results page:
npm run build-instant_search_results
测试
单元和集成测试使用 Zen Cart 1.5.8 的 测试框架。将此存储库中 tests 目录的内容放在 /not_for_release/testFramework 下。
使用以下命令运行测试
php phpunit --configuration phpunit_instantsearch.xml