Мучаюсь вопросом: можно ли в Drupal'e сделать сайт с инзменяющимся в зависимости от контекста дизайном? Например, корпоративный сайт, у которого стартовая страница имеет сеточную верстку, некоторые разделы имеют линейнуюс структуру (типа, презентаций) и соответственный дизайн, и информационные разделы уже имеют меню и т.п.
Как вариант, можно сделать CSS'ки разные, чтобы блоки позиционировались по-разному, но удобнее было бы, чтобы было несколько шаблонов.
Реализуемо?
Комментарии
Теоретически, это проблему можно с помощью отключения блоков, как я понимаю ([url]http://drupal.ru/node/344[/url]), но проблема выглядит страшноватой.. Побадаться придется..
Учитывая, что у нас принято больше заниматься не content management`ом, а content layout`ом, народу постоянно нужны вот такие глупости. Но хочется какого-нибудь изящного решения, не сильно разрушаеющего то, что уже есть в Drupal. Кардинальное решение - просвещение народа в том смысле, что графическое оформление есть незначительная малая часть дизайна; но это дело десятилетий, или пока нефть не кончится, и придется по-настоящему работать (оффтоп.) :).
Я пока что пришел к простейшей схеме и пытаюсь из нее выжать максимум: оставить стандартно левую и центральную колонки, правые блоки размещать где-нибудь в нестандартном месте, менять им css, делать кучу кастомных правых блоков и раскидывать их по страницам regexp выражениями. Плюс есть еще поле mission - часто о нем забывают.
Может, этого и не хватит для многих проектов, но такое решение полностью стандартно и изящно, а возможностей можно придумать очень много, это не так примитивно, как кажется с первого взгляда, а главное - позволяет продолжать работать в стиле CMS, а не домашней странички, с реальным контентом, а не с фиктивным "оформлением".
Прошу прощения за лишнюю философию, но наболело, да и жалко людей, которых заставляют бестолку заниматься подобными "страшноватыми" вещами.
а модуль style? не подойдет ли...
Style module - это такой встроенный CSS редактор через веб-интерфейс, не больше. Там, правда, есть полезные идеи.
Помнится, этот модуль просто позволял менять тэги CSS в теме на переменные, хранить эти переменные в базе и редактировать их через интерфейс в броузере.
Никакакой особой пользы, кроме дополнительных тормозов и возможности демонстрировать чайникам крутизну Drupal, я в нем не вижу. Конечно, если кому-то взбредет в голову делать массовый дешевый/бесплатный хостинг на Drupal, такая штука может сгодиться.
К тому же, он есть только для Drupal 4.3, и к нему нужно специально изменять темы.
Если имеется ввиду, что можно попробовать менять эти переменные по ходу - тогда уж не проще ли написать свою layout system для Drupal, чем заниматься полной переделкой устаревшего модуля. Да и система темплейтов с тех пор очень сильно изменилась.
Кстати, задачка мзменения CSS файлов в зависимости от адреса решается довольно легко. Я когда-то делал нечто подобное, но только для заглавной страницы, за 2 часа, не зная API, впервые открыв xtmpl файл и имея смутное представление о PHP. Но это - если хардкодить. Если делать по уму через hooks и отдельным модулем, то это другая история.
изменения кардинальные или как?
т.е. сначала один css потом вообще другой?
или с легкими нюансами
Да никаких изысков - просто подставлял другой css-файл.
Но если делать правильно - надо писать модуль, который будет подставлять еще один css-файл через хук (а имя его будет меняться, например, как в случае с настройкой блоков regexp`ом), не трогая drupal.css и css темы, а в этом файле только перекрывать/добавлять нужные параметры. Это еще и сэкономит около 10к при загрузке страниц, полюс полная совместимость.
Имхо нужно просто переключаться между разными Themes.
И помоему я гдето видел такую реализацию на друпал.орг
Оно конечно. Вот только объемы возрастают. И реально эти темы будут скорее всего отличаться на 5-10 параметров в css, так зачем огород городить?
а блоки/css развешивать не огород получится?
тут по крайней мере всё прозрачно будет. Захотел тему сменил и всё ..
а с блоками, если их много - будет немалый гимор.
Тут все дело, какой у кого подход. Я ж говорю - мне по душе идеологическая чистота и работа с контентом, а не с оформлением. В варианте с блоками ты занимаешься структурой и логикой, поэтому мне это ближе. А если скажут - "шобы было красива и завтра", и рядом будет сидеть дизайнер со своими фантазиями не по делу, то дело, как всегда, закончится раскрашенной халтурой, знаем, проходили, потому и хочется по-другому.
А по поводу смены тем: подстановка дополнительного css дает почти тот же эффект, но экономнее и правильнее это. Наверное, займусь на досуге.
Гы. Таки я мыслю идейно ближе к генеральной линии:
http://civicspacelabs.org/developers/proposals/theme/implementation
Так что бросайте выдумывать хаки, лучше следовать за разработчиками, а кто в силах - помогать.
http://drupal.org/node/12202
Хех, не спорю, тебе виднее, ты давно эту софтину знаешшшь.
Эту софтину я плохо знаю, я ее чую, потому как давно выбрал ее исключительно по идейным и мистическим причинам :).
Позволяет задавать разные темы для разных адресов, задаваемых regexp выражениями:
http://drupal.org/node/12977