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

Last Forum Topic On Index

Все моды, созданные нашим сообществом для phpBB 2.0.x, анонсированы тут.
muromez
phpBB 1.2.0
Сообщения: 15
Стаж: 17 лет 7 месяцев

Сообщение muromez »

Xpert прикольно! Работает! Полный респект! А листочек кстати остался! Но это не мешает!
Преогромнейшее спасибо! :D
Аватара пользователя
Dr.Death
phpBB 1.4.4
Сообщения: 113
Стаж: 17 лет 9 месяцев

Сообщение Dr.Death »

Ребят а как добавить чтоб в конце названия темы выводилось количество сообщений в теме?
Тема (кол-во)
Iftin
phpBB 2.0.7
Сообщения: 573
Стаж: 17 лет 4 месяца
Откуда: Moscow

Сообщение Iftin »

не подскажите как сделать, чтобы и ники тоже были подсвечены и вели на его профиль... вот как на этом форуме сделано... с вашим модом. http://forum.vvvas.ru/
Аватара пользователя
Romiyo
Неадекватен
Сообщения: 603
Стаж: 17 лет 9 месяцев
Откуда: tln.ee

Сообщение Romiyo »

Iftin

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

#
#-----[ OPEN ]------------------------------------------------
#
index.php

#
#-----[ FIND ]-----------------------------------------
#
		$last_post .= ( $forum_data[$j]['user_id'] == ANONYMOUS ) ? ( ($forum_data[$j]['post_username'] != '' ) ? $forum_data[$j]['post_username'] : $lang['Guest']) : $forum_data[$j]['username'];

#
#-----[ REPLACE WITH ]---------------------------------
#

		$last_post .= ( $forum_data[$j]['user_id'] == ANONYMOUS ) ? ( ($forum_data[$j]['post_username'] != '' ) ? $forum_data[$j]['post_username'] . ' ' : $lang['Guest'] . ' ' ) : '<a href="' . append_sid("profile.$phpEx?mode=viewprofile&" . POST_USERS_URL . '='  . $forum_data[$j]['user_id']) . '">' . $forum_data[$j]['username'] . '</a> ';
Неадекватен
Iftin
phpBB 2.0.7
Сообщения: 573
Стаж: 17 лет 4 месяца
Откуда: Moscow

Сообщение Iftin »

Romiyo
спасибо большое :)
Аватара пользователя
automan
phpBB 2.0.1
Сообщения: 252
Стаж: 17 лет 5 месяцев
Благодарил (а): 2 раза

Сообщение automan »

подскажите плиз
как сделать чтоб было:


назваие темы Изображение
дата темы
ник (на котрый кликнуть можно как показали выше)

именно в таком порядке, получается три строчки
спасибо
Аватара пользователя
VVVas
Former team member
Сообщения: 4463
Стаж: 17 лет 10 месяцев
Поблагодарили: 1 раз

Сообщение VVVas »

automan
Открываете index.php, тот кусок, который правили при установке мода и меняете так как вам надо.

Вам примерно надо:

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

	$max_topic_length = 30;

	if ( $forum_data[$j]['forum_last_post_id'] )
	{
		$forum_data[$j]['topic_title'] = (strlen($forum_data[$j]['topic_title']) > $max_topic_length) ? substr($forum_data[$j]['topic_title'], 0, $max_topic_length) . '&hellip;' : $forum_data[$j]['topic_title'];	

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

		$last_post = '<a href="' . append_sid("viewtopic.$phpEx?"  . POST_TOPIC_URL . '=' . $forum_data[$j]['topic_id']) . '">' . $forum_data[$j]['topic_title'] . '</a>';

		$last_post .= '&nbsp;<a href="' . append_sid("viewtopic.$phpEx?"  . POST_POST_URL . '=' . $forum_data[$j]['forum_last_post_id']) . '#' . $forum_data[$j]['forum_last_post_id'] . '"><img src="' . $images['icon_latest_reply'] . '" border="0" alt="' . $lang['View_latest_post'] . '" title="' . $lang['View_latest_post'] . '" /></a><br />';

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

		$last_post .= ( $forum_data[$j]['user_id'] == ANONYMOUS ) ? ( ($forum_data[$j]['post_username'] != '' ) ? $forum_data[$j]['post_username'] : $lang['Guest']) : $forum_data[$j]['username'];
	}
Ну и ссылку на профиль так как написал выше Romiyo.
я люблю daft punk | новый sugoi.ru
Аватара пользователя
automan
phpBB 2.0.1
Сообщения: 252
Стаж: 17 лет 5 месяцев
Благодарил (а): 2 раза

