Перейти к публикации
Дизайн и модификация IPS Community IPBSkinsBETA
Поиск в
  • Дополнительно...
Искать результаты, содержащие...
Искать результаты в...
Trotor

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

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

Так они и так идут одобренными.

Я условие взял такое же, какое используется для ссылок

Да да, всё верно. Это я малость попутался :)

 

Тогда другой вопрос: Как бы сделать что бы контролировать неутверждёные комментарии? То есть список всех таких комментариев на одной странице. Как примерно сделано это с ссылками.

Поделиться сообщением


Ссылка на сообщение

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

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

  • Upvote 1

Поделиться сообщением


Ссылка на сообщение

@newbie,

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

Поделиться сообщением


Ссылка на сообщение

Заметил один баг - при удаление комментариев, количество их в счётчиках в категориях и на главной показывает отрицательные показатели. Ну если скажем было комментариев 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'] );
	}

  • Upvote 1

Поделиться сообщением


Ссылка на сообщение

заменить на

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

Поделиться сообщением


Ссылка на сообщение

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

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

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

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

  • Upvote 1

Поделиться сообщением


Ссылка на сообщение

@newbie,

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

Поделиться сообщением


Ссылка на сообщение

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

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

Создать аккаунт

Зарегистрируйтесь для получения аккаунта. Это просто!

Зарегистрировать аккаунт

Войти

Уже зарегистрированы? Войдите здесь.

Войти сейчас

  • Сейчас на странице   0 пользователей

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

×
×
  • Создать...