35 private $conditionFactory;
50 $this->conditionFactory = $conditionFactory;
64 if (!isset($this->generators[
$type])) {
65 throw new \InvalidArgumentException(
"Invalid generator type '{$type}'");
67 return $this->generators[
$type];
79 $this->
buildStructure($readerContext->getScheduledStructure(), $generatorContext->getStructure());
110 $this->helper->scheduleElement($scheduledStructure,
$structure, key($scheduledStructure->
getStructure()));
116 foreach ($scheduledStructure->
getListToMove() as $elementToMove) {
125 $condition = $this->conditionFactory->create(
$data[
'attributes'][
'visibilityConditions']);
126 if (!$condition->isVisible(
$data[
'attributes'][
'visibilityConditions'])) {
191 foreach ($elementsToRemove as
$element) {
216 if (!
$alias &&
false ===
$structure->getChildId($destination, $childAlias)) {
223 }
catch (\OutOfBoundsException $e) {
224 $this->logger->warning(
'Broken reference: ' . $e->getMessage());
238 return isset(
$data[
'attributes']) &&
239 array_key_exists(
'visibilityConditions',
$data[
'attributes']) &&
240 !empty(
$data[
'attributes'][
'visibilityConditions']);
removeElement(ScheduledStructure $scheduledStructure, Data\Structure $structure, $elementName, $isChild=false)
unsetElement($elementName)
moveElementInStructure(ScheduledStructure $scheduledStructure, Data\Structure $structure, $element)
unsetElementFromBrokenParentList($elementName)
reorderElements(ScheduledStructure $scheduledStructure, Data\Structure $structure, $elementName)
unsetElementToSort($elementName)
unsetElementFromListToRemove($elementName)
getElementToMove($elementName, $default=null)
visibilityConditionsExistsIn(array $data)
const ELEMENT_OFFSET_OR_SIBLING
process(Reader\Context $readerContext, Generator\Context $generatorContext)
getElementToSort($elementName, array $default=[])
__construct(ScheduledStructure\Helper $helper, ConditionFactory $conditionFactory, \Psr\Log\LoggerInterface $logger, array $generators=null)
buildStructure(ScheduledStructure $scheduledStructure, Data\Structure $structure)
const ELEMENT_PARENT_NAME
addGenerators(array $generators)
if(!isset($_GET['name'])) $name