Last post topic on index for phpBB3

Здесь авторы могут постить бета-версии своих модификаций для phpBB 3.0.x. Внимание! Не устанавливайте бета-версии модов на работающие форумы!
Правила форума
Местная Конституция | Шаблон запроса | Документация (phpBB3) | Переход на 3.0.6 и выше | FAQ-3 (phpbb3) | Как задавать вопросы | Как устанавливать моды

Ваш вопрос может быть удален без объяснения причин, если на него есть ответы по приведённым ссылкам (а вы рискуете получить предупреждение ;) ).
Аватара пользователя
rxu
phpBB Guru
phpBB Guru
Сообщения: 17272
Стаж: 20 лет 4 месяца
Откуда: Красноярск
Благодарил (а): 632 раза
Поблагодарили: 2412 раз

Last post topic on index for phpBB3

Сообщение rxu »

Раз уж сделал (по разным причинам), то решил выложить.
Описание мода: Добавляет в список форумов на главной странице название последней затронутой темы каждого форума.

Внимание: более эффективным является мод last post topic title от nickvergessen, в связи с чем последний рекомендуется к применению вместо данного мода.
У вас нет необходимых прав для просмотра вложений в этом сообщении.
Последний раз редактировалось rxu 03.01.2010 4:45, всего редактировалось 6 раз.
Причина: Добавление комментария в отношении мода-аналога.
Изображение
Аватара пользователя
Палыч
Former team member
Сообщения: 9683
Стаж: 20 лет 4 месяца
Откуда: Питер
Благодарил (а): 3 раза
Поблагодарили: 454 раза

Re: Last post topic on index for phpBB3

Сообщение Палыч »

content.css

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

dd.lastpost {
	width: 25%;
	font-size: 1.1em;
}
Не все то WINDOWS, что висит... phpBB только учусь.
ICQ, email, ЛС - только для личных сообщений. Вопросы по phpbb только на форумах. По найму не работаю.
Pan
phpBB 1.4.2
Сообщения: 57
Стаж: 18 лет 8 месяцев

Re: Last post topic on index for phpBB3

Сообщение Pan »

Отличный мод, спасибо автору.
Хочется доработать его "под себя". Подскажите, каким образом сделать так, дабы на последний пост в теме кроме значка вела дата/время последнего поста? Т.е. сделать дату/время последнего поста ссылкой?
И ещё вопрос (как вариант). Возможно ли в принципе сделать так, чтобы дата/время стали ссылкой не на последний пост, а на все посты, не прочитанные пользователем (т.е. ссылка вела на первый не прочитанный пост)?
И чисто визуальный момент. Сейчас вся информация в правой колонке сдвинута влево, выглядит не очень привлекательно. Возможно ли её отцентровать?
Pan
phpBB 1.4.2
Сообщения: 57
Стаж: 18 лет 8 месяцев

Re: Last post topic on index for phpBB3

Сообщение Pan »

Насколько я понимаю, изменения нужно делать где-то в этом куске кода (forumlist_body.html):

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

<!-- IF forumrow.LAST_POST_TIME --><dfn>{L_LAST_POST}</dfn> <a href="{forumrow.U_LAST_TOPIC_URL}" title="{forumrow.LAST_TOPIC_TITLE_FULL}">{forumrow.LAST_TOPIC_TITLE}</a>
						<a href="{forumrow.U_LAST_POST}">{LAST_POST_IMG}</a> <br />{L_POSTED_ON_DATE} {forumrow.LAST_POST_TIME} {L_POST_BY_AUTHOR} {forumrow.LAST_POSTER_FULL}<!-- ELSE -->{L_NO_POSTS}<!-- ENDIF --></span>
Или нужно вносить изменения где-то в пхп-файлы, а не в шаблон?
Аватара пользователя
rxu
phpBB Guru
phpBB Guru
Сообщения: 17272
Стаж: 20 лет 4 месяца
Откуда: Красноярск
Благодарил (а): 632 раза
Поблагодарили: 2412 раз

Re: Last post topic on index for phpBB3

Сообщение rxu »

Если нужно первое, то в третьей строке перенесите закрывающий тег </a> в место после {forumrow.LAST_POST_TIME}. Если второе, то нужно создавать ещё переменную в скрипте и передавать её в шаблон, где и прописывать дополнительную ссылку.
По третьему вопросу - к моду отношения не имеет, вопрос по стилям.
Изображение
Pan
phpBB 1.4.2
Сообщения: 57
Стаж: 18 лет 8 месяцев

