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

Recent Topics

Все моды, созданные нашим сообществом для phpBB 2.0.x, анонсированы тут.
Aqua$erg

Сообщение Aqua$erg »

Итак, возвращаясь к написанному:
Есть возможность (и похоже, необходимость) разбить список тем на 2 колонки - ширина общей таблицы в 2 раза больше, чем нужно, выравнивание по левому краю. Правая половина пустует). Сама проблема вот тут

Скрипт генерирует этот список, просто исходя из условленного количества пунктов. Пропишешь 100 - будет показывать все 100. Сейчас показано 15. Хочу показать 20, но разбить на 2 колонки. Как?

Перечитав все 20 страниц ветки, я понял, что можно это решить, к примеру, создав клон файла recent.php (типа recent2.php). Но что и где там изменить, чтобы он показывал новые сообщения, скажем, не с 1-го по указанное количество, а - как в моём искомом варианте - с 11-го - по 20-е? В первом файле recent.php - всё ясно.Ничего менять не надо, только прописать $cfg_nm_topics = 10;
А во втором файле - чтобы он показывал с 11-го по 20-е сообщение?

P.S. форум - phpBB 2.0.22
Используемый мод - recent_topics_1.0.4
Xpert обещал помочь. Запостил аддон. Но он не работает. На исправление у него пока нет времени. В таком случае, может, подскажете по другому варианту решения проблемы? Можно же вставить в разные колонки разные resent.php (обозвать по-разному...). Но что подправить во втором (типа recent2.php), чтобы он отображал, скажем, 10 свежих тем, начиная с 11-й - с 11-й по 20-ю?
Xpert
phpBB Guru
phpBB Guru
Сообщения: 5484
Стаж: 20 лет 1 месяц
Поблагодарили: 2 раза

Сообщение Xpert »

Aqua$erg
За 2 недели могли бы и проверить, а умеете ли вы вообще моды ставить... Я только что все выполнил по инструкции и у меня все работает.

Добавлено спустя 4 минуты 30 секунд:

Ваш вариант который "по другому" - это вообще не вариант...
У вас нет необходимых прав для просмотра вложений в этом сообщении.
Эксперт - это человек, который избегает мелких ошибок на пути к грандиозному провалу.
Любая более-менее сложная задача имеет несколько простых, изящных, лёгких для понимания неправильных решений
Aqua$erg

Сообщение Aqua$erg »

ОК, вот мои файлы:

recent.php

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

<?php
/***************************************************************************
 *                               recent.php
 *                            -------------------
 *   begin                : Saturday, Mar 05, 2005
 *   copyright            : (C) 2005 Xpert
 *   email                : xpert@phpbbguru.net
 *
 *   $Id: recent.php,v 1.0.4 2005/08/03 20:54:00 xpert Exp $
 *
 *
 ***************************************************************************/

/***************************************************************************
 *
 *   This program is free software; you can redistribute it and/or modify
 *   it under the terms of the GNU General Public License as published by
 *   the Free Software Foundation; either version 2 of the License, or
 *   (at your option) any later version.
 *
 ***************************************************************************/

/* Config section */
$cfg_ignore_forums = '0';         // ids of forums you don't want to display, separated by commas
$cfg_nm_topics = 15;                // number of topics to output
$cfg_max_topic_length = 30; // max topic length, if more, title will be shortened
/* End of config */

define('IN_PHPBB', true);
$phpbb_root_path = './';
include($phpbb_root_path . 'extension.inc');
include($phpbb_root_path . 'common.'.$phpEx);

//
// Let's prevent caching
//
if (!empty($HTTP_SERVER_VARS['SERVER_SOFTWARE']) && strstr($HTTP_SERVER_VARS['SERVER_SOFTWARE'], 'Apache/2'))
{
        header ('Cache-Control: no-cache, pre-check=0, post-check=0');
        $i++;

        if ( $i == ceil($cfg_nm_topics / 2) )
        {
                $template->assign_block_vars('topicrow.column_separator', array());
        }
}
else
{
        header ('Cache-Control: private, pre-check=0, post-check=0, max-age=0');
}
header ('Expires: 0');
header ('Pragma: no-cache');

