Перейти до вмісту
Пошук в
  • Детальніше...
Шукати результати, які ...
Шукати результати в ...

MySun

Новачок
  
  • Публікації

    15
  • З нами

  • Відвідування

Повідомлення, опубліковані користувачем MySun

  1. Копаюсь в коде ocstore, учусь.

    Возник вопрос :

    В файле catalog\view\theme\mytheme\template\product\product.tpl кнопка addToCart описана следующим образом

    <a class="buy" onclick="addToCart('<?php echo $product_id; ?>');"><?php echo $button_cart; ?></a>

    Т.е в скрипт addToCart() передаётся только $product_id.

    Сам же скрипт addToCart() хранится в файле catalog\view\javascript\common.js и выглядит так

     

    function addToCart(product_id, quantity) {
    quantity = typeof(quantity) != 'undefined' ? quantity : 1;
    
    
    $.ajax({
    url: 'index.php?route=checkout/cart/add',
    type: 'post',
    data: 'product_id=' + product_id + '&quantity=' + quantity,
    dataType: 'json',
    success: function(json) {
    $('.success, .warning, .attention, .information, .error').remove();
    
    
    if (json['redirect']) {
    location = json['redirect'];
    }
    
    
    if (json['success']) {
    $('#notification').html('<div class="success" style="display: none;">' + json['success'] + '<img src="catalog/view/theme/default/image/close.png" alt="" class="close" /></div>');
    
    
    $('.success').fadeIn('slow');
    
    
    $('#cart-total').html(json['total']);
    
    
    $('html, body').animate({ scrollTop: 0 }, 'slow'); 
    } 
    }
    });
    }
    
    Совершенно не понятно, как и каким кодом при этом обрабатываются опции товаров.

     

    Может кто нибудь подсказать ?

  2. 1. Ошибка DATA not accepted from server , которая возникает при регистрации покупателя и приводит к неотправлению писем как админу, так и покупателю, исправляется следующим образом :

    в файле catalog\model\account\customer.php

     

    ищем две строки

    $mail->setText(html_entity_decode($message, ENT_QUOTES, 'UTF-8'));

    и обе исправляем следующим образом

    $mail->setText(strip_tags(html_entity_decode($message, ENT_QUOTES, 'UTF-8')));

    2. Ошибка при отправке сообщения со странички "Связаться с нами" вызвана тем, что происходит попытка отправки письма с адреса покупателя, а не вашего адреса. Поэтому в файле catalog\controller\information\contact.php необходимо исправить

    $mail->setTo($this->request->post['email']);

    на

    $mail->setTo($this->config->get('config_email'));
    • +1 1
  3. А что происходит с закладками не зарегистрированного гостя в последствии ?

    Есть ли срок хранения ?

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

  4. Mibew ! Ваша переписка у вас на сервере, а не у неизвестных людей, никаких ограничений по количеству операторов и одновременных чатов, хранение полной истории за неограниченный период. И всё это бесплатно и с открытыми исходниками.

  5. В CMS для интернет-магазинов OpenCart первой версии (самые распространенные 1.5.4.1 и 1.5.5.1, а так же разновидность интернет-магазина под названием ocStore) найдена уязвимость (вебшелл/эксплойт), при помощи которой злоумышленники могут заражать сайт вредоносным кодом. 

    Подробности уязвимости можете прочитать здесь: http://www.securitylab.ru/vulnerability/422889.php 

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

    Для лечения - проверьте файлы .htaccess на внедрение туда кода переадресации мобильных устройств на сайт, содержащий вирусы для Android. Для того, чтобы воспрепятствовать дальнейшей эксплуатации данной уязвимости, нужно либо полностью запретить запись в директорию download путёмустановки на неё атрибутов 555, либо разместить в ней файл .htaccess c директивой deny from all. 

    Так же рекомендую проверить все файлы на наличие кода eval(base64_decode - можно через Total Commander по FTP, либо по SSH. 

    Вот как-то так, кривой Опенкарт...

     

     

    Подсмотрено здесь http://www.cy-pr.com/people/63993/blog/uyazvimost-v-opencart/

  6. А вот скрипт, обрабатывающий нажатие кнопки

    <script type="text/javascript"><!--
    $('#button-cart').bind('click', function() {
    $.ajax({
    url: 'index.php?route=checkout/cart/add',
    type: 'post',
    data: $('.product-info input[type=\'text\'], .product-info input[type=\'hidden\'], .product-info input[type=\'radio\']:checked, .product-info input[type=\'checkbox\']:checked, .product-info select, .product-info textarea'),
    dataType: 'json',
    success: function(json) {
    $('.success, .warning, .attention, information, .error').remove();
    
    
    if (json['error']) {
    if (json['error']['option']) {
    for (i in json['error']['option']) {
    $('#option-' + i).after('<span class="error">' + json['error']['option'][i] + '</span>');
    }
    }
    } 
    
    
    if (json['success']) {
    $('#notification').html('<div class="success" style="display: none;">' + json['success'] + '<img src="catalog/view/theme/default/image/close.png" alt="" class="close" /></div>');
    
    
    $('.success').fadeIn('slow');
    
    
    $('#cart-total').html(json['total']);
    
    
    $('html, body').animate({ scrollTop: 0 }, 'slow'); 
    } 
    }
    });
    });
    //--></script>
     
  7. Выпадающий список опций формируется таким кодом :

    <select name="option[<?php echo $option['product_option_id']; ?>]">
    <option value=""><?php echo $text_select; ?></option>
    <?php foreach ($option['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> 
  8. Мучаю ocStore 1.5.4.1

     

    Редактирую файлик catalog\view\theme\my_theme\template\product\product.tpl,

    хочу заменить список выбора опций товара и единственную кнопку "Купить" таблицей такого вида :

     

    picmk.jpg

     

    Подразумевается, что нажав определённую зелёную кнопку в таблице, кладём в корзину товар с соответствующими опциями (материал, размеры, цена).

     

    Опции к товару добавил, сформировал табличку на основе этих опций.

    Не пойму, как реализовать кнопки с предустановленными опциями ?

  9. ocStore 1.5.4.1

    В файле /admin/view/template/common/header.tpl подключаются следующие скрипты и css:

    
    
    <link type="text/css" href="view/javascript/jquery/ui/themes/ui-lightness/jquery-ui-1.8.16.custom.css" rel="stylesheet">
    
    

    Перепробовал вместо jquery-1.8.3.min.js подключать все доступные для скачивания версии

    1.9.0

    1.8.3

    1.8.2

    1.8.1

    1.8.0

    1.7.2

    1.7.1

    1.6.4

    1.6.3

    Сколь ни жал зёлёную кнопку

    option.png

    однако опции к товару добавить так и не получилось.

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

  10. Да, спасибо.

    Набросал по быстрому xml для vqmod:

    <modification>
    <id>Храним цены в долларах, а по умолчанию показываем в рублях</id>
    <version>1.0.0</version>
    <vqmver>1.2.0</vqmver>
    <author>mySun</author>
    <file name="system\library\currency.php">
    <operation error="abort">
    <search position="replace"><![CDATA[
    $this->set($this->config->get('config_currency'));
    ]]></search>
    <add><![CDATA[
    if ($this->has('RUB')) {
    $this->set('RUB');
    } else {
    $this->set($this->config->get('config_currency'));
    }
    ]]></add>
    </operation>
    </file>
    </modification>

    Работает в ocStore Version 1.5.4.1

×
×
  • Створити...

Important Information

На нашому сайті використовуються файли cookie і відбувається обробка деяких персональних даних користувачів, щоб поліпшити користувальницький інтерфейс. Щоб дізнатися для чого і які персональні дані ми обробляємо перейдіть за посиланням . Якщо Ви натиснете «Я даю згоду», це означає, що Ви розумієте і приймаєте всі умови, зазначені в цьому Повідомленні про конфіденційність.