Jump to content

Search the Community

Showing results for tags 'schema.org'.



More search options

  • Search By Tags

    Type tags separated by commas.
  • Search By Author

Content Type


Forums

  • Основной
    • Новости и анонсы
    • Предложения и пожелания
    • Акции, подарки, конкурсы и награды
  • For developers
    • Общие вопросы
    • Нововведения на форуме
  • Opencart 3.x
    • Opencart 3.x: Общие вопросы
    • Opencart 3.x: Установка и обновление
    • Opencart 3.x: Локализация
    • Opencart 3.x: Настройка и оптимизация
    • Opencart 3.x: Песочница
    • Opencart 3.x: Поиск модулей
    • Opencart 3.x: Отчёты об ошибках
  • Opencart 2.x
    • Opencart 2.x: Общие вопросы
    • Opencart 2.x: Установка и обновление
    • Opencart 2.x: Локализация
    • Opencart 2.x: Настройка и оптимизация
    • Opencart 2.x: Песочница
    • Opencart 2.x: Поиск модулей
    • Opencart 2.x / ocStore 2.x: Отчёты об ошибках
  • Поддержка и ответы на вопросы
    • Общие вопросы
    • Установка, обновление, настройка
    • Шаблоны, дизайн и оформление магазина
    • Модули и дополнения
    • Помощь программистам и разработчикам
    • Мобильная витрина
    • Вопросы безопасности
    • SEO-вопросы (оптимизация и продвижение магазина)
    • Перевод
    • Отчёты об ошибках
    • Интернет-магазины и электронная коммерция
    • Песочница
  • Услуги
    • Создание магазинов под ключ
    • Дизайн, верстка и шаблоны
    • Программирование, создание модулей, изменение функциональности
    • Настройка и мелкая работа по уже существующему сайту
    • Обновление версии движка магазина
    • Наполнение магазина
    • Системное администрирование (настройка хостинга, серверов, ПО)
    • Другие услуги
    • Отзывы об исполнителях
    • Отзывы о заказчиках
  • Разное
    • Примеры сайтов на OpenCart (ocStore)
    • Курилка
    • Предложения по улучшению
    • Группы

Categories

  • Шаблоны
    • Бесплатные шаблоны
    • Платные шаблоны
  • Filters
  • Promotions & Pricing
  • Coupons & reward points, affiliate programs
  • Blogs, News & Articles
  • Shopping Cart & Order
  • Product Options
  • Product Attributes
  • Product Combinations
  • Search
  • SEO & Optimization
  • Caching & Server Performance
  • Платежные системы
  • Доставки
  • Editors
  • Design & Navigation
  • Banners, Slideshows & Galleries
  • Email Marketing & SMS Integration
  • Customer Support & Chat
  • Обмен данными
  • Учет в заказе
  • Compare & Wishlist
  • Социальные сети
  • Parsers
  • Модули
  • Tools & Developer Tools
  • Licenses
  • Языковые пакеты
  • Прочее
  • Отчеты
  • Сборки
  • Услуги

Categories

  • Настройка OpenCart
  • Служебные документы
  • Оплата

Blogs

  • Konorws (Разработка и модификация Opencart)
  • Блог mr.Kent)
  • AWS
  • Прожектор Бритни Спирс
  • Layk
  • Продвижение интернет-магазина, seo оптимизация
  • Записная книжка
  • Блог RGB
  • Записки от sitecreator
  • О программировании и другом
  • Модули которые сделают сайт лучше
  • Блог веб-студии NeoSeo
  • Useful IT
  • Задачи, идеи, решения.
  • Найденные решения проблем с Opencart
  • ocdroid blog
  • Заметки на полях...
  • Pimur
  • Серж Ткач
  • О жизни, смерти, о бизнесе и Опенкарте
  • Полезное с бесполезным
  • Просто мысли от laim731
  • Маркетинг и продвижение интернет-магазина
  • Магазин Tv-Project.com
  • Мой копирайтинг
  • Разработка под Opencart
  • SEO боксинг специального назначения
  • Подбери свои боксерские перчатки

Find results in...

Find results that contain...


Date Created

  • Start

    End


Last Updated

  • Start

    End


Filter by number of...

Joined

  • Start

    End


Group


MSN


Сайт


ICQ


Jabber


Skype


Город:


Интересы

