mango-chutney / craft-raisely-donation-forms
一个字段插件,用于从Craft CMS内容中获取并嵌入Raisely捐赠表单。
Requires
- php: >=8.0.2
- craftcms/cms: ^4.4.15
Requires (Dev)
- craftcms/ecs: dev-main
- craftcms/phpstan: dev-main
README
一个字段插件,用于获取Raisely捐赠数据并在您的Craft CMS内容中嵌入表单。
安装
此插件需要Craft CMS 4.4.15或更高版本,以及PHP 8.0.2或更高版本。
- 要安装,请从您的Craft项目中的插件商店访问,或使用以下命令:
composer require mango-chutney/craft-raisely-donation-forms
- 在控制面板中,转到 设置 → 插件,然后单击Raisely捐赠表单的“安装”按钮,或运行
php craft plugin/install raisely-donation-forms
用法
字段
- 在您的CMS设置中添加您的Raisely API密钥,或创建一个包含以下内容的
config/raisely-donation-forms.php文件:
'raiselyApiKey' => 'RAISELY_API_KEY'
您可以在活动侧导航中的设置 > API & Webhooks中找到您的API密钥。任何活动的API密钥都可以用于您的整个Raisely帐户
- 创建一个Raisely捐赠表单字段并选择一个表单
如果下拉菜单中列出的活动与您的Raisely帐户中的活动不匹配,请使用“刷新活动”按钮
- 使用
{{ entry.yourField.renderForm() }}在您的模板中嵌入表单
默认情况下,Raisely表单的初始高度为800px,这可能导致不希望的布局变化。要修复此问题,您可以传递一个高度变量{{ entry.yourField.renderForm(400) }}。
使用{{ entry.yourField.isEmpty() }}检查字段是否已填充
或使用{{ entry.yourField.getDonations() }}获取活动捐赠,这将返回一个数组,您可以使用类似以下方式循环显示捐赠:
{% for item in entry.yourField.getDonations() %}
{{ item.anonymous == true ? 'Anonymous' : item.firstName }} donated {{ item.publicAmount|currency }}
{% endfor %}
默认情况下,获取的捐赠数量限制为10,但您可以在config/raisely-donation-forms.php文件中的donationLimit设置中更改此限制,或通过传递限制变量entry.yourField.getDonations(5) - 当前没有分页,因此结果将限制为API结果的首页。
使用sort和order变量可以更改获取的捐赠的排序顺序,例如entry.yourField.getDonations(10, 'date', 'asc')将返回10笔最旧的捐赠,或entry.yourField.getDonations(5, 'amount', 'desc')将返回5笔最大的捐赠。
可以在Raisely API文档中找到可用数据的参考。注意:不会获取私人数据
变量
如果您愿意,可以使用不带字段的Raisely活动路径直接在模板中使用renderForm()和getDonations()变量,而无需API密钥(如果您不使用getDonations())。
{{ craft.raisely.renderForm('campaign-path') }}
or
{{ craft.raisely.getDonations('campaign-path') }}
这两个函数与字段对应函数的工作方式相同。
缓存
表单和捐赠分别缓存1周和6小时,以避免过多地进行API调用,并提高用户体验 - 如果没有捐赠缓存,每次模板加载时都会进行调用,导致页面加载时间更长。
如果您需要调整缓存时间,您可以在config/raisely-donation-forms.php文件中使用以下设置:
'campaignCacheDuration' => 604800, 'donationCacheDuration' => 21600
您可以通过转到Craft控制面板的工具 → 清除缓存或使用以下命令来清除缓存:
php craft clear-caches/raisely-campaigns
和
php craft clear-caches/raisely-donations