/** * Returns paged content. */ private function getPagedContentData(SmartContentContainer $container, $page, $pageSize, $excludeUuid) { $config = $container->getConfig(); $limitResult = isset($config['limitResult']) && !empty($config['limitResult']) ? intval($config['limitResult']) : null; $limit = intval($pageSize); $offset = ($page - 1) * $limit; $position = $limit * $page; if ($limitResult !== null && $position >= $limitResult) { $limit = $limitResult - $offset; $loadLimit = $limit; } else { $loadLimit = $limit + 1; } if ($limit < 0) { $container->setHasNextPage(false); return []; } $data = $container->getData([$excludeUuid], $loadLimit, $offset); if (sizeof($data) > $limit) { $container->setHasNextPage(true); $data = array_splice($data, 0, $limit); } else { $container->setHasNextPage(false); } return $data; }