Код пишется в контроллерах и передается методом
$var = [ 1,2,3 ];
\IPS\Theme::i()->getTemplate( 'global' )->file( (array) $var );
А принимается
<ips:template parameters="$var" />
{{foreach $var as $v}}
{$v|raw}
{{endforeach}}
Нашел один неприятный баг в блогах (с помощью которого конкуренты могут заспамить поисковики и тем самым понизить рейтинг сайта в поисковике)
За одно добавил маленькую настройку на количество отображаемых новостей в блоге, которой как всегда не хватает в движке IPS
blogfix.xml
blogfix.xml
Такие дела нужно на программном уровне отправлять в БД/почту. Ибо IP могут подменить в шаблонах., смысла его туда пихать никакого нету
Я привел выше функцию (стандартную IPS) которая определяет IP адрес
-----
Идем
\applications\core\extensions\core\ContactUs\Email.php
Функция
public function handleForm( array $values )
Ищем переменную
$content = $values['contact_text'];
Меняем на
$content = $values['contact_text'] . '<br/> IP Address ' . \IPS\Request::i()->ipAddress();
Всё
Весь функционал лежит тут system почти всякая функция описывается, да и по классу интуитивно понятно что она означает
Вся документация тут https://invisioncommunity.com/developers/docs/general/enabling-developer-mode-r23/
Я думаю стоит немного почитать как работает return , она вернет строку, но не отобразит её. Класс \ips\bd отвечает за sql
Попробуй вернуть так
$var = [
'1' => 'q',
'2' => 'z',
];
\IPS\Output::i()->json( $var );