//
// Define censored word matches
//
$orig_word = array();
$replacement_word = array();
obtain_word_list($orig_word, $replacement_word);

//
// Building URL
//
$server_protocol = ($board_config['cookie_secure']) ? 'https://' : 'http://';
$server_name = preg_replace('#^\/?(.*?)\/?$#', '\1', trim($board_config['server_name']));
$server_port = ($board_config['server_port'] <> 80) ? ':' . trim($board_config['server_port']) : '';
$script_name = preg_replace('#^\/?(.*?)\/?$#', '\1', trim($board_config['script_path']));
$script_name = ($script_name == '') ? $script_name : '/' . $script_name;
$board_path = $server_protocol . $server_name . $server_port . $script_name;
$viewtopic_url = $board_path . '/viewtopic.' . $phpEx;

//
// Session management
// I don't want to log user in, so let's trick
//

$sql = "SELECT * FROM " . USERS_TABLE . " WHERE user_id = ". ANONYMOUS;
if ( !($result = $db->sql_query($sql)) )
{
        message_die(CRITICAL_ERROR, 'Could not obtain anonymous data from user table', '', __LINE__, __FILE__, $sql);
}
$userdata = $db->sql_fetchrow($result);
init_userprefs($userdata);

//
// Load template
//
$template->set_filenames(array(
        'body' => 'recent_body.tpl')
);

// Fetching topics of public forums
$sql = "SELECT t.topic_id, t.topic_title, t.topic_last_post_id
        FROM " . TOPICS_TABLE . " AS t, " . POSTS_TABLE . " AS p, " . FORUMS_TABLE . " AS f
        WHERE t.forum_id = f.forum_id
                AND f.auth_read = " . AUTH_ALL . "
                AND t.forum_id NOT IN(" . $cfg_ignore_forums .")
                AND p.post_id = t.topic_last_post_id
                AND t.topic_moved_id = 0
        ORDER BY p.post_id DESC LIMIT $cfg_nm_topics";

if ( !$result = $db->sql_query($sql) )
{
        message_die(GENERAL_ERROR, "Could not fetch recent topics information.", '', __LINE__, __FILE__, $sql);
}
$i = 0;
while ( $row = $db->sql_fetchrow($result) )
{
        $topic_title = $row['topic_title'];
        if ( count($orig_word) )
        {
                $topic_title = preg_replace($orig_word, $replacement_word, $topic_title);
        }
        $topic_title = ( strlen($topic_title) > $cfg_max_topic_length ) ? substr($topic_title, 0, $cfg_max_topic_length) . '&hellip;' : $topic_title;

        $template->assign_block_vars('topicrow', array(
                'U_TOPIC' => $viewtopic_url . '?' . POST_TOPIC_URL . '=' . $row['topic_id'],
                'TOPIC_TITLE' => str_replace("'", "\'", $topic_title)
        ));
}

//
// Output
//
$template->pparse('body');

?>
recent_body.tpl

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

document.writeln('<table><tr><td valign="top">');
<!-- BEGIN topicrow -->
document.writeln('<a href="{topicrow.U_TOPIC}">{topicrow.TOPIC_TITLE}</a><br />\n');
<!-- BEGIN column_separator -->
document.writeln('</td><td valign="top">');
<!-- END column_separator -->
<!-- END topicrow -->
document.writeln('</table>');
В итоге, выдаёт всё в одну колонку
Аватара пользователя
ramuald
phpBB 1.2.1
Сообщения: 24
Стаж: 17 лет 2 месяца

Сообщение ramuald »

неужели никто не знает? :(
Xpert
phpBB Guru
phpBB Guru
Сообщения: 5484
Стаж: 20 лет 1 месяц
Поблагодарили: 2 раза

Сообщение Xpert »

Почему не выполнили еще одну, последнюю инструкцию и почему файлы не вложением? :evil:
Эксперт - это человек, который избегает мелких ошибок на пути к грандиозному провалу.
Любая более-менее сложная задача имеет несколько простых, изящных, лёгких для понимания неправильных решений
Aqua$erg

Сообщение Aqua$erg »

Последняя инструкция - это

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

#
#-----[ FIND ]------------------------------------------
#
}

