pixelopen / sulu-reviewbundle
Sulu 的 Google My Business 评论包
Requires
- php: ^8.0
- sulu/sulu: ^2.5
- symfony/config: ^5.0 || ^6.0
- symfony/dependency-injection: ^5.0 || ^6.0
- symfony/framework-bundle: ^5.0 || ^6.0
- symfony/http-foundation: ^5.0 || ^6.0
- symfony/http-kernel: ^5.0 || ^6.0
Requires (Dev)
This package is not auto-updated.
Last update: 2024-09-10 17:25:33 UTC
README
演示
一个用于显示 Sulu CMS 客户评论的包。评论可以自动从 Google My Business 获取。
要求
- PHP >= 8.0
- Composer
- Sulu >= 2.5.*
- Symfony >= 5.4
特性
- 在网站上显示评论
- 设置管理
- 从 Google My Business 获取评论的可能性
安装
安装包
执行以下 composer 命令将包添加到项目的依赖项中
composer require pixelopen/sulu-reviewbundle
启用包
将包添加到项目 config/bundles.php
文件中注册的包列表中启用包
return [ /* ... */ Pixel\ReviewBundle\ReviewBundle::class => ['all' => true], ];
更新模式
使用 doctrine 迁移来完成。
包配置
在 routes_admin.yaml
中定义管理员 API 路由
review.reviews_api: type: rest prefix: /admin/api resource: pixel_review.reviews_route_controller name_prefix: review. review.setting_api: type: rest prefix: /admin/api resource: pixel_review.settings_route_controller name_prefix: review.
使用
添加/编辑评论
转到管理界面中的 "评论" 部分。然后点击 "添加"。填写您需要使用的字段。
以下是字段的列表
- 客户名称(必填)
- 评论日期(必填)
- 评分(必填)
- 消息(必填)
- 从 Google My Business 获取?(只读。允许您知道评论是否自动从 Google 获取)
- 客户图片
完成后,点击 "保存"。
要编辑评论,只需点击要编辑的评论左侧的铅笔。
删除/恢复相册
有两种删除评论的方法
- 勾选要删除的所有评论,然后点击 "删除"。
- 转到评论的详细页面(见上述部分)并点击 "删除"。
在这两种情况下,评论将被放入回收站。
要访问回收站,转到 "设置" 并点击 "回收站"。要恢复评论,请点击左侧的时钟。确认恢复。您将被重定向到您恢复的评论的详细页面。
要永久删除评论,请勾选要删除的所有评论并点击 "删除"。
设置
此包附带设置。以下是可用的不同设置列表
- 总评论数(必填)
- 平均评分(必填)
- 使用 Google 评分?
- 获取 Google 评论?
- 地点 ID
- API 密钥
除非您使用 Google 评分,否则总评论数和平均评分必须手动填写。
"使用 Google 评分?" 选项允许您从 Google 获取总评分和平均评分。如果您想获取评论,请勾选 "获取 Google 评论?" 复选框。
如果您决定使用 Google 的评论信息,您需要填写地点 ID 和 API 密钥。完成这些操作后,运行以下命令
bin/console sync:google:rating
Twig 函数
有几个 twig 函数可以帮助您在网站上使用评论和设置
get_latest_reviews(limit):返回最新的评论。它接受一个参数
- limit:表示要显示的最新评论数。如果没有提供限制,则默认值为 3。
使用示例
<div class="w-full flex flex-row gap-6 justify-between"> {% set reviews = get_latest_reviews(4) %} {% for review in reviews %} <div class="containerAvis bg-white rounded-xl p-6 w-1/4"> {{ review.message|raw }} <h3 class="block text-center text-base font-bold">{{ review.name }} - {{ review.rating }}/5 </h3> </div> {% endfor %} </div>
get_latest_reviews_html(limit):与get_latest_reviews()功能相同,但它渲染一个视图。它接受一个参数。
- limit:表示要显示的最新评论数。如果没有提供限制,则默认值为 3。
使用示例
<div> {{ get_latest_reviews_html(4) }} </div>
reviews_settings():返回该组件的设置。不需要任何参数。
使用示例
{% set reviewsSettings = reviews_settings() %} {% if reviewsSettings is not null %} <div class="noteGoogle"> <p>Note : {{ reviewsSettings.averageRating }}</p> <ul class="star"> <li><img src="{{ asset('/assets/images/noteGoogle/star.svg') }}" alt=""></li> <li><img src="{{ asset('/assets/images/noteGoogle/star.svg') }}" alt=""></li> <li><img src="{{ asset('/assets/images/noteGoogle/star.svg') }}" alt=""></li> <li><img src="{{ asset('/assets/images/noteGoogle/star.svg') }}" alt=""></li> <li><img src="{{ asset('/assets/images/noteGoogle/star.svg') }}" alt=""></li> <li> More than <strong>{{ reviewsSettings.totalRating }}</strong> reviews </li> </ul> </div> {% endif %}
贡献
您可以为此组件做出贡献。您必须做的唯一一件事是尊重我们实施的编码标准。您可以在ecs.php
文件中找到它们。