Перейти к содержанию
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
Опубликовано

Спасибо, очень помогли. :spasibo:

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

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

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

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

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

Войти

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

Войти
×
×
  • Создать...
Вверх
Вверх