Пропустить

First post on every page for phpBB3

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

Ваш вопрос может быть удален без объяснения причин, если на него есть ответы по приведённым ссылкам (а вы рискуете получить предупреждение ;) ).

First post on every page for phpBB3

Сообщение rxu » 21.09.2007 10:24

В режиме создания или редактирования первого сообщения темы дает возможность закрепить первое сообщение вверху каждой страницы темы.
first_post_on_every_page_phpbb3_1.2.2.zip
(30.67 КБ) Скачиваний: 2741


------------
Для установки на версию 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
Последний раз редактировалось rxu 26.12.2010 9:28, всего редактировалось 5 раз(а).
Причина: Добавление ссылки на ответ о правах
Изображение
За это сообщение автора rxu поблагодарили: 8
AHTEPO (09.12.2011 21:14), Andrey447 (06.04.2011 21:29), Di_Mok (03.10.2010 14:30), djinn (09.12.2011 3:32), gigabyte (10.02.2011 16:48), Petruxa12 (05.02.2012 16:47), SHOCK (10.01.2011 21:39), Simple (16.08.2011 10:00)
Аватара пользователя
rxu
phpBB Guru
phpBB Guru
 
Сообщения: 7316
Зарегистрирован: 12.05.2006 17:16
Откуда: Красноярск
Благодарил (а): 2 раз.
Поблагодарили: 251 раз.

Re: First post on every page for phpBB3

Сообщение Alek$ » 27.01.2010 18:17

DarkManChild
для таких случаев стоит иметь две вещи:
1) полный и свежий бекап.
2) Локальную тестовую копию форума, на которой можно спокойно тренироваться.
Самая страшная ошибка, это ошибка без видимых причин и конкретных последствий.
phpBB3 [db_update.php generator]
Первая помощь по всем phpBB-вопросам: phpBB2 и phpBB3 FAQ; Правила общения;
Все консультации в icq или личке - на платной основе.
Аватара пользователя
Alek$
Лидер модераторов
Лидер модераторов
 
Сообщения: 2672
Зарегистрирован: 03.08.2005 12:46
Откуда: Новосибирск
Благодарил (а): 3 раз.
Поблагодарили: 45 раз.

Re: First post on every page for phpBB3

Сообщение DarkManChild » 27.01.2010 18:50

И так, вот что получается, делюсь результатом.
Для установки галочки по умолчанию . (нашел в теме)
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

+ Очистка кэша
Вроде бы все получилось как надо. По всему форуму первые посты стоят вверху, а новые темы создаются с галочкой "первый пост всегда сверху"

DarkManChild
phpBB 1.4.1
 
Сообщения: 43
Зарегистрирован: 15.04.2009 14:19
Благодарил (а): 0 раз.
Поблагодарили: 0 раз.

Re: First post on every page for phpBB3

Сообщение MAzZY » 27.01.2010 19:25

А зачем Вам разбираться в SQL? Зачем менять запрос?
Нужно тупо прочитать указанную мной тему и сделать так, как там сказано.
Заработок на сайтах и форумах. Рефералам помогу установить код и начать зарабатывать.
Хороший хостинг в Питере
Аватара пользователя
MAzZY
Former team member
 
Сообщения: 2969
Зарегистрирован: 14.05.2005 22:43
Благодарил (а): 50 раз.
Поблагодарили: 54 раз.
Предупреждения: 1

Re: First post on every page for phpBB3

Сообщение apylyov » 10.02.2010 14:19

Итак, вроде все сделал по инструкции, а также прочитал дополнение для 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 секунд:
или такое право дать только определенным группам, как?

apylyov
phpBB 1.4.4
 
Сообщения: 91
Зарегистрирован: 30.01.2009 0:03
Благодарил (а): 4 раз.
Поблагодарили: 0 раз.

Re: First post on every page for phpBB3

Сообщение rxu » 10.02.2010 18:08

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.
Изображение
Аватара пользователя
rxu
phpBB Guru
phpBB Guru
 
Сообщения: 7316
Зарегистрирован: 12.05.2006 17:16
Откуда: Красноярск
Благодарил (а): 2 раз.
Поблагодарили: 251 раз.

Re: First post on every page for phpBB3

Сообщение apylyov » 10.02.2010 19:42

если этот ответ мне, то, не могли бы Вы выделить тот кусок кода, который надо удалить?

apylyov
phpBB 1.4.4
 
Сообщения: 91
Зарегистрирован: 30.01.2009 0:03
Благодарил (а): 4 раз.
Поблагодарили: 0 раз.

Re: First post on every page for phpBB3

Сообщение rxu » 10.02.2010 19:42

