Files
Oleksii Korshenko 4b5626478a MAGETWO-71174: Update doc block information in php classes with @deprecated and @since tags
- replaced release version with package version in @since and @depreacated tags
 - removed @since tag from private properties/methods  and non @api classes
2017-08-04 19:15:55 -05:00

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;
}
}