vendor Опубликовано 9 мая, 2021 Опубликовано 9 мая, 2021 Я пытаюсь добавить if в шаблон cms → front → global → embedRecord и использовал print_r($item) для вывода всей доступной информации. Я хотел бы получить доступ к конкретному имени базы данных, из которого извлекается запись, и увидеть это в массиве: [recordPage:protected] ( [_data:protected] => Array ( [id] => 2 [name] => Databasename К сожалению, я не знаю, как получить доступ к информации прямо из шаблона. Я пробовал с $item[recordPage][_data][name] но это вызвало ошибку.
Kis Опубликовано 9 мая, 2021 Опубликовано 9 мая, 2021 Ох.. тут нужно читать документацию для разработчиков 1
Sipsb Опубликовано 9 мая, 2021 Опубликовано 9 мая, 2021 $item является экземпляром \IPS\cms\Records, записи базы данных Pages. В этом классе есть метод под названием «database()», который возвращает ссылку на базу данных, в которой хранится запись. Оттуда вам нужен заголовок, доступный через свойство "_title". База данных - это node model Запись базы данных - это item model 2 1 1
vendor Опубликовано 9 мая, 2021 Автор Опубликовано 9 мая, 2021 @Sipsb Спасибо за ссылки! В моём примере if всегда возвращает false: DB Name: {$item->database()->_title} {{if $item->database()->_title=="NameBD"}} TRUE {{else}} FALSE {{endif}} Я попробовал изменить шаблон с той же логикой, но использовал $item->database()->_id - это работает. Но почему это не работает с db-name?
Решение Sipsb Опубликовано 9 мая, 2021 Решение Опубликовано 9 мая, 2021 _title - это хеш-значение, поэтому проверка с "NameBD" не удастся! вы должны всегда использовать идентификатор для таких проверок! /** * Get database name * * @return string */ public function get__title() { return \IPS\Member::loggedIn()->language()->addToStack('content_db_' . $this->id); } 2 1 1
Рекомендуемые сообщения
Создайте учетную запись или войдите, чтобы комментировать
Вы должны быть пользователем, чтобы оставить комментарий
Создать аккаунт
Зарегистрируйтесь для получения аккаунта. Это просто!
Зарегистрировать аккаунтВойти
Уже зарегистрированы? Войдите здесь.
Войти