Skip to content

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

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

 

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

Featured Replies

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

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

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

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

  • Author

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

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

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

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

Как создать задачу в 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' );

Create an account or sign in to comment

Account

Navigation

Search

Search

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.