Маркер тем - "проблема решена"

Идеи для расширения функциональности phpBB 2.0.x
Jovani
phpBB 2.0.5
Сообщения: 477
Стаж: 21 год

Маркер тем - "проблема решена"

Сообщение Jovani »

Нужен МОД для пометки тем - "проблема решена".
То есть, вопрошающий(автор первого сообщения темы), после решения своей проблемы, делает отметку - "проблема решена", которая видна при просмотре списка тем.
Кто нибудь видел подобное?

Пока, присматриваюсь к переделке Advanced Topic Type, но может есть более похожее?
quazi
phpBB 2.0.2
Сообщения: 306
Стаж: 20 лет 1 месяц

Сообщение quazi »

добавить кнопку "Отправить и закрыть", так чтобы модер или админ могли увидеть этот пост и закрыть тему
Jovani
phpBB 2.0.5
Сообщения: 477
Стаж: 21 год

Сообщение Jovani »

Закрывать то зачем?
Тема не должна закрываться, в нее могут дальше поступать сообщения.
Тема просто должна отмечаться как "решенная проблема".
Причем, такую возможность отметки, должен иметь автор первого сообщения.
По сути, нужно ввести новый тип темы (подобно обьявлению), но несколько в другом варианте.
quazi
phpBB 2.0.2
Сообщения: 306
Стаж: 20 лет 1 месяц

Сообщение quazi »

имхо (только имхо) решенная проблема == закрытая тема
опротестуете аргументированно, соглашусь с вами
Jovani
phpBB 2.0.5
Сообщения: 477
Стаж: 21 год

Сообщение Jovani »

опротестуете аргументированно
Главный аргумент - мне надо так, а не иначе :lol:
Xpert
phpBB Guru
phpBB Guru
Сообщения: 5484
Стаж: 21 год 1 месяц
Поблагодарили: 2 раза

Сообщение Xpert »

Для справки тому кто будет писать. Является ли просматривающий пользователь автором темы лучше все же выяснять по таблице posts, поскольку при удалении первого сообщения id автора в topics не обновляется.
Эксперт - это человек, который избегает мелких ошибок на пути к грандиозному провалу.
Любая более-менее сложная задача имеет несколько простых, изящных, лёгких для понимания неправильных решений
Jovani
phpBB 2.0.5
Сообщения: 477
Стаж: 21 год

Сообщение Jovani »

Проверять доступ на отметку темы, буду наверно так:

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

if ( ($userdata['user_id'] != ANONYMOUS ) && ($userdata['user_id'] == $forum_topic_data['topic_poster']) && !$is_auth['auth_mod'] && ($forum_topic_data['topic_status'] != TOPIC_LOCKED) )

{

....

}
Там в запрос только нужно будет добавить t.topic_poster ...
Но пока другим кодом занимаюсь :)
Jovani
phpBB 2.0.5
Сообщения: 477
Стаж: 21 год

Сообщение Jovani »

Удалось найти похожий мод:
http://florian.developpez.com/mods/topi ... nglish.php
3oloto
phpBB 1.2.0
Сообщения: 15
Стаж: 19 лет 9 месяцев
Откуда: Україна, Одесса.

Сообщение 3oloto »

Jovani писал(а):Удалось найти похожий мод:
http://florian.developpez.com/mods/topi ... nglish.php
Как его скачать?
Xpert
phpBB Guru
phpBB Guru
Сообщения: 5484
Стаж: 21 год 1 месяц
Поблагодарили: 2 раза

Сообщение Xpert »

Эксперт - это человек, который избегает мелких ошибок на пути к грандиозному провалу.
Любая более-менее сложная задача имеет несколько простых, изящных, лёгких для понимания неправильных решений
Jovani
phpBB 2.0.5
Сообщения: 477
Стаж: 21 год

Сообщение Jovani »

В этом моде выявлены некоторые проблемы с сессиями, и проверкой доступа, которые можно легко исправить по аналогии с модом "Bin Mod". Там сделано корректно.
В остальном, мод работает без проблем ...
Xpert
phpBB Guru
phpBB Guru
Сообщения: 5484
Стаж: 21 год 1 месяц
Поблагодарили: 2 раза

Сообщение Xpert »

Jovani писал(а):В этом моде выявлены некоторые проблемы с сессиями, и проверкой доступа, которые можно легко исправить по аналогии с модом "Bin Mod".
Можно поконкретнее?
Эксперт - это человек, который избегает мелких ошибок на пути к грандиозному провалу.
Любая более-менее сложная задача имеет несколько простых, изящных, лёгких для понимания неправильных решений
Jovani
phpBB 2.0.5
Сообщения: 477
Стаж: 21 год

