Общий цифровой рейтинг - Страница 3 - Дизайн и модификация Invision Power Board

Перейти к содержимому

 

Правила раздела

Здесь обсуждаются вопросы по настройке и администрированию форумов IPB 3.x.
Пожалуйста, не оффтопьте, если зашли сюда случайно, и обратите внимание на соседние разделы.
Установка, настройка и обслуживание форумов IPB 2.x.
Оформление форумов, включая верстку скинов.
Размещение рекламы на форумах.
SEO оптимизация форума.
Техническая поддержка наших скинов и модов.

СвернутьПрикрепленные теги

Теги не найдены

  • 4 Страниц +
  • 1
  • 2
  • 3
  • 4

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

#31 Пользователь не на сайте   newbie ответил: »

 
 
  • Advanced
  • Insert nick to fast reply form
  • Quote selected text to fast reply form
  • Группа: IPB Skins.ru Team
  • Сообщений: 2 627
  • Регистрация: 26-Октябрь 11
  • Репутация: 1 083
  • IPB version:I have no IPB
 

Отправлено 26 Январь 2017 - 11:50

Просмотреть сообщениеStrategius сказал(а):

А как в настройках админки кол-во сообщений заменить на кол-во рейтинга?

А какая разница? Читайте "Минимальное количество сообщений для получения звания" как "Минимальный рейтинг, необходимый для получения звания".
Вы же в коде кол-во постов меняете на свое значение. И не более.
1

#32 Пользователь не на сайте   Strategius ответил: »

 
 
  • Advanced
  • ***
  • Смотреть блог
  • Insert nick to fast reply form
  • Quote selected text to fast reply form
  • Группа: Пользователи
  • Сообщений: 765
  • Регистрация: 27-Март 16
  • Репутация: 47
  • IPB version:3.4.x
 

Отправлено 26 Январь 2017 - 12:22

Все работает, спасибо большое!
0

#33 Пользователь не на сайте   Strategius ответил: »

 
 
  • Advanced
  • ***
  • Смотреть блог
  • Insert nick to fast reply form
  • Quote selected text to fast reply form
  • Группа: Пользователи
  • Сообщений: 765
  • Регистрация: 27-Март 16
  • Репутация: 47
  • IPB version:3.4.x
 

Отправлено 09 Октябрь 2017 - 20:16

А возможно ли добавить этот рейтинг в форум как репутацию, чтобы он кэшировался в базе данных и по его переменной можно было создавать условия доступа к функциям форума?

Например:

<if test="$member['grating'] > 1">Отображение кнопки, если рейтинг больше единицы</if>

0

#34 Пользователь не на сайте   newbie ответил: »

 
 
  • Advanced
  • Insert nick to fast reply form
  • Quote selected text to fast reply form
  • Группа: IPB Skins.ru Team
  • Сообщений: 2 627
  • Регистрация: 26-Октябрь 11
  • Репутация: 1 083
  • IPB version:I have no IPB
 

Отправлено 10 Октябрь 2017 - 11:31

Просмотреть сообщениеStrategius сказал(а):

А возможно ли добавить этот рейтинг в форум как репутацию, чтобы он кэшировался в базе данных и по его переменной можно было создавать условия доступа к функциям форума?

Не всегда и не везде доступны данные.

Просмотреть сообщениеStrategius сказал(а):

Например:

Вообще можно так
<if test="(floor($member['posts']/100) + floor($member['pp_reputation_points']/10)) > 1">Отображение кнопки, если рейтинг больше единицы</if>
2

#35 Пользователь не на сайте   Strategius ответил: »

 
 
  • Advanced
  • ***
  • Смотреть блог
  • Insert nick to fast reply form
  • Quote selected text to fast reply form
  • Группа: Пользователи
  • Сообщений: 765
  • Регистрация: 27-Март 16
  • Репутация: 47
  • IPB version:3.4.x
 

Отправлено 10 Октябрь 2017 - 12:22

Цитата

Не всегда и не везде доступны данные.

А нельзя сделать, чтобы рейтинг один раз рассчитался и хранился в таблице, и данные будут браться из нее?

Цитата

<if test="(floor($member['posts']/100) + floor($member['pp_reputation_points']/10)) > 1">Отображение кнопки, если рейтинг больше единицы</if>

Так конечно можно, но это много где необходимо будет исправлять.
0

#36 Пользователь не на сайте   newbie ответил: »

 
 
  • Advanced
  • Insert nick to fast reply form
  • Quote selected text to fast reply form
  • Группа: IPB Skins.ru Team
  • Сообщений: 2 627
  • Регистрация: 26-Октябрь 11
  • Репутация: 1 083
  • IPB version:I have no IPB
 

Отправлено 10 Октябрь 2017 - 14:36

Просмотреть сообщениеStrategius сказал(а):

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

Просмотреть сообщениеStrategius сказал(а):

Так конечно можно, но это много где необходимо будет исправлять.

