Перейти к содержимому
Открыть в приложении

Удобный способ просмотра. Узнать больше.

Дизайн и модификация Invision Community

Полноэкранное приложение на главном экране с push-уведомлениями, медалями и многим другим.

Чтобы установить это приложение на iOS и iPadOS
  1. Нажмите иконку «Поделиться» в Safari
  2. Прокрутите меню и нажмите На экран «Домой».
  3. Нажмите Добавить в правом верхнем углу.
Чтобы установить это приложение на Android
  1. Нажмите меню из трёх точек (⋮) в правом верхнем углу браузера.
  2. Нажмите Добавить на главный экран или Установить приложение.
  3. Подтвердите, нажав Установить.
Русский язык для Invision Community 5

Функции плагинов

Добрый день. Пробую писать небольшие плагины. Элементы стилей вроде понял как вставлять.

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

Например взять $member->steam,  написать функцию конвертирования, вставить эту функцию в хук (кода? стиля?) и в хуке стиля вывести результат конвертирования, например {convert($member->steam)} и получить результат данной функции

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

Цитата

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

Попробуйте так:

\IPS\Output::i()->sendOutput( \IPS\Theme::i()->getTemplate( 'plugins', 'core', 'global' )->yourTemplatePluginName($var1, $var2) );

 

А так по плагинам помогает раздел в документации для разработчиков - Complete example of a plugin in IPS Community Suite

  • 4 недели спустя...
  • Автор

Смотрите, пишу например виджет.

В /plugins/plugname/widgets/plugkey.php 

в функции public function render() сделал запрос к бд

$sql="SELECT * FROM `stats`.`users`";
$get_users = \IPS\Db::i()->query($sql);
return $this->output($get_users);

в /plugins/hlstatstop/dev/html/plugkey.phtml

<ips:template parameters="$get_users,$orientation='vertical'" />
{{foreach $get_users as $users}}
{$users['score']}
{{endforeach}}

Например, хочу создать и использовать функцию 

function score_info ($score) 
{
  if ($score == 0) 
  {
      $score_data = 'Плохо';
  }
  elseif ($score >= 10 && $score <= 19) 
  {
      $score_data = 'Средне';
  }
  elseif ($score >= 20 && $score <= 30) 
  {
  $score_data = 'Хорошо';
  }
return $score_data;
}

Как мне применить функцию score_info() для $users['score'] ?

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

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

$sql="SELECT * FROM `stats`.`users`";
$get_users = iterator_to_array( \IPS\Db::i()->query($sql) );

foreach($get_users as &$user){
	$user['score_info'] = $this->score_info( $user['score'] );
}
unset($user);

return $this->output($get_users);

 

  • Автор
Error: Call to undefined method IPS\plugins\plugin\widgets\block.php::getskill() (0)

Ошибка

  • 2 недели спустя...

Кусок кода покажите. Что за метод там вызывается?

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

Аккаунт

Навигация

Поиск

Поиск

Настроить push-уведомления браузера

Chrome (Android)
  1. Нажмите на иконку замка рядом с адресной строкой.
  2. Нажмите Права доступа -> Уведомления.
  3. Измените свои настройки.
Chrome (компьютер)
  1. Нажмите на иконку замка в адресной строке.
  2. Выберите Настройки сайта.
  3. Найдите Уведомления и измените свои настройки.