#
#-----[ BEFORE, ADD ]------------------------------------------
#
	$i++;
	
	if ( $i == ceil($cfg_nm_topics / 2) )
	{
		$template->assign_block_vars('topicrow.column_separator', array());
	}
Вроде, выполнил...

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

Всё, пардон. Я действительно неправильно ставил аддон. Последнюю инструкцию пихал перед другой закрывающей скобкой :shock: Теперь работает. Спасибо огромное!!!

Добавлено спустя 15 минут 50 секунд:

Только одна проблемка:
в правой колонке всегда на 2 ссылки больше, чем в левой, какое бы общее чётное количество ссылок ни указывалось. Если количество нечётное, то всё равно больше (на 1) - в правой. Как сделать, чтобы чётное количество билось на равные колонки?

P.S. на сей раз пристёгиваю файлы

...не пристегнулись. Позже попробую

Добавлено спустя 2 часа 50 минут 14 секунд:

И, кстати, почему не работает cellspacing в recent_body.tpl применительно к ячейкам? Можно ли в таком случае использовать стили?
Аватара пользователя
ramuald
phpBB 1.2.1
Сообщения: 24
Стаж: 17 лет 2 месяца

Сообщение ramuald »

Господа, ну подскажите плиз, как сгруппировать топики конкретного форума под один заголовок :oops:
полностью, проблема описана здесь
uznaipravdu
phpBB 1.4.3
Сообщения: 81
Стаж: 17 лет 11 месяцев

как это вставить в сам форум?

Сообщение uznaipravdu »

Хотелось бы слелать так-
вот сейсас , когда вы читаете эти строки, слева есть колонка которая практически пустая.
В нее хочу вставить ТЕМЫ ЭТОГО ФОРУМА - который я сейчас читаю.

а в другом форуме будут темы другого форума.
Как бы портал.

Что то не получается
как это реализовать?

Уточняю- вставить колонку в viewtopic.php (или tpl) , содержимое которой будут заголовки сообщений именно этой темы.
Глеб
phpBB 1.0.0
Сообщения: 3
Стаж: 17 лет 1 месяц

Сообщение Глеб »

Ребята помогите плиз. 3 дня уже вожусь с устоновкой этого мода.
Ссылка на мо рэсэнт пхп выглядит так:
http://kinosura2.ho.com.ua/phpBB-2.0.21 ... recent.php
Вставляя код:
<script language='JavaScript' type='text/javascript' src="http://kinosura2.ho.com.ua/phpBB-2.0.21 ... "></script>
Браузер выдает ошибку и ничего не выводит. Где баг?
Заранее спасибо за помощь.
Аватара пользователя
Поручик
Former team member
Сообщения: 3942
Стаж: 18 лет 11 месяцев
Откуда: Оренбург (Южный Урал)
Благодарил (а): 3 раза

Сообщение Поручик »

А это что? :roll: Это я выдрал из сгенерированного кода.

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

 <SCRIPT language="JavaScript">var lgn='kinosura2'</SCRIPT>
</HTML><!-- ><!-- "><!-- --></TEXTAREA></FORM>
</TITLE></COMMENT></A>
</DIV></SPAN></ILAYER></LAYER></IFRAME></NOFRAMES></STYLE></SCRIPT></NOSCRIPT></TABLE></SCRIPT></APPLET></FONT>
<STYLE>
#bn {
  display: block;
}
</STYLE>
<SCRIPT language="JavaScript" src="http://adv.vlasenko.net/adv.js"></SCRIPT>
потому-то Браузер выдает ошибку и ничего не выводит.
Профессионал - тот же дилетант, только знающий, где ошибётся.
Генератор db_update.php для phpBB2 с некоторыми удобствами. Многие моды я беру или ищу здесь, здесь, тут
Все консультации только на форуме, приваты и стук в аську по таким вопросам игнорируются!
FAQ-phpBB3 | Ошибки новичков, или как не поссориться с модератором | Правила конференции

наш форум http://forum.aeroion.ru/cat1.html
Глеб
phpBB 1.0.0
Сообщения: 3
Стаж: 17 лет 1 месяц

