View file upload/src/addons/XenCentral/Feedback/Option/DefaultOptions.php

File size: 5.17Kb
<?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\Option;

use XF\Option\AbstractOption;

class DefaultOptions extends AbstractOption {

    public static function renderAdminsSelector(\XF\Entity\Option $option, array $htmlParams)
    {

        $defaultVariables = $option;

        $rootTitle= \XF::phrase('xcfs_all_admins');

        $admins= \XF::repository('XF:Admin')->findAdminsForList();

        $positions = array();


        foreach($admins AS $adminId=>$admin) {
            $positions[$adminId] = array(
                'value' => $adminId,
                'label' => $admin['username'],
                'selected' => false,
                'depth' => 0,
            );
        }


        if (is_array($defaultVariables['option_value'])) {
            foreach ($defaultVariables['option_value'] AS $selectedAdminId) {
                if (isset($positions[$selectedAdminId])) {
                    $positions[$selectedAdminId]['selected'] = true;
                }
            }
        }

        $admins= $positions;
        


        $viewParams =array('options'=>$option, 'defaultVariables' => $admins);

        return self::getTemplate('admin:xcfs_admin_username', $option, $htmlParams, $viewParams);
    }
    public static function renderNotificationAdminEmailSelectors(\XF\Entity\Option $option, array $htmlParams)
    {
        $viewParams =array('options'=>$option);
        return self::getTemplate('admin:xcfs_preferences_admin_email', $option, $htmlParams, $viewParams);
    }
    public static function renderNotificationAdminPmSelectors(\XF\Entity\Option $option, array $htmlParams)
    {
        return self::getTemplate('admin:xcfs_preferences_admin_pm', $option, $htmlParams, array('options'=>$option));
    }
    public static function renderAlertSelectors(\XF\Entity\Option $option, array $htmlParams)
    {

        return self::getTemplate('admin:xcfs_preferences_admin_alert', $option, $htmlParams, array('options'=>$option));
    }


    public static function renderNotificationDefaultEmailSelectors(\XF\Entity\Option $option, array $htmlParams)
    {
        return self::getTemplate('admin:xcfs_preferences_default_email', $option, $htmlParams, array('options'=>$option));
    }
    public static function renderNotificationDefaultPmSelectors(\XF\Entity\Option $option, array $htmlParams)
    {
        return self::getTemplate('admin:xcfs_preferences_default_pm', $option, $htmlParams, array('options'=>$option));
    }

    public static function renderAlertDefaultSelectors(\XF\Entity\Option $option, array $htmlParams)
    {

        return self::getTemplate('admin:xcfs_preferences_default_alert', $option, $htmlParams, array('options'=>$option));
    }


    public static function renderNodesSelector(\XF\Entity\Option $option, array $htmlParams)
{
    /** @var \XF\Repository\UserGroup $userGroupRepo */
    $nodes = \XF::repository('XF:Node');

    return self::getTemplate('admin:xcfs_multi_select_nodes', $option, $htmlParams, array(
        'nodes' => $nodes->getNodeList(),
        'options' => $option
    ));

}
    public static function renderNodesSelectorAppearance(\XF\Entity\Option $option, array $htmlParams)
    {
        /** @var \XF\Repository\UserGroup $userGroupRepo */
        $nodes = \XF::repository('XF:Node');
        return self::getTemplate('admin:xcfs_multi_select_nodes_appearance', $option, $htmlParams, array(
            'nodes' => $nodes->getNodeList(),
            'options' => $option
        ));

    }
    public static function renderResourceSelector(\XF\Entity\Option $option, array $htmlParams)
    {
       if(self::checkIfAddonIsEnabled('XFRM')){
           $catRepo = \XF::repository('XFRM:Category');

           return self::getTemplate('admin:xcfs_multi_select_resources', $option, $htmlParams, array(
               'nodes' => $catRepo->findCategoryList(),
               'options' => $option
           ));
       } else {

           return self::getTemplate('admin:xcfs_multi_select_resources', $option, $htmlParams, array(
               'nodes' => [],
               'options' => $option
           ));
       }
    }
    public static function renderMediaSelector(\XF\Entity\Option $option, array $htmlParams)
    {
        if(self::checkIfAddonIsEnabled('XFMG')) {
            $resourceCategory = \XF::repository('XFMG:Category');

            return self::getTemplate('admin:xcfs_multi_select_media', $option, $htmlParams, array(
                'nodes' => $resourceCategory->findCategoryList(),
                'options' => $option
            ));
        } else {

            return self::getTemplate('admin:xcfs_multi_select_media', $option, $htmlParams, array(
                'nodes' => [],
                'options' => $option
            ));
        }

    }
    protected static function checkIfAddonIsEnabled($addonid)
    {
        $addon = \XF::repository('XF:AddOn')->getEnabledAddOns();

            if (array_key_exists($addonid, $addon)) {
                return true;

            } else {

                return false;
            }
    }
}