*/
namespace Magento\Framework\Data\Form\Element;
use Magento\Framework\UrlInterface;
class Image extends \Magento\Framework\Data\Form\Element\AbstractElement
{
/**
* @var UrlInterface
*/
protected $_urlBuilder;
/**
* @param \Magento\Framework\Data\Form\Element\Factory $factoryElement
* @param \Magento\Framework\Data\Form\Element\CollectionFactory $factoryCollection
* @param \Magento\Framework\Escaper $escaper
* @param UrlInterface $urlBuilder
* @param array $data
*/
public function __construct(
\Magento\Framework\Data\Form\Element\Factory $factoryElement,
\Magento\Framework\Data\Form\Element\CollectionFactory $factoryCollection,
\Magento\Framework\Escaper $escaper,
UrlInterface $urlBuilder,
$data = []
) {
$this->_urlBuilder = $urlBuilder;
parent::__construct($factoryElement, $factoryCollection, $escaper, $data);
$this->setType('file');
}
/**
* Return element html code
*
* @return string
*/
public function getElementHtml()
{
$html = '';
if ((string)$this->getValue()) {
$url = $this->_getUrl();
if (!preg_match("/^http\:\/\/|https\:\/\//", $url)) {
$url = $this->_urlBuilder->getBaseUrl(['_type' => UrlInterface::URL_TYPE_MEDIA]) . $url;
}
$html = '_getUiId(
'link'
) .
'>' .
'
_getUiId() .
' />' .
' ';
}
$this->setClass('input-file');
$html .= parent::getElementHtml();
$html .= $this->_getDeleteCheckbox();
return $html;
}
/**
* Return html code of delete checkbox element
*
* @return string
*/
protected function _getDeleteCheckbox()
{
$html = '';
if ($this->getValue()) {
$label = (string)new \Magento\Framework\Phrase('Delete Image');
$html .= '';
$html .= 'getDisabled() ? ' disabled="disabled"' : '') .
'/>';
$html .= '';
$html .= $this->_getHiddenInput();
$html .= '';
}
return $html;
}
/**
* Return html code of hidden element
*
* @return string
*/
protected function _getHiddenInput()
{
return '';
}
/**
* Get image preview url
*
* @return string
*/
protected function _getUrl()
{
return $this->getValue();
}
/**
* Return name
*
* @return string
*/
public function getName()
{
return $this->getData('name');
}
}