Re: Last post topic on index for phpBB3

Сообщение Pan »

Благодарю за подсказку. С первым вопросом сделал по Вашему совету, то, что нужно. Со вторым - бог с ним, раз это слишком сложно. С третьим тоже разобрался, нашёл в стилях.
Ещё раз спасибо :)
PH@NT0M
phpBB 1.2.0
Сообщения: 18
Стаж: 18 лет 5 месяцев

Re: Last post topic on index for phpBB3

Сообщение PH@NT0M »

Теперь вместо:

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

Find
						<!-- IF forumrow.LAST_POST_TIME --><dfn>{L_LAST_POST}</dfn> {L_POST_BY_AUTHOR} {forumrow.LAST_POSTER_FULL}
						<a href="{forumrow.U_LAST_POST}">{LAST_POST_IMG}</a> <br />{L_POSTED_ON_DATE} {forumrow.LAST_POST_TIME}<!-- ELSE -->{L_NO_POSTS}<!-- ENDIF --></span>
Должно быть:

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

Find
						<!-- IF forumrow.LAST_POST_TIME --><dfn>{L_LAST_POST}</dfn> {L_POST_BY_AUTHOR} {forumrow.LAST_POSTER_FULL}
						<!-- IF not S_IS_BOT --><a href="{forumrow.U_LAST_POST}">{LAST_POST_IMG}</a> <!-- ENDIF --><br />{L_POSTED_ON_DATE} {forumrow.LAST_POST_TIME}<!-- ELSE -->{L_NO_POSTS}<!-- ENDIF --></span>
И я так думаю вместо:

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

Replace With
						<!-- IF forumrow.LAST_POST_TIME --><dfn>{L_LAST_POST}</dfn> <a href="{forumrow.U_LAST_TOPIC_URL}" title="{forumrow.LAST_TOPIC_TITLE_FULL}">{forumrow.LAST_TOPIC_TITLE}</a>
						<a href="{forumrow.U_LAST_POST}">{LAST_POST_IMG}</a> <br />{L_POSTED_ON_DATE} {forumrow.LAST_POST_TIME} {L_POST_BY_AUTHOR} {forumrow.LAST_POSTER_FULL}<!-- ELSE -->{L_NO_POSTS}<!-- ENDIF --></span>
Должно быть:

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

Replace With
						<!-- IF forumrow.LAST_POST_TIME --><dfn>{L_LAST_POST}</dfn><!-- IF not S_IS_BOT --> <a href="{forumrow.U_LAST_TOPIC_URL}" title="{forumrow.LAST_TOPIC_TITLE_FULL}">{forumrow.LAST_TOPIC_TITLE}</a><!-- ENDIF -->
						<!-- IF not S_IS_BOT --><a href="{forumrow.U_LAST_POST}">{LAST_POST_IMG}</a> <!-- ENDIF --><br />{L_POSTED_ON_DATE} {forumrow.LAST_POST_TIME} {L_POST_BY_AUTHOR} {forumrow.LAST_POSTER_FULL}<!-- ELSE -->{L_NO_POSTS}<!-- ENDIF --></span>
И аналогично для второго стиля я так думаю вместо:

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

Replace With
					<p class="topicdetails">{forumrow.LAST_POST_TIME} {forumrow.LAST_POSTER_FULL}</p>
					<p class="topicdetails"><a href="{forumrow.U_LAST_TOPIC_URL}" title="{forumrow.LAST_TOPIC_TITLE_FULL}">{forumrow.LAST_TOPIC_TITLE}</a>
Должно быть:

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

Replace With
					<p class="topicdetails">{forumrow.LAST_POST_TIME} {forumrow.LAST_POSTER_FULL}</p>
					<p class="topicdetails"><!-- IF not S_IS_BOT --><a href="{forumrow.U_LAST_TOPIC_URL}" title="{forumrow.LAST_TOPIC_TITLE_FULL}">{forumrow.LAST_TOPIC_TITLE}</a><!-- ENDIF -->
Аватара пользователя
DAV
phpBB 1.0.0
Сообщения: 1
Стаж: 17 лет 9 месяцев

Re: Last post topic on index for phpBB3

Сообщение DAV »

