\Marketing\Events\Recurring
Templating
Global Functions
Website
\Components\Website\Designs \Components\Website\Media \Components\Website\Pages \Components\Website\Pages\Forms \Components\Website\Posts \Components\Website\Posts\Categories
Customers
\Components\Customers\Contacts \Components\Customers\Contacts\Relationships \Components\Customers\Contacts\Relationships\Types \Components\Customers\Groups
Marketing
\Components\Marketing\EmailMarketing \Components\Marketing\Events \Components\Marketing\Events\Attendees \Components\Marketing\Events\Categories \Components\Marketing\Events\Locations \Components\Marketing\Events\Recurring
METHODS
\Components\Marketing\Events\Recurring\Rules \Components\Marketing\SMSMarketing
Commerce
\Components\Commerce\Carts \Components\Commerce\Carts\Current \Components\Commerce\Discounts \Components\Commerce\Products \Components\Commerce\Products\Brands \Components\Commerce\Products\Categories \Components\Commerce\Products\Inventory \Components\Commerce\RecurringSales\Items \Components\Commerce\Sales \Components\Commerce\Sales\Items \Components\Commerce\Sales\Receipts \Components\Commerce\Sales\Receipts\Allocations
Settings
\Components\Settings\Administrators \Components\Settings\CustomFields \Components\Settings\Domains
Other Apps
\Components\Website\Comments \Components\Commerce\Affiliates \Components\Commerce\Affiliates\Administrators \Components\Commerce\Affiliates\Commissions \Components\Commerce\Affiliates\Payments \Components\Commerce\RecurringSales \Components\Commerce\RecurringSales\StoredCards
Framework
\Framework\Caching \Framework\Data\Util \Framework\DOM\CurrentContext \Framework\HTML\Converters \Framework\HTTP\Cookies \Framework\HTTP\Redirection \Framework\HTTP\Request \Framework\HTTP\Session \Framework\HTTP\TabState \Framework\HTTP\UserAgent \Framework\I18N\CompanyTypes \Framework\I18N\Countries \Framework\I18N\Languages

Recurring

Maintains recurring event series by generating normal marketing_events rows.

Methods

Invoke via \Components\Marketing\Events\Recurring::method()
Click a method name to copy it.
- ` string buildGenerationKey($iSeriesId, $iRuleId, $strOriginalDate) `
Build a deterministic generation key for an occurrence.
Parameters:
- $iSeriesId
mixed
- $iRuleId
mixed
- $strOriginalDate
mixed
Return
string
- ` int cronGenerate() `
Run the recurring event maintenance task for every active series.
Return
Number of newly created events.
- ` \Iterator dbGetAllIterable($arrQuery) `
Returns the raw rows dbGetAll() would return as an iterator, without building them all into an array

The dbGetAll() counterpart of getAllIterable(), for scans over every stored row of a large table (eg: the site-wide content scans in \Framework\Developer\Refactoring). Rows are as stored - JSON fields are not decoded - and are not entity-cached. Because it bypasses getAll(), components that override getAll() are iterated; search queries and components overriding dbGetAll() are refused.
Parameters:
- $arrQuery
mixed
Return
Yields Recurrings
- ` array eventToRecurringFields($arrEvent, $bIncludeSubEvents) `
Copy a normal event into recurring-series fields as a one-time draft import.
Parameters:
- $arrEvent
mixed
- $bIncludeSubEvents
mixed
Return
array
- ` array expandCandidates($arrSeries) `
Expand a recurring series into candidate occurrence rows.
Parameters:
- $arrSeries
mixed
Return
array
- ` array expandCandidatesForRules($arrSeries, $arrRules, $mUnused, $bUnused) `
Expand a recurring series using the supplied rules.
Parameters:
- $arrSeries
mixed
- $arrRules
mixed
- $mUnused
mixed
- $bUnused
mixed
Return
array
- ` array fieldsGetAll($bCached) `
Returns all the columns this component supports
Parameters:
- $bCached
mixed
Return
array
- ` int generateFutureOccurrences($iSeriesId) `
Ensure that a recurring event series has its configured future occurrence count.
Parameters:
- $iSeriesId
mixed
Return
Number of newly created main events.
- ` array generateOccurrence($iSeriesId, $iRuleId, $strOccurrenceDate) `
Generate one saved schedule occurrence immediately.
Parameters:
- $iSeriesId
mixed
- $iRuleId
mixed
- $strOccurrenceDate
mixed
Return
[event_id, created]
- ` bool generationKeyIsSkipped($arrSeries, $strGenerationKey) `
Return whether a generation key belongs to a deleted occurrence.
Parameters:
- $arrSeries
mixed
- $strGenerationKey
mixed
Return
bool
- ` array get($iEventRecurringSeriesId) `
Gets a record from the database
Parameters:
- $iEventRecurringSeriesId
int unsigned
A record's event_recurring_series_id
Return
- ` array getAll($arrQuery) `
Return a set of records from the database
Parameters:
- $arrQuery
mixed
Return
Array of Recurrings
- ` \Iterator getAllIterable($arrQuery) `
Returns the entities getAll() would return as an iterator, without building them all into an array