Добавьте функцию, например, в класс IPSMember.
0

#37 Пользователь не на сайте   Strategius ответил: »

 
 
  • Advanced
  • ***
  • Смотреть блог
  • Insert nick to fast reply form
  • Quote selected text to fast reply form
  • Группа: Пользователи
  • Сообщений: 765
  • Регистрация: 27-Март 16
  • Репутация: 47
  • IPB version:3.4.x
 

Отправлено 10 Октябрь 2017 - 14:44

Цитата

Так это же переменная величина, которая зависит от постов и репутации.

Понял. Да, это слишком сложно получается.

Цитата

Добавьте функцию, например, в класс IPSMember.

А как это сделать, не подскажете?

Сообщение изменено: Strategius (10 Октябрь 2017 - 14:45)

0

#38 Пользователь не на сайте   newbie ответил: »

 
 
  • Advanced
  • Insert nick to fast reply form
  • Quote selected text to fast reply form
  • Группа: IPB Skins.ru Team
  • Сообщений: 2 627
  • Регистрация: 26-Октябрь 11
  • Репутация: 1 083
  • IPB version:I have no IPB
 

Отправлено 10 Октябрь 2017 - 14:54

Просмотреть сообщениеStrategius сказал(а):

А как это сделать, не подскажете?


Открываете admin/sources/base/ipsMember.php
И добавляете что-то типа
	public static function rating($member)
	{
		if (isset($member['posts']) and isset($member['pp_reputation_points']))
		{
			return (floor($member['posts']/100) + floor($member['pp_reputation_points']/10));
		}
		
		return 0;
	}

Далее в шаблоне используете
<if test="IPSMember::rating($member) > 1">Отображение кнопки, если рейтинг больше единицы</if>

2

#39 Пользователь не на сайте   Strategius ответил: »

 
 
  • Advanced
  • ***
  • Смотреть блог
  • Insert nick to fast reply form
  • Quote selected text to fast reply form
  • Группа: Пользователи
  • Сообщений: 765
  • Регистрация: 27-Март 16
  • Репутация: 47
  • IPB version:3.4.x
 

Отправлено 16 Октябрь 2017 - 12:03

newbie, а Вы не подскажете, как добавить к Вашему методу из поста #15 дополнительные выборки в виде сортировки по репутации и статьям (компонент установлен).

Добавляю эти выборки в выпадающий список (что в расширенных фильтрах поиска), но почему-то работает только выборка по $grating.

