<?xml version="1.0"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="en">
	<id>https://www.limesurvey.org/api.php?action=feedcontributions&amp;feedformat=atom&amp;user=YuriyBabenko</id>
	<title>LimeSurvey Manual - User contributions [en]</title>
	<link rel="self" type="application/atom+xml" href="https://www.limesurvey.org/api.php?action=feedcontributions&amp;feedformat=atom&amp;user=YuriyBabenko"/>
	<link rel="alternate" type="text/html" href="https://www.limesurvey.org/manual/Special:Contributions/YuriyBabenko"/>
	<updated>2026-08-11T02:20:57Z</updated>
	<subtitle>User contributions</subtitle>
	<generator>MediaWiki 1.43.9</generator>
	<entry>
		<id>https://www.limesurvey.org/manual/index.php?title=Plugin_events&amp;diff=69033</id>
		<title>Plugin events</title>
		<link rel="alternate" type="text/html" href="https://www.limesurvey.org/manual/index.php?title=Plugin_events&amp;diff=69033"/>
		<updated>2016-09-23T00:06:14Z</updated>

		<summary type="html">&lt;p&gt;YuriyBabenko: added 11 events found in codebase, but not documented;&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;At version 2.50 build 160425 the following events are available for plugins to subscribe to:&lt;br /&gt;
