Перейти к содержимому
Русский язык для Invision Community 5

Имя пользователя

И снова здравствуйте!

 

Вот сижу - ковыраюсь в шаблоне, хочу сделать вывод [блока], после первого поста в теме, которое будет зависеть от того кто написал это первое сообщение.

 

Подскажите пожалуйста как получить в переменную имя стартера темы? Активно использую в шаблона php инклюды.

 

 

Заранее безумно благодарен! :angry:

Рекомендованные сообщения

  • Автор

Конец первого сообщений редактируется здесь:

skin_topic (просмотр темы) -> topic_end_first_post

 

В соседних шаблонах нащупал переменные:

$author['id']

$author['_members_display_name']

$author['member_number']

 

 

Но сравнение вроде:

<if="$author['id'] == 57">Ура работает</if>

При том что номер пользователя - стартера топика действительно 57 :angry:

  • Автор

Всё разобрался :)

  • Автор

И всё же нет, ничего не выходит - помогите пожалуйста! Как в любом месте шаблона/кода в переменную получить № пользователя, который создал тему?

Там немного разные переменные.

Автор, юзер, и еще что-то вроде.

В любом месте скина каждая конкретная переменная работать не будет.

  • Автор

Как я уже писал:

Я вот здесь

skin_topic (просмотр темы) -> topic_end_first_post

 

Я подключаю свой php файл вот так:

<!--exec.file="show.php"-->

 

Всё работет, но мне в файл нужно передать переменную, которая будет содержать Номер пользователя, который создал тему.

 

Как это реализовать?

Можно конечно, выпарсить URL, достать из него Номер Темы, потом через запрос в базе найти стартера темы, но по-моему это крайность и так не делается...

 

P.s. Привет, Фисана :)

Подождите ответа программистов :)

Они подскажут.

  • Автор
Подождите ответа программистов :)

Они подскажут.

Это как раз то что Я от тебя ждал :)

Программисты, помогите мне пожалуйста! :)

15 минут погодите

  • Автор

Ура! Хорошо, жду :)

Вообщем смысл такой :)

 

topic_end_first_post (skin_topic) это шаблон первого сообщение в "линейном" режиме. В "Стандартном" такой вещи вообще нету.

Но раз вам нужен именно этот шаблон, то:

переменная

$data['TOPIC']['starter_id'] - отвечает за ID топикстартера

$data['TOPIC']['starter_name'] - ник топикстартера

 

проверьте

  • Автор

Да - да, Я уже до дтого добрался))

 

Мне теперь эту переменную нужно передать в файл, пробую вот так:

<!--exec.file="ad-show.php?id={$data['TOPIC']['starter_id']}"-->

 

Т.е. пытаюсь GET методом передать эту переменную в файл, но увы - таким образом файл не подгружается вообще.

 

Как передать в файл переменную иначе?

  • Автор

Да, сразу напишу: поддержка подгрузки php файлов таким образом включена и работает и удачно применяется.

OMG... Так не делается. Что у вас там в том файле? Это не через шаблоны делать надо, в уже внутри скрипта.

=========================================

Можете конешно попробовать вместо

<!--exec.file=""-->

написать

<!--exec.url="http://путь к файлу с ?id={$data['TOPIC']['starter_id']}"-->

 

метод возможно будет работать если у вас:

1. включены инклюды ссылок

2. на сервере нету ограничений по инклюдам

3. повезет

  • Автор

Ну что? Проблему решить можно?

 

P.s. У меня получилось через iframe реализовать, но он не катит - google его не любит :)

 

У меня там что-то вроде:

 

<?
$Member_id = $_GET['id'];

If ($Member_id == 32) {
  echo 'Тра-ля-ла';
} else {
  echo 'Бум-бум-бум';
}
?>

открываете

sources\lib\func_topic_linear.php

находите

$this->output .= $this->ipsclass->compiled_templates['skin_topic']->topic_end_first_post( array( 'TOPIC' => $this->topic, 'FORUM' => $this->forum ) );

до него вставляете свой код используя $this->topic['starter_id'] в качестве айди стартера и делаете так.

$this->topic['some_code'] = результат вашего кода

А в шаблоне уже вставите $data['TOPIC']['some_code'] как результат выполнения вашего скрипта

 

на вашем примере это будет выглядеть вот так:

if ($this->topic['starter_id'] == 32) 
{
  $this->topic['some_code'] = 'Тра-ля-ла';
} 
else 
{
  $this->topic['some_code'] = 'Бум-бум-бум';
}

Создайте аккаунт или войдите в него для комментирования

Аккаунт

Навигация

Поиск

Поиск

Настроить push-уведомления браузера

Chrome (Android)
  1. Нажмите на иконку замка рядом с адресной строкой.
  2. Нажмите Права доступа -> Уведомления.
  3. Измените свои настройки.
Chrome (компьютер)
  1. Нажмите на иконку замка в адресной строке.
  2. Выберите Настройки сайта.
  3. Найдите Уведомления и измените свои настройки.