mirror of
https://github.com/bdnugget/magento2.git
synced 2026-11-07 09:17:35 +00:00
- replaced release version with package version in @since and @depreacated tags - removed @since tag from private properties/methods and non @api classes
50 lines
1.4 KiB
PHP
50 lines
1.4 KiB
PHP
<?php
|
|
/**
|
|
* Copyright © Magento, Inc. All rights reserved.
|
|
* See COPYING.txt for license details.
|
|
*/
|
|
|
|
namespace Magento\Backend\Model\View\Layout;
|
|
|
|
use Magento\Framework\View\Layout\ScheduledStructure;
|
|
use Magento\Framework\View\Layout\Data\Structure;
|
|
|
|
/**
|
|
* Class StructureManager
|
|
*
|
|
* Is responsible for managing layout structure items
|
|
* By using this class developer can remove layout entities (block, uiComponent) from scheduled structure
|
|
* Removed entities will not appear at rendered page
|
|
* @api
|
|
* @since 100.2.0
|
|
*/
|
|
class StructureManager
|
|
{
|
|
/**
|
|
* Removes scheduled element from structure by name, also removes child elements
|
|
*
|
|
* @param ScheduledStructure $scheduledStructure
|
|
* @param Structure $structure
|
|
* @param string $elementName
|
|
* @param bool $isChild
|
|
* @return bool
|
|
* @since 100.2.0
|
|
*/
|
|
public function removeElement(
|
|
ScheduledStructure $scheduledStructure,
|
|
Structure $structure,
|
|
$elementName,
|
|
$isChild = false
|
|
) {
|
|
$elementsToRemove = array_keys($structure->getChildren($elementName));
|
|
$scheduledStructure->unsetElement($elementName);
|
|
foreach ($elementsToRemove as $element) {
|
|
$this->removeElement($scheduledStructure, $structure, $element, true);
|
|
}
|
|
if (!$isChild) {
|
|
$structure->unsetElement($elementName);
|
|
}
|
|
return true;
|
|
}
|
|
}
|