2017-03-24 5 views
0

phtmlファイルにカスタム画像を追加し、php bin/magento setup:static-content:deployコマンドを実行しましたが、まだ表示されません。また、このコマンドは完了に多くの時間がかかります。Magento2にカスタム画像が表示されない

+0

どのようにカスタム画像を追加していますか、コードとファイルについても説明してください。どのようにphyファイルのパスを呼び出すのがより重要か –

答えて

-1

誰かがui_componentを用いて画像列を追加したい場合は、怒鳴るしてください説明:

があなたのuiComponent XMLで自分の画像列を追加します。

<column name="imagefile" class="{Namespace}\{ModuleName}\Ui\Component\Listing \Column\Thumbnail"> 
     <argument name="data" xsi:type="array"> 
      <item name="js_config" xsi:type="array"> 
       <item name="component" xsi:type="string">Magento_Ui/js/grid/columns/thumbnail</item> 
      </item> 
      <item name="config" xsi:type="array"> 
       <item name="sortable" xsi:type="boolean">true</item> 
       <item name="altField" xsi:type="string">imagefile</item> 
       <item name="has_preview" xsi:type="string">1</item> 
       <item name="dataType" xsi:type="string">text</item> 
       <item name="sorting" xsi:type="string">asc</item> 
       <item name="align" xsi:type="string">left</item> 
       <item name="laem>bel" xsi:type="string" translate="true">Thumbnail</item> 

      </item> 
     </argument> 
    </column> 

すなわち、指定されたパスに列ファイルを作成します。
<?php 
    namespace {NameSpace}\{ModuleName}\Ui\Component\Listing\Column; 
    use Magento\Framework\View\Element\UiComponentFactory; 
    use Magento\Framework\View\Element\UiComponent\ContextInterface; 
    use {NameSpace}\{ModuleName}\Model\News\Image as KtplImage; 
    class Thumbnail extends \Magento\Ui\Component\Listing\Columns\Column 
    { 
const NAME = 'imagefile'; 
const ALT_FIELD = 'imagefile'; 
    public function __construct(
    ContextInterface $context, 
    UiComponentFactory $uiComponentFactory, 
    KtplImage $imageFactory, 
    \Magento\Framework\UrlInterface $urlBuilder, 
    array $components = [], 
    array $data = [] 
) { 
    parent::__construct($context, $uiComponentFactory, $components, $data); 
    $this->imageFactory = $imageFactory; 
    $this->urlBuilder = $urlBuilder; 
} 

/** 
* Prepare Data Source 
* 
* @param array $dataSource 
* @return void 
*/ 
public function prepareDataSource(array & $dataSource) 
{ 
    if (isset($dataSource['data']['items'])) { 
     $fieldName = $this->getData('name'); 
     foreach ($dataSource['data']['items'] as & $item) { 
      $itemIndex = new \Magento\Framework\Object($item); 
      $item[$fieldName . '_src'] = $this->imageFactory->getBaseUrl().$itemIndex->getImagefile(); 
      $item[$fieldName . '_orig_src'] = $this->imageFactory->getBaseUrl().$itemIndex->getImagefile();     
     } 
    } 
    } 

} 
use Magento\Framework\App\Filesystem\DirectoryList; 
use Magento\Backend\App\Action; 
protected $_fileUploaderFactory; 
public function __construct(
\Magento\MediaStorage\Model\File\UploaderFactory $fileUploaderFactory, 
Action\Context $context  
) { 
    $this->_fileUploaderFactory = $fileUploaderFactory; 
    parent::__construct($context); 
} 
public function execute(){ 
$uploader = $this->_fileUploaderFactory->create(['fileId' => 'image']); 
$uploader->setAllowedExtensions(['jpg', 'jpeg', 'gif', 'png']); 
$uploader->setAllowRenameFiles(false); 
$uploader->setFilesDispersion(false); 
$path = $this->_filesystem->getDirectoryRead(DirectoryList::MEDIA) 
->getAbsolutePath('images/'); 
$uploader->save($path); 
} 
関連する問題