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

First post on every page for phpBB3

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

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

First post on every page for phpBB3

Сообщение rxu »

В режиме создания или редактирования первого сообщения темы дает возможность закрепить первое сообщение вверху каждой страницы темы.
first_post_on_every_page_phpbb3_1.2.2.zip
(30.67 КБ) 4562 скачивания
first post on every page phpbb3 1.2.3

------------
Для установки на версию phpBB 3.0.6 :

В этой версии часть кода изменилась.
Поэтому в инструкции вместо

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

			// If the post need approval we will wait a lot longer.
использовать для поиска

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

                  // Check the permissions for post approval. Moderators are not affected.
После установки мода необходимо выполнить также следующую инструкцию (для снижения нагрузки на базу данных):

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

Open:
viewtopic.php

Find:
$post_list[$i] = $topic_data['topic_first_post_id'] ;

Replace to:
$post_list[$i] = (int) $topic_data['topic_first_post_id'] ;
Исправление ошибки с отображением информации о редактировании сообщения при закрепленном первом сообщении находится здесь.

FAQ

1. Кто имеет право закреплять сообщение?
Тот, кто имеет право закрывать тему.
First post on every page for phpBB3

2. Вопросы, собранные из темы, в одном сообщении:
First post on every page for phpBB3
Последний раз редактировалось Татьяна5 21.11.2014 8:43, всего редактировалось 8 раз.
Причина: Добавление ссылки на ответ о правах
Изображение
Аватара пользователя
Пчелкин
phpBB 3.3.0
Сообщения: 11234
Стаж: 14 лет 2 месяца
Откуда: fotovideoforum.ru
Благодарил (а): 1782 раза
Поблагодарили: 1340 раз
Контактная информация:

Re: First post on every page for phpBB3

Сообщение Пчелкин »

Татьяна5 писал(а):Копирую. (Вот это как раз лишнее)
Я так завидую вот этим юмораиндству и оптимизму
Аватара пользователя
Татьяна5
Поддержка
Поддержка
Сообщения: 12372
Стаж: 12 лет 7 месяцев
Благодарил (а): 223 раза
Поблагодарили: 3517 раз
Контактная информация:

Re: First post on every page for phpBB3

Сообщение Татьяна5 »

Пчелкин, есть у кого учиться :)
Аватара пользователя
WinSSLioN
phpBB 1.4.4
Сообщения: 106
Стаж: 9 лет 7 месяцев
Благодарил (а): 11 раз
Поблагодарили: 18 раз

Re: First post on every page for phpBB3

Сообщение WinSSLioN »

От автора 
Сделал вычитку темы, от начала и до данного поста, собрал важную информацию, надеюсь будет полезна)
Будет ли мод работать корректно с форумом версии 3.0.12? 
Да.
Будет поддержка 3.1.х? 
Возможно через админку настроить в каком разделе прикреплять первое сообщение? 
Нет, настройка производится исключительно путём правки первого сообщения каждой конкретной темы.

НО расширение дает возможность настройки.

Изображение

Перейти к расширению - First post on every page by rxu
Почему нет чек-бокса "Показывать на каждой странице" при создании темы? 
Форум имеет свой кэш на сервере в папке cache, его и надо удалить.
Администраторский раздел (главная страница) - Очистить кэш
Как сделать чтобы по умолчанию закреплялся первый пост всегда? 
Открыть: posting.php

Найти:

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

$post_data['topic_first_post_show'] = (isset($post_data['topic_first_post_show'])) ? $post_data['topic_first_post_show'] : 0;
Заменить кодом:

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

$post_data['topic_first_post_show'] = (isset($post_data['topic_first_post_show'])) ? $post_data['topic_first_post_show'] : 1;
Как сделать чтобы закрепленное сообщение как-то выделялось? 
1. Графически.

Для Prosilver | Для Subsilver

2. Второй вариант

Открыть:

viewtopic_body.html

Найти:

<!-- END postrow -->

Добавить перед:

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

<!-- IF postrow.S_FIRST_ROW -->
   <div class="post bg2">
      <div class="inner" style="text-align: center;"><span class="corners-top"><span></span></span>
      <span class="corners-bottom"><span></span></span></div>
   </div>
<hr class="divider" />
<!-- ENDIF -->
3. И этот вариант

Открыть:

viewtopic.php

Найти:

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

  'U_TOPIC'            => "{$server_path}viewtopic.$phpEx?f=$forum_id&t=$topic_id",
Добавить после:

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

 'S_TOPIC_FIRST_POST_SHOW'   => ($topic_data['topic_first_post_show'] == 1) ? true : false,
Открыть:

styles/prosilver/template/viewtopic_body.html

Найти:

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

 <div id="p{postrow.POST_ID}" class="post
В строке найти:

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

<!-- IF postrow.S_ROW_COUNT is odd -->
В строке заменить:

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

<!-- IF S_TOPIC_FIRST_POST_SHOW and postrow.S_ROW_COUNT eq 0 -->bg3<!-- ELSEIF postrow.S_ROW_COUNT is odd -->
Найти:

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

<hr class="divider" />
Добавить после:

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

 <!-- IF S_TOPIC_FIRST_POST_SHOW and postrow.S_ROW_COUNT eq 0 --><br /><br /><!-- ENDIF -->
Открыть:

styles/subsilver/template/viewtopic_body.html

Найти:

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

<!-- IF postrow.S_ROW_COUNT is even --><tr class="row1"><!-- ELSE --><tr class="row2"><!-- ENDIF -->
Заменить на:

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

 <!-- IF S_TOPIC_FIRST_POST_SHOW and postrow.S_ROW_COUNT eq 0 --><tr class="row3"><!-- ELSEIF postrow.S_ROW_COUNT is even --><tr class="row1"><!-- ELSE --><tr class="row2"><!-- ENDIF -->
