Расчет доставки EMS (Joomla 1.5)

Статус
В этой теме нельзя размещать новые ответы.

Monkeyman

Профессор
Регистрация
26 Ноя 2008
Сообщения
210
Реакции
47
Я не знаю, почему EMS не хочет сделать виджет из своего калькулятора расчета доставки, но, слава богу, они открыли свой API. Не найдя модуля расчета доставки для жумлы, кое-как со скрипом нашкрябал свой. За основу взял калькулятор с сайта EMS, прикрутил к нему API, да почистил его чуток от мусора. Доставка, а также вывод списка городов и стран рассчитываются автоматически при помощи запросов к серверу EMS. Последний иногда имеет неприятную особенность ложиться.

Доступные настройки:

  • подружать или нет jQuery;
  • выбор пункта "Откуда" и "Куда" по умолчанию;
  • количество элементов, выводимых в списке.

Демонстрацию можно посмотреть Для просмотра ссылки Войди или Зарегистрируйся, а скачать сам модуль Для просмотра ссылки Войди или Зарегистрируйся.

Возможные недостатки и доработки

Я не ахти какой программер - занимаюсь этим для себя исключительно и далеко не профессионально. Поэтому вряд ли смогу помочь с какими-то вашими локальными проблемами. Модуль совершенно бесплатный, и любая помощь в его доработке только приветствуется. С аяксом и jQuery я в буквальном смысле познакомился вчера, поэтому буду спасибо за подсказки, как улучшить работу модуля.

Сейчас хочется доделать/поправить:

  • Не уверен так ли это, но пока правил модуль (делал прямо у себя насайте), Firefox 4 откушал 600 метров, чего до этого за ним не замечал. Я, правда, бессчетное количество раз перегружал страницу. В общем, подтвердить нужно этот момент или опровергнуть.
  • Выпадающие списки пока немного кривовато выглядят - уходят как бы под границу модуля. Пока не соображу, как это побороть.
  • Версию для Joomla 1.6 сделаю попозже - когда сам перейду или если будет спрос на модуль.
В общем, предложения принимаются, но я не все могу сделать - знаний не хватает, увы. Надеюсь, что кому-то этот модуль будет полезен, и общими усилиями сможем его довести до ума.
 
По поводу вставки кода с JS в <head>.
Он вставляется почти как и CSS файлики:
PHP:
 $document->addScript(JURI::root().'modules/mod_emscalc/js/selects.js');
$document->addScript(JURI::root().'modules/mod_emscalc/js/scroll.js');
$document->addScript(JURI::root().'modules/mod_emscalc/js/calc.js');
это надо будет добавить в скрипт сразу за добавлением
PHP:
$document->addStyleSheet(JURI::base().'modules/mod_emscalc/styles/common.css');
По поводу mousedown:
никто не мешает поменять на строке 53 модуля
PHP:
jQuery('#intweightdoc_fake > span:not(.optGroup)').mousedown(function(){calculate('international','doc');});
на
PHP:
jQuery('#intweightdoc_fake > span:not(.optGroup)').click(function(){calculate('international','doc');});
По поводу большого расходования памяти, кажется есть небольшая проблема со скриптами внешнего чата. во всяком случае наблюдается конфликт JS после подгрузки модуля чата в iframe.
По поводу разворота меню на всю длину, тут могут быть проблемы с CSS надо более детально исследовать как себя поведет модуль (попробовать другой темплейт, например, стандартный)
Для того чтобы получить город по умолчанию для определенного селекта надо будет парсить переменные которые получаются с сервера EMS $cities_result и при определенном условии добавить соответственно в option SELECTED тогда это будет выбором по умолчанию.
 
