Jump to content

Вытащить пагинацию

Featured Replies

Может кто нибудь знает, где раздобыть код системной пагинации? Хочу использовать ее на отдельной странице,в блоке

image.png

Нашел что то похожее на то, но как это использовать?)

Есть где нибудь описание параметров?

<div data-role="tablePagination">
  {template="pagination" group="global" app="core" location="global" params="$table->baseUrl, $table->pages, $table->page, $table->limit, TRUE, $table->getPaginationKey()"}
</div>

 

Link to comment
https://ipbmafia.ru/topic/22779-vytashit-paginaciyu/
Share on other sites

Вставил

    $baseUrl = 'https://site.ru/list/';
    $pages = 20;
    $activePage=1; 
    $perPage=10; 
    $ajax=TRUE;
    $pageParam='st';

В логах ошибка

Error: Call to a member function setPage() on string in /var/www/dev/data/www/site.ru/system/Theme/Theme.php(860) : eval()'d code:3322
Stack trace:
#0 /var/www/dev/data/www/site.ru/system/Theme/SandboxedTemplate.php(61): IPS\Theme\class_core_global_global->pagination('https://site.r...', 20, 1, 10, true, 'st')
#1 /var/www/dev/data/www/site.ru/system/Theme/Theme.php(4465) : eval()'d code(961): IPS\Theme\_SandboxedTemplate->__call('pagination', Array)
#2 /var/www/dev/data/www/site.ru/applications/cms/sources/Blocks/Block.php(217): IPS\Theme\content_blocks_1()
#3 /var/www/dev/data/www/site.ru/applications/cms/widgets/Blocks.php(143): IPS\cms\Blocks\_Block::display(Object(IPS\cms\Blocks\Block), 'horizontal')
#4 /var/www/dev/data/www/site.ru/system/Widget/Widget.php(833): IPS\cms\widgets\_Blocks->render()
#5 /var/www/dev/data/www/site.ru/system/Widget/Widget.php(858): IPS\_Widget->_render()
#6 /var/www/dev/data/www/site.ru/system/Theme/Theme.php(860) : eval()'d code(17159): IPS\_Widget->__toString()
#7 /var/www/dev/data/www/site.ru/system/Theme/SandboxedTemplate.php(61): IPS\Theme\class_core_front_global->widgetContainer('header', 'horizontal')
#8 /var/www/dev/data/www/site.ru/system/Theme/Theme.php(860) : eval()'d code(6502): IPS\Theme\_SandboxedTemplate->__call('widgetContainer', Array)
#9 /var/www/dev/data/www/site.ru/system/Theme/SandboxedTemplate.php(61): IPS\Theme\class_core_front_global->globalTemplate('472f5b574780d17...', '\n<div id="elCms...', Array)
#10 /var/www/dev/data/www/site.ru/system/Dispatcher/Dispatcher.php(172): IPS\Theme\_SandboxedTemplate->__call('globalTemplate', Array)
#11 /var/www/dev/data/www/site.ru/system/Dispatcher/Standard.php(113): IPS\_Dispatcher->finish()
#12 /var/www/dev/data/www/site.ru/system/Dispatcher/Front.php(640): IPS\Dispatcher\_Standard->finish()
#13 /var/www/dev/data/www/site.ru/system/Dispatcher/Dispatcher.php(154): IPS\Dispatcher\_Front->finish()
#14 /var/www/dev/data/www/site.ru/index.php(13): IPS\_Dispatcher->run()
#15 {main}Error: Call to a member function setPage() on null in /var/www/dev/data/www/.ru/system/Theme/Theme.php(860) : eval()'d code:3322

 

Link to comment
https://ipbmafia.ru/topic/22779-vytashit-paginaciyu/?&do=findComment&comment=166780
Share on other sites

HooLIGUN 

2 часа назад, HooLIGUN сказал:

$baseUrl = 'https://site.ru/list/';     $pages = 20;     $activePage=1;      $perPage=10;      $ajax=TRUE;     $pageParam='st';

это вы объект заменили на константы? Такие фокусы не прокатят. 

Link to comment
https://ipbmafia.ru/topic/22779-vytashit-paginaciyu/?&do=findComment&comment=166784
Share on other sites