Found 6 results

  1. 777.00 руб Скачать/Купить дополнение MicrodataPro (микроразметка json-ld/microdata) Модуль подходит для ВСЕХ версий и сборок Opencart (1.x - 2.x - 3.x)! Всего за 777 RUB (12-13 USD) Вы получаете дружественность и прозрачность интернет магазина для поисковых систем. Это выделит Ваш сайт среди конкурентов! Модуль микроразметки позволяет сделать красивый сниппет в выдаче поисковых систем. Что в разы повышает кликабельность, а как следствие — продажи. В модуле используется новейший формат микроразметки application/ld+json и более консервативный microdata что позволит «понравиться» всем поисковым системам (как размечать - выбрать можно в админке). С помощью такой разметки мы даем поисковым системам структурированную информацию о странице и данные на сайте индексируются более "прозрачно" и понятно для робота. В модуле сделано максимальное количество данных которые можно передать с интернет магазина в поисковую систему. Любые аналогичные модули сводятся к тому что они используют старые уже отходящие форматы, без настроек, и передают лишь базовые параметры. В моем же модуле, мы передаем все, даже характеристики товара! В версии с 7 есть возможность разметить дополнительные фото как галлерею, что также является большим плюсом для индексации изображений. Все что размечает модуль можно посмотреть в спецификации или демо. Как работает MicrodataPro MicrodataPro работает на всех версиях Opencart, и на любом шаблоне. В новых версиях идет двойная-тройная привязка к магазину что дает дополнительную надежность запуска модуля, даже на сильно измененных шаблонах. Также модуль имеет встроенную систему диагностики работы, статистику модификации файлов а также система автоматической очистки шаблона от старых элементов микроразметки. Все сделано для удобства покупателя и автоматического запуска модуля. Обратите внимание, после покупки вам не надо писать разработчику с вопросом где взять ключ. Активация модуля сделана автоматически - ничего не надо вручную вводить, никаких ключей и прочего. Как только модуль устанавливается он подключается на сервер лицензии и автоматически забирает себе лицензионный ключ. Если при покупке указать домен - модуль автоматически активируется. Зачем нужна микроразметка в интернет магазине С помощью нее формируется красивый и выразительный сниппет в поисковой выдаче, что привлекает внимание потенциального посетителя, и шанс что он перейдет на Ваш сайт повышается в разы. Доказано! А если посетитель на сайте — это уже пол пути к успешной продаже. Далее дело маркетинга и юзабилити. Все ведет к тому что микроразметка, де-факто станет обязательна для всех топовых сайтов. Да, и все хорошо индексируемые топовые сайты имеют разметку. Формат application/ld+json самый новый и совершенный в мире микроразметки, и сравнивая его возможности с другими, можно смело заявить что им можно передать максимально больше информации поисковому роботу. Ваш сайт будет лучше индексироваться и косвенно повышаться в рейтинге. Лицензия Модуль MicrodataPro - это объект авторского права. Разработчик Прут Николай. Любое нелицензионное использование, изменение и распространение полностью лишает права на лицензию и преследуется по закону. Все покупатели и домены сохраняются на сервере разработчика и в случае пиратского использования - покупатель удаляется навсегда. Лицензия выдается только на один домен с возможностью активации на тестовом домене. На все последующие домены надо докупать отдельные лицензии. Активация делается в полуавтоматическом режиме из админки модуля. Вы устанавливаете модуль после чего ожидаете письмо на почту об успешной активации. После этого просто заходите в модуль и он будет уже доступен. Никаких ключей и личных сообщений - все автоматически. Для разработчиков и веб студий действуют очень хорошие скидки и специальные условия которые выгодны всем. Как проверить микроразметку? Демо сайт: https://demo23.microdata.pro/admin Логин: demo Пароль: demo777 (Просьба посмотреть и ничего не ломать или настраивать. Давайте уважать труд разработчика и время посетителей. Спасибо.) На всех страницах размечаются данные о компании, opeg graph и twitter cards, также есть микроформат vCard В google search console следите за статусом индексации в разделе структурированные данные. Все что размечает модуль: https://microdata.pro/about/specification Что пользователь получает при покупке Все преимущества и широкий функционал самого модуля Оперативную поддержку уведомление о новой версии с бесплатными обновлениями Модуль активно развивается и ждет предложений по его улучшению. Все кто уже купил модуль получают обновления соответственно бесплатно! Что нового в версии 7.3 Учтены все изменения роботов в отношении микроразметки Модуль еще более оптимизирован, переработан код. Стал еще надежнее и поддерживает даже сильно модифицированные магазины - система двойной привязки как в контроллере, так и в шаблоне Доработан внешний вид в админке - все для легкой и понятной настройки Добавлен функционал диагностики модуля Добавлены новые элементы разметки Добавлена версия для Opencart 3.x Полностью переписана система очистки шаблона от старой разметки. Модуль корректно очищает шаблон, конечно же с бекапом и логированием действий в журнал ошибок. В новой версии максимальный упор сделан на социальные сети. Разметка open graph сделана максимально на сколько это позволяет документация от facebook Модуль максимально документирован, на каждый пункт настроек есть пояснение Убраны мелкие ошибки в работе модуля Полная информация о новой версии 7 на сайте: https://microdata.pro/about/version-7-0 Для установки/обновления надо сделать пару шагов Для Opencart 1.x: Загрузить все из архива MDP70_1x.vqmod.zip в корень сайта с заменой Зайти в уже обновленный модуль - проверить настройки Зайти в валидатор микроразметки и проверить на корректность работы. Для Opencart 2.x-3.x: Зайти в Модификаторы - удалить MicrodataPro (для обновления, для установки шаг упускаем) Зайти в установку расширений - и выбрать файл MDP70_2x.ocmod.zip - для версии 2.0-2.2 или MDP70_23.ocmod.zip - для версии 2.3 или MDP70_3x.ocmod.zip - для версии 3.x После чего обновить кеш модификаторов Зайти в уже обновленный модуль - проверить настройки + настроить все что есть новое Зайти в валидатор микроразметки и проверить на корректность работы. Правила оказания поддержки Поддержка покупателей оказывается в порядке очереди, но как правило не дольше чем через 24 часа после обращения в поддержку. Часто в течении от пары минут - до пары часов в рабочее время с 09:00-18:00 UTC+3:00 (Да, бывает и в выходные или нерабочее время, бывает также и задержки, по разному) При необходимости покупатель обязан предоставить все нужные доступы которые оговариваются в зависимости от причины неработоспособности. В противном случае - поддержку невозможно оказать. Для недоверчивых людей или параноиков (извините за формулировку) почитайте https://microdata.pro/blog/ftp-access Особенности использования модуля Модуль микроразметки MicrodataPro - это инструмент для генерации структурированных данных для поисковых роботов. Никаких гарантий что робот полностью проиндексирует микроразметку на сайте нет. Почему так. Много кто неправильно настраивают модуль, вводя неверные данные, либо в неправильном формате. После установки и настройки некоторые покупатели не проверяют корректность работы. Часто магазины на столько переделанные что необходимо оказывать поддержку что бы модуль заработал. Да, можно перелопатить так магазин что без поддержки никак. Модулем мы даем поисковому роботу структурированную информацию, которую он «переваривает» и сам решает - выводить или нет красивый сниппет. Замечено чем качественней страница - тем более вероятно что разметка проиндексируется на 100% и в поиске будут красивые сниппеты. Часто в шаблонах есть элементы старой разметки. Как правило, ошибки и дубли в разметке идут из-за них. В любом случае надо что бы на странице была только одна разметка модулем. Еще хочу уведомить что нормальная практика когда две одинаковых страницы - одна из которой с краснивым сниппетом в выдаче, а вторая без разметки. Помните любые улучшения на сайте - это комплекс мер, одна из которых микроразметка. Иными словами, надо все улучшать а не надеятся что поставив модуль пойдут готовые заказы. Отнеситесь к этому серьезно. Помните, есть сайты которые продают MicrodataPro старых версий по низким ценам. Это пиратские взломанные копии, которые некорректно работают, зашифрованы и как правило содержат в файлах вирусы и угрозы безопасности для магазина. Подумайте, сколько будет стоит такая экономия в будущем. Спасибо покупателям за вклад в развитие модуля! Если понравился MicrodataPro, оставляйте комментарии, пожелания и ставьте оценку, спасибо за покупку! Рекомендация от автора. Можно заказать модуль с установкой и настройкаой, это стоит копейки, но я смогу все поставить, настроить правильно и проверить работоспособность. Пожалуйста, почитайте!!! =================== Предупреждения в google - это не ошибки. Это важно! Сами предупреждения (названы так страшно гуглом) являются информацией (подсказкой) что если есть какие-то данные (то за что предупреждает) то засуньте их в микроразметку. Но если данных нет, но и нечего размечать. В таком случае будут эти предупреждения показываться т.к. гугл не знает есть ли на странице отзывы или нет. Отзывы это как пример предупреждений (agregateRating/review) они самы частые. Также может предупреждать за описание, за бренд да за что угодно, чего он не увидит в разметки. То что есть предупреждения это не повод волноваться тк это подсказки гугл, не более. Другое дело ошибки - когда есть ошибки пишите в поддержку, 99% это из-за встроенной разметки шаблона или сторонних решений. Ошибки в Яндекс - особенности валидатора. Описаны здесь https://microdata.pro/faq/ Но если кратко то яндекс валидатор работает довольно таки топорным методом и видит то что ему не надо видеть и почему-то некоторые элементы считает микроразметкой и ругается. Например ругается он на open graph хотя сам open graph сделан по стандарту и используется не поисковым роботом а социальными сетями для отображения сниппета при публикации ссылки на страницу. Bussines place и т.п. просто игнорируем. =================== P.S. Рекомендую отличные шаблоны: https://opencartforum.com/files/file/2806-adaptivnyy-universalnyy-shablon-shop-store-2/ https://opencartforum.com/files/file/4550-techstore-adaptivnyy-universalnyy-shablon/ https://opencartforum.com/files/file/3412-luxury-adaptivnyy-universalnyy-shablon/ Добавил Exploits Добавлено 15.12.2015 Категория SEO, карта сайта, оптимизация Системные требования Сайт разработчика https://microdata.pro Метод активации Автоматическая активация Ioncube Loader Нет OpenCart 3.0 2.3 2.2 2.1 2.0 1.5.6.4 1.5.6.3 1.5.6.2 1.5.6.1 1.5.6 1.5.4.1 ocStore 3.0 2.3 2.2 2.1 1.5.5.1.2 1.5.5.1.1 1.5.5.1 1.5.4.1.2 1.5.4.1.1 1.5.4.1 OpenCart.Pro, ocShop Opencart.pro 2.3 Opencart.pro 2.1 OcShop 2.0.3.х OcShop 1.5.6.4.х Обращение к серверу разработчика Да Старая цена 0  
  2. Version 7.3

    Модуль подходит для ВСЕХ версий и сборок Opencart (1.x - 2.x - 3.x)! Всего за 777 RUB (12-13 USD) Вы получаете дружественность и прозрачность интернет магазина для поисковых систем. Это выделит Ваш сайт среди конкурентов! Модуль микроразметки позволяет сделать красивый сниппет в выдаче поисковых систем. Что в разы повышает кликабельность, а как следствие — продажи. В модуле используется новейший формат микроразметки application/ld+json и более консервативный microdata что позволит «понравиться» всем поисковым системам (как размечать - выбрать можно в админке). С помощью такой разметки мы даем поисковым системам структурированную информацию о странице и данные на сайте индексируются более "прозрачно" и понятно для робота. В модуле сделано максимальное количество данных которые можно передать с интернет магазина в поисковую систему. Любые аналогичные модули сводятся к тому что они используют старые уже отходящие форматы, без настроек, и передают лишь базовые параметры. В моем же модуле, мы передаем все, даже характеристики товара! В версии с 7 есть возможность разметить дополнительные фото как галлерею, что также является большим плюсом для индексации изображений. Все что размечает модуль можно посмотреть в спецификации или демо. Как работает MicrodataPro MicrodataPro работает на всех версиях Opencart, и на любом шаблоне. В новых версиях идет двойная-тройная привязка к магазину что дает дополнительную надежность запуска модуля, даже на сильно измененных шаблонах. Также модуль имеет встроенную систему диагностики работы, статистику модификации файлов а также система автоматической очистки шаблона от старых элементов микроразметки. Все сделано для удобства покупателя и автоматического запуска модуля. Обратите внимание, после покупки вам не надо писать разработчику с вопросом где взять ключ. Активация модуля сделана автоматически - ничего не надо вручную вводить, никаких ключей и прочего. Как только модуль устанавливается он подключается на сервер лицензии и автоматически забирает себе лицензионный ключ. Если при покупке указать домен - модуль автоматически активируется. Зачем нужна микроразметка в интернет магазине С помощью нее формируется красивый и выразительный сниппет в поисковой выдаче, что привлекает внимание потенциального посетителя, и шанс что он перейдет на Ваш сайт повышается в разы. Доказано! А если посетитель на сайте — это уже пол пути к успешной продаже. Далее дело маркетинга и юзабилити. Все ведет к тому что микроразметка, де-факто станет обязательна для всех топовых сайтов. Да, и все хорошо индексируемые топовые сайты имеют разметку. Формат application/ld+json самый новый и совершенный в мире микроразметки, и сравнивая его возможности с другими, можно смело заявить что им можно передать максимально больше информации поисковому роботу. Ваш сайт будет лучше индексироваться и косвенно повышаться в рейтинге. Лицензия Модуль MicrodataPro - это объект авторского права. Разработчик Прут Николай. Любое нелицензионное использование, изменение и распространение полностью лишает права на лицензию и преследуется по закону. Все покупатели и домены сохраняются на сервере разработчика и в случае пиратского использования - покупатель удаляется навсегда. Лицензия выдается только на один домен с возможностью активации на тестовом домене. На все последующие домены надо докупать отдельные лицензии. Активация делается в полуавтоматическом режиме из админки модуля. Вы устанавливаете модуль после чего ожидаете письмо на почту об успешной активации. После этого просто заходите в модуль и он будет уже доступен. Никаких ключей и личных сообщений - все автоматически. Для разработчиков и веб студий действуют очень хорошие скидки и специальные условия которые выгодны всем. Как проверить микроразметку? Демо сайт: https://demo23.microdata.pro/admin Логин: demo Пароль: demo777 (Просьба посмотреть и ничего не ломать или настраивать. Давайте уважать труд разработчика и время посетителей. Спасибо.) На всех страницах размечаются данные о компании, opeg graph и twitter cards, также есть микроформат vCard В google search console следите за статусом индексации в разделе структурированные данные. Все что размечает модуль: https://microdata.pro/about/specification Что пользователь получает при покупке Все преимущества и широкий функционал самого модуля Оперативную поддержку уведомление о новой версии с бесплатными обновлениями Модуль активно развивается и ждет предложений по его улучшению. Все кто уже купил модуль получают обновления соответственно бесплатно! Что нового в версии 7.3 Учтены все изменения роботов в отношении микроразметки Модуль еще более оптимизирован, переработан код. Стал еще надежнее и поддерживает даже сильно модифицированные магазины - система двойной привязки как в контроллере, так и в шаблоне Доработан внешний вид в админке - все для легкой и понятной настройки Добавлен функционал диагностики модуля Добавлены новые элементы разметки Добавлена версия для Opencart 3.x Полностью переписана система очистки шаблона от старой разметки. Модуль корректно очищает шаблон, конечно же с бекапом и логированием действий в журнал ошибок. В новой версии максимальный упор сделан на социальные сети. Разметка open graph сделана максимально на сколько это позволяет документация от facebook Модуль максимально документирован, на каждый пункт настроек есть пояснение Убраны мелкие ошибки в работе модуля Полная информация о новой версии 7 на сайте: https://microdata.pro/about/version-7-0 Для установки/обновления надо сделать пару шагов Для Opencart 1.x: Загрузить все из архива MDP70_1x.vqmod.zip в корень сайта с заменой Зайти в уже обновленный модуль - проверить настройки Зайти в валидатор микроразметки и проверить на корректность работы. Для Opencart 2.x-3.x: Зайти в Модификаторы - удалить MicrodataPro (для обновления, для установки шаг упускаем) Зайти в установку расширений - и выбрать файл MDP70_2x.ocmod.zip - для версии 2.0-2.2 или MDP70_23.ocmod.zip - для версии 2.3 или MDP70_3x.ocmod.zip - для версии 3.x После чего обновить кеш модификаторов Зайти в уже обновленный модуль - проверить настройки + настроить все что есть новое Зайти в валидатор микроразметки и проверить на корректность работы. Правила оказания поддержки Поддержка покупателей оказывается в порядке очереди, но как правило не дольше чем через 24 часа после обращения в поддержку. Часто в течении от пары минут - до пары часов в рабочее время с 09:00-18:00 UTC+3:00 (Да, бывает и в выходные или нерабочее время, бывает также и задержки, по разному) При необходимости покупатель обязан предоставить все нужные доступы которые оговариваются в зависимости от причины неработоспособности. В противном случае - поддержку невозможно оказать. Для недоверчивых людей или параноиков (извините за формулировку) почитайте https://microdata.pro/blog/ftp-access Особенности использования модуля Модуль микроразметки MicrodataPro - это инструмент для генерации структурированных данных для поисковых роботов. Никаких гарантий что робот полностью проиндексирует микроразметку на сайте нет. Почему так. Много кто неправильно настраивают модуль, вводя неверные данные, либо в неправильном формате. После установки и настройки некоторые покупатели не проверяют корректность работы. Часто магазины на столько переделанные что необходимо оказывать поддержку что бы модуль заработал. Да, можно перелопатить так магазин что без поддержки никак. Модулем мы даем поисковому роботу структурированную информацию, которую он «переваривает» и сам решает - выводить или нет красивый сниппет. Замечено чем качественней страница - тем более вероятно что разметка проиндексируется на 100% и в поиске будут красивые сниппеты. Часто в шаблонах есть элементы старой разметки. Как правило, ошибки и дубли в разметке идут из-за них. В любом случае надо что бы на странице была только одна разметка модулем. Еще хочу уведомить что нормальная практика когда две одинаковых страницы - одна из которой с краснивым сниппетом в выдаче, а вторая без разметки. Помните любые улучшения на сайте - это комплекс мер, одна из которых микроразметка. Иными словами, надо все улучшать а не надеятся что поставив модуль пойдут готовые заказы. Отнеситесь к этому серьезно. Помните, есть сайты которые продают MicrodataPro старых версий по низким ценам. Это пиратские взломанные копии, которые некорректно работают, зашифрованы и как правило содержат в файлах вирусы и угрозы безопасности для магазина. Подумайте, сколько будет стоит такая экономия в будущем. Спасибо покупателям за вклад в развитие модуля! Если понравился MicrodataPro, оставляйте комментарии, пожелания и ставьте оценку, спасибо за покупку! Рекомендация от автора. Можно заказать модуль с установкой и настройкаой, это стоит копейки, но я смогу все поставить, настроить правильно и проверить работоспособность. Пожалуйста, почитайте!!! =================== Предупреждения в google - это не ошибки. Это важно! Сами предупреждения (названы так страшно гуглом) являются информацией (подсказкой) что если есть какие-то данные (то за что предупреждает) то засуньте их в микроразметку. Но если данных нет, но и нечего размечать. В таком случае будут эти предупреждения показываться т.к. гугл не знает есть ли на странице отзывы или нет. Отзывы это как пример предупреждений (agregateRating/review) они самы частые. Также может предупреждать за описание, за бренд да за что угодно, чего он не увидит в разметки. То что есть предупреждения это не повод волноваться тк это подсказки гугл, не более. Другое дело ошибки - когда есть ошибки пишите в поддержку, 99% это из-за встроенной разметки шаблона или сторонних решений. Ошибки в Яндекс - особенности валидатора. Описаны здесь https://microdata.pro/faq/ Но если кратко то яндекс валидатор работает довольно таки топорным методом и видит то что ему не надо видеть и почему-то некоторые элементы считает микроразметкой и ругается. Например ругается он на open graph хотя сам open graph сделан по стандарту и используется не поисковым роботом а социальными сетями для отображения сниппета при публикации ссылки на страницу. Bussines place и т.п. просто игнорируем. =================== P.S. Рекомендую отличные шаблоны: https://opencartforum.com/files/file/2806-adaptivnyy-universalnyy-shablon-shop-store-2/ https://opencartforum.com/files/file/4550-techstore-adaptivnyy-universalnyy-shablon/ https://opencartforum.com/files/file/3412-luxury-adaptivnyy-universalnyy-shablon/

    777.00 RUB

  3. Скачать/Купить дополнение Микроразметка + ОСТРОВА в YANDEX В СИЛУ БОЛЬШИХ ПЕРЕМЕН КАК В ЖИЗНИ ТАК И В РАБОТЕ - ОТДАЮ БЕСПЛАТНО !!! ПОЛЬЗУЙТЕСЬ !!! P.S. УСТАНОВКА И ПОДДЕРЖКА ПРИ НЕОБХОДИМОСТИ - НА ПЛАТНОЙ ОСНОВЕ (по всем вопросам пишем в личку) ================= ================= Цель семантической разметки: -------------------------------------------------------------------- "Сделать интернет более понятным, структурированным и облегчить поисковым системам извлечение и обработку информации для удобного её представления в результатах поиска" Используя семантическую разметку, вы: -------------------------------------------------------------------- "Улучшите представление вашего сайта в результатах поиска, выстроите четкую, структурированную иерархию всех данных своего сайта для поисковых роботов и роботов социальных сетей. Ваш сайт станет более понятным, прозрачным и приятным для всех без исключения поисковых систем" Ни для кого не секрет, что: -------------------------------------------------------------------- "Сайт с наличием микроразметки, ранжируется поисковыми системами в разы быстрее и в выдаче позиционируется на 3-5 позиций выше аналогичных сайтов у которых ее нет" Установив модуль вы получите: -------------------------------------------------------------------- - разметку для главной страницы сайта - разметку для хлебных крошек - разметку для всех страниц товаров - разметку для всех страниц категорий - разметку для всех страниц производителей - разметку для страницы с акционными товарами -------------------------------------------------------------------- -------------------------------------------------------------------- -------------------------------------------------------------------- ======================================================================= Микроразметка Schema.org Главная страница сайта Типы схем: http://schema.org/Store name logo url description address -> http://schema.org/PostalAddress -> addressCountry -> addressLocality -> streetAddress telephone email openingHours ========= ========= Хлебные крошки - сниппеты или breadcrumbs Типы схем: http://www.data-vocabulary.org/Breadcrumb/ url title text ========= ========= YANDEX-Остров для карточки продукта [ ОДИН шаблон ] Типы схем: http://schema.org/Product name url model brand offers aggregaterating image description http://schema.org/Offer price pricecurrency availability http://schema.org/AggregateRating reviewCount ratingValue bestRating worstRating http://schema.org/Review - в построении острова участие не принимает itemReviewed author datePublished http://schema.org/Rating - в построении острова участие не принимает ratingValue bestRating worstRating http://schema.org/NameValueStructure name value ========= ========= YANDEX-Остров для страницы категории [ ТРИ шаблона ] Типы схем: http://schema.org/Product name url offers aggregaterating image description http://schema.org/Offer price pricecurrency http://schema.org/AggregateRating reviewCount ratingValue bestRating worstRating ========= ========= YANDEX-Остров для страницы производителя [ ТРИ шаблона ] Типы схем: http://schema.org/Product name url offers aggregaterating image description http://schema.org/Offer price pricecurrency http://schema.org/AggregateRating reviewCount ratingValue bestRating worstRating ========= ========= YANDEX-Остров для страницы Акции[ ТРИ шаблона ] Типы схем: http://schema.org/Product name url offers aggregaterating image description http://schema.org/Offer price pricecurrency http://schema.org/AggregateRating reviewCount ratingValue bestRating worstRating ========= ========= ========= Микроразметка FaceBook Open Graph Страница Карточки товара Типы схем: og:type - og:product og:title og:url product:price:amount product:price:currency og:image og:description og:site_name ========= ========= Страница Категории Типы схем: og:type - og:website og:title og:url og:image og:description og:site_name ========= ========= Страница Производителя Типы схем: og:type - og:website og:title og:url og:image og:description og:site_name ========= ========= Страница Акции Типы схем: og:type - og:website og:title og:url og:image og:site_name ========= ========= ========= Микроразметка Twitter Card Страница Карточки товара Типы схем: twitter:card - product twitter:domain twitter:site twitter:creator twitter:label1 twitter:label2 twitter:data1 twitter:data2 twitter:image twitter:title twitter:url ========= ========= Страница Категории Типы схем: twitter:card - summary twitter:domain twitter:site twitter:creator twitter:image twitter:description twitter:title twitter:url ========= ========= Страница Производителя Типы схем: twitter:card - summary twitter:domain twitter:site twitter:creator twitter:image twitter:description twitter:title twitter:url ========= ========= Страница Акции Типы схем: twitter:card - summary twitter:domain twitter:site twitter:creator twitter:image twitter:title twitter:url ========= ======================================================================= OpenCart - 1.5.2 ... 1.5.6 OcStore --- 1.5.2 ... 1.5.5 VQMOD ---- необходим для установки !!! ОДНУ КОПИЮ МОДУЛЯ РАЗРЕШАЕТСЯ РАЗМЕЩАТЬ ТОЛЬКО НА ОДИН ДОМЕН !!! Добавил DariyGRAY Добавлено 20.08.2014 Категория SEO, карта сайта, оптимизация Системные требования Сайт разработчика Старая цена Метод активации Ioncube Loader OpenCart ocStore OpenCart.Pro, ocShop
  4. Здравствуйте уважаемые знатоки, я новичок(( Скажите пожалуйста, нужна ли микроразметка Schema.org сайту? Что она дает, и влияет ли ее отсутствие на продвижение? И на что еще влияет ее отсутствие?
  5. Подскажите насколько критично если микроразметка будет скрыта от пользователя посредством display:none в стилях.(планируется скрывать разметку отвечающую за контактные данные,сама разметка помещена в header)
  6. Всем привет! Есть ocStore 2.1 Есть скрипт разметки карточки товара. Не могу вставить переменную "url": "??????", Кто подскажет какую переменную вставить чтоб разметка заработала ? <script type="application/ld+json"> { "@context": "http://schema.org/", "@type": "Product", "name": "<?php echo $heading_title; ?>", "image": "<?php echo $thumb; ?>", "brand": "<?php echo $manufacturer; ?>", "sku": "<?php echo $model; ?>", "gtin8": "<?php echo $model; ?>", "description": "<?php echo $description; ?>", "offers": { "@type": "Offer", "priceCurrency": "<?php echo $currency_code; ?>", "price": "<?php echo $p_value; ?>", "url": "", "itemCondition" : "http://schema.org/NewCondition", "availability": "InStock" }, "aggregateRating": { "@type": "aggregateRating", "ratingValue": "<?php echo $rating; ?>", "bestRating": "5", "worstRating": "1", "reviewCount": "<?php echo preg_replace('/[^\d.]/','',$reviews); ?>" } } </script> Вот product.tpl <?php echo $header; ?> <script type="application/ld+json"> { "@context": "http://schema.org/", "@type": "Product", "name": "<?php echo $heading_title; ?>", "image": "<?php echo $thumb; ?>", "brand": "<?php echo $manufacturer; ?>", "sku": "<?php echo $model; ?>", "gtin8": "<?php echo $model; ?>", "description": "<?php echo $description; ?>", "offers": { "@type": "Offer", "priceCurrency": "<?php echo $currency_code; ?>", "price": "<?php echo $p_value; ?>", "url": "", "itemCondition" : "http://schema.org/NewCondition", "availability": "InStock" }, "aggregateRating": { "@type": "aggregateRating", "ratingValue": "<?php echo $rating; ?>", "bestRating": "5", "worstRating": "1", "reviewCount": "<?php echo preg_replace('/[^\d.]/','',$reviews); ?>" } } </script> <div class="container"> <ul class="breadcrumb"> <?php foreach ($breadcrumbs as $i=> $breadcrumb) { ?> <?php if($i+1<count($breadcrumbs)) { ?> <?php if($i == 0) { ?> <li itemscope itemtype="http://data-vocabulary.org/Breadcrumb"><a href="<?php echo $breadcrumb['href']; ?>" itemprop="url"><?php echo $breadcrumb['text']; ?><span style="display:none" itemprop="title"><?php echo $shop_name; ?></span></a></li> <?php } else { ?> <li itemscope itemtype="http://data-vocabulary.org/Breadcrumb"><a href="<?php echo $breadcrumb['href']; ?>" itemprop="url"><span itemprop="title"><?php echo $breadcrumb['text']; ?></span></a></li> <?php } ?> <?php } else { ?> <li><?php echo $breadcrumb['text']; ?></li> <?php } ?> <?php } ?> </ul> <div class="row"><?php echo $column_left; ?> <?php if ($column_left && $column_right) { ?> <?php $class = 'col-sm-6'; ?> <?php } elseif ($column_left || $column_right) { ?> <?php $class = 'col-sm-6'; ?> <?php } else { ?> <?php $class = 'col-sm-12'; ?> <?php } ?> <div id="content" class="<?php echo $class; ?>"><?php echo $content_top; ?> <div id="product" class="row"> <div class="col-sm-12"><h1 class="heading"><span"><?php echo $heading_title; ?></span></h1></div> <?php if ($column_left || $column_right) { ?> <?php $class = 'col-sm-6'; ?> <?php } else { ?> <?php $class = 'col-sm-6 col-md-5'; ?> <?php } ?> <div class="<?php echo $class; ?>"> <?php if ($thumb || $images) { ?> <?php foreach($stickers as $sticker) { ?> <div class="product_sticker <?php echo $sticker['name']; ?>"><?php echo $sticker['text']; ?> <?php echo $sticker['value']; ?> <?php echo $sticker['text_after']; ?></div> <?php } ?> <ul class="thumbnails"> <?php if ($thumb) { ?> <li> <a class="thumbnail" href="<?php echo $popup; ?>" title="<?php echo $heading_title; ?>"> <img src="<?php echo $thumb; ?>" <?php if ($quantity < 1 && $show_stock_status) { ?>data-status="<?php echo $stock_status; ?>" data-status-id="<?php echo $stock_status_id; ?>"<?php } ?> title="<?php echo $heading_title; ?>" alt="<?php echo $heading_title; ?>" /> </a> </li> <?php } ?> <?php if ($images) { ?> <li class="row"> <div class="image-additional col-xs-3 col-sm-2"><img src="<?php echo $small; ?>" data-thumb="<?php echo $thumb; ?>" data-full="<?php echo $popup; ?>" title="<?php echo $heading_title; ?>" alt="<?php echo $heading_title; ?>" class="img-responsive" /></div> <?php foreach ($images as $image) { ?> <div class="image-additional col-xs-3 col-sm-2"><a class="thumbnail" href="<?php echo $image['popup']; ?>" title="<?php echo $heading_title; ?>"> <img src="<?php echo $image['thumb']; ?>" data-thumb="<?php echo $image['small']; ?>" data-full="<?php echo $image['full']; ?>" title="<?php echo $heading_title; ?>" alt="<?php echo $heading_title; ?>" class="img-responsive" /></a></div> <?php } ?> </li> <?php } ?> </ul> <?php } ?> </div> <?php if ($column_left || $column_right) { ?> <?php $class = 'col-sm-6'; ?> <?php } else { ?> <?php $class = 'col-sm-6 col-md-5'; ?> <?php } ?> <div class="<?php echo $class; ?>"> <div class="row"> <div class="col-md-12"> <div class="row"> <!-- <?php if ($manufacturer) { ?><div class="col-sm-6 col-md-6"><?php echo $text_manufacturer; ?> <a href="<?php echo $manufacturers; ?>"><span itemprop="brand"><?php echo $manufacturer; ?></span></a></div><?php } ?> --> <div class="col-sm-6 col-md-6"><?php echo $text_model; ?> <span itemprop="model"><?php echo $model; ?></span></div> <?php if ($reward) { ?><div class="col-sm-6 col-md-6"><?php echo $text_reward; ?> <?php echo $reward; ?></div><?php } ?> <div class="col-sm-6 col-md-6" ><?php echo $text_stock; ?> <?php echo $stock; ?></div> <?php if ($points) { ?><div class="col-sm-6 col-md-6"><?php echo $text_points; ?> <?php echo $points; ?></div><?php } ?> <?php if ($sku_text && $sku) { ?><div class="col-sm-6 col-md-6"><?php echo $sku_text; ?>: <?php echo $sku; ?></div><?php } ?> <?php if ($upc_text && $upc) { ?><div class="col-sm-6 col-md-6"><?php echo $upc_text; ?>: <?php echo $upc; ?></div><?php } ?> <!-- <?php if ($ean_text && $ean) { ?><div class="col-sm-6 col-md-6"><?php echo $ean_text; ?>: <?php echo $ean; ?></div><?php } ?> --> <?php if ($jan_text && $jan) { ?><div class="col-sm-6 col-md-6"><?php echo $jan_text; ?>: <?php echo $jan; ?></div><?php } ?> <?php if ($isbn_text && $isbn) { ?><div class="col-sm-6 col-md-6"><?php echo $isbn_text; ?>: <?php echo $isbn; ?></div><?php } ?> <?php if ($mpn_text && $mpn) { ?><div class="col-sm-6 col-md-6"><?php echo $mpn_text; ?>: <?php echo $mpn; ?></div><?php } ?> <?php if ($location_text && $location) { ?><div class="col-sm-6 col-md-6"><?php echo $location_text; ?>: <?php echo $location; ?></div><?php } ?> </div> </div> </div> <?php if ($price) { ?> <hr /> <ul class="list-unstyled price"> <?php if (!$special) { ?> <li><span><?php echo $price; ?></span></li> <?php } else { ?> <li><span class="old_price"><?php echo $price; ?></span><span><?php echo $special; ?></span></li> <?php } ?> <?php if ($tax) { ?><li><?php echo $text_tax; ?> <?php echo $tax; ?></li><?php } ?> <li> <hr /> <div class="form-group quantity"> <div class="numbaskcli"> <div class="number"> <label class="control-label hidden-xs" for="input-quantity"><?php echo $entry_qty; ?></label> <input type="hidden" name="product_id" value="<?php echo $product_id; ?>" /> <input type="text" name="quantity" value="<?php echo $minimum; ?>" size="2" id="input-quantity" class="form-control" /> <span> <i class="fa fa-plus btn btn-default" onclick="quantity('<?php echo $product_id; ?>', '<?php echo $minimum; ?>', '+');"></i> <i class="fa fa-minus btn btn-default" onclick="quantity('<?php echo $product_id; ?>', '<?php echo $minimum; ?>', '-');"></i> </span> </div> <div class="tobasketprod"> <button type="button" class="add_to_cart button btn btn-lg <?php echo $cart_btn_class; ?> <?php echo $product_id; ?>" data-toggle="tooltip" title="<?php echo $cart_btn_text; ?>" id="<?php echo($cart_btn_disabled ? 'button-cart-disabled' : 'button-cart') ?>"><i class="<?php echo $cart_btn_icon; ?> <?php echo($cart_btn_icon_mobile ? 'visible-sm visible-xs' : ''); ?>"></i><span><?php echo $cart_btn_text; ?></span></button> </div> <div class="byuoneclick"> <?php if ($show_quick_order && $quantity > 0) { ?> <button type="button" class="quick_order button btn btn-default btn-lg" data-toggle="tooltip" title="<?php echo $quick_order_title; ?>" onclick="quick_order('<?php echo $product_id; ?>');"><i class="<?php echo $quick_order_icon; ?>"></i><?php echo ($show_quick_order_text_product ? '<span class="hidden-xs hidden-sm hidden-md">'.$quick_order_title.'</span>' : '') ?></button> <?php } ?> </div> </div> <!-- <div class="has_link1" onclick="location='http://super-instrument.ru/'"> <span>Нашли дешевле?</span> </div> --> </div> <?php if ($minimum > 1) { ?><div class="alert alert-info minimum"><i class="fa fa-info-circle"></i> <?php echo $text_minimum; ?></div><?php } ?> </li> <?php if ($discounts) { ?> <li class="discount"> <hr> <?php foreach ($discounts as $discount) { ?> <span><?php echo $discount['quantity']; ?><?php echo $text_discount; ?><?php echo $discount['price']; ?></span> <?php } ?> </li> <?php } ?> </ul> <?php } ?> <div class="option row"> <?php if ($options) { ?> <div class="col-xs-12"><hr /></div> <div class="col-xs-12"><h5 class="heading"><span><?php echo $text_option; ?></span></h5></div> <?php foreach ($options as $option) { ?> <?php if ($option['type'] == 'select') { ?> <div class="form-group<?php echo ($option['required'] ? ' required' : ''); ?> options_select col-xs-12 col-sm-6"> <label class="control-label" for="input-option<?php echo $option['product_option_id']; ?>"><?php echo $option['name']; ?></label> <select name="option[<?php echo $option['product_option_id']; ?>]" id="input-option<?php echo $option['product_option_id']; ?>" class="form-control"> <option value=""><?php echo $text_select; ?></option> <?php foreach ($option['product_option_value'] as $option_value) { ?> <option value="<?php echo $option_value['product_option_value_id']; ?>"><?php echo $option_value['name']; ?> <?php if ($option_value['price']) { ?>(<?php echo $option_value['price_prefix']; ?><?php echo $option_value['price']; ?>)<?php } ?> </option> <?php } ?> </select> </div> <?php } ?> <?php if ($option['type'] == 'radio') { ?> <div class="form-group<?php echo ($option['required'] ? ' required' : ''); ?> col-xs-12 "> <label class="control-label"><?php echo $option['name']; ?></label> <div id="input-option<?php echo $option['product_option_id']; ?>"> <?php foreach ($option['product_option_value'] as $option_value) { ?> <div class="radio"> <label class="input"> <input type="radio" name="option[<?php echo $option['product_option_id']; ?>]" value="<?php echo $option_value['product_option_value_id']; ?>" id="<?php echo $option['product_option_id']; ?>_<?php echo $option_value['product_option_value_id']; ?>" /> <?php if ($option_value['image']) { ?> <span class="img" title="<?php echo $option_value['name'] . ($option_value['price'] ? ' ' . $option_value['price_prefix'] . $option_value['price'] : ''); ?>" data-toggle="tooltip" data-thumb="<?php echo $option_value['small']; ?>" data-full="<?php echo $option_value['full']; ?>"> <img src="<?php echo $option_value['image']; ?>" data-toggle="tooltip" alt="<?php echo $option_value['name'] . ($option_value['price'] ? ' ' . $option_value['price_prefix'] . $option_value['price'] : ''); ?>" class="img-thumbnail" /> </span> <?php } else { ?> <span><?php echo $option_value['name']; ?><?php if ($option_value['price']) { ?><span>(<?php echo $option_value['price_prefix']; ?><?php echo $option_value['price']; ?>)</span><?php } ?></span> <?php } ?> </label> </div> <?php } ?> </div> </div> <?php } ?> <?php if ($option['type'] == 'checkbox') { ?> <div class="form-group<?php echo ($option['required'] ? ' required' : ''); ?> col-xs-12 "> <label class="control-label"><?php echo $option['name']; ?></label> <div id="input-option<?php echo $option['product_option_id']; ?>"> <?php foreach ($option['product_option_value'] as $option_value) { ?> <div class="checkbox radio"> <label class="input"> <input type="checkbox" name="option[<?php echo $option['product_option_id']; ?>][]" value="<?php echo $option_value['product_option_value_id']; ?>" id="<?php echo $option['product_option_id']; ?>_<?php echo $option_value['product_option_value_id']; ?>" /> <span><?php echo $option_value['name']; ?><?php if ($option_value['price']) { ?><span>(<?php echo $option_value['price_prefix']; ?><?php echo $option_value['price']; ?>)</span><?php } ?></span> </label> </div> <?php } ?> </div> </div> <?php } ?> <?php if ($option['type'] == 'image') { ?> <div class="form-group<?php echo ($option['required'] ? ' required' : ''); ?> col-xs-12 "> <label class="control-label"><?php echo $option['name']; ?></label> <div id="input-option<?php echo $option['product_option_id']; ?>"> <?php foreach ($option['product_option_value'] as $option_value) { ?> <div class="radio"> <label> <input type="radio" name="option[<?php echo $option['product_option_id']; ?>]" value="<?php echo $option_value['product_option_value_id']; ?>" id="<?php echo $option['product_option_id']; ?>_<?php echo $option_value['product_option_value_id']; ?>" /> <span class="img" data-toggle="tooltip" title="<?php echo $option_value['name'] . ($option_value['price'] ? ' ' . $option_value['price_prefix'] . $option_value['price'] : ''); ?>" data-thumb="<?php echo $option_value['small']; ?>" data-full="<?php echo $option_value['full']; ?>"> <img src="<?php echo $option_value['image']; ?>" data-toggle="tooltip" alt="<?php echo $option_value['name'] . ($option_value['price'] ? ' ' . $option_value['price_prefix'] . $option_value['price'] : ''); ?>" class="img-thumbnail" /> </span> </label> </div> <?php } ?> </div> </div> <?php } ?> <?php if ($option['type'] == 'text') { ?> <div class="form-group<?php echo ($option['required'] ? ' required' : ''); ?> col-xs-12 "> <label class="control-label" for="input-option<?php echo $option['product_option_id']; ?>"><?php echo $option['name']; ?></label> <input type="text" name="option[<?php echo $option['product_option_id']; ?>]" value="<?php echo $option['value']; ?>" placeholder="<?php echo $option['name']; ?>" id="input-option<?php echo $option['product_option_id']; ?>" class="form-control" /> </div> <?php } ?> <?php if ($option['type'] == 'textarea') { ?> <div class="form-group<?php echo ($option['required'] ? ' required' : ''); ?> col-xs-12 "> <label class="control-label" for="input-option<?php echo $option['product_option_id']; ?>"><?php echo $option['name']; ?></label> <textarea name="option[<?php echo $option['product_option_id']; ?>]" rows="5" placeholder="<?php echo $option['name']; ?>" id="input-option<?php echo $option['product_option_id']; ?>" class="form-control"><?php echo $option['value']; ?></textarea> </div> <?php } ?> <?php if ($option['type'] == 'file') { ?> <div class="form-group<?php echo ($option['required'] ? ' required' : ''); ?> col-xs-12 "> <label class="control-label"><?php echo $option['name']; ?></label> <button type="button" id="button-upload<?php echo $option['product_option_id']; ?>" data-loading-text="<?php echo $text_loading; ?>" class="btn btn-default btn-block"><i class="fa fa-upload"></i> <?php echo $button_upload; ?></button> <input type="hidden" name="option[<?php echo $option['product_option_id']; ?>]" value="" id="input-option<?php echo $option['product_option_id']; ?>" /> </div> <?php } ?> <?php if ($option['type'] == 'date') { ?> <div class="form-group<?php echo ($option['required'] ? ' required' : ''); ?> col-xs-12 "> <label class="control-label" for="input-option<?php echo $option['product_option_id']; ?>"><?php echo $option['name']; ?></label> <div class="input-group date"> <input type="text" name="option[<?php echo $option['product_option_id']; ?>]" value="<?php echo $option['value']; ?>" data-date-format="YYYY-MM-DD" id="input-option<?php echo $option['product_option_id']; ?>" class="form-control" /> <span class="input-group-btn"><button class="btn btn-default" type="button"><i class="fa fa-calendar"></i></button></span> </div> </div> <?php } ?> <?php if ($option['type'] == 'datetime') { ?> <div class="form-group<?php echo ($option['required'] ? ' required' : ''); ?> col-xs-12 "> <label class="control-label" for="input-option<?php echo $option['product_option_id']; ?>"><?php echo $option['name']; ?></label> <div class="input-group datetime"> <input type="text" name="option[<?php echo $option['product_option_id']; ?>]" value="<?php echo $option['value']; ?>" data-date-format="YYYY-MM-DD HH:mm" id="input-option<?php echo $option['product_option_id']; ?>" class="form-control" /> <span class="input-group-btn"><button type="button" class="btn btn-default"><i class="fa fa-calendar"></i></button></span> </div> </div> <?php } ?> <?php if ($option['type'] == 'time') { ?> <div class="form-group<?php echo ($option['required'] ? ' required' : ''); ?> col-xs-12 "> <label class="control-label" for="input-option<?php echo $option['product_option_id']; ?>"><?php echo $option['name']; ?></label> <div class="input-group time"> <input type="text" name="option[<?php echo $option['product_option_id']; ?>]" value="<?php echo $option['value']; ?>" data-date-format="HH:mm" id="input-option<?php echo $option['product_option_id']; ?>" class="form-control" /> <span class="input-group-btn"><button type="button" class="btn btn-default"><i class="fa fa-calendar"></i></button></span> </div> </div> <?php } ?> <?php } ?> <?php } ?> <?php if ($recurrings) { ?> <hr> <h3><?php echo $text_payment_recurring ?></h3> <div class="form-group required"> <select name="recurring_id" class="form-control"> <option value=""><?php echo $text_select; ?></option> <?php foreach ($recurrings as $recurring) { ?> <option value="<?php echo $recurring['recurring_id'] ?>"><?php echo $recurring['name'] ?></option> <?php } ?> </select> <div class="help-block" id="recurring-description"></div> </div> <?php } ?> </div> <hr <?php if ($options) { ?>style="margin-top:0"<?php } ?> /> <?php if ($show_product_attr && $attribute_groups) { ?> <h5 class="heading"><span><?php echo $lang['text_short_attributes']; ?></span></h5> <div class="attributes"> <?php foreach ($attribute_groups as $key => $attribute_group) { ?> <?php if ($key < $show_product_attr_group) { ?> <?php foreach ($attribute_group['attribute'] as $key => $attribute) { ?> <?php if ($key < $show_product_attr_item) { ?> <div class="attribute"> <span><span><?php echo $attribute['name']; ?></span></span> <span><span><?php echo $attribute['text']; ?></span></span> </div> <?php } ?> <?php } ?> <?php } ?> <?php } ?> </div> <a href="" class="show_attr" onclick="$('a[href=\'#tab-specification\']').trigger('click'); scroll_to('#tab-specification'); return false;"><?php echo $lang['text_all_attributes']; ?></a> <hr /> <?php } ?> <div class="row"> <div class="col-sm-12 col-md-12 visible-xs visible-sm visible-md"><hr /></div> <?php if ($review_status) { ?> <div class="rating col-xs-7 col-sm-8 col-md-12 col-lg-6"> <?php for ($i = 1; $i <= 5; $i++) { ?> <?php if ($rating < $i) { ?> <i class="fa fa-star-o"></i> <?php } else { ?> <i class="fa fa-star"></i> <?php } ?> <?php } ?> <?php if ($rating ) { ?> <span><?php echo $rating; ?></span> <span><?php echo preg_replace('/[^\d.]/','',$reviews); ?></span> </div> <?php } ?> <i class="fa fa-comments-o" aria-hidden="true"></i><a href="" onclick="$('a[href=\'#tab-review\']').trigger('click'); scroll_to('#tab-review'); return false;"><span class="hidden-xs"><?php echo $reviews; ?></span><span class="visible-xs"><?php echo preg_replace("/[^0-9]/", '', $reviews); ?></span></a> </div> <div class="share col-sm-12 col-md-12 col-lg-6"> <script type="text/javascript" src="//yastatic.net/es5-shims/0.0.2/es5-shims.min.js" charset="utf-8"></script> <script type="text/javascript" src="//yastatic.net/share2/share.js" charset="utf-8"></script> <div class="ya-share2" data-services="vkontakte,facebook,odnoklassniki,gplus,twitter,viber,whatsapp" data-counter=""></div> </div> <div class="btn-group col-xs-5 col-sm-4 visible-xs visible-sm" id="butnone"> <button type="button" data-toggle="tooltip" class="btn btn-default" title="Задать вопрос о товаре" onclick="callback('Вопрос', '<?php echo $product_id; ?>');"><i class="fa fa-question"></i></button> <?php if(!$wishlist_btn_disabled) { ?><button type="button" data-toggle="tooltip" class="wishlist btn btn-default" title="<?php echo $button_wishlist; ?>" onclick="wishlist.add('<?php echo $product_id; ?>');"><i class="fa fa-heart"></i></button><?php } ?> <?php if(!$compare_btn_disabled) { ?><button type="button" data-toggle="tooltip" class="compare btn btn-default" title="<?php echo $button_compare; ?>" onclick="compare.add('<?php echo $product_id; ?>');"><i class="fa fa-exchange"></i></button><?php } ?> </div> <?php } ?> <div class="col-sm-12 col-md-12 visible-xs visible-sm visible-md"><hr /></div> </div> <hr /> </div> <div class="col-sm-12 col-md-2"> <div class="product_button btn-group hidden-xs hidden-sm"> <button type="button" data-toggle="tooltip" class="btn btn-default" title="Задать вопрос о товаре" onclick="callback('Вопрос', '<?php echo $product_id; ?>');"><i class="fa fa-question"></i></button> <?php if(!$wishlist_btn_disabled) { ?><button type="button" data-toggle="tooltip" class="wishlist btn btn-default" title="<?php echo $button_wishlist; ?>" onclick="wishlist.add('<?php echo $product_id; ?>');"><i class="fa fa-heart"></i></button><?php } ?> <?php if(!$compare_btn_disabled) { ?><button type="button" data-toggle="tooltip" class="compare btn btn-default" title="<?php echo $button_compare; ?>" onclick="compare.add('<?php echo $product_id; ?>');"><i class="fa fa-exchange"></i></button><?php } ?> </div> <!-- <hr /> --> <div class="row"> <div class="product_banners"> <?php foreach($product_banners as $product_banner) { ?> <div class="col-xs-6 col-sm-4 col-md-12"> <div <?php if($product_banner['link']) { ?>class="has_link"<?php } ?> <?php if($product_banner['link'] && !isset($product_banner['link_popup'])) { ?>onclick="location='<?php echo $product_banner['link']; ?>'"<?php } ?><?php if($product_banner['link'] && isset($product_banner['link_popup'])) { ?>onclick="banner_link('<?php echo $product_banner['link']; ?>');"<?php } ?>> <i class="<?php echo $product_banner['icon']; ?>"></i> <span><span><?php echo html_entity_decode($product_banner['text'], ENT_QUOTES, 'UTF-8'); ?></span></span> </div> </div> <?php } ?> </div> </div> <hr class="visible-xs visible-sm" /> </div> </div> <?php if ($show_manufacturer && $manufacturer_position) { ?> <h3 class="heading"><span><?php if($manufacturer_title) { echo $manufacturer_title; } else { echo $manufacturer_name; } ?></span></h3> <div class="manufacturer_block row"> <?php if($manufacturer_image) { ?> <div class="col-xs-4 col-sm-2"> <img src="<?php echo $manufacturer_image; ?>" alt="<?php echo $manufacturer_name; ?>" class="img-responsive"/> </div> <?php } ?> <div class="<?php if($manufacturer_image) { ?>col-xs-8 col-sm-10<?php } else { ?>col-xs-12<?php } ?>"> <h4><?php echo $manufacturer_name; ?></h4> <div class="description"><?php echo $manufacturer_description; ?>... <a href="<?php echo $manufacturer_href; ?>" title="" ><?php echo $lang['text_manufacturer_more']; ?></a></div> </div> </div> <hr /> <div style="height:10px; clear:both;"></div> <?php } ?> <div class="row"> <div class="col-xs-12"> <!-- TABS --> <ul class="nav nav-tabs"> <li class="active"><a href="#tab-description" data-toggle="tab"><i class="fa fa-file-text-o" aria-hidden="true"></i><?php echo $tab_description; ?></a></li> <?php if (!empty($xspecs)) { ?> <li><a href="#tab-xspecs" data-toggle="tab"><i class="fa fa-list-alt" aria-hidden="true"></i><?php echo $tab_attribute; ?></a></li> <?php } ?> <?php if (!empty($xobtainment)) { ?> <li><a href="#tab-xobtainment" data-toggle="tab"><i class="fa fa-file-text-o" aria-hidden="true"></i>Способы получения товара</a></li> <?php } ?> <?php if ($attribute_groups) { ?> <li><a href="#tab-specification" data-toggle="tab"><i class="fa fa-list-alt" aria-hidden="true"></i><?php echo $tab_attribute; ?></a></li> <?php } ?> <?php if ($review_status) { ?> <li><a href="#tab-review" data-toggle="tab"><i class="fa fa-comments-o" aria-hidden="true"></i><?php echo $tab_review; ?></a></li> <?php } ?> <?php if ($show_additional_tab) { ?> <li><a href="#tab-additional_tab" data-toggle="tab"><i class="<?php echo $additional_tab_icon; ?>"></i><?php echo $additional_tab_title; ?></a></li> <?php } ?> <?php if(isset($product_tabs)) { ?> <?php foreach($product_tabs as $key => $tab){ ?> <li><a href="#tab-<?php echo $product_id ?>-<?php echo $tab['product_tab_id']; ?>" data-toggle="tab"><?php echo $tab['title']; ?></a></li> <?php } ?> <?php } ?> </ul> <div class="tab-content"> <div class="tab-pane active" id="tab-description" itemprop="description"><?php echo $description; ?></div> <?php if (!empty($xspecs)) { ?> <div class="tab-pane" id="tab-xspecs"><?php echo $xspecs; ?></div> <?php } ?> <?php if (!empty($xobtainment)) { ?> <div class="tab-pane" id="tab-xobtainment"><?php echo $xobtainment; ?></div> <?php } ?> <?php if ($attribute_groups) { ?> <div class="tab-pane" id="tab-specification"> <div class="row"> <?php $i = 1; ?> <?php foreach ($attribute_groups as $key => $attribute_group) { ?> <div class="attributes <?php if(count($attribute_groups) > 1) { ?>col-sm-6 col-md-6<?php } else { ?>col-sm-12 col-md-12<?php } ?>" > <hr class="visible-xs" /> <h4 class="heading"><span><?php echo $attribute_group['name']; ?></span></h4> <div class="attribute"> <?php foreach ($attribute_group['attribute'] as $attribute) { ?> <div> <span><span><?php echo $attribute['name']; ?></span></span> <span><span><?php echo $attribute['text']; ?></span></span> </div> <?php } ?> </div> </div> <?php } ?> </div> </div> <?php } ?> <?php if ($review_status) { ?> <div class="tab-pane" id="tab-review"> <div id="review"></div> <div class="text-right"><button class="btn btn-primary" onclick="$('#form-review').slideToggle();"><?php echo $text_write; ?></button></div> <form class="form-horizontal" id="form-review"> <?php if ($review_guest) { ?> <div class="rev_form well well-sm"> <div class="form-group required"> <div class="col-sm-12"> <label class="control-label" for="input-name"><?php echo $entry_name; ?></label> <input type="text" name="name" value="" id="input-name" class="form-control" /> </div> </div> <?php if($show_plus_minus_review) { ?> <div class="form-group <?php if($plus_minus_review_required) { ?>required<?php } ?>"> <div class="col-sm-12"> <label class="control-label" for="input-review-minus"><?php echo $lang['entry_plus']; ?></label> <textarea name="plus" rows="5" id="input-review-minus" class="form-control"></textarea> </div> </div> <div class="form-group <?php if($plus_minus_review_required) { ?>required<?php } ?>"> <div class="col-sm-12"> <label class="control-label" for="input-review-plus"><?php echo $lang['entry_minus']; ?></label> <textarea name="minus" rows="5" id="input-review-plus" class="form-control"></textarea> </div> </div> <?php } else { ?> <input type="hidden" name="plus" value="" /> <input type="hidden" name="minus" value="" /> <?php } ?> <div class="form-group required"> <div class="col-sm-12"> <label class="control-label" for="input-review"><?php echo $entry_review; ?></label> <textarea name="text" rows="5" id="input-review" class="form-control"></textarea> <div class="help-block"><?php echo $text_note; ?></div> </div> </div> <div class="form-group required"> <div class="col-sm-12"> <label class="control-label"><?php echo $entry_rating; ?></label> <div class="review_star"> <input type="radio" name="rating" value="1" /> <input type="radio" name="rating" value="2" /> <input type="radio" name="rating" value="3" /> <input type="radio" name="rating" value="4" /> <input type="radio" name="rating" value="5" /> <div class="stars"> <i class="fa fa-star-o"></i><i class="fa fa-star-o"></i><i class="fa fa-star-o"></i><i class="fa fa-star-o"></i><i class="fa fa-star-o"></i> </div> </div> </div> </div> <?php echo $captcha; ?> <div class="text-right clearfix"> <button type="button" id="button-review" data-loading-text="<?php echo $text_loading; ?>" class="btn btn-primary"><?php echo $lang['add_new_review']; ?></button> </div> </div> <?php } else { ?> <?php echo $text_login; ?> <?php } ?> </form> </div> <?php } ?> <?php if ($show_additional_tab) { ?> <div class="tab-pane" id="tab-additional_tab" itemprop="description"><?php echo $additional_tab_text; ?></div> <?php } ?> <?php if(isset($product_tabs)) { ?> <?php foreach($product_tabs as $key => $tab){ ?> <div class="tab-pane" id="tab-<?php echo $product_id ?>-<?php echo $tab['product_tab_id']; ?>"><?php echo $tab['description']; ?></div> <?php } ?> <?php } ?> </div> <!-- /TABS --> </div> </div> <hr /> <?php if ($show_manufacturer && !$manufacturer_position) { ?> <h3 class="heading"><span><?php if($manufacturer_title) { echo $manufacturer_title; } else { echo $manufacturer_name; } ?></span></h3> <div class="manufacturer_block row"> <?php if($manufacturer_image) { ?> <div class="col-xs-4 col-sm-2"> <img src="<?php echo $manufacturer_image; ?>" alt="<?php echo $manufacturer_name; ?>" class="img-responsive"/> </div> <?php } ?> <div class="<?php if($manufacturer_image) { ?>col-xs-8 col-sm-10<?php } else { ?>col-xs-12<?php } ?>"> <h4><?php echo $manufacturer_name; ?></h4> <div class="description"><?php echo $manufacturer_description; ?>... <a href="<?php echo $manufacturer_href; ?>" title="" ><?php echo $lang['text_manufacturer_more']; ?></a></div> </div> </div> <hr /> <div style="height:10px; clear:both;"></div> <?php } ?> <?php if ($products) { ?> <div class="row product_carousel"> <h3 class="heading"><span><?php echo $text_related; ?></span></h3> <div class="products product_related"> <?php foreach ($products as $product) { ?> <div class="product-layout"> <div class="product-thumb transition"> <div class="image"> <?php foreach($product['stickers'] as $sticker) { ?> <div class="product_sticker <?php echo $sticker['name']; ?>"><?php echo $sticker['text']; ?> <?php echo $sticker['value']; ?> <?php echo $sticker['text_after']; ?></div> <?php } ?> <a href="<?php echo $product['href']; ?>"> <img src="<?php echo $product['thumb']; ?>" <?php if ($product['quantity'] < 1 && $show_stock_status) { ?>data-status="<?php echo $product['stock_status']; ?>" data-status-id="<?php echo $product['stock_status_id']; ?>"<?php } ?> <?php if($product['additional_image']) { ?>data-additional="<?php echo $product['additional_image'];?>"<?php } ?> alt="<?php echo $product['name']; ?>" title="<?php echo $product['name']; ?>" class="img-responsive" /> </a> </div> <div class="caption"> <a href="<?php echo $product['href']; ?>"><?php echo $product['name']; ?></a> <?php if ($show_description || ($show_description_alt && !$product['attribute_groups'])) { ?> <p class="description"><?php echo $product['description']; ?></p> <?php } ?> <?php if ($show_attr) { ?> <div class="attribute <?php if ($show_description_alt && !$product['attribute_groups']) { ?>attribute_alt<?php } ?>"> <?php foreach ($product['attribute_groups'] as $attribute_group) { ?> <?php foreach ($attribute_group['attribute'] as $attribute) { ?> <?php if ($show_attr_name) { ?><span class="attr_name"><?php echo $attribute['name']; ?>:</span><?php } ?> <span class="attr_value"><?php echo $attribute['text']; ?></span> <?php } ?> <?php } ?> </div> <?php } ?> <div id="option_<?php echo $product['product_id']; ?>" class="option"> <?php if ($product['options']) { ?> <?php foreach ($product['options'] as $option) { ?> <?php if ($option['type'] == 'checkbox' || $option['type'] == 'select' || $option['type'] == 'radio' || $option['type'] == 'image') { ?> <div id="input-option<?php echo $option['product_option_id']; ?>"> <?php if ($option['required']) { ?>*<?php } ?> <label><?php echo $option['name']; ?>:</label><br /> <?php if ($option['type'] == 'select') { ?> <select name="option[<?php echo $option['product_option_id']; ?>]" class="form-control"> <option value=""><?php echo $text_select; ?></option> <?php foreach ($option['product_option_value'] as $option_value) { ?> <option value="<?php echo $option_value['product_option_value_id']; ?>"><?php echo $option_value['name']; ?><?php if ($option_value['price']) { ?>(<?php echo $option_value['price_prefix']; ?><?php echo $option_value['price']; ?>)<?php } ?></option> <?php } ?> </select> <?php } ?> <?php if ($option['type'] == 'checkbox' || $option['type'] == 'radio' || $option['type'] == 'image') { ?> <?php foreach ($option['product_option_value'] as $option_value) { ?> <label class="input"> <?php if ($option['type'] == 'checkbox') { ?> <input type="checkbox" name="option[<?php echo $option['product_option_id']; ?>][]" value="<?php echo $option_value['product_option_value_id']; ?>" id="option-value-<?php echo $option_value['product_option_value_id']; ?>" /> <?php } ?> <?php if ($option['type'] == 'radio' || $option['type'] == 'image') { ?> <input type="radio" name="option[<?php echo $option['product_option_id']; ?>]" value="<?php echo $option_value['product_option_value_id']; ?>" id="option-value-<?php echo $option_value['product_option_value_id']; ?>" /> <?php if($option_value['image']) { ?> <span class="img" title="<?php echo $option_value['name'] . ($option_value['price'] ? ' ' . $option_value['price_prefix'] . $option_value['price'] : ''); ?>" data-toggle="tooltip" data-thumb="<?php echo $option_value['small']; ?>"> <img src="<?php echo $option_value['image']; ?>" data-toggle="tooltip" alt="<?php echo $option_value['name'] . ($option_value['price'] ? ' ' . $option_value['price_prefix'] . $option_value['price'] : ''); ?>" class="img-thumbnail" /> </span> <?php } ?> <?php } ?> <span><?php echo $option_value['name']; ?><?php if ($option_value['price']) { ?><span>(<?php echo $option_value['price_prefix']; ?><?php echo $option_value['price']; ?>)</span><?php } ?></span> </label> <?php } ?> <?php } ?> </div> <?php } ?> <?php } ?> <?php } ?> </div> <?php if ($product['rating'] >= 0 && $show_rating) { ?> <div class="rating"> <?php for ($i = 1; $i <= 5; $i++) { ?> <?php if ($product['rating'] < $i) { ?> <span class="fa fa-stack"><i class="fa fa-star-o fa-stack-2x"></i></span> <?php } else { ?> <span class="fa fa-stack"><i class="fa fa-star fa-stack-2x"></i></span> <?php } ?> <?php } ?> <?php if ($show_rating_count) { ?><sup><a onclick="location='<?php echo $product['href']; ?>#tab-review'"><?php echo $product['num_reviews']; ?></a></sup><?php } ?> </div> <?php } ?> <?php if ($product['price']) { ?> <p class="price"> <?php if (!$product['special']) { ?> <?php echo $product['price']; ?> <?php } else { ?> <span class="price-old"><?php echo $product['price']; ?></span> <span class="price-new"><?php echo $product['special']; ?></span> <?php } ?> <?php if ($product['tax']) { ?><span class="price-tax"><?php echo $text_tax; ?> <?php echo $product['tax']; ?></span><?php } ?> </p> <?php } ?> </div> <div class="cart"> <button type="button" class="add_to_cart button btn btn-default <?php echo $product['cart_btn_class']; ?> <?php echo $product['product_id']; ?>" data-toggle="tooltip" title="<?php echo $product['cart_btn_text']; ?>" <?php echo(!$product['cart_btn_disabled'] ? 'onclick="cart.add('.$product['product_id'].');"' : '') ?>><i class="<?php echo $product['cart_btn_icon']; ?> <?php echo($product['cart_btn_icon_mobile'] ? 'visible-sm visible-xs' : ''); ?>"></i><span class="hidden-sm"><?php echo $product['cart_btn_text']; ?></span></button> <?php if ($show_quick_order && $show_quick_order_quantity || $show_quick_order && $product['quantity'] > 0) { ?> <button type="button" class="quick_order button btn btn-default" data-toggle="tooltip" title="<?php echo $quick_order_title; ?>" onclick="quick_order('<?php echo $product['product_id']; ?>');"><i class="<?php echo $quick_order_icon; ?>"></i><?php echo ($show_quick_order_text ? '<span class="hidden-sm">'.$quick_order_title.'</span>' : '') ?></button> <?php } ?> <?php if(!$wishlist_btn_disabled) { ?><button type="button" class="wishlist btn btn-default" data-toggle="tooltip" title="<?php echo $button_wishlist; ?>" onclick="wishlist.add('<?php echo $product['product_id']; ?>');"><i class="fa fa-heart"></i></button><?php } ?> <?php if(!$compare_btn_disabled) { ?><button type="button" class="compare btn btn-default" data-toggle="tooltip" title="<?php echo $button_compare; ?>" onclick="compare.add('<?php echo $product['product_id']; ?>');"><i class="fa fa-exchange"></i></button><?php } ?> </div> </div> </div> <?php } ?> </div> </div> <script type="text/javascript"> module_type_view('carousel', '.product_related'); </script> <hr /> <?php } ?> <?php if(isset($auto_related)) {echo $auto_related;} ?> <?php if ($tags) { ?> <p> <?php echo $text_tags; ?> <?php for ($i = 0; $i < count($tags); $i++) { ?> <?php if ($i < (count($tags) - 1)) { ?> <a href="<?php echo $tags[$i]['href']; ?>"><?php echo $tags[$i]['tag']; ?></a>, <?php } else { ?> <a href="<?php echo $tags[$i]['href']; ?>"><?php echo $tags[$i]['tag']; ?></a> <?php } ?> <?php } ?> </p> <hr style="margin-bottom:20px" /> <?php } ?> <?php echo $content_bottom; ?> </div> <?php echo $column_right; ?> </div> </div> <script type="text/javascript"> $('select[name=\'recurring_id\'], input[name="quantity"]').change(function(){ $.ajax({ url: 'index.php?route=product/product/getRecurringDescription', type: 'post', data: $('input[name=\'product_id\'], input[name=\'quantity\'], select[name=\'recurring_id\']'), dataType: 'json', beforeSend: function() { $('#recurring-description').html(''); }, success: function(json) { $('.alert, .text-danger').remove(); if (json['success']) { $('#recurring-description').html(json['success']); } } }); }); $('#button-cart').on('click', function() { $.ajax({ url: 'index.php?route=checkout/cart/add', type: 'post', data: $('#product input[type=\'text\'], #product input[type=\'hidden\'], #product input[type=\'radio\']:checked, #product input[type=\'checkbox\']:checked, #product select, #product textarea'), dataType: 'json', success: function(json) { $('.alert, .text-danger').remove(); $('.form-group').removeClass('has-error'); if (json['error']) { if (json['error']['option']) { for (i in json['error']['option']) { var element = $('#input-option' + i.replace('_', '-')); if (element.parent().hasClass('input-group')) { element.parent().after('<div class="text-danger">' + json['error']['option'][i] + '</div>'); } else { element.after('<div class="text-danger">' + json['error']['option'][i] + '</div>'); } $('#content').parent().before('<div class="alert alert-danger"><i class="fa fa-exclamation-circle"></i> ' + json['error']['option'][i] + '<button type="button" class="close" data-dismiss="alert">&times;</button></div>'); } } if (json['error']['recurring']) { $('select[name=\'recurring_id\']').after('<div class="text-danger">' + json['error']['recurring'] + '</div>'); } $('.text-danger').parent().addClass('has-error'); } if (json['success']) { //$('#content').parent().before('<div class="alert alert-success"><i class="fa fa-check-circle"></i> ' + json['success'] + ' <button type="button" class="close" data-dismiss="alert">&times;</button></div>'); $('#content').parent().before('<div id="add_to_cart_success">'+json['success_new']+'</div>'); $('#add_to_cart_success').popup({ transition: 'all 0.3s', onclose: function () { setTimeout(function () { $('html, body').find('.tooltip').remove(); }, 50); }, closetransitionend: function () { $(this).remove(); } }); $('#add_to_cart_success').popup('show'); product_id = $('input[name=\'product_id\']').val(); $('#cart > button').html('<i class="fa fa-shopping-basket"></i><span id="cart-total">' + json['total_items'] + '</span>'); replace_button(product_id); $('#cart > ul').load('index.php?route=common/cart/info ul li'); $('#cart').addClass('show'); } }, error: function(xhr, ajaxOptions, thrownError) { alert(thrownError + "\r\n" + xhr.statusText + "\r\n" + xhr.responseText); } }); }); $('.date').datetimepicker({ pickTime: false }); $('.datetime').datetimepicker({ pickDate: true, pickTime: true }); $('.time').datetimepicker({ pickDate: false }); $('button[id^=\'button-upload\']').on('click', function() { var node = this; $('#form-upload').remove(); $('body').prepend('<form enctype="multipart/form-data" id="form-upload" style="display: none;"><input type="file" name="file" /></form>'); $('#form-upload input[name=\'file\']').trigger('click'); if (typeof timer != 'undefined') { clearInterval(timer); } timer = setInterval(function() { if ($('#form-upload input[name=\'file\']').val() != '') { clearInterval(timer); $.ajax({ url: 'index.php?route=tool/upload', type: 'post', dataType: 'json', data: new FormData($('#form-upload')[0]), cache: false, contentType: false, processData: false, beforeSend: function() { $(node).button('loading'); }, complete: function() { $(node).button('reset'); }, success: function(json) { $('.text-danger').remove(); if (json['error']) { $(node).parent().find('input').after('<div class="text-danger">' + json['error'] + '</div>'); } if (json['success']) { alert(json['success']); $(node).parent().find('input').attr('value', json['code']); } }, error: function(xhr, ajaxOptions, thrownError) { alert(thrownError + "\r\n" + xhr.statusText + "\r\n" + xhr.responseText); } }); } }, 500); }); $('#review').delegate('.pagination a', 'click', function(e) { e.preventDefault(); $('#review').fadeOut('slow'); $('#review').load(this.href); $('#review').fadeIn('slow'); }); $('#review').load('index.php?route=product/product/review&product_id=<?php echo $product_id; ?>'); $('#button-review').on('click', function() { $.ajax({ url: 'index.php?route=product/product/write&product_id=<?php echo $product_id; ?>', type: 'post', dataType: 'json', data: $("#form-review").serialize(), beforeSend: function() { $('#button-review').button('loading'); }, complete: function() { $('#button-review').button('reset'); }, success: function(json) { $('.alert-success, .alert-danger').remove(); if (json['error']) { $('#review').after('<div class="alert alert-danger"><i class="fa fa-exclamation-circle"></i> ' + json['error'] + '</div>'); } if (json['success']) { $('#review').after('<div class="alert alert-success"><i class="fa fa-check-circle"></i> ' + json['success'] + '</div>'); $('#form-review input, #form-review textarea').val(''); $('.review_star input').attr('checked', false).prop('checked', false); $('#form-review').slideToggle(); } } }); }); $(document).ready(function() { $('#product .thumbnails .image-additional img').each(function() { $(this).hover(function() { $('#product .thumbnails li:first a').attr('href', $(this).attr('data-full')); $('#product .thumbnails li:first img').attr('src', $(this).attr('data-thumb')); }); }); $('.thumbnails').magnificPopup({ type:'image', delegate: 'a', gallery: { enabled:true } }); var hash = window.location.hash; $('.nav-tabs a').each(function() { var href = $(this).attr('href'); if (hash == href) { $($(this)).trigger('click'); scroll_to(hash); } }); $('.review_star input').hover(function(){ var stars = $(this).val(); $('.stars i').addClass('fa-star-o'); $('.stars i:lt('+stars+')').addClass('fa-star').removeClass('fa-star-o'); }, function(){ var start = $('input:radio[name=rating]:checked').val() if(start == 'undefined' ){start = 0; } $('.stars i').addClass('fa-star-o'); $('.stars i:lt('+start+')').addClass('fa-star').removeClass('fa-star-o'); }); $('.review_star input').click(function(){ $('.review_star input').each(function(){ $('.review_star input').not($(this)).attr('checked', false); }); $(this).attr('checked', true).prop('checked', true); }); }); </script> <?php echo $footer; ?>
×

Important Information

On our site, cookies are used and personal data is processed to improve the user interface. To find out what and what personal data we are processing, please go to the link. If you click "I agree," it means that you understand and accept all the conditions specified in this Privacy Notice.