Уважаемые пользователи!
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 3.2.x? Получите помощь здесь!
Внимание: с 7 ноября 2020 года phpBB Group завершено дальнейшее развитие phpBB версии 3.2, а с 1 августа 2024 года будет прекращена её поддержка.
Сайт официальной русской поддержки phpBB Guru продолжит поддержку phpBB 3.2 до 31 декабря 2024 года.

Правила форума
Местная Конституция | Шаблон запроса | Документация (phpBB3) | Мини [FAQ] по phpBB 3.1.x/3.2.x | FAQ | Как задавать вопросы | Как устанавливать расширения

Ваш вопрос может быть удален без объяснения причин, если на него есть ответы по приведённым ссылкам (а вы рискуете получить предупреждение ;) ).
Ariqun
phpBB 1.0.0
Сообщения: 3
Стаж: 5 лет 9 месяцев
Благодарил (а): 3 раза

Вывод сообщений определенных пользователей

Сообщение Ariqun »

Здравствуйте!
Есть необходимость вывести в отдельный блок посты определенных пользователей/группы пользователей, моих знаний и опыта в работе php и БД не хватает для этого. Вот, что у меня получилось:

php-файл в корне форума:

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

<?php
define('IN_PHPBB', true);
$phpbb_root_path = (defined('PHPBB_ROOT_PATH')) ? PHPBB_ROOT_PATH : './';
$phpEx = substr(strrchr(__FILE__, '.'), 1);
include($phpbb_root_path . 'common.' . $phpEx);
include($phpbb_root_path . 'includes/functions_display.' . $phpEx);

// Start session management
$user->session_begin();
$auth->acl($user->data);
$user->setup('viewforum');


$sql = 'SELECT * FROM `dbName_posts` WHERE poster_id = 49';
$result = $db->sql_query($sql);

while ($row = $db->sql_fetchrow($result))
{
	$template->assign_block_vars('row', array(
		'NAME'	=> $row['poster_id'],
		'TEXT'	=> $row['post_text'],
	));
}
?>
В html:

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

<!-- BEGIN row -->
		<span>{row.NAME}</span>
		<span>{row.TEXT}</span>
<!-- END row -->
Разметка "<span>" тестовая, пытаюсь сначала получить результат, потом уже оформлять. Но никакого результата нет. Подскажите, пожалуйста, как правильно написать код или хотя бы подскажите принцип вывода информации из БД в html.
Спасибо!
Аватара пользователя
nissin
phpBB 3.0.4
Сообщения: 2208
Стаж: 16 лет 3 месяца
Откуда: Павлодар
Благодарил (а): 7 раз
Поблагодарили: 338 раз
Контактная информация:

Re: Вывод сообщений определенных пользователей

Сообщение nissin »

На текущий момент правильно, это написать расширение.
А если по приведённому коду, то нужно добавить вызовы page_header, page_footer и установить шаблон через $template->set_filenames.
Всё повторяется. nurlan.info
Ariqun
phpBB 1.0.0
Сообщения: 3
Стаж: 5 лет 9 месяцев
Благодарил (а): 3 раза

Re: Вывод сообщений определенных пользователей

Сообщение Ariqun »

Вряд ли у меня получится написать расширение, во всяком случае быстро.

Изменила код на:

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

<?php
define('IN_PHPBB', true);
$phpbb_root_path = (defined('PHPBB_ROOT_PATH')) ? PHPBB_ROOT_PATH : './';
$phpEx = substr(strrchr(__FILE__, '.'), 1);
include($phpbb_root_path . 'common.' . $phpEx);
include($phpbb_root_path . 'includes/functions_display.' . $phpEx);

// Start session management
$user->session_begin();
$auth->acl($user->data);
$user->setup('viewforum');


$sql = 'SELECT * FROM `dbName_posts` WHERE poster_id = 49';
$result = $db->sql_query($sql);

while ($row = $db->sql_fetchrow($result))
{
	$template->assign_block_vars('row', array(
		'NAME'	=> $row['poster_id'],
		'TEXT'	=> $row['post_text'],
	));
}

page_header();

$template->set_filenames(array(
	'body' => 'forumlist_body.html')
);

page_footer();
?>
Все равно нет никаких результатов на html-странице. Что я делаю не так?
Аватара пользователя
Siava
Поддержка
Поддержка
Сообщения: 5270
Стаж: 19 лет 2 месяца
Откуда: Питер
Благодарил (а): 188 раз
Поблагодарили: 800 раз
Контактная информация:

Re: Вывод сообщений определенных пользователей

Сообщение Siava »

Ariqun, код верный, всё работает. Быть может почистить кеш?
Еще одно нарушение правил и будете забанены. © Mr. Anderson
Ты очистил кеш? © Sheer
https://siava.ru (phpbb 2.0.x 3.5.x)
Аватара пользователя
nissin
phpBB 3.0.4
Сообщения: 2208
Стаж: 16 лет 3 месяца
Откуда: Павлодар
Благодарил (а): 7 раз
Поблагодарили: 338 раз
Контактная информация:

Re: Вывод сообщений определенных пользователей

Сообщение nissin »

Ну если сильно хочется:
sample.php

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

<?php
define('IN_PHPBB', true);
$phpbb_root_path = (defined('PHPBB_ROOT_PATH')) ? PHPBB_ROOT_PATH : './';
$phpEx = substr(strrchr(__FILE__, '.'), 1);
include($phpbb_root_path . 'common.' . $phpEx);

// Start session management
$user->session_begin();
$auth->acl($user->data);
$user->setup('viewforum');

$sql = 'SELECT * FROM `' . POSTS_TABLE . '` WHERE poster_id = 2';
$result = $db->sql_query($sql);

while ($row = $db->sql_fetchrow($result))
{
    $template->assign_block_vars('row', array(
        'NAME'  => $row['poster_id'],
        'TEXT'  => $row['post_text'],
    ));
}
$db->sql_freeresult($result);

page_header('Sample page title');
$template->set_filenames(array(
    'body' => 'sample_body.html')
);
page_footer();

styles/prosilver/template/sample_body.html

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

<!-- BEGIN row -->
        <div class="post">
                <h3>{row.NAME}</h3>
                <div class="content">{row.TEXT}</div>
        </div>
        <hr />
<!-- END row -->
Всё повторяется. nurlan.info
Ariqun
phpBB 1.0.0
Сообщения: 3
Стаж: 5 лет 9 месяцев
Благодарил (а): 3 раза

Re: Вывод сообщений определенных пользователей

Сообщение Ariqun »

Siava, nissin,
Огромное спасибо! Все получилось!
Мой предыдущий код действительно был рабочий, просто я его писала в файле myphp.php, а результат пыталась получить на главной странице форума /forum/index.php.
Добавила код в index.php и результат появился на странице.
Еще раз огромное спасибо! :P
Ответить

Вернуться в «Поддержка phpBB 3.2.x»