Перейти к содержимому
Открыть в приложении

Удобный способ просмотра. Узнать больше.

Дизайн и модификация Invision Community

Полноэкранное приложение на главном экране с push-уведомлениями, медалями и многим другим.

Чтобы установить это приложение на iOS и iPadOS
  1. Нажмите иконку «Поделиться» в Safari
  2. Прокрутите меню и нажмите На экран «Домой».
  3. Нажмите Добавить в правом верхнем углу.
Чтобы установить это приложение на Android
  1. Нажмите меню из трёх точек (⋮) в правом верхнем углу браузера.
  2. Нажмите Добавить на главный экран или Установить приложение.
  3. Подтвердите, нажав Установить.
Русский язык для Invision Community 5

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

Доброе утро!

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

 

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

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

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

  • Автор

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

  • Автор

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

  • Автор

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

 

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

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

  • Автор

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

 

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

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

  • Автор

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

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

Задача

 

<?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 );
}
}

  • Автор

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

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

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

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

Аккаунт

Навигация

Поиск

Поиск

Настроить push-уведомления браузера

Chrome (Android)
  1. Нажмите на иконку замка рядом с адресной строкой.
  2. Нажмите Права доступа -> Уведомления.
  3. Измените свои настройки.
Chrome (компьютер)
  1. Нажмите на иконку замка в адресной строке.
  2. Выберите Настройки сайта.
  3. Найдите Уведомления и измените свои настройки.