Всего 125 670 комментариев

varanika
26 июня 2021, 20:57
0
А вот ломание карточки товаров не зависит от компонентов. Но modhost на голой системе + minishop2 и pdotools — только товар сохраняется, как его тут же перекашивает и белые поля. Решается правкой js — писал выше
assets/components/msreferralprogramcoin/js/mgr/msrpc.js -->.items.items[1].items.items[2]
varanika
26 июня 2021, 18:20
0
В общем выяснилось (долго и муторно), что msReferralProgramCoin и msGallerySearch несовместимы.
На чистом сайте при установке второго — первый ломается. И происходит то, что и я, и другие пользователи описывали — пропадают лексиконы, не срабатывают сниппеты и чанки, не списываются бонусы в корзине. Как, почему — я не поняла, ибо и события не совпадают у плагинов, и логика разная…

И немного моего мелкого изменения. Позже, вероятно, дополню. При установке галочки в корзине ничего не меняется и мне, как юзеру — это не понятно. Ибо где логика — чекбокс тыкаем, а толку ноль. Соответственно делаю так в корзине:
<script>
         var $pay = $('#msrpc-cart-payroll-dec').html();
         var $payr = $pay / 10;
 var $cost = Number($('#ms2_order_cost').html()) - $payr;
$htm = '- '+ $pay + ' баллов = ' +  $cost + ' руб.';
 $('#msrpc-pay-coins').change(function() {
     $(this).val($(this).prop('checked')?1:0);
     if ($(this).val() == 1){
          $('#referball').val('оплачено ' + $pay  + ' баллами - это '+ $payr + ' рублей');
          $('#referball').attr('value', 'оплачено ' + $pay  + ' баллами - это '+ $payr + ' рублей');
          $('#referrubl').val($payr);
          $('#referrubl').attr('value', $payr);
          
         $('#bonussumm').html($htm);
          
     }
     else {
          $('#referrubl').val('');
          $('#referrubl').attr('value', '');
          $('#referball').val('');
          $('#referball').attr('value', '');
         $('#bonussumm').html('');
     }
    
});
if ($('#msrpc-pay-coins').prop('checked')){
    $('#bonussumm').html($htm);
}	 
else { $('#bonussumm').html(''); }
	</script>
Установка value и одновременно с ним attr я делаю из занудства, ибо меня выбешивает, что в консоли хрома value остается чистым.

Ну и эти поля в вызове. Ах, да. В сниппете msrpcCart я дописала
$pdo = $modx->getService('pdoTools');
и вместе где
$modx->getChunk
заменить на 
$pdo->getChunk
Теперь у нас есть fenom и мы можем добавить такое в tpl:
<p class="msrpc-text">После фактической оплаты заказа с Вашего счета будет списано <span class="msrpc-cart-payroll-dec" id="msrpc-cart-payroll-dec">{$pay}</span> балла(ов), а общая сумма заказа уменьшится на {($pay / 10)  | replace :',':'.'} рублей</p>
и тут же пониже
<input type="text" value="{if $pay}оплачено {$pay} баллами - это {($pay / 10)  | replace :',':'.'} рублей{/if}" name="metro" id="referball" class="d-none">
     <input type="text" value="{if $pay}{($pay / 10)  | replace :',':'.'}{/if}" name="referrubl" id="referrubl" class="d-none">
10 — это именно у меня отношение к бонусам такое. Может и 1 и 100 быть :)
Заметили name=«metro»? Вот это малоиспользуемое поле я забрала именно, чтобы менеджер видел в админке, что списание цены было баллами, так как не понятно толком. Конечно, можно создать свое поле в админку, но что-то по двум инструкциям они у меня не создались и я просто махнула рукой. Ну, главное лексиконы переименовать, чтобы понятнее было.
и в msOrder в чанке так:
<span id="ms2_order_cost">{$order.cost ?: 0}</span> {'ms2_frontend_currency' | lexicon}
 <span id="bonussumm"></span>
Андрей
26 июня 2021, 11:56
0
Попробуйте обновить движок до актуальной 2.8.3. Версию php можно поднять до 7.4.

