Опубликовано: 4 августа 20187 г Здравствуйте. Делаю хук, идет сравнение в бд по нику залогиненного пользователя, т.е меня. Какая переменная отвечает за того, кто написал сообщение в теме?Нужно $this->member_id заменить на эту переменную.$condition = ['member_id=?', $this->member_id]; public function get_member_nick() { $db = \IPS\sharedstats\DB::get(); $approved = []; $connected = 0; $accs = []; $condition = ['member_id=?', $this->member_id]; if(! \IPS\Settings::i()->connect_master) { $condition = ['member_id=?', $this->ipsconnect_id]; } foreach($db::i('stats')->select('id, status, name, server, active', 'stats_forum_connections', $condition) as $acc) { $connected++; if($acc['status'] === 'approved') { $approved[] = $acc; } $accs[] = $acc; } return [ 'connected' => $connected, 'approved' => $approved, 'accounts' => $accs ]; }
Опубликовано: 4 августа 20187 г Автор Эта функция применяется в хуке /* !Hook Data - DO NOT REMOVE */ public static function hookData() { return array_merge_recursive( array ( 'postContainer' => array ( 0 => array ( 'selector' => 'article > aside.ipsComment_author.cAuthorPane.ipsColumn.ipsColumn_medium.ipsResponsive_hidePhone > ul.cAuthorPane_info.ipsList_reset', 'type' => 'add_inside_start', 'content' => '{template="member_nick" params="\IPS\Member::loggedIn()" group="global" app="sharedstats"}', ) ) ), parent::hookData() ); } /* End Hook Data */
Опубликовано: 4 августа 20187 г Не вижу. {template="member_nick" params="\IPS\Member::loggedIn()"Шаблон и параметр.Попробуйте заменить \IPS\Member::loggedIn() на $comment->author() Изменено 4 августа 20187 г пользователем newbie
Опубликовано: 4 августа 20187 г Автор Не хочет. Вот шаблон {{if \IPS\Member::loggedIn()->member_id AND \IPS\Settings::i()->connect_enabled}} {{foreach $member->member_nick['approved'] as $k => $entry}} <li> <span data-ipstooltip="" _title="{$entry['name']}@{$entry['server']}">{$entry['name']}</span> </li> {{endforeach}} {{endif}}
Опубликовано: 4 августа 20187 г А кеш почистили? Добавьте в шаблон {$member->name}Если выводит имя не автора поста, а текущего юзера, то значит используются старые данные.
Опубликовано: 4 августа 20187 г Автор [[Template sharedstats/front/global/member_nick is throwing an error. This theme may be out of date. Run the support tool in the AdminCP to restore the default theme.]]
Опубликовано: 5 августа 20187 г Автор Прошу прощения, это я затупил. Всё перепроверил, почистил кеш - работает как надо. Большое спасибо за помощь. А где посмотреть все переменные для разных частей форума? Или можно будет тут спрашивать? Ну например, если я захочу где-нибудь в клубах вывести или где-нибудь в профиле пользователя. Изменено 5 августа 20187 г пользователем TemKa_SD
Опубликовано: 5 августа 20187 г А где посмотреть все переменные для разных частей форума?Нигде. Если я создам переменную $superPuper, то откуда Вы будете знать, что это за переменная, не разобравшись? Или можно будет тут спрашивать? Спрашивайте. На то и форум.
Здравствуйте. Делаю хук, идет сравнение в бд по нику залогиненного пользователя, т.е меня. Какая переменная отвечает за того, кто написал сообщение в теме?
Нужно $this->member_id заменить на эту переменную.
public function get_member_nick() { $db = \IPS\sharedstats\DB::get(); $approved = []; $connected = 0; $accs = []; $condition = ['member_id=?', $this->member_id]; if(! \IPS\Settings::i()->connect_master) { $condition = ['member_id=?', $this->ipsconnect_id]; } foreach($db::i('stats')->select('id, status, name, server, active', 'stats_forum_connections', $condition) as $acc) { $connected++; if($acc['status'] === 'approved') { $approved[] = $acc; } $accs[] = $acc; } return [ 'connected' => $connected, 'approved' => $approved, 'accounts' => $accs ]; }