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

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

Добрый день, уважаемые форумчане. Снова нужна ваша помощь. Я новичек в openCarte?

Но устроился на работу где придется много сайтов писать именно на его движке. И вот столкнулся с проблеммой.

Написал свой скрипт для вывода из БД товара. На jQuery(ajax в основном) php mysql

Вот пример того что работает http://automehanik.seomax.biz/chain/

Есть файл index.php - в нем в header скрипт 

 

 

 

 



<script type="text/javascript">
$(document).ready(function(){
$("select#type").attr("disabled","disabled");
$("select#year").attr("disabled","disabled");
$("select#modification").attr("disabled","disabled");

$("select#category").change(function(){
$("select#type").attr("disabled","disabled");
$("select#type").html("<option>wait...</option>");
var vendor = $("select#category option:selected").attr('value');
$.post("select_type.php", {vendor:vendor}, function(data){
$("select#type").removeAttr("disabled");
$("select#type").html(data);
});
});

...................

if(cat != "" && type != "")
{
var result = $("select#type option:selected").html();
$("#result").html('your choice: '+result);
}
else
{
$("#result").html("you must choose two options!");
}
return false;
});
});
</script>
 

Этот скрипт передает методом пост значения в три пхпшных файла по очереди:

 

 



$.post("select_type.php", {vendor:vendor}, function(data){
 

И главный пхп файл обрабатывает значения принятые из пост - берет из БД значения и возвращает обратно в список селект значения.

 

ТАК ВОТ! САМ СКРИПТ РАБОТАЕТ ЧУДЕСНО!

Но блин в opencarte жеж скрипты отдельно, хеадер отдельно, левая колонка, куда нужно залить выпадающее меню отдельно и файл вывода - главный блок container - отдельно.

 

Например подключил я скрипт в хеадер что в папке common

<script type="text/javascript" src="catalog/view/javascript/shini.js"></script>

А файлы которые постом прописаны в моем скрипте куда копировать?

Или взял я уже и прописал в header весь скрипт, но он все равно почему то не работает.

 

И даже скрипт не работает, т.к. $(document).ready(function(){ уже используется opencartom изначально для других целей?

Или есть статья на форуме как подключить свои скрипты на эту машину??? ОЧЕНЬ НАДО, люди добрые помогите. второй день капаюсь не могу подключить.

 

 

С Уважением,

Евгений.

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


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

Колонки это фиксированные позиции для вывода модулей.

 

Да, в OpenCart есть такая штука как модули, но чтобы понять как его засунуть в колонку надо открыть код существующих модулей и посмотреть. Или почитать доки. В общем, создать примитивный модуль. Если Вы делаете "сайт под ключ", то можно согрешить и засунуть код прямо в commom/column_left.tpl.

 

Чтобы не править ядро есть vQmod. Про это читайте в документации. 

 

JavaScript сценарии в OpenCart сплошь и рядом разбросаны по шаблонам так что тут можно излишне не стараться придерживаться чистоты кода.

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


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

почитай про MVC.

посмотри код любого стандартного модуля (как то: featured, latest).

 

начни с оригинального Opencart - там большинство компонентов имеют такие же названия, как и имена их файлов (product, category, latest, etc).

должно помочь в ориентации по структуре каталогов/файлов.

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


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

Вот пример того что работает

О! А вот к вам есть вопрос:

насколько актуальна ваша версия базы соответствия машин к размерам шин и дисков?

Авто каких лет выпуска у вас последние?

 

Чьи-то модули

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


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

Отвечу deim этот скрипт что вы прикрепили в спойлере - мой начальник купил на этом сайте. Но я хочу сделать все немного по другому. И когда начал капаться в скрипте понял - что можно еще поколдовать и улучшить. А так база прошлогодняя, и перебивать коммерцию человеку я не собираюсь. Но скрипт для вывода как у tpyht сделал сам под свои нужды.

 

Так вот структуру opencart я знаю. Уже делал пару сайтов на нем. Логику MVC изучал.

Вопрос у меня совсем другой был.

 

Я просто вставил куски кода по сайту без создания модуля - в left_collumn вывел список, в header записал javascript код, но все это дело не заработало и я распихивал файлы по различным папкам что бы хотябы запросы пост шли на файлы что указаны в яваскрипт функциях - а они не идут. То есть визуальные эффекты работают. Первый массив из пхп файла что я инклюдил - запустился - а вот пост что передается странице не пошел.

Так вот есть ли на форуме статья или может кто то сталкивался с таким, потому что где то читал, что в левой-правой колонках и футере-топе вообще нельзя оттуда ассинхронные запросы посылать! Это правда или бред? Статей  в интернете мало по созданию своих модулей - везьде как то кратко о структуре и куда записывать файлы и как вызывать товар и каталог. А если мне нужно самому сделать запрос к БД. Стоит ли к ней подключатся и будет ли модуль видить не только один файл в модулях а если их 4штуки, короче такие мелкие нюансы. Я на этом форуме находил вещи и по серьездней, как ребята ядро opencarta изменяли, переделывали товары добавляя ячейки, делали ветер. А вот с ассинхронностью что то я еще парюсь.

 

То есть проблемма в том что бы добавить в левую колонку выпадающий ассинхронный список, который уже я написал а результат так же ассинхронно выдавался в главной колонке. Что мне почитать для этого и делал ли кто так? Сейчас читаю о создании модулей.

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


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

Для публикации сообщений создайте учётную запись или авторизуйтесь

Вы должны быть пользователем, чтобы оставить комментарий

Создать учетную запись

Зарегистрируйте новую учётную запись в нашем сообществе. Это очень просто!

Регистрация нового пользователя

Войти

Уже есть аккаунт? Войти в систему.

Войти

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

    • От YaroslavFrolov
      Доброго времени суток. Помогите плиз, нужно данные из корзины вставить в письмо заказа. Обработчик не от опенкарт.
    • От TerranXXX
      Необходимо модифицировать CMS ocStore v2.3 (русский OpenCart 2.1) для работы с MS SQL Server 2012+.

      Обязательные требования:
      1. Взаимодействие CMS с БД должно происходить исключительно через хранимые процедуры (доступа к таблицам у CMS не будет)
      2. Часть логики из php нужно перенести в хранимые процедуры (например динамическое формирование запросов)

      В ответе сообщите срок и стоимость данной работы.
    • От Bistore
      Добрый день помогите выбрать добить модуль личных количественных скидок на каждого пользователя отдельно в ограниченном виде!
      Получается
      1) Можно сравнить количество скидок на товар и количество купленных товаров пользователей(только авторизованные будут) сравнивая по айди товара и купленого товара минусовать количество скидок от купленного товара и выводить есть ли скидочный товар или же нет( или какое количество осталось).
       
      2) Я вывел sql  запросом уже в пользователе количество скидочных товаров минус количество купленного товара по айди ----- и теперь нужно по айди сравнить купленный товар и товар связать и по полю kolichestvo которое получилось в пользователе смотреть Kol=>0 ? или меньше и тд  
      Как лучше сделать?
      Как связать купленный товар(этим пользователем)  и товар на сайте?
      В файле который добавил в этот вопрос есть код корзины где осуществил все (jan - это количество скидок на товар) 
      cart.php
    • От Exzik
      Добрый день , форумчане 
      Появилась проблема, которую я не могу решить сам 
      На страницу категорий добавил скрипт прокрутки, работает как часы  и грузит все отлично.
      Проблема в том, что из-за этого скрипта перестали работать кнопки (Добавить в корзину и т.д )
      Не могли бы подсказать в чем именно проблема ? 
      Ссылка на сайт  тут
       
       
      Скрипт 
      $(function() { function scrollLoader() { console.log('---', 123) if ($(window).scrollTop() == $(document).height() - $(window).height()) { console.log('---', 'ok') setTimeout(function() { $('#endless').trigger('click') }, autoscroller.delay) } } var autoscroller = [] //setting autoscroller.hidePagination = 1 autoscroller.autoScroll = 0 autoscroller.catcher = '#endless' autoscroller.delay = 1000 autoscroller.loading = 0 $(window).scroll(function() { scrollLoader() if (inWindow(autoscroller.catcher) && !autoscroller.loading && autoscroller.autoScroll) { autoscroller.loading = true $('#endless .fa-refresh').addClass('btn-load-new') } }) if ($('.category-catalog').length) { if ($('.pagination').length && !$('.pagination > li:last-child').hasClass('active')) { $('#content col-12 col-md-9 order-2').hide() $('.pagination') .parent() .before( '<div class="col-xs-12 text-center"><button class="btn btn-success btn-lg" id="endless" style="margin: 15px auto; padding: 10px 120px;" ><span class="btn-load-new">Еще товары</span></i></button></div>') $('#endless').on('click', function(e) { var lastProduct = $('.pagination') .closest('.category-catalog') .find('.front-top-products li:last-child') var nextPage = $('ul.pagination li.active').next().find('a:first-child') var nextPageHref = nextPage.attr('href').substring(7) // console.log('---',nextPageHref); // console.log('---', nextPage.attr('href')); $.ajax({ url: 'https://' + nextPageHref, beforeSend: function() { $('#endless .fa-refresh').addClass('btn-load-new') }, success: function(data) { var products = $(data).find('.category-catalog .front-top-products') lastProduct.after(products) $('.pagination').html($(data).find('.pagination > *')) nextPage = $('ul.pagination li.active').next().find('a:first-child') if (nextPage.length == 0) { $('#endless').remove() } else { $('#endless .fa-refresh').removeClass('btn-load-new') } autoscroller.loading = 1 }, }) return false }) } } function inWindow(el) { if ($(el).length) { var scrollTop = $(window).scrollTop() var windowHeight = $(window).height() var offset = $(el).offset() if (scrollTop <= offset.top && ($(el).height() + offset.top) < (scrollTop + windowHeight)) { return true } } return false } })  
    • От AndreyRr
      Генерируется много обращений к MySQL - превышаем лимиты на хостинге, и хостер ругается.
       
      С чем может быть связано, и можете посоветует кто-то толькового программиста кто может решить? (сам магазин небольшой, 300 товаров)
  • Последние посетители   0 пользователей онлайн

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

×

Важная информация

На нашем сайте используются файлы cookie и происходит обработка некоторых персональных данных пользователей, чтобы улучшить пользовательский интерфейс. Чтобы узнать для чего и какие персональные данные мы обрабатываем перейдите по ссылке. Если Вы нажмете «Я даю согласие», это означает, что Вы понимаете и принимаете все условия, указанные в этом Уведомлении о Конфиденциальности.