Уважаемые пользователи!
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 раз.
Причина: Добавление ссылки на ответ о правах
Изображение
Аватара пользователя
Татьяна5
Поддержка
Поддержка
Сообщения: 12372
Стаж: 12 лет 7 месяцев
Благодарил (а): 223 раза
Поблагодарили: 3517 раз
Контактная информация:

Re: First post on every page for phpBB3

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

amijedi
В "Настройках" при создании новой темы (или правке 1-го поста в существующей)
language/ru/common.php править по аналогии с language/en/common.php
kolhoznik
phpBB 1.4.4
Сообщения: 120
Стаж: 11 лет 10 месяцев
Благодарил (а): 7 раз
Поблагодарили: 3 раза

Re: First post on every page for phpBB3

Сообщение kolhoznik »

думаю уместно заменить в инструкции SQL запрос на

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

ALTER TABLE php_bb_topics ADD topic_first_post_show TINYINT(1) UNSIGNED DEFAULT '0' NOT NULL;
Аватара пользователя
Татьяна5
Поддержка
Поддержка
Сообщения: 12372
Стаж: 12 лет 7 месяцев
Благодарил (а): 223 раза
Поблагодарили: 3517 раз
Контактная информация:

Re: First post on every page for phpBB3

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

kolhoznik, если у вас нестандартный префикс таблиц - это частный случай, и всем остальным такой запрос уже не подойдёт
Rubicon
phpBB 1.0.0
Сообщения: 7
Стаж: 10 лет 3 месяца
Благодарил (а): 3 раза

Re: First post on every page for phpBB3

Сообщение Rubicon »

Такая вот беда, при редактировании любого сообщения в теме, оно становиться первым, при добавлении нового сообщения всё нормально.
Я так понимаю, что нужно убрать галочку "Показывать первое сообщение на каждой странице темы" на всех постах кроме первого, читал тему, применял правки, чистил кеш, - эффекта ноль. 3.0.12, 5.4.21
rozalski
phpBB 1.0.0
Сообщения: 6
Стаж: 10 лет 3 месяца

Re: First post on every page for phpBB3

Сообщение rozalski »

Всем привет!
Установил мод, все хорошо - чекбокс появился, но при попытки редактирования первого сообщения в теме, либо создания новой темы и установки "птички" в чекбоксе появляется уже известная в настоящей теме ошибка:

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

Общая ошибка
SQL ERROR [ mysqli ]
Unknown column 'topic_first_post_show' in 'field list' [1054]
SQL
UPDATE phpbb_topics SET topic_first_post_show = 1 WHERE topic_id = 221
BACKTRACE
FILE: includes/db/mysqli.php
LINE: 163
CALL: dbal->sql_error()
FILE: posting.php
LINE: 1177
CALL: dbal_mysqli->sql_query()
Перечитал всю тему, но решения своей проблемы не нашел. SQL-запрос выполнен, повторная попытка выполнения выдает ошибку о существовании topic_first_post_show. Посмотрел структуру таблицы phpbb_topics, поле topic_first_post_show присутствует в самом конце. Делаю вывод, что SQL-запрос выполнен корректно и все что было необходимо в базу данных добавлено. То, что запрос выполнен применительно к нужной базе данных я уверен на 96%....
В какую сторону смотреть? Видел сталкивались тут с некорректными правками файлов, можно конкретно где были ошибки? Так вроде все перепроверил...
Заранее спасибо!
Аватара пользователя
Татьяна5
Поддержка
Поддержка
Сообщения: 12372
Стаж: 12 лет 7 месяцев
Благодарил (а): 223 раза
Поблагодарили: 3517 раз
Контактная информация:

Re: First post on every page for phpBB3

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

rozalski писал(а):В какую сторону смотреть?
В сторону потерянных 4%. Не проходит именно запрос к базе данных.

Что возвращает запрос

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

SELECT topic_first_post_show FROM phpbb_topics WHERE topic_id = 221
?
rozalski
phpBB 1.0.0
Сообщения: 6
Стаж: 10 лет 3 месяца

Re: First post on every page for phpBB3

Сообщение rozalski »

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

MySQL вернула пустой результат (т.е. ноль строк). ( Запрос занял 0.0002 сек. )

SELECT topic_first_post_show
FROM phpbb_topics
WHERE topic_id =221
LIMIT 0 , 30
Последний раз редактировалось Sheer 28.12.2013 22:31, всего редактировалось 1 раз.
Причина: bb-код
Аватара пользователя
Татьяна5
Поддержка
Поддержка
Сообщения: 12372
Стаж: 12 лет 7 месяцев
Благодарил (а): 223 раза
Поблагодарили: 3517 раз
Контактная информация:

Re: First post on every page for phpBB3

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

Значит в таблице phpbb_topics нет столбца topic_first_post_show. Выполните ещё раз запрос из мода
rozalski
phpBB 1.0.0
Сообщения: 6
Стаж: 10 лет 3 месяца

Re: First post on every page for phpBB3

Сообщение rozalski »

Повторное выполнение приводит к показу сообщения #1060 - Duplicate column name 'topic_first_post_show'
Аватара пользователя
Алг
Former team member
Сообщения: 933
Стаж: 11 лет 7 месяцев
Откуда: Израиль
Благодарил (а): 85 раз
Поблагодарили: 305 раз
Контактная информация:

