EventCollection
class EventCollection extends Collection
Traits
Constants
| SORT_ALPHABETICAL |
|
| SORT_NUMERICAL |
|
| SORT_ASC |
|
| SORT_DESC |
|
| EVENT_AFTER_LOAD |
|
| FILTER_MY_EVENTS_ALL |
|
| FILTER_MY_EVENTS_ORGANIZING |
|
| FILTER_MY_EVENTS_PARTICIPATING |
|
Properties
| protected Model | $model | reference to model-type |
from ModelCollection |
| protected bool|Model[] | $models | Array of models in this collection |
from ModelCollection |
| protected bool | $loaded | Boolean which indicates whether collection is loaded or not (not equal empty!) |
from ModelCollection |
| bool | $canBeScoped | ModelCollection cannot be scoped anymore if manual changes have been made |
from ModelCollection |
| EventplannerController | $mod | ||
| static bool | $isDocumentModel | from Collection |
Methods
Called after cloning a collection and makes sure that model reference is cloned as well
Create new Model Array
returns model found by property => value
Apply lib->format multi_format on passed property. The result will be written to ->[property]_formatted
Apply related collection scopes, assumes 1:n relation
Apply related collection scopes, assumes n:1/n:m relation
Set property values to models from array
Runs the passed function batched for the passed amount of models to reduce memory issues while creating too many model objects at once This function should be called on an unloaded Collection to be most effective This method is ignoring any limits which might have been set on the scopeQuery!
Returns the number of containing models Attention: This will load all models of the collection Use $model_collection->count_all() for this case to determine count without loading all models Note: this function is called if the php function count(this_collection) is used
Return the maximum number of items in this collection, will return the count of all items in the database if the collection is a scoped collection and ignore limits set. Will return local count for manual collections
Creates a delete statement for the scoped collection and executes it.
Filter Collection by category_id
Scope the Collection with $start date and/or $end date on the given $dateProperty.
Filter a DocumentCollection by using a DocumentIndexCollection
Filter and show only events in the future
No description
No description
Apply filter scopes based on a relation, e.g. filter a UserCollection by using user_id from your DocumentCollection This function is similar to ->scope_by_id($referencingCollection->pluck('related_id')) but will avoid db calls and minimize queries whenever possible.
Apply filter scopes based on a relation, e.g. filter a ArticleCollection by using id from a UserCollection This function is similar to ->scope_by_user_id($userCollection->pluck('id')) but will avoid db calls and minimize queries whenever possible.
Filter events for a specific date range Will remove a potential future filter
Returns articles if they are in one of the given tags.
No description
Fullfill API Request and return result
Prefetch and returns document index objects for all items of this collection.
No description
Returns a DocumentIndexCollection which is NOT loaded
Get the Condition for simple text search/filter
Get generic description of collection for webservice API
Returns a closure that adds an AfterLoadListener to filter elements of a reference collection and attach them as expand property to this collection, e.g. articles referencing to user by user_id
Apply XELOS Query Language Object
- [Optional] Apply $filter
- [Optional] Apply $pagination
- [Optional] Populate $expand
- [Optional] Remove fields which are not required by $select
Is collection filtered by startAndEnd? This function is NOT filterung futureEvents, its purpose is to detect a manual date scope (facet)
Use init for default sort order of your collection
Returns true if the collection has no manual modifications yet
DESTRUCTIVE This will manipulate the models-list and doesn't return anything!
No description
Returns the passed property of all objects in an array
Returns the passed property. In contrast to pluck() this function does not use the loaded models but uses a SQL query to retrieve the values Attention: This returns the RAW database values
Returns the passed property of all objects in an array (unique and filtered)
this function returns the last value of the models-array, shortening the models-array by one element.
Map internal collection information to fulfill the promised ParameterObject
Preload Document Indexes for the Models in this collection Make sure to add this listener before using documentindexes in other populate functions
No description
Populate common document statistics: comments, likes, views
Read tags associated with the current documents and attach the corresponding tags to the models
No description
Preload Document Indexes for the Models in this collection Make sure to add this listener before using documentindexes in other populate functions
Add participant status for current user
Read associated users from property and attach the corresponding model
this function treats models-array as a stack, and pushes the passed variables onto the end of array.
If the collection is not loaded yet the collection will use all() to be filled
Resets the loaded collection by clearing all loaded models and marking the collection as not being loaded.
Remove existing conditions previously applied to start and end
DESTRUCTIVE This will manipulate the models-list and doesn't return anything!
Set this ModelCollection as loaded and empty collection
Setting model manually in a collection will set the collection prefilled/not scopable
This function shifts the first value of the models-array off and returns it, shortening the array by one element and moving everything down.
DESTRUCTIVE This will manipulate the models-list and doesn't return anything!
Sorts the current Collection by given Property-Name
Returns the sum of the passed property across all models
Returns collection as array of models
Returns an XML of all model properties
This function prepends passed elements to the front of the array.
Creates an update statement for the scoped collection and executes it.
DESTRUCTIVE This will manipulate the models-list and doesn't return anything!
Details
in
ModelCollection at line 254
mixed
__call(mixed $method, mixed $args = array())
Handle find functions
in
ModelCollection at line 1507
__clone()
Called after cloning a collection and makes sure that model reference is cloned as well
in
ModelCollection at line 101
__construct(Model $model, array|ModelCollection $model_array = null, bool $useModelClone = true)
Create new Model Array
in
ModelCollection at line 967
__toString()
No description
in
ModelCollection at line 666
protected Model|ModelCollection|null
_search_by(string $query, array|bool $parameters = false, bool $return_single = true)
returns model found by property => value
in
Collection at line 72
int|int[]
addAfterLoadListener(callable $function)
No description
in
ModelCollection at line 954
add_formatted_property(string $property, string $format, array $options = array())
Apply lib->format multi_format on passed property. The result will be written to ->[property]_formatted
in
Collection at line 28
self
all(array $args = [])
No description
in
ModelCollection at line 1049
void
append(Model $model)
Adds an Object to the models-array.
It will be appended after the last position of array
in
Collection at line 526
final static
applyScopeFromReferencingCollection(Collection $primaryCollection, Collection $referencingCollection, string $referenceKeyField = null)
Apply related collection scopes, assumes 1:n relation
in
Collection at line 576
final static
applyScopeFromRelatedCollection(Collection $primaryCollection, Collection $relatedCollection, string $foreignKeyFieldToRelatedCollection = null)
Apply related collection scopes, assumes n:1/n:m relation
in
XQLCollectionTrait at line 36
protected XQLCollectionTrait
applyXQLFilter(XQL $XQL, ParameterObject|null $parameterObject = null)
No description
in
XQLCollectionTrait at line 82
protected XQLCollectionTrait
applyXQLPagination(XQL $XQL)
Apply XQL Pagination to current Collection
Return information / stats about applied pagination
in
Collection at line 28
void
array() $int, T> $etIterator()
No description
in
ModelCollection at line 631
attach(string $property, array $values, string $key_field = null)
Set property values to models from array
in
ModelCollection at line 483
batchProcess(int $batchSize, callable $callback)
Runs the passed function batched for the passed amount of models to reduce memory issues while creating too many model objects at once This function should be called on an unloaded Collection to be most effective This method is ignoring any limits which might have been set on the scopeQuery!
in
ModelCollection at line 1028
int
count()
Returns the number of containing models Attention: This will load all models of the collection Use $model_collection->count_all() for this case to determine count without loading all models Note: this function is called if the php function count(this_collection) is used
in
ModelCollection at line 1543
int
countAll()
Return the maximum number of items in this collection, will return the count of all items in the database if the collection is a scoped collection and ignore limits set. Will return local count for manual collections
in
ModelCollection at line 1555
int
count_all()
deprecated
deprecated
No description
at line 24
static EventCollection
create(Event $model)
No description
in
ModelCollection at line 1416
array
debug()
Use for debugging
in
Collection at line 118
mixed
delete()
Creates a delete statement for the scoped collection and executes it.
When there's no scope defined, throws a LogicException to prevent an accidental delete of the whole table.
in
Collection at line 596
void
filter(mixed $callback = false)
No description
at line 156
EventCollection
filterByCategory(array $categoryIds)
Filter Collection by category_id
in
Collection at line 483
Collection
filterByDateRange(DateTime|null $start = null, DateTime|null $end = null, string $dateProperty = 'updated_at')
Scope the Collection with $start date and/or $end date on the given $dateProperty.
in
Collection at line 167
Collection
filterByDocumentIndexCollection(DocumentIndexCollection $documentIndexCollection)
Filter a DocumentCollection by using a DocumentIndexCollection
at line 104
EventCollection
filterByFutureEvents()
Filter and show only events in the future
at line 34
EventCollection
filterByIsReadable(bool $ignoreGroups = false)
No description
at line 54
EventCollection
filterByIsWriteable(bool $ignoreGroups = false)
No description
in
Collection at line 511
Collection
filterByReferencingCollection(Collection $referencingCollection, string $referenceKeyField = null)
Apply filter scopes based on a relation, e.g. filter a UserCollection by using user_id from your DocumentCollection This function is similar to ->scope_by_id($referencingCollection->pluck('related_id')) but will avoid db calls and minimize queries whenever possible.
in
Collection at line 564
Collection
filterByRelatedCollection(Collection $relatedCollection)
Apply filter scopes based on a relation, e.g. filter a ArticleCollection by using id from a UserCollection This function is similar to ->scope_by_user_id($userCollection->pluck('id')) but will avoid db calls and minimize queries whenever possible.
in
Collection at line 455
Collection
filterBySearchQuery(string $searchQuery)
No description
at line 129
EventCollection
filterByStartAndEnd(int $startDateTS, int $endDateTS = null)
Filter events for a specific date range Will remove a potential future filter
in
Collection at line 146
Collection
filterByTags(array $tags, int|null $postType = null)
Returns articles if they are in one of the given tags.
at line 72
EventCollection
filterMyEvents(string $filter = EventCollection::FILTER_MY_EVENTS_ALL)
No description
in
ModelCollection at line 1260
Model|null
first()
Get first model of collection, without shifting
in
XQLCollectionTrait at line 215
array
getAPIResult(ParameterObject|null $parameterObject = null, PartitionQuery|null $partitionQuery = null)
Fullfill API Request and return result
in
ModelCollection at line 195
DocumentIndexCollection
getDocumentIndexes()
Prefetch and returns document index objects for all items of this collection.
at line 24
Event[]
getIterator()
No description
in
ModelCollection at line 219
DocumentIndexCollection
getRelatedDocumentIndexCollection()
Returns a DocumentIndexCollection which is NOT loaded
in
Collection at line 463
protected ConditionGroup
getSearchQueryConditionGroup(string $searchQuery)
Get the Condition for simple text search/filter
in
XQLCollectionTrait at line 26
static ParameterObject
getWebserviceParameterObject()
Get generic description of collection for webservice API
in
XQLCollectionTrait at line 304
static protected Closure
getXQLReferenceClosure(Collection $referenceCollection, string $expandToProperty = null, string $referenceKeyField = null)
Returns a closure that adds an AfterLoadListener to filter elements of a reference collection and attach them as expand property to this collection, e.g. articles referencing to user by user_id
in
XQLCollectionTrait at line 124
final array
getXQLResult(XQL|null $XQL, string|null $partitionColumn = null, bool $hasManyRelation = true)
Apply XELOS Query Language Object
- [Optional] Apply $filter
- [Optional] Apply $pagination
- [Optional] Populate $expand
- [Optional] Remove fields which are not required by $select
in
ModelCollection at line 1404
array|bool
get_db_properties()
No description
in
ModelCollection at line 1397
Model
get_model()
Returns the Default-Model (-Type) for this Collection
in
ModelCollection at line 120
string
get_model_class()
put your comment there.
..
in
ModelCollection at line 128
array|Model[]
get_models()
Returns array with objects
at line 145
bool
hasFilterStart()
Is collection filtered by startAndEnd? This function is NOT filterung futureEvents, its purpose is to detect a manual date scope (facet)
at line 26
void
init()
Use init for default sort order of your collection
in
ModelCollection at line 460
array
invoke(string $method)
| internal | param mixed $args Additional Parameters |
Calls the passed method for each object
in
ModelCollection at line 1535
bool
isScopeable()
Returns true if the collection has no manual modifications yet
in
ModelCollection at line 136
bool
is_loaded()
Returns true if this collection has been filled
in
Collection at line 640
Collection
joinDocumentIndex()
Joins the system_document_index table
in
ModelCollection at line 1251
Model|null
last()
Return the last element of the collection, not popping
in
ModelCollection at line 1273
final ModelCollection
limit(int $limit, int $offset = 0)
Limit the visible articles.
in
ModelCollection at line 1096
void
merge()
DESTRUCTIVE This will manipulate the models-list and doesn't return anything!
Merges the elements of one or more arrays together so that the values of one are appended to the end of the previous one. It returns the resulting array. If the input arrays have the same string keys, then the later value for that key will overwrite the previous one. If, however, the arrays contain numeric keys, the later value will not overwrite the original value, but will be appended. If only one array is given and the array is numerically indexed, the keys get reindexed in a continuous way.
in
ModelCollection at line 1456
bool
offsetExists(mixed $offset)
isset($collection[0])
at line 24
Event
offsetGet(mixed $offset)
No description
in
ModelCollection at line 1439
offsetSet(mixed $offset, mixed $value)
$collections[0] = $entry
in
ModelCollection at line 1467
offsetUnset(mixed $offset)
unset($collection[0])
in
ModelCollection at line 1289
final ModelCollection
orderBy(string $field, string $sortDirection = ModelCollection::SORT_ASC)
No description
in
Collection at line 674
Collection
orderByViews()
Order Collection by views desc (popularity)
in
ModelCollection at line 543
pluck(string|string[] $property, string $key_field = null)
Returns the passed property of all objects in an array
in
ModelCollection at line 612
array
pluckWithScopeQuery(string $property, string|null $key_field = null)
Returns the passed property. In contrast to pluck() this function does not use the loaded models but uses a SQL query to retrieve the values Attention: This returns the RAW database values
in
ModelCollection at line 594
array
pluck_unique(mixed $property, mixed $key_field = false)
Returns the passed property of all objects in an array (unique and filtered)
in
ModelCollection at line 1062
Model|null
pop()
this function returns the last value of the models-array, shortening the models-array by one element.
Will additionally produce a Warning when called on a non-array.
in
XQLCollectionTrait at line 293
protected XQLCollectionTrait
populateApiProperties(ParameterObject|null $parameterObject = null)
Map internal collection information to fulfill the promised ParameterObject
in
Collection at line 187
Collection
populateDocumentIndexes()
Preload Document Indexes for the Models in this collection Make sure to add this listener before using documentindexes in other populate functions
in
Collection at line 350
Collection
populateDocumentReactions(string $setToProperty = 'reactions')
No description
in
Collection at line 260
Collection
populateDocumentStatistics(string $setToProperty = 'documentStats')
Populate common document statistics: comments, likes, views
in
Collection at line 387
Collection
populateDocumentTags(string $setToProperty = 'tags')
Read tags associated with the current documents and attach the corresponding tags to the models
in
Collection at line 434
Collection
populateGroupSecurity(string $setToProperty = 'groupSecurity')
No description
in
Collection at line 205
Collection
populateMagicDocumentHelperList(string $attachmentProperty, string $setToProperty = 'attachmentList', bool $extendedAttachmentInfo = false)
Preload Document Indexes for the Models in this collection Make sure to add this listener before using documentindexes in other populate functions
at line 169
EventCollection
populateParticipantStatus()
Add participant status for current user
in
Collection at line 425
Collection
populateUsers(string $setToProperty = 'user', string $readFromProperty = 'user_id')
Read associated users from property and attach the corresponding model
in
ModelCollection at line 1075
int
push(Model ...$models)
this function treats models-array as a stack, and pushes the passed variables onto the end of array.
The length of array increases by the number of variables pushed.
in
ModelCollection at line 182
bool
require_loading()
If the collection is not loaded yet the collection will use all() to be filled
in
ModelCollection at line 1214
reset()
Resets the loaded collection by clearing all loaded models and marking the collection as not being loaded.
Will not reset scope.
at line 113
EventCollection
resetFilterStartEnd()
Remove existing conditions previously applied to start and end
in
ModelCollection at line 1157
reverse(bool $preserve_keys = false)
DESTRUCTIVE This will manipulate the models-list and doesn't return anything!
The models-array will be modified with the order of the elements reversed.
in
ModelCollection at line 426
ModelCollection
save(bool $silent = false)
No description
in
ModelCollection at line 27
ModelCollection
scope_by_COL(mixed $value)
No description
in
ModelCollection at line 27
Model[]
search_all_by_id(mixed $id, mixed $query_params)
No description
in
ModelCollection at line 27
Model|null
search_by_id(mixed $id, mixed $query_params)
No description
in
ModelCollection at line 1526
ModelCollection
setCanBeScoped(bool $canBeScoped = true)
No description
in
ModelCollection at line 171
ModelCollection
setEmpty()
Set this ModelCollection as loaded and empty collection
in
ModelCollection at line 148
ModelCollection
setModels(Model[]|ModelCollection $models)
Setting model manually in a collection will set the collection prefilled/not scopable
in
ModelCollection at line 408
ModelCollection
setProperty(string $key, mixed $value)
No description
in
ModelCollection at line 1123
Model|null
shift()
This function shifts the first value of the models-array off and returns it, shortening the array by one element and moving everything down.
All numerical array keys will be modified to start counting from zero while literal keys won't be touched.
in
ModelCollection at line 1241
slice(int $offset, int|bool $length = false, bool $preserve_keys = false)
deprecated
deprecated
DESTRUCTIVE This will manipulate the models-list and doesn't return anything!
in
ModelCollection at line 1340
ModelCollection
sortByQuery(Query $query = null)
Mimics the SQL sorting on the ModelCollection
in
ModelCollection at line 1322
ModelCollection
sort_by(string $property, string $order_by = 'asc')
deprecated
deprecated
Sorts the current Collection by given Property-Name
in
ModelCollection at line 520
mixed
sum(string $property, string|bool $group_field = false)
Returns the sum of the passed property across all models
in
ModelCollection at line 978
array|Model[]
to_array(bool $raw = false)
Returns collection as array of models
in
ModelCollection at line 995
string
to_json()
Returns collection as json of models
in
ModelCollection at line 963
string
to_string()
Returns collection as string
in
ModelCollection at line 1005
string
to_xml(array|bool $property_filter = false)
Returns an XML of all model properties
in
ModelCollection at line 1136
int
unshift()
This function prepends passed elements to the front of the array.
Note that the list of elements is prepended as a whole, so that the prepended elements stay in the same order. All numerical array keys will be modified to start counting from zero while literal keys won't be touched.
in
ModelCollection at line 443
ModelCollection
updateDocumentIndexes()
No description
in
Collection at line 90
mixed
updateField(string $field, string|int|float $value)
Creates an update statement for the scoped collection and executes it.
When there's no scope defined, throws a LogicException to prevent an accidental update of the whole table.
in
ModelCollection at line 1179
bool
usort(callable $cmp_function)
DESTRUCTIVE This will manipulate the models-list and doesn't return anything!
This function will sort the models-array by its values using a user-supplied comparison function. If the array you wish to sort needs to be sorted by some non-trivial criteria, you should use this function.