Strategius 52 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 | '----------------------------------------------------------------------------+-------------------------------------------------------------------------------+-------------------' Изменено 23 января 2017 пользователем Strategius Поделиться сообщением Ссылка на сообщение
Strategius 52 01/23/17 08:04 Строка, вызывающая ошибку, находится в файле admin\sources\base\ipsController.php $this->doExecute( $registry ); Поделиться сообщением Ссылка на сообщение
newbie 1723 01/23/17 08:16 С новой правкой тоже не работает, выдает такую же ошибку:..Исправил условие. Поделиться сообщением Ссылка на сообщение
Strategius 52 01/23/17 08:29 Исправил условие.Все равно ошибку выдает :( Поделиться сообщением Ссылка на сообщение
Dmitriy427 198 01/23/17 08:38 А не поможет, потому, что запрос к таблице 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' ); } 1 Поделиться сообщением Ссылка на сообщение
newbie 1723 01/23/17 08:38 Unknown column 'm.topics_started' in 'field list'Это вообще откуда взялось? У Вас в таблице members есть столбец topics_started? Уверен, что нет Поделиться сообщением Ссылка на сообщение
Strategius 52 01/23/17 08:43 Это вообще откуда взялось? У Вас в таблице members есть столбец topics_started? Уверен, что нетУ меня установлен хук Number Of Topics Started :) Поделиться сообщением Ссылка на сообщение
Strategius 52 01/23/17 08:52 Странно, заработало в обоих случаях, и с методом от @Dmitriy427, и @newbie, но только с такой выборкой: (FLOOR(m.posts/10) + FLOOR(pp.pp_reputation_points/10)Т.е. не работает фильтр по статьям и темам (хотя компоненты устновлены и таблицы есть). + FLOOR(m.topics_started/10) + FLOOR(m.tutorials_articles/3) Поделиться сообщением Ссылка на сообщение
Dmitriy427 198 01/23/17 08:59 Вы запрашиваете не существующие в таблице 'm.' ("members") поля.Для таких запросов нужно дописывать $joins[] и обращаться к соответствующим таблицам. 1 Поделиться сообщением Ссылка на сообщение
Strategius 52 01/23/17 09:02 Вы запрашиваете не существующие в таблице 'm.' ("members") поля.Все, исправил, туплю уже :) На тестовом не был установлен этот хук ) Вопрос еще один по рейтингу - возможно ли присвоить ему переменную, чтобы можно было использовать для ограничения функций форума по количеству баллов рейтинга? Или, например, привязать Звания не к количеству сообщений, а именно к рейтингу? Поделиться сообщением Ссылка на сообщение
Strategius 52 01/25/17 09:47 (изменено) привязать Звания не к количеству сообщений, а именно к рейтингуНе подскажете, возможно ли такое реализовать, не переделывая глобально уже созданную систему рейтинга? Чтобы именно система званий зависела не от кол-ва сообщений, а от баллов рейтинга. Изменено 25 января 2017 пользователем Strategius Поделиться сообщением Ссылка на сообщение
avtobus 6 01/25/17 21:32 Ты ранги имеешь ввиду? \admin\sources\base\ipsMember.php if ( $member['posts'] >= $v['POSTS'] )$member['posts'] замени на поле которое содержит твое значение в таблице members. 2 Поделиться сообщением Ссылка на сообщение
Strategius 52 01/26/17 08:08 замени на поле которое содержит твое значение в таблице membersДа, только дело в том, что $grating - величина динамическая и рассчитывается по формуле, и в поле таблицы не заносится... А можно ли сделать, чтобы он либо кешировался, ибо заносился в поле таблицы? Поделиться сообщением Ссылка на сообщение
newbie 1723 01/26/17 08:25 Да, только дело в том, что $grating - величина динамическая и рассчитывается по формуле, и в поле таблицы не заносится... А можно ли сделать, чтобы он либо кешировался, ибо заносился в поле таблицы? Так рассчитайте рейтинг сперва, а после сравнивайте.Выше foreach( $rank_cache as $k => $v)добавьте $rating = $member['posts'] + $member['pp_reputation_points']; // Тут сами определите формулуПосле это if ( $member['posts'] >= $v['POSTS'] )замените на if ( $rating >= $v['POSTS'] ) 1 Поделиться сообщением Ссылка на сообщение
Strategius 52 01/26/17 08:43 (изменено) Примерно так я уже пытался сделать, но не получалось ) Спасибо Вам большое! А как в настройках админки кол-во сообщений заменить на кол-во рейтинга? Чтобы вручную можно было настраивать. Вот тут АЦ - Members > Member Ranks > Member Rank Set Up. Изменено 26 января 2017 пользователем Strategius Поделиться сообщением Ссылка на сообщение