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

Last Forum Topic On Index

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

Сообщение muromez »

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

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

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

Сообщение Iftin »

не подскажите как сделать, чтобы и ники тоже были подсвечены и вели на его профиль... вот как на этом форуме сделано... с вашим модом. http://forum.vvvas.ru/
Аватара пользователя
Romiyo
Неадекватен
Сообщения: 603
Стаж: 19 лет 6 месяцев
Откуда: 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
Стаж: 19 лет 1 месяц
Откуда: Moscow

Сообщение Iftin »

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

Сообщение automan »

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


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

именно в таком порядке, получается три строчки
спасибо
Аватара пользователя
VVVas
Former team member
Сообщения: 4463
Стаж: 19 лет 7 месяцев
Поблагодарили: 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
Стаж: 19 лет 2 месяца
Благодарил (а): 2 раза

Сообщение automan »

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



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

Сообщение VVVas »

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

Сообщение 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
Стаж: 19 лет 5 месяцев
Откуда: 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
Стаж: 19 лет 4 месяца

Сообщение SAS »

хмм...а в виде полноценного МОДа оформить слабО? :)
Аватара пользователя
fergard
phpBB 1.2.0
Сообщения: 14
Стаж: 18 лет 10 месяцев
Откуда: 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
Стаж: 19 лет 7 месяцев
Поблагодарили: 1 раз

Сообщение VVVas »

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