Перейти к публикации
Дизайн и модификация IPS Community IPBSkinsBETA
Поиск в
  • Дополнительно...
Искать результаты, содержащие...
Искать результаты в...
Strategius

Автоматическое перемещение тем

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

Доброе утро!

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

 

Есть ли такой хук/реализация?

Поделиться сообщением


Ссылка на сообщение

Самый простой вариант написать задачу которая темы из этого раздела по прошествию определенного времени после даты создания будет переводить в другой раздел. Насчет готовых реализаций не знаю, не встречал.

Поделиться сообщением


Ссылка на сообщение

А как эту задачу написать, не подскажете, пожалуйста? Я с планировщиком еще не работал.

Поделиться сообщением


Ссылка на сообщение

Спасибо. А Вы не могли бы помочь написать скрипт, пожалуйста?

Поделиться сообщением


Ссылка на сообщение

Никак не пойму, как сделать этот скрипт. Как пример взял этот http://ipbskins.ru/forum/topic13812.html/page__view__findpost__p__92366

 

Но он не подходит, там удаление картинок из галереи выполняется, а мне нужно перемещение тем... Как это реализовать?

Поделиться сообщением


Ссылка на сообщение

Логика примерно следующая, sql запросом меняете ид форума у тем которые находятся в определенном форуме, потом обновляете статистику форума куда была перемещена тема.

  • Upvote 2

Поделиться сообщением


Ссылка на сообщение

Дело в том, что я полный ноль в написании таких скриптов :) Я даже не знаю, как задачу сделать... А функция эта нужна, без нее новости не будут работать.

 

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

Поделиться сообщением


Ссылка на сообщение

Когда буду за компьютером наброшу вам скрипт.

  • Upvote 1

Поделиться сообщением


Ссылка на сообщение

Когда буду за компьютером наброшу вам скрипт.

Большое спасибо! Пока попробую разобраться, как задачу сделать :) Тоже не знаю пока.

Поделиться сообщением


Ссылка на сообщение

Задача

 

<?php

class task_item
{
protected $class;
protected $task = array();
protected $registry;
protected $DB;
protected $lang;

public function __construct( ipsRegistry $registry, $class, $task )
{
	$this->registry	= $registry;
	$this->DB		= $registry->DB();
	$this->lang		= $this->registry->getClass('class_localization');

	$this->class	= $class;
	$this->task		= $task;
}

public function runTask()
{
	$from_id = 1; // откуда
	$to_id   = 5; // куда
	$older   = 2 * 86400; // старше чем, сек

	$this->DB->update( 'topics', 'forum_id='.$to_id, 'start_date < '. ( IPS_UNIX_TIME_NOW - $older ) . ' AND forum_id='.$from_id );

	if( ( $count = $this->DB->getAffectedRows() ) > 0 )
	{
		$classToLoad = IPSLib::loadLibrary( IPSLib::getAppDir( 'forums' ) . '/sources/classes/moderate.php', 'moderatorLibrary', 'forums' );
		$modfunc =  new $classToLoad( $this->registry );

		$modfunc->forumRecount( $from_id );
		$modfunc->forumRecount( $to_id );
	}

	$this->class->appendTaskLog( $this->task, 'Moved topics: ' . $count );

	//-----------------------------------------
	// Unlock Task: REQUIRED!
	//-----------------------------------------

	$this->class->unlockTask( $this->task );
}
}

  • Upvote 2

Поделиться сообщением


Ссылка на сообщение

Большое Вам спасибо!

Этот .php файл нужно положить в папку /admin/applications/forums/tasks, и все, задача будет автоматически сама работать? Или ее еще нужно как-то активировать в планировщике?

Поделиться сообщением


Ссылка на сообщение

Нужно добавить в менеджере задач и настроить время выполнения.

  • Upvote 1

Поделиться сообщением


Ссылка на сообщение

Создайте аккаунт или войдите в него для комментирования

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

Создать аккаунт

Зарегистрируйтесь для получения аккаунта. Это просто!

Зарегистрировать аккаунт

Войти

Уже зарегистрированы? Войдите здесь.

Войти сейчас

  • Сейчас на странице   0 пользователей

    Нет пользователей, просматривающих эту страницу.

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