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

Почему переменная $itemData пустая?

Здравствуйте!

 

У меня IPB 4.3

 

Редактирую шаблон вывода результатов поиска serachResult. В этот шаблон передаются такие переменные:

 

$indexData, $articles, $authorData, $itemData, $unread, $objectUrl, $itemUrl, $containerUrl, $containerTitle, $repCount, $showRepUrl, $snippet, $iPostedIn, $view, $canIgnoreComments=FALSE, $reactions=array()

 

Хочу вывести дополнительную информацию из $itemData, но не получается.

 

Я научился брать данные из $authorData вот так:

 

authorData['name'] - {$authorData['name']|raw} <br>
authorData['email'] - {$authorData['email']|raw} 

 

Но когда я делаю тоже самое с $itemData:

 

itemData - {$itemData['record_saved']|raw}

 

На страницу ничего не выводится. При этом вот это:

 

itemData - {$itemData['primary_id_field']|raw}

 

Отлично работает.

 

Обе переменные являются массивами. Я узнал об этом так:

 

itemData - {$itemData|raw} <br><br>
authorData - {$authorData|raw} <br><br>

 

Что не так с $itemData в этом шаблоне?

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

  • Автор

Так, я выяснил, что itemData - {$itemData['record_saved']|raw} не работало, потому что для дат нужен был другой формат вывода:

 

{datetime="$itemData['record_saved']"} 

 

Работает как надо. А вот как выводить кастомные поля так и не разобрался. Например field_22.

Так, я выяснил, что itemData - {$itemData['record_saved']|raw} не работало, потому что для дат нужен был другой формат вывода:

{datetime="$itemData['record_saved']"}

Работает как надо

Уверены?

Если нет данных, то получите дату 1970 год.

 

Я научился брать данные из $authorData вот так:

 

authorData['name'] - {$authorData['name']|raw}

 

authorData['email'] - {$authorData['email']|raw}

Зачем здесь raw?

Если юзер использует имя

<script>alert();</script>

, то вместо имени увидите алерт.

 

Что не так с $itemData в этом шаблоне?

Не все данные берутся из бд при поиске.

\applications\cms\sources\Records\Records.php

	/**
 * Query to get additional data for search result / stream view
 *
 * @param	array	$items	Item data (will be an array containing values from basicDataColumns())
 * @return	array
 */
public static function searchResultExtraData( $items )

Item data (will be an array containing values from basicDataColumns())

  • Автор

Получается, сначала надо в индекс добавить новые данные в табличку, чтобы они в поиске учитывались?

 

Есть еще Elastic Search, это штуковина охватывает для поиска большую часть данных?

Получается, сначала надо в индекс добавить новые данные в табличку, чтобы они в поиске учитывались?

Не понял.

Нужно добавить столбцы, которые будут выбираться из таблицы.

 

это штуковина охватывает для поиска большую часть данных?

Не изучал этот вопрос.

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

Аккаунт

Навигация

Поиск

Поиск

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

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