UniqueNotification

Extends\Notification

Subclass of Notification, but with unique constraint.

If a new message is created exactly like another one, it will be marked as unread.

package

Default

Methods

See example usage at manual page: https://manual.limesurvey.org/Notifications#Examples

__construct( $options = null)
inherited

Arguments

$options

attributeLabels

attributeLabels()
inherited
inheritdoc

Lists the behaviors of this model

behaviors(): array
inherited

Below is a list of all behaviors we register:

see \PluginEventBehavior\CTimestampBehavior

Response

array

Broadcast a message to all users See example usage at manual page: https://manual.limesurvey.org/Notifications#Examples

broadcast(array $options,array $users = null)
inheritedstatic

Arguments

$options

array

$users

array

Check so all mandatory fields are defined when constructing a new notification.

checkMandatoryFields(array $options,array<mixed,string> $mandatory): void
inherited
Throws
\InvalidArgumentException

Arguments

$options

array

$mandatory

array<mixed,string>

Some shortcuts for easier use

checkShortcuts( $options): mixed
inherited

Arguments

$options

Response

mixed

Count important notifications

countImportantNotifications(integer|null $surveyId): string
inheritedstatic

Arguments

$surveyId

integer|null

Response

string

Returns number of notifications with status 'new'

countNewNotifications(integer|null $surveyId): string
inheritedstatic

Arguments

$surveyId

integer|null

Response

string

Count how many notifications we have

countNotifications(integer|null $surveyId): string
inheritedstatic

Arguments

$surveyId

integer|null

Response

string

Decrypt values from database

decrypt( $value = '')
inherited

Arguments

$value

Encrypt/decrypt values

decryptEncryptAttributes( $action = 'decrypt')
inherited

Arguments

$action

Decrypt single value

decryptSingle(string $value = ''): string
inheritedstatic

Arguments

$value

string

String value which needs to be decrypted

Response

string

the decrypted string

Decrypt single value

decryptSingleOld(string $value = ''): string
inheritedstatic

Arguments

$value

string

String value which needs to be decrypted

Response

string

the decrypted string

deleteAllByAttributes

deleteAllByAttributes(array $attributes,string $condition = '',array $params = array()): integer
inherited
todo

This should also be moved to the behavior at some point. This method overrides the parent in order to raise PluginEvents for Bulk delete operations.

Filter Criteria are wrapped into a CDBCriteria instance so we have a single instance responsible for holding the filter criteria to be passed to the PluginEvent, this also enables us to pass the fully configured CDBCriteria instead of the original Parameters.

See {@link find()} for detailed explanation about $condition and $params.

Arguments

$attributes

array

list of attribute values (indexed by attribute names) that the active records should match. An attribute value can be an array which will be used to generate an IN condition.

$condition

string

query condition or criteria.

$params

array

parameters to be bound to an SQL statement.

Response

integer

number of rows affected by the execution.

dispatchPluginModelEvent

dispatchPluginModelEvent(string $sEventName,\CDbCriteria $criteria = null,array $eventParams = []): \PluginEvent
inherited

Arguments

$sEventName

string

$criteria

\CDbCriteria

$eventParams

array

Response

\PluginEvent

Encrypt values

encrypt()
inherited

Attribute values are encrypted ( if needed )to be used for searching purposes

encryptAttributeValues(array $attributes = null, $bEncryptedOnly = false, $bReplaceValues = true): array
inherited

Arguments

$attributes

array

list of attribute values (indexed by attribute names) that the active records should match. An attribute value can be an array which will be used to generate an IN condition.

$bEncryptedOnly

$bReplaceValues

Response

array

attributes array with encrypted atrribute values is returned

Encrypt values before saving to the database

encryptSave( $runValidation = false)
inherited

Arguments

$runValidation

Enrypt single value

encryptSingle(string $value = '')
inheritedstatic

Arguments

$value

string

String value which needs to be encrypted

Finds all active records satisfying the specified condition but returns them as array

findAllAsArray(mixed $condition = '',array $params = array()): array
inherited

See \find() for detailed explanation about $condition and $params.

Arguments

$condition

mixed

query condition or criteria.

$params

array

parameters to be bound to an SQL statement.

Response

array

list of active records satisfying the specified condition. An empty array is returned if none is found.

Overriding of Yii's findAllByAttributes method to provide encrypted attribute value search

findAllByAttributes(array $attributes,mixed $condition = '',array $params = array()): array<mixed,static>
inherited

Arguments

$attributes

array

list of attribute values (indexed by attribute names) that the active records should match. An attribute value can be an array which will be used to generate an IN condition.

$condition

mixed

query condition or criteria.

$params

array

parameters to be bound to an SQL statement.

Response

array<mixed,static>

the records found. An empty array is returned if none is found.

Overriding of Yii's findByAttributes method to provide encrypted attribute value search

findByAttributes(array $attributes,mixed $condition = '',array $params = array()): static|null
inherited

Arguments

$attributes

array

list of attribute values (indexed by attribute names) that the active record should match. An attribute value can be an array which will be used to generate an IN condition.

$condition

mixed

query condition or criteria.

$params

array

parameters to be bound to an SQL statement.

Response

static|null

the record found. Null if none is found.

Returns a URL to the Ajax action in notification controller Used when user clicks on a notification link

getAjaxUrl(): string
inherited

Response

string

