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

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

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

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

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

Премодерация комментариев в Links

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

 

В таблице links_comments создал два поля - link_approved_comments и link_mod_approved_comments (идентичные link_approved и link_mod_approved в таблице links).

Премодерацию комментариев пускай проходят теже группы, которые и проходят премодерацию самих записей Links.

 

Однако как отредактировать файл comments.php для того что бы комментарии проходили премодерацию, я не знаю :(

Поможете?

Вот файл comments.php: comments.zip

 

P.S. Я вас уже видимо малость напряг с этим приложением Links, но очень нужно :)

Изменено пользователем Haktar

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

  • Автор

Для ссылок, на основе хука Последние ссылки, я сделал хук который выводит неутверждённые ссылки на главную страницу. Очень удобно.

linksLatest1Links.zip

Так создайте для комментариев на основе вышеуказанного хука.

  • Автор

Так создайте для комментариев на основе вышеуказанного хука.

Создал. Но неправильно, так как не срабатывает. Вот:

linksLatest4Links.zip

		$this->DB->build( array(	
		'select' =>	'*',
		'from'			=>	array( 'links_comments' => 'lc' ),
		'where'			=>	'comment_approved = 0',
		'limit'			=>	array( 0, 50 ),
		'order'			=>	'comment_added DESC',
		'add_join'  =>  array(
			array(
				'select'    => 'link_id, link_title, link_seo_title, link_url, link_added, link_image',
				'from'      =>  array( 'links' => 'l' ),
				'where'     =>  'lc.comment_link_id = l.link_id'
			),
			array(
				'select'    => 'category_title, category_seo_title, category_notes4, category_id',
				'from'      =>  array( 'links_cats' => 'c' ),
				'where'     =>  'l.link_category_id = c.category_id'
			),
			array(	
				'select'		=>	'member_id, members_display_name, members_seo_name',
				'from'			=>	array( 'members' => 'm' ),
				'where'			=>	'lc.comment_member_id = m.member_id' 
			) 
		) 
	) );

	$this->DB->execute();

	/* Loopy loo */
	$comments = array();
	while ( $row = $this->DB->fetch() )
	{
		$comments[ $row[ 'link_id' ] ] = $row;
	}

	/* Print */
	return $this->registry->output->getTemplate( 'links' )->hookLatest4Links( $comments );

И в шаблоне использовать $comments

  • Автор

@newbie,

Спасибо большое, то что надо!

  • 1 месяц спустя...
  • Автор

Заметил один баг - при удаление комментариев, количество их в счётчиках в категориях и на главной показывает отрицательные показатели. Ну если скажем было комментариев 1, его удалил, и счётчик показывает -1

Я так понял это что то с кешем. Можно как то поправить?

А если в АЦ обновить кеш категорий, счетчик показывает верное значение?

  • Автор

А если в АЦ обновить кеш категорий, счетчик показывает верное значение?

Нет, тоже самое.

 

Я нашёл некое решение для этого:

<if test="$stats['total_comments'] > 0">{$stats[ 'total_comments' ]}<else />0</if>

 

Топорное конечно, но какое есть.

Речь идет о неутвержденных комментариях. Угадал?

  • Автор

Речь идет о неутвержденных комментариях. Угадал?

Абсолютно верно. Минусовка идёт если удаляешь именно неутверждённые комментарии.

admin/applications_addon/other/links/modules_public/links/comments.php

		$update = array( 'link_comments' => $link[ 'link_comments' ] - 1 );

заменить на

		$update = $comment['comment_approved'] ? array( 'link_comments' => $link[ 'link_comments' ] - 1 ) : array();

 

Для перестройки admin/applications_addon/other/links/sources/classLinks.php

Выше

/* I realize I can do this with one query but relying on cache kind of ruins the purpose of this function */

добавить

		$this->DB->build(array(
		'select' =>	'SUM(comment_approved) as sum, comment_link_id',
		'from' => 'links_comments',
		'group' => 'comment_link_id',
	) );

	$o = $this->DB->execute();

	while( $r = $this->DB->fetch($o) )
	{
		$this->DB->update( 'links', array( 'link_comments' => $r['sum'] ), "link_id=" . $r['comment_link_id'] );
	}

  • Автор

заменить на

Там две такие строки, заменить обе?

Там две такие строки, заменить обе?

Только в методе deleteComment().

		$update = array( 'link_comments' => $link[ 'link_comments' ] - 1 ); // Эту строку

	if ( is_array( $lastComment ) && count( $lastComment ) )

  • Автор

@newbie,

Спасибо, вновь выручили.

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

Аккаунт

Навигация

Поиск

Поиск

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

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