本文整理汇总了PHP中Paginator::newFromArray方法的典型用法代码示例。如果您正苦于以下问题:PHP Paginator::newFromArray方法的具体用法?PHP Paginator::newFromArray怎么用?PHP Paginator::newFromArray使用的例子?那么, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类Paginator
的用法示例。
在下文中一共展示了Paginator::newFromArray方法的12个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的PHP代码示例。
示例1: execute
function execute()
{
global $wgOut, $wgUser, $wgRequest, $wgTitle;
$gVar = $wgRequest->getText('var');
$gVal = $wgRequest->getVal('val', 'true');
$gLikeVal = $wgRequest->getVal('likeValue', 'true');
$gTypeVal = $wgRequest->getVal('searchType', 'bool');
$wgOut->SetPageTitle(wfMsg('whereisextension'));
$wgOut->setRobotpolicy('noindex,nofollow');
if (!$wgUser->isAllowed('WhereIsExtension')) {
$this->displayRestrictionError();
return;
}
$this->values = array(0 => array('true', true, '='), 1 => array('false', false, '='), 2 => array('not empty', '', '!='));
$tagName = $wgRequest->getVal('wikiSelectTagName', null);
$tagWikis = $wgRequest->getArray('wikiSelected');
$tagResultInfo = '';
if ($wgRequest->wasPosted() && !empty($tagName) && count($tagWikis)) {
$tagResultInfo = $this->tagSelectedWikis($tagName, $tagWikis);
}
$formData['vars'] = $this->getListOfVars($gVar == '');
$formData['vals'] = $this->values;
$formData['selectedVal'] = $gVal;
$formData['likeValue'] = $gLikeVal;
$formData['searchType'] = $gTypeVal;
$formData['selectedGroup'] = $gVar == '' ? 27 : '';
//default group: extensions (or all groups when looking for variable, rt#16953)
$formData['groups'] = WikiFactory::getGroups();
$formData['actionURL'] = $wgTitle->getFullURL();
// by default, we don't need a paginator
$sPaginator = '';
if (!empty($gVar)) {
$formData['selectedVar'] = $gVar;
// assume an empty result
$formData['count'] = 0;
$formData['wikis'] = array();
if (isset($this->values[$gVal][1]) && isset($this->values[$gVal][2])) {
// check how many wikis meet the conditions
$formData['count'] = WikiFactory::getCountOfWikisWithVar($gVar, $gTypeVal, $this->values[$gVal][2], $this->values[$gVal][1], $gLikeVal);
// if there are any, get the list and create a Paginator
if (0 < $formData['count']) {
// determine the offset (from the requested page)
$iPage = $wgRequest->getVal('page', 1);
$iOffset = ($iPage - 1) * self::ITEMS_PER_PAGE;
// the list
$formData['wikis'] = WikiFactory::getListOfWikisWithVar($gVar, $gTypeVal, $this->values[$gVal][2], $this->values[$gVal][1], $gLikeVal, $iOffset, self::ITEMS_PER_PAGE);
// the Paginator, if we need more than one page
if (self::ITEMS_PER_PAGE < $formData['count']) {
$oPaginator = Paginator::newFromArray(array_fill(0, $formData['count'], ''), self::ITEMS_PER_PAGE, 5);
$oPaginator->setActivePage($iPage - 1);
$sPager = $oPaginator->getBarHTML(sprintf('%s?var=%s&val=%s&likeValue=%s&searchType=%s&page=%%s', $wgTitle->getFullURL(), $gVar, $gVal, $gLikeVal, $gTypeVal));
}
}
}
}
$oTmpl = new EasyTemplate(dirname(__FILE__) . '/templates/');
$oTmpl->set_vars(array('formData' => $formData, 'tagResultInfo' => $tagResultInfo, 'sPager' => $sPager));
$wgOut->addHTML($oTmpl->render('list'));
}
示例2: getPaginatedRSSData
protected function getPaginatedRSSData()
{
if (empty($this->getPaginatedData)) {
$crRSS = $this->getRSSData();
$this->title = $crRSS->getTitle();
$pages = Paginator::newFromArray($crRSS->getItems(), self::CRUNCHYROLL_COLLUMNS * $this->getRowsNumber());
$this->getPaginatedData = $pages;
}
return $this->getPaginatedData;
}
示例3: index
/**
* Videos page
* @requestParam string sort [ recent/popular/trend/premium ]
* @requestParam integer page - page number
* @responseParam integer addVideo [0/1]
* @responseParam string pagination
* @responseParam string sortMsg - selected option (sorting)
* @responseParam array sortingOptions - sorting options
* @responseParam array videos - list of videos
*/
public function index()
{
$this->wg->SupressPageSubtitle = true;
$this->getContext()->getOutput()->setPageTitle($this->wf->Msg('specialvideos-page-title'));
$this->getContext()->getOutput()->setHTMLTitle($this->wf->Msg('specialvideos-html-title'));
$this->getContext()->getOutput()->setRobotPolicy("index,follow");
$sort = $this->request->getVal('sort', 'trend');
$page = $this->request->getVal('page', 1);
if (!is_numeric($page)) {
$page = 1;
}
$addVideo = 1;
$specialVideos = F::build('SpecialVideosHelper');
$videos = $specialVideos->getVideos($sort, $page);
$mediaService = F::build('MediaQueryService');
if ($sort == 'premium') {
$totalVideos = $mediaService->getTotalPremiumVideos();
} else {
$totalVideos = $mediaService->getTotalVideos();
}
$totalVideos = $totalVideos + 1;
// adding 'add video' placeholder to video array count
$sortingOptions = array_merge($specialVideos->getSortingOptions(), $specialVideos->getFilterOptions());
if (!array_key_exists($sort, $sortingOptions)) {
$sort = 'recent';
}
// Set up pagination
$pagination = '';
$linkToSpecialPage = SpecialPage::getTitleFor("Videos")->escapeLocalUrl();
if ($totalVideos > SpecialVideosHelper::VIDEOS_PER_PAGE) {
$pages = Paginator::newFromArray(array_fill(0, $totalVideos, ''), SpecialVideosHelper::VIDEOS_PER_PAGE);
$pages->setActivePage($page - 1);
$pagination = $pages->getBarHTML($linkToSpecialPage . '?page=%s&sort=' . $sort);
// check if we're on the last page
if ($page < $pages->getPagesCount()) {
// we're not so don't show the add video placeholder
$addVideo = 0;
}
}
foreach ($videos as &$video) {
$video['byUserMsg'] = $specialVideos->getByUserMsg($video['userName'], $video['userUrl']);
$video['postedInMsg'] = $specialVideos->getPostedInMsg($video['truncatedList'], $video['isTruncated']);
$video['videoOverlay'] = F::build('WikiaFileHelper', array(SpecialVideosHelper::THUMBNAIL_WIDTH, $video['fileTitle']), 'videoInfoOverlay');
$video['videoPlayButton'] = F::build('WikiaFileHelper', array(SpecialVideosHelper::THUMBNAIL_WIDTH, SpecialVideosHelper::THUMBNAIL_HEIGHT), 'videoPlayButtonOverlay');
}
$this->thumbHeight = SpecialVideosHelper::THUMBNAIL_HEIGHT;
$this->thumbWidth = SpecialVideosHelper::THUMBNAIL_WIDTH;
$this->addVideo = $addVideo;
$this->pagination = $pagination;
$this->sortMsg = $sortingOptions[$sort];
// selected sorting option to display in drop down
$this->sortingOptions = $sortingOptions;
// populate the drop down
$this->videos = $videos;
}
示例4: index
public function index()
{
$this->response->addAsset('/skins/oasis/css/modules/CorporateDatepicker.scss');
$this->collectRequestParameters();
$faqPageName = $this->model->getWAMFAQPageName();
$title = $this->wg->Title;
if ($title instanceof Title) {
$this->redirectIfMisspelledWamMainPage($title);
}
$this->faqPage = !empty($faqPageName) ? $faqPageName : '#';
$this->visualizationWikis = $this->model->getVisualizationWikis($this->selectedVerticalId);
$this->indexWikis = $this->model->getIndexWikis($this->getIndexParams());
$total = empty($this->indexWikis['wam_results_total']) ? 0 : $this->indexWikis['wam_results_total'];
$itemsPerPage = $this->model->getItemsPerPage();
if ($total > $itemsPerPage) {
$paginator = Paginator::newFromArray(array_fill(0, $total, ''), $itemsPerPage);
$paginator->setActivePage($this->page - 1);
$this->paginatorBar = $paginator->getBarHTML($this->getUrlWithAllParams());
}
}
示例5: index
public function index()
{
$this->setGlobalDisplayVars();
$this->accessReview = $this->wg->User->isAllowed('wdacreview');
if (!$this->specialPage->userCanExecute($this->wg->User)) {
$this->specialPage->displayRestrictionError();
return false;
}
$this->response->addAsset('extensions/wikia/WDACReview/js/WDACReview.js');
$this->response->addAsset('extensions/wikia/WDACReview/css/WDACReview.scss');
$helper = $this->getHelper();
$this->baseUrl = $this->specialPage->getTitle()->getFullUrl();
$this->paginatorUrl = urldecode($this->specialPage->getTitle()->getFullUrl(array('page' => "%s")));
$this->toolName = $this->getToolName();
$this->submitUrl = $this->baseUrl;
if ($this->wg->request->wasPosted()) {
$data = $this->wg->request->getValues();
if (!empty($data)) {
$cities = $this->parseData($data);
if (count($cities) > 0) {
$helper->updateWDACFlags($cities);
BannerNotificationsController::addConfirmation(wfMessage('wdacreview-confirm-update')->escaped());
}
}
}
$iPage = $this->wg->request->getVal('page', 1);
$iCount = $helper->getCountWikisForReview();
$this->aCities = $helper->getCitiesForReviewList(self::WIKIS_PER_PAGE_LIMIT, $iPage - 1);
$this->paginator = '';
if (self::WIKIS_PER_PAGE_LIMIT < $iCount) {
$oPaginator = Paginator::newFromArray(array_fill(0, $iCount, ''), self::WIKIS_PER_PAGE_LIMIT);
$oPaginator->setActivePage($iPage - 1);
// And here we go! The %s will be replaced with the page number.
$this->paginator = $oPaginator->getBarHTML($this->paginatorUrl);
}
}
示例6: getTemplateForNameSpace
/**
* main function returning filled template ready to print.
* @param $itemsPerPage int number of articles per page
* @param $namespace mixed: int namespace or array of int for category query
* @return EasyTemplate object
*/
protected function getTemplateForNameSpace($namespace, $itemsPerPage = 16, $negative = false)
{
$cachedContent = $this->getFromCache();
$oTmpl = new EasyTemplate(dirname(__FILE__) . "/templates/");
if (empty($cachedContent)) {
$aTmpData = $this->fetchSectionItems($namespace, $negative);
$pages = Paginator::newFromArray($aTmpData, $itemsPerPage);
if (is_array($aTmpData) && count($aTmpData) > 0) {
$aTmpData = $pages->getPage($this->paginatorPosition, true);
$aData = $this->getArticles($aTmpData);
$oTmpl->set_vars(array('data' => $aData, 'category' => $this->categoryTitle->getText(), 'paginator' => $pages->getBarHTML($this->sUrl)));
$this->saveToCache($oTmpl->mVars);
return $oTmpl;
} else {
return null;
}
} else {
$oTmpl->set_vars($cachedContent);
return $oTmpl;
}
}
示例7: getPagination
/**
* Get pagination
* @param integer $totalVideos
* @param integer $currentPage
* @param string $selectedSort
* @return string $pagination
*/
public function getPagination($totalVideos, $currentPage, $selectedSort)
{
$pagination = '';
if ($totalVideos > self::VIDEOS_PER_PAGE) {
$pages = Paginator::newFromArray(array_fill(0, $totalVideos, ''), self::VIDEOS_PER_PAGE);
$pages->setActivePage($currentPage - 1);
$linkToSpecialPage = SpecialPage::getTitleFor("LicensedVideoSwap")->escapeLocalUrl();
$pagination = $pages->getBarHTML($linkToSpecialPage . '?currentPage=%s&sort=' . $selectedSort);
}
return $pagination;
}
示例8: renderWikiListPage
/**
* @desc Renders a table with wikis in visualization on corporate page plus pagination if needed
*
* @requestParam string $visualizationLang language code of wikis
* @requestParam integer $page page number
* @requestParam string $wikiHeadline a string filtering the list
*
* @return false if user does not have permissions
*/
public function renderWikiListPage()
{
wfProfileIn(__METHOD__);
if (!$this->checkAccess()) {
wfProfileOut(__METHOD__);
return false;
}
//todo: move to __construct() the same in index()
if (empty($this->visualizationLang)) {
$visualizationLang = $this->request->getVal('visualizationLang', $this->wg->contLang->getCode());
} else {
$visualizationLang = $this->visualizationLang;
}
$filterOptions = $this->request->getVal('filterOptions', []);
//todo: new class for options
$currentPage = $this->request->getVal('page', 1);
$options = $this->prepareFilterOptions($visualizationLang, $filterOptions, $currentPage);
$count = $this->helper->getWikisCountForStaffTool($options);
$options->limit = self::WHST_WIKIS_PER_PAGE;
$options->offset = ($currentPage - 1) * self::WHST_WIKIS_PER_PAGE;
$this->list = $this->helper->getWikisForStaffTool($options);
$this->collections = $this->getWikiaCollectionsModel()->getList($visualizationLang);
$this->verticals = $this->helper->getWikiVerticals();
if ($count > self::WHST_WIKIS_PER_PAGE) {
/** @var $paginator Paginator */
$paginator = Paginator::newFromArray(array_fill(0, $count, ''), self::WHST_WIKIS_PER_PAGE);
$paginator->setActivePage($currentPage - 1);
$url = $this->getUrlWithAllParams($visualizationLang, $filterOptions);
$this->setVal('pagination', $paginator->getBarHTML($url));
}
wfProfileOut(__METHOD__);
}
示例9:
<!-- s:<?php
echo __FILE__;
?>
-->
<?php
if ($iPageCount > 1) {
$pages = Paginator::newFromArray($iTotal, $iCount, 3, false, '', 50);
$pages->setActivePage($iPage);
echo $pages->getBarHTML('', 'BlogPaginator');
?>
<script type="text/javascript" src="<?php
echo $wgExtensionsPath;
?>
/wikia/Blogs/js/BlogsPager.js"></script>
<?php
}
?>
<!-- e:<?php
echo __FILE__;
?>
-->
示例10: getPagination
/**
* Get pagination (HTML)
* @param array $videoParams
* [ array( 'sort' => string, 'page' => int, 'category' => string, 'provider' => string ) ]
* @param int $addVideo
* @return string $pagination
*/
public function getPagination($videoParams, &$addVideo)
{
wfProfileIn(__METHOD__);
$pagination = '';
$linkToSpecialPage = SpecialPage::getTitleFor("Videos")->escapeLocalUrl();
$totalVideos = $this->getTotalVideos($videoParams);
if ($totalVideos > self::VIDEOS_PER_PAGE) {
// Paginator::newFromArray allows array and integer param
$pages = Paginator::newFromArray($totalVideos, self::VIDEOS_PER_PAGE);
$pages->setActivePage($videoParams['page'] - 1);
$queryString = '';
foreach (['sort', 'category', 'provider'] as $key) {
if (!empty($videoParams[$key])) {
$queryString .= "&{$key}=" . urlencode($videoParams[$key]);
}
}
$pagination = $pages->getBarHTML($linkToSpecialPage . '?page=%s' . $queryString);
// check if we're on the last page
if ($videoParams['page'] < $pages->getPagesCount()) {
// we're not so don't show the add video placeholder
$addVideo = 0;
}
}
wfProfileOut(__METHOD__);
return $pagination;
}
示例11: getHTML
public function getHTML()
{
global $wgCategoryExhibitionMediaSectionRows;
$cachedContent = $this->getFromCache();
if (empty($cachedContent)) {
// grabs data for videos and images
$aTmpData = $this->fetchSectionItems(array(NS_FILE));
// we wan't old videos
if (is_array($aTmpData) && count($aTmpData) > 0) {
$pages = Paginator::newFromArray($aTmpData, $wgCategoryExhibitionMediaSectionRows * 4);
$pageData = $pages->getPage($this->paginatorPosition, true);
$aData = array();
foreach ($pageData as $item) {
$itemTitle = Title::newFromID($item['page_id']);
$forceHeight = '';
$forceWidth = '';
$isVideo = WikiaFileHelper::isFileTypeVideo($itemTitle);
// item is image
$image = wfFindFile($itemTitle);
$elementClass = 'lightbox';
if (!is_object($image) || $image->height == 0 || $image->width == 0) {
$imageSrc = '';
} else {
$proportions = $image->width / $image->height;
if ($proportions < 1) {
$calculatedWidth = floor($proportions * $this->thumbWidth);
} else {
$calculatedWidth = $this->thumbMedia;
}
$forceWidth = floor($calculatedWidth);
$forceHeight = floor($calculatedWidth / $proportions);
$imageServing = new ImageServing(array($item['page_id']), $calculatedWidth, array("w" => $image->width, "h" => $image->height));
$imageSrc = wfReplaceImageServer($image->getThumbUrl($imageServing->getCut($image->width, $image->height) . "-" . $image->getName()));
if ($isVideo) {
$videoSizeClass = ThumbnailHelper::getThumbnailSize($forceWidth);
$elementClass .= ' video video-thumbnail ' . $videoSizeClass;
}
}
$linkedFiles = $this->getLinkedFiles($itemTitle);
if (!empty($linkedFiles)) {
$linkText = $linkedFiles->getText();
$linkFullUrl = $linkedFiles->getFullURL();
} else {
$linkText = '';
$linkFullUrl = '';
}
// types casting for proper caching;
$aData[] = array('id' => $item['page_id'], 'title' => $itemTitle->getText(), 'key' => $itemTitle->getDBKey(), 'img' => (string) $imageSrc, 'url' => $itemTitle->getFullURL(), 'dimensions' => array('w' => (int) $forceWidth, 'h' => (int) $forceHeight), 'class' => $elementClass, 'data-ref' => $itemTitle->getPrefixedURL(), 'targetUrl' => $linkFullUrl, 'targetText' => $linkText, 'isVideo' => $isVideo);
}
$aContent = array('data' => $aData, 'category' => $this->categoryTitle->getText(), 'paginator' => $pages->getBarHTML($this->sUrl));
$this->saveToCache($aContent);
} else {
return false;
}
} else {
$aContent = $cachedContent;
}
if (!empty($aContent) && is_array($aContent)) {
$oTmpl = new EasyTemplate(dirname(__FILE__) . "/templates/");
$oTmpl->set_vars($aContent);
$oTmpl->set_vars(array('fromAjax' => $this->isFromAjax));
if ($this->isFromAjax) {
return array('page' => $oTmpl->render($this->templateName), 'paginator' => $oTmpl->mVars['paginator']);
} else {
return $oTmpl->render($this->templateName);
}
}
}
示例12: preparePagination
/**
* Prepare pagination
*/
private function preparePagination()
{
$total = $this->model->getTotalResultsNum();
$itemsPerPage = $this->model->getLimitResultsNum();
$params['page'] = '%s';
$sorting = $this->request->getVal('sort', null);
if ($sorting) {
$params['sort'] = $sorting;
}
if ($total > $itemsPerPage) {
$paginator = Paginator::newFromArray(array_fill(0, $total, ''), $itemsPerPage);
$paginator->setActivePage($this->model->getPage());
$url = urldecode($this->getSpecialInsightsUrl($this->subpage, $params));
$this->paginatorBar = $paginator->getBarHTML($url);
}
}