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 提供