Re: First post on every page for phpBB3

Сообщение Алг »

Наоборот, означает, что столбец там есть

Добавлено спустя 9 минут 49 секунд:
rozalski писал(а):UPDATE phpbb_topics SET topic_first_post_show = 1 WHERE topic_id = 221
rozalski, а если попробовать выполнить этот запрос напрямую в БД?
Там упёртость и инертность, могут, кстати, в морду дать.
А ты проявляй интеллигентность, постарайся убеждать...

Т. Шаов
rozalski
phpBB 1.0.0
Сообщения: 6
Стаж: 10 лет 3 месяца

Re: First post on every page for phpBB3

Сообщение rozalski »

Алг писал(а):Наоборот, означает, что столбец там есть
rozalski, а если попробовать выполнить этот запрос напрямую в БД?
Затронуто 0 строк. ( Запрос занял 0.0006 сек. )
UPDATE phpbb_topics SET topic_first_post_show =1 WHERE topic_id =216
безрезультатно =(
Аватара пользователя
Алг
Former team member
Сообщения: 933
Стаж: 11 лет 7 месяцев
Откуда: Израиль
Благодарил (а): 85 раз
Поблагодарили: 305 раз
Контактная информация:

Re: First post on every page for phpBB3

Сообщение Алг »

вовсе не безрезультатно. Запрос выполнен успешно, но "topic_id =216" не нашёлся в таблице
Там упёртость и инертность, могут, кстати, в морду дать.
А ты проявляй интеллигентность, постарайся убеждать...

Т. Шаов
rozalski
phpBB 1.0.0
Сообщения: 6
Стаж: 10 лет 3 месяца

Re: First post on every page for phpBB3

Сообщение rozalski »

И как это побороть?
Аватара пользователя
Алг
Former team member
Сообщения: 933
Стаж: 11 лет 7 месяцев
Откуда: Израиль
Благодарил (а): 85 раз
Поблагодарили: 305 раз
Контактная информация:

Re: First post on every page for phpBB3

Сообщение Алг »

c 216 надо для начала убедиться, что торик существует

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

SELECT topic_first_post_show
FROM phpbb_topics
WHERE topic_id =216
1. если запрос вернёт вам строку, проверьте значение поля "topic_first_post_show "
если в поле стоит 1, то запрос апдейта верёт вам 0 строк.
установите значение поля в 0 ( вручную)
повторите апдейт-запрос

2. попробуйте другой номер топика подставить, предварительно убедившись, что он существует

3. наконец, попробуйте во всей таблице заменить

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

UPDATE phpbb_topics SET topic_first_post_show =1 
проверьте результат и верните всё на место

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

UPDATE phpbb_topics SET topic_first_post_show =0 
Там упёртость и инертность, могут, кстати, в морду дать.
А ты проявляй интеллигентность, постарайся убеждать...

Т. Шаов
rozalski
phpBB 1.0.0
Сообщения: 6
Стаж: 10 лет 3 месяца

Re: First post on every page for phpBB3

Сообщение rozalski »

Действительно, topic_id=216 в таблице нет =(

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

MySQL вернула пустой результат (т.е. ноль строк). ( Запрос занял 0.0002 сек. )
SELECT topic_first_post_show
FROM phpbb_topics
WHERE topic_id =216
LIMIT 0 , 30
Если выполнять для существующих (визуально найденных в таблице) topic_id то получаем, например:

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

Отображает строки 0 - 0 ( 1 всего, Запрос занял 0.0001 сек.)
SELECT topic_first_post_show
FROM phpbb_topics
WHERE topic_id =2
LIMIT 0 , 30
Дальше круче, нахожу в таблице topic (id=9) иду на форум, тыкаю править сообщение, ставлю птичку первым на каждой странице (сообщение в теме вообще одно, но я думаю это не важно вовсе) и после нажатия на кнопку отправить получаю уже знакомое

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

Общая ошибка
SQL ERROR [ mysqli ]
Unknown column 'topic_first_post_show' in 'field list' [1054]
SQL
UPDATE phpbb_topics SET topic_first_post_show = 1 WHERE topic_id = 9
BACKTRACE
FILE: includes/db/mysqli.php
LINE: 163
CALL: dbal->sql_error()
FILE: posting.php
LINE: 1177
CALL: dbal_mysqli->sql_query()
Таким образом топик точно есть, но формируемый SQL-запрос его не находит. Иду в phpmyadmin и в ручную меняю topic_first_post_show на 1 для topic_id = 9.
Получаю

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

Затронута 1 строка.
UPDATE  `имя базы`.`phpbb_topics` SET  `topic_first_post_show` =  '1' WHERE  `phpbb_topics`.`topic_id` =9;
Т.е. в запросе еще присутствует параметр 'имя базы' (соответственно имя используемой базы, с указанным в config.php совпадает). Но это не самое страшное, в таблице имябазы.phpbb_topics не так уж и много записей, и визуально видно, что многих топиков там просто нет, а на форуме они есть.... короче я окончательно запутался =(
Закрыто

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