drupal ошибки

Самые распространенные ошибки в Drupal разработке

— использовать суперадмина или еще хуже раздать доступ от супер админа редакторам сайта;
— не использовать t();
— использовать t() для русского языка;
— в своих функциях (и параметрах) использовать $user (правильно только $account. даже если не используется global $user;);
— хранить много всего в variable_set() (нельзя, так как это все загружается в память на всех страницах сайта);
— не соблюдать Друпал стандарты (код читать не возможно);
— ставить много модулей и жаловаться что Друпал медленный;
— использовать одновременно несколько модулей аналогов, например, Colorbox, Shadowbox;
— делать SQL запросы или логику в шаблонах;
— хакать ядро или контриб модули (в 99% это не нужно, а в 1% проценте нужно патчить и патч ложить в специальную папочку);
— устанавливать модули темы в папки ядра (правильно в sites/all/modules, sites/all/theme);
— удаление модулей/тем переименованием папок. Это вообще жуть, друпалу все равно как папки называются он ищет *.info файлы рекурсивно;
— — иметь одинаковые модули в папках: modules, sites/all/modules, sites/site-name.com/modules, sites/default/modules. Были жуткие случае когда модули разных версий на одном сайте были по разным папкам, разные версии и код работал из одной папки, шаблоны из другой;
— не запускать update.php;
— не делать бекап перед обновлением (да и вообще бекапы всегда нужны);
— удалять файлы модулей, не удалив их из админки (сначала нужно отключить, а потом удалить в админке);
— использовать РНР фильтр в нодах (постоянно нельзя, это только для безнадежных случаем);
— использовать РНР в блоках/Views и т.д. (ошибки очень сложно найти);
— для сложных модулей делать все в куче (правильно, логика отдельно, теминг отдельно, а еще можно и по разным файлам разнести);
— подключать JS в хедере как НТМЛ;
— подключать скрипты/стили в шаблонах *.tpl.php (шаблон может много раз загрузиться на одной странице);
— не подключать к формам JS, а грузить в hook_init(), например;
— писать стили/скрипты в шаблоне, а не отдельном файлике модуля. Или писать этот код в основном файле, вместо выноса раздельно;
— забывать про BatchAPI и пытаться кроном перелопатить полбазы за раз;
— не использовать кеширование;
— использовать кеширование не правильно. Например, во Views ставить маленькое время жизни кеша и получается нагрузка только возрастает, так как каждое обращение пересоздает кеш;
— не юзать аргументы во views, были случаи когда вместо одного блока с аргументом, создавали 50 блоков (на каждый термин по блоку);
— не проверять доступ user_access();
— не создавать пермишены для своего модуля;
— для роли редактора, включать все доступы на угад;
— использовать РНР функции типа substr(), strlen() и прочие (почитать нужно тут https://api.drupal.org/api/drupal/includes!common.inc/group/php_wrappers/7);
— использование mail() для почты (очень плохо, так как друпальные хуки не обрабатываются, есть drupal_mail());
— перегружать препросесинг или шаблоны (нужно делать разделение где проще и нагляднее писать код, а не пытаться сделать в одном препросесенге все случаи в жизни);
— насыщать рендер массивы разметкой markup (лучше передавать рендер массивы, а не готовы НТМЛ);
— пытаться в шаблоне заменять куски НТМЛ на "нужные куски НТМЛ" (есть же рендер массивы);
— не использовать behaviors или $(').once() в JS скриптах;

(В процессе дополнения)