Уважаемые пользователи!
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

Форум для авторов модов для phpBB 2.0.x.
Аватара пользователя
Сергей Секирин
phpBB 2.0.0
Сообщения: 244
Стаж: 19 лет 2 месяца

Помогите интегрировать мод в phpBB

Сообщение Сергей Секирин »

Братия, прошу помочь кто может. Вот следующим кодом я добываю из одного форума последние темы:

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

$sql = "SELECT t.*, f.forum_id, f.forum_name, u.username AS first_poster, u.user_id AS first_poster_id, u2.username AS last_poster, u2.user_id AS last_poster_id, p.post_username AS first_poster_name, p2.post_username AS last_poster_name, p2.post_time
	FROM ". $table_prefix ."topics t, ". $table_prefix ."forums f, ". $table_prefix ."users u, ". $table_prefix ."posts p, ". $table_prefix ."posts p2, ". $table_prefix ."users u2
	WHERE $where_forums t.topic_poster = u.user_id AND f.forum_id = t.forum_id AND p.post_id = t.topic_first_post_id AND p2.post_id = t.topic_last_post_id AND u2.user_id = p2.poster_id
	ORDER BY t.topic_first_post_id DESC LIMIT $topic_limit";
$result = mysql_query($sql);
if( !$result )
{
	die('SQL Statement Error: '. mysql_error());
	exit();
}

$line = array();
while( $row = mysql_fetch_array($result) )
{
	$line[] = $row;
}

for( $i = 0; $i < count($line); $i++ )
{
	$forum_id = $line[$i]['forum_id'];
	$forum_url = $root_path .'viewforum.php?s='. $forum_id;
	$topic_id = $line[$i]['topic_id'];
	$topic_url = $root_path .'viewtopic.php?t='. $topic_id;

	$topic_title = ( strlen($line[$i]['topic_title']) < $topic_length ) ? $line[$i]['topic_title'] : substr(stripslashes($line[$i]['topic_title']), 0, $topic_length) .'...';

	$topic_type =  ( $line[$i]['topic_type'] == '2' ) ? '': '';
	$topic_type .= ( $line[$i]['topic_type'] == '3' ) ? '': '';
	$topic_type .= ( $line[$i]['topic_type'] == '1' ) ? '': '';
	$topic_type .= ( $line[$i]['topic_vote'] ) ? '': '';

	$views = $line[$i]['topic_views'];
	$replies = $line[$i]['topic_replies'];

	$first_time = date('d.m.y', $line[$i]['topic_time']);
	$first_author = ( $line[$i]['first_poster_id'] != '-1' ) ? '<a href="'. $root_path .'profile.php?mode=viewprofile&u='. $line[$i]['first_poster_id'] .'" class="genmed">'. $line[$i]['first_poster'] .'</a>' : ( ($line[$i]['first_poster_name'] != '' ) ? $line[$i]['first_poster_name'] : 'guest' );
	$last_time = date('d.m.y', $line[$i]['post_time']);
	$last_author = ( $line[$i]['last_poster_id'] != '-1' ) ? $line[$i]['last_poster'] : ( ($line[$i]['last_poster_name'] != '' ) ? $line[$i]['last_poster_name'] : 'guest' );
	$last_url = '<a href="'. $root_path .'viewtopic.php?p='. $line[$i]['topic_last_post_id'] .'#'. $line[$i]['topic_last_post_id'] .'" class="genmed">'. $last_author .'</a>';
Добыть то я их добыл, но не знаю - можно ли их вывести на index другого форма не банальным способом вставки include(...) скрипта, игнорируя посредничество шаблона

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

	echo '<tr> 
<td valign="top" nowrap="nowrap" width="23" class="gen">&nbsp;</td>
<td valign="top" width="100%"><span class="idate">&nbsp;'. $first_time .'&nbsp;</span><a href="'. $topic_url .'" class="genmed">&nbsp;'. $topic_title .'</a><span class="genmed">&nbsp;&nbsp;</span><a href="'. $forum_url .'" class="gen">'. $line[$i]['forum_name'] .'</a></td>
</tr>';
, а сделать доступными переменные инклудируемого скрипта в скрипте index.php и передать их в шаблон, где всё и расположить так, как хочется, в уголке :-) Если кто подскажет - буду очень благодарен.
Апология здравомыслия - странное занятие Православия:-)
Аватара пользователя
[R: R@m$e$ :U]
phpBB Maniac
Сообщения: 1464
Стаж: 19 лет 3 месяца
Откуда: Novosibirsk,RU

