Перейти к контенту

Последние комментарии с ограничениями


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

Invision Gallery v2.0.7

 

Существует такая проблема. Некоторые альбомы и разделы галереи спрятаны от посторонних, то есть даны доступы по маскам. Фотографии и описания видят только те люди, которым дан доступ в эти разделы. Благодаря этому, в галерее есть мини-дневники участников, в которых они рассказывают о своей жизни.

Но в последних комментариях отображаются все комментарии, и из скрытых разделов тоже. Таким образом, закрытые разделы становятся видимыми для посторонних, через последние комментарии ((( Не хотелось бы такой опции, может быть кто-нибудь сталкивался и уже знает решение?

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

 

Спасибо.

Ссылка на комментарий
Поделиться на других сайтах

Неужели никто не может помочь с этим вопросом? Может быть нужно прописать что-то и в последних комментариях не будут отображаться комменты из альбомов с указанными id?

 

Код 10 последних комментариев выглядит вот так:

 

* Displays the last 10 comments made
	 * 
	 * @return void
	 **/
	function new_comments()
	{
		// Get the comments
		$this->ipsclass->DB->cache_add_query( 'get_comment_thumbs', array( 'total' => $this->num ), 'gallery_sql_queries' );
		$res = $this->ipsclass->DB->simple_exec();

		$this->ipsclass->lang['comments10'] = str_replace( "<#NUM#>", $this->num, $this->ipsclass->lang['comments10']);						

		$this->output .= $this->html->index_list_top( $this->ipsclass->lang['comments10'] );			   

		// Loop through the comments
		while( $i = $this->ipsclass->DB->fetch_row( $res ) )
		{
			$i['name'] = $this->glib->make_name_link( $i['author_id'], $i['name'] );
			$i['image'] = $this->glib->make_image_link( $i, $i['thumbnail'] );
			$i['date'] = $this->ipsclass->get_date( $i['post_date'], 'LONG' );
			$this->output .= $this->html->stats_comment_row( $i );
		}

		$this->output .= $this->html->index_list_end();

		$this->output .= $this->html->cat_page_end();

		$this->nav[] = "<a href='".$this->ipsclass->base_url."act=module&module=gallery'>".$this->ipsclass->lang['gallery']."</a>";
		$this->nav[] = $this->ipsclass->lang['comments10'];
	}

 

Что можно прописать для запрета отображения комментариев из закрытого альбома?

 

Или может быть в файле comment_view.php нужно что-то делать?

 

Очень прошу помощи.

Изменено пользователем Lera
Ссылка на комментарий
Поделиться на других сайтах

К сожалению у меня сейчас не стоит форум/галерея локально, но в стиле остального выглядеть это должно примерно так:

 

В файле /modules/gallery/stats.php найти:

			// Get the comments
		$this->ipsclass->DB->cache_add_query( 'get_comment_thumbs', array( 'total' => $this->num ), 'gallery_sql_queries' );
		$res = $this->ipsclass->DB->simple_exec();

и заменить на

			$allow_cats = $this->glib->get_allowed_cats( 1, $this->category->data );
		$allow_albums = $this->glib->get_allowed_albums();
					// ------------------------------------------------------
		// Restrict which categories images are pulled from?
		// ------------------------------------------------------
		if( is_array( $allow_cats ) && $allow_cats != 'no' )
		{
			$cats = implode( ",", $allow_cats );
			$cat_restrict = " i.category_id IN ( {$cats} ) ";
		}
		else if( $allow_cats == -1 )
		{
			$cat_restrict = "category_id=0";
		}

		// ------------------------------------------------------
		// Restrict which albums images are pulled from?
		// ------------------------------------------------------
		if( is_array( $allow_albums ) && $allow_albums != 'no' )
		{
			$album = implode( ",", $allow_albums );
			$album_restrict = " i.album_id IN ( {$album} ) ";
		}
		else if( $allow_albums == -1 )
		{
			$album_restrict = "album_id=0 ";
		}

		// ------------------------------------------------------
		// Format the restrict sql
		// ------------------------------------------------------
		if( $album_restrict && $cat_restrict )
		{
			$restrict = " ( {$cat_restrict} OR {$album_restrict} ) ";
		}
		else if( $album_restrict || $cat_restrict )
		{
			$restrict = " {$album_restrict} {$cat_restrict} ";
		}

		// Get the comments
		$this->ipsclass->DB->cache_add_query( 'get_comment_thumbs', array( 'total' => $this->num, 'restrict' => $restrict ), 'gallery_sql_queries' );
		$res = $this->ipsclass->DB->simple_exec();

 

В файле /sources/sql/mysql_gallery_queries.php найти

	function get_comment_thumbs( $a )
{
	return "SELECT c.*, m.members_display_name AS name, i.directory, i.masked_file_name, i.thumbnail, i.media, i.id
			FROM ibf_gallery_comments c
			LEFT JOIN ibf_members m ON (c.author_id=m.id)
			LEFT JOIN ibf_gallery_images i ON ( c.img_id=i.id )
			ORDER BY pid DESC	
			LIMIT 0,{$a['total']}";
}

и заменить на

	function get_comment_thumbs( $a )
{
	return "SELECT c.*, m.members_display_name AS name, i.directory, i.masked_file_name, i.thumbnail, i.media, i.id
			FROM ibf_gallery_comments c
			LEFT JOIN ibf_members m ON (c.author_id=m.id)
			LEFT JOIN ibf_gallery_images i ON ( c.img_id=i.id )
			WHERE {$a['restrict']}
			ORDER BY pid DESC	
			LIMIT 0,{$a['total']}";
}

К сожалению не могу сейчас помочь более предметно.

Ссылка на комментарий
Поделиться на других сайтах

Но в последних комментариях отображаются все комментарии, и из скрытых разделов тоже. Таким образом, закрытые разделы становятся видимыми для посторонних, через последние комментарии ((( Не хотелось бы такой опции, может быть кто-нибудь сталкивался и уже знает решение?

Вы заходите как админ?

Зайдите как простой юзер и посмотрите, доступны ли комментарии? :D

Ссылка на комментарий
Поделиться на других сайтах

Но в последних комментариях отображаются все комментарии, и из скрытых разделов тоже. Таким образом, закрытые разделы становятся видимыми для посторонних, через последние комментарии ((( Не хотелось бы такой опции, может быть кто-нибудь сталкивался и уже знает решение?

Вы заходите как админ?

Зайдите как простой юзер и посмотрите, доступны ли комментарии? ;)

Я проверяла как простой юзер. :) Все видят последние комментарии из скрытых альбомов.

 

 

Sannis, спасибо огромное. Ты всегда приходишь на помощь. Когда писала не знала, на форуме ты или нет, но так надеялась. Спасибо огромное, попробую поставить и сразу напишу. :D

Ссылка на комментарий
Поделиться на других сайтах

Работает, как часики.

Sannis, ты как всегда, гений в кубе. Теперь те, кому не положено, не видят комментарии из закрытых альбомов. Большое человеческое спасибо. :D

Ссылка на комментарий
Поделиться на других сайтах

Присоединиться к обсуждению

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

Гость
Ответить в этой теме...

×   Вы вставили отформатированный текст.   Удалить форматирование

  Допустимо не более 75 смайлов.

×   Ваша ссылка была автоматически заменена на медиа-контент.   Отображать как ссылку

×   Ваши публикации восстановлены.   Очистить редактор

×   Вы не можете вставить изображения напрямую. Загрузите или вставьте изображения по ссылке.

Зарузка...
×
×
  • Создать...

Важная информация

Находясь на нашем сайте, вы соглашаетесь на использование файлов cookie, а также с нашим положением о конфиденциальности Политика конфиденциальности и пользовательским соглашением Условия использования.