View file upload/src/addons/XenCentral/Feedback/Pub/Controller/FeedbackAbstractController.php

File size: 3.98Kb
<?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\Pub\Controller;


trait FeedbackAbstractController
{
	/**
	 * Get feedback model
	 * @return XenCentral_Feedback_Model_Feedback
	 */
	protected function _getFeedbackModel()
	{
		return \XF::repository('XenCentral\Feedback:Feedback');
	}
	
	/**
	 * Get feedback model
	 * @return XenCentral_Feedback_Model_User
	 */
	protected function _getUserModel()
	{
		return \XF::repository('XenCentral\Feedback:User');
	}
	
	/**
	 * Get feedback model
	 * @return XenForo_Model_User
	 */
	protected function _getXenUserModel()
	{
		return \XF::repository('XF:User');
	}
	
	/**
	 * Get comment model
	 * @return XenCentral_Feedback_Model_Comment
	 */
	protected function _getCommentModel()
	{
		return \XF::repository('XenCentral\Feedback:Comment');
	}
	
	/**
	 * Get report feedback model
	 * @return XenCentral_Feedback_Model_Report
	 */
	protected function _getReportModel()
	{
		return \XF::repository('XenCentral\Feedback:Report');
	}
	
	/**
	 * Get user activity model
	 * @return XenCentral_Feedback_Model_Activity
	 */
	protected function _getActivityModel()
	{
		return \XF::repository('XenCentral\Feedback:Activity');
	}
	
	/**
	 * Get product options model
	 * @return XenCentral_Feedback_Model_Options
	 */
	protected function _getOptionsModel()
	{
		return \XF::repository('XenCentral\Feedback:Options');
	}
	
	/**
	 * Get permissions model
	 * @return XenCentral_Feedback_Permissions
	 */

	/**
	 * Get preferences model
	 * @return XenCentral_Feedback_Model_Preferences
	 */
	protected function _getPreferencesModel()
	{
		return \XF::repository('XenCentral\Feedback:Preferences');
	}
	
	/**
	 * Get tools model
	 * @return XenCentral_Feedback_Model_Tools
	 */
	protected function _getToolsModel()
	{
		return \XF::repository('XenCentral\Feedback:Tools');
	}

	/**
	 * Get statistics model
	 * @return XenCentral_Feedback_Model_Stats
	 */
	protected function _getStatsModel()
	{
		return \XF::repository('XenCentral\Feedback:Stats');
	}
    protected function _getReportSuspicious()
    {
        return \XF::repository('XenCentral\Feedback:ReportSuspicious');
    }

    //Homepage tabs

	protected function getTabs()
	{
		$userModel = \XF::repository('XenCentral\Feedback:User');

		if (\XF::repository('XenCentral\Feedback:Options')->getHomeTabs('top')) {
			$topTraders = $userModel->getTopTraders();
		} else {
			$topTraders = array();
		}

		if (\XF::repository('XenCentral\Feedback:Options')->getHomeTabs('bottom')) {
			$bottomTraders = $userModel->getBottomTraders();
		} else {
			$bottomTraders = array();
		}

		return array(
			'topTraders' => $topTraders,
			'bottomTraders' => $bottomTraders
		);
	}

    protected function getSidebar($user, $canGive)
    {
        $userModel = \XF::repository('XenCentral\Feedback:User');

        $feedbackModel = \XF::repository('XenCentral\Feedback:Feedback');

        if (\XF::repository('XenCentral\Feedback:Options')->getSidebarBlock('latest')) {
            $latest = $feedbackModel->getLatestFeedback();
        } else {
            $latest = array();
        }

        if (\XF::repository('XenCentral\Feedback:Options')->getSidebarBlock('top')) {
            $top = $userModel->getTopTraders();

        } else {
            $top = array();
        }

        if (\XF::repository('XenCentral\Feedback:Options')->getSidebarBlock('bottom')) {
            $bottom = $userModel->getBottomTraders();
        } else {
            $bottom = array();
        }

        return array(
            'user' => $user,
            'canSubmitFeedback' => $canGive,
            'latest' => $latest,
            'top' => $top,
            'bottom' => $bottom
        );
    }

    /**
     * @return XenForo_Model_SpamPrevention
     */
    protected function _getSpamPrevention()
    {
        return \XF::repository('XF:SpamPrevention');
    }
}