Как сделать ссылку «Все сообщения»?

Проблемы с установкой или работой phpBB 2.0.x? Ищите ответы здесь!
Kastaneda
Former team member
Сообщения: 702
Стаж: 20 лет 7 месяцев

Как сделать ссылку «Все сообщения»?

Сообщение Kastaneda »

phpBB 2.0.10. Когда количество сообщений превышает заданный в настройках лимит сообщений на страницу, то автоматически появляется строка «На страницу 1, 2, 3... След».

Как вместо ссылки «След.» сделать ссылку «Все сообщения», чтобы при нажатии на эту ссылку отображались все сообщения выбранной темы на одной странице? И заодно, как убрать ссылку «Пред.»?

И ещё: внизу постингов есть строка «Показать сообщения». Так вот, при выборе параметра «Все сообщения» и нажатии кнопки «Перейти» все сообщения (если их больше, чем одна страница) не отображаются. Отображаются только сообщения определённой страницы. Почему так?
Xpert
phpBB Guru
phpBB Guru
Сообщения: 5484
Стаж: 21 год 1 месяц
Поблагодарили: 2 раза

Сообщение Xpert »

"Все сообщения" сделать нельзя. Отсутствие такой опции - своеобразная предосторожность против перегрузки сервера. Тоже касается и "Показать сообщения".

Убрать ссылки "Предыдущая тема :: Следующая тема" можно, удалив из файла шаблона viewtopic_body.tpl следующую строку:

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

<span class="nav"><a href="{U_VIEW_OLDER_TOPIC}" class="nav">{L_VIEW_PREVIOUS_TOPIC}</a> :: <a href="{U_VIEW_NEWER_TOPIC}" class="nav">{L_VIEW_NEXT_TOPIC}</a> &nbsp;</span>
Эксперт - это человек, который избегает мелких ошибок на пути к грандиозному провалу.
Любая более-менее сложная задача имеет несколько простых, изящных, лёгких для понимания неправильных решений
Meithar
phpBB 1.4.3
Сообщения: 85
Стаж: 20 лет 9 месяцев

Сообщение Meithar »

Как вместо ссылки «След.» сделать ссылку «Все сообщения», чтобы при нажатии на эту ссылку отображались все сообщения выбранной темы на одной странице?
Можно, взять за основу Printer-friendly topic mod:
http://www.phpbb.com/phpBB/viewtopic.php?t=141443
http://wiking.sourceforge.net/phpBB2/index.php
и заточить его под сабж.
Kastaneda
Former team member
Сообщения: 702
Стаж: 20 лет 7 месяцев

Сообщение Kastaneda »

Xpert
"Все сообщения" сделать нельзя. Отсутствие такой опции - своеобразная предосторожность против перегрузки сервера.
А можно пояснить этот момент? Ведь на многих форумах есть эта возможность, и никаких перегрузок не наблюдается (вроде бы).
Тоже касается и "Показать сообщения".
Тогда для чего существует этот параметр? Надо полагать, что не для красоты?
Meithar
phpBB 1.4.3
Сообщения: 85
Стаж: 20 лет 9 месяцев

Сообщение Meithar »

Тогда для чего существует этот параметр? Надо полагать, что не для красоты?
Нет, не для красоты. Но это просто фильтр, не влияющий на постраничную разбивку топика, которую ты задаешь в админке.

Если ты откроешь этот чекбокс (Показать сообщения: ...), какие опции ты там увидишь?
Kastaneda
Former team member
Сообщения: 702
Стаж: 20 лет 7 месяцев

Сообщение Kastaneda »

Если ты откроешь этот чекбокс (Показать сообщения: ...), какие опции ты там увидишь?
Самая первая - «Все сообщения». Только уже совсем не понятно, что делает эта опция?
Аватара пользователя
crash
Former team member
Сообщения: 6517
Стаж: 20 лет 10 месяцев
Откуда: Бердск

Сообщение crash »

Kastaneda
показывает сообщения за все время чуществования форума
Как правильно задавать вопросы
Для особо одаренных: поиск - это есть круто.
FAQ v.2 | FAQ v.3 | Шаблон запроса
Kastaneda
Former team member
Сообщения: 702
Стаж: 20 лет 7 месяцев

Сообщение Kastaneda »

