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

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

С нами с 30 ноября -0001; Место в рейтинге пользователей: #24
Алексей Шумаев
05 сентября 2017, 17:30
0
Поставил debugParser на тесте. У меня ничего не прибавляется. Зато скидка нормально считается.
Смотрите, что у вас. Если используете debugParser с ?debug=1, то имейте ввиду, что если что-то обновляете с галкой очистки кэша, то в первый раз получите кол-во запросов без кэша. Обновим страницу и получим снова с кэшем. Может отсюда +32 запроса?
Алексей Шумаев
05 сентября 2017, 17:03
0
Не за что!
Алексей Шумаев
05 сентября 2017, 16:08
0
А что у вас в этом сниппете?
Мне интересно, откуда дополнительные запросы появляются.
Алексей Шумаев
05 сентября 2017, 16:00
0
Наверное лучше примерно так:
$tv_id = 1; #id нужного TV
$resource = $modx->getObject('modResource',$orderProduct->get('product_id'));
$tv = $resource->getTVValue($tv_id);
/* обновляем значение TV  */
$resource->setTVValue($tv_id,'Новое значение');
Алексей Шумаев
05 сентября 2017, 14:50
0
Не за что! На то оно и сообщество.
Алексей Шумаев
05 сентября 2017, 14:24
0
Зачем ещё запрос?
«Эти параметры дополнительно определяют, какие данные и каким способом будут выводиться.»
Т.е. обрабатываются уже полученные результаты запроса, перед отдачей в чанки.

Создайте сниппет prepareData
<?php
if (!is_array($row)) {
	return '{}';
}
$row['discount'] = round(100 - (100 * $row['price']/ $row['old_price']));
return json_encode($row);
и вызовите любой сниппет, использующий pdoTools (pdoResource,msProducts в данном случае) с параметром prepareSnippet = prepareData

Ну и обработайте $row['price'] и $row['old_price'] перед формулой, если нужно убрать пробелы и т.п.
Алексей Шумаев
05 сентября 2017, 13:53
0
Если не верно указать адрес retailCRM (modretailcrm_urlCrm), то будет
PHP message: PHP Fatal error:  Uncaught Error: Class 'InvalidJsonException' not found in /home/xxx/xxx/xxx/components/modretailcrm/model/modretailcrm/Response/ApiResponse.php:52
Ошибка не очевидная… Наверно желательно добавить проверку нужных настроек в начале + добавить исключение, я так понимаю.
Алексей Шумаев
05 сентября 2017, 13:29
0
Плагин на msOnCreateOrder.
Там есть $order со всеми товарами. Пройтись по ним и для каждого получить значение TV, обновить его, записать новое.
Алексей Шумаев
05 сентября 2017, 12:09
0
И ещё… А почему вы постоянно чистите лог? Что там за ошибки?
Алексей Шумаев
05 сентября 2017, 12:08
0
В данном случае, думаю, нормальный. Как им ещё понять, что происходит, ведь оно происходит именно в админке сайта?
На самом деле, важно, что они хотят помочь, а не отписываются, типа «у нас всё ок, смотрите что у вас не работает».
Сделайте резервную копию, потом смените пароль.
Не вижу причин не доверять поддержке хостинга — вряд ли они подсадят вам что-то.
Всё равно, чтобы кто-то смог вам помочь, придётся давать ему доступ в админку, хотя бы для того, чтобы посмотреть что в консоли.
Алексей Шумаев
05 сентября 2017, 11:38
0
Для админки: а не стоит ли дополнение controlErrorLog?
Дело в том, что если error.log слишком большой, то его отдача через controlErrorLog приведёт к ошибке.
По лимиту в nginx.
Пишу по памяти, поэтому могу ошибаться, но тем не менее — проверьте.
Алексей Шумаев
05 сентября 2017, 11:19
0
Всем нам поможет prepareSnippet. Делаем там что угодно, например:
$row['discount'] = round(100 - (100 * $row['price']/ $row['old_price']));
return json_encode($row);
В чанке у вас теперь есть [[+discount]], ну или {$discount} для fenom
Алексей Шумаев
05 сентября 2017, 11:14
0
minishop2 не может отказаться работать с jpg. Проверьте настройки источника файлов; посмотрите как работает на чистой установке, без правок.
Алексей Шумаев
05 сентября 2017, 11:10
0
Изменение базового сервиса корзины документация
Алексей Шумаев
05 сентября 2017, 10:34
0
http://prntscr.com/gh8rr0. Стандартно идёт ответ с общим количеством.

Можно так: расширить класс mscarthandler.class.php, добавив методу status ещё один элемент, например total_num, где указывать то, что нужно. Он будет в response и его можно использовать в сниппете миникорзины или в js-callback miniShop2.Callbacks.Cart.change.response.success.
Это универсально, т.к. можно добавлять любую информацию и, например, выводить красивое окошко с информацией о добавленном товаре, составе корзины, скидки и т.д.

Можно как-то иначе, через плагин например, или сделать свой сниппет миникорзины, куда добавить нужный параметр, просто count($_SESSION['minishop2']['cart']) :-).
В общем вариантов несколько…
Алексей Шумаев
05 сентября 2017, 10:16
0
Да, выглядит не очень…

Как вариант: хранить файлы в облаке с нужными размерами.
Например, у меня есть 2 сайта, использующие одинаковые картинки. Соответственно, хранятся они в облаке, с нужными размерами и берутся обоими сайтами оттуда.
Плюсы: никаких обработок картинок «на лету», не занимают места на сервере, CDN + картинки загружать можно только на одном сайте или вообще заливать через API, без MODX со сторонних источников.
Смотреть в сторону Swift. Респект Василию, как всегда.
Алексей Шумаев
04 сентября 2017, 11:16
+2
Такая «проблема» может иногда возникать, встречал.
Какой-то сниппет (не помню сейчас, какой именно) не учитывают в пути basePath источника файлов.
Проверил: pdoResources точно учитывает )
Алексей Шумаев
01 сентября 2017, 15:23
+1
Вот же'шь ) Привык, что всё нужное есть на Modhost. Поставил на тестовом, забыв, что он на nic'е и там ничего не включено) Спасибо.