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;
}
}