&& ($auth->acl_get('m_lock', $forum_id) || ($auth->acl_get('f_user_lock', $forum_id)
Изображение
Аватара пользователя
rxu
phpBB Guru
phpBB Guru
 
Сообщения: 7316
Зарегистрирован: 12.05.2006 17:16
Откуда: Красноярск
Благодарил (а): 2 раз.
Поблагодарили: 251 раз.

Re: First post on every page for phpBB3

Сообщение jackbl » 19.02.2010 10:39

Здравствуйте!
Еще до изменений, связанных с отображением редактирования сообщений, я нашел в моде ошибочку-недочетик, которая-который приводил к тому, что отображение страницы темы занимало несколько десятков секунд при гигабайтной таблице сообщений на мускуле.
Дело в том, что в формируемом запросе номер первого сообщения топика был заключен в кавычки и мускуль искал такое сообщение без использования индексов по всей таблице сообщений.
А всего-то надо перевести номер первого поста в 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 уже, как ни странно, был.
За это сообщение автора jackbl поблагодарил:
Пчелкин (04.10.2010 13:52)

jackbl
phpBB 1.0.0
 
Сообщения: 8
Зарегистрирован: 29.11.2009 23:54
Благодарил (а): 1 раз.
Поблагодарили: 1 раз.

Re: First post on every page for phpBB3

Сообщение Stanger » 02.03.2010 21:34

Здравствуйте.
Появилась идея изменения цвета фона закрепленного поста,чтобы он как-то выделялся от всех остальных...Например затемнить его немного...
Может кто уже реализовывал?Есть решение какое-нить?
Нашел вот такое тут,но это не совсем то... эта правка "отделяет" прикрепленный пост от всех остальных...
Последний раз редактировалось Stanger 03.03.2010 3:41, всего редактировалось 1 раз.

Stanger
phpBB 1.0.0
 
Сообщения: 3
Зарегистрирован: 24.02.2010 10:51
Благодарил (а): 0 раз.
Поблагодарили: 0 раз.

Re: First post on every page for phpBB3

Сообщение Пчелкин » 03.03.2010 3:28

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 писал(а):Любопытный глюк после установки данного мода: при редактировании администратором какого-либо сообщения в теме с закрепленным первым постом автором редактирования значится гость!

Изображение

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

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

Я видел, что выше это обсуждалось, но так и не понял, как исправить глюк без удаления мода.

Этот баг был пока Админ был просто админом без участия в группе Администраторы..ввел его в группу - баг исчез..
Фанат phpBB. Все что умею - ставить моды. Но рекрутингом не занимаюсь.
Аватара пользователя
Пчелкин
phpBB 3.0.7-PL1
 
Сообщения: 4264
Зарегистрирован: 15.01.2010 13:57
Откуда: От Москвы 9 часов на Боинге
Благодарил (а): 237 раз.
Поблагодарили: 446 раз.

Re: First post on every page for phpBB3

Сообщение rxu » 03.03.2010 20:36

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

Читайте первое сообщение этой темы, в самом конце, внимательно.
Изображение
Аватара пользователя
rxu
phpBB Guru
phpBB Guru
 
Сообщения: 7316
Зарегистрирован: 12.05.2006 17:16
Откуда: Красноярск
Благодарил (а): 2 раз.
Поблагодарили: 251 раз.

Re: First post on every page for phpBB3

Сообщение Пчелкин » 04.03.2010 11:01

Я это не писал..я цитировал..у меня этого глюка нет, исправил сразу...За мод огромное спасибо...очень удобно стало с ним...
Фанат phpBB. Все что умею - ставить моды. Но рекрутингом не занимаюсь.
Аватара пользователя
Пчелкин
phpBB 3.0.7-PL1
 
Сообщения: 4264
Зарегистрирован: 15.01.2010 13:57
Откуда: От Москвы 9 часов на Боинге
Благодарил (а): 237 раз.
Поблагодарили: 446 раз.

Re: First post on every page for phpBB3

Сообщение Бармен » 04.04.2010 2:15

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

Вобщем получается что если четное количество страниц то закрепляется только 50%
Нечетное тоже получается около 50% но так как на 2 не делится получается баг с пустой страницей
Аватара пользователя
Бармен
phpBB 1.2.0
 
Сообщения: 19
Зарегистрирован: 22.10.2009 12:53
Благодарил (а): 4 раз.
Поблагодарили: 0 раз.

Re: First post on every page for phpBB3

Сообщение DK7 » 04.04.2010 2:22

если попробовать синхронизировать данные темы через админку?
Аватара пользователя
DK7
Модератор
Модератор
 
Сообщения: 942
Зарегистрирован: 17.07.2006 14:52
Откуда: Кишинёв
Благодарил (а): 6 раз.
Поблагодарили: 11 раз.

Re: First post on every page for phpBB3

Сообщение Бармен » 04.04.2010 2:27

сделал откат вот этого фикса post252821.html#p252821
темы стали отображаться нормально

DK7 писал(а):если попробовать синхронизировать данные темы через админку?

Это :
Синхронизировать свои темы
Снятие пометок со всех тем с последующей корректной маркировкой всех тем, к которым был доступ в последние шесть месяцев.
Или есть еще?
Поставил фикс обратно и синхронизировал все вплоть до сброса даты запуска. Ничего не помогло.

без фикса все нормально, но эти головные сообщения периодически приходится редактировать
Аватара пользователя
Бармен
phpBB 1.2.0
 
Сообщения: 19
Зарегистрирован: 22.10.2009 12:53
Благодарил (а): 4 раз.
Поблагодарили: 0 раз.

Пред.След.

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

 

  • Похожие темы
    Ответы
    Просмотры
    Последнее сообщение

Кто сейчас на конференции

Сейчас этот форум просматривают: нет зарегистрированных пользователей и гости: 0

Бессрочный конкурс phpBB-ориентированных материалов
FastVPS — надёжный и доступный хостинг для phpBB
Место для вашей рекламы
cron