devkokov / craft3-ticketsolve
Requires
- ext-simplexml: *
- craftcms/cms: ^3.0.0-RC1
This package is auto-updated.
Last update: 2020-01-20 17:44:50 UTC
README
此插件将从Ticketsolve XML源拉取场馆、演出和活动,并在您的Craft网站上存储以方便访问。
自动同步功能将每15分钟同步一次,使您的网站与Ticketsolve保持同步。您还可以通过点击按钮手动同步。
新增了一种名为“Ticketsolve演出”的字段类型,允许您将演出与网站条目相关联。
控制面板中的Ticketsolve部分允许您浏览已导入网站的所有场馆、演出和活动。
Twig扩展允许在模板中轻松集成场馆、演出和活动。
注意:这不是官方的Ticketsolve插件。
要求
此插件需要
- Craft CMS 3.0.0-beta.23或更高版本;
- PHP的SimpleXML扩展;
安装
要安装插件,请按照以下说明操作。
-
打开您的终端并转到您的Craft项目
cd /path/to/project -
然后告诉Composer加载插件
composer require burnthebook/craft3-ticketsolve -
在控制面板中,转到设置→插件,然后点击Ticketsolve的“安装”按钮。
配置Ticketsolve
在控制面板中,转到设置→Ticketsolve,并输入您的Ticketsolve XML源URL。
启用自动同步或,对于高级用户,在您的服务器上创建一个cron作业。见同步。
如果使用自动同步,请注意,初始同步将在启用自动同步后15分钟发生。
要手动触发同步,请转到控制面板→Ticketsolve并点击“立即同步”按钮。
演出字段
插件添加了一个名为“Ticketsolve演出”的新关系字段类型,允许您将演出添加到Craft的条目中。
{% set shows = entry.showsFieldHandle.all() %}
{% for show in shows %}
{{ show.name }}
{% endfor %}
见演出以了解每个演出的全部属性。
场馆
{% set venues = craft().ticketsolve.venues().all() %}
{% for venue in venues %}
{{ venue.name }}
{% endfor %}
参数
craft().ticketsolve.venues()返回一个支持Craft标准查询参数(排序、排序、限制等)的查询对象,以及以下新参数
venueRef()- 通过venueRef(Ticketsolve的场馆ID)过滤结果。接受一个整数。name()- 通过名称过滤结果。接受一个字符串。excludeVenueRefs()- 从结果中排除某些venueRefs。接受一个整数数组。
属性
场馆元素具有以下属性
id- Craft的场馆ID。注意这与Ticketsolve的场馆ID不同。venueRef- Ticketsolve的场馆ID。name- 场馆的名称/标题。shows- 返回一个针对该场馆的演出查询对象,预先过滤了演出信息。请参阅演出。
演出
{% set shows = craft().ticketsolve.shows().all() %}
{% for show in shows %}
{{ show.name }}
{% endfor %}
参数
craft().ticketsolve.shows() 返回一个查询对象,支持Craft的标准查询参数,用于排序、排序、限制,以及以下新参数
showRef()- 通过showRef(Ticketsolve的演出ID)过滤结果。接受整数。name()- 通过名称过滤结果。接受一个字符串。eventCategory()- 通过活动类别过滤结果。接受字符串。productionCompanyName()- 通过制作公司名称过滤结果。接受字符串。venueId()- 通过venueId过滤结果。注意这与Ticketsolve的场馆ID不同。接受整数。excludeShowRefs()- 排除某些showRefs的结果。接受整数数组。tags()- 通过特定标签过滤结果。接受字符串数组(标签名称)。
属性
演出元素具有以下属性
-
id- Craft的演出ID。注意这与Ticketsolve的演出ID不同。 -
venueId- 关联场馆的Craft场馆ID。注意这与Ticketsolve的场馆ID不同。 -
showRef- Ticketsolve的演出ID。 -
name- 演出的名称/标题。 -
description- 演出的描述。通常包含HTML标记。 -
eventCategory- 与此演出关联的单个类别名称。 -
productionCompanyName- 制作公司的名称。 -
priority- 优先级编号。 -
url- 在Ticketsolve上显示的演出页面URL。 -
version- Ticketsolve中的版本号。 -
tags- 返回标签数组。每个标签都有作为属性的id和name。 -
venue- 返回与演出关联的场馆。请参阅场馆。 -
events- 返回针对此演出的事件的查询对象,预先过滤了事件信息。请参阅事件。 -
images- 包含以下结构的图像数组[ [ 'large' => 'https://exmaple.com/image1.jpg', 'medium' => 'https://exmaple.com/image2.jpg', 'thumb' => 'https://exmaple.com/image3.jpg' ], [ 'large' => 'https://exmaple.com/image4.jpg', 'medium' => 'https://exmaple.com/image5.jpg', 'thumb' => 'https://exmaple.com/image6.jpg' ] ]
事件
{% set events = craft().ticketsolve.events().all() %}
{% for event in events %}
{{ event.name }}
{% endfor %}
参数
craft().ticketsolve.events() 返回一个查询对象,支持Craft的标准查询参数,用于排序、排序、限制,以及以下新参数
eventRef()- 通过eventRef(Ticketsolve的事件ID)过滤结果。接受整数。name()- 通过名称过滤结果。接受一个字符串。eventStatus()- 通过事件状态过滤结果。接受字符串。showId()- 通过showId过滤结果。注意这与Ticketsolve的演出ID不同。接受整数。excludeEventRefs()- 排除某些eventRefs的结果。接受整数数组。
属性
事件元素具有以下属性
-
id- Craft的事件ID。注意这与Ticketsolve的事件ID不同。 -
showId- 关联演出的Craft演出ID。注意这与Ticketsolve的演出ID不同。 -
eventRef- Ticketsolve的事件ID。 -
name- 事件的名称/标题。 -
dateTime- 事件日期和时间的DateTime对象。 -
openingTime- 事件开放日期和时间的DateTime对象。 -
onSaleTime- 事件售票日期和时间的DateTime对象。 -
duration- 表示事件持续时间的分钟数整数。 -
available- 表示可用空间的整数值。 -
capacity- 表示活动容量(空间数量)的整数值。 -
venueLayout- 描述场地布局的字符串。 -
comment- 包含任何注释的字符串。 -
url- Ticketsolve 上的活动页面 URL。 -
status- 活动状态,例如 "available"。 -
fee- 交易费用,例如 "0.5"。 -
feeCurrency- 3位货币代码,例如 "GBP"。 -
maximumTickets- 表示每笔交易允许的最大票数整数值。 -
show- 返回与活动相关联的演出。见 演出。 -
venue- 返回与活动相关联的场地。见 场地。 -
prices- 具有以下结构的价格数组[ [ 'type' => 'Standard', 'facePrice' => [ 'value' => 5.5, 'currency' => 'GBP' ], 'sellingPrice' => [ 'value' => 5, 'currency' => 'GBP' ] ], [ 'type' => 'Premium', 'facePrice' => [ 'value' => 8.5, 'currency' => 'GBP' ], 'sellingPrice' => [ 'value' => 8, 'currency' => 'GBP' ] ] ]
同步
该插件包含一个自动同步选项,每大约15分钟通过伪cron作业自动从XML源同步。
为了更稳健的同步,您可以在插件设置中禁用自动同步,并使用以下Craft控制台命令从适当的服务器cron作业触发它
craft ticketsolve/feed/sync
由 Burnthebook 提供