*[[Authentication plugin development#afterLoginFormSubmit|afterLoginFormSubmit]]&lt;br /&gt;
*[[Authentication plugin development#afterLogout|afterLogout]]&lt;br /&gt;
*[[afterFailedLoginAttempt]]&lt;br /&gt;
*[[afterPluginLoad]]&lt;br /&gt;
*[[afterQuickMenuLoad]]&lt;br /&gt;
*[[afterSuccessfulLogin]]&lt;br /&gt;
*[[afterSurveyComplete]]&lt;br /&gt;
*[[afterSurveyQuota]]{{NewIn|v=2.05|b=141006}}&lt;br /&gt;
*[[afterSurveySettingsSave]]&lt;br /&gt;
*[[beforeActivate]]&lt;br /&gt;
*[[beforeAdminMenuRender]]&lt;br /&gt;
*[[beforeControllerAction]]{{NewIn|v=2.50|b=160425}}&lt;br /&gt;
*[[beforeDeactivate]]&lt;br /&gt;
*[[beforeHasPermission]]{{NewIn|v=2.06}}&lt;br /&gt;
*[[beforeLoadResponse]]&lt;br /&gt;
*[[beforeLogin]]&lt;br /&gt;
*[[beforeLogout]]&lt;br /&gt;
*[[beforeQuestionRender]]{{NewIn|v=2.05|b=140922}}&lt;br /&gt;
*[[beforeParticipantSave]]&lt;br /&gt;
*[[beforeParticipantDelete]]&lt;br /&gt;
*[[beforePermissionSetSave]]&lt;br /&gt;
*[[beforeRegister]]{{NewIn|v=2.06}}&lt;br /&gt;
*[[beforeRegisterForm]]{{NewIn|v=2.06}}&lt;br /&gt;
*[[beforeSideMenuRender]]{{NewIn|v=2.51.0}}&lt;br /&gt;
*[[beforeSurveyAdminView]]&lt;br /&gt;
*[[beforeTokenDelete]]&lt;br /&gt;
*[[beforeTokenSave]]&lt;br /&gt;
*[[beforeSurveyActivate]]{{NewIn|v=2.5}}&lt;br /&gt;
*[[beforeSurveyBarRender]]{{NewIn|v=2.51.0}}&lt;br /&gt;
*[[beforeSurveyDeactivate]]{{NewIn|v=2.5}}&lt;br /&gt;
*[[beforeSurveyPage]]{{NewIn|v=2.05|b=140109}}&lt;br /&gt;
*[[beforeSurveySettings]]&lt;br /&gt;
*[[beforeSurveySettingsSave]]&lt;br /&gt;
*[[beforeSurveysStartpageRender]]&lt;br /&gt;
*[[beforeTokenEmail]]{{NewIn|v=2.05|b=140404}}&lt;br /&gt;
*[[beforeToolsMenuRender]]&lt;br /&gt;
*[[beforeUserSave]]&lt;br /&gt;
*[[beforeUserDelete]]&lt;br /&gt;
*[[createNewUser]]&lt;br /&gt;
*[[cron]]{{NewIn|v=2.05|b=140404}}&lt;br /&gt;
*[[listExportOptions]]&lt;br /&gt;
*[[listExportPlugins]]&lt;br /&gt;
*[[listQuestionPlugins]]&lt;br /&gt;
*[[newDirectRequest]]&lt;br /&gt;
*[[newExport]]&lt;br /&gt;
*[[newLoginForm]]&lt;br /&gt;
*[[NewQuestionAttributes|newQuestionAttributes]]{{NewIn|v=2.50|b=160731}}&lt;br /&gt;
*[[newSurveySettings]]&lt;br /&gt;
*[[newUnsecureRequest]]&lt;br /&gt;
*[[newUserSession]]&lt;br /&gt;
*[[newUserLogin]]&lt;br /&gt;
*[[onSurveyDenied]]{{NewIn|v=2.5}}&lt;br /&gt;
&lt;br /&gt;
[[Category:Development]]&lt;br /&gt;
[[Category:Plugins]]&lt;br /&gt;
&lt;br /&gt;
== Model Events ==&lt;br /&gt;
&lt;br /&gt;
All models (Survey, Question, etc.) support a series of before &amp;amp; after events.&lt;br /&gt;
&lt;br /&gt;
These include model-specific events (example for Survey model):&lt;br /&gt;
&lt;br /&gt;
* [[beforeSurveyDelete]]&lt;br /&gt;
* [[beforeSurveySave]]&lt;br /&gt;
* [[afterSurveyDelete]]&lt;br /&gt;
* [[afterSurveySave]]&lt;br /&gt;
&lt;br /&gt;
As well as generic events independent of the model&#039;s name:&lt;br /&gt;
&lt;br /&gt;
* [[beforeModelDelete]]&lt;br /&gt;
* [[beforeModelSave]]&lt;br /&gt;
* [[afterModelDelete]]&lt;br /&gt;
* [[afterModelSave]]&lt;br /&gt;
&lt;br /&gt;
In all of the above events, the associated model object is available as part of event data:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;$model = $this-&amp;gt;event-&amp;gt;get(&#039;model&#039;);&amp;lt;/code&amp;gt;&lt;/div&gt;</summary>
		<author><name>YuriyBabenko</name></author>
	</entry>
	<entry>
		<id>https://www.limesurvey.org/manual/index.php?title=Plugin_events&amp;diff=69017</id>
		<title>Plugin events</title>
		<link rel="alternate" type="text/html" href="https://www.limesurvey.org/manual/index.php?title=Plugin_events&amp;diff=69017"/>
		<updated>2016-09-16T00:31:22Z</updated>

		<summary type="html">&lt;p&gt;YuriyBabenko: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;At version 2.50 build 160425 the following events are available for plugins to subscribe to:&lt;br /&gt;
*[[Authentication plugin development#afterLoginFormSubmit|afterLoginFormSubmit]]&lt;br /&gt;
*[[Authentication plugin development#afterLogout|afterLogout]]&lt;br /&gt;
*[[afterFailedLoginAttempt]]&lt;br /&gt;
*[[afterPluginLoad]]&lt;br /&gt;
*[[afterSurveyComplete]]&lt;br /&gt;
*[[afterSurveyQuota]]{{NewIn|v=2.05|b=141006}}&lt;br /&gt;
*[[beforeActivate]]&lt;br /&gt;
*[[beforeControllerAction]]{{NewIn|v=2.50|b=160425}}&lt;br /&gt;
*[[beforeDeactivate]]&lt;br /&gt;
*[[beforeHasPermission]]{{NewIn|v=2.06}}&lt;br /&gt;
*[[beforeLoadResponse]]&lt;br /&gt;
*[[beforeLogin]]&lt;br /&gt;
*[[beforeLogout]]&lt;br /&gt;
*[[beforeQuestionRender]]{{NewIn|v=2.05|b=140922}}&lt;br /&gt;
*[[beforeParticipantSave]]&lt;br /&gt;
*[[beforeParticipantDelete]]&lt;br /&gt;
*[[beforePermissionSetSave]]&lt;br /&gt;
*[[beforeRegister]]{{NewIn|v=2.06}}&lt;br /&gt;
*[[beforeRegisterForm]]{{NewIn|v=2.06}}&lt;br /&gt;
*[[beforeSideMenuRender]]{{NewIn|v=2.51.0}}&lt;br /&gt;
*[[beforeTokenDelete]]&lt;br /&gt;
*[[beforeTokenSave]]&lt;br /&gt;
*[[beforeSurveyActivate]]{{NewIn|v=2.5}}&lt;br /&gt;
*[[beforeSurveyBarRender]]{{NewIn|v=2.51.0}}&lt;br /&gt;
*[[beforeSurveyDeactivate]]{{NewIn|v=2.5}}&lt;br /&gt;
*[[beforeSurveyPage]]{{NewIn|v=2.05|b=140109}}&lt;br /&gt;
*[[beforeSurveySettings]]&lt;br /&gt;
*[[beforeTokenEmail]]{{NewIn|v=2.05|b=140404}}&lt;br /&gt;
*[[beforeUserSave]]&lt;br /&gt;
*[[beforeUserDelete]]&lt;br /&gt;
*[[cron]]{{NewIn|v=2.05|b=140404}}&lt;br /&gt;
*[[listExportOptions]]&lt;br /&gt;
*[[listExportPlugins]]&lt;br /&gt;
*[[listQuestionPlugins]]&lt;br /&gt;
*[[newDirectRequest]]&lt;br /&gt;
*[[newExport]]&lt;br /&gt;
*[[newLoginForm]]&lt;br /&gt;
*[[NewQuestionAttributes|newQuestionAttributes]]{{NewIn|v=2.50|b=160731}}&lt;br /&gt;
*[[newSurveySettings]]&lt;br /&gt;
*[[newUserSession]]&lt;br /&gt;
*[[onSurveyDenied]]{{NewIn|v=2.5}}&lt;br /&gt;
&lt;br /&gt;
[[Category:Development]]&lt;br /&gt;
[[Category:Plugins]]&lt;br /&gt;
&lt;br /&gt;
== Model Events ==&lt;br /&gt;
&lt;br /&gt;
All models (Survey, Question, etc.) support a series of before &amp;amp; after events.&lt;br /&gt;
&lt;br /&gt;
These include model-specific events (example for Survey model):&lt;br /&gt;
&lt;br /&gt;
* [[beforeSurveyDelete]]&lt;br /&gt;
* [[beforeSurveySave]]&lt;br /&gt;
* [[afterSurveyDelete]]&lt;br /&gt;
* [[afterSurveySave]]&lt;br /&gt;
&lt;br /&gt;
As well as generic events independent of the model&#039;s name:&lt;br /&gt;
&lt;br /&gt;
* [[beforeModelDelete]]&lt;br /&gt;
* [[beforeModelSave]]&lt;br /&gt;
* [[afterModelDelete]]&lt;br /&gt;
* [[afterModelSave]]&lt;br /&gt;
&lt;br /&gt;
In all of the above events, the associated model object is available as part of event data:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;$model = $this-&amp;gt;event-&amp;gt;get(&#039;model&#039;);&amp;lt;/code&amp;gt;&lt;/div&gt;</summary>
		<author><name>YuriyBabenko</name></author>
	</entry>
	<entry>
		<id>https://www.limesurvey.org/manual/index.php?title=Cron_(command)&amp;diff=69007</id>
		<title>Cron (command)</title>
		<link rel="alternate" type="text/html" href="https://www.limesurvey.org/manual/index.php?title=Cron_(command)&amp;diff=69007"/>
		<updated>2016-09-13T23:54:30Z</updated>

		<summary type="html">&lt;p&gt;YuriyBabenko: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{FeatureStarting|2.06}} &lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Usage&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
This event is used when server admin sets a crontab command.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;How to use&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
This event needs to be called with php cli command.&lt;br /&gt;
&amp;lt;code&amp;gt;php yourlimesurveydir/application/commands/console.php plugin cron --interval=X&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
The directory &amp;lt;code&amp;gt;yourlimesurveydir/application/runtime&amp;lt;/code&amp;gt; must be writable by the webserver.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Input&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
The event receives the following information:&lt;br /&gt;
&#039;&#039;interval&#039;&#039; the interval parameter, set this to the interval (in minutes) you want to run this cron job. Plugins can use this information to self-limit their execution time or check when the event will fire next.&lt;br /&gt;
&lt;br /&gt;
[[Category:Plugins events]]&lt;/div&gt;</summary>
		<author><name>YuriyBabenko</name></author>
	</entry>
</feed>