Перейти к публикации
View in the app

A better way to browse. Learn more.

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

A full-screen app on your home screen with push notifications, badges and more.

To install this app on iOS and iPadOS
  1. Tap the Share icon in Safari
  2. Scroll the menu and tap Add to Home Screen.
  3. Tap Add in the top-right corner.
To install this app on Android
  1. Tap the 3-dot menu (⋮) in the top-right corner of the browser.
  2. Tap Add to Home screen or Install app.
  3. Confirm by tapping Install.

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

Опубликовано:

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

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

Например взять $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 недели спустя...
Опубликовано:

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

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

Сейчас на странице 0

  • Нет пользователей, просматривающих эту страницу.

Configure browser push notifications

Chrome (Android)
  1. Tap the lock icon next to the address bar.
  2. Tap Permissions → Notifications.
  3. Adjust your preference.
Chrome (Desktop)
  1. Click the padlock icon in the address bar.
  2. Select Site settings.
  3. Find Notifications and adjust your preference.