Перейти к публикации
View in the app

A better way to browse. Learn more.

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

A full-screen app on your home screen with push notifications, badges and more.

To install this app on iOS and iPadOS
  1. Tap the Share icon in Safari
  2. Scroll the menu and tap Add to Home Screen.
  3. Tap Add in the top-right corner.
To install this app on Android
  1. Tap the 3-dot menu (⋮) in the top-right corner of the browser.
  2. Tap Add to Home screen or Install app.
  3. Confirm by tapping Install.

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

Опубликовано:

Доброе утро!

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

 

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

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

Опубликовано:

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

Опубликовано:
  • Автор

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

Опубликовано:
  • Автор

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

Опубликовано:
  • Автор

Никак не пойму, как сделать этот скрипт. Как пример взял этот 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, и все, задача будет автоматически сама работать? Или ее еще нужно как-то активировать в планировщике?

Опубликовано:

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

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

Сейчас на странице 0

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

Configure browser push notifications

Chrome (Android)
  1. Tap the lock icon next to the address bar.
  2. Tap Permissions → Notifications.
  3. Adjust your preference.
Chrome (Desktop)
  1. Click the padlock icon in the address bar.
  2. Select Site settings.
  3. Find Notifications and adjust your preference.