View file upload/src/addons/XenCentral/Feedback/Repository/Preferences.php

File size: 2.22Kb
<?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\Repository;

use XF\Db\Exception;
use XF\Mvc\Entity\Finder;
use XF\Mvc\Entity\Repository;

class Preferences extends Repository
{
    use FeedbackAbstractRepository;

    protected $_allPreferences = array(
		'pr_user_id'=>array('serialized'=>false),
		'xc_feedback_notify_pm'=>array('serialized'=>true),
		'xc_feedback_notify_email'=>array('serialized'=>true),
		'xc_feedback_notify_notification'=>array('serialized'=>true),
		'xc_feedback_is_invisible'=>array('serialized'=>false)
	);

	public function getUserNotificationPreferences($user_id = false)
	{
        static $preferenceCache;

        if(!$user_id) {
            $user_id = \XF::visitor()->user_id;
        }

        $preferances=$this->db()->fetchRow("
			SELECT preferences.* 
			FROM xf_xc_feedback_preference AS preferences
			WHERE preferences.pr_user_id=?
		", array($user_id));
            if($preferances==false)
            {
                return false;
            } else {
                foreach ($preferances as $key => $value) {

                    if ($key == 'xc_feedback_is_invisible' || $key == "pr_user_id") {
                        $preferances[$key] = $value;
                    } else {

                        $preferances[$key] = @unserialize($value);
                    }
                }
                return $preferances;
            }
    }

    public function getAdminPreferences()
    {
        $preferences =  array(
            'xc_feedback_admin_notify_email'=>\XF::options()->xc_feedback_admin_notify_email,
            'xc_feedback_admin_notify_pm'=>\XF::options()->xc_feedback_admin_notify_pm,
            'xc_feedback_admin_notify_notification'=>\XF::options()->xc_feedback_admin_notify_notification,
            'xc_feedback_admin_notify_email_type'=> isset (\XF::options()->xc_feedback_admin_notify_email['type']),
            'xc_feedback_admin_notify_pm_type'=> isset (\XF::options()->xc_feedback_admin_notify_pm['type']),

        );

        return $preferences;
    }
}