Как создать постраничность у своего Плагина..?

Сейчас занимаюсь разработкой Плагина для своего проекта но столкнулся с проблемой которую не могу решить… Как сделать постраничность у Плагина…
Пробовал сделать по аналогии с people но там много мне непонятных вещей встречается в запросах… Допустим:
/**
	 * Получает дополнительные данные(объекты) для юзеров по их ID
	 *
	 */
	public function GetUsersAdditionalData($aUserId,$aAllowData=array('vote','session','friend')) {
		func_array_simpleflip($aAllowData);
		if (!is_array($aUserId)) {
			$aUserId=array($aUserId);
		}
		/**
		 * Получаем юзеров
		 */
		$aUsers=$this->GetUsersByArrayId($aUserId);
		/**
		 * Получаем дополнительные данные
		 */
		$aSessions=array();
		$aFriends=array();
		$aVote=array();
		if (isset($aAllowData['session'])) {
			$aSessions=$this->GetSessionsByArrayId($aUserId);
		}
		if (isset($aAllowData['friend']) and $this->oUserCurrent) {
			$aFriends=$this->GetFriendsByArray($aUserId,$this->oUserCurrent->getId());
		}

		if (isset($aAllowData['vote']) and $this->oUserCurrent) {
			$aVote=$this->Vote_GetVoteByArray($aUserId,'user',$this->oUserCurrent->getId());
		}
		/**
		 * Добавляем данные к результату
		 */
		foreach ($aUsers as $oUser) {
			if (isset($aSessions[$oUser->getId()])) {
				$oUser->setSession($aSessions[$oUser->getId()]);
			} else {
				$oUser->setSession(null); // или $oUser->setSession(new ModuleUser_EntitySession());
			}
			if ($aFriends&&isset($aFriends[$oUser->getId()])) {
				$oUser->setUserFriend($aFriends[$oUser->getId()]);
			} else {
				$oUser->setUserFriend(null);
			}

			if (isset($aVote[$oUser->getId()])) {
				$oUser->setVote($aVote[$oUser->getId()]);
			} else {
				$oUser->setVote(null);
			}
		}

		return $aUsers;
	}
что делает
if (isset($aAllowData['session'])) {
			$aSessions=$this->GetSessionsByArrayId($aUserId);
		}
идентифицирует каждого user по ID..?

Я думаю эта тема будет многим интересна..;) Кто в курсе этих преобразований прошу помощи и показать как делать хотя бы простейшая сортировка по дате добавления и сортировке по указанному идентификатору…

4 комментария

avatar
да тут все просто
$aPaging=$this->Viewer_MakePaging($iCount,$iPage,$iPerPage,4,Router::GetPath('some/path/'));
$this->Viewer_Assign('aPaging',$aPaging);

$iCount — общее количество чего-либо
$iPage — текущая страница
$iPerPage — сколько ты на страницу отображаешь элементов
4 — количество подряд идущих страниц до/после твоей
Router::GetPath('some/path/') — страница, к которой будет дописываться page1;page2;pageN
и еще необязательный параметр в конце — массив GET-значений, которые тоже будут в конец дописываться (список вида $a['name']='value';)
  • xyz
  • 0
avatar
С этим я более менее разобрался, но всё же за информацию спасибо большое, более менее по этому аспекту понял… НО мне больше интересует какие запросы делать к DB и как потом к голым ID добавлять данные..:)
avatar
и еще необязательный параметр в конце — массив GET-значений, которые тоже будут в конец дописываться (список вида $a['name']='value';)
вы имеете ввиду что то вроде этого /addons/page2/?type=0&category=1 ..?
Или как то по другому..?
avatar
именно
Только зарегистрированные и авторизованные пользователи могут оставлять комментарии.