показывает сообщения за все время чуществования форума
Может быть я что-то не понимаю, но именно «все сообщения» не показываются.
Аватара пользователя
crash
Former team member
Сообщения: 6517
Стаж: 20 лет 10 месяцев
Откуда: Бердск

Сообщение crash »

Kastaneda
да что вы говорите.. а вы выберите за последний день и сравните.
почуствуйте разницу
Как правильно задавать вопросы
Для особо одаренных: поиск - это есть круто.
FAQ v.2 | FAQ v.3 | Шаблон запроса
Kastaneda
Former team member
Сообщения: 702
Стаж: 20 лет 7 месяцев

Сообщение Kastaneda »

Ну это понятно, что при выборе опций «за последний день», «за последний год» и т.д. всё работет, как и положено. Но я хочу, чтобы работала опция «все сообщения». Для чего она нужна, если она не работает? А может, быть она только у меня не работает?

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

crash
показывает сообщения за все время чуществования форума
То есть, если теме больше года, то в список «Показать сообщения» автоматически добавиться опция «за последние два года»?
Meithar
phpBB 1.4.3
Сообщения: 85
Стаж: 20 лет 9 месяцев

Сообщение Meithar »

То есть, если теме больше года, то в список «Показать сообщения» автоматически добавиться опция «за последние два года»?
Конечно, а если больше века, то "за послений век" :)

Kastaneda, перечитай пожалуйста внимательно этот топик с самого начала, на все твои вопросы уже ответили.
Konkere

Сообщение Konkere »

Как вместо ссылки «След.» сделать ссылку «Все сообщения», чтобы при нажатии на эту ссылку отображались все сообщения выбранной темы на одной странице? И заодно, как убрать ссылку «Пред.»?

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

######################################################## 
## MOD Title:		Big threads in one page
## MOD Author:		Sergeant < sergeant@pochta.ws > http://www.vladivostok.ru/forum4
##
## MOD Description:	This hack allows users to read multi-page topics without switching between pages.
##
## Installation Level:	Easy 
## Installation Time:	3 Minutes 
##
## Files To Edit:	3
##	viewtopic.php
##	viewforum.php
##	language/lang_english/lang_main.php
##
## Included Files: 	n/a
##
################################################################# 
## Before Adding This MOD To Your Forum, You Should Back Up All Files Related To This MOD 
##############################################################
#-----[ OPEN ]------------------------------------------ 
# 
viewtopic.php

# 
#-----[ FIND ]------------------------------------------ 
#
$start = ( isset($HTTP_GET_VARS['start']) ) ? intval($HTTP_GET_VARS['start']) : 0;

# 
#-----[ REPLACE WITH ]------------------------------------------ 
#
if(!$HTTP_GET_VARS['start']) {
    $start='0';
} else{
    $start=(intval($HTTP_GET_VARS['start']) == $HTTP_GET_VARS['start']) ? (intval($HTTP_GET_VARS['start'])) : ('all');
};

# 
#-----[ FIND ]------------------------------------------ 
#
// Go ahead and pull all data for this topic

# 
#-----[ FIND HERE ]------------------------------------- 
#
$sql = "SELECT 

# 
#-----[ BEFORE, ADD ]------------------------------------- 
#
$_limit=($start=='all')?(''):("LIMIT ".$start.", ".$board_config['posts_per_page']);

# 
#-----[ FIND THE SAME STRING ]------------------------------------- 
#
$sql = "SELECT 

# 
#-----[ INLINE FIND ]------------------------------------- 
#
ORDER BY p.post_time $post_time_order LIMIT $start, ".$board_config['posts_per_page'];

# 
#-----[ REPLACE WITH ]------------------------------------------ 
#
ORDER BY p.post_time $post_time_order ".$_limit;

