First post on every page for phpBB3

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

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

First post on every page for phpBB3

Сообщение rxu »

В режиме создания или редактирования первого сообщения темы дает возможность закрепить первое сообщение вверху каждой страницы темы.
first_post_on_every_page_phpbb3_1.2.2.zip
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 5:43, всего редактировалось 8 раз.
Причина: Добавление ссылки на ответ о правах
Изображение
Аватара пользователя
Alek$
Former team member
Сообщения: 2616
Стаж: 21 год 1 месяц
Откуда: Новосибирск
Поблагодарили: 37 раз

Re: First post on every page for phpBB3

Сообщение Alek$ »

DarkManChild
для таких случаев стоит иметь две вещи:
1) полный и свежий бекап.
2) Локальную тестовую копию форума, на которой можно спокойно тренироваться.
Самая страшная ошибка, это ошибка без видимых причин и конкретных последствий.
phpBB3 [db_update.php generator]
Первая помощь по всем phpBB-вопросам: phpBB2 и phpBB3 FAQ; Правила общения;
Все консультации в icq или личке - на платной основе.
DarkManChild
phpBB 1.4.1
Сообщения: 41
Стаж: 17 лет 5 месяцев

Re: First post on every page for phpBB3

Сообщение DarkManChild »

И так, вот что получается, делюсь результатом.
Для установки галочки по умолчанию . (нашел в теме)

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

posting.php

FIND
$post_data['topic_first_post_show'] = (isset($post_data['topic_first_post_show'])) ? $post_data['topic_first_post_show'] : 0;

REPLACE WITH
$post_data['topic_first_post_show'] = (isset($post_data['topic_first_post_show'])) ? $post_data['topic_first_post_show'] : 1;
SQL запрос для установки галочки для всех существующих тем.

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

UPDATE phpbb_topics SET topic_first_post_show = 1
+ Очистка кэша
Вроде бы все получилось как надо. По всему форуму первые посты стоят вверху, а новые темы создаются с галочкой "первый пост всегда сверху"
MAzZY
Бывший член :)
Сообщения: 2925
Стаж: 21 год 4 месяца
Благодарил (а): 79 раз
Поблагодарили: 69 раз
Забанен: Бессрочно

Re: First post on every page for phpBB3

Сообщение MAzZY »

А зачем Вам разбираться в SQL? Зачем менять запрос?
Нужно тупо прочитать указанную мной тему и сделать так, как там сказано.
apylyov
phpBB 1.4.4
Сообщения: 139
Стаж: 17 лет 7 месяцев
Благодарил (а): 4 раза

Re: First post on every page for phpBB3

Сообщение apylyov »

Итак, вроде все сделал по инструкции, а также прочитал дополнение для 3.0.6
Редактировал только эти файлы:
posting.php,
viewtopic.php,
language/en/common.php
styles/subsilver2/template/posting_body.html

sql запрос выполнил

кеш чистил после каждого изменения.

Тестирую:
захожу в тему, нажимаю правка, вижу появилось поле { FIRST_POST_SHOW }
phb.JPG
Ну думаю, ладно, как изменить текст будем думать потом.
Ставлю галочку, но пост первый этот не прикрепляется ко всем страницам темы.
Что не так?

Добавлено спустя 1 час 52 минуты 28 секунд:
Далее, прочитал инструкцию для русского и все наладил.
Теперь модераторы и Аднистратор могут ставить галочку для закрепления первого сообщения.
А что надо добавить/сделать, что бы все пользователи могли ставить эту галочку (такой пункт при создании или редактирвоания появился у них) ??

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

Re: First post on every page for phpBB3

Сообщение rxu »

posting.php

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

'S_FIRST_POST_SHOW_ALLOWED'		=> ($first_post_show_allowed  && ($auth->acl_get('m_lock', $forum_id) || ($auth->acl_get('f_user_lock', $forum_id) && $user->data['is_registered'] && !empty($post_data['topic_poster']) && $user->data['user_id'] == $post_data['topic_poster']))) ? true : false,
Уберите два условия по $auth.
Изображение
apylyov
phpBB 1.4.4
Сообщения: 139
Стаж: 17 лет 7 месяцев
Благодарил (а): 4 раза

Re: First post on every page for phpBB3

Сообщение apylyov »

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

Re: First post on every page for phpBB3

Сообщение rxu »

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

