Jump to content
Дизайн и модификация IPS Community IPBSkinsBETA
Search In
  • More options...
Find results that contain...
Find results in...
Sign in to follow this  
HooLIGUN

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

Recommended Posts

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

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

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

Share this post


Link to post
Share on other sites
Цитата

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

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

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

 

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

Share this post


Link to post
Share on other sites

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

В /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'] ?

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

Share this post


Link to post
Share on other sites

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

$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);

 

Share this post


Link to post
Share on other sites
Error: Call to undefined method IPS\plugins\plugin\widgets\block.php::getskill() (0)

Ошибка

Share this post


Link to post
Share on other sites

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

Share this post


Link to post
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now
Sign in to follow this  

  • Recently Browsing   0 members

    No registered users viewing this page.

×
×
  • Create New...