pixelopen/sulu-reviewbundle

Sulu 的 Google My Business 评论包

2.6.0 2024-05-21 15:58 UTC

This package is not auto-updated.

Last update: 2024-09-10 17:25:33 UTC


README

GitHub release (with filter) Dependency

演示

一个用于显示 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文件中找到它们。