Внимание!
Не все расширения для phpBB 3.2 совместимы с phpBB 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
Сообщения: 14744
Зарегистрирован: 12.05.2006 18:16
Откуда: Красноярск
Благодарил (а): 354 раза
Поблагодарили: 1623 раза

First post on every page for phpBB3

Сообщение rxu »

В режиме создания или редактирования первого сообщения темы дает возможность закрепить первое сообщение вверху каждой страницы темы.
first_post_on_every_page_phpbb3_1.2.2.zip
(30.67 КБ) 4294 скачивания
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.1.9
Сообщения: 10213
Зарегистрирован: 15.01.2010 13:57
Откуда: От Москвы 9 часов на Боинге
Благодарил (а): 1359 раз
Поблагодарили: 1305 раз

Re: First post on every page for phpBB3

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

Татьяна5 писал(а):Копирую. (Вот это как раз лишнее)
Я так завидую вот этим юмораиндству и оптимизму

Аватара пользователя
Татьяна5
Поддержка
Поддержка
Сообщения: 9944
Зарегистрирован: 08.08.2011 2:02
Благодарил (а): 176 раз
Поблагодарили: 2765 раз

Re: First post on every page for phpBB3

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

Пчелкин, есть у кого учиться :)

Аватара пользователя
WinSSLioN
phpBB 1.4.4
Сообщения: 106
Зарегистрирован: 28.08.2014 1:41
Благодарил (а): 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
(7.73 КБ) 0 скачиваний
Последний раз редактировалось WinSSLioN 21.11.2014 20:39, всего редактировалось 1 раз.
С уважением, Николай

Аватара пользователя
xisp
phpBB 3.0.0 RC7
Сообщения: 1799
Зарегистрирован: 19.05.2012 19:00
Благодарил (а): 152 раза
Поблагодарили: 215 раз
Забанен: Бессрочно

Re: First post on every page for phpBB3

Сообщение xisp »

WinSSLioN писал(а):Возможно через админку настроить в каком разделе прикреплять первое сообщение? 
В расширении для 3.1 вроде есть такая настройка.
phpBBex

Аватара пользователя
WinSSLioN
phpBB 1.4.4
Сообщения: 106
Зарегистрирован: 28.08.2014 1:41
Благодарил (а): 11 раз
Поблагодарили: 18 раз

Re: First post on every page for phpBB3

Сообщение WinSSLioN »

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

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

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