Jump to content
Дизайн и модификация IPS Community IPBSkinsBETA
Search In
  • More options...
Find results that contain...
Find results in...
Sign in to follow this  
Haktar

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

Recommended Posts

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

 

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

 

----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
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               |
'----------------------------------------------------------------------------+-------------------------------------------------------------------------------+-------------------'

Edited by Strategius

Share this post


Link to post
Share on other sites

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

 

$this->doExecute( $registry );

Share this post


Link to post
Share on other sites
С новой правкой тоже не работает, выдает такую же ошибку:..

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

Share this post


Link to post
Share on other sites

А не поможет, потому, что запрос к таблице 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

Share this post


Link to post
Share on other sites
Unknown column 'm.topics_started' in 'field list'

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

Share this post


Link to post
Share on other sites
Это вообще откуда взялось? У Вас в таблице members есть столбец topics_started? Уверен, что нет

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

Share this post


Link to post
Share on other sites

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

 

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

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

 

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

Share this post


Link to post
Share on other sites

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

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

  • Upvote 1

Share this post


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

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

 

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

Share this post


Link to post
Share on other sites
привязать Звания не к количеству сообщений, а именно к рейтингу

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

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

Edited by Strategius

Share this post


Link to post
Share on other sites

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

\admin\sources\base\ipsMember.php

 

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

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

  • Upvote 2

Share this post


Link to post
Share on other sites
замени на поле которое содержит твое значение в таблице members

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

Share this post


Link to post
Share on other sites

Да, только дело в том, что $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

Share this post


Link to post
Share on other sites

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

 

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

Edited by Strategius

Share this post


Link to post
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now
Sign in to follow this  

  • Recently Browsing   0 members

    No registered users viewing this page.

×
×
  • Create New...