2011-08-04 4 views
2

Недавно мне был предоставлен существующий проект Drupal и попросил улучшить интерфейс (HTML, JavaScript, CSS). В Django, PHP, Ruby и т. Д. У меня много опыта работы с фронтом и бэкэнд, но у меня нет предыдущего опыта Drupal, и выяснение того, что происходит в проекте, в лучшем случае окажется неприятным.Разработка интерфейсного сайта Drupal - основы

Может ли кто-нибудь дать краткое изложение (или предоставить некоторые ссылки) о том, как типичный сайт Drupal объединяется, и что мне нужно сделать, чтобы добавить элементы страницы, изменить CSS и добавить функции JavaScript? Каковы подходящие места для этого?

Было бы здорово, конечно, попросить разработчика кода, что происходит, но его нигде не найти.


Вот что я видел до сих пор, от около 2 часов царапать вокруг в коде и онлайн:

Есть множество модулей, а также файлы Темизация (CSS, некоторые изображения) являются находится в местах/все/темы/THEME_NAME/...

HTML-файлы (шаблоны), кажется, беспорядочно разбросаны повсюду - в модулях, * .tpl.php файлы и т.д.

тема имеет файл .info, содержащий определения для регионов, между прочим. Эти регионы соответствуют переменным в файлах шаблонов, но где переменные определены/отредактированы?


Это заставляет меня вытаскивать волосы из головы, любая помощь в том, как изменить интерфейс, было бы здорово!

ответ

6

В конечном счете, используя структуру темы, такую ​​как Zen (при условии, что бюджет составляет более нескольких часов световых обновлений) является хорошим подходом, особенно для начинающих Drupal, поскольку разработчики Zen продумали все множество деталей, которые позволяют хорошо работать на многих сайтах и ​​в браузерах.

Возможно, я неверно истолковал предложение Скотта, но я думаю, что его основное соображение состоит в том, что, исследуя структуру Zen, вы изучите лучшие практики. Это также верно. Рассмотрение существующих тем и тематических фреймворков - отличный способ увидеть, как файл template.php должен быть структурирован, например, и как файлы JS должны быть включены.

С точки зрения деталей реализации, есть некоторые основы, которые, возможно, помогут вам получить разбега:

Регионы/Блоки:

  • при определении области в файле info, такой как regions[header], переменная $header затем становится доступной вам в шаблоне страницы (например, page.tpl.php). Когда вы создаете новый регион, чтобы получить доступ к нему в ваших шаблонах, вам нужно будет clear your theme cache. Вы можете включать в свой регион в любом месте в шаблоне страницы, распечатав переменную:

    <?php print $header; ?>

    После того как регионы, которые были добавлены, вы, как правило, используют блоки для заполнения этого региона. The Drupal documentation about blocks is here. Вы можете создавать новые блоки вручную, нажав «Добавить блок». Вы также можете создавать новые динамические блоки, создавая новый вид (см. Ниже). Блоки также часто добавляются модулями, когда они установлены.

JavaScript/JQuery:

  • вы можете включить файлы JavaScript либо drupal_add_js() в вашем template.php или путем включения их в информационном файле, как это: scripts[] = js/myscript.js. Вам также понадобится очистить кеш темы при изменении файла info.

    Если вы используете Drupal 7, this page дает вам отличный обзор того, как структурировать ваши JS-файлы и как их включить в вашу тему. Для Drupal 6 (или 5) this page охватывает те темы.

    Возможно, вы уже знаете это, но библиотека jQuery уже включена в Drupal. Версия jQuery обычно ниже текущей версии, но при необходимости вы можете обновить хотя бы несколько более высокую версию, используя jQuery Update.

просмотров/CCK

  • Если есть какие-либо TPL файлы темы, которые начинаются с views или node-/node--, они, вероятно, временной отмены Views/типов контента. Возможно, вам захочется узнать, по крайней мере, основы CCK/Views, поскольку они составляют основу для многих переопределений tpl.php. Возможно, вы не создаете новые виды или типы контента, но, если предыдущий разработчик сделал это, они, вероятно, создали некоторые tpl-файлы, чтобы переопределить один или оба. Предполагая, что Views установлен, и ваша роль пользователя имеет к нему доступ, посмотрите на различные виды, чтобы увидеть, как они работают. Если файл tpl.php начинается с views, он переопределяет что-то в представлении. Если он начинается с node (кроме node.tpl.php, который является общим шаблоном для всех узлов Drupal), он обычно переопределяет тип контента (который обычно создается с использованием модуля CCK).

    Ключевым аспектом файлов tpl является то, что, как и CSS, они имеют специфический каскад. Итак, в Drupal 6, если у вас есть page.tpl.php, это будет шаблон для всех страниц вашего сайта. Однако вы можете переопределить его для своей главной страницы с помощью шаблона page-front.tpl.php. Аналогично для node.tpl.php. Если у вас есть тип контента, называемый Event, вы можете переопределить шаблон узла с помощью node-event.tpl.php.Понимание этой концепции поможет вам понять правила именования tpl.

