Перейти к контенту

Мод, показывающий, кто удалил сообщение


Рекомендуемые сообщения

Судя по логике будем править Moderate.php

ф-ию delete_post()

Вот это

	 $DB->query("DELETE from ibf_posts WHERE topic_id='".$this->topic['tid']."' and pid='".$post['pid']."'");

комментируем и пишем ниже

$DB->query("UPDATE ibf_posts SET post='Это сообщение удалил {$ibforums->member['name']}' WHERE topic_id='".$this->topic['tid']."' and pid='".$post['pid']."'");

Ну и чуть ниже можно убрать уменьшение статистики (не знаю нужно тебе это или нет).

А вообще по уму фраза заносится в lang файл, а потом подставляется сюда, вместо константы.

Ссылка на комментарий
Поделиться на других сайтах

Это сообщение удалил XXX

появляется в теле письма, то есть удаляется только текст, а мне желательно, как я выше указал

Ссылка на комментарий
Поделиться на других сайтах

Anachronist

т.е. чтобы не выводилась группа, кол-во сообщений, место регистрации, меню поста и т.д. ?

Ссылка на комментарий
Поделиться на других сайтах

Ну это посложней конечно, но тоже можно.

Сперва тебе нужно в skin_topic.php найти ф-ию RenderRow()

скопировать её и назвать копию скажем RenderDeletedRow(), оставив из параметров только $post.

Далее внутри её убрать всё лишнее что тебе хочется, хоть оставить один <tr> .. </tr> с текстом поста (обычный прямоугольник), ну вообщем создать на html, то что ты запостил на картинке. Я так понимаю тебе нужно только текст "Пост удалил тот-то", поэтому нужно оставить только таблицу и $post['post']

Далее тебе нужно добавить поле в таблицу ibf_post, ну скажем MarkDeleted NOT NULL по умолчанию 0.

Далее тот запрос, что я тебе посоветовал выше немножко изменить на :

$DB->query("UPDATE ibf_posts SET post='Это сообщение удалил {$ibforums->member['name']}',MarkDeleted='1' WHERE topic_id='".$this->topic['tid']."' and pid='".$post['pid']."'");

И, наконец, в Topics.php

найти строку

$this->output .= $this->html->RenderRow( $row, $poster );

и заменить её на условие

if (!$row[MarkDeleted]) $this->output .= $this->html->RenderRow( $row, $poster ); else $this->output .= $this->html->RenderDeletedRow( $row );

Всё.

Ссылка на комментарий
Поделиться на других сайтах

Поставил этот мод опять, вылазит вот это из файлов языка:

// post delete hack $lang['deleted_by'] = 'This post was deleted by '; //end// post delete hack $lang['deleted_by'] = 'This post was deleted by '; //end

Может это надо перед ?> вставлять, хотя написано после !

Попробовал найти :

$DB->query("DELETE from forum_posts WHERE topic_id='".$this->topic['tid']."' and pid='".$post['pid']."'");

, там такого нет, есть вот это -

  //----------------------------------------------------
 // Delete the posts
 //----------------------------------------------------
 
 $DB->query("DELETE FROM forum_posts WHERE pid IN($pid_string)");

Дальше не стал, нет смысла !

Ссылка на комментарий
Поделиться на других сайтах

Поставил этот мод опять

какой "этот"?

 

там такого нет, есть вот это

возможно разные версии IPB.

Ссылка на комментарий
Поделиться на других сайтах

какой "этот"?

Этот мод, показывающий кто удалил сообщение !

возможно разные версии IPB.

Версия 1.3 Final от bestfilez и от вас !

Ссылка на комментарий
Поделиться на других сайтах

Это не мод, это просто алгоритм как его сделать.

 

Версия 1.3 Final от bestfilez и от вас !

Насчёт 1.3 не знаю. Я смотрел по своим исходникам. У меня 1.2

 

Я не понимаю откуда ты это берёшь:

Поставил этот мод опять, вылазит вот это из файлов языка:

 

CODE // post delete hack $lang['deleted_by'] = 'This post was deleted by '; //end// post delete hack $lang['deleted_by'] = 'This post was deleted by '; //end

 

Может это надо перед ?> вставлять, хотя написано после !

Я это не советовал делать.

$DB->query("DELETE FROM forum_posts WHERE pid IN($pid_string)");

Скорей всего это и есть оно в 1.3

Ссылка на комментарий
Поделиться на других сайтах

Не ты не понял ! Я сначала скачал этот хак, по ссылке выше (4 пост), поставил его, потом поставил, что ты сказал ! Дак что не надо было ставить, то что скачал, только твоё ? Если да то сори !
Ссылка на комментарий
Поделиться на других сайтах

да. то что я предложил вообще к хаку, который Остап предложил, не имеет отношения.

Я сделал ошибку, что здесь предложил своё решение, не следовало бы т.к. могли запутаться.

2 ALL: тот алгоритм, что я предложил не имеет ничего общего с модом, предложенный Остапом!

Ссылка на комментарий
Поделиться на других сайтах

Вот поробовал ещё ! Сделал всё в точности как ты написал и вот результат !

mySQL query error: UPDATE forum_posts SET post='Это сообщение удалил TAPAKAH',MarkDeleted='1' WHERE topic_id='12' and pid='508'

mySQL error: Unknown column 'MarkDeleted' in 'field list'
mySQL error code: 
Date: Monday 12th of July 2004 06:10:55 PM

Сообщение удаляется, так как раньше и ничего не появляется (Сообщение удалил xxx) !!!!!!

Ссылка на комментарий
Поделиться на других сайтах

Вобщем сделал такой запрос:

ALTER TABLE `forum_posts` ADD `MarkDeleted` TEXT NOT NULL;

Теперь ошибки нет, делается всё как обычно :D ! А если делать значение default=0 так:

ALTER TABLE `forum_posts` ADD `MarkDeleted` TEXT DEFAULT '0' NOT NULL;

То вылазит ошибка ! Вот так:

Ответ MySQL: 
#1101 - BLOB column 'MarkDeleted' can't have a default value

Ссылка на комментарий
Поделиться на других сайтах

Присоединиться к обсуждению

Вы можете ответить сейчас, а зарегистрироваться позже. Если у вас уже есть аккаунт, войдите, чтобы ответить от своего имени.

Гость
Unfortunately, your content contains terms that we do not allow. Please edit your content to remove the highlighted words below.
Ответить в этой теме...

×   Вы вставили отформатированный текст.   Удалить форматирование

  Допустимо не более 75 смайлов.

×   Ваша ссылка была автоматически заменена на медиа-контент.   Отображать как ссылку

×   Ваши публикации восстановлены.   Очистить редактор

×   Вы не можете вставить изображения напрямую. Загрузите или вставьте изображения по ссылке.

Зарузка...
×
×
  • Создать...

Важная информация

Находясь на нашем сайте, вы соглашаетесь на использование файлов cookie, а также с нашим положением о конфиденциальности Политика конфиденциальности и пользовательским соглашением Условия использования.