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

Общий цифровой рейтинг

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

01/23/17 08:00 (изменено)

Извиняюсь, до меня потом дошло, что нужно было логи показать :)

 

С новой правкой тоже не работает, выдает такую же ошибку:..

 

----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
Date: Mon, 23 Jan 2017 10:55:59 +0300
Error: 1054 - Unknown column 'm.topics_started' in 'field list'
IP Address: 127.0.0.1 - /index.php?/members/
----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
mySQL query error: SELECT m.member_id, (FLOOR(m.posts/10) + FLOOR(m.topics_started/10) + FLOOR(m.tutorials_articles/3) + FLOOR(pp.pp_reputation_points/10)) AS grating FROM members m WHERE m.members_l_display_name !='' AND m.members_l_display_name  IS NOT NULL  AND m.member_group_id NOT IN(5) AND m.member_banned=0 AND ( ! ( members_bitoptions & 1 ) != 0) ORDER BY members_l_display_name asc LIMIT 0,20
.--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------.
| File                                                                       | Function                                                                      | Line No.          |
|----------------------------------------------------------------------------+-------------------------------------------------------------------------------+-------------------|
| C:\OpenServer\domains\test-34.ru\admin\sources\base\ipsController.php      | [public_members_list_view].doExecute                                          | 306               |
'----------------------------------------------------------------------------+-------------------------------------------------------------------------------+-------------------'
----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
Date: Mon, 23 Jan 2017 10:56:45 +0300
Error: 1054 - Unknown column 'pp.pp_reputation_points' in 'field list'
IP Address: 127.0.0.1 - /index.php?/members/
----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
mySQL query error: SELECT m.member_id, (FLOOR(m.posts/100) + FLOOR(pp.pp_reputation_points/10)) AS grating FROM members m WHERE m.members_l_display_name !='' AND m.members_l_display_name  IS NOT NULL  AND m.member_group_id NOT IN(5) AND m.member_banned=0 AND ( ! ( members_bitoptions & 1 ) != 0) ORDER BY members_l_display_name asc LIMIT 0,20
.--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------.
| File                                                                       | Function                                                                      | Line No.          |
|----------------------------------------------------------------------------+-------------------------------------------------------------------------------+-------------------|
| C:\OpenServer\domains\test-34.ru\admin\sources\base\ipsController.php      | [public_members_list_view].doExecute                                          | 306               |
'----------------------------------------------------------------------------+-------------------------------------------------------------------------------+-------------------'
----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
Date: Mon, 23 Jan 2017 10:57:17 +0300
Error: 1054 - Unknown column 'm.topics_started' in 'field list'
IP Address: 127.0.0.1 - /index.php?/members/
----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
mySQL query error: SELECT m.member_id, (FLOOR(m.posts/10) + FLOOR(m.topics_started/10) + FLOOR(m.tutorials_articles/3) + FLOOR(pp.pp_reputation_points/10)) AS grating FROM members m WHERE m.members_l_display_name !='' AND m.members_l_display_name  IS NOT NULL  AND m.member_group_id NOT IN(5) AND m.member_banned=0 AND ( ! ( members_bitoptions & 1 ) != 0) ORDER BY members_l_display_name asc LIMIT 0,20
.--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------.
| File                                                                       | Function                                                                      | Line No.          |
|----------------------------------------------------------------------------+-------------------------------------------------------------------------------+-------------------|
| C:\OpenServer\domains\test-34.ru\admin\sources\base\ipsController.php      | [public_members_list_view].doExecute                                          | 306               |
'----------------------------------------------------------------------------+-------------------------------------------------------------------------------+-------------------'
----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
Date: Mon, 23 Jan 2017 10:58:39 +0300
Error: 1054 - Unknown column 'm.topics_started' in 'field list'
IP Address: 127.0.0.1 - /index.php?/members/
----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
mySQL query error: SELECT m.member_id, (FLOOR(m.posts/10) + FLOOR(m.topics_started/10) + FLOOR(m.tutorials_articles/3) + FLOOR(pp.pp_reputation_points/10)) AS grating FROM members m WHERE m.members_l_display_name !='' AND m.members_l_display_name  IS NOT NULL  AND m.member_group_id NOT IN(5) AND m.member_banned=0 AND ( ! ( members_bitoptions & 1 ) != 0) ORDER BY members_l_display_name asc LIMIT 0,20
.--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------.
| File                                                                       | Function                                                                      | Line No.          |
|----------------------------------------------------------------------------+-------------------------------------------------------------------------------+-------------------|
| C:\OpenServer\domains\test-34.ru\admin\sources\base\ipsController.php      | [public_members_list_view].doExecute                                          | 306               |
'----------------------------------------------------------------------------+-------------------------------------------------------------------------------+-------------------'

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

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


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

