Перейти к содержанию
IPS Invision Community 🇷🇺

Как получить доступ к определенному элементу из массива $item?


Перейти к решению Решено Sipsb,

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

Я пытаюсь добавить if в шаблон cms → front → global → embedRecord и использовал

print_r($item)

для вывода всей доступной информации. Я хотел бы получить доступ к конкретному имени базы данных, из которого извлекается запись, и увидеть это в массиве:

[recordPage:protected]
(
	[_data:protected] => Array
                (
                    [id] => 2
                    [name] => Databasename

К сожалению, я не знаю, как получить доступ к информации прямо из шаблона. Я пробовал с

$item[recordPage][_data][name]

но это вызвало ошибку.

Ссылка на комментарий

$item является экземпляром \IPS\cms\Records, записи базы данных Pages. В этом классе есть метод под названием «database()», который возвращает ссылку на базу данных, в которой хранится запись.

Оттуда вам нужен заголовок, доступный через свойство "_title".

  • Нравится 2
  • Поддержать 1
  • Спасибо 1
Ссылка на комментарий

@Sipsb Спасибо за ссылки!

В моём примере if всегда возвращает false:

DB Name: {$item->database()->_title}
{{if $item->database()->_title=="NameBD"}}
	TRUE
{{else}}
	FALSE
{{endif}}

Я попробовал изменить шаблон с той же логикой, но использовал $item->database()->_id - это работает. Но почему это не работает с db-name? :041:

Ссылка на комментарий
  • Решение

_title - это хеш-значение, поэтому проверка с "NameBD" не удастся! вы должны всегда использовать идентификатор для таких проверок!

/**
     * Get database name
     *
     * @return string
     */
    public function get__title()
    {
        return \IPS\Member::loggedIn()->language()->addToStack('content_db_' . $this->id);
    }

 

  • Нравится 2
  • Поддержать 1
  • Спасибо 1
Ссылка на комментарий

Создайте учетную запись или войдите, чтобы комментировать

Вы должны быть пользователем, чтобы оставить комментарий

Создать аккаунт

Зарегистрируйтесь для получения аккаунта. Это просто!

Зарегистрировать аккаунт

Войти

Уже зарегистрированы? Войдите здесь.

Войти
×
×
  • Создать...

Важная информация

Мы используем файлы cookie и другие средства сохранения предпочтений и анализа действий посетителей сайта. Нажмите «Принять», если даете согласие на это. Политика конфиденциальности - Условия использования

Вверх
Вверх