Расширение логики корзины

Обращаюсь из javascript к своему классу корзины, но получаю ошибку. Подскажите, в чем проблема?
Вот 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]}
Алексей
20 апреля 2015, 15:57
modx.pro
2 383
0

Комментарии: 4

Володя
20 апреля 2015, 19:04
0
    Алексей
    20 апреля 2015, 20:30
    0
    Нет. Спасибо за наводку. Я не понял, а это что всё слетит при обновлении?
      Алексей
      20 апреля 2015, 20:49
      0
      Странно. Добавил код.
      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

      То есть похоже плагин к старому классу обращается. Кеш чистил. Даже содержимое папки кеш вручную удалял.
        Володя
        20 апреля 2015, 22:40
        +1
        включаем «свою» логику… Возможно свой класс корзины мы таки не подключили?
        Что же нам делать? Наверно нужно где то просветиться.
        Идем куда? Правильно — сюда
        Ищем нашу настройку 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);
        			}
        		}
        	}
        а значит свой кастомный класс мы не туда положили… берем и переносим в нужную папку…
      Авторизуйтесь или зарегистрируйтесь, чтобы оставлять комментарии.
      4