Сообщение [R: R@m$e$ :U] »

честно сказать, не очень понял, что надо получить? =) почему бы не вывести данные переменные в виде чего-нить подобного...

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

echo $first_time . ' #|#|# ' . $topic_url . ' #|#|# ' . $topic_title .  ' #|#|# ' . $forum_url . ' #|#|# ' . $line[$i]['forum_name'] . '|#|#|';
и дальше используя explode разбирать в любом другом скрипте =)...
Руководство пользователя | FAQ | Правила | Как устанавливать MOD'ы
ВОСПОЛЬЗУЙСЯ ПОИСКОМ, ТАМ ЕСТЬ БОЛЬШИНСТВО ОТВЕТОВ
ЕСЛИ НЕ ПОМОГЛО, ИСПОЛЬЗУЙ ШАБЛОН ЗАПРОСА, ПОМОГИ В РЕШЕНИИ ЗАДАЧИ
БЕСПЛАТНО ПОМОГУ ТОЛЬКО НА ФОРУМЕ!!! (ЛС НЕ В СЧЕТ)

Оставь благодарность, подтверди работоспособность совета.

ВСЕ ПРАВА НА МОДЫ ОТДАНЫ m157y
Аватара пользователя
Сергей Секирин
phpBB 2.0.0
Сообщения: 244
Стаж: 19 лет 2 месяца

Сообщение Сергей Секирин »

Привет,
Да если бы я понимал, о чём ты говоришь. Это копия мода, скрипт которого ложится в корень phpBB, а затем инклудируется куда-нибцдь не в форум, а в любую часть сайта (вторая часть кода - как раз распечатка таблички последних тем). Я так сделал - можешь сходить посмотреть - верхние темы на моём индексе - из другого форума. Но так неудобно, что я их не могу вставить куда-нибудь сбоку страницы - сам понимаешь, что инклудируется то скрипт минуя шаблон.

Вот у меня задача - как из одного phpBB поместить последние темы в другой phpBB - на индекс, причём через шаблон index_body, чтобы можно было по желанию менять положение на странице, например, дизайн - всё уже через шаблон. Как сделать переменные из другого phpBB для шаблона индекса???

Кстати твои fingers'ы впечатляют :-) Только грузятся картинки долго. Неужели это всё из phpBB?
Апология здравомыслия - странное занятие Православия:-)
Аватара пользователя
[R: R@m$e$ :U]
phpBB Maniac
Сообщения: 1464
Стаж: 19 лет 3 месяца
Откуда: Novosibirsk,RU

Сообщение [R: R@m$e$ :U] »

прив... =)
а вариант как выводить изменить можно?
Руководство пользователя | FAQ | Правила | Как устанавливать MOD'ы
ВОСПОЛЬЗУЙСЯ ПОИСКОМ, ТАМ ЕСТЬ БОЛЬШИНСТВО ОТВЕТОВ
ЕСЛИ НЕ ПОМОГЛО, ИСПОЛЬЗУЙ ШАБЛОН ЗАПРОСА, ПОМОГИ В РЕШЕНИИ ЗАДАЧИ
БЕСПЛАТНО ПОМОГУ ТОЛЬКО НА ФОРУМЕ!!! (ЛС НЕ В СЧЕТ)

Оставь благодарность, подтверди работоспособность совета.

ВСЕ ПРАВА НА МОДЫ ОТДАНЫ m157y
Йыс
phpBB 1.4.0
Сообщения: 34
Стаж: 18 лет 9 месяцев

Сообщение Йыс »

Вот мне хотелось бы получить кусок кода, выводящий определённое количество новых тем, причём более новых, чем игнорированные для вывода.
Аватара пользователя
Сергей Секирин
phpBB 2.0.0
Сообщения: 244
Стаж: 19 лет 2 месяца

