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

Меняем местами сообщения в топике


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

Хочу скрипт постепенно идущий по всей таблице постов, и отправляющий всё в архив.

Глянь в другом моде: http://www.ibresource.ru/forums/index.php?showtopic=4543

Проще его переделать, чтобы не джаваскриптовые файлы генерил, а тупо сбрасывал содержимое ячейки в файл. И пути сделать.

Лично я предпочитаю идти по топикам. Иногда и очень старый топик имеет смысл оставить в БД, чтобы его можно было находить поиском по форуму.

 

 

 

И ещё. Мы можем так сделать, чтобы не было обращения к ibf_post если файл сообщения имеется?

Там одно обращение на всю страницу.

Опять же, без обращения к БД не узнать список постов на эту страницу.

 

Чем я думаю может быть поморочиться - это сделать для архивированных постов кнопки "редактировать" и "цитировать" так, чтобы они восстанавливали в БД, а затем уже открывали для редактирования или цитирования.

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

  • Ответы 64
  • Создана
  • Последний ответ

Лучшие авторы в этой теме

Лучшие авторы в этой теме

Цитировать у меня и так работает. Просто кусок текста ява-скриптом копируется.
Ссылка на комментарий
Поделиться на других сайтах

Это "быстрая цитата" джавскриптом. Естественно, что она работает.

Я о штатной кнопке "Цитировать", отдающий цитированный текст вместе со смайликами, рисунками, ББ-кодами и прочими атрибутами форматирования.

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

Обнаружил еще одну недоделку:

При разделении темы, архивированные сообщения не отображаются.

Moderate.php

После кода:

		$post_query = $DB->query("SELECT post, pid, post_date, author_id, author_name
							  FROM ibf_posts
							  WHERE topic_id='{$this->topic['tid']}'
							   AND queued <> 1
							  ORDER BY post_date");

	$post_count = 0;

	while ( $row = $DB->fetch_row($post_query) )
	{

добавить:

			$arc_path = ($row['pid']-$row['pid']%1000)/1000;
		$arc_path = intval($arc_path)."/";
		$arc_file = $row['pid']%1000;
		$arc_file = intval($arc_file).".arc";

		if (is_file("arc/".$arc_path.$arc_file))
			@ob_start();
				if(is_writeable( "arc/".$arc_path.$arc_file ))
				{
					include( "arc/".$arc_path.$arc_file );
					$row['post'] = @ob_get_contents();
				}
			@ob_end_clean();

 

Инструкцию обновил и перезалил.

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

Прочел всю тему так и не понял зачем вообще может понадобится поменять местами два сообщения.

Не бейте ногами обьясните за чем это вообще может понадобится.

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

Прочел всю тему так и не понял зачем вообще может понадобится поменять местами два сообщения.

Не бейте ногами обьясните за чем это вообще может понадобится.

Простой пример:

На рабочем форуме я, будучи врачом, отвечаю на вопросы пациентов.

Представь, захожу я в топик, и вижу, что за время моего отсутствия в нем появилось ДВА вопроса от разных людей.

Я пишу ответ на первый вопрос, и затем меняю местами мой ответ и второй вопрос - и ответ на первый вопрос уезжает к своему вопросу. Затем спокойно пишу второй ответ на второй вопрос.

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

Ясно.

 

Я когда пишу ответ, то пишу в одном посте обоим обращаясь к тем кому пишу + ссылки в снапбеке на месаги их идут

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

Прочел всю тему так и не понял зачем вообще может понадобится поменять местами два сообщения.

Не бейте ногами обьясните за чем это вообще может понадобится.

 

 

Я у себя на сайте пишу какой-нибудь совет для 2.1

Потом допишу для 1.х

 

2.1 -> 1.х - так нелогично.

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

Да мало ли ситуаций может быть..

 

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

 

Ну вообщем модераторы не раз спрашивали такую возможность.

Всё было лень сделать, а тут FatCat подсказал интересное решение :D

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

Обнаружил еще одну недоделку: при ответе в архивированный топик не отображаются архивированные в "последние 10 сообщений топика".

Исправление:

 

=================

Post.php

=================

 

Найти:

		$post_query = $DB->query("SELECT post, pid, post_date, author_id, author_name FROM ibf_posts WHERE topic_id=$topic_id and queued <> 1 ORDER BY pid DESC LIMIT 0,10");

	while ( $row = $DB->fetch_row($post_query) )
	{

		$row['author'] = $row['author_name'];

		$row['date']   = $std->get_date( $row['post_date'], 'LONG' );

Ниже добавить:

			$arc_path = ($row['pid']-$row['pid']%1000)/1000;
		$arc_path = intval($arc_path)."/";
		$arc_file = $row['pid']%1000;
		$arc_file = intval($arc_file).".arc";

		if (is_file("arc/".$arc_path.$arc_file))
		{
			@ob_start();
				include( "arc/".$arc_path.$arc_file );
				$row['post'] = @ob_get_contents();
			@ob_end_clean();
		}

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

Что за "последние 10 сообщений топика" ?

А можно сделать чтобы последние сообщения в профиле юзверя отображались архивированные?

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

Что за "последние 10 сообщений топика" ?

По кнопке "Ответить", под формой ввода сообщения последние 10 постов топика.

 

 

А можно сделать чтобы последние сообщения в профиле юзверя отображались архивированные?

У тебя они сделаны целыми сообщениями?

У меня ссылками.

 

Для показа полных сообщений в профиле (сборка Игорька М.)

Profile.php

Перед кодом:

	$info['last_five'] .= "<tr><td class='darkrow2'>$row[name] [ <a href={$info['base_url']}showtopic=$row[tid]&view=findpost&p=$row[pid]>$row[title]</a> ]</td></tr>";

добавить:

	$arc_path = ($row['pid']-$row['pid']%1000)/1000;
$arc_path = intval($arc_path)."/";
$arc_file = $row['pid']%1000;
$arc_file = intval($arc_file).".arc";

if (is_file("arc/".$arc_path.$arc_file))
	{
	@ob_start();
		include( "arc/".$arc_path.$arc_file );
		$row['post'] = @ob_get_contents();
	@ob_end_clean();
	}

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

  • 2 недели спустя...
Переделал функцию разархивирования. Теперь можно разархивировать не по одному, а все помеченные.
Ссылка на комментарий
Поделиться на других сайтах

  • 2 месяца спустя...
Простите, а не подскажете как этот мод поставить на 2.1.7

Мод по иронии судьбы разросся в целый набор модераторских функций.

Теоретически, его можно переписать под "двушку", но практически его лучше написать с нуля, взяв из мода только те идеи, которые еще не реализованы в двушках.

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

  • 2 недели спустя...

Спешиал для Паладина наверное:

Добавил pack топика: все сообщения топика склеиваются в одно и архивируются в первый пост. Получается что-то типа "версии для печати"; но нет кучи мелких файлов архивов, всё в одном файле.

И БД подрезается ощутимо, и дисковое пространство на кучу мелких файлов не расходуется.

Дополненную инструкцию перезалил.

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

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

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

Гость
Ответить в этой теме...

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

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

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

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

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

Зарузка...

×
×
  • Создать...

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

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