Skip to content
Code-Schnipsel Gruppen Projekte
row.php 1,73 KiB
Newer Older
  • Learn to ignore specific revisions
  • <?php
    
    /**
     * This file contains package_quiqqer_bricks_ajax_brick_infinite_row
     */
    
    use QUI\Bricks\Controls\Children\Infinite;
    
    /**
     * Return the children of the infinite brick row
     *
     * @param string|integer $brickId - Brick-ID
     * @param string|integer $row - Row number
     */
    QUI::$Ajax->registerFunction(
        'package_quiqqer_bricks_ajax_brick_infinite_row',
        function ($brickId, $brickUID, $row) {
            $BrickManager = QUI\Bricks\Manager::init();
    
            if (isset($brickUID) && !empty($brickUID)) {
                $Brick = $BrickManager->getBrickById($brickUID);
            } else {
                $Brick = $BrickManager->getBrickById($brickId);
            }
    
    
    Henning Leutz's avatar
    Henning Leutz committed
            $settings = array_merge(
                $Brick->getAttributes(),
                $Brick->getSettings()
            );
    
    
            $Engine   = QUI::getTemplateManager()->getEngine();
    
    Henning Leutz's avatar
    Henning Leutz committed
            $Infinite = new Infinite($settings);
    
            // bad fix for getting the right attributes - like gridClass
            $Infinite->getBody();
    
    
    
            // generate rows
            $loadingRows = 1;
    
            if (isset($settings['loadingrows'])
                && !empty($settings['loadingrows'])
                && (int)$settings['loadingrows']
            ) {
                $loadingRows = (int)$settings['loadingrows'];
            }
    
            $result = '';
    
            for ($i = 0; $i < $loadingRows; $i++) {
                $Engine->assign(array(
                    'children'  => $Infinite->getRow((int)$row),
                    'row'       => (int)$row,
                    'this'      => $Infinite,
                    'gridClass' => $Infinite->getAttribute('gridClass')
                ));
    
                $result .= $Engine->fetch($Infinite->getRowTemplate());
                $row++;
            }
    
            return $result;
    
        },
        array('brickId', 'brickUID', 'row'),
        false
    );