Перейти к содержимому
Русский язык для Invision Community 5

Удаление старых изображений из галереи

Удаление старых изображений из галереи автоматически !

 

Не подскажите как это можно сделать ?

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

Зачем их удалять? А если там есть просматриваемые изображения которые несут определенную пользу форуму?

Старые фотобявления не несут никакой пользы кроме места на диске, с учётом того что каждый день добовляют по 10-20 картинок ! )))

Все равно, надо как-то определить какие старые фотографии стоит удалять а какие нет.

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

  • Автор

Как сделать эту задачу ?

Как сделать эту задачу ?

В планировщике задач создается задача + нужно будет написать скрипт.
  • Автор

Кто поможет написать скрипт ?

Как создать задачу в IPB https://www.invisionpower.com/support/guides/_/advanced-and-developers/application/tasks-r202

 

Для удаления изображения в галереи, используется метод $this->registry->gallery->helper('moderate')->deleteImages( $images );

 

	if ( !ipsRegistry::isClassLoaded('gallery') )
	{
		$classToLoad = IPSLib::loadLibrary( IPSLib::getAppDir('gallery') . '/sources/classes/gallery.php', 'ipsGallery', 'gallery' );
		$this->registry->setClass( 'gallery', new $classToLoad( $this->registry ) );
	}

	$old_days = 30;

	$images   = array();
	$idate    = time() - (86400 * $old_days);

	$this->DB->build( array( 'select' => '*', 'from' => 'gallery_images', 'where' => 'idate < '. $idate ) );
	$outer = $this->DB->execute();

	while( $r = $this->DB->fetch($outer) )
	{
		$images[] = $r;
	}

	if( count( $images ) )
	{
		$this->registry->gallery->helper('moderate')->deleteImages( $images );
	}

	$this->class->appendTaskLog( $this->task, 'Deleted '.count( $images ).' old images' );

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

Аккаунт

Навигация

Поиск

Поиск

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

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