Из того, что я понимаю, вы не можете использовать ifconfig
на ходу. В классе Magento\Framework\View\Layout\Reader\Block.php
есть проверка на атрибут ifconfig
:
$configPath = (string)$currentElement->getAttribute('ifconfig');
источник:
https://github.com/magento/magento2/blob/2.3-develop/lib/internal/Magento/Framework/View/Layout/Reader/Block.php
Однако на ходу блок фактически не проверяет ifconfig
атрибут:
protected function scheduleMove(Layout\ScheduledStructure $scheduledStructure, Layout\Element $currentElement)
{
$elementName = (string)$currentElement->getAttribute('element');
$destination = (string)$currentElement->getAttribute('destination');
$alias = (string)$currentElement->getAttribute('as') ?: '';
if ($elementName && $destination) {
list($siblingName, $isAfter) = $this->beforeAfterToSibling($currentElement);
$scheduledStructure->setElementToMove(
$elementName,
[$destination, $siblingName, $isAfter, $alias]
);
} else {
throw new \Magento\Framework\Exception\LocalizedException(
new \Magento\Framework\Phrase('Element name and destination must be specified.')
);
}
return $this;
}
https://github.com/magento/magento2/blob/2.3-develop/lib/internal/Magento/Framework/View/Layout/Reader/Move.php#L49
В Theroy вам не нужен ifconfig на ходу, если в блоке уже есть ifconfig, поскольку блок не будет отображаться и, следовательно, не перемещаться.
Надеюсь, что это имеет смысл.