View file upload/src/addons/XenCentral/Feedback/PreferencesContainer.php

File size: 3.17Kb
<?php
/**
 * @package XenCentral Feedback System
 * @author DNF Technology
 * @copyright Drnoyan & Nalyan LDA, Portugal, EU
 * @license http://dnf.technology/terms/
 * @link http://customers.dnf.technology
 * @version 2.0.0 Beta 10
 * @revision 12
 */

namespace XenCentral\Feedback;

class PreferencesContainer {

    protected $preferences_array;
    protected $feedback;
    protected $user_id;

    protected static $users;

    public function setUserId($user_id)
    {
        $this->user_id=$user_id;
    }

    public function getUser()
    {
        if(isset(self::$users[$this->user_id])) {
            return self::$users[$this->user_id];
        }

        self::$users[$this->user_id]=\XF::app()->em()->find('XF:User', [
            'user_id' => $this->user_id
        ]);

        return self::$users[$this->user_id];
    }

    public function getPreferencesArray()
    {
        return $this->preferences_array;
    }

    public function __construct($preferencesArray, $feedback)
    {
        $this->preferences_array=$preferencesArray;
        $this->feedback=$feedback;
    }

    public function sendNotification()
    {

        if (!empty($this->preferences_array['xc_feedback_notify_notification'][$this->feedback['feedback_string']])) {
            return true;
        }
        return false;
    }
    public function sendAdminNotification()
    {

        if (!empty($this->preferences_array['xc_feedback_admin_notify_notification'][$this->feedback['feedback_string']])) {
            return true;
        }
        return false;
    }

    public function sendEmail()
    {
        if (!empty($this->preferences_array['xc_feedback_notify_email'][$this->feedback['feedback_string']])) {
            return true;
        }
        return false;
    }
    public function sendAdminEmail()
    {
        if (!empty($this->preferences_array['xc_feedback_admin_notify_email'][$this->feedback['feedback_string']])) {
            return true;
        }
        
        return false;
    }

    public function sendPm()
    {
        if (!empty($this->preferences_array['xc_feedback_notify_pm'][$this->feedback['feedback_string']])) {
            return true;
        }
        return false;
    }
    public function sendAdminPm()
    {
        if (!empty($this->preferences_array['xc_feedback_admin_notify_pm'][$this->feedback['feedback_string']])) {
            return true;
        }
        return false;
    }

    public function getEmailNotificationType()
    {
        return $this->preferences_array['xc_feedback_notify_email']['type'];
    }
    public function getEmailAdminNotificationType()
    {
        return $this->preferences_array['xc_feedback_admin_notify_email']['type'];
    }

    public function getPmNotificationType()
    {
        return $this->preferences_array['xc_feedback_notify_pm']['type'];
    }
    public function getPmAdminNotificationType()
    {
        return $this->preferences_array['xc_feedback_admin_notify_pm']['type'];
    }

    /**
     * @return XenForo_Model_User
     */
    protected function getUserModelModel()
    {
        static $model;
        if(is_null($model)) {
            $model=\XF::repository('XenCentral\Feedback:User');
        }
        return $model;
    }
}