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

File size: 3.33Kb
<?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;

trait FeedbackAbstractRepository
{
    /**
     * 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');
    }

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

	protected function _getModeratorUsers()
	{
		$usergroups=\XF::options()->xcfs_admins;
		if(empty($usergroups))
		{
			$usergroups[]=-1;
		}
		
		return $this->db()->fetchAll('
			SELECT user.*
			FROM xf_user AS user
			WHERE user.user_group_id  IN (?)
			OR user.secondary_group_ids REGEXP \'(^|,)(' . implode('|', $usergroups) . ')($|,)\'
		', array (
				implode(',', $usergroups) 
		));
	}
    protected function _convertHoursToSeconds($hours)
    {
        return 3600 * $hours;
    }

    protected function _convertDaysToSeconds($days)
    {
        return $this->_convertHoursToSeconds(24 * $days);
    }

    protected function _convertMonthsToSeconds($months)
    {
        return $this->_convertDaysToSeconds(30 * $months);
    }
}