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

File size: 1.92Kb
<?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 NotifyNegative extends Repository
{
    use FeedbackAbstractRepository;
//TODO rewrite the class
    /**
     * @param $feedback
     * @return bool
     * Not used for now, maybe used for "report on negative" feature
     */
    public function sendNotification($feedback)
	{
		if (!$this->_getOptionsModel()->getReportOnNegative())
		{
			return false;
		}
		
		if($feedback['amount']>=0)
		{
			return false;
		}

        $reportModel = XenForo_Model::create('XenForo_Model_Report');
        $reportModel->reportContent('feedback', $feedback, new XenForo_Phrase('xcxt_automatic_report_for_negative_feedback_left'));
        // TODO enable email reporting later if needed
        return true;
		$moderators=$this->_getModeratorUsers();

		if (empty($moderators))
		{
			return false;
		}
		
		$visitor=XenForo_Visitor::getInstance()->toArray();
		
		$foruserinfo=$this->_getApplicationUserModel()->getUserById($feedback['foruserid']);
		$fromuserinfo=$this->_getApplicationUserModel()->getUserById($feedback['fromuserid']);
		
		$feedbackUrl = $this->app()->router('public')->buildLink('full:xcfs/feedback/view', $feedback);
		
		$params = array(
			'visitor'=>$visitor,
			'boardTitle' => $boardTitle = \XF::options()->boardTitle,
			'feedback'=> $feedback,
			'feedbackURL'=>$feedbackUrl,
			'foruser'=>$foruserinfo,
			'fromuser'=>$fromuserinfo
		);

		foreach ($moderators AS $user)
		{
			$params['user']=$user;

			$mail = XenForo_Mail::create('xcxt_negative_feedback', $params, $user['language_id']);
			
			$mail->send($user['email'], $user['username']);
		}

		return true;
	}
}