HooLIGUN 10 09/30/2021 03:38 PM Добрый день. Пробую писать небольшие плагины. Элементы стилей вроде понял как вставлять. Подскажите, как например, получить какую либо информацию о пользователе, обработать ее какой нибудь своей функцией и вывести результат в какой нибудь шаблон? Например взять $member->steam, написать функцию конвертирования, вставить эту функцию в хук (кода? стиля?) и в хуке стиля вывести результат конвертирования, например {convert($member->steam)} и получить результат данной функции Share this post Link to post
Lesovsky 149 10/03/2021 12:01 PM Цитата Подскажите, как например, получить какую либо информацию о пользователе, обработать ее какой нибудь своей функцией и вывести результат в какой нибудь шаблон? Попробуйте так: \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
HooLIGUN 10 10/29/2021 10:39 AM Смотрите, пишу например виджет. В /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
siv1987 2,623 10/29/2021 01:34 PM Самый простой вариант в этом случае написать функцию в самом виджете, и вызывать ее там, а в шаблон передать готовые данные. $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
HooLIGUN 10 10/29/2021 06:33 PM Error: Call to undefined method IPS\plugins\plugin\widgets\block.php::getskill() (0) Ошибка Share this post Link to post
siv1987 2,623 11/13/2021 06:23 AM Кусок кода покажите. Что за метод там вызывается? Share this post Link to post