getAllEncryptedAttributes

getAllEncryptedAttributes(integer $iSurveyId,string $sClassName): array
inherited

Arguments

$iSurveyId

integer

$sClassName

string

Response

array

TODO: Should be split into seperate functions in the appropiate model or helper class TODO: Make an interface for records that support encryption.

Criteria to fetch all notifications for this survey and this user

getCriteria(integer|null $surveyId = null): \CDbCriteria
inheritedstatic

Arguments

$surveyId

integer|null

Response

\CDbCriteria

Get notifications of importance HIGH_IMPORTANCE

getImportantNotifications(integer|null $surveyId): array<mixed,\Notification>
inheritedstatic

Arguments

$surveyId

integer|null

Response

array<mixed,\Notification>

Return the max value for a field

getMaxId(string $field = null,boolean $forceRefresh = false): false|integer
inherited

This is a convenience method, that uses the primary key of the model to retrieve the highest value.

Throws
\Exception

Arguments

$field

string

The field that contains the Id, when null primary key is used if it is a single field

$forceRefresh

boolean

Don't use value from static cache but always requery the database

Response

false|integer

Return the min value for a field

getMinId(string $field = null,boolean $forceRefresh = false): false|integer
inherited

This is a convenience method, that uses the primary key of the model to retrieve the highest value.

Throws
\Exception

Arguments

$field

string

The field that contains the Id, when null primary key is used if it is a single field

$forceRefresh

boolean

Don't use value from static cache but always requery the database

Response

false|integer

Get latest notifications to show in the menu

getNotifications(integer|null $surveyId): array<mixed,\Notification>
inheritedstatic

Arguments

$surveyId

integer|null

Response

array<mixed,\Notification>

Url that is used to mark that user read the message

getReadUrl(): string
inherited

Response

string

Url to fetch the complete notification menu widget

getUpdateUrl(integer|null $surveyId = null): string
inheritedstatic

Arguments

$surveyId

integer|null

Response

string

Mark notification as read NOW()

markAsRead(): boolean
inherited

Response

boolean

Result of update

model

model( $className = __CLASS__): \Notification
inheritedstatic
inheritdoc

Arguments

$className

Response

\Notification

the static model class

primaryKey

primaryKey()
inherited
inheritdoc

Modified version that default to do the same as the original, but allows via a third parameter to retrieve the result as array instead of active records. This solves a joining problem. Usage via findAllAsArray method

query(\CDbCriteria $criteria,boolean $all = false,boolean $asAR = true): mixed
inherited

Performs the actual DB query and populates the AR objects with the query result. This method is mainly internally used by other AR query methods.

since 1.1.7

Arguments

$criteria

\CDbCriteria

the query criteria

$all

boolean

whether to return all data

$asAR

boolean

Response

mixed

the AR objects populated with the query result

relations

relations()
inherited
inheritdoc

rules

rules()
inherited
inheritdoc

Check for already existing notification and update that. Importance will be set to normal.

save( $runValidation = true, $attributes = null): void
inheritdoc

Arguments

$runValidation

$attributes

Function to show encryption symbol in gridview attribute header if value ois encrypted

setEncryptedAttributeLabel(integer $surveyId,string $className,string $attributeName): string
inherited
Throws
\CException

Arguments

$surveyId

integer

$className

string

$attributeName

string

Response

string

tableName

tableName()
inherited
inheritdoc

Updates records with the specified condition.

updateAll(array $attributes,mixed $condition = '',array $params = array()): integer
inherited

XSS filtering is enforced for attributes listed in model's $xssFilterAttributes property. See \find() for detailed explanation about $condition and $params. Note, the attributes are not checked for safety and no validation is done.

Arguments

$attributes

array

list of attributes (name=>$value) to be updated

$condition

mixed

query condition or criteria.

$params

array

parameters to be bound to an SQL statement.

Response

integer

the number of rows being updated

Constants

NORMAL_IMPORTANCE

NORMAL_IMPORTANCE
inherited

BELL_IMPORTANCE

BELL_IMPORTANCE
inherited

HIGH_IMPORTANCE

HIGH_IMPORTANCE
inherited

Properties

Whether or not this message should be marked as unread ('new') second time it's saved.

markAsNew :boolean
var

Type(s)

boolean

Whether or not the importance should be set to normal second time it's saved.

setNormalImportance :boolean
var

Type(s)

boolean

Array of attributes that should be XSS filtered on mass updates

xssFilterAttributes :array<mixed,string>
inherited
var

Array of attributes that should be XSS filtered on mass updates

Type(s)

array<mixed,string>

bEncryption

bEncryption :
inherited

Type(s)

id

id :integer
inherited

Type(s)

integer

entity

entity :string
inherited

survey or user

Type(s)

string

entity_id

entity_id :string
inherited

survey id or user id

Type(s)

string

title

title :string
inherited

Type(s)

string

message

message :string
inherited

Type(s)

string

status

status :string
inherited

new, read

Type(s)

string

importance

importance :integer
inherited

1 or 3. 3 will show popup on page load, 2 is reserved for future bell animation.

Type(s)

integer

display_class

display_class :string
inherited

warning, danger, success

Type(s)

string

hash

hash :string
inherited

Type(s)

string

created

created :string
inherited

When the notification was created

Type(s)

string

first_read

first_read :string
inherited

When the notification was read

Type(s)

string