Уважаемые пользователи!
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
Vadyus
phpBB 1.0.0
Сообщения: 5
Стаж: 18 лет 3 месяца

Количество тем/сообщений и последняя тема..

Сообщение Vadyus »

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

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

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

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

ВСЕ ПРАВА НА МОДЫ ОТДАНЫ m157y
Vadyus
phpBB 1.0.0
Сообщения: 5
Стаж: 18 лет 3 месяца

Сообщение Vadyus »

Хммм :). Это phpBB2 + TorrentPier, не могу сказать точно, что за мод подфорумов они в дистрибудтив положили...
Vadyus
phpBB 1.0.0
Сообщения: 5
Стаж: 18 лет 3 месяца

Сообщение Vadyus »

[R: R@m$e$ :U] писал(а):а мод подфорумов, какой?
Categories Hierarchy (sub-forums)
Аватара пользователя
[R: R@m$e$ :U]
phpBB Maniac
Сообщения: 1464
Стаж: 19 лет 3 месяца
Откуда: Novosibirsk,RU

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

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

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

ВСЕ ПРАВА НА МОДЫ ОТДАНЫ m157y
Аватара пользователя
DiMk@™
phpBB 1.2.1
Сообщения: 22
Стаж: 19 лет 6 месяцев
Откуда: KiEv

Сообщение DiMk@™ »

Vadyus писал(а):Хммм :). Это phpBB2 + TorrentPier, не могу сказать точно, что за мод подфорумов они в дистрибудтив положили...
открываем index.php
serch

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

// End session management
//
после добавляем

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

function CalcTopicAndPostsCount($forum_id)
{
 global $db;
 global $msgCount;
 global $topicCount;
 global $last_post_time;
 global $forum_data;
// $sql='select * from phpbb_forums where forum_id='.$forum_id;

 $sql = 'SELECT f.*, p.post_time, p.post_username, u.username, u.user_id, 
         t.topic_id AS last_topic_id, t.topic_title AS last_topic_title
  	 FROM '. FORUMS_TABLE .' f LEFT JOIN '. POSTS_TABLE .' p ON 
         p.post_id = f.forum_last_post_id
   	 LEFT JOIN '. USERS_TABLE .' u ON u.user_id = p.poster_id
  	 LEFT JOIN '. TOPICS_TABLE ." t ON t.topic_last_post_id = f.forum_last_post_id
 	 WHERE f.forum_id = $forum_id ORDER BY f.cat_id, f.forum_order"; 

 if (!$result = $db->sql_query($sql))
 {
  message_die(GENERAL_ERROR, 'Could not obtain segments information', '', __LINE__, __FILE__, $sql);
 }
 if($row = $db->sql_fetchrow($result))
 {
   $msgCount = $msgCount + $row['forum_posts'];
   $topicCount = $topicCount + $row['forum_topics']; 
   if($row['forum_last_post_id'])
   {
     if ((!$last_post_time)||($last_post_time<$row['post_time']))
     {
       $last_post_time=$row['post_time'];
       $forum_data['forum_last_post_id'] = $row['forum_last_post_id'];
       $forum_data['last_topic_id']=$row['last_topic_id'];
       $forum_data['last_topic_title']=$row['last_topic_title'];
       $forum_data['post_time']=$row['post_time'];
       $forum_data['user_id']=$row['user_id'];   
       $forum_data['username']=$row['username'];
     }
   }
 }
 $sql='select * from phpbb_forums where forum_parent='.$forum_id;
 if (!$result = $db->sql_query($sql))
 {
  message_die(GENERAL_ERROR, 'Could not obtain segments information', '', __LINE__, __FILE__, $sql);
 }
 while($row = $db->sql_fetchrow($result))
 { 
  CalcTopicAndPostsCount($row['forum_id']);
 }
}
serch

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

$posts = $forum_data['forum_posts'];
$topics = $forum_data['forum_topics'];
заменяем

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

//			$posts = $forum_data['forum_posts'];
//			$topics = $forum_data['forum_topics'];
                        $msgCount=0; 
                        $topicCount=0; 
			$last_post_time=0; 
			CalcTopicAndPostsCount($forum_data['forum_id']);
			$posts = $msgCount;
			$topics = $topicCount;
serch

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

'POSTS' => $forum_data['forum_posts'],
'TOPICS' => $forum_data['forum_topics'],
заменяем

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

//				'POSTS' => $forum_data['forum_posts'],
//				'TOPICS' => $forum_data['forum_topics'],

				'POSTS' => $posts,
				'TOPICS' => $topics,
открываем viewforum.php
serch

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

define('LAST_TOPIC_MAX_LEN', 40);
после добавляем

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

