Skip to content
Code-Schnipsel Gruppen Projekte
Manager.php 27,8 KiB
Newer Older
  • Learn to ignore specific revisions
  • Henning Leutz's avatar
    Henning Leutz committed
                self::TABLE_CACHE,
                $Project
            );
    
            foreach ($parentIds as $parentId) {
                $bricks = QUI::getDataBase()->fetch(array(
    
    Henning Leutz's avatar
    Henning Leutz committed
                    'where' => array(
    
    Henning Leutz's avatar
    Henning Leutz committed
                        'area' => $brickArea
                    )
                ));
    
                if (empty($bricks) || !is_array($bricks)) {
                    continue;
                }
    
                try {
                    $Parent = $Project->get($parentId);
                } catch (QUI\Exception $Exception) {
                    continue;
                }
    
                $parentAreas = $Parent->getAttribute('quiqqer.bricks.areas');
                $parentAreas = json_decode($parentAreas, true);
    
    
                if (!isset($parentAreas[$brickArea])) {
                    continue;
                }
    
    
                $brickIds = array();
                $area     = $parentAreas[$brickArea];
    
                foreach ($bricks as $brick) {
                    $brickIds[$brick['brick']] = true;
                }
    
                foreach ($area as $brick) {
    
                    $customFields = json_decode($brick['customfields'], true);
    
                    if ($customFields
                        && isset($customFields['inheritance'])
                        && $customFields['inheritance'] === false) {
                        continue;
                    }
    
                    if (isset($brick['brickId'])
                        && isset($brickIds[$brick['brickId']])) {
    
    Henning Leutz's avatar
    Henning Leutz committed
                        $result[] = $brick;
                    }
                }
    
                if (empty($result)) {
                    continue;
                }
    
                break;
            }
    
            return $result;
        }
    }