Сообщение automan »

VVVas, большое тебе спасибо :)



еще маленький вопросик получается что картинка Изображение не меняется на Изображение
можно ли как то это исправить, или это сложно? :)
Аватара пользователя
VVVas
Former team member
Сообщения: 4463
Стаж: 17 лет 10 месяцев
Поблагодарили: 1 раз

Сообщение VVVas »

По идее должна меняться, пока не могу сообразить в чем проблема.
я люблю daft punk | новый sugoi.ru
Nome
phpBB 1.4.2
Сообщения: 65
Стаж: 17 лет 8 месяцев

Сообщение Nome »

там довольно приличный кусок кода из viewforum.php

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

/////////////
		if( $topic_rowset[$i]['topic_status'] == TOPIC_MOVED )
		{
			$topic_type = $lang['Topic_Moved'] . ' ';
			$topic_id = $topic_rowset[$i]['topic_moved_id'];

			$folder_image =  $images['folder'];
			$folder_alt = $lang['Topics_Moved'];
			$newest_post_img = '';
		}
		else
		{
			if( $topic_rowset[$i]['topic_type'] == POST_ANNOUNCE )
			{
				$folder = $images['folder_announce'];
				$folder_new = $images['folder_announce_new'];
			}
			else if( $topic_rowset[$i]['topic_type'] == POST_STICKY )
			{
				$folder = $images['folder_sticky'];
				$folder_new = $images['folder_sticky_new'];
			}
			else if( $topic_rowset[$i]['topic_status'] == TOPIC_LOCKED )
			{
				$folder = $images['folder_locked'];
				$folder_new = $images['folder_locked_new'];
			}
			else
			{
				if($replies >= $board_config['hot_threshold'])
				{
					$folder = $images['folder_hot'];
					$folder_new = $images['folder_hot_new'];
				}
				else
				{
					$folder = $images['folder'];
					$folder_new = $images['folder_new'];
				}
			}

			$newest_post_img = '';
			if( $userdata['session_logged_in'] )
			{
				if( $topic_rowset[$i]['post_time'] > $userdata['user_lastvisit'] ) 
				{
					if( !empty($tracking_topics) || !empty($tracking_forums) || isset($HTTP_COOKIE_VARS[$board_config['cookie_name'] . '_f_all']) )
					{
						$unread_topics = true;

						if( !empty($tracking_topics[$topic_id]) )
						{
							if( $tracking_topics[$topic_id] >= $topic_rowset[$i]['post_time'] )
							{
								$unread_topics = false;
							}
						}

						if( !empty($tracking_forums[$forum_id]) )
						{
							if( $tracking_forums[$forum_id] >= $topic_rowset[$i]['post_time'] )
							{
								$unread_topics = false;
							}
						}

						if( isset($HTTP_COOKIE_VARS[$board_config['cookie_name'] . '_f_all']) )
						{
							if( $HTTP_COOKIE_VARS[$board_config['cookie_name'] . '_f_all'] >= $topic_rowset[$i]['post_time'] )
							{
								$unread_topics = false;
							}
						}

						if( $unread_topics )
						{
							$folder_image = $folder_new;
							$folder_alt = $lang['New_posts'];

							$newest_post_img = '<a href="' . append_sid("viewtopic.$phpEx?" . POST_TOPIC_URL . "=$topic_id&view=newest") . '"><img src="' . $images['icon_newest_reply'] . '" alt="' . $lang['View_newest_post'] . '" title="' . $lang['View_newest_post'] . '" border="0" /></a> ';
						}
						else
						{
							$folder_image = $folder;
							$folder_alt = ( $topic_rowset[$i]['topic_status'] == TOPIC_LOCKED ) ? $lang['Topic_locked'] : $lang['No_new_posts'];

							$newest_post_img = '';
						}
					}
					else
					{
						$folder_image = $folder_new;
						$folder_alt = ( $topic_rowset[$i]['topic_status'] == TOPIC_LOCKED ) ? $lang['Topic_locked'] : $lang['New_posts'];

						$newest_post_img = '<a href="' . append_sid("viewtopic.$phpEx?" . POST_TOPIC_URL . "=$topic_id&view=newest") . '"><img src="' . $images['icon_newest_reply'] . '" alt="' . $lang['View_newest_post'] . '" title="' . $lang['View_newest_post'] . '" border="0" /></a> ';
					}
				}
				else 
				{
					$folder_image = $folder;
					$folder_alt = ( $topic_rowset[$i]['topic_status'] == TOPIC_LOCKED ) ? $lang['Topic_locked'] : $lang['No_new_posts'];

					$newest_post_img = '';
				}
			}
			else
			{
				$folder_image = $folder;
				$folder_alt = ( $topic_rowset[$i]['topic_status'] == TOPIC_LOCKED ) ? $lang['Topic_locked'] : $lang['No_new_posts'];

				$newest_post_img = '';
			}
		}