HooLIGUN а где собираетесь использовать пагинацию? я боюсь, что придётся писать огромный гайд для тебя, если я думаю о том, что ты собираешься сделать

Link to comment
https://ipbmafia.ru/topic/22779-vytashit-paginaciyu/?&do=findComment&comment=166786
Share on other sites

accop в блоках

У меня пагинация рабочая уже есть, но мне не нравится ее реализация. Хочу адаптировать под ips

лимиты, кол-во страниц и все остальные переменные уже есть

Link to comment
https://ipbmafia.ru/topic/22779-vytashit-paginaciyu/?&do=findComment&comment=166787
Share on other sites

HooLIGUN в каких блоках? ничего пока не понимаю 

Link to comment
https://ipbmafia.ru/topic/22779-vytashit-paginaciyu/?&do=findComment&comment=166788
Share on other sites

HooLIGUN Всё очень плохо. Через встроенную пагинацию вы это точно не сделаете - без шансов.

Либо это нормально подключать через плагин, приложение или CMS база данных (страницы > Базы данных) и там уже она будет (кроме вроде плагина, в плагинах кажется нет этих штук)

Либо использовать магию JS фреймворка ReactJS - если вам надо SPA.

Либо смериться и сделать просто дизайн как в встроенной пагинации и всё. (Можно посыпать магией JS, чтобы был AJAX)

Link to comment
https://ipbmafia.ru/topic/22779-vytashit-paginaciyu/?&do=findComment&comment=166790
Share on other sites

Или просто измеите и использовать ето код