Найти:

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

<!-- IF postrow.S_ROW_COUNT is even --><tr class="row1"><!-- ELSE --><tr class="row2"><!-- ENDIF -->
Заменить на:

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

 <!-- IF S_TOPIC_FIRST_POST_SHOW and postrow.S_ROW_COUNT eq 0 --><tr class="row3"><!-- ELSEIF postrow.S_ROW_COUNT is even --><tr class="row1"><!-- ELSE --><tr class="row2"><!-- ENDIF -->
Найти:

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

 <!-- IF postrow.S_ROW_COUNT is even --><tr class="row1"><!-- ELSE --><tr class="row2"><!-- ENDIF -->
Заменить на:

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

<!-- IF S_TOPIC_FIRST_POST_SHOW and postrow.S_ROW_COUNT eq 0 --><tr class="row3"><!-- ELSEIF postrow.S_ROW_COUNT is even --><tr class="row1"><!-- ELSE --><tr class="row2"><!-- ENDIF -->
Найти:

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

<!-- END postrow -->
Добавить перед:

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

<!-- IF S_TOPIC_FIRST_POST_SHOW and postrow.S_ROW_COUNT eq 0 --><br /><br /><!-- ENDIF -->
Загрузить все измененные файлы на сервер с заменой.
Поставил мод, решил протестировать на старых темах, кликаю, а оно: "Запрошенной темы не существует" 
Проблема в том, что после SQL запроса вы не сбросили кеш.
Отображается две строки "Закрепить первое сообщение". 
Проверите файл posting_body.html на повтор кода

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

<!-- IF S_FIRST_POST_SHOW_ALLOWED -->
				<tr>
					<td><input type="checkbox" class="radio" name="topic_first_post_show"{S_FIRST_POST_SHOW_CHECKED} /></td>
					<td class="gen">{L_FIRST_POST_SHOW}</td>
				</tr>
			<!-- ENDIF -->
При попытке выполнить SQL-запрос выскакивает ошибка: #1046 - No database selected 
Проверяйте совпадает ли префикс таблиц в вашей БД и в SQL- запросе.
Кто может закрепить сообщение? 
Тем, кто имеет право закрывать тему.
Исправление ошибки с отображением информации о редактировании сообщения при закрепленном первом сообщении. 
Открыть:

viewtopic.php

Найти:

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

// First post on every page
// Show first post on every page if needed
if($topic_data['topic_first_post_show'] && ( $start != 0))
{
	$i = 0;
	$post_list[$i] = $topic_data['topic_first_post_id'] ;
	$i = ($store_reverse) ? $sql_limit : $i+1;
}
Заменить на:

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

// First post on every page
// Show first post on every page if needed
// For the case the user is trying to reach the first half of the topic
if ($topic_data['topic_first_post_show'] && ($start != 0))
{
	if (!$store_reverse)
	{
		$post_list[$i] = $topic_data['topic_first_post_id'];
	}
	$i++;
}
Найти:

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

while ($row = $db->sql_fetchrow($result))
{
	$post_list[$i] = $row['post_id'];
	($store_reverse) ? $i-- : $i++;
}
$db->sql_freeresult($result);
Добавить после:

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

// First post on every page
// Show first post on every page if needed
// For the case the user is trying to reach the second half of the topic
if ($topic_data['topic_first_post_show'] && ($start != 0) && $store_reverse)
{
	$post_list[$i] = $topic_data['topic_first_post_id'];
}
Не могу найти строчку в posting.php - // Check the permissions for post approval. Moderators are not affected. 
Дело в том, что фразу целиком ctrl+F не находил, а по двум словам найдется
Как можно проверить, есть ли в теме прикреплённое первое сообщение? 
Или визуально, или через БД.

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

SELECT topic_id, topic_title FROM phpbb_topics WHERE topic_first_post_show = 1
Почему отображается { FIRST_POST_SHOW }, а не русское предложение? 
Открыть:
language/ru/common.php

Найти:

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

'FIND_USERNAME'			=> 'Find a member',
Добавить после:

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

'FIRST_POST_SHOW'		=> 'Показывать на каждой странице',
Как разрешить пользователям прикрепления первого сообщения ? 
Пи. Си. Просьба добавить в второй пост темы данный FAQ для удобства) Спасибо.
Вложения
47577574.png
47577574.png (7.73 КБ) 210 просмотров
Последний раз редактировалось WinSSLioN 21.11.2014 20:39, всего редактировалось 1 раз.
С уважением, Николай
Аватара пользователя
xisp
phpBB 3.0.0 RC7
Сообщения: 1798
Стаж: 11 лет 10 месяцев
Благодарил (а): 152 раза
Поблагодарили: 215 раз
Забанен: Бессрочно

Re: First post on every page for phpBB3

Сообщение xisp »

WinSSLioN писал(а):Возможно через админку настроить в каком разделе прикреплять первое сообщение? 
В расширении для 3.1 вроде есть такая настройка.
phpBBex
Аватара пользователя
WinSSLioN
phpBB 1.4.4
Сообщения: 106
Стаж: 9 лет 7 месяцев
Благодарил (а): 11 раз
Поблагодарили: 18 раз

Re: First post on every page for phpBB3

Сообщение WinSSLioN »

xisp писал(а):вроде есть
уточню этот вопрос и отпишусь, спасибо

Добавлено спустя 2 часа 22 минуты 55 секунд:
xisp, спасибо за инфу, нашел и уже поправил пост с FAQ.
С уважением, Николай
Закрыто

Вернуться в «Анонсы и поддержка модов для phpBB 3.0.x»