Перейти к содержанию
Quzask

Как вывести баланс

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

Всем привет.

Мне нужно вывести баланс приложения Points Economy в postCotnainer:

joxi_screenshot_1505230767976.png.3b2e72e893dafebdde5b147ed83a233b.png

Я так понимаю, что за баланс отвечает шаблон currencyUserbit:

joxi_screenshot_1505231007228.thumb.png.61a0026be8d2c2ede2f7ebf234b29dfc.png

Нужно вывести в шаблон postContainer:

joxi_screenshot_1505231160774.thumb.png.6d5d3663f5208aaea08e30f0454373e2.png

 

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


Ссылка на сообщение
Поделиться на другие сайты

Можно попробовать поместить шаблон из первого скрина во второй, но это не сработает, т.к. не будет хватать инициирующего условия. В условии должно быть что-то вроде инициализации юзера, разместившего поста, и компонента поинтов, а также наличия этих самых поинтов у юзера. Лень тестить, т.к. нужно ставить поинты. Если кто сможет вывести, то после оплаты поделитесь уж результатом, тоже интересно)

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


Ссылка на сообщение
Поделиться на другие сайты
2 часа назад, Axeland сказал:

Можно попробовать поместить шаблон из первого скрина во второй, но это не сработает, т.к. не будет хватать инициирующего условия.

Пробовал 9_9

2 часа назад, Axeland сказал:

Если кто сможет вывести, то после оплаты поделитесь уж результатом, тоже интересно)

Хорошо. Самое интересное то, что на стандартном postContainer ничего мудрить не надо. Там все выводиться по умолчанию.

Нашел от разработчика такую инструкцию:

The following api method can be used to obtain the net worth value of a member for a particular currency.

Get A Member's Net Worth

class \IPS\points\Currency

/**
* Get net worth as of a certain date/time
*
* @param	\IPS\DateTime		$date			The date/time to retrieve the balance for
* @param	\IPS\Member		$member			The member to retrieve the balance for
* @return	int|float
*/
public function netWorthAsOf( \IPS\DateTime $date=NULL, \IPS\Member $member=NULL );

Example:

/* Load a currency */
$currency = \IPS\points\Currency::load( 1 );

/* Load a member */
$member = \IPS\Member::load( 1 );

/* Get the current net worth of the member for the currency */
$worth = $currency->netWorthAsOf( new \IPS\DateTime( 'now' ), $member );

Сделал у себя так:

{{$currency = \IPS\points\Currency::load( 1 );}}
{{$member = \IPS\Member::load( 94 );}}
{{$worth = $currency->netWorthAsOf( new \IPS\DateTime( 'now' ), $member );}}
<li class="uip hint  hint--right" data-hint="Обычный">
  <span class="leftinfo"><i class="fa fa-jpy" data-ipstooltip="" _title="Валюта"></i></span>
  <span class="rightinfo">{$worth}</span>
</li>

Код работает, но есть проблема. У всех пользователе выводится баланс одного из пользователей. Там где цифра 94 - это и есть id пользователя. Соответственно, если мы укажем свой id, то наш баланс будет отображаться у каждого.

Возвращаемся к сообщению Axeland. Походу нужно сделать 

2 часа назад, Axeland сказал:

В условии должно быть что-то вроде инициализации юзера, разместившего поста

Есть идеи?

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


Ссылка на сообщение
Поделиться на другие сайты

Можно попробовать так сделать: 

{{$member = \IPS\Member::load( $comment->author() );}}

 

Сорри, редачить не могу. 

Точнее вот так: 

{{$member = \IPS\Member::load( $comment->author()->member_id );}}

 

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


Ссылка на сообщение
Поделиться на другие сайты
2 минуты назад, Quzask сказал:

Есть идеи?

Ага, посмотреть условия, которые делают это в том же пост контейнере. Например, на сообщения и т.п. Попробуйте вместо 

{{$member = \IPS\Member::load( 94 );}}

Что-то вроде этого:

{{if $comment->author()->member_id}}

А, ну вот или как @okayvk сказал :) Плохо у меня с логикой условий :) 

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


Ссылка на сообщение
Поделиться на другие сайты
1 минуту назад, okayvk сказал:

Можно попробовать так сделать: 

{{$member = \IPS\Member::load( $comment->author() );}}

 

Ошибка: [[Template forums/front/topics/postContainer is throwing an error. This theme may be out of date. Run the support tool in the AdminCP to restore the default theme.]]

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


Ссылка на сообщение
Поделиться на другие сайты
1 минуту назад, Quzask сказал:

Ошибка: [[Template forums/front/topics/postContainer is throwing an error. This theme may be out of date. Run the support tool in the AdminCP to restore the default theme.]]

Он отредактировал: 

3 минуты назад, okayvk сказал:

Можно попробовать так сделать: 

{{$member = \IPS\Member::load( $comment->author() );}}

 

Сорри, редачить не могу. 

Точнее вот так: 

{{$member = \IPS\Member::load( $comment->author()->member_id );}}

 

 

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


Ссылка на сообщение
Поделиться на другие сайты
1 минуту назад, Axeland сказал:

Точнее вот так: 

{{$member = \IPS\Member::load( $comment->author()->member_id );}}

Работает :D

В итоге код такой:

{{$currency = \IPS\points\Currency::load( 1 );}}
{{$member = \IPS\Member::load( $comment->author()->member_id );}}
{{$worth = $currency->netWorthAsOf( new \IPS\DateTime( 'now' ), $member );}}
<li class="uip hint  hint--right" data-hint="Обычный">
  <span class="leftinfo"><i class="fa fa-jpy" data-ipstooltip="" _title="Валюта"></i></span>
  <span class="rightinfo">{$worth}</span>
</li>

okayvk, так как большую часть задачи я решил самостоятельно, готов 100 перевести на ЯД или ВМ. Если нужно, то скинь реквизиты в ЛС :cj:

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


Ссылка на сообщение
Поделиться на другие сайты
47 минут назад, Quzask сказал:

Работает :D

Вот и замечательно) Вы бы знали, сколько я нервов потратил, чтобы вывести эти значения на 3.х) Так и не вывел) Хорошо, что здесь всё ок.

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


Ссылка на сообщение
Поделиться на другие сайты
2 минуты назад, Axeland сказал:

Вот и замечательно) Вы бы знали, сколько я нервов потратил, чтобы вывести эти значения на 3.х) Так и не вывел) Хорошо, что здесь всё ок.

<span class="rightinfo">{$worth} {$currency->pluralized( $worth )}</span>

Добавляем {$currency->pluralized( $worth )}, чтобы отображалось количество и название валюты.

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


Ссылка на сообщение
Поделиться на другие сайты

Для публикации сообщений создайте учётную запись или авторизуйтесь

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

Создать учетную запись

Зарегистрируйте новую учётную запись в нашем сообществе. Это очень просто!

Регистрация нового пользователя

Войти

Уже есть аккаунт? Войти в систему.

Войти


  • Последние посетители   0 пользователей онлайн

    Ни одного зарегистрированного пользователя не просматривает данную страницу

×