HEX
Server: LiteSpeed
System: Linux d8 4.18.0-553.121.1.lve.el8.x86_64 #1 SMP Thu Apr 30 16:40:41 UTC 2026 x86_64
User: wbwebdes (3015)
PHP: 8.1.31
Disabled: exec,system,passthru,shell_exec,proc_close,proc_open,dl,popen,show_source,posix_kill,posix_mkfifo,posix_getpwuid,posix_setpgid,posix_setsid,posix_setuid,posix_setgid,posix_seteuid,posix_setegid,posix_uname
Upload Files
File: /home/wbwebdes/domains/survey.nailsbyrianne.nl/public_html/application/models/SurveyDeactivator.php
<?php

/**
 * Service class to deactivate survey.
 * @todo Move to models/services/survey/ folder.
 */

class SurveyDeactivator
{
    /** @var Survey */
    protected $survey;

    /** @var array */
    protected $tableDefinition = [];

    /** @var array */
    protected $timingsTableDefinition = [];

    /** @var string */
    protected $error;

    public function __construct($survey = null)
    {
        $this->survey = $survey;
    }

    /**
     * @param Survey $survey
     * @return SurveyDeactivator
     */
    public function setSurvey(Survey $survey)
    {
        $this->survey = $survey;
        return $this;
    }

    /**
     * Prepares a survey to Set it into "deactivate" state.
     * Fires events "beforeSurveyDeactivate"
     *
     * @return PluginEvent
     * @throws CException
     */
    public function beforeDeactivate()
    {
        EmCacheHelper::init(['sid' => $this->survey->sid, 'active' => 'Y']);
        EmCacheHelper::flush();

        // Fire event beforeSurveyDeactivate
        $beforeSurveyDeactivate = new PluginEvent('beforeSurveyDeactivate');
        $beforeSurveyDeactivate->set('surveyId', $this->survey->sid);
        App()->getPluginManager()->dispatchEvent($beforeSurveyDeactivate);
        return $beforeSurveyDeactivate;
    }

    /**
     * Performs work after a survey was Set it into "deactivate" state.
     * Archives necessary tables "responseTable", "timingTable".
     * Fires events "afterSurveyDeactivate"
     *
     * @return PluginEvent
     * @throws CException
     */
    public function afterDeactivate()
    {
        $event = new PluginEvent('afterSurveyDeactivate');
        $event->set('surveyId', $this->survey->sid);
        App()->getPluginManager()->dispatchEvent($event);
        return $event;
    }
}