Как показать разные взгляды на разные темы Drupal - PullRequest
0 голосов
/ 23 января 2011

Скажем, у меня есть тема по умолчанию для моего сайта drupal. Здесь я создал представления, блоки и т. Д. И разработал все, что я хочу для публики. Теперь как администратор я хотел бы иметь совершенно отдельную тему. Нет проблем, я создаю вторую тему в каталоге тем и переключаю конфигурацию моей пользовательской темы администратора на вторую тему. Но что если в моей второй теме я хочу показать совершенно другой контент (то есть виды, блоки и т. Д.). Давайте использовать мою первую страницу в качестве примера (фронт). Прямо сейчас на моей главной странице есть слайд-шоу с использованием Views. Этот вид, очевидно, отображается на первой странице независимо от того, какую тему я использую. Итак, для моей главной страницы, как я могу показать совершенно другой вид (скажем, список сообщений в блоге) для второй темы, чем вид слайд-шоу, который я использую для первой темы?

Ответы [ 3 ]

1 голос
/ 23 января 2011

Самый простой способ - это поместить ваши представления в блок, так как блоки настроены для каждой темы. Разные темы могут иметь совершенно разные конфигурации блоков. Потенциальная проблема этого подхода заключается в том, что для того, чтобы такие вещи, как аргументы, хорошо игрались с представлениями, размещенными в блоках, требуется еще немного работы.

Другой вариант, который может работать для вас, это просто иметь один и тот же вид по-разному. Представления прекрасно сочетаются со слоем темы Drupal, и вы можете создавать файлы шаблонов для определенного представления или отображения представления. Проверьте ссылку информации о теме на странице администрирования представлений, чтобы увидеть все возможные переопределения для представления. Конечно, это предполагает, что между тем, что вы хотите показать, есть некоторые общие элементы.

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

0 голосов
/ 23 января 2011

Это похоже на удивительное приложение двух довольно новых, но очень мощных модулей.

Контекст - http://drupal.org/project/context в сочетании с Пробелы - http://drupal.org/project/spaces

или

Панели http://drupal.org/project/panels

Оба имеют понятия, которые позволяют вам задавать контекст для страниц, который изменяет вывод на основе множества критериев. В вашем случае критерием будет роль пользователя, просматривающего страницу. Оба более менее громоздки, чем трюки, предложенные CurtainDog, которые, между прочим, являются очень подходящими подходами. Преимущество этих двух модулей состоит в том, что они делают процесс организации и отбора намного более разумным и простым.

Трудно советовать друг с другом, но в двух словах: Панели имеет больше опций в интерфейсе, но имеет некоторую кривую обучения на уровне кода. Контекст / Пробелы * С 1025 * очень легко работать на уровне программирования, но для выполнения большинства задач требовалось больше кода. Я бы предложил попробовать оба варианта перед тем, как принять Для прекрасного обсуждения обоих слушайте этот подкаст .

0 голосов
/ 23 января 2011

Если вопрос касается темы администратора, которая запускается по разным путям, и у блоков есть настройки видимости пути.Представления не просто появляются на странице, если они находятся в блоке, это обрабатывается, если нет - как они отображаются на странице?

Что касается фронта, если вы говорите, что есть две темы и пользователь может переключатьсятогда вам нужен ваш собственный «код маршрутизации».Там нет поддержки для этого.Т.е. вам нужны ваши собственные блоки, которые вызывают соответствующие блоки в зависимости от темы.

...