Перейти к содержанию
tolik777

[Выполнено] Пофиксить баг календаря. Подружить модуль и шаблон

Рекомендуемые сообщения

Краткое описание задачи: Необходимо пофиксить баг календаря связанный с позиционированием. Насколько я разобрался, работа в основном связана с JavaScript, плюс немного CSS.

 

Исходные данные:

ocStore 1.5.5.1.2

Модуль OpenCart Reservations -booking system for products vqmod

Шаблон Pizza Chef - Bootstrap Template 1.0.2 vqmod

Больше никаких изменений не вносилось.

 

Более подробное описание задачи:

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

Вот как это выглядит на дефолтном шаблоне:

post-669947-0-84614400-1402929641_thumb.png

При этом, модуль заменяет стандартный модуль календаря на Zebra_Datepicker

 

Проблема в том, что после установки шаблона Pizza, он также заменяет модуль календаря на какой-то свой. Я пытался оставить в шаблоне старый модуль календаря, для этого я исключил XML-файл для vqmod, который вырезает модуль календаря, а также в шаблон product.tpl добавил строчки даты (когда отображаются опции даты) из дефолтного шаблона.

Календарь и функции аренды заработали, но криво, т.к. во первых иконка календарика отображается не там где надо, а во вторых при щелчке на ней сам календарь отображается снизу страницы.

post-669947-0-37978200-1402930228_thumb.png

post-669947-0-60137700-1402930238_thumb.png

 

Пытался разобраться сам. В коде календаря zebra_datepicker.src.js нашел функции для расчета позиции отображения иконки и самого календаря:

 var

                    // get the date picker width and height
                    datepicker_width = datepicker.outerWidth(),
                    datepicker_height = datepicker.outerHeight(),

                    // compute the date picker's default left and top
                    // this will be computed relative to the icon's top-right corner (if the calendar icon exists), or
                    // relative to the element's top-right corner otherwise, to which the offsets given at initialization
                    // are added/subtracted
                    left = (undefined !== icon ? icon.offset().left + icon.outerWidth(true) : $element.offset().left + $element.outerWidth(true)) + plugin.settings.offset[0],
                    top = (undefined !== icon ? icon.offset().top : $element.offset().top) - datepicker_height + plugin.settings.offset[1],

                    // get browser window's width and height
                    window_width = $(window).width(),
                    window_height = $(window).height(),

                    // get browser window's horizontal and vertical scroll offsets
                    window_scroll_top = $(window).scrollTop(),
                    window_scroll_left = $(window).scrollLeft();

                // if date picker is outside the viewport, adjust its position so that it is visible
                if (left + datepicker_width > window_scroll_left + window_width) left = window_scroll_left + window_width - datepicker_width;
                if (left < window_scroll_left) left = window_scroll_left;
                if (top + datepicker_height > window_scroll_top + window_height) top = window_scroll_top + window_height - datepicker_height;
                if (top < window_scroll_top) top = window_scroll_top;

                // make the date picker visible
                datepicker.css({
                    'left':     left,
                    'top':      top
                });

top как раз задает позицию по вертикали. Если поставить там фиксированное значение, то все работает как надо, но стоит изменить размер окна браузера, так по вертикали сразу же происходит смещение. В общем должна быть привязка к элементу формы по которой щелкнули. Но здесь у меня ума не хватает разобраться.

 

В общем ищу исполнителя данной интересной задачки.

 

Сроки ваши.

 

По стоимости готов выслушать.

 

Оплата WebMoney, RBKMoney, Яндекс.Деньги, Сбербанк, на карту, на р/с и т.д. как вам удобнее.

 

Если нужен отзыв на weblancer или fl, то можно оформить через биржу фриланса с оставлением отзыва (у меня там эккаунты по несколько лет с постоянными заказами и отзывами).

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Работа сделана. Топик закрыт.