&& ($auth->acl_get('m_lock', $forum_id) || ($auth->acl_get('f_user_lock', $forum_id)
Изображение
jackbl
phpBB 1.0.0
Сообщения: 3
Стаж: 16 лет 9 месяцев
Благодарил (а): 1 раз
Поблагодарили: 1 раз

Re: First post on every page for phpBB3

Сообщение jackbl »

Здравствуйте!
Еще до изменений, связанных с отображением редактирования сообщений, я нашел в моде ошибочку-недочетик, которая-который приводил к тому, что отображение страницы темы занимало несколько десятков секунд при гигабайтной таблице сообщений на мускуле.
Дело в том, что в формируемом запросе номер первого сообщения топика был заключен в кавычки и мускуль искал такое сообщение без использования индексов по всей таблице сообщений.
А всего-то надо перевести номер первого поста в int.
Вот что получается во viewtopic.php (обратите внимание на "(int)"):

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

// 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] = (int) $topic_data['topic_first_post_id'];
   }
   $i++;
}



while ($row = $db->sql_fetchrow($result))
{
	$post_list[$i] = (int) $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] = (int)  $topic_data['topic_first_post_id'];
}
Кстати, второй по счету "(int)" в этом коде - это не моя правка, он у меня в 3.0.6 уже, как ни странно, был.
Stanger
phpBB 1.0.0
Сообщения: 3
Стаж: 16 лет 7 месяцев

Re: First post on every page for phpBB3

Сообщение Stanger »

Здравствуйте.
Появилась идея изменения цвета фона закрепленного поста,чтобы он как-то выделялся от всех остальных...Например затемнить его немного...
Может кто уже реализовывал?Есть решение какое-нить?
Нашел вот такое тут,но это не совсем то... эта правка "отделяет" прикрепленный пост от всех остальных...
Последний раз редактировалось Stanger 03.03.2010 0:41, всего редактировалось 1 раз.
Аватара пользователя
Пчелкин
phpBB 3.3.0
Сообщения: 11361
Стаж: 16 лет 8 месяцев
Благодарил (а): 1832 раза
Поблагодарили: 1358 раз

Re: First post on every page for phpBB3

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

rxu писал(а):posting.php

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

'S_FIRST_POST_SHOW_ALLOWED'		=> ($first_post_show_allowed  && ($auth->acl_get('m_lock', $forum_id) || ($auth->acl_get('f_user_lock', $forum_id) && $user->data['is_registered'] && !empty($post_data['topic_poster']) && $user->data['user_id'] == $post_data['topic_poster']))) ? true : false,
Уберите два условия по $auth.
Ну рот открыть не дали...спасибо...
четенько...здоровенько..чудесненько...

Добавлено спустя 34 минуты 39 секунд:
изменение фона от автора работает!!!
ссылка на пост выше....
делаем так....

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

OPEN
viewtopic.php

FIND
   'U_TOPIC'            => "{$server_path}viewtopic.$phpEx?f=$forum_id&t=$topic_id",

AFTER, ADD
   'S_TOPIC_FIRST_POST_SHOW'   => ($topic_data['topic_first_post_show'] == 1) ? true : false,

OPEN
styles/prosilver/template/viewtopic_body.html

FIND
   <div id="p{postrow.POST_ID}" class="post

IN-LINE FIND
<!-- IF postrow.S_ROW_COUNT is odd -->

IN_LINE REPLACE
<!-- IF S_TOPIC_FIRST_POST_SHOW and postrow.S_ROW_COUNT eq 0 -->bg3<!-- ELSEIF postrow.S_ROW_COUNT is odd -->

FIND
   <hr class="divider" />

AFTER, ADD
   <!-- IF S_TOPIC_FIRST_POST_SHOW and postrow.S_ROW_COUNT eq 0 --><br /><br /><!-- ENDIF -->

OPEN
styles/subsilver/template/viewtopic_body.html

FIND
   <!-- IF postrow.S_ROW_COUNT is even --><tr class="row1"><!-- ELSE --><tr class="row2"><!-- ENDIF -->

REPLACE WITH
   <!-- 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 -->

FIND
   <!-- IF postrow.S_ROW_COUNT is even --><tr class="row1"><!-- ELSE --><tr class="row2"><!-- ENDIF -->

REPLACE WITH
   <!-- 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 -->

