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

Два вопроса

Форум для авторов модов для phpBB 2.0.x.
ra
phpBB 2.0.2
Сообщения: 325
Стаж: 19 лет 11 месяцев
Откуда: Беларусь

Два вопроса

Сообщение ra »

1. Как узнать, что сообщение в теме является первым?
2. Для ответа в тему и на ЛС используется одна переменная -

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

$mode == 'reply'
И соответсвенно выражение

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

if ($mode == 'reply') echo('Blin');
будет верно для ответа в тему и в ЛС. Как узнать, что ответ идёт именно в тему, а не на ЛС?
Xpert
phpBB Guru
phpBB Guru
Сообщения: 5484
Стаж: 20 лет 1 месяц
Поблагодарили: 2 раза

Сообщение Xpert »

1. Это вроде как-то смотрится в БД, вечером скажу.
2. Тоже ближе к вечеру. Кстати, echo 'Blin';

Добавлено спустя 11 часов 35 минут 30 секунд:

Первое проверяется следующим образом: смотрим, равняются ли id первого поста темы и id нашего поста. Вот как это реализовано в posting.php:

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

$select_sql = ( !$submit ) ? ", t.topic_title, p.enable_bbcode, p.enable_html, p.enable_smilies, p.enable_sig, p.post_username, pt.post_subject, pt.post_text, pt.bbcode_uid, u.username, u.user_id, u.user_sig" : '';
$from_sql = ( !$submit ) ? ", " . POSTS_TEXT_TABLE . " pt, " . USERS_TABLE . " u" : '';
$where_sql = ( !$submit ) ? "AND pt.post_id = p.post_id AND u.user_id = p.poster_id" : '';

$sql = "SELECT f.*, t.topic_id, t.topic_status, t.topic_type, t.topic_first_post_id, t.topic_last_post_id, t.topic_vote, p.post_id, p.poster_id" . $select_sql . " 
			FROM " . POSTS_TABLE . " p, " . TOPICS_TABLE . " t, " . FORUMS_TABLE . " f" . $from_sql . " 
			WHERE p.post_id = $post_id 
				AND t.topic_id = p.topic_id 
				AND f.forum_id = p.forum_id
				$where_sql";

. . .

if ( $result = $db->sql_query($sql) )
{

. . .

$post_data['first_post'] = ( $post_info['topic_first_post_id'] == $post_id ) ? true : false;
$post_data['last_post'] = ( $post_info['topic_last_post_id'] == $post_id ) ? true : false;

. . .
}
По поводу второго - этим заведуют разные файлы, ответ в тему идет через posting.php, ответ на ЛС - через privmsg.php.
Эксперт - это человек, который избегает мелких ошибок на пути к грандиозному провалу.
Любая более-менее сложная задача имеет несколько простых, изящных, лёгких для понимания неправильных решений
ra
phpBB 2.0.2
Сообщения: 325
Стаж: 19 лет 11 месяцев
Откуда: Беларусь

Сообщение ra »

Уф как всё сложно. Спасибо!

Вернуться в «Для авторов (phpBB 2.0.x)»