twitter bootstrap and Drupal 6

Главные вкладки

Аватар пользователя xom940k xom940k 2 июля 2012 в 16:51

Привет друпаловеды, филы и любители.
Есть сайт, разработанный 2 года назад на Drupal 6. Есть желание клиента, реализовать финтеклюшечку, которая реализована в недавно полюбившемся мне Twitter Bootstrap под названием Popovers. Очень замечательная штучечка. Вот только все мы знаем, что разработчики (зачемто!) сделали нам проблему совместимости 6ки с новыми версиями JQuery. В частности, при подключении Bootstrap, вылетает ошибка на отсутствующий jq плагин .on()
Как жить в таких условиях?

Комментарии

Аватар пользователя Shok211 Shok211 2 июля 2012 в 17:03

1. Прыгнуть с 10 этажа добавить в загрузку jquery 1.7 перед плгином
2. Переписать вручную Плагин
3. Нaйти другой Плагин
4. Воспользоваться модулем jquery update

Аватар пользователя xom940k xom940k 8 июля 2012 в 20:49

"Shok211" wrote:
. Прыгнуть с 10 этажа

Этот тонкий юмор кухарки, установившей Drupal для сайта про хомячков, теперь она разработчик.
"Shok211" wrote:
добавить в загрузку jquery 1.7 перед плгином

Ты сам пробовал? Попробуй - посмотри что получится
"Shok211" wrote:
Переписать вручную Плагин

Ты оплатишь?
"Shok211" wrote:
Нaйти другой Плагин

самый капитанский вариант из предложенных
"Shok211" wrote:
jquery update

читай описание модуля для 6ки.
Спасибо за снисхождение и богатый опыт, к сожалению он оказался бесполезным мне.

Аватар пользователя xom940k xom940k 2 июля 2012 в 18:51

"Stan.Ezersky" wrote:

Вот это настоящий мужской ответ! Спасибо, щас начну курить первую ссылку.
По второй: в разработке сайт или в разработке мутация Bootstrap?

Аватар пользователя Stan.Ezersky Stan.Ezersky 2 июля 2012 в 18:53

На здоровье!

"xom940k" wrote:
По второй: в разработке сайт или в разработке мутация Bootstrap?
В разработке только дизайн, функционал готов.

Аватар пользователя xom940k xom940k 2 июля 2012 в 20:42

В общем, Stan подкинув мне ссылку на свич версий JQ, дал мне понимание, что не все так эпично-печально...
Я залез в папочки модулей jq update & jq ui
Подменил файлики скриптов на новые версии (кто будет повторять мои кулибинские опыты, забекапте на всякий, чтобы по 100 раз не качать скрипты потом).
Далее. Новый UI, называет файлы как 'jquery\..+?\.js' А наш замечательный модуль, не знает об этом. Следовательно нам нужно подтереть лишнюю приставку имен скриптов jq вот этой строчкой в консоли SSH:

ls -a | grep jquery\. | while read name; do mv $name ${name/jquery./}; done

Кстати, пока втыкал эту строку, обнаружил что в текстовом редакторе на форуме не работает кнопка вставки кода, почемуто...
Далее модуль почемуто перестал реплейсить старый говенно-переписанный jquery.js v1.2.x на новый, девственно чистый. Оказалось, что в модуле есть некая функция взятия версии, в которой я нашел гениальный шаблон регулярки:
$pattern = '# * jQuery JavaScript Library v([0-9\.a-z]+)#';
Естественно Джон Резиг просит прощения перед авторами, за то что говнокодит комменты, не удовлетворяющие шаблонам сего модуля под друпал. Ок. Мы его Fail подправим просто, вставив в точности вот что (в .js & .min.js):
' * jQuery JavaScript Library v1.7.2'
К слову для забавно-пытливых, сим шагом мы не нарушаем лицензию, что очевидно.
Все заработало и пока не ломается. Хз как дальше будет, пошел пробовать twitter.bootstrap...

Аватар пользователя xom940k xom940k 8 июля 2012 в 20:48

Вот что сломалось:
когда пытаешься добавить CCK поле, после выбора типа, нужно выбрать подтип.
Например File -> Image
Дак вод второй select не активен Sad
Есть соображения?

Аватар пользователя xom940k xom940k 8 июля 2012 в 21:02

Порывшись в CCK, понял, что с моим новым JQ, не инициализируется почемуто var Drupal = Drupal || .....
В общем попробую методу Stan.Ezersky для страниц админки...

Аватар пользователя xom940k xom940k 8 июля 2012 в 21:12

замечательно сработало!
Стан чтото много написал, я вот накалялак вот так:
/**
* Return the path to the jQuery file.
*/
function jquery_update_jquery_path() {
$jquery_file = array(
'none' => 'jquery.js',
'min' => 'jquery.min.js'
);
$curr_uri = request_uri();
if (preg_match('/admin/', $curr_uri, $matches))
return JQUERY_UPDATE_REPLACE_PATH .'/1.3.2/'. $jquery_file[variable_get('jquery_update_compression_type', 'min')];
return JQUERY_UPDATE_REPLACE_PATH .'/'. $jquery_file[variable_get('jquery_update_compression_type', 'min')];
}

Вроде пашет Smile

Аватар пользователя Stan.Ezersky Stan.Ezersky 8 июля 2012 в 23:31

"xom940k" wrote:
Вот что сломалось:
когда пытаешься добавить CCK поле, после выбора типа, нужно выбрать подтип.
Например File -> Image
Дак вод второй select не активен Sad
Есть соображения?
Есть, патчить jq-файлы из ядра (первый пост по ссылке)
P.S. Решение выше для D7, для D6 отключать 1.7 на время администрирования