Темизация

Bootstrap отличный фреймворк для создания тем оформления и по сути я думаю скоро станет стандартом для веб-разработки. Для того, чтобы сделать своб собственную тему оформления, базирующуюся на этой фреймворке, для Друпал, надо сделать следущее:
Первичная подготовка (установка less и базовой темы бутстрап):

sudo drush dl bootstrap
sudo drush dl less
mkdir sites/all/...

Автор: "Чулан", оригинал: http://habrahabr.ru/post/78845/, использовал на одном сайте - реально работает.

Прочитав статейку Дмитрия Котерова о ресайзе ифрэймов решился поделиться своим решением.

Этим решением пользуемся на продуктивном сайте.

Итак, дано:
1. Нужно показывать в ифрэйме страницы с других доменов без скроллбара
2. Внутри ифрэйма могут совершаться переходы
3. Сайты в ифрэйме могут менять высоту без перегрузки (AJAX или просто раскрытие каких-нибудь невидимых элементов)
4. Во включаемые...

При вёрстке сайтов необходимо всегда учитывать мобильные устройства, но проблема в том, что если в тексте встречаются таблицы, то он никак не хотят адекватно уменьшаться и ухудшают весь вид страницы, становясь то слишком длинными, то вылезая за границы экрана.
Решение есть - элегантный способ от Todd Parker, при котором таблица просто прячется, вместо неё показывается сообщение "Таблица: нажмите для увеличения", и при нажатии таблица раскрывается на полный экран, позволяя её более-менее сносно просмотривать. При нажатии кнопки "Назад" можно вернуться к текущему тексту.
Решение...

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

function THEME_preprocess_views_view_table(&$vars) {
  $view = $vars...

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

Responsive Web Design
Этот подход представляет из себя оптимизацию вёрстки сайта и создание резинового макета, который адекватно подстраивается под разные размеры экранов.
Основной приём - разделение экрана на блоки определённой ширины, которые при...

К сожалению, сущность entityform не является нормальной нодой, соответсвенно её вывод нельзя переопределить как обычно через node--entityform.tpl.php
Для того, чтобы справиться с этой задачей, надо прописать:
В template.php:

function THEMENAME_theme($existing, $type, $theme, $path...

В полях формы друпал подставляет красный символ звездочки (*), если поле обязательно к заполнению. Чтобы заменить этот символ, необходимо в шаблоне template.php вашей темы оформления реализовать следующий хук:

<?php
function THEME_form_required_marker($variables) {
  // This is also used in the installer, pre-database setup.
  $t...

Я несколько раз сталкивался с проблемой, что Webform вообще никак не хочет обрабатываться, если он находится во всплывающем окне (lightbox или colorbox).

Решением данной проблемы оказалось следующее: во-первых, надо использовать дополнительный модуль colorbox_node

Во-вторых, надо использовать версию colorbox_node 7x-2.6 (желтым цветом), а не итоговый релиз 3.0 - потому что итоговый релиз с вебформами пока не научился нормально работать!

После этого просто создаете как всегда веб-форму, пишете в ней что в результате надо переводить на confirmation message, сообщение...

Нигде не нашел, как темизировать аяксовую форму загрузки изображений в Друпал 7. Пришлось писать свои костыли, получилось некрасиво, но работает:

(function ($) {
  Drupal.behaviors.init_image_field = {
    attach: function(...

Для этого в 7й версии друпала есть обалденная функция в ядре
http://api.drupal.org/api/drupal/modules--system--system.api.php/functio...
Этот хук получает в качестве аргумента список javascript-файлов, которые добавляли другие модули , в том числе и ядро, и их можно убрать простым unset();

Это поразительно, но нигде нет достойного отлаженного скрипта для стилизования элемента загрузки файла - во многих, правда, используется jQuery 1.4, что в моей задаче не подходит - в Drupal 6 должен использоваться только jQuery 1.3.2.

Предлагаю исправленный вариант скрипта от Scott Jehl, с исправленными его багами, а так же его интеграция в Друпал

Интегрировать так:
включить js файл и добавить немного css:

/*custom upload elements*/
.customfile-input...

Надо всего лишь зайти в шаблоны стиля оформления advanced forum (они находятся в sites/all/modules/advanced_forum/styles/XXXX), найти там файл ХХХХ.topic-header.tpl.php и добавить там куда надо строчку <?php print $pager; ?>

В D7 достаточно просто зайти в настройки темы и убрать галку в пункте "Статус проверки пользователя в комментариях".

В D6 надо:

  1. В файле theme.inc ищешь функцию theme_username
  2. Копируешь ее в template.php своей темы.
  3. Уже от туда удаляешь: $output .= ' ('. t('not verified') .')';
  4. Чистишь кеш, радуешься.

Решения найдены здесь: http://www.drupal.ru/node/23457#comments

Страницы