Сообщение Сергей Секирин »

[R: R@m$e$ :U] писал(а):прив... =)
а вариант как выводить изменить можно?
Не понял?
Апология здравомыслия - странное занятие Православия:-)
Аватара пользователя
[R: R@m$e$ :U]
phpBB Maniac
Сообщения: 1464
Стаж: 19 лет 3 месяца
Откуда: Novosibirsk,RU

Сообщение [R: R@m$e$ :U] »

Сергей Секирин
=) я имел ввиду

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

   echo '<tr> 
<td valign="top" nowrap="nowrap" width="23" class="gen">&nbsp;</td> 
<td valign="top" width="100%"><span class="idate">&nbsp;'. $first_time .'&nbsp;</span><a href="'. $topic_url .'" class="genmed">&nbsp;'. $topic_title .'</a><span class="genmed">&nbsp;&nbsp;</span><a href="'. $forum_url .'" class="gen">'. $line[$i]['forum_name'] .'</a></td> 
</tr>';
изменить на чего-нить другое можно? =)
Руководство пользователя | FAQ | Правила | Как устанавливать MOD'ы
ВОСПОЛЬЗУЙСЯ ПОИСКОМ, ТАМ ЕСТЬ БОЛЬШИНСТВО ОТВЕТОВ
ЕСЛИ НЕ ПОМОГЛО, ИСПОЛЬЗУЙ ШАБЛОН ЗАПРОСА, ПОМОГИ В РЕШЕНИИ ЗАДАЧИ
БЕСПЛАТНО ПОМОГУ ТОЛЬКО НА ФОРУМЕ!!! (ЛС НЕ В СЧЕТ)

Оставь благодарность, подтверди работоспособность совета.

ВСЕ ПРАВА НА МОДЫ ОТДАНЫ m157y
Аватара пользователя
Сергей Секирин
phpBB 2.0.0
Сообщения: 244
Стаж: 19 лет 2 месяца

Сообщение Сергей Секирин »

Да нет - это я вполне могу и сам изменить: добватить переменную или рестилизовать.

Мне же нужно знать - можно ли в одном форуме сделать данные из другого форума доступными как обычные переменные, которые через шаблон передаются и там ими можно пользоваться - в смысле ставить и стилизовать как хочешь???
Апология здравомыслия - странное занятие Православия:-)
Аватара пользователя
[R: R@m$e$ :U]
phpBB Maniac
Сообщения: 1464
Стаж: 19 лет 3 месяца
Откуда: Novosibirsk,RU

Сообщение [R: R@m$e$ :U] »

можно попробовать вывести как я предложил в первом посте и разобрать при помощи explode на массив... =) а его можно переделать как угодно =) и вывести в шаблон как обычные пхпббшные переменные =)
Руководство пользователя | FAQ | Правила | Как устанавливать MOD'ы
ВОСПОЛЬЗУЙСЯ ПОИСКОМ, ТАМ ЕСТЬ БОЛЬШИНСТВО ОТВЕТОВ
ЕСЛИ НЕ ПОМОГЛО, ИСПОЛЬЗУЙ ШАБЛОН ЗАПРОСА, ПОМОГИ В РЕШЕНИИ ЗАДАЧИ
БЕСПЛАТНО ПОМОГУ ТОЛЬКО НА ФОРУМЕ!!! (ЛС НЕ В СЧЕТ)

Оставь благодарность, подтверди работоспособность совета.

ВСЕ ПРАВА НА МОДЫ ОТДАНЫ m157y
Аватара пользователя
Сергей Секирин
phpBB 2.0.0
Сообщения: 244
Стаж: 19 лет 2 месяца

Сообщение Сергей Секирин »

Ок, спасибо. Придётся, видно, что-то читать, т.к. для меня explode значит чуть-чуть меньше, чем "не знаю". :D
Апология здравомыслия - странное занятие Православия:-)
Аватара пользователя
[R: R@m$e$ :U]
phpBB Maniac
Сообщения: 1464
Стаж: 19 лет 3 месяца
Откуда: Novosibirsk,RU

Сообщение [R: R@m$e$ :U] »

