コード例 #1
0
 /**
  * Resolves nested child dependencies.
  *
  * @param Dependency\ElementEntity $parent
  * @param int $collection
  * @param string $nextParentIdentifier
  * @param int $collectionLevel
  */
 protected function resolveDataArrayChildDependencies(Dependency\ElementEntity $parent, $collection, $nextParentIdentifier = '', $collectionLevel = 0)
 {
     $parentIdentifier = $parent->__toString();
     $parentIsSet = isset($this->dataArray[$parentIdentifier]);
     if ($parentIsSet) {
         $this->dataArray[$parentIdentifier][GridDataService::GridColumn_Collection] = $collection;
         $this->dataArray[$parentIdentifier][GridDataService::GridColumn_CollectionLevel] = $collectionLevel;
         $this->dataArray[$parentIdentifier][GridDataService::GridColumn_CollectionCurrent] = md5($parentIdentifier);
         $this->dataArray[$parentIdentifier][GridDataService::GridColumn_CollectionChildren] = count($parent->getChildren());
         $nextParentIdentifier = $parentIdentifier;
         $collectionLevel++;
     }
     foreach ($parent->getChildren() as $child) {
         $this->resolveDataArrayChildDependencies($child->getElement(), $collection, $nextParentIdentifier, $collectionLevel);
         $childIdentifier = $child->getElement()->__toString();
         if (!empty($nextParentIdentifier) && isset($this->dataArray[$childIdentifier])) {
             // Remove from dataArray, but collect to process later
             // and add it just next to the accordant parent element
             $this->dataArray[$childIdentifier][GridDataService::GridColumn_CollectionParent] = md5($nextParentIdentifier);
             $this->nestedDataArray[$nextParentIdentifier][] = $this->dataArray[$childIdentifier];
             unset($this->dataArray[$childIdentifier]);
         }
     }
 }