Пропустить

Arrows-Pagination v1.0.1

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

Arrows-Pagination v1.0.1

Сообщение Grohman » 20.01.2006 16:22

Это мой первый мод, который я выкладываю в инет. Пожалуйста, строго не судите.
Мод позволяет перемещаться по страницам топика по нажатию 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...

Grohman
phpBB 1.0.0
 
Сообщения: 5
Зарегистрирован: 02.11.2005 15:42
Благодарил (а): 0 раз.
Поблагодарили: 0 раз.

Сообщение Romy » 21.01.2006 0:18

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

Если он в ажуре, то спасибо (сохранил), просто щас юзать времени вообще нету. =(
Аватара пользователя
Romy
phpBB 2.0.11
 
Сообщения: 396
Зарегистрирован: 07.05.2005 22:18
Откуда: tallinn.ee
Благодарил (а): 0 раз.
Поблагодарили: 0 раз.

Сообщение Grohman » 26.01.2006 16:56

мои пользователи запротестовали, мол, перемещаться по написанному тексту в форме быстрого ответа они привыкли нажимая ctrl+стрелка. Пришлось повесить скрипт на другие кнопки. Кейкоды кнопок можно посмотреть здесь.
... В начале был UID, и UID был у root'а, и UID был root...

Grohman
phpBB 1.0.0
 
Сообщения: 5
Зарегистрирован: 02.11.2005 15:42
Благодарил (а): 0 раз.
Поблагодарили: 0 раз.

Сообщение Nemo1987 » 18.09.2006 12:10

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 раз.
grammatica falsa non vitiat chartam
Моя хата www.vowik.ru
Аватара пользователя
Nemo1987
phpBB 2.0.18
 
Сообщения: 563
Зарегистрирован: 14.02.2006 11:20
Благодарил (а): 0 раз.
Поблагодарили: 0 раз.
Предупреждения: 2

Сообщение Xpert » 21.09.2006 18:23

Grohman
Думал, что же режет глаз
 = ("viewtopic.$phpEx?" .POST_TOPIC_URL .

А где же append_sid?
Эксперт - это человек, который избегает мелких ошибок на пути к грандиозному провалу.
Любая более-менее сложная задача имеет несколько простых, изящных, лёгких для понимания неправильных решений
Аватара пользователя
Xpert
phpBB Guru
phpBB Guru
 
Сообщения: 5492
Зарегистрирован: 13.03.2004 22:27
Откуда: msk.ru
Благодарил (а): 0 раз.
Поблагодарили: 0 раз.


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

Кто сейчас на конференции

Сейчас этот форум просматривают: нет зарегистрированных пользователей и гости: 0

Бессрочный конкурс phpBB-ориентированных материалов
FastVPS — надёжный и доступный хостинг для phpBB
Место для вашей рекламы