示例#1
0
 /**
  * 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;
 }