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

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


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

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

Глянь в другом моде: 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 топика: все сообщения топика склеиваются в одно и архивируются в первый пост. Получается что-то типа "версии для печати"; но нет кучи мелких файлов архивов, всё в одном файле.

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

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

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

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

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

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

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

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

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

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

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

Зарузка...

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

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

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