Seditio Source
Root |
./othercms/croogo-4.0.7/vendor/friendsofcake/bootstrap-ui/src/View/Widget/FileWidget.php
<?php
namespace BootstrapUI\View\Widget;

use
BootstrapUI\View\Widget\InputgroupTrait;
use
Cake\View\Form\ContextInterface;
use
Cake\View\StringTemplate;
use
Cake\View\Widget\LabelWidget;

/**
 * Input widget class for generating a file upload control.
 */
class FileWidget extends \Cake\View\Widget\FileWidget
{
    use
InputgroupTrait;

   
/**
     * Label widget.
     *
     * @var \Cake\View\Widget\LabelWidget
     */
   
protected $_label;

   
/**
     * Constructor
     *
     * @param \Cake\View\StringTemplate $templates Templates list.
     * @param \Cake\View\Widget\LabelWidget $label Label widget instance.
     */
   
public function __construct(StringTemplate $templates, LabelWidget $label)
    {
       
$this->_label = $label;

       
parent::__construct($templates);
    }

   
/**
     * Render a file upload form widget.
     *
     * Data supports the following keys:
     *
     * - `name` - Set the input name.
     * - `escape` - Set to false to disable HTML escaping.
     *
     * All other keys will be converted into HTML attributes.
     * Unlike other input objects the `val` property will be specifically
     * ignored.
     *
     * @param array $data The data to build a file input with.
     * @param \Cake\View\Form\ContextInterface $context The current form context.
     * @return string HTML elements.
     */
   
public function render(array $data, ContextInterface $context)
    {
       
$data['injectFormControl'] = false;

       
$inputClass = 'form-control-file';
        if (
            isset(
$data['custom']) &&
           
$data['custom']
        ) {
           
$inputClass = 'custom-file-input';
        }
        unset(
$data['custom']);

       
$data = $this->injectClasses($inputClass, $data);

        if (isset(
$data['inputGroupLabel'])) {
           
$data['inputGroupLabel'] += [
               
'for' => $data['id'],
            ];
           
$data['templateVars']['label'] = $this->_label->render($data['inputGroupLabel'], $context);
            unset(
$data['inputGroupLabel']);
        }

        return
$this->_withInputGroup($data, $context);
    }
}