Серверный лог посмотрели, какие там записи есть?
Павел Романов
26 июня 2021, 11:10
1
+1
Можно так:
<?php
$id = $modx->resource->id;
$tpl = '@INLINE <li><a href="[[~[[+id]]]]">[[#[[+id]].tvname]]</a></li>'; // tvname - имя Вашей TV
//.....
Вероника
26 июня 2021, 07:43
0
MODX Revolution 2.8.1-pl
PHP 7.1.
Ivanov Alexandr
25 июня 2021, 21:44
0
Столкнулся с еще одно проблемой. При использовании babel на мультиязычном сайте, в другом контексте когда используешь блоки такие же как использовал в основном контексте они на сайте отображаются но вот в админке не отображаются добавленные блоки к странице.
Артем
25 июня 2021, 15:05
0
npm выполнены в формате модулей CommonJS
Далеко не все, зависит от пакета. Если пакет пишется под браузер, то он будет юзать ES6 модули, а если под сервер, то там на что фантазии хватит:
  • можно юзать CommonJS
  • можно юзать ES6 + type: module в package.json
  • можно юзать TypeScript или Babel (и даже Webpack при желании), которые будут при билде транспилировать синтаксис ES6 модулей в CommonJS (т.е. своего рода «фейковый» ES6)
В общем-то, CommonJS и настоящий ES6 работают совершенно по-разному, поэтому могу посоветовать почитать об этом, например, тут: redfin.engineering/node-modules-at-war-why-commonjs-and-es-modules-cant-get-along-9617135eeca1

работать с ними в браузере без сборщиков, обработчиков невозможно?
Неправильно, потому что пакеты для фронта никто не пишет на CommonJS модулях, они ж не на ноде работать будут, а в браузере.
rimo
25 июня 2021, 13:28
0
Кэш почистил не помогло. Картинки есть в подкатегории карточка товара, на лицевой нет фото. в modx_ms2_products в полях image и thumb стоит NULL. На почту написал.
Александр Мельник
25 июня 2021, 11:28
0
Спасибо, Артем.
Просто чисто по моей терминологии
создан для терминала и к фронту (браузеру) не имеет отношения, а условный vue-select, наоборот, не имеет отношения к серверу и должен использоваться исключительно в браузере.
означает что деление есть, просто оно не явное. Нельзя зайти на сайт npmjs.com и где то увидеть у пакета метку — это для браузера или это для сервера.

А подскажите пожалуйста еще, я правильно понимаю, что изза того что пакеты npm выполнены в формате модулей CommonJS то работать с ними в браузере без сборщиков, обработчиков невозможно? Потому что например модуль в формате ES6 вполне можно запустить в браузере и без всяких обработок, добавим атрибут type=«module» к тегу script.
Denis
25 июня 2021, 10:04
0
Я пользуюсь сторонней апишкой, там бесплатно 100 запросов в месяц. Мне хватает.
rapidapi.com/restyler/api/instagram40
Дмитрий Кондаков
25 июня 2021, 09:21
0
Проверьте наличие свободного места на сервере
Наумов Алексей
25 июня 2021, 09:15
+2
Цена товара в корзине сохраняется, поэтому да, если поменять ее на сайте — в корзине будет старая.

Думаем, как поправить…
Нужно при каждом получении корзины (это плагин на событие msOnGetStatusCart, доступен объект $cart) пробегаться по корзине, получать товары и актуализировать цену.
Примеров с тем, как в корзине что-то менять — на сайте полно)
Алексей
25 июня 2021, 07:59
0
может тогда docker контэйнер запилить для маководов? провозился наверное целый день — никак не запустил, проще было дождаться php-версии парсера
Артем
24 июня 2021, 23:06
+1
но свою функцию не выполняет и текст в консоли браузера не красит.
Конечно, потому что chalk создан для терминала, а не для консоли браузера — это две совершенно разные вещи.
У них же прям первой строкой написано:
Terminal string styling done right
Ну и вроде как это логично, ведь большинство npm пакетов (как я думаю) создаются для nodejs
Естественно, ведь npm — ничто иное, как node package manager.

Другой вопрос в том, что разные пакеты решают разные задачи. Chalk, например, создан для терминала и к фронту (браузеру) не имеет отношения, а условный vue-select, наоборот, не имеет отношения к серверу и должен использоваться исключительно в браузере.

Есть такое деление?
«Деления» нет, есть разные пакеты для разных задач. Просто гуглишь пакет и смотришь, для чего он и где (как) используется.
Андрей
24 июня 2021, 22:35
0
Данный лог к делу не относится. Отображение этого уведомления можно отключить системной настройкой log_deprecated (подробнее если интересно можно почитать тут — Dealing with deprecation notices in MODX 2.7).

Если перейти в верхнем меню (там где установщик) в раздел MIGX, то выдает Ошибка. Код 500.
500ю ошибку нужно смотреть в серверном error.log. Также не будет лишним узнать конфигурацию, версия MODX, PHP?
Павел Голубев
24 июня 2021, 17:05
0
Значит тип товара. Автозапчасти, продукты питания и т.п.