Сообщение Jovani »

Xpert долго обьяснять, попробуй поставить ...
Jovani
phpBB 2.0.5
Сообщения: 477
Стаж: 21 год

Сообщение Jovani »

Найдены очередные(на мой взгляд) неточности.
На этот раз, проблема с отображением нового статуса тем при поиске.

В оригинале мода:

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

#
#-----[ OPEN ]------------------------------------------
#
search.php

# 
#-----[ FIND ]------------------------------------------
# 
for($i = 0; $i < count($searchset); $i++)
{
	$forum_url = append_sid("viewforum.$phpEx?" . POST_FORUM_URL . '=' . $searchset[$i]['forum_id']);
	$topic_url = append_sid("viewtopic.$phpEx?" . POST_TOPIC_URL . '=' . $searchset[$i]['topic_id'] . "&highlight=$highlight_active");
	$post_url = append_sid("viewtopic.$phpEx?" . POST_POST_URL . '=' . $searchset[$i]['post_id'] . "&highlight=$highlight_active") . '#' . $searchset[$i]['post_id'];

	$post_date = create_date($board_config['default_dateformat'], $searchset[$i]['post_time'], $board_config['board_timezone']);

	$message = $searchset[$i]['post_text'];
	$topic_title = $searchset[$i]['topic_title'];

# 
#-----[ AFTER, ADD ]------------------------------------
#
// Begin Add Topic Types
if ($searchset[$i]['topic_totrash'] == "Y" )
{
	$topic_title = $lang['Topic_ToTrash'] . $topic_title;
}
if ($searchset[$i]['topic_solved'] == "Y" )
{
	$topic_title = $lang['Topic_Solved'] . $topic_title;
}
if ($searchset[$i]['topic_ext_status'] != 0 )
{
	for ($ext_nb=0; $ext_nb<count($ext_status); $ext_nb++)
	{
		if ( $ext_status[$ext_nb][0] == $searchset[$i]['topic_ext_status'] )
		{
			$topic_title = $ext_status[$ext_nb][2] . $topic_title;
		}
	}
}
// End Add Topic Types
ИМХО, лучше так:

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

#
#-----[ OPEN ]------------------------------------------
#
search.php

# 
#-----[ FIND ]------------------------------------------
# 
			else
			{
				$message = '';

				if ( count($orig_word) )
				{
					$topic_title = preg_replace($orig_word, $replacement_word, $searchset[$i]['topic_title']);
				}

# 
#-----[ AFTER, ADD ]------------------------------------
#
// Begin Add Topic Types
if ($searchset[$i]['topic_totrash'] == "Y" )
{
	$topic_title = $lang['Topic_ToTrash'] . $topic_title;
}
if ($searchset[$i]['topic_solved'] == "Y" )
{
	$topic_title = $lang['Topic_Solved'] . $topic_title;
}
if ($searchset[$i]['topic_ext_status'] != 0 )
{
	for ($ext_nb=0; $ext_nb<count($ext_status); $ext_nb++)
	{
		if ( $ext_status[$ext_nb][0] == $searchset[$i]['topic_ext_status'] )
		{
			$topic_title = $ext_status[$ext_nb][2] . $topic_title;
		}
	}
}
// End Add Topic Types
И еще, по желанию, можно добавить:

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

#
#-----[ OPEN ]------------------------------------------
#
search.php

# 
#-----[ FIND ]------------------------------------------
# 
$template->assign_block_vars("searchresults", array(

# 
#-----[ BEFORE, ADD ]------------------------------------
#
// Begin Add Topic Types
if ($searchset[$i]['topic_totrash'] == "Y" )
{
	$post_subject = $lang['Topic_ToTrash'] . $post_subject;
}
if ($searchset[$i]['topic_solved'] == "Y" )
{
	$post_subject = $lang['Topic_Solved'] . $post_subject;
}
if ($searchset[$i]['topic_ext_status'] != 0 )
{
	for ($ext_nb=0; $ext_nb<count($ext_status); $ext_nb++)
	{
		if ( $ext_status[$ext_nb][0] == $searchset[$i]['topic_ext_status'] )
		{
			$post_subject = $ext_status[$ext_nb][2] . $post_subject;
		}
	}
}
// End Add Topic Types
Возможно, кому-то пригодится ...

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