Уважаемые пользователи!
C 7 ноября 2020 года phpBB Group прекратила выпуск обновлений и завершила дальнейшее развитие phpBB версии 3.2.
С 1 августа 2024 года phpBB Group прекращает поддержку phpBB 3.2 на официальном сайте.
Сайт официальной русской поддержки phpBB Guru продолжит поддержку phpBB 3.2 до 31 декабря 2024 года.
С учетом этого, настоятельно рекомендуется обновить конференции до версии 3.3.

Arrows-Pagination v1.0.1

Здесь авторы постили бета-версии своих модификаций для phpBB 2.0.x. Внимание! Не устанавливайте бета-версии модов на работающие форумы!
Grohman
phpBB 1.0.0
Сообщения: 5
Стаж: 18 лет 4 месяца

Arrows-Pagination v1.0.1

Сообщение Grohman »

Это мой первый мод, который я выкладываю в инет. Пожалуйста, строго не судите.
Мод позволяет перемещаться по страницам топика по нажатию Ctrl+стрелка. Может такое кто уже и писал, но я не видел. Поиск подобного на phpbbhacks.com ни к чему не привёл...

Код: Выделить всё

ОТКРЫТЬ viewtopic.php
НАЙТИ "generate_pagination("viewtopic.$phpEx?" . POST_TOPIC_URL"

ДОБАВИТЬ СО СЛЕДУЮЩЕЙ СТРОКИ:
//Arrows-Pagination MOD (c) 2006 by Daniel Podrabinek (danyagrohman@gmail.com)
if ($total_replies>$board_config['posts_per_page']) {
   $mnstart = $start-$board_config['posts_per_page'];
   $plstart = $start+$board_config['posts_per_page'];
   $prlast = $total_replies-$board_config['posts_per_page'];

   if ($start>'0') {
		$view_prev_page = ("viewtopic.$phpEx?" .POST_TOPIC_URL . "=$topic_id&postdays=$post_days&postorder=$post_order&start=$mnstart");
		$view_first_page = ("viewtopic.$phpEx?" .POST_TOPIC_URL . "=$topic_id&postdays=$post_days&postorder=$post_order&start=0");
		$prev_page_href = ("<a href=$view_prev_page>(Ctrl<big>&larr;</big>)</a>");
		$first_page_href = ("<a href=$view_first_page>Первая(Ctrl<big>&uarr;</big>)</a>");
	}

	if ($start<$total_replies-$board_config['posts_per_page']) {
		$view_next_page = ("viewtopic.$phpEx?" .POST_TOPIC_URL . "=$topic_id&postdays=$post_days&postorder=$post_order&start=$plstart");
		$view_last_page = ("viewtopic.$phpEx?" .POST_TOPIC_URL . "=$topic_id&postdays=$post_days&postorder=$post_order&start=$prlast");
		$next_page_href = ("<a href=$view_next_page>(Ctrl<big>&rarr;</big>)</a>");
		$last_page_href = ("<a href=$view_last_page>Последняя(Ctrl<big>&darr;</big>)</a>");
	}
} 

НАЙТИ:
	'FORUM_ID' => $forum_id,
	'FORUM_NAME' => $forum_name,
ПОСЛЕ ДОБАВИТЬ:
	'VIEW_PREV_PAGE' => $view_prev_page,
	'VIEW_FIRST_PAGE' => $view_first_page,
	'VIEW_NEXT_PAGE' => $view_next_page,
	'VIEW_LAST_PAGE' => $view_last_page,
	'VIEW_PREV_PAGE_HREF' => $prev_page_href,
	'VIEW_FIRST_PAGE_HREF' => $first_page_href,
	'VIEW_NEXT_PAGE_HREF' => $next_page_href,
	'VIEW_LAST_PAGE_HREF' => $last_page_href,

ОТКРЫТЬ viewtopic_body.tpl
В НАЧАЛО ДОБАВИТЬ:
<script language="JavaScript">
var left="{VIEW_PREV_PAGE}";
var up="{VIEW_FIRST_PAGE}";
var right="{VIEW_NEXT_PAGE}";
var down="{VIEW_LAST_PAGE}";
document.onkeydown=function(e){
var code;
if (!e) var e = window.event;
if (e.keyCode) code = e.keyCode;
else if (e.which) code = e.which;
if((code == 37) && (e.ctrlKey == true)) location.href = left;
if((code == 38) && (e.ctrlKey == true)) location.href = up;
if((code == 39) && (e.ctrlKey == true)) location.href = right;
if((code == 40) && (e.ctrlKey == true)) location.href = down;
}
</script>

НАЙТИ:
<b>{PAGINATION}</b>
ЗАМЕНИТЬ НА:
<!--Arrows-Pagination MOD (c) 2006 by Daniel Podrabinek (danyagrohman AT gmail DOT com)-->
<b>{PAGINATION}&nbsp;{VIEW_PREV_PAGE_HREF}&nbsp;{VIEW_NEXT_PAGE_HREF}</b>