Строка, вызывающая ошибку, находится в файле admin\sources\base\ipsController.php

 

$this->doExecute( $registry );

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


Ссылка на сообщение
С новой правкой тоже не работает, выдает такую же ошибку:..

Исправил условие.

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


Ссылка на сообщение
Исправил условие.

Все равно ошибку выдает :(

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


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

А не поможет, потому, что запрос к таблице profile_portal делается по дефолту, с этими правками, не только при сортировке по ключам 'pp_rating_real' и 'grating'.

 

Можно так - найти:

		$joins		= array();

	if ( $_queryPP )
	{
		$joins[] 	= array( 'from' => array( 'pfields_content' => 'p' ), 'where' => 'p.member_id=m.member_id', 'type' => 'left' );
		$joins[] 	= array( 'from' => array( 'profile_portal' => 'pp' ), 'where' => 'pp.pp_member_id=m.member_id', 'type' => 'left' );
	}

Заменить на:

		$joins = array(
		array(
			'from'	=> array( 'profile_portal' => 'pp' ),
			'where'	=> 'pp.pp_member_id=m.member_id',
			'type'	=> 'left'
			)
		);

	if ( $_queryPP )
	{
		$joins[]	= array( 'from' => array( 'pfields_content' => 'p' ), 'where' => 'p.member_id=m.member_id', 'type' => 'left' );
	}

  • Upvote 1

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


Ссылка на сообщение
Unknown column 'm.topics_started' in 'field list'

Это вообще откуда взялось? У Вас в таблице members есть столбец topics_started? Уверен, что нет

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


Ссылка на сообщение
Это вообще откуда взялось? У Вас в таблице members есть столбец topics_started? Уверен, что нет

У меня установлен хук Number Of Topics Started :)

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


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

Странно, заработало в обоих случаях, и с методом от @Dmitriy427, и @newbie, но только с такой выборкой:

 

(FLOOR(m.posts/10) + FLOOR(pp.pp_reputation_points/10)

Т.е. не работает фильтр по статьям и темам (хотя компоненты устновлены и таблицы есть).

 

+ FLOOR(m.topics_started/10) + FLOOR(m.tutorials_articles/3)

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


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

Вы запрашиваете не существующие в таблице 'm.' ("members") поля.

Для таких запросов нужно дописывать $joins[] и обращаться к соответствующим таблицам.

  • Upvote 1

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


Ссылка на сообщение
Вы запрашиваете не существующие в таблице 'm.' ("members") поля.

Все, исправил, туплю уже :) На тестовом не был установлен этот хук )

 

Вопрос еще один по рейтингу - возможно ли присвоить ему переменную, чтобы можно было использовать для ограничения функций форума по количеству баллов рейтинга? Или, например, привязать Звания не к количеству сообщений, а именно к рейтингу?

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


Ссылка на сообщение
01/25/17 09:47 (изменено)
привязать Звания не к количеству сообщений, а именно к рейтингу

Не подскажете, возможно ли такое реализовать, не переделывая глобально уже созданную систему рейтинга?

Чтобы именно система званий зависела не от кол-ва сообщений, а от баллов рейтинга.

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

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


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

Ты ранги имеешь ввиду?

\admin\sources\base\ipsMember.php

 

if ( $member['posts'] >= $v['POSTS'] )

$member['posts'] замени на поле которое содержит твое значение в таблице members.

  • Upvote 2

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


Ссылка на сообщение
замени на поле которое содержит твое значение в таблице members

Да, только дело в том, что $grating - величина динамическая и рассчитывается по формуле, и в поле таблицы не заносится... А можно ли сделать, чтобы он либо кешировался, ибо заносился в поле таблицы?

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


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

Да, только дело в том, что $grating - величина динамическая и рассчитывается по формуле, и в поле таблицы не заносится... А можно ли сделать, чтобы он либо кешировался, ибо заносился в поле таблицы?

 

Так рассчитайте рейтинг сперва, а после сравнивайте.

Выше

			foreach( $rank_cache as $k => $v)

добавьте

$rating = $member['posts'] + $member['pp_reputation_points']; // Тут сами определите формулу

После это

if ( $member['posts'] >= $v['POSTS'] )

замените на

if ( $rating >= $v['POSTS'] )

  • Upvote 1

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


Ссылка на сообщение
01/26/17 08:43 (изменено)

Примерно так я уже пытался сделать, но не получалось ) Спасибо Вам большое! А как в настройках админки кол-во сообщений заменить на кол-во рейтинга? Чтобы вручную можно было настраивать.

 

Вот тут АЦ - Members > Member Ranks > Member Rank Set Up.

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

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


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

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

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

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

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

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

Войти

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

Войти сейчас

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

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

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