////////////
если его разобрать по логике, то все должно работать, однако надо еще составить правильный sql запрос, см. тот же файл.
то что я делал, оптимизировано под конкретно мой проект и не претендует на универсальность, поэтому - не выкладываю
Аватара пользователя
[R: R@m$e$ :U]
phpBB Maniac
Сообщения: 1464
Стаж: 17 лет 8 месяцев
Откуда: Novosibirsk,RU

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

в общем по теме раскиданы посты про бд не [ms/my]sql... =) но конкретно нашел только oracle... воть код, как будет работать на всех бд... =) тк сейчас мучаю phpBB+postgres поэтому наткнулся на данную граблю... =)) и тут решил это подправить =)

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

#
#-----[ OPEN ]------------------------------------------------
#

index.php

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

		case 'postgresql':
			$sql = "SELECT f.*, p.post_time, p.post_username, u.username, u.user_id
				FROM " . FORUMS_TABLE . " f, " . POSTS_TABLE . " p, " . USERS_TABLE . " u
				WHERE p.post_id = f.forum_last_post_id 
					AND u.user_id = p.poster_id  
					UNION (
						SELECT f.*, NULL, NULL, NULL, NULL
						FROM " . FORUMS_TABLE . " f
						WHERE NOT EXISTS (
							SELECT p.post_time
							FROM " . POSTS_TABLE . " p
							WHERE p.post_id = f.forum_last_post_id  
						)
					)
					ORDER BY cat_id, forum_order";
			break;

		case 'oracle':
			$sql = "SELECT f.*, p.post_time, p.post_username, u.username, u.user_id
				FROM " . FORUMS_TABLE . " f, " . POSTS_TABLE . " p, " . USERS_TABLE . " u
				WHERE p.post_id = f.forum_last_post_id(+)
					AND u.user_id = p.poster_id(+)
				ORDER BY f.cat_id, f.forum_order";
			break;

		default:
			$sql = "SELECT f.*, p.post_time, p.post_username, u.username, u.user_id
				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 )
				ORDER BY f.cat_id, f.forum_order";
			break;

#
#-----[ REPLACE WITH ]----------------------------------------
#
		case 'postgresql':
			// [start] Last Forum Topic On Index
			// [FIND] , u.user_id ### [AFTER] , t.topic_title, t.topic_id
			// [FIND] , " . USERS_TABLE . " u ### [AFTER] , " . TOPIC_TABLE . " t
			// [FIND] AND u.user_id = p.poster_id ### [AFTER] AND t.topic_id = p.topic_id
			// [FIND] NULL, NULL ### [AFTER] , NULL, NULL
			$sql = "SELECT f.*, p.post_time, p.post_username, u.username, u.user_id, t.topic_title, t.topic_id
				FROM " . FORUMS_TABLE . " f, " . POSTS_TABLE . " p, " . USERS_TABLE . " u, " . TOPIC_TABLE . " t
				WHERE p.post_id = f.forum_last_post_id 
					AND u.user_id = p.poster_id  
					AND t.topic_id = p.topic_id
					UNION (
						SELECT f.*, NULL, NULL, NULL, NULL, NULL, NULL
						FROM " . FORUMS_TABLE . " f
						WHERE NOT EXISTS (
							SELECT p.post_time
							FROM " . POSTS_TABLE . " p
							WHERE p.post_id = f.forum_last_post_id  
						)
					)
					ORDER BY cat_id, forum_order";
			// [end] Last Forum Topic On Index
			break;

		case 'oracle':
			// [start] Last Forum Topic On Index
			// [FIND] , u.user_id ### [AFTER] , t.topic_title, t.topic_id
			// [FIND] , " . USERS_TABLE . " u ### [AFTER] , " . TOPIC_TABLE . " t
			// [FIND] AND u.user_id = p.poster_id(+) ### [AFTER] AND t.topic_id = p.topic_id(+)
			$sql = "SELECT f.*, p.post_time, p.post_username, u.username, u.user_id, t.topic_title, t.topic_id 
				FROM " . FORUMS_TABLE . " f, " . POSTS_TABLE . " p, " . USERS_TABLE . " u, " . TOPIC_TABLE . " t
				WHERE p.post_id = f.forum_last_post_id(+)
					AND u.user_id = p.poster_id(+)
					AND t.topic_id = p.topic_id(+)
				ORDER BY f.cat_id, f.forum_order";
			break;
			// [end] Last Forum Topic On Index

		default:
			// [start] Last Forum Topic On Index
			// [FIND] , u.user_id ### [AFTER] , t.topic_title, t.topic_id
			// [FIND] (( ### [AFTER] (
			// [FIND] LEFT JOIN " . USERS_TABLE . " u ON u.user_id = p.poster_id ) ### [AFTER] LEFT JOIN " . TOPICS_TABLE . " t ON t.topic_id = p.topic_id )
			$sql = "SELECT f.*, p.post_time, p.post_username, u.username, u.user_id, t.topic_title, t.topic_id
				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_id = p.topic_id )
				ORDER BY f.cat_id, f.forum_order";
			// [end] Last Forum Topic On Index
			break;