НАЙТИ:
<a href="{U_VIEW_FORUM}" class="nav">{FORUM_NAME}</a></span></td>
ПОСЛЕ ДОБАВИТЬ:
<td align=right><span class="gensmall"><b>{VIEW_FIRST_PAGE_HREF}&nbsp;{VIEW_LAST_PAGE_HREF}</b></span></td>

НАЙТИ:
<span class="nav">{PAGINATION}</span>
ЗАМЕНИТЬ НА:
<span class="nav">{VIEW_FIRST_PAGE_HREF}&nbsp;{VIEW_LAST_PAGE_HREF}&nbsp;{PAGINATION}&nbsp;{VIEW_PREV_PAGE_HREF}&nbsp;{VIEW_NEXT_PAGE_HREF}</span>
Немного кривовато открытие последней страницы. Тоесть, вместо последней может открываться и предпоследняя страница, хотя посты будут отображаться все, вплоть до последнего.

Добавлено спустя 4 часа 48 минут 54 секунды:

Для подобной работы на страницах форума нужно проделать всё тоже самое с файлами viewforum.php и viewforum_body.tpl. Разница только в том что вместо переменной $total_replies нужно использовать переменную $topics_count, а вместо $board_config['posts_per_page'] - $board_config['topics_per_page']. Ну и, конечно, вместо $topic_id&postdays=$post_days&postorder=$post_order&start= использовать строку для viewforum.php.
(В viewforum.php переменные надо объявлять перед $template->assign_vars(array(
'PAGINATION' =>)
... В начале был UID, и UID был у root'а, и UID был root...
Аватара пользователя
Romy
phpBB 2.0.3
Сообщения: 396
Стаж: 18 лет 10 месяцев
Откуда: tallinn.ee
Контактная информация:

Сообщение Romy »

Grohman писал(а):позволяет перемещаться по страницам топика по нажатию Ctrl+стрелка
c недели полторы назад, когда на Яндексе увидел такую фичу, задуался над сим модом...

Если он в ажуре, то спасибо (сохранил), просто щас юзать времени вообще нету. =(
Grohman
phpBB 1.0.0
Сообщения: 5
Стаж: 18 лет 4 месяца

Сообщение Grohman »

мои пользователи запротестовали, мол, перемещаться по написанному тексту в форме быстрого ответа они привыкли нажимая ctrl+стрелка. Пришлось повесить скрипт на другие кнопки. Кейкоды кнопок можно посмотреть здесь.
... В начале был UID, и UID был у root'а, и UID был root...
Аватара пользователя
Nemo1987
phpBB 2.0.7
Сообщения: 560
Стаж: 18 лет 1 месяц

Сообщение Nemo1987 »

Grohman, скрипт нормаьно работает??? ЧТо бы не глючило :)))

Добавлено спустя 10 минут 7 секунд:

Код: Выделить всё

