Темизация в drupal

На запись в блоге меня натолкнула статья Мэрека Сатака "Ночной кошмар темизации", далее будет вольный перевод (в т.ч. заимствование части материалов) и размышления на тему. Итак - 7 способов, как отпугнуть разработчика. В смысле, если нормальный друпал-разработчик увидит один из этих пунктов в вашем проекте - он будет бежать со всех ног от вас требовать увеличить бюджет на 50-100%.

1. Тема вашего проекта находится в /themes

На самом деле это не так страшно - мы возьмем и скопируем куда надо (/sites/all/themes/), и даже не будем говорить что так проще обновлять дистр. Невыполнение таких вещей с темами (и модулями) говорит о том что вы не знаете "внутренних соглашений" разработчиков. А значит - к вашему коду надо подходить с легкой паранойей и перепроверять все.

2. Вы переопределяете .tpl.php файлы, не думая об архитектуре

Скорее всего эти задачи можно было решить через Context/DS, когда в папке темы десятки tpl.php файлов - значит что-то у вас не так на уровне архитектуры, не хватает системных знаний, соответственно работать с вами - сложно и невыгодно.

3. Подключение .css и .js в теме

[code] <?php print $head_title ??> [/code]

Для этого есть ваш .info файл, где все будет проще и прозрачней. Или add_js, add_css для добавления с определенными правилами.

4. SQL-запросы

Хорошо я не видел такого в темах. Работать с базой должны модули, не темы. Видя такое, понимаешь что лучше отказаться от заказа на "доработку" такого кода

5. Многочисленные include в ваших tpl.php

[code] nid; ?> ... [/code]

Если вы допускаете такой код - значит вы не знаете, сколько будете платить специалистам за дополнительное время, на разбор всего этого. Задумывайтесь о качестве кода заранее.

6. Глобальные правила в разных .css файлах

Встречается, если работает несколько человек, не думающих о качестве кода. Правила для body, h1, h2, h3, h4, h5, h6, strong и т.п. встречаются в нескольких файлах, писанных разными людьми, зачастую переопределяя друг друга через !important. Из живых примеров: main.css: [css] body { background: #dfdfdf; font-size: 1.2em; } [/css] layout.css { [css] body { background: #fff !important; font-family: Arial,Helvetica,Verdana,"Bitstream Vera Sans",sans-serif; } [/css] В итоге путаница и неразбериха, когда к разработке подключается еще один человек уходит много времени на понимание "логики", вернее того что никакой логики нет и требуется заново пересматривать по 600-1000 (для небольших сайтов) строк css кода. Бонусом может идти использование глобальных правил в самописных модулях, определяющих поведение table/tbody и других контент-элементов, которые проявляться могут уже на работающем сайте, т.к. такое легко пропустить на стадии тестирования.

7. Разные фреймворки

Когда в .info файле вашей темы встречается вот это:

[code]scripts[] = jquery.pngFix.js  - jQuery plugin
scripts[] = mootools.r598.js - mootools library
scripts[] = yamgo-menu.js - mootools file
scripts[] = jmenuopen.js - jQuery file
scripts[] = jsearchbox.js - normal js file
scripts[] = jquery.js - jQuery library!?[/code]

Это заставляет сурово задуматься над предстоящей оптимизацией кода. По хорошему, это означает что придется переделывать часть верстки и переписывать ручками часть функционала. Вы можете думать что "ведь все работает, эта часть уже готова", но на самом деле это не так. Не стоит использовать несколько js фреймворков, в этом практически никогда нет необходимости. К тому же использовать так глупо как в приведенном примере, для всего сайта.

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

Партнерская программа

Кстати, для интересующихся технологиями, у нас есть партнерская программа. Если по вашей специализации:

  • вы работате над другими задачами (не создание типовых сайтов),
  • вы работаете с высокобюджетными сайтами,
  • вам хочется ковертировать обращения по вопросам "помогите с созданием сайта-визитки" в прибыль.

Тогда, добро пожаловать в партнерку :)