Skip to content
Code-Schnipsel Gruppen Projekte
row.php 1,61 KiB
Newer Older
<?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();

            $Brick = $BrickManager->getBrickById($brickUID);
        } else {
            $Brick = $BrickManager->getBrickById($brickId);
        }

Henning Leutz's avatar
Henning Leutz committed
        $settings = array_merge(
Henning Leutz's avatar
Henning Leutz committed
            $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();

        if (!empty($settings['loadingrows']) && (int)$settings['loadingrows']) {
            $loadingRows = (int)$settings['loadingrows'];
        }

        $result = '';

        for ($i = 0; $i < $loadingRows; $i++) {
                'children' => $Infinite->getRow((int)$row),
                'row' => (int)$row,
                'this' => $Infinite,
                'gridClass' => $Infinite->getAttribute('gridClass')

            $result .= $Engine->fetch($Infinite->getRowTemplate());
            $row++;
        }

        return $result;