Спасибо пользователю m899 за качественно выполненную работу!

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты
Гость
Эта тема закрыта для публикации ответов.

  • Похожий контент

    • От Yarilo
      Добрый день! Заметил ошибки в карточке товара, что это может быть?
       
      Как можно это исправить? Подскажите пожалуйста!
    • От colaweb
      3 000.00 руб
      Скачать/Купить дополнение


      Анимация для вашего магазина или сайта
      Сделаю анимацию для вашего магазина или сайта.
      Большой опыт работы.
       
      Примеры
      Анимация главной страницы
      «Эффект полета» картинки в корзину при клике на кнопку "купить"
       
      Мой портфолио на форуме
      https://opencartforum.com/profile/12157-colaweb/content/?type=downloads_file
      Добавил colaweb Добавлено 19.02.2018 Категория Услуги  
    • От Orkh3ll0
      Все доброго дня

      Opencart version: 3.0.2.0
       
      в cart.twig изменил кнопку корзины
       
      <button type="button" data-toggle="dropdown" data-loading-text="{{ text_loading }}" id="btn1" class="btn btn-lg"><div class="row"><span id="cart-total">{{ text_items }}</span></div> <div class="row"><img src="image/icons/r3.png" id="cartimg"></div>{{ text_sebet }}</button> где {{ text_sebet }} добавил значения в языках. В HomePage все правильно показывает. Но при обновлении или добавлении товара не показывает значение {{ text_sebet }}
       
      Для этого в catalog/view/javascript/common.js изменил строку где изменяет кнопку корзины
       
      $('#cart > button').html('<div class="row"><span id="cart-total"> ' + json['total'] + '</span></div><div class="row"><img src="image/icons/r3.png" id="cartimg"></div>'); Как мне добавить {{ text_sebet }} в этот js файл? Пробовал добавить php код, пробовал приравнять к var foo = '{{ text_sebet }}'; и добавить переменную foo, но или не выходит текст или ошибка кода.
       
      Спасибо заранее за помощь
    • От Techno1og
      Уважаемые специалисты! Требуется доработать действующий магазин на Opencart 1.5.5:
       
      1. Добавить Https протокол (SSL ключ получен) . Прописать редиректы на новую версию.
      2. Добавить кроссбраузерную мобильную версию сайта, оптимизировать под стандарту.
      3. Обновить установленные модули отзывов, новостей, оплаты, доставки (магазин давно не обновлялся).
      4. Исправить внутренние ошибки сайта в css и javascript. Отредактировать robots.txt \ sitemap.xml
      5. Настроить 301 редирект на неработающие страницы. Определить все битые бэклинки.
      6. Оптимизация загрузки страниц сайта.
      7. Дать рекомендации для дальнейшего развития магазина.
       
      Интересует долгосрочное сотрудничество.
      Ссылку на сайт предоставим в л.с.
       
      Успехов.
    • От kiselovkiselev123
      Добрый вечер!
      Ни с чего перестала работать админка. Ну она работает, но половина кнопок и меню не работает.
      Судя по консоли:
        Request URL: https://72smesitelya.ru/admin/view/javascript/bootstrap/js/bootstrap.min.js Status Code: 404 Not Found   Не находит  файл. Пару часов все было нормально, сайт не трогал НИКТО! Uncaught TypeError: $(...).tooltip is not a function     at HTMLDocument.<anonymous> (common.js:175)     at j (jquery-2.1.1.min.js:2)     at Object.fireWith [as resolveWith] (jquery-2.1.1.min.js:2)     at Function.ready (jquery-2.1.1.min.js:2)     at HTMLDocument.I (jquery-2.1.1.min.js:2) (anonymous) @ common.js:175 j @ jquery-2.1.1.min.js:2 fireWith @ jquery-2.1.1.min.js:2 ready @ jquery-2.1.1.min.js:2 I @ jquery-2.1.1.min.js:2 Ошибка возникает тут commos js:
          $('[data-toggle=\'tooltip\']').tooltip({container: 'body', html: true});  
      Есть варианты?
       
  • Последние посетители   0 пользователей онлайн

    Ни одного зарегистрированного пользователя не просматривает данную страницу

×