c975l / gift-voucher-bundle
Requires
- php: ^7
- c975l/config-bundle: ^2
- c975l/email-bundle: ^3
- c975l/includelibrary-bundle: ^1
- c975l/payment-bundle: ^3
- c975l/services-bundle: ^1
- c975l/toolbar-bundle: ^1
- cocur/slugify: ^3
- doctrine/doctrine-bundle: ^2
- doctrine/orm: ^2
- endroid/qr-code: ^3
- h4cc/wkhtmltopdf-amd64: ^0
- knplabs/knp-paginator-bundle: ^4
- knplabs/knp-snappy-bundle: ^1
- knplabs/knp-time-bundle: ^1
- symfony/form: *
- symfony/security: *
- twig/twig: ^2
Requires (Dev)
- phpunit/phpunit: ^7
- rector/rector: ^0
- dev-master
- v3.2.1
- v3.2
- v3.1.4.1
- v3.1.4
- v3.1.3
- v3.1.2
- v3.1.1
- v3.1
- v3.0.1
- v3.0
- 2.x-dev
- v2.1.1.2
- v2.1.1.1
- v2.1.1
- v2.1
- v2.0.5
- v2.0.4
- v2.0.3
- v2.0.2
- v2.0.1
- v2.0
- 1.x-dev
- v1.15.5
- v1.15.4.1
- v1.15.4
- v1.15.3.1
- v1.15.3
- v1.15.2
- v1.15.1
- v1.15
- v1.14.2
- v1.14
- v1.13.2
- v1.13.1
- v1.13
- v1.12.1
- v1.12
- v1.11.2
- v1.11.1
- v1.11
- v1.10
- v1.9.3
- v1.9.2
- v1.9.1
- v1.9
- v1.8
- v1.7
- v1.6.1
- v1.6
- v1.5
- v1.4.1
- v1.4
- v1.3
- v1.2
- v1.1
- v1.0.1
- v1.0
- v0.1
- dev-dev
This package is auto-updated.
Last update: 2020-03-04 12:46:22 UTC
README
GiftVoucherBundle 执行以下操作
- 允许创建礼品券请求表单
- 通过 c975LPaymentBundle 与 Stripe 进行接口,用于支付
- 创建礼品券的 PDF 并通过电子邮件发送
- 使用 QrCodeBundle 创建 QR 码
- 允许通过 QR 码使用礼品券,并在之后进行验证
- 与 c975LToolbarBundle 集成
- PDF 和 QR 码不会存储,而是实时创建
- 将销售条款作为 PDF 添加到电子邮件中
安全性由一个四位秘密代码提供,包含在 QR 码中,但不在显示的礼品券标识符中
此捆绑包依赖于 c975LPaymentBundle、Stripe 及其 PHP 库 的使用。因此,您必须有一个 Stripe 账户。
还建议使用 SSL 证书来确保用户的安全。
由于销售条款必须与礼品券一起发送给用户,因此您必须提供一个用于此 PDF 文件的路由或 URL。如果您没有这样的路由,您可以考虑使用 c975LSiteBundle 的预定义模型和 c975LPageEditBundle 的创建 PDF 功能。
您还可以通过使用 Select2 来改善用户在礼品券选择方面的体验。只需通过以下方式将其包含到您的布局中
{# jQuery has to be linked before #} {# In your css block #} {{ inc_lib('select2', 'css', '4.*') }} {# In your javascript block #} {{ inc_lib('select2', 'js', '4.*') }}
捆绑包安装
步骤 1:下载捆绑包
v3.x 与 Symfony 4.x 兼容。使用 v2.x 用于 Symfony 3.x 使用 Composer 安装库
composer require c975l/giftvoucher-bundle
步骤 2:配置捆绑包
检查依赖项以进行配置
- Symfony Mailer
- Doctrine
- KnpPaginatorBundle
- KnpTimeBundle
- QrCodeBundle
- Stripe PHP 库.
- c975LEmailBundle
- c975LPaymentBundle
c975LGiftVoucherBundle 使用 c975L/ConfigBundle 来管理配置参数。使用路由 "/gift-voucher/config" 并具有适当的用户角色来修改它们。
步骤 3:启用路由
然后,通过将它们添加到项目的 /config/routes.yaml
文件中启用路由。
c975_l_giftvoucher: resource: "@c975LGiftVoucherBundle/Controller/" type: annotation prefix: / #Multilingual website use the following #prefix: /{_locale} #defaults: { _locale: '%locale%' } #requirements: # _locale: en|fr|es
步骤 4:创建 MySql 表
您可以使用 php bin/console make:migration
命令来创建迁移文件,具体请参考 Symfony 的 Doctrine 文档,或者使用 /Resources/sql/gift-voucher.sql
来创建 gift_voucher_available
和 gift_voucher_purchased
表。 DROP TABLE
语句已被注释以避免意外删除。
步骤 5:覆盖模板
强烈建议使用 覆盖第三方包模板功能,以完全集成到您的网站上。
为此,只需在您的应用中创建以下结构 /templates/bundles/c975LGiftVoucherBundle/
,然后在其中复制文件 layout.html.twig
,以覆盖现有的 Bundle 文件。
在 layout.html.twig
中,它主要将扩展您的布局并定义特定的变量,例如
{% extends 'layout.html.twig' %} {% block content %} {% block giftVoucher_content %} {% endblock %} {% endblock %}```
然后在您的 layout.html.twig
及其依赖项,如 header.html.twig
、footer.html.twig
、navbar.html.twig
等,您可以使用条件 if display == 'pdf'
或 if display == 'html'
来选择要显示到哪种格式,并保留所有数据在一个地方。
请注意,链接必须是绝对链接,或者其内容必须包含在内,才能导出(见下文)。
路由
可用的不同路由(名称自解释)如下
- giftvoucher_display
- giftvoucher_config
- giftvoucher_create
- giftvoucher_modify
- giftvoucher_duplicate
- giftvoucher_delete
- giftvoucher_dashboard
- giftvoucher_purchased
- giftvoucher_offer
- giftvoucher_offer_all
- giftvoucher_use
- giftvoucher_slug
- giftvoucher_help
- giftvoucher_qrcode
您应使用路由 giftvoucher_offer_all
作为礼品券的入口点。
Twig 扩展
您可以使用以下 Twig 扩展在您的网站上显示礼品券。
gv_offer_button()
此扩展的使用方式有几种
{{ gv_offer_button(GIFTVOUCHER_AVAILABLE_ID) }}
将显示具有默认样式的按钮 {{ gv_offer_button(GIFTVOUCHER_AVAILABLE_ID, 'btn-primary') }}
将显示具有指定样式的按钮 {{ gv_offer_button(GIFTVOUCHER_AVAILABLE_ID, 'WHATEVER_STYLE_YOU_HAVE_DEFINED_IN_CSS') }}
将使用您自己的样式显示按钮
这些代码,以及其他变体,将在为管理员用户显示礼品券时被调用。
gv_offer_link()
您将使用此 Twig 扩展来显示提供礼品券的链接
{{ gv_offer_link(GIFTVOUCHER_AVAILABLE_ID) }}
将显示一个链接
此代码将在为管理员用户显示礼品券时被调用。
gv_view_all()
此 Twig 扩展将创建礼品券的视图。它用于 Resources/views/pages/offerAll.html.twig
模板,由路由 giftvoucher_offer_all
使用。
{{ gv_view_all() }}
将创建包含所有可用礼品券的视图 {{ gv_view_all(NUMBER_OF_GIFTVOUCHERS_TO_DISPLAY) }}
将创建包含指定数量可用礼品券的视图 {{ gv_view_all(NUMBER_OF_GIFTVOUCHERS_TO_DISPLAY, ORDERED_FIELD) }}
将创建包含指定数量可用礼品券的视图,并按指定字段排序。此字段的值为数据库表 gift_voucher_available
的值。您通常使用 id
、object
(默认值)、slug
、amount
。
如果这个项目 帮助您减少了开发时间,您可以通过顶部导航栏的“赞助”按钮来赞助我:)