From c70c826b4b95eddd34e99221ea5bf1d982856cb0 Mon Sep 17 00:00:00 2001 From: Josh Crawford Date: Tue, 31 May 2022 21:40:52 +1000 Subject: [PATCH 1/3] docs --- docs/developers/events.md | 18 ++- docs/getting-elements/event-queries.md | 116 +++++++++--------- .../purchased-ticket-queries.md | 88 ++++++------- docs/getting-elements/ticket-queries.md | 74 +++++------ 4 files changed, 151 insertions(+), 145 deletions(-) diff --git a/docs/developers/events.md b/docs/developers/events.md index f398ea5..dd8b4a8 100644 --- a/docs/developers/events.md +++ b/docs/developers/events.md @@ -41,10 +41,11 @@ Event::on(Pdf::class, Pdf::EVENT_AFTER_RENDER_PDF, function(PdfEvent $event) { Plugins can get notified before an event is saved. Event handlers can prevent the event from getting saved by setting `$event->isValid` to false. ```php +use craft\events\ModelEvent; use verbb\events\elements\Event as EventElement; use yii\base\Event; -Event::on(EventElement::class, EventElement::EVENT_BEFORE_SAVE, function(Event $event) { +Event::on(EventElement::class, EventElement::EVENT_BEFORE_SAVE, function(ModelEvent $event) { $isNew = $event->isNew; $eventElement = $event->sender; $event->isValid = false; @@ -56,10 +57,11 @@ Event::on(EventElement::class, EventElement::EVENT_BEFORE_SAVE, function(Event $ Plugins can get notified after an event has been saved ```php +use craft\events\ModelEvent; use verbb\events\elements\Event as EventElement; use yii\base\Event; -Event::on(EventElement::class, EventElement::EVENT_AFTER_SAVE, function(Event $event) { +Event::on(EventElement::class, EventElement::EVENT_AFTER_SAVE, function(ModelEvent $event) { $isNew = $event->isNew; $eventElement = $event->sender; }); @@ -132,10 +134,11 @@ Event::on(EventTypes::class, EventTypes::EVENT_AFTER_SAVE_EVENTTYPE, function(Ev Plugins can get notified before a ticket is saved. Event handlers can prevent the ticket from getting saved by setting `$event->isValid` to false. ```php +use craft\events\ModelEvent; use verbb\events\elements\Ticket; use yii\base\Event; -Event::on(Ticket::class, Ticket::EVENT_BEFORE_SAVE, function(Event $event) { +Event::on(Ticket::class, Ticket::EVENT_BEFORE_SAVE, function(ModelEvent $event) { $isNew = $event->isNew; $ticket = $event->sender; $event->isValid = false; @@ -147,10 +150,11 @@ Event::on(Ticket::class, Ticket::EVENT_BEFORE_SAVE, function(Event $event) { Plugins can get notified after a ticket has been saved ```php +use craft\events\ModelEvent; use verbb\events\elements\Ticket; use yii\base\Event; -Event::on(Ticket::class, Ticket::EVENT_AFTER_SAVE, function(Event $event) { +Event::on(Ticket::class, Ticket::EVENT_AFTER_SAVE, function(ModelEvent $event) { $isNew = $event->isNew; $ticket = $event->sender; }); @@ -251,10 +255,11 @@ Event::on(EventElement::class, EventElement::EVENT_AFTER_CAPTURE_EVENT_SNAPSHOT, Plugins can get notified before a purchased ticket is saved. Event handlers can prevent the purchased ticket from getting saved by setting `$event->isValid` to false. ```php +use craft\events\ModelEvent; use verbb\events\elements\PurchasedTicket; use yii\base\Event; -Event::on(PurchasedTicket::class, PurchasedTicket::EVENT_BEFORE_SAVE, function(Event $event) { +Event::on(PurchasedTicket::class, PurchasedTicket::EVENT_BEFORE_SAVE, function(ModelEvent $event) { $isNew = $event->isNew; $purchasedTicket = $event->sender; $event->isValid = false; @@ -266,10 +271,11 @@ Event::on(PurchasedTicket::class, PurchasedTicket::EVENT_BEFORE_SAVE, function(E Plugins can get notified after a purchased ticket has been saved ```php +use craft\events\ModelEvent; use verbb\events\elements\PurchasedTicket; use yii\base\Event; -Event::on(PurchasedTicket::class, PurchasedTicket::EVENT_AFTER_SAVE, function(Event $event) { +Event::on(PurchasedTicket::class, PurchasedTicket::EVENT_AFTER_SAVE, function(ModelEvent $event) { $isNew = $event->isNew; $purchasedTicket = $event->sender; }); diff --git a/docs/getting-elements/event-queries.md b/docs/getting-elements/event-queries.md index ce5a800..ba01ccc 100644 --- a/docs/getting-elements/event-queries.md +++ b/docs/getting-elements/event-queries.md @@ -66,7 +66,7 @@ Possible values include: | a [DateTime](http://php.net/class.datetime) object | that were posted after the date represented by the object. ::: code -```twig +```twig Twig {# Fetch events posted this month #} {% set firstDayOfMonth = date('first day of this month') %} @@ -75,7 +75,7 @@ Possible values include: .all() %} ``` -```php +```php PHP // Fetch events posted this month $firstDayOfMonth = new \DateTime('first day of this month'); @@ -92,14 +92,14 @@ $events = \verbb\events\elements\Event::find() Clears out the [status()](https://docs.craftcms.com/api/v3/craft-elements-db-elementquery.html#method-status) and [enabledForSite()](https://docs.craftcms.com/api/v3/craft-elements-db-elementquery.html#method-enabledforsite) parameters. ::: code -```twig +```twig Twig {# Fetch all events, regardless of status #} {% set events = craft.events.events() .anyStatus() .all() %} ``` -```php +```php PHP // Fetch all events, regardless of status $events = \verbb\events\elements\Event::find() ->anyStatus() @@ -114,14 +114,14 @@ $events = \verbb\events\elements\Event::find() Causes the query to return matching events as arrays of data, rather than [Event](docs:developers/event) objects. ::: code -```twig +```twig Twig {# Fetch events as arrays #} {% set events = craft.events.events() .asArray() .all() %} ``` -```php +```php PHP // Fetch events as arrays $events = \verbb\events\elements\Event::find() ->asArray() @@ -143,7 +143,7 @@ Possible values include: | a [DateTime](http://php.net/class.datetime) object | that were posted before the date represented by the object. ::: code -```twig +```twig Twig {# Fetch events posted before this month #} {% set firstDayOfMonth = date('first day of this month') %} @@ -152,7 +152,7 @@ Possible values include: .all() %} ``` -```php +```php PHP // Fetch events posted before this month $firstDayOfMonth = new \DateTime('first day of this month'); @@ -169,14 +169,14 @@ $events = \verbb\events\elements\Event::find() Narrows the query results to only events that have been purchased by a customer. ::: code -```twig +```twig Twig {# Fetch events that have been purchased by a customer #} {% set events = craft.events.events() .customer(craft.commerce.getCarts().getCart().customer) .all() %} ``` -```php +```php PHP // Fetch events that have been purchased by a customer $events = \verbb\events\elements\Event::find() ->customer($customer) @@ -199,7 +199,7 @@ Possible values include: | `['and', '>= 2018-04-04', '< 2018-05-01']` | that were created between 2018-04-01 and 2018-05-01. ::: code -```twig +```twig Twig {# Fetch events created last month #} {% set start = date('first day of last month') | atom %} {% set end = date('first day of this month') | atom %} @@ -209,7 +209,7 @@ Possible values include: .all() %} ``` -```php +```php PHP // Fetch events created last month $start = new \DateTime('first day of next month')->format(\DateTime::ATOM); $end = new \DateTime('first day of this month')->format(\DateTime::ATOM); @@ -235,7 +235,7 @@ Possible values include: | `['and', '>= 2018-04-04', '< 2018-05-01']` | that were updated between 2018-04-01 and 2018-05-01. ::: code -```twig +```twig Twig {# Fetch events updated in the last week #} {% set lastWeek = date('1 week ago')|atom %} @@ -244,7 +244,7 @@ Possible values include: .all() %} ``` -```php +```php PHP // Fetch events updated in the last week $lastWeek = new \DateTime('1 week ago')->format(\DateTime::ATOM); @@ -269,7 +269,7 @@ Possible values include: | `['and', '>= 2018-04-04', '< 2018-05-01']` | that has an end date between 2018-04-01 and 2018-05-01. ::: code -```twig +```twig Twig {# Fetch events finishing after today #} {% set end = date('today') | atom %} @@ -278,7 +278,7 @@ Possible values include: .all() %} ``` -```php +```php PHP // Fetch events created last month $end = new \DateTime('today')->format(\DateTime::ATOM); @@ -303,7 +303,7 @@ Possible values include: | `['and', '>= 2020-04-04', '< 2020-05-01']` | that will expire between 2020-04-01 and 2020-05-01. ::: code -```twig +```twig Twig {# Fetch events expiring this month #} {% set nextMonth = date('first day of next month')|atom %} @@ -312,7 +312,7 @@ Possible values include: .all() %} ``` -```php +```php PHP // Fetch events expiring this month $nextMonth = new \DateTime('first day of next month')->format(\DateTime::ATOM); @@ -329,7 +329,7 @@ $events = \verbb\events\elements\Event::find() Causes the query results to be returned in the order specified by [id](#id). ::: code -```twig +```twig Twig {# Fetch events in a specific order #} {% set events = craft.events.events() .id([1, 2, 3, 4, 5]) @@ -337,7 +337,7 @@ Causes the query results to be returned in the order specified by [id](#id). .all() %} ``` -```php +```php PHP // Fetch events in a specific order $events = \verbb\events\elements\Event::find() ->id([1, 2, 3, 4, 5]) @@ -374,14 +374,14 @@ Possible values include: | `['not', 1, 2]` | not with an ID of 1 or 2. ::: code -```twig +```twig Twig {# Fetch the event by its ID #} {% set event = craft.events.events() .id(1) .one() %} ``` -```php +```php PHP // Fetch the event by its ID $event = \verbb\events\elements\Event::find() ->id(1) @@ -400,14 +400,14 @@ This can be combined with [fixedOrder](#fixedorder) if you want the results to b Causes the query results to be returned in reverse order. ::: code -```twig +```twig Twig {# Fetch events in reverse #} {% set events = craft.events.events() .inReverse() .all() %} ``` -```php +```php PHP // Fetch events in reverse $events = \verbb\events\elements\Event::find() ->inReverse() @@ -422,14 +422,14 @@ $events = \verbb\events\elements\Event::find() Determines the number of events that should be returned. ::: code -```twig +```twig Twig {# Fetch up to 10 events #} {% set events = craft.events.events() .limit(10) .all() %} ``` -```php +```php PHP // Fetch up to 10 events $events = \verbb\events\elements\Event::find() ->limit(10) @@ -444,14 +444,14 @@ $events = \verbb\events\elements\Event::find() Determines how many events should be skipped in the results. ::: code -```twig +```twig Twig {# Fetch all events except for the first 3 #} {% set events = craft.events.events() .offset(3) .all() %} ``` -```php +```php PHP // Fetch all events except for the first 3 $events = \verbb\events\elements\Event::find() ->offset(3) @@ -466,14 +466,14 @@ $events = \verbb\events\elements\Event::find() Determines the order that the events should be returned in. ::: code -```twig +```twig Twig {# Fetch all events in order of date created #} {% set events = craft.events.events() .orderBy('elements.dateCreated asc') .all() %} ``` -```php +```php PHP // Fetch all events in order of date created $events = \verbb\events\elements\Event::find() ->orderBy('elements.dateCreated asc') @@ -496,7 +496,7 @@ Possible values include: | `['and', '>= 2018-04-04', '< 2018-05-01']` | that were posted between 2018-04-01 and 2018-05-01. ::: code -```twig +```twig Twig {# Fetch events posted last month #} {% set start = date('first day of last month')|atom %} {% set end = date('first day of this month')|atom %} @@ -506,7 +506,7 @@ Possible values include: .all() %} ``` -```php +```php PHP // Fetch events posted last month $start = new \DateTime('first day of next month')->format(\DateTime::ATOM); $end = new \DateTime('first day of this month')->format(\DateTime::ATOM); @@ -526,14 +526,14 @@ Narrows the query results to only events that are related to certain other eleme See [Relations](https://docs.craftcms.com/v3/relations.html) for a full explanation of how to work with this parameter. ::: code -```twig +```twig Twig {# Fetch all events that are related to myCategory #} {% set events = craft.events.events() .relatedTo(myCategory) .all() %} ``` -```php +```php PHP // Fetch all events that are related to $myCategory $events = \verbb\events\elements\Event::find() ->relatedTo($myCategory) @@ -550,7 +550,7 @@ Narrows the query results to only events that match a search query. See [Searching](https://docs.craftcms.com/v3/searching.html) for a full explanation of how to work with this parameter. ::: code -```twig +```twig Twig {# Get the search query from the 'q' query string param #} {% set searchQuery = craft.request.getQueryParam('q') %} @@ -560,7 +560,7 @@ See [Searching](https://docs.craftcms.com/v3/searching.html) for a full explanat .all() %} ``` -```php +```php PHP // Get the search query from the 'q' query string param $searchQuery = \Craft::$app->request->getQueryParam('q'); @@ -587,14 +587,14 @@ Possible values include: | a `\craft\commerce\elements\db\Site` object | from the site represented by the object. ::: code -```twig +```twig Twig {# Fetch events from the Foo site #} {% set events = craft.events.events() .site('foo') .all() %} ``` -```php +```php PHP // Fetch events from the Foo site $events = \verbb\events\elements\Event::find() ->site('foo') @@ -611,14 +611,14 @@ Determines which site the events should be queried in, per the site’s ID. The current site will be used by default. ::: code -```twig +```twig Twig {# Fetch events from the site with an ID of 1 #} {% set events = craft.events.events() .siteId(1) .all() %} ``` -```php +```php PHP // Fetch events from the site with an ID of 1 $events = \verbb\events\elements\Event::find() ->siteId(1) @@ -645,7 +645,7 @@ Possible values include: | `['not', '*foo*', '*bar*']` | with a slug that doesn’t contain `foo` or `bar`. ::: code -```twig +```twig Twig {# Get the requested event slug from the URL #} {% set requestedSlug = craft.app.request.getSegment(3) %} @@ -655,7 +655,7 @@ Possible values include: .one() %} ``` -```php +```php PHP // Get the requested event slug from the URL $requestedSlug = \Craft::$app->request->getSegment(3); @@ -681,7 +681,7 @@ Possible values include: | `['and', '>= 2018-04-04', '< 2018-05-01']` | that has a start date between 2018-04-01 and 2018-05-01. ::: code -```twig +```twig Twig {# Fetch events from today onwards #} {% set start = date('today') | atom %} @@ -690,7 +690,7 @@ Possible values include: .all() %} ``` -```php +```php PHP // Fetch events created last month $start = new \DateTime('today')->format(\DateTime::ATOM); @@ -717,14 +717,14 @@ Possible values include: | `['live', 'pending']` | that are live or pending. ::: code -```twig +```twig Twig {# Fetch disabled events #} {% set events = {twig-function} .status('disabled') .all() %} ``` -```php +```php PHP // Fetch disabled events $events = \verbb\events\elements\Event::find() ->status('disabled') @@ -751,14 +751,14 @@ Possible values include: | `['not', '*Foo*', '*Bar*']` | with a title that doesn’t contain `Foo` or `Bar`. ::: code -```twig +```twig Twig {# Fetch events with a title that contains "Foo" #} {% set events = craft.events.events() .title('*Foo*') .all() %} ``` -```php +```php PHP // Fetch events with a title that contains "Foo" $events = \verbb\events\elements\Event::find() ->title('*Foo*') @@ -783,14 +783,14 @@ Possible values include: | an Event Type object | of a type represented by the object. ::: code -```twig +```twig Twig {# Fetch events with a Foo event type #} {% set events = craft.events.events() .type('foo') .all() %} ``` -```php +```php PHP // Fetch events with a Foo event type $events = \verbb\events\elements\Event::find() ->type('foo') @@ -814,14 +814,14 @@ Possible values include: | `['not', 1, 2]` | not of a type with an ID of 1 or 2. ::: code -```twig +```twig Twig {# Fetch events of the event type with an ID of 1 #} {% set events = craft.events.events() .typeId(1) .all() %} ``` -```php +```php PHP // Fetch events of the event type with an ID of 1 $events = \verbb\events\elements\Event::find() ->typeId(1) @@ -836,14 +836,14 @@ $events = \verbb\events\elements\Event::find() Narrows the query results based on the events’ UIDs. ::: code -```twig +```twig Twig {# Fetch the event by its UID #} {% set event = craft.events.events() .uid('xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx') .one() %} ``` -```php +```php PHP // Fetch the event by its UID $event = \verbb\events\elements\Event::find() ->uid('xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx') @@ -870,7 +870,7 @@ Possible values include: | `['not', '*foo*', '*bar*']` | with a URI that doesn’t contain `foo` or `bar`. ::: code -```twig +```twig Twig {# Get the requested URI #} {% set requestedUri = craft.app.request.getPathInfo() %} @@ -880,7 +880,7 @@ Possible values include: .one() %} ``` -```php +```php PHP // Get the requested URI $requestedUri = \Craft::$app->request->getPathInfo(); @@ -900,14 +900,14 @@ Causes the query to return matching events eager-loaded with related elements. See [Eager-Loading Elements](https://docs.craftcms.com/v3/dev/eager-loading-elements.html) for a full explanation of how to work with this parameter. ::: code -```twig +```twig Twig {# Fetch events eager-loaded with the "Related" field’s relations #} {% set events = craft.events.events() .with(['related']) .all() %} ``` -```php +```php PHP // Fetch events eager-loaded with the "Related" field’s relations $events = \verbb\events\elements\Event::find() ->with(['related']) diff --git a/docs/getting-elements/purchased-ticket-queries.md b/docs/getting-elements/purchased-ticket-queries.md index b667e55..b72c933 100644 --- a/docs/getting-elements/purchased-ticket-queries.md +++ b/docs/getting-elements/purchased-ticket-queries.md @@ -54,14 +54,14 @@ Purchased Ticket queries support the following parameters: Causes the query to return matching purchased tickets as arrays of data, rather than [PurchasedTicket](docs:developers/purchased-ticket) objects. ::: code -```twig +```twig Twig {# Fetch purchased tickets as arrays #} {% set purchasedTickets = craft.events.purchasedTickets() .asArray() .all() %} ``` -```php +```php PHP // Fetch purchased tickets as arrays $purchasedTickets = \verbb\events\elements\PurchasedTicket::find() ->asArray() @@ -76,14 +76,14 @@ $purchasedTickets = \verbb\events\elements\PurchasedTicket::find() Narrows the query results to only purchased tickets that have been purchased by a customer. ::: code -```twig +```twig Twig {# Fetch purchased tickets that have been purchased by a customer #} {% set purchasedTickets = craft.events.purchasedTickets() .customer(craft.commerce.getCarts().getCart().customer) .all() %} ``` -```php +```php PHP // Fetch purchased tickets that have been purchased by a customer $purchasedTickets = \verbb\events\elements\PurchasedTicket::find() ->customer($customer) @@ -106,7 +106,7 @@ Possible values include: | `['and', '>= 2018-04-04', '< 2018-05-01']` | that were created between 2018-04-01 and 2018-05-01. ::: code -```twig +```twig Twig {# Fetch purchased tickets created last month #} {% set start = date('first day of last month') | atom %} {% set end = date('first day of this month') | atom %} @@ -116,7 +116,7 @@ Possible values include: .all() %} ``` -```php +```php PHP // Fetch purchased tickets created last month $start = new \DateTime('first day of next month')->format(\DateTime::ATOM); $end = new \DateTime('first day of this month')->format(\DateTime::ATOM); @@ -142,7 +142,7 @@ Possible values include: | `['and', '>= 2018-04-04', '< 2018-05-01']` | that were updated between 2018-04-01 and 2018-05-01. ::: code -```twig +```twig Twig {# Fetch purchased tickets updated in the last week #} {% set lastWeek = date('1 week ago')|atom %} @@ -151,7 +151,7 @@ Possible values include: .all() %} ``` -```php +```php PHP // Fetch purchased tickets updated in the last week $lastWeek = new \DateTime('1 week ago')->format(\DateTime::ATOM); @@ -176,14 +176,14 @@ Possible values include: | `['not', 1, 2]` | for event not with an ID of 1 or 2. ::: code -```twig +```twig Twig {# Fetch purchased tickets for an event #} {% set purchasedTickets = craft.events.purchasedTickets() .eventId(123) .all() %} ``` -```php +```php PHP // Fetch purchased tickets for an event $purchasedTickets = \verbb\events\elements\PurchasedTicket::find() ->eventId(123) @@ -198,7 +198,7 @@ $purchasedTickets = \verbb\events\elements\PurchasedTicket::find() Causes the query results to be returned in the order specified by [id](#id). ::: code -```twig +```twig Twig {# Fetch purchased tickets in a specific order #} {% set purchasedTickets = craft.events.purchasedTickets() .id([1, 2, 3, 4, 5]) @@ -206,7 +206,7 @@ Causes the query results to be returned in the order specified by [id](#id). .all() %} ``` -```php +```php PHP // Fetch purchased tickets in a specific order $purchasedTickets = \verbb\events\elements\PurchasedTicket::find() ->id([1, 2, 3, 4, 5]) @@ -231,14 +231,14 @@ Possible values include: | `['not', 1, 2]` | not with an ID of 1 or 2. ::: code -```twig +```twig Twig {# Fetch the purchased ticket by its ID #} {% set purchasedTicket = craft.events.purchasedTickets() .id(1) .one() %} ``` -```php +```php PHP // Fetch the purchased ticket by its ID $purchasedTicket = \verbb\events\elements\PurchasedTicket::find() ->id(1) @@ -257,14 +257,14 @@ This can be combined with [fixedOrder](#fixedorder) if you want the results to b Causes the query results to be returned in reverse order. ::: code -```twig +```twig Twig {# Fetch purchased tickets in reverse #} {% set purchasedTickets = craft.events.purchasedTickets() .inReverse() .all() %} ``` -```php +```php PHP // Fetch purchased tickets in reverse $purchasedTickets = \verbb\events\elements\PurchasedTicket::find() ->inReverse() @@ -279,14 +279,14 @@ $purchasedTickets = \verbb\events\elements\PurchasedTicket::find() Determines the number of purchased tickets that should be returned. ::: code -```twig +```twig Twig {# Fetch up to 10 purchased tickets #} {% set purchasedTickets = craft.events.purchasedTickets() .limit(10) .all() %} ``` -```php +```php PHP // Fetch up to 10 purchased tickets $purchasedTickets = \verbb\events\elements\PurchasedTicket::find() ->limit(10) @@ -309,14 +309,14 @@ Possible values include: | `['not', 1, 2]` | for Commerce line item not with an ID of 1 or 2. ::: code -```twig +```twig Twig {# Fetch purchased tickets for a Commerce line item #} {% set purchasedTickets = craft.events.purchasedTickets() .lineItemId(123) .all() %} ``` -```php +```php PHP // Fetch purchased tickets for a Commerce line item $purchasedTickets = \verbb\events\elements\PurchasedTicket::find() ->lineItemId(123) @@ -331,14 +331,14 @@ $purchasedTickets = \verbb\events\elements\PurchasedTicket::find() Determines how many purchased tickets should be skipped in the results. ::: code -```twig +```twig Twig {# Fetch all purchased tickets except for the first 3 #} {% set purchasedTickets = craft.events.purchasedTickets() .offset(3) .all() %} ``` -```php +```php PHP // Fetch all purchased tickets except for the first 3 $purchasedTickets = \verbb\events\elements\PurchasedTicket::find() ->offset(3) @@ -361,14 +361,14 @@ Possible values include: | `['not', 1, 2]` | for Commerce order not with an ID of 1 or 2. ::: code -```twig +```twig Twig {# Fetch purchased tickets for a Commerce order #} {% set purchasedTickets = craft.events.purchasedTickets() .orderId(123) .all() %} ``` -```php +```php PHP // Fetch purchased tickets for a Commerce order $purchasedTickets = \verbb\events\elements\PurchasedTicket::find() ->orderId(123) @@ -383,14 +383,14 @@ $purchasedTickets = \verbb\events\elements\PurchasedTicket::find() Determines the order that the purchased tickets should be returned in. ::: code -```twig +```twig Twig {# Fetch all purchased tickets in order of date created #} {% set purchasedTickets = craft.events.purchasedTickets() .orderBy('elements.dateCreated asc') .all() %} ``` -```php +```php PHP // Fetch all purchased tickets in order of date created $purchasedTickets = \verbb\events\elements\PurchasedTicket::find() ->orderBy('elements.dateCreated asc') @@ -407,14 +407,14 @@ Narrows the query results to only purchased tickets that are related to certain See [Relations](https://docs.craftcms.com/v3/relations.html) for a full explanation of how to work with this parameter. ::: code -```twig +```twig Twig {# Fetch all purchased tickets that are related to myCategory #} {% set purchasedTickets = craft.events.purchasedTickets() .relatedTo(myCategory) .all() %} ``` -```php +```php PHP // Fetch all purchased tickets that are related to $myCategory $purchasedTickets = \verbb\events\elements\PurchasedTicket::find() ->relatedTo($myCategory) @@ -437,14 +437,14 @@ Possible values include: | `['not', 1, 2]` | for ticket not with an ID of 1 or 2. ::: code -```twig +```twig Twig {# Fetch purchased tickets for a ticket #} {% set purchasedTickets = craft.events.purchasedTickets() .ticketId(123) .all() %} ``` -```php +```php PHP // Fetch purchased tickets for a ticket $purchasedTickets = \verbb\events\elements\PurchasedTicket::find() ->ticketId(123) @@ -468,14 +468,14 @@ Possible values include: | `['not', 'foo', 'bar']` | not of a ticket type with a handle of `foo` or `bar`. ::: code -```twig +```twig Twig {# Fetch purchased tickets for a ticket type #} {% set purchasedTickets = craft.events.purchasedTickets() .ticketType('adult') .all() %} ``` -```php +```php PHP // Fetch purchased tickets for a ticket $purchasedTickets = \verbb\events\elements\PurchasedTicket::find() ->ticketType('adult') @@ -499,14 +499,14 @@ Possible values include: | `['not', 1, 2]` | not of a ticket type with an ID of 1 or 2. ::: code -```twig +```twig Twig {# Fetch purchased tickets for a ticket type #} {% set purchasedTickets = craft.events.purchasedTickets() .ticketTypeId(1) .all() %} ``` -```php +```php PHP // Fetch events of the event type with an ID of 1 $purchasedTickets = \verbb\events\elements\PurchasedTicket::find() ->ticketTypeId(1) @@ -523,7 +523,7 @@ Narrows the query results to only purchased tickets that match a search query. See [Searching](https://docs.craftcms.com/v3/searching.html) for a full explanation of how to work with this parameter. ::: code -```twig +```twig Twig {# Get the search query from the 'q' query string param #} {% set searchQuery = craft.request.getQueryParam('q') %} @@ -533,7 +533,7 @@ See [Searching](https://docs.craftcms.com/v3/searching.html) for a full explanat .all() %} ``` -```php +```php PHP // Get the search query from the 'q' query string param $searchQuery = \Craft::$app->request->getQueryParam('q'); @@ -560,14 +560,14 @@ Possible values include: | a `\craft\commerce\elements\db\Site` object | from the site represented by the object. ::: code -```twig +```twig Twig {# Fetch purchased tickets from the Foo site #} {% set purchasedTickets = craft.events.purchasedTickets() .site('foo') .all() %} ``` -```php +```php PHP // Fetch purchased tickets from the Foo site $purchasedTickets = \verbb\events\elements\PurchasedTicket::find() ->site('foo') @@ -584,14 +584,14 @@ Determines which site the purchased tickets should be queried in, per the site The current site will be used by default. ::: code -```twig +```twig Twig {# Fetch purchased tickets from the site with an ID of 1 #} {% set purchasedTickets = craft.events.purchasedTickets() .siteId(1) .all() %} ``` -```php +```php PHP // Fetch purchased tickets from the site with an ID of 1 $purchasedTickets = \verbb\events\elements\PurchasedTicket::find() ->siteId(1) @@ -606,14 +606,14 @@ $purchasedTickets = \verbb\events\elements\PurchasedTicket::find() Narrows the query results based on the purchased tickets UIDs. ::: code -```twig +```twig Twig {# Fetch the purchased ticket by its UID #} {% set purchasedTicket = craft.events.purchasedTickets() .uid('xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx') .one() %} ``` -```php +```php PHP // Fetch the purchased ticket by its UID $purchasedTicket = \verbb\events\elements\PurchasedTicket::find() ->uid('xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx') @@ -630,14 +630,14 @@ Causes the query to return matching purchased tickets eager-loaded with related See [Eager-Loading Elements](https://docs.craftcms.com/v3/dev/eager-loading-elements.html) for a full explanation of how to work with this parameter. ::: code -```twig +```twig Twig {# Fetch purchased tickets eager-loaded with the "Related" field’s relations #} {% set purchasedTickets = craft.events.purchasedTickets() .with(['related']) .all() %} ``` -```php +```php PHP // Fetch purchased tickets eager-loaded with the "Related" field’s relations $purchasedTickets = \verbb\events\elements\PurchasedTicket::find() ->with(['related']) diff --git a/docs/getting-elements/ticket-queries.md b/docs/getting-elements/ticket-queries.md index 507306f..e0f3ac2 100644 --- a/docs/getting-elements/ticket-queries.md +++ b/docs/getting-elements/ticket-queries.md @@ -3,7 +3,7 @@ You can fetch tickets in your templates or PHP code using **ticket queries**. ::: code -```twig +```twig Twig {# Create a new ticket query #} {% set myTicketQuery = craft.events.tickets() %} ``` @@ -56,14 +56,14 @@ We can display a specific ticket by its ID by doing the following: Clears out the [status()](https://docs.craftcms.com/api/v3/craft-elements-db-elementquery.html#method-status) and [enabledForSite()](https://docs.craftcms.com/api/v3/craft-elements-db-elementquery.html#method-enabledforsite) parameters. ::: code -```twig +```twig Twig {# Fetch all tickets, regardless of status #} {% set tickets = craft.events.tickets() .anyStatus() .all() %} ``` -```php +```php PHP // Fetch all tickets, regardless of status $tickets = \verbb\events\elements\Ticket::find() ->anyStatus() @@ -78,14 +78,14 @@ $tickets = \verbb\events\elements\Ticket::find() Causes the query to return matching tickets as arrays of data, rather than [Ticket](docs:developers/ticket) objects. ::: code -```twig +```twig Twig {# Fetch tickets as arrays #} {% set tickets = craft.events.tickets() .asArray() .all() %} ``` -```php +```php PHP // Fetch tickets as arrays $tickets = \verbb\events\elements\Ticket::find() ->asArray() @@ -100,14 +100,14 @@ $tickets = \verbb\events\elements\Ticket::find() Narrows the query results to only tickets that have been purchased by a customer. ::: code -```twig +```twig Twig {# Fetch tickets that have been purchased by a customer #} {% set tickets = craft.events.tickets() .customer(craft.commerce.getCarts().getCart().customer) .all() %} ``` -```php +```php PHP // Fetch tickets that have been purchased by a customer $tickets = \verbb\events\elements\Event::find() ->customer($customer) @@ -130,7 +130,7 @@ Possible values include: | `['and', '>= 2018-04-04', '< 2018-05-01']` | that were created between 2018-04-01 and 2018-05-01. ::: code -```twig +```twig Twig {# Fetch tickets created last month #} {% set start = date('first day of last month')|atom %} {% set end = date('first day of this month')|atom %} @@ -140,7 +140,7 @@ Possible values include: .all() %} ``` -```php +```php PHP // Fetch tickets created last month $start = new \DateTime('first day of next month')->format(\DateTime::ATOM); $end = new \DateTime('first day of this month')->format(\DateTime::ATOM); @@ -166,7 +166,7 @@ Possible values include: | `['and', '>= 2018-04-04', '< 2018-05-01']` | that were updated between 2018-04-01 and 2018-05-01. ::: code -```twig +```twig Twig {# Fetch tickets updated in the last week #} {% set lastWeek = date('1 week ago')|atom %} @@ -175,7 +175,7 @@ Possible values include: .all() %} ``` -```php +```php PHP // Fetch tickets updated in the last week $lastWeek = new \DateTime('1 week ago')->format(\DateTime::ATOM); @@ -192,7 +192,7 @@ $tickets = \verbb\events\elements\Ticket::find() Causes the query results to be returned in the order specified by [id](#id). ::: code -```twig +```twig Twig {# Fetch tickets in a specific order #} {% set tickets = craft.events.tickets() .id([1, 2, 3, 4, 5]) @@ -200,7 +200,7 @@ Causes the query results to be returned in the order specified by [id](#id). .all() %} ``` -```php +```php PHP // Fetch tickets in a specific order $tickets = \verbb\events\elements\Ticket::find() ->id([1, 2, 3, 4, 5]) @@ -237,14 +237,14 @@ Possible values include: | `['not', 1, 2]` | not with an ID of 1 or 2. ::: code -```twig +```twig Twig {# Fetch the ticket by its ID #} {% set ticket = craft.events.tickets() .id(1) .one() %} ``` -```php +```php PHP // Fetch the ticket by its ID $ticket = \verbb\events\elements\Ticket::find() ->id(1) @@ -263,14 +263,14 @@ This can be combined with [fixedOrder](#fixedorder) if you want the results to b Causes the query results to be returned in reverse order. ::: code -```twig +```twig Twig {# Fetch tickets in reverse #} {% set tickets = craft.events.tickets() .inReverse() .all() %} ``` -```php +```php PHP // Fetch tickets in reverse $tickets = \verbb\events\elements\Ticket::find() ->inReverse() @@ -285,14 +285,14 @@ $tickets = \verbb\events\elements\Ticket::find() Determines the number of tickets that should be returned. ::: code -```twig +```twig Twig {# Fetch up to 10 tickets #} {% set tickets = craft.events.tickets() .limit(10) .all() %} ``` -```php +```php PHP // Fetch up to 10 tickets $tickets = \verbb\events\elements\Ticket::find() ->limit(10) @@ -307,14 +307,14 @@ $tickets = \verbb\events\elements\Ticket::find() Determines how many tickets should be skipped in the results. ::: code -```twig +```twig Twig {# Fetch all tickets except for the first 3 #} {% set tickets = craft.events.tickets() .offset(3) .all() %} ``` -```php +```php PHP // Fetch all tickets except for the first 3 $tickets = \verbb\events\elements\Ticket::find() ->offset(3) @@ -329,14 +329,14 @@ $tickets = \verbb\events\elements\Ticket::find() Determines the order that the tickets should be returned in. ::: code -```twig +```twig Twig {# Fetch all tickets in order of date created #} {% set tickets = craft.events.tickets() .orderBy('elements.dateCreated asc') .all() %} ``` -```php +```php PHP // Fetch all tickets in order of date created $tickets = \verbb\events\elements\Ticket::find() ->orderBy('elements.dateCreated asc') @@ -393,14 +393,14 @@ Narrows the query results to only tickets that are related to certain other elem See [Relations](https://docs.craftcms.com/v3/relations.html) for a full explanation of how to work with this parameter. ::: code -```twig +```twig Twig {# Fetch all tickets that are related to myCategory #} {% set tickets = craft.events.tickets() .relatedTo(myCategory) .all() %} ``` -```php +```php PHP // Fetch all tickets that are related to $myCategory $tickets = \verbb\events\elements\Ticket::find() ->relatedTo($myCategory) @@ -417,7 +417,7 @@ Narrows the query results to only tickets that match a search query. See [Searching](https://docs.craftcms.com/v3/searching.html) for a full explanation of how to work with this parameter. ::: code -```twig +```twig Twig {# Get the search query from the 'q' query string param #} {% set searchQuery = craft.request.getQueryParam('q') %} @@ -427,7 +427,7 @@ See [Searching](https://docs.craftcms.com/v3/searching.html) for a full explanat .all() %} ``` -```php +```php PHP // Get the search query from the 'q' query string param $searchQuery = \Craft::$app->request->getQueryParam('q'); @@ -454,14 +454,14 @@ Possible values include: | a `\craft\commerce\elements\db\Site` object | from the site represented by the object. ::: code -```twig +```twig Twig {# Fetch tickets from the Foo site #} {% set tickets = craft.events.tickets() .site('foo') .all() %} ``` -```php +```php PHP // Fetch tickets from the Foo site $tickets = \verbb\events\elements\Ticket::find() ->site('foo') @@ -478,14 +478,14 @@ Determines which site the tickets should be queried in, per the site’s ID. The current site will be used by default. ::: code -```twig +```twig Twig {# Fetch tickets from the site with an ID of 1 #} {% set tickets = craft.events.tickets() .siteId(1) .all() %} ``` -```php +```php PHP // Fetch tickets from the site with an ID of 1 $tickets = \verbb\events\elements\Ticket::find() ->siteId(1) @@ -512,7 +512,7 @@ Possible values include: | `['not', '*foo*', '*bar*']` | with a SKU that doesn’t contain `foo` or `bar`. ::: code -```twig +```twig Twig {# Get the requested ticket SKU from the URL #} {% set requestedSlug = craft.app.request.getSegment(3) %} @@ -522,7 +522,7 @@ Possible values include: .one() %} ``` -```php +```php PHP // Get the requested ticket SKU from the URL $requestedSlug = \Craft::$app->request->getSegment(3); @@ -568,14 +568,14 @@ Possible values include: Narrows the query results based on the tickets’ UIDs. ::: code -```twig +```twig Twig {# Fetch the ticket by its UID #} {% set ticket = craft.events.tickets() .uid('xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx') .one() %} ``` -```php +```php PHP // Fetch the ticket by its UID $ticket = \verbb\events\elements\Ticket::find() ->uid('xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx') @@ -592,14 +592,14 @@ Causes the query to return matching tickets eager-loaded with related elements. See [Eager-Loading Elements](https://docs.craftcms.com/v3/dev/eager-loading-elements.html) for a full explanation of how to work with this parameter. ::: code -```twig +```twig Twig {# Fetch tickets eager-loaded with the "Related" field’s relations #} {% set tickets = craft.events.tickets() .with(['related']) .all() %} ``` -```php +```php PHP // Fetch tickets eager-loaded with the "Related" field’s relations $tickets = \verbb\events\elements\Ticket::find() ->with(['related']) From 71f5358bb32feecfecb1627e65cad0db61070852 Mon Sep 17 00:00:00 2001 From: Josh Crawford Date: Fri, 24 Jun 2022 15:01:08 +1000 Subject: [PATCH 2/3] Formatting --- config.codekit3 | 86 ++++++++----------- docs/getting-elements/event-queries.md | 6 +- .../purchased-ticket-queries.md | 2 +- docs/getting-elements/ticket-queries.md | 4 +- src/Events.php | 11 ++- src/controllers/DownloadsController.php | 12 +-- src/controllers/EventTypesController.php | 8 +- src/controllers/EventsController.php | 36 ++++---- src/controllers/EventsPreviewController.php | 8 +- .../PurchasedTicketsController.php | 58 ++++++------- src/controllers/TicketController.php | 10 +-- src/controllers/TicketTypesController.php | 3 +- src/elements/Event.php | 38 ++++---- src/elements/PurchasedTicket.php | 20 +++-- src/elements/Ticket.php | 40 +++++---- src/elements/TicketType.php | 12 +-- src/elements/actions/Checkin.php | 10 +-- src/elements/db/EventQuery.php | 16 ++-- src/elements/db/TicketQuery.php | 2 +- src/events/EventTypeEvent.php | 2 +- src/events/TicketTypeEvent.php | 2 +- src/helpers/ProjectConfigData.php | 2 +- src/helpers/TicketHelper.php | 6 +- src/integrations/feedme/Event.php | 4 +- src/integrations/seomatic/Event.php | 2 +- src/migrations/Install.php | 30 +++---- ...200118_000000_resave_purchased_tickets.php | 2 +- .../m204014_000000_cleanup_columns.php | 2 +- src/models/EventType.php | 14 +-- src/models/EventTypeSite.php | 2 +- src/services/EventTypes.php | 13 +-- src/services/Events.php | 2 +- src/services/Pdf.php | 2 +- src/services/PurchasedTickets.php | 6 +- src/translations/en/events.php | 5 ++ 35 files changed, 239 insertions(+), 239 deletions(-) create mode 100644 src/translations/en/events.php diff --git a/config.codekit3 b/config.codekit3 index bd073b1..bd283ff 100644 --- a/config.codekit3 +++ b/config.codekit3 @@ -7,7 +7,7 @@ "uuidString" : "ECE3F09A-2816-43C6-9715-3F4A30BD28C5" } ], - "creatorBuild" : "34335", + "creatorBuild" : "34365", "files" : { "\/.github" : { "ft" : 65536, @@ -870,6 +870,14 @@ "oAP" : "\/src\/templates", "oF" : 0 }, + "\/src\/translations\/en\/events.php" : { + "cB" : 0, + "ft" : 8192, + "hM" : 0, + "oA" : 2, + "oAP" : "\/src\/translations\/en\/events.php", + "oF" : 0 + }, "\/src\/variables" : { "ft" : 65536, "oA" : 1, @@ -887,8 +895,8 @@ "creationDate" : 528723773, "displayValue" : "events", "displayValueWasSetByUser" : 0, - "iconImageName" : "meme-ariel", - "iconImageWasSetByUser" : 0 + "iconImageName" : "brackets-koamaru", + "iconImageWasSetByUser" : 1 }, "projectSettings" : { "abortBuildOnError" : 1, @@ -1238,10 +1246,6 @@ "active" : 0, "optionString" : "'1tbs', {'allowSingleLine': true}" }, - "callback-return" : { - "active" : 0, - "optionString" : "['callback', 'cb', 'next']" - }, "camelcase" : { "active" : 0, "optionString" : "{'properties': 'always'}" @@ -1333,6 +1337,10 @@ "active" : 0, "optionString" : "'expression'" }, + "function-call-argument-newline" : { + "active" : 0, + "optionString" : "'always'" + }, "function-paren-newline" : { "active" : 0, "optionString" : "'multiline'" @@ -1345,9 +1353,6 @@ "active" : 0, "optionString" : "{'allowImplicit': false}" }, - "global-require" : { - "active" : 0 - }, "grouped-accessor-pairs" : { "active" : 0, "optionString" : "'anyOrder'" @@ -1355,11 +1360,7 @@ "guard-for-in" : { "active" : 0 }, - "handle-callback-err" : { - "active" : 0, - "optionString" : "'err'" - }, - "id-blacklist" : { + "id-denylist" : { "active" : 0, "optionString" : "'data', 'err', 'e', 'cb', 'callback'" }, @@ -1483,9 +1484,6 @@ "active" : 0, "optionString" : "{'allow': ['~'], 'int32Hint': true}" }, - "no-buffer-constructor" : { - "active" : 0 - }, "no-caller" : { "active" : 0 }, @@ -1513,6 +1511,9 @@ "no-const-assign" : { "active" : 1 }, + "no-constant-binary-expression" : { + "active" : 0 + }, "no-constant-condition" : { "active" : 1, "optionString" : "{'checkLoops': true}" @@ -1547,6 +1548,9 @@ "no-dupe-keys" : { "active" : 1 }, + "no-duplicate-case" : { + "active" : 1 + }, "no-duplicate-imports" : { "active" : 0, "optionString" : "{'includeExports': false}" @@ -1588,7 +1592,7 @@ "no-extra-boolean-cast" : { "active" : 1 }, - "no-extra-labels" : { + "no-extra-label" : { "active" : 0 }, "no-extra-parens" : { @@ -1676,10 +1680,6 @@ "active" : 0, "optionString" : "{'groups': [['+', '-', '*', '\/', '%', '**'], ['&', '|', '^', '~', '<<', '>>', '>>>'], ['==', '!=', '===', '!==', '>', '>=', '<', '<='], ['&&', '||'], ['in', 'instanceof']], 'allowSamePrecedence': true}" }, - "no-mixed-requires" : { - "active" : 0, - "optionString" : "{'grouping': false, 'allowCall': false }" - }, "no-mixed-spaces-and-tabs" : { "active" : 0, "optionString" : "" @@ -1714,9 +1714,6 @@ "no-new-object" : { "active" : 0 }, - "no-new-require" : { - "active" : 0 - }, "no-new-symbol" : { "active" : 1 }, @@ -1739,19 +1736,10 @@ "active" : 0, "optionString" : "{'props': false}" }, - "no-path-concat" : { - "active" : 0 - }, "no-plusplus" : { "active" : 0, "optionString" : "{'allowForLoopAfterthoughts': false}" }, - "no-process-env" : { - "active" : 0 - }, - "no-process-exit" : { - "active" : 0 - }, "no-promise-executor-return" : { "active" : 0 }, @@ -1779,10 +1767,6 @@ "no-restricted-imports" : { "active" : 0 }, - "no-restricted-modules" : { - "active" : 0, - "optionString" : "" - }, "no-restricted-properties" : { "active" : 0, "optionString" : "[{'object': 'disallowedObjectName', 'property': 'disallowedPropertyName'}, {'object': 'disallowedObjectName', 'property': 'anotherDisallowedPropertyName', 'message': 'Please use allowedObjectName.allowedPropertyName.'}]" @@ -1825,10 +1809,6 @@ "no-sparse-arrays" : { "active" : 1 }, - "no-sync" : { - "active" : 0, - "optionString" : "{'allowAtRootLevel': false}" - }, "no-tabs" : { "active" : 0, "optionString" : "" @@ -2060,10 +2040,6 @@ "require-await" : { "active" : 0 }, - "require-jsdoc" : { - "active" : 0, - "optionString" : "{'require': {'FunctionDeclaration': true, 'MethodDefinition': false, 'ClassDeclaration': false, 'ArrowFunctionExpression': false}}" - }, "require-unicode-regexp" : { "active" : 0 }, @@ -2149,10 +2125,6 @@ "active" : 1, "optionString" : "" }, - "valid-jsdoc" : { - "active" : 0, - "optionString" : "{'prefer': {'return': 'returns'}, 'requireReturn': true, 'requireReturnDescription': true, 'requireReturnType': true, 'requireParamDescription': true}" - }, "valid-typeof" : { "active" : 1, "optionString" : "{'requireStringLiterals': true}" @@ -2653,6 +2625,10 @@ "active" : 0, "flagValue" : -1 }, + "keep_numbers" : { + "active" : 0, + "flagValue" : -1 + }, "keep_quoted_props" : { "active" : 0, "flagValue" : -1 @@ -2677,6 +2653,10 @@ "active" : 1, "flagValue" : 1 }, + "preserve_annotations" : { + "active" : 0, + "flagValue" : -1 + }, "properties" : { "active" : 1, "flagValue" : -1 @@ -2781,6 +2761,10 @@ "active" : 0, "flagValue" : -1 }, + "wrap_func_args" : { + "active" : 1, + "flagValue" : -1 + }, "wrap_iife" : { "active" : 0, "flagValue" : -1 diff --git a/docs/getting-elements/event-queries.md b/docs/getting-elements/event-queries.md index ba01ccc..6ca4e6d 100644 --- a/docs/getting-elements/event-queries.md +++ b/docs/getting-elements/event-queries.md @@ -562,7 +562,7 @@ See [Searching](https://docs.craftcms.com/v3/searching.html) for a full explanat ```php PHP // Get the search query from the 'q' query string param -$searchQuery = \Craft::$app->request->getQueryParam('q'); +$searchQuery = \Craft::$app->getRequest()->getQueryParam('q'); // Fetch all events that match the search query $events = \verbb\events\elements\Event::find() @@ -657,7 +657,7 @@ Possible values include: ```php PHP // Get the requested event slug from the URL -$requestedSlug = \Craft::$app->request->getSegment(3); +$requestedSlug = \Craft::$app->getRequest()->getSegment(3); // Fetch the event with that slug $event = \verbb\events\elements\Event::find() @@ -882,7 +882,7 @@ Possible values include: ```php PHP // Get the requested URI -$requestedUri = \Craft::$app->request->getPathInfo(); +$requestedUri = \Craft::$app->getRequest()->getPathInfo(); // Fetch the event with that URI $event = \verbb\events\elements\Event::find() diff --git a/docs/getting-elements/purchased-ticket-queries.md b/docs/getting-elements/purchased-ticket-queries.md index b72c933..b088cb3 100644 --- a/docs/getting-elements/purchased-ticket-queries.md +++ b/docs/getting-elements/purchased-ticket-queries.md @@ -535,7 +535,7 @@ See [Searching](https://docs.craftcms.com/v3/searching.html) for a full explanat ```php PHP // Get the search query from the 'q' query string param -$searchQuery = \Craft::$app->request->getQueryParam('q'); +$searchQuery = \Craft::$app->getRequest()->getQueryParam('q'); // Fetch all purchased tickets that match the search query $purchasedTickets = \verbb\events\elements\PurchasedTicket::find() diff --git a/docs/getting-elements/ticket-queries.md b/docs/getting-elements/ticket-queries.md index e0f3ac2..e2d96a7 100644 --- a/docs/getting-elements/ticket-queries.md +++ b/docs/getting-elements/ticket-queries.md @@ -429,7 +429,7 @@ See [Searching](https://docs.craftcms.com/v3/searching.html) for a full explanat ```php PHP // Get the search query from the 'q' query string param -$searchQuery = \Craft::$app->request->getQueryParam('q'); +$searchQuery = \Craft::$app->getRequest()->getQueryParam('q'); // Fetch all tickets that match the search query $tickets = \verbb\events\elements\Ticket::find() @@ -524,7 +524,7 @@ Possible values include: ```php PHP // Get the requested ticket SKU from the URL -$requestedSlug = \Craft::$app->request->getSegment(3); +$requestedSlug = \Craft::$app->getRequest()->getSegment(3); // Fetch the ticket with that slug $ticket = \verbb\events\elements\Ticket::find() diff --git a/src/Events.php b/src/Events.php index c746024..c2fe4f9 100755 --- a/src/Events.php +++ b/src/Events.php @@ -159,7 +159,7 @@ private function _registerCpRoutes() 'events/event-types/new' => 'events/event-types/edit', 'events/event-types/' => 'events/event-types/edit', - + 'events/events/' => 'events/events/index', 'events/events//new' => 'events/events/edit', 'events/events//new/' => 'events/events/edit', @@ -168,7 +168,7 @@ private function _registerCpRoutes() 'events/ticket-types/new' => 'events/ticket-types/edit', 'events/ticket-types/' => 'events/ticket-types/edit', - + 'events/tickets/new' => 'events/tickets/edit', 'events/tickets/' => 'events/tickets/edit', @@ -212,7 +212,7 @@ private function _registerPermissions() $suffix = ':' . $eventType->uid; $eventTypePermissions['events-manageEventType' . $suffix] = ['label' => Craft::t('events', 'Manage “{type}” events', ['type' => $eventType->name])]; } - + $event->permissions[Craft::t('events', 'Events')] = [ 'events-manageEventTypes' => ['label' => Craft::t('events', 'Manage event types')], 'events-manageEvents' => ['label' => Craft::t('events', 'Manage events'), 'nested' => $eventTypePermissions], @@ -242,7 +242,7 @@ private function _registerProjectConfigEventListeners() Event::on(Fields::class, Fields::EVENT_AFTER_DELETE_FIELD, [$eventTypeService, 'pruneDeletedField']); Event::on(Sites::class, Sites::EVENT_AFTER_DELETE_SITE, [$eventTypeService, 'pruneDeletedSite']); - Event::on(ProjectConfig::class, ProjectConfig::EVENT_REBUILD, function (RebuildConfigEvent $event) { + Event::on(ProjectConfig::class, ProjectConfig::EVENT_REBUILD, function(RebuildConfigEvent $event) { $event->config['events'] = ProjectConfigData::rebuildProjectConfig(); }); } @@ -253,7 +253,7 @@ private function _registerCraftEventListeners() Event::on(Sites::class, Sites::EVENT_AFTER_SAVE_SITE, [$this->getEvents(), 'afterSaveSiteHandler']); // Ensure Commerce is installed - Event::on(Plugins::class, Plugins::EVENT_BEFORE_INSTALL_PLUGIN, function (PluginEvent $event) { + Event::on(Plugins::class, Plugins::EVENT_BEFORE_INSTALL_PLUGIN, function(PluginEvent $event) { if ($event->plugin === $this && !Craft::$app->plugins->isPluginInstalled('commerce')) { throw new \Exception('Events required Commerce to be installed.'); } @@ -279,7 +279,6 @@ private function _registerThirdPartyEventListeners() $event->types[] = SeomaticEvent::class; }); } - } } diff --git a/src/controllers/DownloadsController.php b/src/controllers/DownloadsController.php index 5b7eb21..71750da 100644 --- a/src/controllers/DownloadsController.php +++ b/src/controllers/DownloadsController.php @@ -54,12 +54,12 @@ public function actionPdf() } $purchasedTickets = PurchasedTicket::find(); - - if ($ticketId) { - $purchasedTickets->id($ticketId); - } else { - $purchasedTickets->orderId($order->id); - } + + if ($ticketId) { + $purchasedTickets->id($ticketId); + } else { + $purchasedTickets->orderId($order->id); + } $purchasedTickets->all(); $pdf = Events::getInstance()->getPdf()->renderPdf($purchasedTickets, $order, $lineItem, $option); diff --git a/src/controllers/EventTypesController.php b/src/controllers/EventTypesController.php index 63a13b0..001ecda 100755 --- a/src/controllers/EventTypesController.php +++ b/src/controllers/EventTypesController.php @@ -55,7 +55,7 @@ public function actionEdit(int $eventTypeId = null, EventType $eventType = null) } $variables['timezoneOptions'] = $this->_getTimezoneOptions(); - + return $this->renderTemplate('events/event-types/_edit', $variables); } @@ -66,7 +66,7 @@ public function actionSave() $eventType = new EventType(); $request = Craft::$app->getRequest(); - + $eventType->id = $request->getBodyParam('eventTypeId'); $eventType->name = $request->getBodyParam('name'); $eventType->handle = $request->getBodyParam('handle'); @@ -117,7 +117,7 @@ public function actionSave() // Send the eventType back to the template Craft::$app->getUrlManager()->setRouteParams([ - 'eventType' => $eventType + 'eventType' => $eventType, ]); return null; @@ -171,7 +171,7 @@ private function _getTimezoneOptions() $timezoneIds[] = $timezoneId; $timezoneOptions[] = [ 'value' => $timezoneId, - 'label' => 'UTC' . $format . ($abbr !== 'UTC' ? " ({$abbr})" : '') . ($timezoneId !== 'UTC' ? ' – ' . $timezoneId : '') + 'label' => 'UTC' . $format . ($abbr !== 'UTC' ? " ({$abbr})" : '') . ($timezoneId !== 'UTC' ? ' – ' . $timezoneId : ''), ]; } diff --git a/src/controllers/EventsController.php b/src/controllers/EventsController.php index 8d04212..8dd23c0 100755 --- a/src/controllers/EventsController.php +++ b/src/controllers/EventsController.php @@ -79,16 +79,16 @@ public function actionEdit(string $eventTypeHandle, int $eventId = null, string // Enable Live Preview? if (!Craft::$app->getRequest()->isMobileBrowser(true) && Events::getInstance()->getEventTypes()->isEventTypeTemplateValid($variables['eventType'], $variables['site']->id)) { $this->getView()->registerJs('Craft.LivePreview.init(' . Json::encode([ - 'fields' => '#title-field, #fields > div > div > .field', - 'extraFields' => '#details', - 'previewUrl' => $variables['event']->getUrl(), - 'previewAction' => Craft::$app->getSecurity()->hashData('events/events-preview/preview-event'), - 'previewParams' => [ - 'typeId' => $variables['eventType']->id, - 'eventId' => $variables['event']->id, - 'siteId' => $variables['event']->siteId, - ] - ]) . ');'); + 'fields' => '#title-field, #fields > div > div > .field', + 'extraFields' => '#details', + 'previewUrl' => $variables['event']->getUrl(), + 'previewAction' => Craft::$app->getSecurity()->hashData('events/events-preview/preview-event'), + 'previewParams' => [ + 'typeId' => $variables['eventType']->id, + 'eventId' => $variables['event']->id, + 'siteId' => $variables['event']->siteId, + ], + ]) . ');'); $variables['showPreviewBtn'] = true; @@ -100,7 +100,7 @@ public function actionEdit(string $eventTypeHandle, int $eventId = null, string } else { $variables['shareUrl'] = UrlHelper::actionUrl('events/events-preview/share-event', [ 'eventId' => $variables['event']->id, - 'siteId' => $variables['event']->siteId + 'siteId' => $variables['event']->siteId, ]); } } @@ -119,7 +119,7 @@ public function actionDelete() $event = Events::getInstance()->getEvents()->getEventById($eventId); if (!$event) { - throw new Exception(Craft::t('events', 'No event exists with the ID “{id}”.',['id' => $eventId])); + throw new Exception(Craft::t('events', 'No event exists with the ID “{id}”.', ['id' => $eventId])); } $this->enforceEventPermissions($event); @@ -131,7 +131,7 @@ public function actionDelete() Craft::$app->getSession()->setError(Craft::t('events', 'Couldn’t delete event.')); Craft::$app->getUrlManager()->setRouteParams([ - 'event' => $event + 'event' => $event, ]); return null; @@ -189,7 +189,7 @@ public function actionSave() 'title' => $event->title, 'status' => $event->getStatus(), 'url' => $event->getUrl(), - 'cpEditUrl' => $event->getCpEditUrl() + 'cpEditUrl' => $event->getCpEditUrl(), ]); } @@ -221,7 +221,7 @@ private function _prepVariables(&$variables) foreach ($eventType->getEventFieldLayout()->getTabs() as $index => $tab) { // Do any of the fields on this tab have errors? $hasErrors = false; - + if ($event->hasErrors()) { foreach ($tab->getFields() as $field) { if ($hasErrors = $event->hasErrors($field->handle . '.*')) { @@ -233,7 +233,7 @@ private function _prepVariables(&$variables) $variables['tabs'][] = [ 'label' => Craft::t('events', $tab->name), 'url' => '#' . $tab->getHtmlId(), - 'class' => $hasErrors ? 'error' : null + 'class' => $hasErrors ? 'error' : null, ]; } @@ -243,7 +243,7 @@ private function _prepVariables(&$variables) ]; $hasErrors = false; - + foreach ($event->getTickets() as $ticket) { if ($hasErrors = $ticket->hasErrors()) { break; @@ -258,7 +258,7 @@ private function _prepVariables(&$variables) $variables['tabs'][] = [ 'label' => Craft::t('events', 'Tickets'), 'url' => '#tab-tickets-container', - 'class' => $hasErrors ? 'error' : null + 'class' => $hasErrors ? 'error' : null, ]; } diff --git a/src/controllers/EventsPreviewController.php b/src/controllers/EventsPreviewController.php index dd53a91..a203c85 100644 --- a/src/controllers/EventsPreviewController.php +++ b/src/controllers/EventsPreviewController.php @@ -54,7 +54,7 @@ public function actionShareEvent($eventId, $siteId): Response // Create the token and redirect to the event URL with the token in place $token = Craft::$app->getTokens()->createToken([ - 'events/events-preview/view-shared-event', ['eventId' => $event->id, 'siteId' => $siteId] + 'events/events-preview/view-shared-event', ['eventId' => $event->id, 'siteId' => $siteId], ]); $url = UrlHelper::urlWithToken($event->getUrl(), $token); @@ -104,7 +104,7 @@ public function actionSaveEvent() // Send the category back to the template Craft::$app->getUrlManager()->setRouteParams([ - 'event' => $event + 'event' => $event, ]); return null; @@ -117,7 +117,7 @@ public function actionSaveEvent() 'title' => $event->title, 'status' => $event->getStatus(), 'url' => $event->getUrl(), - 'cpEditUrl' => $event->getCpEditUrl() + 'cpEditUrl' => $event->getCpEditUrl(), ]); } @@ -167,7 +167,7 @@ private function _showEvent(Event $event): Response $this->getView()->getTwig()->disableStrictVariables(); return $this->renderTemplate($siteSettings[$event->siteId]->template, [ - 'event' => $event + 'event' => $event, ]); } } diff --git a/src/controllers/PurchasedTicketsController.php b/src/controllers/PurchasedTicketsController.php index 622aa92..e31f063 100644 --- a/src/controllers/PurchasedTicketsController.php +++ b/src/controllers/PurchasedTicketsController.php @@ -59,10 +59,10 @@ public function actionEdit(int $purchasedTicketId = null, PurchasedTicket $purch $variables['title'] = $variables['purchasedTicket']->ticketSku; } else { $variables['title'] = Craft::t('events', 'Create a Purchased Ticket'); - } - - $variables['fieldLayout'] = $variables['purchasedTicket']->getFieldLayout(); - + } + + $variables['fieldLayout'] = $variables['purchasedTicket']->getFieldLayout(); + return $this->renderTemplate('events/purchased-tickets/_edit', $variables); } @@ -84,8 +84,8 @@ public function actionSave() $purchasedTicket->ticketSku = $request->getParam('ticketSku', $purchasedTicket->ticketSku); $purchasedTicket->checkedIn = $request->getParam('checkedIn', $purchasedTicket->checkedIn); $purchasedTicket->checkedInDate = $request->getParam('checkedInDate', $purchasedTicket->checkedInDate); - - $purchasedTicket->setFieldValuesFromRequest('fields'); + + $purchasedTicket->setFieldValuesFromRequest('fields'); // Save it if (!Craft::$app->getElements()->saveElement($purchasedTicket)) { @@ -135,16 +135,16 @@ public function actionDelete(): Response Craft::$app->getSession()->setNotice(Craft::t('events', 'Purchased ticket deleted.')); return $this->redirectToPostedUrl($purchasedTicket); - } - - public function actionCheckin() - { - $this->requirePostRequest(); - - $purchasedTicketId = Craft::$app->getRequest()->getRequiredParam('id'); - $purchasedTicket = PurchasedTicket::findOne($purchasedTicketId); - - if (!$purchasedTicket) { + } + + public function actionCheckin() + { + $this->requirePostRequest(); + + $purchasedTicketId = Craft::$app->getRequest()->getRequiredParam('id'); + $purchasedTicket = PurchasedTicket::findOne($purchasedTicketId); + + if (!$purchasedTicket) { throw new Exception(Craft::t('events', 'No purchased ticket exists with the ID “{id}”.', ['id' => $purchasedTicketId])); } @@ -162,28 +162,28 @@ public function actionCheckin() return null; } - Events::$plugin->getPurchasedTickets()->checkInPurchasedTicket($purchasedTicket); + Events::$plugin->getPurchasedTickets()->checkInPurchasedTicket($purchasedTicket); - Craft::$app->getSession()->setNotice(Craft::t('events', 'Ticket checked in.')); + Craft::$app->getSession()->setNotice(Craft::t('events', 'Ticket checked in.')); return $this->redirectToPostedUrl($purchasedTicket); - } + } - public function actionUncheckin() - { - $this->requirePostRequest(); + public function actionUncheckin() + { + $this->requirePostRequest(); - $purchasedTicketId = Craft::$app->getRequest()->getRequiredParam('id'); - $purchasedTicket = PurchasedTicket::findOne($purchasedTicketId); - - if (!$purchasedTicket) { + $purchasedTicketId = Craft::$app->getRequest()->getRequiredParam('id'); + $purchasedTicket = PurchasedTicket::findOne($purchasedTicketId); + + if (!$purchasedTicket) { throw new Exception(Craft::t('events', 'No purchased ticket exists with the ID “{id}”.', ['id' => $purchasedTicketId])); } - Events::$plugin->getPurchasedTickets()->unCheckInPurchasedTicket($purchasedTicket); + Events::$plugin->getPurchasedTickets()->unCheckInPurchasedTicket($purchasedTicket); - Craft::$app->getSession()->setNotice(Craft::t('events', 'Ticket un-checked in.')); + Craft::$app->getSession()->setNotice(Craft::t('events', 'Ticket un-checked in.')); return $this->redirectToPostedUrl($purchasedTicket); - } + } } diff --git a/src/controllers/TicketController.php b/src/controllers/TicketController.php index d0df3cc..38ecc3f 100644 --- a/src/controllers/TicketController.php +++ b/src/controllers/TicketController.php @@ -23,7 +23,7 @@ public function actionCheckin(array $variables = array()) { $settings = Events::$plugin->getSettings(); - $sku = Craft::$app->request->getParam('sku'); + $sku = Craft::$app->getRequest()->getParam('sku'); if ($settings->checkinLogin && !Craft::$app->getUser()->checkPermission('events-checkInTickets')) { return $this->_handleResponse([ @@ -88,7 +88,7 @@ private function _handleResponse($variables) return $this->redirect('events/purchased-tickets'); } - $oldMode = Craft::$app->view->getTemplateMode(); + $oldMode = Craft::$app->getView()->getTemplateMode(); $templateMode = View::TEMPLATE_MODE_CP; $template = 'events/check-in'; @@ -97,9 +97,9 @@ private function _handleResponse($variables) $template = $settings->checkinTemplate; } - Craft::$app->view->setTemplateMode($templateMode); - $html = Craft::$app->view->renderTemplate($template, $variables); - Craft::$app->view->setTemplateMode($oldMode); + Craft::$app->getView()->setTemplateMode($templateMode); + $html = Craft::$app->getView()->renderTemplate($template, $variables); + Craft::$app->getView()->setTemplateMode($oldMode); return $html; } diff --git a/src/controllers/TicketTypesController.php b/src/controllers/TicketTypesController.php index ebb2f8f..a0ef9c7 100755 --- a/src/controllers/TicketTypesController.php +++ b/src/controllers/TicketTypesController.php @@ -4,6 +4,7 @@ use verbb\events\Events; use verbb\events\elements\Ticket; use verbb\events\elements\TicketType; + // use verbb\events\models\TicketTypeSite; use Craft; @@ -51,7 +52,7 @@ public function actionEdit(int $ticketTypeId = null, TicketType $ticketType = nu } else { $variables['title'] = Craft::t('events', 'Create a Ticket Type'); } - + return $this->renderTemplate('events/ticket-types/_edit', $variables); } diff --git a/src/elements/Event.php b/src/elements/Event.php index eac1f10..3010649 100755 --- a/src/elements/Event.php +++ b/src/elements/Event.php @@ -37,7 +37,7 @@ class Event extends Element const STATUS_PENDING = 'pending'; const STATUS_EXPIRED = 'expired'; - + // Static // ========================================================================= @@ -87,7 +87,7 @@ public static function statuses(): array self::STATUS_LIVE => Craft::t('app', 'Live'), self::STATUS_PENDING => Craft::t('app', 'Pending'), self::STATUS_EXPIRED => Craft::t('app', 'Expired'), - self::STATUS_DISABLED => Craft::t('app', 'Disabled') + self::STATUS_DISABLED => Craft::t('app', 'Disabled'), ]; } @@ -112,15 +112,17 @@ protected static function defineSources(string $context = null): array $eventTypeIds[] = $eventType->id; } - $sources = [[ - 'key' => '*', - 'label' => Craft::t('events', 'All events'), - 'criteria' => [ - 'typeId' => $eventTypeIds, - 'editable' => $editable, + $sources = [ + [ + 'key' => '*', + 'label' => Craft::t('events', 'All events'), + 'criteria' => [ + 'typeId' => $eventTypeIds, + 'editable' => $editable, + ], + 'defaultSort' => ['postDate', 'desc'], ], - 'defaultSort' => ['postDate', 'desc'], - ]]; + ]; $sources[] = ['heading' => Craft::t('events', 'Event Types')]; @@ -138,7 +140,7 @@ protected static function defineSources(string $context = null): array 'criteria' => [ 'typeId' => $eventType->id, 'editable' => $editable, - ] + ], ]; } @@ -262,11 +264,11 @@ public function rules(): array $ticket->addError('typeIds', Craft::t('events', 'Ticket type must be set.')); } else if (!$ticket->validate()) { $error = $ticket->getErrors()[0] ?? 'An error occured'; - + $this->addError('tickets', Craft::t('events', $error)); } } - } + }, ]; return $rules; @@ -340,7 +342,7 @@ public function getType(): EventType public function getSnapshot(): array { $data = [ - 'title' => $this->title + 'title' => $this->title, ]; return array_merge($this->getAttributes(), $data); @@ -495,7 +497,7 @@ public function updateTitle() // Set Craft to the event's site's language, in case the title format has any static translations $language = Craft::$app->language; Craft::$app->language = $this->getSite()->language; - + $this->title = Craft::$app->getView()->renderObjectTemplate($eventType->titleFormat, $this); Craft::$app->language = $language; } @@ -591,7 +593,7 @@ public function afterSave(bool $isNew) $record = new EventRecord(); $record->id = $this->id; } - + $record->allDay = $this->allDay; $record->capacity = $this->capacity; $record->startDate = $this->startDate; @@ -709,8 +711,8 @@ protected function route() 'variables' => [ 'event' => $this, 'product' => $this, - ] - ] + ], + ], ]; } diff --git a/src/elements/PurchasedTicket.php b/src/elements/PurchasedTicket.php index 7ab7cd7..2ea3917 100644 --- a/src/elements/PurchasedTicket.php +++ b/src/elements/PurchasedTicket.php @@ -35,12 +35,12 @@ public static function pluralDisplayName(): string { return Craft::t('events', 'Purchased Tickets'); } - + public static function refHandle() { return 'purchasedTicket'; } - + public static function hasContent(): bool { return true; @@ -53,10 +53,12 @@ public static function find(): ElementQueryInterface protected static function defineSources(string $context = null): array { - $sources = [[ - 'key' => '*', - 'label' => Craft::t('events', 'All purchased tickets'), - ]]; + $sources = [ + [ + 'key' => '*', + 'label' => Craft::t('events', 'All purchased tickets'), + ], + ]; $eventElements = (new Query()) ->select(['elements.id', 'purchasedtickets.eventId', 'content.title', 'eventtypes.name as eventTypeName']) @@ -280,9 +282,9 @@ public function getCpEditUrl(): string { return UrlHelper::cpUrl('events/purchased-tickets/' . $this->id); } - + public function getFieldLayout() - { + { if ($ticket = $this->getTicket()) { return $ticket->getFieldLayout(); } @@ -419,7 +421,7 @@ public function afterSave(bool $isNew) $purchasedTicketRecord = new PurchasedTicketRecord(); $purchasedTicketRecord->id = $this->id; } - + $purchasedTicketRecord->eventId = $this->eventId; $purchasedTicketRecord->ticketId = $this->ticketId; $purchasedTicketRecord->orderId = $this->orderId; diff --git a/src/elements/Ticket.php b/src/elements/Ticket.php index e8e9780..1894e8c 100755 --- a/src/elements/Ticket.php +++ b/src/elements/Ticket.php @@ -41,7 +41,7 @@ class Ticket extends Purchasable { // Constants // ========================================================================= - + const EVENT_BEFORE_CAPTURE_TICKET_SNAPSHOT = 'beforeCaptureTicketSnapshot'; const EVENT_AFTER_CAPTURE_TICKET_SNAPSHOT = 'afterCaptureTicketSnapshot'; const EVENT_BEFORE_CAPTURE_EVENT_SNAPSHOT = 'beforeCaptureEventSnapshot'; @@ -93,21 +93,23 @@ public static function find(): ElementQueryInterface protected static function defineSources(string $context = null): array { - $sources = [[ - 'key' => '*', - 'label' => Craft::t('events', 'All events'), - 'defaultSort' => ['postDate', 'desc'], - ]]; + $sources = [ + [ + 'key' => '*', + 'label' => Craft::t('events', 'All events'), + 'defaultSort' => ['postDate', 'desc'], + ], + ]; $events = Event::find()->all(); - - $type = null; + + $type = null; foreach ($events as $event) { - if ($event->type->name != $type) { - $type = $event->type->name; - $sources[] = ['heading' => Craft::t('events', '{name} Events', ['name' => $event->type->name])]; - } + if ($event->type->name != $type) { + $type = $event->type->name; + $sources[] = ['heading' => Craft::t('events', '{name} Events', ['name' => $event->type->name])]; + } $key = 'event:' . $event->id; $sources[] = [ @@ -115,7 +117,7 @@ protected static function defineSources(string $context = null): array 'label' => $event->title, 'criteria' => [ 'eventId' => $event->id, - ] + ], ]; } @@ -241,7 +243,7 @@ public function extraAttributes(): array } public function getFieldLayout() - { + { if ($this->getType()) { return $this->getType()->getFieldLayout(); } @@ -491,10 +493,10 @@ public function afterOrderComplete(Order $order, LineItem $lineItem) $purchasedTicket->ticketId = $this->id; $purchasedTicket->orderId = $order->id; $purchasedTicket->lineItemId = $lineItem->id; - $purchasedTicket->ticketSku = TicketHelper::generateTicketSKU(); - + $purchasedTicket->ticketSku = TicketHelper::generateTicketSKU(); + // Set the field values from the ticket (handle defaults, and values set on the ticket) - $purchasedTicket->setFieldValues($this->getSerializedFieldValues()); + $purchasedTicket->setFieldValues($this->getSerializedFieldValues()); // But also allow overriding through the line item options foreach ($lineItem->options as $option => $value) { @@ -569,7 +571,7 @@ public function getSnapshot(): array } $data['event'] = $this->getEvent()->toArray($eventAttributes, [], false); - + $eventDataEvent = new CustomizeEventSnapshotDataEvent([ 'event' => $this->getEvent(), 'fieldData' => $data['event'], @@ -577,7 +579,7 @@ public function getSnapshot(): array } else { $eventDataEvent = new CustomizeEventSnapshotDataEvent([ 'event' => $this->getEvent(), - 'fieldData' => [] + 'fieldData' => [], ]); } diff --git a/src/elements/TicketType.php b/src/elements/TicketType.php index b27be82..415d906 100644 --- a/src/elements/TicketType.php +++ b/src/elements/TicketType.php @@ -59,10 +59,12 @@ public static function find(): ElementQueryInterface protected static function defineSources(string $context = null): array { - $sources = [[ - 'key' => '*', - 'label' => Craft::t('events', 'All ticket types'), - ]]; + $sources = [ + [ + 'key' => '*', + 'label' => Craft::t('events', 'All ticket types'), + ], + ]; return $sources; } @@ -162,7 +164,7 @@ public function afterSave(bool $isNew) $ticketTypeRecord = new TicketTypeRecord(); $ticketTypeRecord->id = $this->id; } - + $ticketTypeRecord->handle = $this->handle; $ticketTypeRecord->taxCategoryId = $this->taxCategoryId; $ticketTypeRecord->shippingCategoryId = $this->shippingCategoryId; diff --git a/src/elements/actions/Checkin.php b/src/elements/actions/Checkin.php index 484aaf9..a059f23 100644 --- a/src/elements/actions/Checkin.php +++ b/src/elements/actions/Checkin.php @@ -11,13 +11,13 @@ class Checkin extends ElementAction { // Public Methods - // ========================================================================= - - public function getTriggerLabel(): string + // ========================================================================= + + public function getTriggerLabel(): string { return Craft::t('events', 'Check in'); - } - + } + /** * @inheritdoc */ diff --git a/src/elements/db/EventQuery.php b/src/elements/db/EventQuery.php index e3d7f5a..4eb7ca7 100644 --- a/src/elements/db/EventQuery.php +++ b/src/elements/db/EventQuery.php @@ -227,14 +227,14 @@ protected function statusCondition(string $status) 'and', [ 'elements.enabled' => true, - 'elements_sites.enabled' => true + 'elements_sites.enabled' => true, ], ['<=', 'events_events.postDate', $currentTimeDb], [ 'or', ['events_events.expiryDate' => null], - ['>', 'events_events.expiryDate', $currentTimeDb] - ] + ['>', 'events_events.expiryDate', $currentTimeDb], + ], ]; case Event::STATUS_PENDING: return [ @@ -243,17 +243,17 @@ protected function statusCondition(string $status) 'elements.enabled' => true, 'elements_sites.enabled' => true, ], - ['>', 'events_events.postDate', $currentTimeDb] + ['>', 'events_events.postDate', $currentTimeDb], ]; case Event::STATUS_EXPIRED: return [ 'and', [ 'elements.enabled' => true, - 'elements_sites.enabled' => true + 'elements_sites.enabled' => true, ], ['not', ['events_events.expiryDate' => null]], - ['<=', 'events_events.expiryDate', $currentTimeDb] + ['<=', 'events_events.expiryDate', $currentTimeDb], ]; default: return parent::statusCondition($status); @@ -277,7 +277,7 @@ private function _applyEditableParam() // Limit the query to only the sections the user has permission to edit $this->subQuery->andWhere([ - 'events_events.typeId' => Events::$plugin->getEventTypes()->getEditableEventTypeIds() + 'events_events.typeId' => Events::$plugin->getEventTypes()->getEditableEventTypeIds(), ]); } @@ -301,7 +301,7 @@ private function _applyRefParam() $condition[] = [ 'and', Db::parseParam('events_eventtypes.handle', $parts[0]), - Db::parseParam('elements_sites.slug', $parts[1]) + Db::parseParam('elements_sites.slug', $parts[1]), ]; $joinSections = true; } diff --git a/src/elements/db/TicketQuery.php b/src/elements/db/TicketQuery.php index e5e178e..5eebdca 100644 --- a/src/elements/db/TicketQuery.php +++ b/src/elements/db/TicketQuery.php @@ -137,7 +137,7 @@ public function customerId($value) protected function beforePrepare(): bool { $this->joinElementTable('events_tickets'); - + $this->query->select([ 'events_tickets.id', 'events_tickets.eventId', diff --git a/src/events/EventTypeEvent.php b/src/events/EventTypeEvent.php index c232f4d..7604dec 100644 --- a/src/events/EventTypeEvent.php +++ b/src/events/EventTypeEvent.php @@ -10,5 +10,5 @@ class EventTypeEvent extends Event public $eventType; public $isNew = false; - + } diff --git a/src/events/TicketTypeEvent.php b/src/events/TicketTypeEvent.php index e800b29..237bca8 100644 --- a/src/events/TicketTypeEvent.php +++ b/src/events/TicketTypeEvent.php @@ -10,5 +10,5 @@ class TicketTypeEvent extends Event public $ticketType; public $isNew = false; - + } diff --git a/src/helpers/ProjectConfigData.php b/src/helpers/ProjectConfigData.php index 0c678ab..c4e694f 100644 --- a/src/helpers/ProjectConfigData.php +++ b/src/helpers/ProjectConfigData.php @@ -37,7 +37,7 @@ private static function _getEventTypeData(): array 'icsTimezone', 'icsDescriptionFieldHandle', 'icsLocationFieldHandle', - 'uid' + 'uid', ]) ->from(['{{%events_eventtypes}} eventTypes']) ->all(); diff --git a/src/helpers/TicketHelper.php b/src/helpers/TicketHelper.php index e977af4..c045afe 100644 --- a/src/helpers/TicketHelper.php +++ b/src/helpers/TicketHelper.php @@ -9,7 +9,7 @@ class TicketHelper { // Properties // ========================================================================= - + const TICKET_KEY_CHARACTERS = 'abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789'; @@ -34,7 +34,7 @@ public static function getTicketRowHtml(): array $footHtml = Craft::$app->getView()->clearJsBuffer(); Craft::$app->getView()->setNamespace($originalNamespace); - + return [ 'bodyHtml' => $bodyHtml, 'footHtml' => $footHtml, @@ -46,7 +46,7 @@ public static function generateTicketSKU() $codeAlphabet = self::TICKET_KEY_CHARACTERS; $keyLength = Events::getInstance()->getSettings()->ticketSKULength; $ticketKey = ''; - + for ($i = 0; $i < $keyLength; $i++) { $ticketKey .= $codeAlphabet[mt_rand(0, strlen($codeAlphabet) - 1)]; } diff --git a/src/integrations/feedme/Event.php b/src/integrations/feedme/Event.php index bf666d4..6472f0d 100644 --- a/src/integrations/feedme/Event.php +++ b/src/integrations/feedme/Event.php @@ -78,9 +78,9 @@ public function getQuery($settings, $params = []) ->anyStatus() ->typeId($settings['elementGroup'][EventElement::class]) ->siteId(Hash::get($settings, 'siteId') ?: Craft::$app->getSites()->getPrimarySite()->id); - + Craft::configure($query, $params); - + return $query; } diff --git a/src/integrations/seomatic/Event.php b/src/integrations/seomatic/Event.php index 595b426..9f88cd2 100644 --- a/src/integrations/seomatic/Event.php +++ b/src/integrations/seomatic/Event.php @@ -85,7 +85,7 @@ public static function installEventHandlers() // Install only for non-console Control Panel requests if ($request->getIsCpRequest() && !$request->getIsConsoleRequest()) { // Events sidebar - Craft::$app->view->hook('events.edit.details', function (&$context) { + Craft::$app->getView()->hook('events.edit.details', function (&$context) { $html = ''; Seomatic::$view->registerAssetBundle(SeomaticAsset::class); diff --git a/src/migrations/Install.php b/src/migrations/Install.php index f89a4ef..0ad8bd6 100644 --- a/src/migrations/Install.php +++ b/src/migrations/Install.php @@ -27,7 +27,7 @@ public function safeDown() return true; } - + // Protected Methods // ========================================================================= @@ -115,9 +115,9 @@ protected function createTables() 'dateCreated' => $this->dateTime()->notNull(), 'dateUpdated' => $this->dateTime()->notNull(), 'uid' => $this->uid(), - ]); + ]); } - + protected function dropTables() { $this->dropTable('{{%events_events}}'); @@ -127,26 +127,26 @@ protected function dropTables() $this->dropTable('{{%events_tickets}}'); $this->dropTable('{{%events_tickettypes}}'); } - + protected function createIndexes() { $this->createIndex(null, '{{%events_events}}', 'typeId', false); - + $this->createIndex(null, '{{%events_eventtypes}}', 'handle', true); $this->createIndex(null, '{{%events_eventtypes}}', 'fieldLayoutId', false); - + $this->createIndex(null, '{{%events_eventtypes_sites}}', 'eventTypeId,siteId', true); $this->createIndex(null, '{{%events_eventtypes_sites}}', 'siteId', false); - + $this->createIndex(null, '{{%events_purchasedtickets}}', 'eventId', false); $this->createIndex(null, '{{%events_purchasedtickets}}', 'ticketId', false); $this->createIndex(null, '{{%events_purchasedtickets}}', 'orderId', false); $this->createIndex(null, '{{%events_purchasedtickets}}', 'lineItemId', false); - + $this->createIndex(null, '{{%events_tickets}}', 'sku', true); $this->createIndex(null, '{{%events_tickets}}', 'eventId', false); $this->createIndex(null, '{{%events_tickets}}', 'typeId', false); - + $this->createIndex(null, '{{%events_tickettypes}}', 'handle', true); $this->createIndex(null, '{{%events_tickettypes}}', 'taxCategoryId', false); $this->createIndex(null, '{{%events_tickettypes}}', 'shippingCategoryId', false); @@ -157,28 +157,28 @@ protected function addForeignKeys() { $this->addForeignKey(null, '{{%events_events}}', 'id', '{{%elements}}', 'id', 'CASCADE', null); $this->addForeignKey(null, '{{%events_events}}', 'typeId', '{{%events_eventtypes}}', 'id', 'CASCADE', null); - + $this->addForeignKey(null, '{{%events_eventtypes}}', 'fieldLayoutId', '{{%fieldlayouts}}', 'id', 'SET NULL', null); - + $this->addForeignKey(null, '{{%events_eventtypes_sites}}', 'eventTypeId', '{{%events_eventtypes}}', 'id', 'CASCADE', null); $this->addForeignKey(null, '{{%events_eventtypes_sites}}', 'siteId', '{{%sites}}', 'id', 'CASCADE', 'CASCADE'); - + $this->addForeignKey(null, '{{%events_purchasedtickets}}', 'id', '{{%elements}}', 'id', 'CASCADE', null); $this->addForeignKey(null, '{{%events_purchasedtickets}}', 'eventId', '{{%events_events}}', 'id', 'SET NULL', null); $this->addForeignKey(null, '{{%events_purchasedtickets}}', 'lineItemId', '{{%commerce_lineitems}}', 'id', 'SET NULL', null); $this->addForeignKey(null, '{{%events_purchasedtickets}}', 'orderId', '{{%commerce_orders}}', 'id', 'SET NULL', null); $this->addForeignKey(null, '{{%events_purchasedtickets}}', 'ticketId', '{{%events_tickets}}', 'id', 'SET NULL', null); - + $this->addForeignKey(null, '{{%events_tickets}}', 'eventId', '{{%events_events}}', 'id', 'CASCADE', null); $this->addForeignKey(null, '{{%events_tickets}}', 'id', '{{%elements}}', 'id', 'CASCADE', null); $this->addForeignKey(null, '{{%events_tickets}}', 'typeId', '{{%events_tickettypes}}', 'id', 'CASCADE', null); - + $this->addForeignKey(null, '{{%events_tickettypes}}', 'fieldLayoutId', '{{%fieldlayouts}}', 'id', 'SET NULL', null); $this->addForeignKey(null, '{{%events_tickettypes}}', 'id', '{{%elements}}', 'id', 'CASCADE', null); $this->addForeignKey(null, '{{%events_tickettypes}}', 'shippingCategoryId', '{{%commerce_shippingcategories}}', 'id', null, null); $this->addForeignKey(null, '{{%events_tickettypes}}', 'taxCategoryId', '{{%commerce_taxcategories}}', 'id', null, null); } - + protected function dropForeignKeys() { MigrationHelper::dropAllForeignKeysOnTable('{{%events_events}}', $this); diff --git a/src/migrations/m200118_000000_resave_purchased_tickets.php b/src/migrations/m200118_000000_resave_purchased_tickets.php index bd69be7..5781cdd 100644 --- a/src/migrations/m200118_000000_resave_purchased_tickets.php +++ b/src/migrations/m200118_000000_resave_purchased_tickets.php @@ -12,7 +12,7 @@ class m200118_000000_resave_purchased_tickets extends Migration public function safeUp() { Craft::$app->getQueue()->push(new ResaveElements([ - 'elementType' => PurchasedTicket::class + 'elementType' => PurchasedTicket::class, ])); return true; diff --git a/src/migrations/m204014_000000_cleanup_columns.php b/src/migrations/m204014_000000_cleanup_columns.php index 72015ec..4ac00d1 100644 --- a/src/migrations/m204014_000000_cleanup_columns.php +++ b/src/migrations/m204014_000000_cleanup_columns.php @@ -16,7 +16,7 @@ class m204014_000000_cleanup_columns extends Migration { public function safeUp() - { + { if ($this->db->getIsMysql()) { $this->alterColumn('{{%events_eventtypes}}', 'dateCreated', $this->dateTime()->notNull() . " AFTER icsLocationFieldHandle"); $this->alterColumn('{{%events_eventtypes}}', 'dateUpdated', $this->dateTime()->notNull() . " AFTER dateCreated"); diff --git a/src/models/EventType.php b/src/models/EventType.php index 990f5b3..42f335a 100755 --- a/src/models/EventType.php +++ b/src/models/EventType.php @@ -49,8 +49,8 @@ public function behaviors() 'eventFieldLayout' => [ 'class' => FieldLayoutBehavior::class, 'elementType' => Event::class, - 'idAttribute' => 'fieldLayoutId' - ] + 'idAttribute' => 'fieldLayoutId', + ], ]; } @@ -132,10 +132,12 @@ public function getEventFieldLayout(): FieldLayout public function getEventFieldHandles() { - $fieldList = [[ - 'label' => Craft::t('events', 'None'), - 'value' => '', - ]]; + $fieldList = [ + [ + 'label' => Craft::t('events', 'None'), + 'value' => '', + ], + ]; if ($this->getFieldLayout()) { foreach ($this->getFieldLayout()->getFields() as $field) { diff --git a/src/models/EventTypeSite.php b/src/models/EventTypeSite.php index f4d5aca..6e1e921 100755 --- a/src/models/EventTypeSite.php +++ b/src/models/EventTypeSite.php @@ -64,7 +64,7 @@ public function getSite(): Site if (($this->_site = Craft::$app->getSites()->getSiteById($this->siteId)) === null) { throw new InvalidConfigException('Invalid site ID: ' . $this->siteId); } - + return $this->_site; } diff --git a/src/services/EventTypes.php b/src/services/EventTypes.php index aa203dd..9bb3ebc 100755 --- a/src/services/EventTypes.php +++ b/src/services/EventTypes.php @@ -143,7 +143,7 @@ public function getEventTypeSites($eventTypeId): array 'siteId', 'uriFormat', 'hasUrls', - 'template' + 'template', ]) ->from('{{%events_eventtypes_sites}}') ->where(['eventTypeId' => $eventTypeId]) @@ -205,7 +205,7 @@ public function saveEventType(EventType $eventType, bool $runValidation = true): 'icsTimezone' => $eventType->icsTimezone, 'icsDescriptionFieldHandle' => $eventType->icsDescriptionFieldHandle, 'icsLocationFieldHandle' => $eventType->icsLocationFieldHandle, - 'siteSettings' => [] + 'siteSettings' => [], ]; $generateLayoutConfig = function(FieldLayout $fieldLayout): array { @@ -293,7 +293,7 @@ public function handleChangedEventType(ConfigEvent $event) $layout->id = $eventTypeRecord->fieldLayoutId; $layout->type = Event::class; $layout->uid = key($data['eventFieldLayouts']); - + $fieldsService->saveLayout($layout); $eventTypeRecord->fieldLayoutId = $layout->id; @@ -428,7 +428,7 @@ public function handleChangedEventType(ConfigEvent $event) $this->_allEventTypeIds = null; $this->_editableEventTypeIds = null; $this->_fetchedAllEventTypes = false; - + unset( $this->_eventTypesById[$eventTypeRecord->id], $this->_eventTypesByHandle[$eventTypeRecord->handle], @@ -596,7 +596,8 @@ public function afterSaveSiteHandler(SiteEvent $event) 'eventTypes.uid eventTypeUid', 'eventtypes_sites.uriFormat', 'eventtypes_sites.template', - 'eventtypes_sites.hasUrls']) + 'eventtypes_sites.hasUrls', + ]) ->from(['{{%events_eventtypes_sites}} eventtypes_sites']) ->innerJoin(['{{%events_eventtypes}} eventTypes'], '[[eventtypes_sites.eventTypeId]] = [[eventTypes.id]]') ->where(['siteId' => $event->oldPrimarySiteId]) @@ -606,7 +607,7 @@ public function afterSaveSiteHandler(SiteEvent $event) $newSiteSettings = [ 'uriFormat' => $primarySiteSettings['uriFormat'], 'template' => $primarySiteSettings['template'], - 'hasUrls' => $primarySiteSettings['hasUrls'] + 'hasUrls' => $primarySiteSettings['hasUrls'], ]; Craft::$app->getProjectConfig()->set(self::CONFIG_EVENTTYPES_KEY . '.' . $primarySiteSettings['eventTypeUid'] . '.siteSettings.' . $event->site->uid, $newSiteSettings); diff --git a/src/services/Events.php b/src/services/Events.php index 6113d87..a88eeb4 100755 --- a/src/services/Events.php +++ b/src/services/Events.php @@ -37,7 +37,7 @@ public function afterSaveSiteHandler(SiteEvent $event) 'siteId' => $siteId, 'status' => null, 'enabledForSite' => false, - ] + ], ])); } } diff --git a/src/services/Pdf.php b/src/services/Pdf.php index 2d7999f..235c746 100644 --- a/src/services/Pdf.php +++ b/src/services/Pdf.php @@ -55,7 +55,7 @@ public function renderPdf($tickets, $order = [], $lineItem = null, $option = '', $request = Craft::$app->getRequest(); $format = $request->getParam('format'); - if (null === $templatePath){ + if (null === $templatePath) { $templatePath = $settings->ticketPdfPath; } diff --git a/src/services/PurchasedTickets.php b/src/services/PurchasedTickets.php index e3798d3..64fc159 100644 --- a/src/services/PurchasedTickets.php +++ b/src/services/PurchasedTickets.php @@ -36,9 +36,9 @@ public function checkInPurchasedTicket(PurchasedTicket $purchasedTicket) $record->checkedInDate = $purchasedTicket->checkedInDate; $record->save(false); - } - - public function unCheckInPurchasedTicket(PurchasedTicket $purchasedTicket) + } + + public function unCheckInPurchasedTicket(PurchasedTicket $purchasedTicket) { $purchasedTicket->checkedIn = false; $purchasedTicket->checkedInDate = null; diff --git a/src/translations/en/events.php b/src/translations/en/events.php new file mode 100644 index 0000000..ca5d8ed --- /dev/null +++ b/src/translations/en/events.php @@ -0,0 +1,5 @@ + Date: Tue, 28 Jun 2022 10:38:26 +1000 Subject: [PATCH 3/3] version 1.4.21 --- CHANGELOG.md | 8 ++++++++ composer.json | 2 +- 2 files changed, 9 insertions(+), 1 deletion(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index bbbe7ed..dd8547d 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,5 +1,13 @@ # Changelog +## 1.4.12 - 2022-06-28 + +### Changed +- `jsvrcek/ics` dependency updated for php 8.0 support. + +### Fixed +- Fix PDF generation URLs not being correct in headless environments. + ## 1.4.20 - 2021-10-30 ### Fixed diff --git a/composer.json b/composer.json index 2168b1a..24dc944 100644 --- a/composer.json +++ b/composer.json @@ -2,7 +2,7 @@ "name": "verbb/events", "description": "Events is a full-featured Craft CMS Plugin for event management and ticketing. Events integrates with Craft Commerce so you can easily sell tickets to your events.", "type": "craft-plugin", - "version": "1.4.20", + "version": "1.4.21", "keywords": [ "craft", "cms",