$this->DB->build( array( 'select'    => ' m.member_id',

меняю на:

$grating = "(FLOOR(m.posts/100) + FLOOR(pp.pp_reputation_points/10)) AS grating";
			$reputation = "(FLOOR(pp.pp_reputation_points)) AS reputation";
			$articles = "(FLOOR(m.tutorials_articles)) AS articles";
			$this->DB->build( array( 'select'    => "m.member_id, {$grating}, {$reputation}, {$articles}",

А эта строка:

if ( $_queryPP )

Заменена на:

if ( $_queryPP or 1==1 )

Но выборка в выпадающем списке работает только по $grating, по репутации и статьям выдает ошибку базы данных. Подозреваю, что из-за обращения к не существующим полям в таблице members, но по рейтингу-то работает...

Лог ошибки:

mySQL query error: SELECT m.member_id FROM members m  LEFT JOIN pfields_content p ON ( p.member_id=m.member_id ) 
 LEFT JOIN profile_portal pp ON ( pp.pp_member_id=m.member_id )   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 articles desc LIMIT 0,20

0

#40 Пользователь не на сайте   newbie ответил: »

 
 
  • Advanced
  • Insert nick to fast reply form
  • Quote selected text to fast reply form
  • Группа: IPB Skins.ru Team
  • Сообщений: 2 627
  • Регистрация: 26-Октябрь 11
  • Репутация: 1 083
  • IPB version:I have no IPB
 

Отправлено 16 Октябрь 2017 - 15:15

Просмотреть сообщениеStrategius сказал(а):

Лог ошибки:

Тут только запрос. Где сама ошибка?
0

#41 Пользователь не на сайте   Strategius ответил: »

 
 
  • Advanced
  • ***
  • Смотреть блог
  • Insert nick to fast reply form
  • Quote selected text to fast reply form
  • Группа: Пользователи
  • Сообщений: 765
  • Регистрация: 27-Март 16
  • Репутация: 47
  • IPB version:3.4.x
 

Отправлено 16 Октябрь 2017 - 15:22

Цитата

Тут только запрос. Где сама ошибка?

Вот, все что было в файле...

Date: Mon, 16 Oct 2017 09:02:38 +0000
 Error: 1054 - Unknown column 'articles' in 'order clause'
 IP Address: /index.php?app=members&module=list
 ----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
 mySQL query error: SELECT m.member_id FROM members m  LEFT JOIN pfields_content p ON ( p.member_id=m.member_id ) 
 LEFT JOIN profile_portal pp ON ( pp.pp_member_id=m.member_id )   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 articles desc LIMIT 0,20
 .--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------.
 | File                                                                       | Function                                                                      | Line No.          |
 |----------------------------------------------------------------------------+-------------------------------------------------------------------------------+-------------------|
 | test.ru\admin\sources\base\ipsController.php    | [public_members_list_view].doExecute                                          | 306               |
 '----------------------------------------------------------------------------+-------------------------------------------------------------------------------+-------------------'

0

#42 Пользователь не на сайте   newbie ответил: »

 
 
  • Advanced
  • Insert nick to fast reply form
  • Quote selected text to fast reply form
  • Группа: IPB Skins.ru Team
  • Сообщений: 2 627
  • Регистрация: 26-Октябрь 11
  • Репутация: 1 083
  • IPB version:I have no IPB
 

Отправлено 17 Октябрь 2017 - 09:40

Вот ошибка

Цитата

Unknown column 'articles' in 'order clause'

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

#43 Пользователь не на сайте   Strategius ответил: »

 
 
  • Advanced
  • ***
  • Смотреть блог
  • Insert nick to fast reply form
  • Quote selected text to fast reply form
  • Группа: Пользователи
  • Сообщений: 765
  • Регистрация: 27-Март 16
  • Репутация: 47
  • IPB version:3.4.x
 

Отправлено 17 Октябрь 2017 - 12:18

newbie, а, понял. Значит, всё-таки в статьях ошибка закопалась?
Вот, это тот файл, с которым тестировал: Вложение  view.php (19,26К)
Количество загрузок: 1
0

#44 Пользователь не на сайте   newbie ответил: »

 
 
  • Advanced
  • Insert nick to fast reply form
  • Quote selected text to fast reply form
  • Группа: IPB Skins.ru Team
  • Сообщений: 2 627
  • Регистрация: 26-Октябрь 11
  • Репутация: 1 083
  • IPB version:I have no IPB
 

Отправлено 17 Октябрь 2017 - 13:10

			$this->DB->build( array( 'select'    => 'm.member_id' . (($this->sort_key == 'grating') ? ", (FLOOR(m.posts/100) + FLOOR(m.topics_started/10) + FLOOR(m.tutorials_articles/5) + FLOOR(pp.pp_reputation_points/20)) AS grating" : ''),
									 ............................................................
									 'order'	 => $this->sort_key . ' ' . $this->sort_order,

Обратите внимание на select.
Когда сортировка идет по grating, то select выглядит как
SELECT m.member_id, (FLOOR(m.posts/100) + FLOOR(m.topics_started/10) + FLOOR(m.tutorials_articles/5) + FLOOR(pp.pp_reputation_points/20)) AS grating

Во всех остальных случаях
SELECT m.member_id

А в order используется $this->sort_key, значение которого при вышеуказанной ошибке равно articles. Естественно данного поля нет.
0

#45 Пользователь не на сайте   Strategius ответил: »

 
 
  • Advanced
  • ***
  • Смотреть блог
  • Insert nick to fast reply form
  • Quote selected text to fast reply form
  • Группа: Пользователи
  • Сообщений: 765
  • Регистрация: 27-Март 16
  • Репутация: 47
  • IPB version:3.4.x
 

Отправлено 17 Октябрь 2017 - 13:24

newbie, если честно, не понял... Строка

$this->DB->build( array( 'select'    => 'm.member_id' . (($this->sort_key == 'grating') ? ", (FLOOR(m.posts/100) + FLOOR(m.topics_started/10) + FLOOR(m.tutorials_articles/5) + FLOOR(pp.pp_reputation_points/20)) AS grating" : ''),

У меня отвечает за кнопку выборки по рейтингу, она работает, а список сортировок, который не работает находится в строке ниже, с ней и проблема...

$this->DB->build( array( 'select'    => "m.member_id, {$grating}, {$reputation}, {$articles}",

Исправил, как Вы написали, но все равно не работает.
0

Сообщить об этой теме:


  • 4 Страниц +
  • 1
  • 2
  • 3
  • 4


Быстрый ответ

  

1 пользователей читают эту тему
0 зарегистрированных, 1 гостей, 0 скрытых


Контактная информация

Вопросы по работе сайта

+7 (917) 501-4765
C 10 до 20 в рабочие дни (время московское)

Техническая поддержка

Контактные данные специалистов

Дизайн форумов

IPB 3.x ¦ IPB 2.x

Бесплатные шаблоны

IPB 3.2 – 3.4 ¦ IPB 3.1 ¦ IPB 3.0 ¦ IPB 2.2 – 2.3 ¦ IPB 2.1 ¦ Клипарт
Лицензия на использование ¦ Ваша поддержка ¦ О проекте
Copyright © 2005-2017 IPBSkins.ru Team
При копировании материалов с сайта
прямая ссылка на источник обязательна