For result sets too large to hold as arrays (eg: every recipient of a marketing send) - only the database driver's compact buffer of the result is held, a fraction of getAll()'s memory. Runs the same SQL as getAll(), and runs it now, as getAll() would; rows are decoded as you iterate.
Search queries are not supported, rows are not entity-cached, and components that override getAll() or dbGetAll() (eg: merging in defaults) are refused rather than iterated without their extra rows.
Parameters:
- $arrQuery
mixed
Return
Yields Recurrings
- ` mixed getColumn($iEventRecurringSeriesId, $strColumn) `
Gets a single field from a record
Parameters:
- $iEventRecurringSeriesId
int unsigned
A record's event_recurring_series_id
- $strColumn
mixed
Return
mixed
- ` int getCount($arrFilter) `
Returns the number of records in the database (matching the filter if specified)
Parameters:
- $arrFilter
mixed
Return
int
- ` array getEventFieldMap() `
Return the normal event fields mirrored by a recurring event series.
Return
array
- ` int getFutureOccurrenceCount($iSeriesId) `
Return the number of future top-level events generated for a series.
Parameters:
- $iSeriesId
mixed
Return
int
- ` array getGeneratedEvents($iSeriesId, $arrQuery) `
Return generated top-level events for a series.
Parameters:
- $iSeriesId
mixed
- $arrQuery
mixed
Return
array
- ` array getOccurrenceCandidate($iSeriesId, $iRuleId, $strOccurrenceDate) `
Return a candidate for one saved schedule occurrence.
Parameters:
- $iSeriesId
mixed
- $iRuleId
mixed
- $strOccurrenceDate
mixed
Return
array
- ` array getOccurrenceOverrides($arrSeries) `
Return moved occurrence starts as UTC datetimes, keyed by generation key.

An override moves one occurrence (its end keeps the scheduled duration) while the generated event stays attached to the series.
Parameters:
- $arrSeries
mixed
Return
array
- ` array getRecurringCategoryIds($arrSeries) `
Return category ids mirrored by the recurring series.
Parameters:
- $arrSeries
mixed
Return
array
- ` bool delete($iEventRecurringSeriesId, $bDeleteMedia) `
Deletes a record from the database
Parameters:
- $iEventRecurringSeriesId
int unsigned
A record's event_recurring_series_id
- $bDeleteMedia
mixed
Return
Returns true if record existed and was deleted, otherwise false
- ` array getRecurringSubEventDetails($arrSeries) `
Return embedded sub-event details for a recurring series.
Parameters:
- $arrSeries
mixed
Return
array
- ` array getSkippedGenerationKeys($arrSeries) `
Return generation keys of deleted occurrences that must not be recreated.
Parameters:
- $arrSeries
mixed
Return
array
- ` string getStatusTitle($strStatus) `
Return a display title for a recurring event status.
Parameters:
- $strStatus
mixed
Return
string
- ` array getStatuses() `
Return status options for recurring event series.
Return
array
- ` void pause($arrSeriesIds) `
Pause a recurring event series.
Parameters:
- $arrSeriesIds
mixed
- ` array previewOccurrenceImpacts($arrSeries, $arrRules, $mUnused, $iLimit) `
Return a read-only preview of what generation would do.
Parameters:
- $arrSeries
mixed
- $arrRules
mixed
- $mUnused
mixed
- $iLimit
mixed
Return
array
- ` array recurringToEventDetails($arrSeries, $arrRule) `
Build normal event-shaped details from the recurring series fields.
Parameters:
- $arrSeries
mixed
- $arrRule
mixed
Return
array
- ` array regenerateOccurrence($iSeriesId, $iRuleId, $strOccurrenceDate) `
Regenerate one saved schedule occurrence from the recurring event details.
Parameters:
- $iSeriesId
mixed
- $iRuleId
mixed
- $strOccurrenceDate
mixed
Return
[event_id, created, regenerated]
- ` string renderAdmin($arrEntity) `
Render a linked recurring event title for admin contexts.
Parameters:
- $arrEntity
mixed
Return
string
- ` string renderAdminText($arrEntity, $bRenderImage) `
Render a recurring event title for admin contexts.
Parameters:
- $arrEntity
mixed
- $bRenderImage
mixed
Return
string
- ` string renderSchedule($arrEntity) `
Render the rule schedule for a recurring event series.
Parameters:
- $arrEntity
mixed
Return
string
- ` void resume($arrSeriesIds) `
Resume a recurring event series.
Parameters:
- $arrSeriesIds
mixed
- ` string|int save($arrEntity) `
Saves a record into the database
Parameters:
- $arrEntity
mixed
Return
string|int
- ` void saveColumn($iEventRecurringSeriesId, $strColumn, $strValue) `
Saves a specific column of a row into a database
Parameters:
- $iEventRecurringSeriesId
int unsigned
A record's event_recurring_series_id
- $strColumn
mixed
- $strValue
mixed
- ` array search($strSearch, $arrQuery) `
Performs a search
Parameters:
- $strSearch
mixed
- $arrQuery
mixed
Return
Array of Recurrings that match the search query.
- ` void updateGenerationStats($iSeriesId) `
Update operational counts for a series.
Parameters:
- $iSeriesId
mixed