function CalcTopicAndPostsCount($forum_id)
{
 global $db;
 global $msgCount;
 global $topicCount;
 global $last_post_time;
 global $forum_data;
// $sql='select * from phpbb_forums where forum_id='.$forum_id;

 $sql = 'SELECT f.*, p.post_time, p.post_username, u.username, u.user_id, 
         t.topic_id AS last_topic_id, t.topic_title AS last_topic_title
  	 FROM '. FORUMS_TABLE .' f LEFT JOIN '. POSTS_TABLE .' p ON 
         p.post_id = f.forum_last_post_id
   	 LEFT JOIN '. USERS_TABLE .' u ON u.user_id = p.poster_id
  	 LEFT JOIN '. TOPICS_TABLE ." t ON t.topic_last_post_id = f.forum_last_post_id
 	 WHERE f.forum_id = $forum_id ORDER BY f.cat_id, f.forum_order"; 

 if (!$result = $db->sql_query($sql))
 {
  message_die(GENERAL_ERROR, 'Could not obtain segments information', '', __LINE__, __FILE__, $sql);
 }
 if($row = $db->sql_fetchrow($result))
 {
   $msgCount = $msgCount + $row['forum_posts'];
   $topicCount = $topicCount + $row['forum_topics']; 
   if($row['forum_last_post_id'])
   {
     if ((!$last_post_time)||($last_post_time<$row['post_time']))
     {
       $last_post_time=$row['post_time'];
       $forum_data['forum_last_post_id'] = $row['forum_last_post_id'];
       $forum_data['last_topic_id']=$row['last_topic_id'];
       $forum_data['last_topic_title']=$row['last_topic_title'];
       $forum_data['post_time']=$row['post_time'];
       $forum_data['user_id']=$row['user_id'];   
       $forum_data['username']=$row['username'];
     }
   }
 }
 $sql='select * from phpbb_forums where forum_parent='.$forum_id;
 if (!$result = $db->sql_query($sql))
 {
  message_die(GENERAL_ERROR, 'Could not obtain segments information', '', __LINE__, __FILE__, $sql);
 }
 while($row = $db->sql_fetchrow($result))
 { 
  CalcTopicAndPostsCount($row['forum_id']);
 }
}
serch

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

	if ($forum_data['forum_last_post_id'])
			{
				$last_post_time = create_date($board_config['default_dateformat'], $forum_data['post_time'], $board_config['board_timezone']);

				$last_post = $last_post_time . '<br />';

				$last_post .= ($forum_data['user_id'] == ANONYMOUS) ? (($forum_data['post_username']) ? $forum_data['post_username'] .' ' : $lang['Guest'] .' ' ) : '<a href="'. append_sid("profile.$phpEx?mode=viewprofile&". POST_USERS_URL .'='. $forum_data['user_id']) .'">'. $forum_data['username'] .'</a> ';

				$last_post .= '<a href="'. append_sid("viewtopic.$phpEx?". POST_POST_URL .'='. $forum_data['forum_last_post_id']) .'#'. $forum_data['forum_last_post_id'] .'"><img src="'. $images['icon_latest_reply'] .'" border="0" width="18" height="9" alt="'. $lang['View_latest_post'] .'" title="'. $lang['View_latest_post'] .'" /></a>';
			}
перед ентим добавляем

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

 $msgCount=0; 
                        $topicCount=0; 
			$last_post_time=0; 
			CalcTopicAndPostsCount($forum_data['forum_id']);
			$posts = $msgCount;
			$topics = $topicCount;
serch

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

'POSTS' => $forum_data['forum_posts'],
				'TOPICS' => $forum_data['forum_topics'],
меняем на

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

//				'POSTS' => $forum_data['forum_posts'],
//				'TOPICS' => $forum_data['forum_topics'],

				'POSTS' => $posts,
				'TOPICS' => $topics,
усё
☠☠☠
[GetTrackerUA-IX]
Аватара пользователя
Fox Mulder
phpBB 1.2.1
Сообщения: 28
Стаж: 17 лет 9 месяцев

Сообщение Fox Mulder »

Господа, проследовал вышеизложенной инструкции. Все работает! Но иконка (та что самая крайняя левая) о новом сообщении не загорается напротив форума в котором находится подфорум) + не появляется желтая или оранжевая стрелочка со страничкой в самом правом столбце типа что в теме появилось новое сообщение.... Это как-то фикситься?

п.с. Появляется на главной только возле подфорума
The Truth is Out There
Lektor
phpBB 2.0.7
Сообщения: 574
Стаж: 18 лет

Сообщение Lektor »

Хоть тема и старая, но проблема актуальная. И имеет гораздо "красивое" решение, чем то, которое в теме :lol:

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

#
#-----[ OPEN ] ----------
#
index.php
#
#-----[ FIND ] ----------
#
{catrow.forumrow.TOPICS}
#
#-----[ REPLACE WITH ] ----------
#
{catrow.forumrow.TOTAL_TOPICS}
#
#-----[ FIND ] ----------
#
{catrow.forumrow.POSTS}
#
#-----[ REPLACE WITH ] ----------
#
{catrow.forumrow.TOTAL_POSTS}
Вот и все....
ЗЫ В тему пришел по линку из другого форума :)
r2droid
phpBB 1.0.0
Сообщения: 1
Стаж: 16 лет 6 месяцев

Сообщение r2droid »

Тема по-прежнему актуальна :(

Предложенный DiMk@™ код считает и показывает на главной количество тем в подфорумах, показывает на главной последнее новое сообщение из подфорумов, но действительно остается эта досадная неприятность - не загораются большие иконки новых сообщений, если посты размещены в подфорумах :cry:
Пожалуйста, проверьте код кто умеет.

Пост Lektor не годится: никаких {catrow.forumrow.TOPICS} нигде нет.
Аватара пользователя
Kontrochka
phpBB 1.4.3
Сообщения: 83
Стаж: 16 лет 5 месяцев
Откуда: Вильнюс

Re: Количество тем/сообщений и последняя тема..

Сообщение Kontrochka »

Тема старенькая, но все начинающие с ней сталкиваются, ответ об иконках оставила в Теме

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