{{$firstPage = $baseUrl->setPage( $pageParam );}}
{{if $activePage > 1 || $pages > 1}}
	{{$uniqId = mt_rand();}}
	<ul class='ipsPagination' id='elPagination_{expression="md5($baseUrl)"}_{$uniqId}' data-ipsPagination-seoPagination='{{if $firstPage->seoPagination}}true{{else}}false{{endif}}' data-pages='{$pages}' {{if $ajax and ( theme.ajax_pagination or \IPS\Request::i()->isAjax())}}data-ipsPagination {{if $pageParam != 'page'}}data-ipsPagination-pageParam='{$pageParam}'{{endif}} data-ipsPagination-pages="{$pages}" data-ipsPagination-perPage='{$perPage}'{{endif}}>
		{{if $simple}}
			{{if $activePage > 1}}
				<li class='ipsPagination_prev'><a href='{$baseUrl->setPage( $pageParam, $activePage - 1 )}' rel="prev" data-page='{expression="$activePage - 1"}' data-ipsTooltip title='{lang="prev_page"}'>{lang="prev"}</a></li>
			{{endif}}
			{{if $activePage < $pages}}
				<li class='ipsPagination_next'><a href='{$baseUrl->setPage( $pageParam, $activePage + 1 )}' rel="next" data-page='{expression="$activePage + 1"}' data-ipsTooltip title='{lang="next_page"}'>{lang="next"}</a></li>
			{{endif}}
		{{else}}
			{{if $activePage != 1}}
				<li class='ipsPagination_first'><a href='{$firstPage}' rel="first" data-page='1' data-ipsTooltip title='{lang="first_page"}'><i class='fa fa-angle-double-left'></i></a></li>
				<li class='ipsPagination_prev'><a href='{$baseUrl->setPage( $pageParam, $activePage - 1 )}' rel="prev" data-page='{expression="$activePage - 1"}' data-ipsTooltip title='{lang="prev_page"}'>{lang="prev"}</a></li>
				{{foreach range( ( ( $activePage - 5 ) > 0 ) ? ( $activePage - 5 ) : 1, $activePage - 1 ) as $idx => $i}}
					<li class='ipsPagination_page'><a href='{$baseUrl->setPage( $pageParam, $i )}' data-page='{$i}'>{$i}</a></li>
				{{endforeach}}
			{{else}}
				<li class='ipsPagination_first ipsPagination_inactive'><a href='{$firstPage}' rel="first" data-page='1' data-ipsTooltip title='{lang="first_page"}'><i class='fa fa-angle-double-left'></i></a></li>
				<li class='ipsPagination_prev ipsPagination_inactive'><a href='{$baseUrl->setPage( $pageParam, $activePage - 1 )}' rel="prev" data-page='{expression="$activePage - 1"}' data-ipsTooltip title='{lang="prev_page"}'>{lang="prev"}</a></li>
			{{endif}}
			<li class='ipsPagination_page ipsPagination_active'><a href='{$baseUrl->setPage( $pageParam, $activePage )}' data-page='{$activePage}'>{$activePage}</a></li>
			{{if $activePage != $pages}}
				{{foreach range( $activePage + 1, ( ( $activePage + 5 ) > $pages ) ? $pages : ( $activePage + 5 ) ) as $idx => $i}}
					<li class='ipsPagination_page'><a href='{$baseUrl->setPage( $pageParam, $i )}' data-page='{$i}'>{$i}</a></li>
				{{endforeach}}
				<li class='ipsPagination_next'><a href='{$baseUrl->setPage( $pageParam, $activePage + 1 )}' rel="next" data-page='{expression="$activePage + 1"}' data-ipsTooltip title='{lang="next_page"}'>{lang="next"}</a></li>
				<li class='ipsPagination_last'><a href='{$baseUrl->setPage( $pageParam, $pages )}' rel="last" data-page='{$pages}' data-ipsTooltip title='{lang="last_page"}'><i class='fa fa-angle-double-right'></i></a></li>
			{{else}}
				<li class='ipsPagination_next ipsPagination_inactive'><a href='{$baseUrl->setPage( $pageParam, ( $activePage + 1 > $pages ) ? $pages : $activePage + 1 )}' rel="next" data-page='{expression="( $activePage + 1 > $pages ) ? $pages : $activePage + 1"}' data-ipsTooltip title='{lang="next_page"}'>{lang="next"}</a></li>
				<li class='ipsPagination_last ipsPagination_inactive'><a href='{$baseUrl->setPage( $pageParam, $pages )}' rel="last" data-page='{$pages}' data-ipsTooltip title='{lang="last_page"}'><i class='fa fa-angle-double-right'></i></a></li>
			{{endif}}
			{{if $pages > 1}}
				<li class='ipsPagination_pageJump'>
					<a href='#' data-ipsMenu data-ipsMenu-closeOnClick='false' data-ipsMenu-appendTo='#elPagination_{expression="md5($baseUrl)"}_{$uniqId}' id='elPagination_{expression="md5($baseUrl)"}_{$uniqId}_jump'>{lang="pagination" sprintf="$activePage, $pages"} &nbsp;<i class='fa fa-caret-down'></i></a>
					<div class='ipsMenu ipsMenu_narrow ipsPadding ipsHide' id='elPagination_{expression="md5($baseUrl)"}_{$uniqId}_jump_menu'>
						<form accept-charset='utf-8' method='post' action='{$baseUrl->setPage( 'page', NULL )}' data-role="pageJump">
							<ul class='ipsForm ipsForm_horizontal'>
								<li class='ipsFieldRow'>
									<input type='number' min='1' max='{$pages}' placeholder='{lang="page_number"}' class='ipsField_fullWidth' name='{$pageParam}'>
								</li>
								<li class='ipsFieldRow ipsFieldRow_fullWidth'>
									<input type='submit' class='ipsButton_fullWidth ipsButton ipsButton_verySmall ipsButton_primary' value='{lang="go"}'>
								</li>
							</ul>
						</form>
					</div>
				</li>
			{{endif}}
		{{endif}}
	</ul>
{{endif}}

 

Link to comment
https://ipbmafia.ru/topic/22779-vytashit-paginaciyu/?&do=findComment&comment=166792
Share on other sites

Silence там внешний php файл подключается через include через блоки (страницы - блоки) и автор хочет использовать встроенную пагинацию для этого файла

Link to comment
https://ipbmafia.ru/topic/22779-vytashit-paginaciyu/?&do=findComment&comment=166800
Share on other sites

А это разве проблема,то что файл внешний?

Делаю это просто для удобства написания кода через нотпад

Это тоже самое,если бы я писал код напрямую в блоке

 

Link to comment
https://ipbmafia.ru/topic/22779-vytashit-paginaciyu/?&do=findComment&comment=166801
Share on other sites

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.
Note: Your post will require moderator approval before it will be visible.


Guest
Ответить в этой теме...

Последние посетители 0

  • No registered users viewing this page.