Здравствуйте, вопрос такой:
Установил мод, но все отображается только на главной странице, если же зайти в форум с подфорумами, то там мод уже не присутствует.
Самому найти решения не получилось, подскажите пожалуйста.
Аватара пользователя
FladeX
Former team member
Сообщения: 1935
Стаж: 19 лет 3 месяца
Откуда: Саранск
Благодарил (а): 7 раз
Поблагодарили: 59 раз

Re: Last post topic on index for phpBB3

Сообщение FladeX »

styles/prosilver/template/forumlist_body.html

В инструкции ищется такой код:

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

						<!-- IF forumrow.LAST_POST_TIME --><dfn>{L_LAST_POST}</dfn> {L_POST_BY_AUTHOR} {forumrow.LAST_POSTER_FULL}
						<a href="{forumrow.U_LAST_POST}">{LAST_POST_IMG}</a> <br />{L_POSTED_ON_DATE} {forumrow.LAST_POST_TIME}<!-- ELSE -->{L_NO_POSTS}<!-- ENDIF --></span>
и заменяется на такой:

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

						<!-- IF forumrow.LAST_POST_TIME --><dfn>{L_LAST_POST}</dfn> <a href="{forumrow.U_LAST_TOPIC_URL}" title="{forumrow.LAST_TOPIC_TITLE_FULL}">{forumrow.LAST_TOPIC_TITLE}</a>
						<a href="{forumrow.U_LAST_POST}">{LAST_POST_IMG}</a> <br />{L_POSTED_ON_DATE} {forumrow.LAST_POST_TIME} {L_POST_BY_AUTHOR} {forumrow.LAST_POSTER_FULL}<!-- ELSE -->{L_NO_POSTS}<!-- ENDIF --></span>
А в phpBB 3.0.4 исходный код немного другой:

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

						<!-- IF forumrow.LAST_POST_TIME --><dfn>{L_LAST_POST}</dfn> {L_POST_BY_AUTHOR} {forumrow.LAST_POSTER_FULL}
						<!-- IF not S_IS_BOT --><a href="{forumrow.U_LAST_POST}">{LAST_POST_IMG}</a> <!-- ENDIF --><br />{forumrow.LAST_POST_TIME}<!-- ELSE -->{L_NO_POSTS}<br />&nbsp;<!-- ENDIF --></span>
Может и код-замену сделать так:

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

						<!-- IF forumrow.LAST_POST_TIME --><dfn>{L_LAST_POST}</dfn> <a href="{forumrow.U_LAST_TOPIC_URL}" title="{forumrow.LAST_TOPIC_TITLE_FULL}">{forumrow.LAST_TOPIC_TITLE}</a>
						<!-- IF not S_IS_BOT --><a href="{forumrow.U_LAST_POST}">{LAST_POST_IMG}</a> <!-- ENDIF --><br />{L_POSTED_ON_DATE} {forumrow.LAST_POST_TIME} {L_POST_BY_AUTHOR} {forumrow.LAST_POSTER_FULL}<!-- ELSE -->{L_NO_POSTS}<!-- ENDIF --></span>
Добавлено спустя 1 минуту 22 секунды:
Условие не_бот добавляется, если вкратце :)
//
// Okay, let's do the loop, yeah come on baby let's do the loop
// and it goes like this ...
| phpBB Adept ] | Каталог форумов | генератор sitemap для форумов | форум про форумы
trooper
phpBB 1.2.1
Сообщения: 28
Стаж: 18 лет 5 месяцев
Благодарил (а): 10 раз
Поблагодарили: 1 раз

Re: Last post topic on index for phpBB3

Сообщение trooper »

дело в том, что ссылка "Название темы" имеет вид "viewtopic.php?f=1&t=1" вместо "topic1.html"
как можно исправить?
deseven
phpBB 1.0.0
Сообщения: 9
Стаж: 17 лет 7 месяцев

Re: Last post topic on index for phpBB3

Сообщение deseven »

можно как-нибудь сделать чтобы ссылка вела не на сам топик, а на последнее непрочитанное сообщение в этом топике?
Аватара пользователя
rxu
phpBB Guru
phpBB Guru
Сообщения: 17272
Стаж: 20 лет 4 месяца
Откуда: Красноярск
Благодарил (а): 632 раза
Поблагодарили: 2412 раз

Re: Last post topic on index for phpBB3

Сообщение rxu »