Один последний момент, и это то, что, вероятно, потребуется некоторое время, чтобы привыкнуть к, общая проблема для нового themers Drupal является то, что они видят, что они могут использовать шаблон каждый раз, когда они хотят, чтобы отменить что-то в интерфейсе. Поэтому, когда они хотят переопределить пять страниц или типов контента, они создают пять шаблонов. Это «работает», но часто переполняется и может создавать проблемы обслуживания. По мере того, как вы становитесь более комфортно с помощью системы темы Drupal, вы обнаружите, что создаете меньше и меньше page--blah-blah.tpl.php s и делаете больше переопределений шаблонов в template.php, и именно поэтому основная логика темы должна идеально соответствовать. Это поможет вам консолидировать (и повторно использовать) переопределения шаблонов. Если бюджет/время не слишком жесткое, ознакомьтесь с функциями template.php.

+0

Спасибо, ваш ответ был чрезвычайно поучительным! –

+0

Без проблем - рад, что это помогло! –

1

Довольно просто, начать здесь: http://drupal.org/project/zen

+0

В ретроспективе, Zen - отличное место для начала. Тем не менее, мне сначала нужно было выяснить, как предоставить мне доступ администратора, чтобы установить его вообще. Мне также нужно отредактировать/обменять довольно много контента для работы нового дизайна, и я получил необходимые рекомендации в этом отношении из других ответов. Полезно, тем не менее, я использую Zen сейчас - спасибо! –

1

Вот ссылка на тематизации руководство Drupal: http://drupal.org/node/171194

Переменные в файлах шаблонов, как правило, могут быть изменены с помощью функций в файле template.php в sites/all/themes/theme_name/... каталогах как вы нашли их через такие функции, как template_preprocess()

API-интерфейс Drupal имеет хорошую документацию о том, какие переменные доступны в каждом файле .tpl.php, таком как page.tpl.php

0

Я рекомендую вам сканировать книгу Pro Drupal Development, которая даст вам лучший фундамент для понимания того, как работает Drupal. Легко сделать беспорядок из Drupal, если вы не знаете, что делаете, так что лучше всего посмотреть, как его предположил, что необходимо сделать сначала

1

Чтобы добавить отличный ответ выше, «HTML-файлы (шаблоны) кажутся случайным образом разбросаны по всему месту - в модулях, * .tpl.php-файлах и т. Д.». Они могут казаться беспорядочно разбросанными, но файлы шаблонов обычно размещаются с тем, что они непосредственно влияют. Файлы шаблонов, которые размещаются в папках модулей, используются для шаблона вывода конкретного модуля (и ничего больше).

Шаблоны, которые находятся в папке темы, более общие, и их имя даст вам представление о том, как они влияют на конечный результат. Например, шаблоны страниц влияют на все страницы, узлопакет-тип влияет на определенные типы узлов и т. Д. В приведенном выше руководстве по теме drupal будет объяснено, как все файлы шаблонов работают вместе. Это помогает думать о шаблонах как строительных блоках, которые работают вместе, чтобы создать конечный результат.

0

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

  1. Для полноты картины я предлагаю Сканирование the list of skills needed for a successful front-end web developer - https://drupal.org/node/1245650. Для меня этот список был чрезвычайно полезен.

  2. Также важным является фундамент. В настоящее время я предлагаю начать с темы, основанной на Twitter Bootstrap, а не на Zen. Bootstrap чрезвычайно популярен и богатая библиотека javascript позволяет вам делать много манипуляций, просто добавляя классы CSS, тем самым сохраняя огромное количество времени. Here are some of the best bootstrap-based Drupal themes.

 Смежные вопросы

  • Нет связанных вопросов^_^