*/ 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' ) . '>' . '' .
                $this->getValue() .
                '_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'); } }