Как сохранить контент вне функций?
У меня есть множество страниц панелей, которые я отслеживаю с помощью модуля функций. В настоящее время, если я создаю пользовательскую панель содержимого внутри страницы, все содержимое, находящееся внутри этой панели, затем сохраняется в коде.
Если я сделаю пользовательскую панель содержимого многоразовой или вместо нее буду использовать блок, на нее будет ссылаться идентификатор. Я тоже не хочу такого поведения. Например, я создаю блок в своей среде разработки, добавляю его на свою страницу и фиксирую свою функцию, содержащую эту страницу для контроля версий. Когда я переношу эти изменения в свою тестовую среду, страница ищет блок с определенным идентификатором. Скорее всего, блок не будет существовать, и я должен пойти и создать его. Однако, когда я это сделаю, нет никакой гарантии, что у моего блока будет тот же идентификатор. Что еще хуже, блок может уже существовать с этим идентификатором, и страница будет использовать блок с совершенно нежелательным контентом!
Блоки, организованные с использованием контекстного модуля, а не панелей, имеют ту же проблему, я думать.
Я ищу модуль или подход, который позволит мне зарезервировать место для контента. Я вообще не хочу, чтобы этот контент содержался в коде (моя функция), но я хочу, чтобы функция знала, что на моей панели или в контексте есть место, зарезервированное для этого контента. Изменение содержимого не должно приводить к тому, что функция будет отображаться как переопределенная.
Существует ли существующий модуль, который обеспечивает эту функциональность? Если нет, с какими разработчиками модулей мне следует связаться, чтобы получить такие вещи реализовано? Или для этого потребуется создать целый новый модуль?
Возможно, я даже неправильно понимаю текущее поведение этих модулей. Любая помощь будет признательна.
Кстати, я не думаю, что это проблема, характерная для одной версии Drupal, но если вам нужно выбрать версию Drupal для обсуждения, я бы сказал 7.
3 answers
Хотя я не думаю, что это решает вашу проблему нежелания включать контент в функцию вообще, я знаю 2 способа создания блоков, которые не используют числовые идентификаторы, и поэтому их можно безопасно включить в функцию.
Лично я предпочитаю бобовый подход, так как бобовые пакеты полностью доступны на местах, что позволяет создавать очень продвинутые типы блоков. Оба однако, по сути, эти модули позволяют создавать блоки с именами машин (доказательство функций), а не с числовыми идентификаторами, которые, как вы знаете, являются настоящей занозой в заднице, когда дело доходит до интеграции функций.
РЕДАКТИРОВАТЬ: на самом деле, теперь, когда я думаю об этом, Bean не создает блоки с именами машин - он использует числовые идентификаторы. Это типы компонентов (например, Типы контента), которые имеют имена машин. Итак, если вам нужны блоки с именами машин, то лучше всего использовать коробки.
Поэтому я открыл несколько билетов с соответствующими модулями:
К сожалению, кажется, что вообще нет элегантного способа добиться этого.
Я только что прочитал о модуле, который позволяет вам это делать, Панели фасоли:
Предоставляет тип содержимого ctools для модуля bean, позволяющий размещать его на панелях.
Особенности
Ослабьте сцепление, введите свою дельту бобов - дельте не нужно существовать. Если дельта не существует и разрешений достаточно представляет ссылку для добавления компонента. Чистое отделение от содержимого и конфигурации - ваша панель привязана к дельте бобов , но содержимое не обязательно существовать.