Расширение логики корзины
Обращаюсь из javascript к своему классу корзины, но получаю ошибку. Подскажите, в чем проблема?
Вот js:
В консоли получаю:
Вот js:
var key = jQuery(this).parents("tr.cart_item").attr("id");
var size = this.value;
var ms2_action = 'cart/change_size';
var ctx = 'web';
var data = {key:key, size:size,ms2_action:ms2_action, ctx:ctx};
jQuery.ajax({type: 'POST',
url: '/assets/components/minishop2/action.php',
data: data,
dataType: 'json',
success: function(data)
{
//data = jQuery.parseJSON(data);
console.log(data);
}
});
Вот класс корзины:class msMyCartHandler extends msCartHandler{
public function change_size($key, $size)
{
return $this->success('Ok');
}
}
В консоли получаю:
Object {success: false, message: "Неизвестная ошибка", data: Array[0]}
Комментарии: 4
в плагине добавили свою запрос? github.com/bezumkin/miniShop2/blob/master/core/components/minishop2/elements/plugins/plugin.minishop2.php#L49
Нет. Спасибо за наводку. Я не понял, а это что всё слетит при обновлении?
Странно. Добавил код.
Класс обработчик корзины | ms2_cart_handler_class | msMyCartHandler
Файл msmycarthandler.class.php лежит в папке /core/components/minishop2/model/minishop2, т.е. рядом с основным классом, но сайт возвращает 500. А в логе:
PHP Fatal error: Call to undefined method msCartHandler::change_size() in /home/c/co82734/fyc/public_html/core/cache/includes/elements/modplugin/1.include.cache.php on line 37, referer: fyc.tw1.ru/korzina.html
То есть похоже плагин к старому классу обращается. Кеш чистил. Даже содержимое папки кеш вручную удалял.
case 'cart/change_size': $response = $miniShop2->cart->change_size(@$_POST['key'], @$_POST['size']); break;
В настройках:Класс обработчик корзины | ms2_cart_handler_class | msMyCartHandler
Файл msmycarthandler.class.php лежит в папке /core/components/minishop2/model/minishop2, т.е. рядом с основным классом, но сайт возвращает 500. А в логе:
PHP Fatal error: Call to undefined method msCartHandler::change_size() in /home/c/co82734/fyc/public_html/core/cache/includes/elements/modplugin/1.include.cache.php on line 37, referer: fyc.tw1.ru/korzina.html
То есть похоже плагин к старому классу обращается. Кеш чистил. Даже содержимое папки кеш вручную удалял.
включаем «свою» логику… Возможно свой класс корзины мы таки не подключили?
Что же нам делать? Наверно нужно где то просветиться.
Идем куда? Правильно — сюда
Ищем нашу настройку ms2_cart_handler_class
ага вот оно — github.com/bezumkin/miniShop2/blob/master/core/components/minishop2/model/minishop2/minishop2.class.php#L132 и что у нас тут? а у нас тут
а это
Что же нам делать? Наверно нужно где то просветиться.
Идем куда? Правильно — сюда
Ищем нашу настройку ms2_cart_handler_class
ага вот оно — github.com/bezumkin/miniShop2/blob/master/core/components/minishop2/model/minishop2/minishop2.class.php#L132 и что у нас тут? а у нас тут
if ($cart_class != 'msCartHandler') {$this->loadCustomClasses('cart');}
что за это такое loadCustomClasses?а это
public function loadCustomClasses($dir) {
$files = scandir($this->config['customPath'] . $dir);
foreach ($files as $file) {
if (preg_match('/.*?\.class\.php$/i', $file)) {
include_once($this->config['customPath'] . $dir . '/' . $file);
}
}
}
а значит свой кастомный класс мы не туда положили… берем и переносим в нужную папку…
Авторизуйтесь или зарегистрируйтесь, чтобы оставлять комментарии.