Database Fields

The following fields are used when retrieving and saving entities:
- `event_recurring_series_id`
int unsigned (10)
- `event_recurring_title`
string (255)
- `event_recurring_icon`
string (255)
- `event_recurring_is_offline`
0 or 1
- `event_recurring_capacity`
int (10)
- `event_recurring_rsvp_deadline_datetime`
datetime
- `event_recurring_capacity_restrictive`
0 or 1
- `event_recurring_attendance_via_qrcode`
0 or 1
- `event_recurring_location_id`
int (10)
- `event_recurring_description`
string (65535)
- `event_recurring_description_short`
string (65535)
- `event_recurring_external_rsvp_url`
string (65535)
- `event_recurring_rsvp_disabled`
0 or 1
- `event_recurring_custom_fields`
string (65535)
- `event_recurring_allow_alternate_rsvp`
0 or 1
- `event_recurring_allow_guest_rsvp`
0 or 1
- `event_recurring_attendee_company_rsvp`
0 or 1
- `event_recurring_linked_product`
int (10)
- `event_recurring_enable_product_order_options`
0 or 1
- `event_recurring_linked_guest_product`
int (10)
- `event_recurring_allow_maybe_rsvp`
0 or 1
- `event_recurring_requires_invitation`
tinyint (4)
- `event_recurring_require_phone`
0 or 1
- `event_recurring_guests_price`
decimal unsigned (10,4)
- `event_recurring_require_address`
0 or 1
- `event_recurring_require_dob`
0 or 1
- `event_recurring_guests_require_registration`
0 or 1
Default value: 1
- `event_recurring_guests_require_email`
0 or 1
- `event_recurring_guests_require_phone`
int (1)
- `event_recurring_guests_require_dob`
0 or 1
- `event_recurring_guests_custom_fields`
string (65535)
- `event_recurring_sub_event_registration_mode`
string (32)
Default value: optional
- `event_recurring_sub_event_registration_optional`
0 or 1
Default value: 1
- `event_recurring_sub_event_direct_rsvp_enabled`
0 or 1
- `event_recurring_category_ids`
string (65535)
- `event_recurring_sub_events`
string (65535)
- `event_recurring_skipped_generation_keys`
string (65535)
- `event_recurring_occurrence_overrides`
string (65535)
- `event_recurring_status`
Default value: active
- `event_recurring_timezone`
string (255)
- `event_recurring_start_date`
date
- `event_recurring_end_date`
date
- `event_recurring_min_future_occurrences`
int unsigned (10)
Default value: 6
- `event_recurring_max_generation_window_days`
int unsigned (10)
Default value: 730
- `event_recurring_generation_batch_limit`
int unsigned (10)
Default value: 50
- `event_recurring_clone_products`
0 or 1
Default value: 1
- `event_recurring_generated_count`
int unsigned (10)
- `event_recurring_last_generated_datetime`
datetime
- `event_recurring_next_candidate_datetime`
datetime
- `event_recurring_completed_datetime`
datetime
- `event_recurring_created_datetime`
datetime
- `event_recurring_modified_datetime`
datetime