Dynamic model events: Difference between revisions
From LimeSurvey Manual
DenisChenu (talk | contribs) (Page create + simple example) |
DenisChenu (talk | contribs) m (fix event name …⋅) |
||
(3 intermediate revisions by the same user not shown) | |||
Line 1: | Line 1: | ||
{{FeatureChange|3.5.1}} | |||
Before LimeSurvey 3.5.1 version : only token dynamic event can be used like that. | |||
'''When''' | '''When''' | ||
Line 7: | Line 11: | ||
*''model'' : The current model as a [https://www.yiiframework.com/doc/api/1.1/CActiveRecord ActiveRecord] | *''model'' : The current model as a [https://www.yiiframework.com/doc/api/1.1/CActiveRecord ActiveRecord] | ||
*''dynamicId'' : if model extend Dynamic model ( ie Token and Response ). The related dynamic id | *''dynamicId'' : if model extend Dynamic model ( ie Token and Response ). The related dynamic id | ||
*'' | *''surveyId'' and ''iSurveyID'' : The survey id if model is related to a survey id ( ie Token, TokenDynamic, Response, SurveyDynamic, Timing, SurveyTimingDynamic) | ||
'''Possible output''' | '''Possible output''' | ||
Line 21: | Line 25: | ||
function init() | function init() | ||
{ | { | ||
$this->subscribe(' | $this->subscribe('afterResponseSave'); | ||
$this->subscribe(' | $this->subscribe('afterSurveyDynamicSave','afterResponseSave'); | ||
} | } | ||
public function | public function afterResponseSave() | ||
{ | { | ||
$surveyId = $this->getEvent()->get('surveyId'); | $surveyId = $this->getEvent()->get('surveyId'); | ||
Line 32: | Line 36: | ||
} else { | } else { | ||
// Log it somewhere | // Log it somewhere | ||
$ | $oResponse = $this->getEvent()->get('model'); | ||
$this->log($ | $this->log($oResponse->id." updated in survey".$surveyId); | ||
} | } | ||
} | } | ||
</syntaxhighlight> | </syntaxhighlight> |
Latest revision as of 09:18, 15 November 2018
Hint: This feature changed with version 3.5.1
Before LimeSurvey 3.5.1 version : only token dynamic event can be used like that.
When
Like Specific Model events.
Input
- model : The current model as a ActiveRecord
- dynamicId : if model extend Dynamic model ( ie Token and Response ). The related dynamic id
- surveyId and iSurveyID : The survey id if model is related to a survey id ( ie Token, TokenDynamic, Response, SurveyDynamic, Timing, SurveyTimingDynamic)
Possible output
None.
Example of usage
See AuditLog
function init()
{
$this->subscribe('afterResponseSave');
$this->subscribe('afterSurveyDynamicSave','afterResponseSave');
}
public function afterResponseSave()
{
$surveyId = $this->getEvent()->get('surveyId');
if (empty($surveyId)) {
// Something strange happen
} else {
// Log it somewhere
$oResponse = $this->getEvent()->get('model');
$this->log($oResponse->id." updated in survey".$surveyId);
}
}