trooper писал(а):как можно исправить?
Правильно прописать правило для mod_rewrite, но к данному моду это не имеет отношения, скорее к документации по мод_реврайту.
deseven писал(а):можно как-нибудь сделать чтобы ссылка вела не на сам топик, а на последнее непрочитанное сообщение в этом топике?
Нужно читать тему с начала. На второй странице имеется ответ http://www.phpbbguru.net/community/topi ... ml#p182271
Изображение
mith
phpBB 1.4.1
Сообщения: 41
Стаж: 18 лет 11 месяцев
Откуда: Москва

Re: Last post topic on index for phpBB3

Сообщение mith »

deseven
Я использовал для этого мода исправление с третьей страницы(исправленная бага с кавычками + ссылка, ведущая к первому непрочитанному ссобщению)
Для SEO-мода та фича для $last_topic_title и $last_topic_url в файле includes/functions_display.php должна быть поправлена вот так:

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

         $last_topic_title = (utf8_strlen(htmlspecialchars_decode($last_topic_title_full)) > 30) ? utf8_substr(htmlspecialchars_decode($last_topic_title_full), 0, 30) . '&hellip;' : $last_topic_title_full;
         $last_topic_url = append_sid("{$phpbb_root_path}viewtopic.$phpEx", 'f=' . $last_topic_row['forum_id'] . '&t=' . $last_topic_row['topic_id'] . '&p='. $last_topic_row['topic_last_post_id'] .'#unread');
Ссылка будет иметь вид post1048918.html#unread.
Весь мой геморрой из-за него)

Я 10 раз прочитал правила phpBBguru!
Amberon
phpBB 1.2.0
Сообщения: 11
Стаж: 17 лет 11 месяцев

Re: Last post topic on index for phpBB3

Сообщение Amberon »

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

       if(!empty($forums_last_posts_ids_list))
       {
          $sql = 'SELECT topic_id, topic_title, topic_last_post_id, forum_id FROM ' . TOPICS_TABLE . ' WHERE topic_last_post_id IN (' . implode(',', $forums_last_posts_ids_list) . ')';
          $last_topic_result = $db->sql_query($sql);
          while($last_topic_row = $db->sql_fetchrow($last_topic_result))
          {
             $last_topic_title_full = censor_text($last_topic_row['topic_title']);
             $last_topic_title = (utf8_strlen($last_topic_title_full) > 30) ? utf8_substr($last_topic_title_full, 0, 30) . '&hellip;' : $last_topic_title_full;
             $last_topic_url = append_sid("{$phpbb_root_path}viewtopic.$phpEx", 'f=' . $last_topic_row['forum_id'] . '&t=' . $last_topic_row['topic_id']);

             $template->alter_block_array('forumrow', array(                  
                   'LAST_TOPIC_TITLE'      => $last_topic_title,
                   'LAST_TOPIC_TITLE_FULL'   => $last_topic_title_full,
                   'U_LAST_TOPIC_URL'      => $last_topic_url
             ), array('LAST_POST_ID'   => $last_topic_row['topic_last_post_id']), 'change');
          }
          $db->sql_freeresult($last_topic_result);
       }

Чтобы тема обрезалась после 25 символов,
достаточно ли только в этом фрагменте заменить все 30 на 20?
Аватара пользователя
Burning_brook
phpBB 1.0.0
Сообщения: 6
Стаж: 17 лет 5 месяцев

Re:

Сообщение Burning_brook »

rxu писал(а):

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

$last_topic_url = append_sid("{$phpbb_root_path}viewtopic.$phpEx", 'f=' . $last_topic_row['forum_id'] . '&p=' . $last_topic_row['topic_last_post_id']) . '#p' . $last_topic_row['topic_last_post_id'];
Не работает. Все равно попадаю на первое сообщение. :(
Может быть дело в том, что на форум в любом случае перехожу как Гость, и для меня все сообщения являются непрочитанными?
Что-то в настройках? Помогите, плиззз :oops:
Аватара пользователя
rxu
phpBB Guru
phpBB Guru
Сообщения: 17272
Стаж: 20 лет 4 месяца
Откуда: Красноярск
Благодарил (а): 632 раза
Поблагодарили: 2412 раз

Re: Last post topic on index for phpBB3

Сообщение rxu »

Burning_brook писал(а):Не работает. Все равно попадаю на первое сообщение.
Так и должно работать. Для перехода к последнему, жмите на соответствующую иконку справа от названия темы.
Изображение

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