Алексей Шумаев

Алексей Шумаев

С нами с 30 ноября -0001; Место в рейтинге пользователей: #24
Алексей Шумаев
01 сентября 2017, 14:24
-1
Владимир, у меня при запуске твоего решения вылезла:
Fatal error: Uncaught Error: Class 'Phar' not found in ...
В чём может быть проблема?
Алексей Шумаев
31 августа 2017, 12:45
0
Отлично!
Ну а кто-то, кому нечто особое нужно, заюзает класс дополнив его…
Алексей Шумаев
31 августа 2017, 12:33
0
Пока писал ответ на предыдущий коммент, появилось это предложение )
Алексей Шумаев
31 августа 2017, 12:32
0
Надо бы )
Самому смешно, но руки не доходят отладить гит.
Кстати, можно же вообще компонент собрать и выложить бесплатно в макет.
Может у кого есть время?
Алексей Шумаев
24 августа 2017, 13:28
0
Можно так ))):

{$_modx->runSnippet('extScripts',['code'=>'Код внешнего скрипта, например из ресурса или системной настройки'])}

Сниппет:

$search = array('{', '}');
$replace = array('{ ', ' }');
$out = str_replace($search,$replace,$code);
return $out;

Так можно избежать ошибок Fenom во внешних скриптах и подобных случаях…
Алексей Шумаев
22 августа 2017, 17:25
0
Только руки дошли…
В общем, у кого осталась ошибка с «modsendpulse» в логе после обновления, уберите «modsendpulse» из системной настройки minishop2 «extension_packages»
Алексей Шумаев
17 августа 2017, 11:48
0
Отправил запрос в скайпе.
Алексей Шумаев
31 июля 2017, 17:04
0
Опа, вопрос-то устарел ) На дату не посмотрел…
Ну да ладно, вдруг кому понадобиться.
Алексей Шумаев
31 июля 2017, 17:03
0
Изображения сначала нужно загрузить.
Примерно так:
$dir = 'temp/';
	$file = ''; // здесь собственно файл, полученный например curl'ом по ссылке из xml
        $image = $dir.basename('путь к файлу в xml');
        $fp = fopen($newfile, 'w');
        fwrite($fp, $file);
        fclose($fp);
                
        if(is_file($newfile)) {
             $response = $this->modx->runProcessor('gallery/upload',
    			array('id' => $resID, 'name' => $product['pagetitle'], 'file' => $newfile),
    			array('processors_path' => $this->corePath.'components/minishop2/processors/mgr/')
    		);
    		if ($response->isError()) {
    			$this->modx->log(1, 'Ошибка загрузки изображения:'.print_r($response->getAllErrors(), 1));
    		}
    		unlink($newfile);
        }
Алексей Шумаев
28 июля 2017, 12:50
0
Сейчас нет компонента в магазине.
По ссылке: modstore.pro/packages/ecommerce/payandsee — главная открывается.
Он убран из магазина или это ошибка?
Алексей Шумаев
21 июля 2017, 18:56
0
Я бы попробовал расширить класс mse2FiltersHandler и переписать функцию getMsOptionValues, добавив туда нужные сортировки.
В настройках заменить значение mse2_filters_handler_class на свой класс, расширяющий mse2FiltersHandler.
Алексей Шумаев
20 июля 2017, 14:20
0
У меня всё нормально.
Алексей Шумаев
20 июля 2017, 13:17
0
Можно руками всё выводить. Мне часто обычно удобнее так.
Все данные по всем свойствам — в массиве товара.
При использовании Fenom доступны например, так:
{set $product = $_modx->resource}
price = {$product.price}
Если ваша опция массив — используйте {foreach}{/foreach}.
Fenom: var_dump (dump) — распечатка переменной вместе с типом
Соответственно — выводите так, как удобно в данном случае.
Алексей Шумаев
16 июля 2017, 13:08
0
Павел, не выяснилось в чём была проблема с «Cannot read property 'setWidth' of undefined»?
Учусь на этом примере, то же самое вылезло, что не удивительно )
Работает всё нормально.
Алексей Шумаев
13 июля 2017, 11:06
1
+1
Можно как угодно менять.
Как вариант, я вообще отключаю и делаю свой вывод сообщений в модальном окне, примерно так:
1) копируем штатный скрипт из assets/components/minishop2/js/web/default.js в assets/components/minishop2/js/web/custom.js
2) переключаем в настройках системы параметр ms2_frontend_js на новый скрипт
3) переписываем метод miniShop2.Message в скрипте на свой, например как-то так:
....
 miniShop2.Message.show = function (message) {
                if (message != '') {
                     $('#modalMessageContent').html(message);
			$('#modalMessage').modal();
                }
            };
...
Всё, что касается jGrowl в этом методе нужно в этом случае закомментировать/удалить.

Также можно обойтись без кастомизации метода: просто закомментить jGrowl в своём скрипте и использовать callbacks. Например в своём скрипте на фронтенде:
if (typeof(miniShop2) != 'undefined') { 
        miniShop2.Callbacks.Cart.add.response.success = function(response) {
            if (response.success) {
	    		console.log('cart:add');
	    	}
        }
   
        miniShop2.Callbacks.Cart.change.response.success = function(response) {
	    	if (response.success) {
	    		console.log('cart:change');
	    	}
	    };
	    
	     miniShop2.Callbacks.Cart.remove.response.success = function(response) {
	        if (response.success) {
	            console.log('cart:remove');
	        }
	     };
    }
Все данные находятся в response.
Алексей Шумаев
12 июля 2017, 16:58
0
Есть такое. Жесть.
Я не уверен, что ставить некие изменения цены от порядка — хорошая идея, ибо велик риск ошибки.
Тем не менее, нормальная сортировка иногда кране нужна на фронтенде.
Я пока вышел из положения сортируя опции как мне нужно в prepareSnippet.
if(isset($row['height'])) {
    foreach($row['height'] as $k=>$v) {
        #some code
    }
}
Поищу попозже иной вариант решения, если найду — постараюсь не забыть написать.
Алексей Шумаев
30 июня 2017, 17:46
0
Смотри js в контенте/шаблонах/чанках. Достаточно поставить пробел м/д { и продолжением в строках вида «{some_code». Часто «виноваты» конкретно счётчики метрики, addwords и т.п.
Алексей Шумаев
27 июня 2017, 10:16
0
Не совсем:
(ERROR @ /core/xpdo/xpdo.class.php: 503) Path specified for package modsendpulse is not a valid or accessible directory: core/components/modsendpulse/model/

Источник здесь: components/modretailcrm/index.class.php