##############################################################
## MOD Title: 
## MOD Author: Grohman <  > () 
## MOD Description: 
## MOD Version: 1.0.0
##
## Installation Level: (Easy)
## Installation Time: 5 Minutes
## Files To Edit: 2
## Included Files: N/A
## License: http://opensource.org/licenses/gpl-license.php GNU General Public License v2
##############################################################
## For security purposes, please check: http://www.phpbb.com/mods/
## for the latest version of this MOD. Although MODs are checked
## before being allowed in the MODs Database there is no guarantee
## that there are no security problems within the MOD. No support
## will be given for MODs not found within the MODs Database which
## can be found at http://www.phpbb.com/mods/
##############################################################
## Author Notes:
## none
##############################################################
## MOD History:
## 
##   2006-09-18 - Version 1.0.0
##      - (no version notes)
##############################################################
## Before Adding This MOD To Your Forum, You Should Back Up All Files Related To This MOD
##############################################################
# 
#-----[ OPEN ]------------------------------------------
# 
viewtopic.php
# 
#-----[ FIND ]------------------------------------------
# 
"generate_pagination("viewtopic.$phpEx?" . POST_TOPIC_URL"
# 
#-----[ AFTER ADD ]------------------------------------------
# 
//Arrows-Pagination MOD (c) 2006 by Daniel Podrabinek (danyagrohman@gmail.com) 
if ($total_replies>$board_config['posts_per_page']) { 
   $mnstart = $start-$board_config['posts_per_page']; 
   $plstart = $start+$board_config['posts_per_page']; 
   $prlast = $total_replies-$board_config['posts_per_page']; 

   if ($start>'0') { 
      $view_prev_page = ("viewtopic.$phpEx?" .POST_TOPIC_URL . 

"=$topic_id&postdays=$post_days&postorder=$post_order&start=$mnstart"); 
      $view_first_page = ("viewtopic.$phpEx?" .POST_TOPIC_URL . 

"=$topic_id&postdays=$post_days&postorder=$post_order&start=0"); 
      $prev_page_href = ("<a href=$view_prev_page>(Ctrl<big>&larr;</big>)</a>"); 
      $first_page_href = ("<a href=$view_first_page>Первая(Ctrl<big>&uarr;</big>)</a>"); 
   } 

   if ($start<$total_replies-$board_config['posts_per_page']) { 
      $view_next_page = ("viewtopic.$phpEx?" .POST_TOPIC_URL . 

"=$topic_id&postdays=$post_days&postorder=$post_order&start=$plstart"); 
      $view_last_page = ("viewtopic.$phpEx?" .POST_TOPIC_URL . 

"=$topic_id&postdays=$post_days&postorder=$post_order&start=$prlast"); 
      $next_page_href = ("<a href=$view_next_page>(Ctrl<big>&rarr;</big>)</a>"); 
      $last_page_href = ("<a href=$view_last_page>Последняя(Ctrl<big>&darr;</big>)</a>"); 
   } 
} 
# 
#-----[ FIND ]------------------------------------------
# 
'FORUM_ID' => $forum_id, 
'FORUM_NAME' => $forum_name, 
# 
#-----[ AFTER ADD ]------------------------------------------
# 
'VIEW_PREV_PAGE' => $view_prev_page, 
'VIEW_FIRST_PAGE' => $view_first_page, 
'VIEW_NEXT_PAGE' => $view_next_page, 
'VIEW_LAST_PAGE' => $view_last_page, 
'VIEW_PREV_PAGE_HREF' => $prev_page_href, 
'VIEW_FIRST_PAGE_HREF' => $first_page_href, 
'VIEW_NEXT_PAGE_HREF' => $next_page_href, 
'VIEW_LAST_PAGE_HREF' => $last_page_href, 
# 
#-----[ OPEN ]------------------------------------------
# 
viewtopic_body.tpl
# 
#-----[ FIND ]------------------------------------------
# 
<table width="100%" cellspacing="2" cellpadding="2" border="0">
# 
#-----[ BEFORE ADD ]------------------------------------------
# 
<script language="JavaScript"> 
var left="{VIEW_PREV_PAGE}"; 
var up="{VIEW_FIRST_PAGE}"; 
var right="{VIEW_NEXT_PAGE}"; 
var down="{VIEW_LAST_PAGE}"; 
document.onkeydown=function(e){ 
var code; 
if (!e) var e = window.event; 
if (e.keyCode) code = e.keyCode; 
else if (e.which) code = e.which; 
if((code == 37) && (e.ctrlKey == true)) location.href = left; 
if((code == 38) && (e.ctrlKey == true)) location.href = up; 
if((code == 39) && (e.ctrlKey == true)) location.href = right; 
if((code == 40) && (e.ctrlKey == true)) location.href = down; 
} 
</script> 
# 
#-----[ FIND ]------------------------------------------
#
<b>{PAGINATION}</b>
# 
#-----[ REPLACE WITH ]------------------------------------------
# 
<!--Arrows-Pagination MOD (c) 2006 by Daniel Podrabinek (danyagrohman AT gmail DOT com)--> 
<b>{PAGINATION}&nbsp;{VIEW_PREV_PAGE_HREF}&nbsp;{VIEW_NEXT_PAGE_HREF}</b> 
# 
#-----[ FIND ]------------------------------------------
#
<a href="{U_VIEW_FORUM}" class="nav">{FORUM_NAME}</a></span></td> 
# 
#-----[ AFTER ADD ]------------------------------------------
#
<td align=right><span class="gensmall"><b>{VIEW_FIRST_PAGE_HREF}&nbsp;{VIEW_LAST_PAGE_HREF}</b></span></td> 
# 
#-----[ FIND ]------------------------------------------
#
<span class="nav">{PAGINATION}</span>
# 
#-----[ AFTER ADD ]------------------------------------------
#
<span 

class="nav">{VIEW_FIRST_PAGE_HREF}&nbsp;{VIEW_LAST_PAGE_HREF}&nbsp;{PAGINATION}&nbsp;{VIEW_PREV_PAGE_HREF}&nbsp;{VIEW_NEXT_PA

GE_HREF}</span>
#
#-----[ SAVE/CLOSE ALL FILES ]------------------------------------------
#
# EoM
Вот, привел в нормальный вид :)
Последний раз редактировалось Nemo1987 22.09.2006 8:47, всего редактировалось 1 раз.
Xpert
phpBB Guru
phpBB Guru
Сообщения: 5484
Стаж: 20 лет
Поблагодарили: 2 раза
Контактная информация:

Сообщение Xpert »

Grohman
Думал, что же режет глаз

Код: Выделить всё

 = ("viewtopic.$phpEx?" .POST_TOPIC_URL .
А где же append_sid?
Эксперт - это человек, который избегает мелких ошибок на пути к грандиозному провалу.
Любая более-менее сложная задача имеет несколько простых, изящных, лёгких для понимания неправильных решений
Закрыто

Вернуться в «Бета-версии модов для phpBB 2.0.x»