UserTopics
- rxu
- Сообщения: 1125
- Зарегистрирован: 21 янв 2014, 21:20
- Откуда: Krasnoyarsk
- Github repo: https://github.com/rxu
- Контактная информация:
UserTopics
[ref]Alecto[/ref], посмотрите, что вам Татьяна5 пишет вверху.
UserTopics
посмотрел, простите - не потянул.
слишком сложная для меня конструкция получается.
слишком сложная для меня конструкция получается.
UserTopics
Вместо S_FORUM_THANKS сложно задать свою переменную? Остальной код 1 в 1 копируется
- rxu
- Сообщения: 1125
- Зарегистрирован: 21 янв 2014, 21:20
- Откуда: Krasnoyarsk
- Github repo: https://github.com/rxu
- Контактная информация:
UserTopics
[ref]Alecto[/ref], там всё просто - надо добавлять переменные в $post_row, чтобы в каждом посте было свое значение.
UserTopics
кому какrxu писал(а):QR_BBPOST там всё просто
Код: Выделить всё
$row = $event['row'];
$postrow = $event['post_row'];
$topic_data = $event['topic_data'];
$forum_id = (int) $row['forum_id'];
$poster_id = (int) $row['user_id'];
$poster_id = array_merge($postrow, array(
'S_MY' => ($this->auth->acl_get('poster_id', $postrow)) ? true : false,
));
- rxu
- Сообщения: 1125
- Зарегистрирован: 21 янв 2014, 21:20
- Откуда: Krasnoyarsk
- Github repo: https://github.com/rxu
- Контактная информация:
UserTopics
Что это должно значить?Alecto писал(а):QR_BBPOST acl_get('poster_id', $postrow)
UserTopics
получить айди постера из строки.
наверно.
наверно.
- rxu
- Сообщения: 1125
- Зарегистрирован: 21 янв 2014, 21:20
- Откуда: Krasnoyarsk
- Github repo: https://github.com/rxu
- Контактная информация:
UserTopics
И вообще неясен смысл кода. Смотрите.
Смысл присвоения в том, что сначала присваивается какое-то значение из $event локальной переменной, а потом после изменения этой локальной переменной ее значение присваивается обратно в $event. Иначе не будет работать.
Отправлено спустя 49 секунд:
Смысл присвоения в том, что сначала присваивается какое-то значение из $event локальной переменной, а потом после изменения этой локальной переменной ее значение присваивается обратно в $event. Иначе не будет работать.
Отправлено спустя 49 секунд:
acl_get() получает значения прав доступа для определенных объектов, как это используется в данном случае - неясно.Alecto писал(а):QR_BBPOST получить айди постера из строки.
UserTopics
не могу понять все эти присвоения и переприсвоения... мне просто нужен айдишник.
ну да ладно, хрен с ним, я уже и сам заи...ся и вас всех достал.
извиняюсь за это.
ну не понимаю я, что делать, чтобы получить айди.
вернул все как было - ссылка формируется в шаблоне.
тут все просто и красиво.
если у кого-то не будет работать - пусть сами голову ломают, или позже когда-нибудь вернусь к этому.
Отправлено спустя 49 минут 23 секунды:
Обновил. работает.
ссылка в первом сообщении.
ну да ладно, хрен с ним, я уже и сам заи...ся и вас всех достал.
извиняюсь за это.
ну не понимаю я, что делать, чтобы получить айди.
вернул все как было - ссылка формируется в шаблоне.
Код: Выделить всё
<!-- IF S_REGISTERED_USER -->
<dd class="profile-posts">
<strong>{L_PRIME_USER_TOPICS_MINIPROFILE_TEXT}</strong>
<a href="./search.php?author_id={postrow.POSTER_ID}&sr=topics&sf=firstpost">{L_PRIME_USER_TOPICS_FROM_MINIPROFILE}</a>
</dd>
<!-- ENDIF -->
если у кого-то не будет работать - пусть сами голову ломают, или позже когда-нибудь вернусь к этому.
Отправлено спустя 49 минут 23 секунды:
Обновил. работает.
ссылка в первом сообщении.
- rxu
- Сообщения: 1125
- Зарегистрирован: 21 янв 2014, 21:20
- Откуда: Krasnoyarsk
- Github repo: https://github.com/rxu
- Контактная информация:
UserTopics
[ref]Alecto[/ref], функция должна выглядеть следующим образом.
После этого во вьютопике будет доступно
Пояснение такое.
Сначала получаете из события значения нужных вам переменных, присвоением типа
Потом свое значение добавляете в этот массив стандартным способом через array_merge().
Чтобы измененный вами массив, ранее полученный из события, был передан обратно в вызывающий событие скрипт, т.е. во viewtopic.php, делаете обратное присвоение
Т.е. исходному значению переменной из события присваиваете свое, измененное в слушателе, значение. Напрямую использовать $event нельзя, таково ограничение, видимо, Symfony. Из-за этого используются временные переменные.
Код: Выделить всё
public function viewtopic_poster_topics($event)
{
$postrow = $event['post_row'];
$poster_id = $event['poster_id'];
$postrow = array_merge($postrow, array(
'USER_TOPICS_MINIPROFILE_LINK' => append_sid("{$this->phpbb_root_path}search.$this->php_ext", 'author_id=' . $poster_id . '&sr=topics&sf=firstpost'),
));
$event['post_row'] = $postrow;
}
Код: Выделить всё
{postrow.USER_TOPICS_MINIPROFILE_LINK}
Пояснение такое.
Сначала получаете из события значения нужных вам переменных, присвоением типа
Код: Выделить всё
$postrow = $event['post_row'];
Чтобы измененный вами массив, ранее полученный из события, был передан обратно в вызывающий событие скрипт, т.е. во viewtopic.php, делаете обратное присвоение
Код: Выделить всё
$event['post_row'] = $postrow;