Уважаемые пользователи!
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? Ищите ответы здесь!
TLS
phpBB 1.0.0
Сообщения: 7
Стаж: 19 лет 2 месяца
Откуда: МСК

Вопрос по редактуре сообщений

Сообщение TLS »

Господа, такой вопрос.
Каков алгоритм добавления в посты надписей вроде "Отредактировано тем-то, тогда-то, столько-то раз", "Добавлено спустя..."?
Я логику вообще не понимаю. На моем форуме у меня, сколько я не редактирую свои и чужие мессаги, ни разу не появлялась приписка. Под своим же тестовым аккаунтом (простой пользователь), тоже такая надпись не появляется. А у пользователей (у НЕКОТОРЫХ, не всех) - высвечивается.
Как оно вообще работает? :)
Улыбайтесь чаще!
Xpert
phpBB Guru
phpBB Guru
Сообщения: 5484
Стаж: 20 лет 2 месяца
Поблагодарили: 2 раза

Сообщение Xpert »

Если пользователь отредактировал свое сообщение после того как в теме появилось еще одно сообщение, надпись появляется. Если сообщение редактирует администратор или модератор - надпись не появляется, однако если администратор или модератор редактируют свое сообщение, надпись появится.
Эксперт - это человек, который избегает мелких ошибок на пути к грандиозному провалу.
Любая более-менее сложная задача имеет несколько простых, изящных, лёгких для понимания неправильных решений
Аватара пользователя
Siava
Поддержка
Поддержка
Сообщения: 5285
Стаж: 19 лет 4 месяца
Откуда: Питер
Благодарил (а): 186 раз
Поблагодарили: 793 раза

Сообщение Siava »

TLS
можно сделать, чтобы всегда отображалось, что пост редактировался :wink:
Always Show Edited by Messages
Еще одно нарушение правил и будете забанены. © Mr. Anderson
Ты очистил кеш? © Sheer
https://siava.ru (phpbb 2.0.x 3.5.x)
TLS
phpBB 1.0.0
Сообщения: 7
Стаж: 19 лет 2 месяца
Откуда: МСК

Сообщение TLS »

Спасибо!
Как, однако ж, все накручено! :)
Улыбайтесь чаще!
Lektor
phpBB 2.0.7
Сообщения: 574
Стаж: 18 лет 1 месяц

Сообщение Lektor »

Ребята у меня такая трабла: я как админ редактирую сообщение другого юзера, а надпись появляется как будто это он отредактировал сообщение (т.е. пишется не мой ник а ник юзера)..

Единственное что я ставил касательно редактирования сообщений это:
[12/12/06] Always Show Edited Message
http://www.phpbb.com/phpBB/viewtopic.php?t=482272
поэтому на него и грешу ..

Т.к. щас phpBB.ком не пашет мод атачу..
Вот стркоа из моего functions_post.php

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

	$edited_sql = ($mode == 'editpost' /* && !$post_data['last_post'] && $post_data['poster_post'] */) ? ", post_edit_time = $current_time, post_edit_count = post_edit_count + 1 " : "";
Сам фанкшн_пост тож атачу в тхт формате...

Подскажите плиз де накосячил?
У вас нет необходимых прав для просмотра вложений в этом сообщении.
Xpert
phpBB Guru
phpBB Guru
Сообщения: 5484
Стаж: 20 лет 2 месяца
Поблагодарили: 2 раза

Сообщение Xpert »

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

Сообщение Lektor »

Та это собсно и модом сложно назвать )

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

# 
#-----[ OPEN ]------------------------------------------ 
# 
includes/functions_post.php
#
#-----[ FIND ]------------------------------------------
#
$edited_sql = ($mode == 'editpost' && !$post_data['last_post'] && $post_data['poster_post']) ? ", post_edit_time = $current_time, post_edit_count = post_edit_count + 1 " : "";
# 
#-----[ IN-LINE FIND ]------------------------------------------ 
# 
 && !$post_data['last_post'] && $post_data['poster_post']
# 
#-----[ IN-LINE REPLACE WITH ]------------------------------------------ 
# We are commenting this code.
 /* && !$post_data['last_post'] && $post_data['poster_post'] */
# 
#-----[ SAVE/CLOSE ALL FILES ]------------------------------------------ 
# 
# EoM
Но дело в том что я вот вернул назад как а оно было так и остался.. я думаю чо дело в чем то другом .. щас буду выяснять ..

Все таки понять не могу.. проверил всесвои моды.. ни один вродь не зарагивает..
Аа вот нашел единственное:
Мод - AbTrack BT-Tracker MOD 1.0.1b

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

# 
#-----[ OPEN ]--------------------------------------------- 
# 
includes/functions_post.php

# 
#-----[ FIND ]---------------------------------------------
# 
		$sql  = ($mode != "editpost") ? "INSERT INTO " . TOPICS_TABLE . " (topic_title, topic_poster, topic_time, forum_id, topic_status, topic_type, topic_vote) VALUES ('$post_subject', " . $userdata['user_id'] . ", $current_time, $forum_id, " . TOPIC_UNLOCKED . ", $topic_type, $topic_vote)" : "UPDATE " . TOPICS_TABLE . " SET topic_title = '$post_subject', topic_type = $topic_type " . (($post_data['edit_vote'] || !empty($poll_title)) ? ", topic_vote = " . $topic_vote : "") . " WHERE topic_id = $topic_id";