FIND
   <!-- IF postrow.S_ROW_COUNT is even --><tr class="row1"><!-- ELSE --><tr class="row2"><!-- ENDIF -->

REPLACE WITH
   <!-- 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 -->

FIND
<!-- END postrow -->

BEFORE, ADD
   <!-- IF S_TOPIC_FIRST_POST_SHOW and postrow.S_ROW_COUNT eq 0 --><br /><br /><!-- ENDIF -->
# 
#-----[ SAVE/CLOSE ALL FILES ]------------------------------------------ 
# 
# EoM 
Добавлено спустя 41 минуту 18 секунд:
rxu писал(а):

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

&& ($auth->acl_get('m_lock', $forum_id) || ($auth->acl_get('f_user_lock', $forum_id)
Данное изменение ведет к чистым страницам при правке постов...
Не пролазит...обидно...

Добавлено спустя 2 часа 36 минут 44 секунды:
ZveroBoy писал(а):Любопытный глюк после установки данного мода: при редактировании администратором какого-либо сообщения в теме с закрепленным первым постом автором редактирования значится гость!

[фото пропало]

Если редактируют модераторы, то все нормально.

В темах без закрепленных первых постов ничего подобного не происходит.

Я видел, что выше это обсуждалось, но так и не понял, как исправить глюк без удаления мода.
Этот баг был пока Админ был просто админом без участия в группе Администраторы..ввел его в группу - баг исчез..
NIKON-D90, AF-S 18-105, AF-S 14-24, AF-S 24-70
Аватара пользователя
rxu
phpBB Guru
phpBB Guru
Сообщения: 17272
Стаж: 20 лет 4 месяца
Откуда: Красноярск
Благодарил (а): 632 раза
Поблагодарили: 2412 раз

Re: First post on every page for phpBB3

Сообщение rxu »

Пчелкин писал(а):Любопытный глюк после установки данного мода: при редактировании администратором какого-либо сообщения в теме с закрепленным первым постом автором редактирования значится гость!
Читайте первое сообщение этой темы, в самом конце, внимательно.
Изображение
Аватара пользователя
Пчелкин
phpBB 3.3.0
Сообщения: 11361
Стаж: 16 лет 8 месяцев
Благодарил (а): 1832 раза
Поблагодарили: 1358 раз

Re: First post on every page for phpBB3

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

Я это не писал..я цитировал..у меня этого глюка нет, исправил сразу...За мод огромное спасибо...очень удобно стало с ним...
NIKON-D90, AF-S 18-105, AF-S 14-24, AF-S 24-70
Аватара пользователя
Бармен
phpBB 1.2.0
Сообщения: 17
Стаж: 16 лет 11 месяцев
Благодарил (а): 2 раза

Re: First post on every page for phpBB3

Сообщение Бармен »

Скажите пожалуйста как можно подправить на 3.0.7-PL1
В теме
на 16 страниц закреплено только на 8 страницах
на 4 страниц только на 2 страницах
на 3 страницах закреплено только на 2 страницах, а третья страница отображается без сообщений хотя на ней должно быть не менее 2 сообщений

Вобщем получается что если четное количество страниц то закрепляется только 50%
Нечетное тоже получается около 50% но так как на 2 не делится получается баг с пустой страницей
Аватара пользователя
DK7
Former team member
Сообщения: 1008
Стаж: 20 лет 2 месяца
Откуда: Кишинёв
Благодарил (а): 3 раза
Поблагодарили: 25 раз

Re: First post on every page for phpBB3

Сообщение DK7 »

если попробовать синхронизировать данные темы через админку?
Аватара пользователя
Бармен
phpBB 1.2.0
Сообщения: 17
Стаж: 16 лет 11 месяцев
Благодарил (а): 2 раза

Re: First post on every page for phpBB3

Сообщение Бармен »

сделал откат вот этого фикса http://www.phpbbguru.net/community/post ... ml#p252821
темы стали отображаться нормально
DK7 писал(а):если попробовать синхронизировать данные темы через админку?
Это :
Синхронизировать свои темы
Снятие пометок со всех тем с последующей корректной маркировкой всех тем, к которым был доступ в последние шесть месяцев.
Или есть еще?
Поставил фикс обратно и синхронизировал все вплоть до сброса даты запуска. Ничего не помогло.

без фикса все нормально, но эти головные сообщения периодически приходится редактировать

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