HooLIGUN 10 09/30/21 15:38 Добрый день. Пробую писать небольшие плагины. Элементы стилей вроде понял как вставлять. Подскажите, как например, получить какую либо информацию о пользователе, обработать ее какой нибудь своей функцией и вывести результат в какой нибудь шаблон? Например взять $member->steam, написать функцию конвертирования, вставить эту функцию в хук (кода? стиля?) и в хуке стиля вывести результат конвертирования, например {convert($member->steam)} и получить результат данной функции Поделиться сообщением Ссылка на сообщение
Lesovsky 162 10/03/21 12:01 Цитата Подскажите, как например, получить какую либо информацию о пользователе, обработать ее какой нибудь своей функцией и вывести результат в какой нибудь шаблон? Попробуйте так: \IPS\Output::i()->sendOutput( \IPS\Theme::i()->getTemplate( 'plugins', 'core', 'global' )->yourTemplatePluginName($var1, $var2) ); А так по плагинам помогает раздел в документации для разработчиков - Complete example of a plugin in IPS Community Suite Поделиться сообщением Ссылка на сообщение
HooLIGUN 10 10/29/21 10:39 Смотрите, пишу например виджет. В /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'] ? Эту функцию можно использовать с помощью условий, но это только пример, по факту функция сложнее. Хочу разобраться, как использовать функции в плагинах, виджетах. Поделиться сообщением Ссылка на сообщение
siv1987 2627 10/29/21 13:34 Самый простой вариант в этом случае написать функцию в самом виджете, и вызывать ее там, а в шаблон передать готовые данные. $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); Поделиться сообщением Ссылка на сообщение
HooLIGUN 10 10/29/21 18:33 Error: Call to undefined method IPS\plugins\plugin\widgets\block.php::getskill() (0) Ошибка Поделиться сообщением Ссылка на сообщение
siv1987 2627 11/13/21 06:23 Кусок кода покажите. Что за метод там вызывается? Поделиться сообщением Ссылка на сообщение