| 1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283848586878889909192939495 |
- <?php
- /**
- * CakePHP(tm) : Rapid Development Framework (http://cakephp.org)
- * Copyright (c) Cake Software Foundation, Inc. (http://cakefoundation.org)
- *
- * Licensed under The MIT License
- * For full copyright and license information, please see the LICENSE.txt
- * Redistributions of files must retain the above copyright notice.
- *
- * @copyright Copyright (c) Cake Software Foundation, Inc. (http://cakefoundation.org)
- * @link http://cakephp.org CakePHP(tm) Project
- * @since 3.0.0
- * @license http://www.opensource.org/licenses/mit-license.php MIT License
- */
- namespace Cake\View\Widget;
- use Cake\View\Form\ContextInterface;
- use Cake\View\Widget\WidgetInterface;
- /**
- * Basic input class.
- *
- * This input class can be used to render basic simple
- * input elements like hidden, text, email, tel and other
- * types.
- */
- class BasicWidget implements WidgetInterface
- {
- /**
- * StringTemplate instance.
- *
- * @var \Cake\View\StringTemplate
- */
- protected $_templates;
- /**
- * Constructor.
- *
- * @param \Cake\View\StringTemplate $templates Templates list.
- */
- public function __construct($templates)
- {
- $this->_templates = $templates;
- }
- /**
- * Render a text widget or other simple widget like email/tel/number.
- *
- * This method accepts a number of keys:
- *
- * - `name` The name attribute.
- * - `val` The value attribute.
- * - `escape` Set to false to disable escaping on all attributes.
- *
- * Any other keys provided in $data will be converted into HTML attributes.
- *
- * @param array $data The data to build an input with.
- * @param \Cake\View\Form\ContextInterface $context The current form context.
- * @return string
- */
- public function render(array $data, ContextInterface $context)
- {
- $data += [
- 'name' => '',
- 'val' => null,
- 'type' => 'text',
- 'escape' => true,
- 'templateParams' => []
- ];
- $data['value'] = $data['val'];
- unset($data['val']);
- return $this->_templates->format('input', [
- 'name' => $data['name'],
- 'type' => $data['type'],
- 'templateParams' => $data['templateParams'],
- 'attrs' => $this->_templates->formatAttributes(
- $data,
- ['name', 'type']
- ),
- ]);
- }
- /**
- * {@inheritDoc}
- */
- public function secureFields(array $data)
- {
- if (!isset($data['name']) || $data['name'] === '') {
- return [];
- }
- return [$data['name']];
- }
- }
|