# 
#-----[ FIND ]------------------------------------------ 
#
$pagination = ( $highlight != '' ) ? generate_pagination("viewtopic.$phpEx?" . POST_TOPIC_URL .

# 
#-----[ BEFORE, ADD ]------------------------------------- 
#
if($start=='all') {
    $pagination='&nbsp;';
} else{

# 
#-----[ FIND THE SAME STRING ]------------------------------------- 
#
$pagination = ( $highlight != '' ) ? generate_pagination("viewtopic.$phpEx?" . POST_TOPIC_URL .

# 
#-----[ AFTER THAT STRING, ADD ]------------------------------------- 
#
    if(!empty($pagination)) {
    $pagination.="&nbsp;<a href='".append_sid("viewtopic.$phpEx?" . POST_TOPIC_URL . "=$topic_id&start=all&postdays=$post_days&postorder=$post_order")."' style='text-decoration:none;'>".$lang['View_all_pages']."</a>";
    } else{$pagination="&nbsp;";}
};

# 
#-----[ OPEN ]------------------------------------------ 
#  
viewforum.php

# 
#-----[ FIND ]------------------------------------------ 
#
$goto_page .= ' ] ';

# 
#-----[ REPLACE WITH ]------------------------------------------ 
#
$goto_page .= '&nbsp;<a href="' . append_sid("viewtopic.$phpEx?" . POST_TOPIC_URL . "=" . $topic_id . "&start=all") . '" style="text-decoration:none;">#</a>&nbsp;]';

#
# Remember to do this for each installed language pack!
#
#-----[ OPEN ]------------------------------------------ 
# 
language/lang_english/lang_main.php

# 
#-----[ FIND ]------------------------------------------ 
#
//
// That's all, Folks!
// -------------------------------------------------

# 
#-----[ BEFORE, ADD ]------------------------------------------ 
#
$lang['View_all_pages']='[all]';

# 
#-----[ SAVE/CLOSE ALL FILES ]------------------------------------------ 
# 

# EoM
Kastaneda
Former team member
Сообщения: 702
Стаж: 20 лет 7 месяцев

Сообщение Kastaneda »

Konkere
Спасибо за код. Это почти то, что нужно. Но, к сожалению, при нажатии ссылки отображения всех страниц пропадают цифры разбиения на страницы. И, к тому же, внизу страницы остаётся строка типа «Страница 1 из 5». Хотя было бы логичнее или не оставлять этой надписи, или чтобы была надпись «Все страницы».
Kastaneda
Former team member
Сообщения: 702
Стаж: 20 лет 7 месяцев

Сообщение Kastaneda »

Konkere, извини за назойливость, но после замены следующего кода появились проблемы.

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

 #-----[ FIND ]------------------------------------------ 
 # 
 $pagination = ( $highlight != '' ) ? generate_pagination("viewtopic.$phpEx?" . POST_TOPIC_URL . 
 
 # 
 #-----[ BEFORE, ADD ]------------------------------------- 
 # 
 if($start=='all') { 
     $pagination='&nbsp;'; 
 } else{ 
 
 # 
 #-----[ FIND THE SAME STRING ]------------------------------------- 
 # 
 $pagination = ( $highlight != '' ) ? generate_pagination("viewtopic.$phpEx?" . POST_TOPIC_URL . 
 
 # 
 #-----[ AFTER THAT STRING, ADD ]------------------------------------- 
 # 
     if(!empty($pagination)) { 
     $pagination.="&nbsp;<a href='".append_sid("viewtopic.$phpEx?" . POST_TOPIC_URL . "=$topic_id&start=all&postdays=$post_days&postorder=$post_order")."' style='text-decoration:none;'>".$lang['View_all_pages']."</a>"; 
     } else{$pagination="&nbsp;";} 
 }; 

Может быть я команды не так вставляю. У меня получилось вот такое безобразие:

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

if($start=='all') { 
     $pagination='&nbsp;'; 
 } else{ $pagination = ( $highlight != '' ) ? generate_pagination("viewtopic.$phpEx?" . POST_TOPIC_URL .     if(!empty($pagination)) { 
     $pagination.="&nbsp;<a href='".append_sid("viewtopic.$phpEx?" . POST_TOPIC_URL . "=$topic_id&start=all&postdays=$post_days&postorder=$post_order")."' style='text-decoration:none;'>".$lang['View_all_pages']."</a>"; 
     } else{$pagination="&nbsp;";} 
 }; "=$topic_id&postdays=$post_days&postorder=$post_order&highlight=$highlight", $total_replies, $board_config['posts_per_page'], $start) : generate_pagination("viewtopic.$phpEx?" . POST_TOPIC_URL . "=$topic_id&postdays=$post_days&postorder=$post_order", $total_replies, $board_config['posts_per_page'], $start);
 
newest

Сообщение newest »

хм... :? может стоило просто через админ-панель увеличить количество показываемых постов в теме... скажем до 100 ... если это возможно... Изображение

Вернуться в «Поддержка phpBB 2.0.x»