Jump to content
Дизайн и модификация IPS Community IPBSkinsBETA
Search In
  • More options...
Find results that contain...
Find results in...
Sign in to follow this  
Strategius

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

Recommended Posts

Доброе утро!

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

 

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

Share this post


Link to post
Share on other sites

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

Share this post


Link to post
Share on other sites

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

Share this post


Link to post
Share on other sites

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

Share this post


Link to post
Share on other sites

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

 

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

Share this post


Link to post
Share on other sites

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

  • Upvote 2

Share this post


Link to post
Share on other sites

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

 

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

Share this post


Link to post
Share on other sites

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

  • Upvote 1

Share this post


Link to post
Share on other sites

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

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

Share this post


Link to post
Share on other sites

Задача

 

<?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

Share this post


Link to post
Share on other sites

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

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

Share this post


Link to post
Share on other sites

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

  • Upvote 1

Share this post


Link to post
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now
Sign in to follow this  

  • Recently Browsing   0 members

    No registered users viewing this page.

×
×
  • Create New...