По поводу вставки кода с JS в <head>.
Он вставляется почти как и CSS файлики:
Ох, да, тут я качественно протупил, спасибо :)
По поводу mousedown: никто не мешает поменять на строке 53 модуля
Я, конечно, глупый, но не настолько же :)
Первое же что попробовал - это тупо сменить на click, но оно так почему-то сразу перестает работать. Вот, в чем прикол. Остальные селекты работают, а этот как проклятый какой-то.
По поводу большого расходования памяти, кажется есть небольшая проблема со скриптами внешнего чата. во всяком случае наблюдается конфликт JS после подгрузки модуля чата в iframe.
А, ну значит это не мой модуль. Уже хорошо. С чатом, если что, разработчикам напишу.
По поводу разворота меню на всю длину, тут могут быть проблемы с CSS надо более детально исследовать как себя поведет модуль (попробовать другой темплейт, например, стандартный)
Так и есть, дело в стилях, но я не могу никак найти, где дырка. Этот подменный селект состоит из кучи слоев, и хрен поймешь, как его заставить висеть поверх всех слоев. Подозреваю, их просто стандартное обрамление модуля перебивает.
Для того чтобы получить город по умолчанию для определенного селекта надо будет парсить переменные которые получаются с сервера EMS $cities_result и при определенном условии добавить соответственно в option SELECTED тогда это будет выбором по умолчанию.
Это-то я понимаю, но дальше селект же заменяется на красивый, сделанный на слоях. Не уверен, что он адекватно обработает SELECTED, но надо попробовать.
 
Попробую посмотреть на скрипты более придирчиво.
Сразу хочу сказать при чистой установке в joomla нет jquery, так что его по идее тоже надо подгружать, или как-то адаптировать скрипты под mootools второе сложнее :) хотя тоже реализуемо.
На стандартном шаблоне, у меня нет никаких проблем с overflow, так что это получается локальная проблема :) как это не жаль :)
 
Сразу хочу сказать при чистой установке в joomla нет jquery, так что его по идее тоже надо подгружать, или как-то адаптировать скрипты под mootools второе сложнее :) хотя тоже реализуемо.
Лучше делать проверку, конечно, и подгружать при надобности. Но я не знаю, как это сделать :-(

На стандартном шаблоне, у меня нет никаких проблем с overflow, так что это получается локальная проблема :) как это не жаль :)
Ага, то есть список выводится весь, ничего не скрывается за границами модуля?

* * *

Я немного покопал селекты, скачал новую версию, пытаюсь ее прикрутить. Заявлено, что она selected отлавливает, но на самом деле не работае ни фига, хотя я уже у себя добавил опции вывода города по умолчанию и количества элементов в выпадающем списке. Связался с разработчиком плагина - поглядим, что ответит.

Зато починился селект с mousedown :)
Приведу в порядок новую версию - обновлю по ссылке.
 
Лучше делать проверку, конечно, и подгружать при надобности. Но я не знаю, как это сделать :-(
Не готов точно сказать метод как проверять, поскольку фактически из модулей собирается целиком скрипт, то есть, "выцепить" какой модуль или вообще шаблон может подключаться JQuery в моем не укладывается. Как вариант сделать это опцией для администратора, который будет подключать модуль, то есть в администрировании добавить галочку: подключать, не подключать jquery.
Ага, то есть список выводится весь, ничего не скрывается за границами модуля?
Именно! на стандартном шаблоне ничего не обрезается.
Зато починился селект с mousedown :)
Приведу в порядок новую версию - обновлю по ссылке.
Это уже хорошо!
 
Как вариант сделать это опцией для администратора, который будет подключать модуль, то есть в администрировании добавить галочку: подключать, не подключать jquery.
Да, хороший вариант. Так и сделаем.

Именно! на стандартном шаблоне ничего не обрезается.
Ладно, значит буду копать стили, чтобы и не на стандартных обрезалось.

Остается выбор города по умолчанию - он у меня по-прежнему не работает, и версия для 1.6. Больше пока пожеланий не поступало :)
 
Сделал выбор пункта назначения и пункта отправки по умолчанию, а также добавление jQuery по необходимости.

Модуль обновил, теперь все работает нормально за исключением дурацкого заползания под границу модуля в некоторых шаблонах. У меня проблема в overflow: hidden, который проставлен у трех элементов выше. По-прежнему не знаю, как это побороть. Остальное все работает.
 
Статус
В этой теме нельзя размещать новые ответы.
Назад
Сверху