カスタムモジュールのフロントエンドで{{media url =“ wysiwyg / image.jpg”}}を変更します


7

私はカスタムモジュール、非常にシンプルなブログを構築しています。私はすでにすべてが働いています。最後に追加したのは、WYSIWYG画像のアップロード機能でした。

管理者では、すべてが正常に動作します。しかし、正面に、私は生のソースコードを見て、<img>タグは以下で満たされています:{{media url="wysiwyg/some_image.jpg"}}

に移動する/pub/media/wysiwyg/some_image.jpgと、jpgが存在します。しかし、ヘルパーまたは関数を使用してこれを変更し、フロントエンドで正しく設定する方法を理解できません。

回答:


16

あなたはその使用をフィルタリングすることができます filter() function,

$content = 'This is test demo imgage, {{media url="wysiwyg/some_image.jpg"}}';
$om = \Magento\Framework\App\ObjectManager::getInstance();
$filterManager = $om->get('Magento\Cms\Model\Template\FilterProvider')->getPageFilter()->filter($content);
echo $filterManager;


4

このクラスをBlockのコンストラクターで宣言する必要があります:

Magento\Cms\Model\Template\FilterProvider $filterProvider

$content = '{{media url="wysiwyg/some_image.jpg"}}';
$contentGenerating = $this->_filterProvider->getPageFilter()->filter($content);
echo $contentGenerating; //Generate HTML <img src="http://baseUrl/pub/media/wysiwyg/some_image.jpg"/>

お役に立てば幸いです。


1

フロントエンドに表示するWYSIWYGコンテンツのプロセッサを追加する必要があります。エディターで使用されるすべての変数を処理し、その値とともに表示します。変数にコンテンツがある場合。

$content = $myContent;
echo Mage::helper('cms')->getPageTemplateProcessor()->filter($content);

1
これはmagento 2向けではありません
Blueblazer172
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.