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

File size: 6.39Kb
<?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\Mvc\Entity\Finder;
use XF\Mvc\Entity\Repository;

class Options extends Repository
{
    use FeedbackAbstractRepository;


    public function _getOption($option)
    {
        return \XF::options()->{'xcfs_'. $option};
    }

    public function getEnableActivity()
    {
        return $this->_getOption('enable_activity');
    }

    public function getEnableGuestAcitivity() {

        return$this->_getOption('enable_guest_activity');
    }

    public function getRequireFeedbackReply()
    {
        return $this->_getOption('require_feedback_reply');
    }

    public function getShowInConversations() {
        return $this->_getOption('show_in_conversations');
    }

    public function getShowPostbitDetailedStats()
    {
        return $this->_getOption('show_detailed_postbit_stats');
    }

    public function getShowCommentForm()
    {
        return $this->_getOption('show_comment');
    }

    public function getRequireComment()
    {
        return $this->_getOption('show_comment') && $this->_getOption('require_comment');
    }

	public function getFeedbackRestricted()
	{
		return (bool)$this->_getOption('can_give_feedback');
	}

	public function getUniqueDealUrl()
    {
        return $this->_getOption('unique_deal_url');
    }

    public function getCheckThreadStarter()
    {
        return $this->_getOption('check_thread_starter');
    }

    public function getDisableThreadLiveCheck()
    {
        return $this->_getOption('disable_thread_live_check');
    }

    public function getStrictURL()
    {
        return (bool)$this->_getOption('strict_url');
    }

    public function getRatingStyle()
    {
        return (bool)$this->_getOption('rating_style');
    }

    public function getRateFromPostbit()
    {
        return $this->_getOption('rate_from_postbit');
    }

    public function getMemberTab()
    {
        return $this->_getOption('member_tab');
    }

    public function getShowInPostbit()
    {
        return $this->_getOption('show_in_postbit');
    }

    public function getPostbitValidForums()
    {
        $forumids=$this->_getOption('postbit_valid_forums');

        $forumids=array_diff($forumids, array(0));

        return $forumids;
    }

    public function getThreadValidForums()
    {
        $forumids=$this->_getOption('thread_valid_forums');

        $forumids = array_diff($forumids, array(0));

        return $forumids;
    }
    public function getValidResources()
    {
        $resourses=$this->_getOption('valid_resources');

        $resourses = array_diff($resourses, array(0));

        return $resourses;
    }
    public function getValidMedia()
    {
        $media=$this->_getOption('valid_media');

        $media = array_diff($media, array(0));

        return $media;
    }
    public function getValidShowcase()
    {
        $showcase=$this->_getOption('valid_showcase');

        $showcase = array_diff($showcase, array(0));

        return $showcase;
    }
    public function getValidSportsbook()
    {
        $showcase=$this->_getOption('valid_sportsbook');

        $showcase = array_diff($showcase, array(0));

        return $showcase;
    }
    public function getShowInMemberList()
    {
        return $this->_getOption('show_in_memberlist');
    }

    public function getShowInNavbar()
    {
        return (bool)$this->_getOption('show_in_navbar');
    }

    public function getAjaxRedirect()
    {
        return (bool)$this->_getOption('ajax_redirect');
    }

    public function getCommentMinimumLength()
    {
        return intval($this->_getOption('comment_minlength'));
    }

    public function getEditTimeLimit()
    {
        return intval($this->_getOption('edit_time_limit')) * 60;
    }

	/**
	 * Homepage tabs options
	 *
	 * @return bool
	 */

	public function getHomeTabs ($tab) {
		$option=(array) $this->_getOption('homepage');

		return isset($option[$tab]) && $option[$tab]==1;
	}

	/**
     * Checks if latest, top or bottom blocks should be shown
     * @return bool
     */
    public function getSidebarBlock($block)
    {
        $option=(array) $this->_getOption('sidebar_blocks');

        return isset($option[$block]) && $option[$block]==1;
    }

    public function getMainPageLimit()
    {
        if (!($option=intval($this->_getOption('mainpage_limit'))))
        {
            return 10;
        }

        return intval($option);
    }

    public function getReportOnNegative()
    {
        return false;
        // return (bool) $this->_getOption('report_on_negative');
    }

    public function getReportOnSuspicious()
    {
        return false;
        // return (bool) $this->_getOption('report_on_suspicious');
    }

    public function getDuplicateTimeLimit()
    {
        return intval($this->_getOption('duplicate_time_limit')) * 3600;
    }

    public function getFeedbackLimit()
    {
        $limits=$this->_getOption('feedback_limit');

        if(!empty($limits['count']) && !empty($limits['time'])) {
            return $limits;
        }

        return false;
    }

    public function getReturningRatingTimeLimit()
    {
        return intval($this->_getOption('return_rating_time_limit')) * 3600;
    }

    public function getRequireURL()
    {
        $required=$this->_getOption('require_url');

        if (!in_array($required, array('hide', 'yes', 'no')))
        {
            $required='no';
        }

        return $required;
    }

    public function getAdminUsername()
    {
        return $this->_getOption('admin_username');
    }

    public function getOnOff()
    {
        return $this->_getOption('on');
    }

    public function getPerPage()
    {
        return $this->_getOption('perpage');
    }

    public function getFilteredPerPage()
    {
        return $this->_getOption('perpagefiltered');
    }

    public function getPrefix()
    {
        $required=$this->_getOption('prefix');

        if (!preg_match('#^[a-zA-Z][a-zA-Z0-9]*$#', $required))
        {
            return 'trade';
        }

        return $required;
    }

    public function forceThreadUrl()
    {
        return $this->_getOption('force_valid_deal_url');
    }
    public function getImportMode()
    {
        return $this->_getOption('import_mode');
    }

}