Сообщение Глеб »

Дя я тоже увидил эту лажу в сгенеренном коде:( я мод брал с вашего сайта, что там за левый джава скрипт какой-то примазался.
Ну или я чего-то не понимаю, но я только что перезаписал ресент пхп. А все осталось так же:( что делать?
Аватара пользователя
Поручик
Former team member
Сообщения: 3942
Стаж: 18 лет 11 месяцев
Откуда: Оренбург (Южный Урал)
Благодарил (а): 3 раза

Сообщение Поручик »

А что не понятно? Ваш хостер добавляет свою рекламу к каждой генерируемой странице. Сервак, небось, халявный?
Профессионал - тот же дилетант, только знающий, где ошибётся.
Генератор db_update.php для phpBB2 с некоторыми удобствами. Многие моды я беру или ищу здесь, здесь, тут
Все консультации только на форуме, приваты и стук в аську по таким вопросам игнорируются!
FAQ-phpBB3 | Ошибки новичков, или как не поссориться с модератором | Правила конференции

наш форум http://forum.aeroion.ru/cat1.html
Глеб
phpBB 1.0.0
Сообщения: 3
Стаж: 17 лет 1 месяц

Сообщение Глеб »

Да я уже понял:( так что этот мод работать не будет? или можно как-то извернутся?
Xpert
phpBB Guru
phpBB Guru
Сообщения: 5484
Стаж: 20 лет 1 месяц
Поблагодарили: 2 раза

Сообщение Xpert »

На вашем хостинге- не будет...
Эксперт - это человек, который избегает мелких ошибок на пути к грандиозному провалу.
Любая более-менее сложная задача имеет несколько простых, изящных, лёгких для понимания неправильных решений
Аватара пользователя
valteam
phpBB 1.2.0
Сообщения: 17
Стаж: 18 лет 1 месяц
Откуда: Украина

Сообщение valteam »

Xpert и другие умельцы, подскажите пожалста,
у меня мод ресент топикс 1.0.4., знаю, староват, но всё отлично работает,
показывает тему, имя последнего в ней отписавшегося...

подскажите как добавить рядом отображение времени и даты последнего поста ???
так нигде пока объяснения не нашел...
пасиба заранее! :)

Добавлено спустя 3 часа 9 минут 49 секунд:

данке, но сам разобрался... вышло вот как - www.dchurch.com.ua

коды, шаблон и ПХПшка...

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


<!-- BEGIN topicrow -->
document.writeln('<a href="{topicrow.U_LAST_POST}"><img src="forum/templates/subSilver/images/icon_latest_reply.gif" width="18" height="9" border="0" alt="Прочитать последнее сообщение!"/></a> - <a href="{topicrow.U_TOPIC}">{topicrow.TOPIC_TITLE}</a> [ <b>{topicrow.USERNAME}</b> ] {topicrow.POST_TIME} - [{topicrow.TOPIC_REPLIES}]<br />\n');
<!-- END topicrow -->


RECENT.PHP


<?php
/***************************************************************************
 *                               recent.php
 *                            -------------------
 *   begin                : Saturday, Mar 05, 2005
 *   copyright            : (C) 2005 Xpert
 *   email                : xpert@phpbbguru.net
 *
 *   $Id: recent.php,v 1.0.4 2005/08/03 20:54:00 xpert Exp $
 *
 *
 ***************************************************************************/

/***************************************************************************
 *
 *   This program is free software; you can redistribute it and/or modify
 *   it under the terms of the GNU General Public License as published by
 *   the Free Software Foundation; either version 2 of the License, or
 *   (at your option) any later version.
 *
 ***************************************************************************/

/* Config section */
$cfg_ignore_forums = '0'; 	// ids of forums you don't want to display, separated by commas
$cfg_nm_topics = 20;		// number of topics to output
$cfg_max_topic_length = 30; // max topic length, if more, title will be shortened
/* End of config */

define('IN_PHPBB', true);
$phpbb_root_path = './';
include($phpbb_root_path . 'extension.inc');
include($phpbb_root_path . 'common.'.$phpEx);

//
// Let's prevent caching
//
if (!empty($HTTP_SERVER_VARS['SERVER_SOFTWARE']) && strstr($HTTP_SERVER_VARS['SERVER_SOFTWARE'], 'Apache/2'))
{
	header ('Cache-Control: no-cache, pre-check=0, post-check=0');
}
else
{
	header ('Cache-Control: private, pre-check=0, post-check=0, max-age=0');
}
header ('Expires: 0');
header ('Pragma: no-cache');

//
// Define censored word matches
//
$orig_word = array();
$replacement_word = array();
obtain_word_list($orig_word, $replacement_word);

//
// Building URL
//
$server_protocol = ($board_config['cookie_secure']) ? 'https://' : 'http://';
$server_name = preg_replace('#^\/?(.*?)\/?$#', '\1', trim($board_config['server_name']));
$server_port = ($board_config['server_port'] <> 80) ? ':' . trim($board_config['server_port']) : '';
$script_name = preg_replace('#^\/?(.*?)\/?$#', '\1', trim($board_config['script_path']));
$script_name = ($script_name == '') ? $script_name : '/' . $script_name;
$board_path = $server_protocol . $server_name . $server_port . $script_name;
$viewtopic_url = $board_path . '/viewtopic.' . $phpEx;

//
// Session management
// I don't want to log user in, so let's trick
//

$sql = "SELECT * FROM " . USERS_TABLE . " WHERE user_id = ". ANONYMOUS;
if ( !($result = $db->sql_query($sql)) )
{
	message_die(CRITICAL_ERROR, 'Could not obtain anonymous data from user table', '', __LINE__, __FILE__, $sql);
}
$userdata = $db->sql_fetchrow($result);
init_userprefs($userdata);

//
// Load template
//
$template->set_filenames(array(
	'body' => 'recent_body.tpl')
);

// Fetching topics of public forums
$sql = "SELECT t.topic_id, t.topic_title, t.topic_last_post_id, t.topic_replies, p.poster_id, p.post_time, u.user_id, u.username
	FROM " . TOPICS_TABLE . " AS t, " . POSTS_TABLE . " AS p, " . FORUMS_TABLE . " AS f, " . USERS_TABLE . " AS u
	WHERE t.forum_id = f.forum_id
		AND f.auth_read = " . AUTH_ALL . "
		AND t.forum_id NOT IN(" . $cfg_ignore_forums .")
		AND p.post_id = t.topic_last_post_id
		AND t.topic_moved_id = 0
		AND u.user_id = p.poster_id 
        AND u.username = u.username 
	ORDER BY p.post_id DESC LIMIT $cfg_nm_topics";

if ( !$result = $db->sql_query($sql) )
{
	message_die(GENERAL_ERROR, "Could not fetch recent topics information.", '', __LINE__, __FILE__, $sql);
}

while ( $row = $db->sql_fetchrow($result) )
{
	$topic_title = $row['topic_title'];
	if ( count($orig_word) )
	{
		$topic_title = preg_replace($orig_word, $replacement_word, $topic_title);
	}
	$topic_title = ( strlen($topic_title) > $cfg_max_topic_length ) ? substr($topic_title, 0, $cfg_max_topic_length) . '…' : $topic_title;
      $topic_replies = ( $row['topic_replies'] > 0) ? ' ' . $row['topic_replies'] . ' ': '';
		$post_time = create_date($lang['DATE_FORMAT'] . '<b> h:s</b>', $row['post_time'], $board_config['board_timezone']);

	$template->assign_block_vars('topicrow', array(
            'TOPIC_REPLIES' => $topic_replies,
		'POST_TIME' => $post_time,
		'BOARD_PATH' => $board_path, 
		'U_LAST_POST' => $viewtopic_url . '?' . POST_POST_URL . '=' . $row['topic_last_post_id'] . '#' . $row['topic_last_post_id'],
		'USERNAME' => $row['username'],
		'U_TOPIC' => $viewtopic_url . '?' . POST_TOPIC_URL . '=' . $row['topic_id'],
		'TOPIC_TITLE' => str_replace("'", "\'", $topic_title)
	));
}

//
// Output
//
$template->pparse('body');

?>






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