Вход Регистрация
Файл: library/XenForo/Option/NodeChooser.php
Строк: 142
<?php

/**
 * Helper for choosing a node.
 *
 * @package XenForo_Options
 */
abstract class XenForo_Option_NodeChooser
{
    
/**
     * Renders the node chooser option as a <select>.
     *
     * @param XenForo_View $view View object
     * @param string $fieldPrefix Prefix for the HTML form field name
     * @param array $preparedOption Prepared option info
     * @param boolean $canEdit True if an "edit" link should appear
     *
     * @return XenForo_Template_Abstract Template object
     */
    
public static function renderSelect(XenForo_View $view$fieldPrefix, array $preparedOption$canEdit)
    {
        
//$params['inputClass'] = 'autoSize';

        
return self::_render('option_list_option_select'$view$fieldPrefix$preparedOption$canEdit);
    }

    
/**
     * Renders the node chooser option as a group of <input type="radio" />.
     *
     * @param XenForo_View $view View object
     * @param string $fieldPrefix Prefix for the HTML form field name
     * @param array $preparedOption Prepared option info
     * @param boolean $canEdit True if an "edit" link should appear
     *
     * @return XenForo_Template_Abstract Template object
     */
    
public static function renderRadio(XenForo_View $view$fieldPrefix, array $preparedOption$canEdit)
    {
        return 
self::_render('option_list_option_radio'$view$fieldPrefix$preparedOption$canEdit);
    }

    
/**
     * Fetches a list of node options.
     *
     * @param integer $selectedForum
     * @param mixed Include root forum (specify a phrase to represent the root forum)
     * @param mixed Filter the options to allow only the specified type to be selectable
     *
     * @return array
     */
    
public static function getNodeOptions($selectedForum$includeRoot false$filter false)
    {
        
/* @var $nodeModel XenForo_Model_Node */
        
$nodeModel XenForo_Model::create('XenForo_Model_Node');

        
$options $nodeModel->getNodeOptionsArray(
            
$nodeModel->getAllNodes(),
            
$selectedForum,
            
$includeRoot
        
);

        if (
$filter)
        {
            foreach (
$options AS &$option)
            {
                if (!empty(
$option['node_type_id']) && $option['node_type_id'] != $filter)
                {
                    
$option['disabled'] = 'disabled';
                }

                unset(
$option['node_type_id']);
            }
        }

        return 
$options;
    }

    
/**
     * Renders the node chooser option.
     *
     * @param string Name of template to render
     * @param XenForo_View $view View object
     * @param string $fieldPrefix Prefix for the HTML form field name
     * @param array $preparedOption Prepared option info
     * @param boolean $canEdit True if an "edit" link should appear
     *
     * @return XenForo_Template_Abstract Template object
     */
    
protected static function _render($templateNameXenForo_View $view$fieldPrefix, array $preparedOption$canEdit)
    {
        
$filter = isset($preparedOption['nodeFilter']) ? $preparedOption['nodeFilter'] : false;

        
$preparedOption['formatParams'] = self::getNodeOptions(
            
$preparedOption['option_value'],
            
sprintf('(%s)', new XenForo_Phrase('unspecified')),
            
$filter
        
);

        return 
XenForo_ViewAdmin_Helper_Option::renderOptionTemplateInternal(
            
$templateName$view$fieldPrefix$preparedOption$canEdit
        
);
    }
}
Онлайн: 2
Реклама