хотя так делать нельзя... =) и надо было отправить на php.com или phpclub.ru, я все же напишу тут выписку из книжки =)
array explode (string separator, string tr [,int limit])
Эта функция является антонимом функции implode - она производит разделение строки в массив. Функция возвращает массив из строк, каждая из которых соответствует фрагменту исходной строки str, находящемуся между разделителями, определяемыми аргументом separator.
Необязательный параметр limit определяет максимальное количество элементов в массиве. Оставшаяся (неразделенная) часть будет содержаться в последнем элементе. В листенге приведен скрипт с функцией explode.

Листинг:

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

<?
$str = "Имя, Фамилия, e-mail";
$exp_str = explode(",", $str);
print_r ($exp_str);
?>
Результат:

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

Array
 (
  [0] => Имя
  [1] => Фамилия
  [2] => e-mail
 )
Руководство пользователя | FAQ | Правила | Как устанавливать MOD'ы
ВОСПОЛЬЗУЙСЯ ПОИСКОМ, ТАМ ЕСТЬ БОЛЬШИНСТВО ОТВЕТОВ
ЕСЛИ НЕ ПОМОГЛО, ИСПОЛЬЗУЙ ШАБЛОН ЗАПРОСА, ПОМОГИ В РЕШЕНИИ ЗАДАЧИ
БЕСПЛАТНО ПОМОГУ ТОЛЬКО НА ФОРУМЕ!!! (ЛС НЕ В СЧЕТ)

Оставь благодарность, подтверди работоспособность совета.

ВСЕ ПРАВА НА МОДЫ ОТДАНЫ m157y
Аватара пользователя
Сергей Секирин
phpBB 2.0.0
Сообщения: 244
Стаж: 19 лет 2 месяца

Сообщение Сергей Секирин »

Ок, спасибо! Буду учиться :-)
Апология здравомыслия - странное занятие Православия:-)
Аватара пользователя
[R: R@m$e$ :U]
phpBB Maniac
Сообщения: 1464
Стаж: 19 лет 3 месяца
Откуда: Novosibirsk,RU

Сообщение [R: R@m$e$ :U] »

для этого кода...

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

   echo '<tr> 
<td valign="top" nowrap="nowrap" width="23" class="gen">&nbsp;</td> 
<td valign="top" width="100%"><span class="idate">&nbsp;'. $first_time .'&nbsp;</span><a href="'. $topic_url .'" class="genmed">&nbsp;'. $topic_title .'</a><span class="genmed">&nbsp;&nbsp;</span><a href="'. $forum_url .'" class="gen">'. $line[$i]['forum_name'] .'</a></td> 
</tr>';
можно так...

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

$updates = explode('</tr>', str_replace('<tr> 
<td valign="top" nowrap="nowrap" width="23" class="gen">&nbsp;</td> 
<td valign="top" width="100%">, '', str_replace('</td>', '', $temp);
предпологается что данный код лежит в переменной $temp...
подход может и не лучший =) но это мы каждую строку засооваем в переменные вроде $updates[0]... то есть...

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

$updates[0] = '<span class="idate">&nbsp;'. $first_time .'&nbsp;</span><a href="'. $topic_url .'" class="genmed">&nbsp;'. $topic_title .'</a><span class="genmed">&nbsp;&nbsp;</span><a href="'. $forum_url .'" class="gen">'. $line[$i]['forum_name'] .'</a>';
можно аналогично разобрать и дальше... а можно и разобрать иначе =)
Руководство пользователя | FAQ | Правила | Как устанавливать MOD'ы
ВОСПОЛЬЗУЙСЯ ПОИСКОМ, ТАМ ЕСТЬ БОЛЬШИНСТВО ОТВЕТОВ
ЕСЛИ НЕ ПОМОГЛО, ИСПОЛЬЗУЙ ШАБЛОН ЗАПРОСА, ПОМОГИ В РЕШЕНИИ ЗАДАЧИ
БЕСПЛАТНО ПОМОГУ ТОЛЬКО НА ФОРУМЕ!!! (ЛС НЕ В СЧЕТ)

Оставь благодарность, подтверди работоспособность совета.

ВСЕ ПРАВА НА МОДЫ ОТДАНЫ m157y

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