Передача переменной из phtml в блок CMS в Magento 2 - PullRequest
0 голосов
/ 04 сентября 2018

Мне нужно отправить данные из места создания блока в .phtml в мой блок CMS.

Я создаю блок в .phtml следующим образом

<?php
    $objectManager = \Magento\Framework\App\ObjectManager::getInstance();
    $category = $objectManager->get('Magento\Framework\Registry')->registry('current_category'); ?>
    <?php if ($category->getShortDescription()) : ?>
          <?php echo $block->getLayout()->createBlock(
               'Magento\Cms\Block\Block')->setBlockId('short_description')->setData('sd','Hello Short')->toHtml();?>
    <?php endif; ?>

Здесь я передаю параметр в блок как setData('sd','Hello Short') Но этот параметр не отображается в блоке cms

Я называю этот параметр / аргумент в своем блоге как

The Short Description is {{sd}}

Но я ожидаю, что результат должен быть The Short Description is Hello Short, но я The Short Description is {{sd}}

1 Ответ

0 голосов
/ 04 сентября 2018

Я решил эту проблему, заменив текст в блоке CMS.

<?php if ($category->getShortDescription()) : ?>
            <?php
            $shortDescriptionBlock =  $block->getLayout()->createBlock(
                    'Magento\Cms\Block\Block',"",["short_desc" => $category->getShortDescription()])->setBlockId('short_description')->toHtml();
            echo str_replace("{{short_description}}", $category->getShortDescription(), $shortDescriptionBlock);?>
        <?php endif; ?>
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...