# 
#-----[ REPLACE WITH ]---------------------------------------
# 
		//bt
		global $post_info, $is_auth, $HTTP_POST_VARS;
		$topic_dl_type = (isset($HTTP_POST_VARS['topic_dl_type']) && ($post_info['topic_dl_type'] || $post_info['allow_dl_topic'] || $is_auth['auth_mod'])) ? TOPIC_DL_TYPE_DL : TOPIC_DL_TYPE_NORMAL;

  	$sql  = ($mode != "editpost") ? "INSERT INTO " . TOPICS_TABLE . " (topic_title, topic_poster, topic_time, forum_id, topic_status, topic_type, topic_dl_type, topic_vote) VALUES ('$post_subject', " . $userdata['user_id'] . ", $current_time, $forum_id, " . TOPIC_UNLOCKED . ", $topic_type, $topic_dl_type, $topic_vote)" : "UPDATE " . TOPICS_TABLE . " SET topic_title = '$post_subject', topic_type = $topic_type, topic_dl_type = $topic_dl_type " . ((@$post_data['edit_vote'] || !empty($poll_title)) ? ", topic_vote = " . $topic_vote : "") . " WHERE topic_id = $topic_id";
		//bt end

# 
#-----[ FIND ]---------------------------------------------
# 
				$sql = "DELETE FROM " . TOPICS_WATCH_TABLE . "
					WHERE topic_id = $topic_id";
				if (!$db->sql_query($sql))
				{
					message_die(GENERAL_ERROR, 'Error in deleting post', '', __LINE__, __FILE__, $sql);
				}

# 
#-----[ AFTER, ADD ]--------------------------------------- 
# 
				//bt
				$sql = 'DELETE FROM '. BT_USR_DL_STAT_TABLE ."
					WHERE topic_id = $topic_id";

				if (!$db->sql_query($sql))
				{
					message_die(GENERAL_ERROR, 'Error in deleting post', '', __LINE__, __FILE__, $sql);
				}
				//bt end
Как это могло повлияеть.. щас я поставлю на голый форум.. протестю..

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

Да.. так и есть .. причина имено в моде AbTrack.. поставил голый форум, все протестил - нормально, т.е. в случае если амин редактить сообщение юзера то пишеться что авор редакции - амин .. накатил абТрэк, и перестало писаться ..

Xpert, я не могу сориентироваться.. если вы увидели в чем трабл, подскажите плиз фикс..
Если нет, то черт уже с ним .. зато разобрался откуда баг ..
Xpert
phpBB Guru
phpBB Guru
Сообщения: 5484
Стаж: 20 лет 2 месяца
Поблагодарили: 2 раза

Сообщение Xpert »

Lektor писал(а):Та это собсно и модом сложно назвать )
Вот тут и ошибка. Не учитывает администратора-модератора.
Lektor писал(а):о дело в том что я вот вернул назад как а оно было так и остался..
Ну так в базе уже все поменялось...
Эксперт - это человек, который избегает мелких ошибок на пути к грандиозному провалу.
Любая более-менее сложная задача имеет несколько простых, изящных, лёгких для понимания неправильных решений
Lektor
phpBB 2.0.7
Сообщения: 574
Стаж: 18 лет 1 месяц

Сообщение Lektor »

Xpert
Ага я понял.. Только вот хотел чуть еще разобраться.. мне не понятно почему если закоментировать только "!$post_data['last_post']" (т.е. саму суть мода: чтоб надпись "Редактировалось..." появлялась вне зависимости от того какое сообщение в теме последнее или нет), то если редактирует админ об этом не пишеться в сообщении, а если юзер редактирует свою месагу то пишеться? как условие на "не последнее" сообщение на это повлияло?

А можно сделать так (по русски): если режим редактирования то время редактирования = текущее время, а (добавить) автор редактирования - текущий автор...

Или проще сделать проверку на админа и модератора(как вы говорили)?
Подскажите плиз как можно сделать, т.е. я идею понимаю что то вроде:
после :
$edited_sql =
Добавить:

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

if ($mode == 'editpost' && $userdata['user_level'] == ADMIN или $userdata['user_level'] == MOD)
	{
		$edited_sql .= ", poster_post = $этот_самый_админ_или_модер ";

		$result = $db->sql_query("
			UPDATE ". TOPICS_TABLE ." SET
				poster_post = $этот_самый_админ_или_модер
			WHERE topic_id = $topic_id
			LIMIT 1
		");
	}
Вообщем за этот бред сори ) это я так типа размышлял.. подскажите как надо.. )
Finn2
phpBB 1.2.0
Сообщения: 15
Стаж: 16 лет 4 месяца
Откуда: Екатеринбург, Агафуровские дачи

Сообщение Finn2 »

Подскажите, а как сделать, что бы вообще это сообщение не появлялось? Простой (для меня) способ установить $lang['Edited_time_total'] в " ". Разумно ли так? А если бы был способ во время написания сообщения указывать ("галочкой") показывать/не показывать этот текст, то было вообще прекрасно! Почему - есть часть сообщений на форуме по которым приципиально важно иметь отметку о последнем редактировании. Есть ситуации обратные (ну исправил орфографическую ошибку!). А возможность выбрать даст поступать и так и эдак.

Вернуться в «Поддержка phpBB 2.0.x»