Vote

onVoteBeforeDelete

onVoteAfterDelete

Description
These events are triggered in CompetitionModelVote::delete (site - on unvote; admin - on vote delete). If the plugin returns false for onVoteBeforeDelete event then the vote is not being deleted.

public function onVoteBeforeDelete($context, $table)
{
    // Do something
    return true;
}

Arguments
$context - the context of the event, ‘com_competition.vote’.
$table - a reference to CompetitionTableVote object.

onVoteSetScore

Description
These event is triggered in CompetitionModelVote::setScore (site). It allows to provide own analytics and change the score and information for vote.

public function onVoteSetScore($context, $entryId, $trackingData, $params, $score)
{
    // Do some analytics
    $score['score']  = 1;
    $score['info'][] = 'I do not like you';

    // Do more analytics
    $score['score']  = 1;
    $score['info'][] = 'I am still do not like you :)';

    return;
}

Arguments
$context - the context of the event, ‘com_competition.vote’.
$entryId - ID of entry for which the vote is being processed.
$trackingData - additional browser tracking data.
$params - parameters of the contest.
$score - array containing the score and info about the score.

onVoteSetValid

Description
These event is triggered in CompetitionModelVote::setValid (site). It allows to provide own analytics and change the validity for vote: 0 - not valid, 1 - valid.

public function onVoteSetValid($context, $entryId, $trackingData, $params, &$valid)
{
    // Do some analytics
    $valid = 0;

    return;
}

Arguments
$context - the context of the event, ‘com_competition.vote’.
$entryId - ID of entry for which the vote is being processed.
$trackingData - additional browser tracking data.
$params - parameters of the contest.
&$valid - the validity of the score.

onVoteBeforeSaveDetails

onVoteAfterSaveDetails

Description
These events are triggered in CompetitionModelVote::saveDetails (site). It allows to provide own analytics and set own vote details. Also it is possible to set additional data: country and city (does not set by component).

public function onVoteBeforeSaveDetails($context, $table, $params)
{
    // Set city to London
    $table->country = 'UK';
    $table->city    = 'London';

    return;
}

Arguments
$context - the context of the event, ‘com_competition.vote’.
$table - a reference to CompetitionTableVoteDetails object.
$params - parameters of the contest.

Below is the list of vote details class properties:

/**
 * Vote details table class
 *
 * @property   integer  $id          Primary key
 * @property   integer  $vote_id     Vote ID
 * @property   string   $user_agent  User agent string
 * @property   string   $language    Browser language
 * @property   string   $timezone    User timezone
 * @property   string   $platform    User platform
 * @property   string   $scr_res     Screen resolution
 * @property   string   $canvas      Passed canvas or not
 * @property   string   $referrer    Referrer URL
 * @property   integer  $timediff    Time difference in milliseconds between entering the site and vote
 * @property   string   $country     Country of voter
 * @property   string   $city        City of voter
 */

onVoteResponse

Description
These event is triggered in CompetitionControllerParticipant::ajaxVote (site). It allows to change the response data send back to user. For example, you can change a message that is displayed to a user.

public function onVoteResponse($context, $response)
{
    if ($context != 'com_competition.vote'
        || !\Joomla\CMS\Factory::getApplication()->app->isClient('site'))
    {
        return;
    }

    $response->message = 'onVoteResponse is working fine';
}

Arguments
$context - the context of the event, ‘com_competition.vote’.
$response - response object holding vote data, response status and response message.

onUnvoteResponse

Description
These event is triggered in CompetitionControllerParticipant::ajaxUnvote (site). It allows to change the response data send back to user. For example, you can change a message that is displayed to a user.

public function onUnvoteResponse($context, $response)
{
    if ($context != 'com_competition.vote'
        || !\Joomla\CMS\Factory::getApplication()->app->isClient('site'))
    {
        return;
    }

    $response->message = 'onUnvoteResponse is working fine';
}

Arguments
$context - the context of the event, ‘com_competition.vote’.
$response - response object holding vote data, response status and response message.