Руководство пользователя | FAQ | Правила | Как устанавливать MOD'ы
ВОСПОЛЬЗУЙСЯ ПОИСКОМ, ТАМ ЕСТЬ БОЛЬШИНСТВО ОТВЕТОВ
ЕСЛИ НЕ ПОМОГЛО, ИСПОЛЬЗУЙ ШАБЛОН ЗАПРОСА, ПОМОГИ В РЕШЕНИИ ЗАДАЧИ
БЕСПЛАТНО ПОМОГУ ТОЛЬКО НА ФОРУМЕ!!! (ЛС НЕ В СЧЕТ)

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

ВСЕ ПРАВА НА МОДЫ ОТДАНЫ m157y
Аватара пользователя
SAS
phpBB 1.0.0
Сообщения: 6
Стаж: 17 лет 8 месяцев

Сообщение SAS »

хмм...а в виде полноценного МОДа оформить слабО? :)
Аватара пользователя
fergard
phpBB 1.2.0
Сообщения: 14
Стаж: 17 лет 2 месяца
Откуда: nutras.ru/forum

Сообщение fergard »

Блин, установил мод, но все равно вылезает ошибка связанная с названием темы - добавляется &quot, да и в тех форумах, где пользователю нет права на просмотр название темы видно.
Логично было бы просто убрать название темы в таких форумах.
Юмор:
- There are 10 kinds of people: those, who know binary and those, who don't.
- Лазерный прицел для дробовика - красная лампа с надетым на нее дуршлагом

Генератор ДБ-запросов
Тест скорости соединения с Интернетом (c) YarNET
Аватара пользователя
VVVas
Former team member
Сообщения: 4463
Стаж: 17 лет 10 месяцев
Поблагодарили: 1 раз

Сообщение VVVas »

fergard писал(а):Блин, установил мод, но все равно вылезает ошибка связанная с названием темы - добавляется &quot
Потому что обрезается ; , а так бы замекнилось на кавычку.
я люблю daft punk | новый sugoi.ru
Аватара пользователя
automan
phpBB 2.0.1
Сообщения: 252
Стаж: 17 лет 5 месяцев
Благодарил (а): 2 раза

Сообщение automan »

как в этом коде сделать чтоб при клике на название темы
осуществился переход не в саму тему, а на последние сообщение в теме
тоесть так же как и щелчек по Изображение

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

$max_topic_length = 30;

   if ( $forum_data[$j]['forum_last_post_id'] )
   {
      $forum_data[$j]['topic_title'] = (strlen($forum_data[$j]['topic_title']) > $max_topic_length) ? substr($forum_data[$j]['topic_title'], 0, $max_topic_length) . '&hellip;' : $forum_data[$j]['topic_title'];   

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

      $last_post = '<a href="' . append_sid("viewtopic.$phpEx?"  . POST_TOPIC_URL . '=' . $forum_data[$j]['topic_id']) . '">' . $forum_data[$j]['topic_title'] . '</a>';

      $last_post .= '&nbsp;<a href="' . append_sid("viewtopic.$phpEx?"  . POST_POST_URL . '=' . $forum_data[$j]['forum_last_post_id']) . '#' . $forum_data[$j]['forum_last_post_id'] . '"><img src="' . $images['icon_latest_reply'] . '" border="0" alt="' . $lang['View_latest_post'] . '" title="' . $lang['View_latest_post'] . '" /></a><br />';

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

      $last_post .= ( $forum_data[$j]['user_id'] == ANONYMOUS ) ? ( ($forum_data[$j]['post_username'] != '' ) ? $forum_data[$j]['post_username'] : $lang['Guest']) : $forum_data[$j]['username'];
   }

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