Не нравятся результаты поиска? Попробуйте другой поиск!
DLE FAQ » Все вопросы » Ламерские вопросы » Как изменить количество страниц в навигации в DLE 13.3?

Как изменить количество страниц в навигации в DLE 13.3?


     22.11.2019    Все вопросы » Ламерские вопросы    1444

вопрос
В DLE навигация по умолчанию выводится так:
1 2 3 4 5 6 7 8 9 10 ... 55


Как в DLE 13.3 изменить, чтобы было так:
1 2 3 4 ... 55


Все решения на сайте для очень старых версий DLE.

Ответил: Decart


Сохраните как xml и добавьте плагин в админ.панели:

<?xml version="1.0" encoding="utf-8"?>
<dleplugin>
	<name>Количество страниц</name>
	<description>Изменение показа количества страниц в навигации</description>
	<icon>engine/skins/images/default_icon.png</icon>
	<version>1.1</version>
	<dleversion>12</dleversion>
	<versioncompare>greater</versioncompare>
	<upgradeurl></upgradeurl>
	<filedelete>0</filedelete>
	<needplugin></needplugin>
	<mnotice>0</mnotice>
	<mysqlinstall><![CDATA[]]></mysqlinstall>
	<mysqlupgrade><![CDATA[]]></mysqlupgrade>
	<mysqlenable><![CDATA[]]></mysqlenable>
	<mysqldisable><![CDATA[]]></mysqldisable>
	<mysqldelete><![CDATA[]]></mysqldelete>
	<phpinstall><![CDATA[]]></phpinstall>
	<phpupgrade><![CDATA[]]></phpupgrade>
	<phpenable><![CDATA[]]></phpenable>
	<phpdisable><![CDATA[]]></phpdisable>
	<phpdelete><![CDATA[]]></phpdelete>
	<notice><![CDATA[]]></notice>
	<file name="engine/modules/show.short.php">
		<operation action="replace">
			<searchcode><![CDATA[$max_pages = 10;]]></searchcode>
			<replacecode><![CDATA[$max_pages = 5;]]></replacecode>
			<searchcount>1</searchcount>
			<enabled>1</enabled>
		</operation>
		<operation action="replace">
			<searchcode><![CDATA[$end = 10;]]></searchcode>
			<replacecode><![CDATA[$end = 5;]]></replacecode>
			<searchcount>1</searchcount>
			<enabled>1</enabled>
		</operation>
		<operation action="replace">
			<searchcode><![CDATA[if ($cstart > 6) {]]></searchcode>
			<replacecode><![CDATA[if( $cstart > 3) {]]></replacecode>
			<searchcount>1</searchcount>
			<enabled>1</enabled>
		</operation>
		<operation action="replace">
			<searchcode><![CDATA[$start = $cstart - 4;
$end = $start + 8;]]></searchcode>
			<replacecode><![CDATA[$start = $cstart - 2;
$end = $start + 4;]]></replacecode>
			<searchcount>1</searchcount>
			<enabled>1</enabled>
		</operation>
		<operation action="replace">
			<searchcode><![CDATA[$start = $enpages_count - 9;]]></searchcode>
			<replacecode><![CDATA[$start = $enpages_count - 5;]]></replacecode>
			<searchcount>1</searchcount>
			<enabled>1</enabled>
		</operation>
	</file>
</dleplugin>

6 комментариев

ТeraМoune
Юзер

ТeraМoune - 22 ноября 2019 17:51 -

Попробуйте найти в show.short.php

if( $enpages_count <= 10 ) {
и
$end = 10;

Ну и поменять на значение нужное, очистить кэш и проверить.
Способ уникальный и должен подойти для всех версий.

nikolay.safronov
Юзер

nikolay.safronov - 22 ноября 2019 22:51 -


Криво работает. Допустим, меняем 10 на 5.

1 страница:

nikolay.safronov
Юзер

nikolay.safronov - 22 ноября 2019 22:51 -


5 страница

nikolay.safronov
Юзер

nikolay.safronov - 22 ноября 2019 22:51 -


6 страница

nikolay.safronov
Юзер

nikolay.safronov - 22 ноября 2019 22:52 -


7 страница

ТeraМoune
Юзер

ТeraМoune - 22 ноября 2019 23:13 -

Ну собственно там куча других цифр есть ) Найдите закономерность поймите что к чему. Например условие
Если страница больше 0 и больше 6 то переменная $start отнимается на 4, а $end прибавляется к текущему $start еще 8

ниже еще одно условие которое переписывает эти переменные при условии что $end больше или равно последней странице минус один. Короче где-то в этих числах правила того как и сколько ячеек будет видно и когда будет подставлены многоточие.

					if( $cstart > 0 ) {
						
						if( $cstart > 6 ) {
							
							$start = $cstart - 4;
							$end = $start + 8;
							
							if( $end >= $enpages_count-1 ) {
								$start = $enpages_count - 9;
								$end = $enpages_count - 1;
							}
						
						}
					
					}


Например строка. устанавливает многоточие если переменная $end больше или ровна последей странице минус 1 (пред-последная ячейка)

if( $end >= $enpages_count-1 ) $nav_prefix = ""; else $nav_prefix = "<span class=\"nav_ext\">{$lang['nav_trennen']}</span> ";


Пробуйте.

Чтобы комментировать - войдите или зарегистрируйтесь на сайте

Похожие вопросы

наверх