Alexey

Alexey

С нами с 02 августа 2015; Место в рейтинге пользователей: #109

Управления плагинам minishop2 или добавление полей в ms2_products через компонент [msAddField]

Все давно уже познакомились с методом добавления полей через плагины который написал Василий еще в каком то 17 или 2018 году, может раньше

Давно уже написал класс для управления полями через мой компонент который так и не представился миру msCml (синхронизация 1С с характеристикам msOptionsPrice2).

На этих выходных все таки дошли руки и собрал таки компонент msAddField (пока только на github, для самых маленьких))))): там же ссылка на яндекс диск)
Андрей Степаненко
13 октября 2020, 17:11
modx.pro
29
5 337
+22

Обнуляющие смайлики (или почему minishop2 отправляет заказы без товаров)

Всем привет.
Буквально вчера, словил неприятную багу.

(P.S. вполне возможно что многие знают об этой баге. Но ради интереса решил воспроизвести данную багу на других сайтах — в 90% случаев ошибка воспроизводится).

Имеется сайт на MODX Revolution 2.7.3 в связке с miniShop2 2.5.0.
Бага заключалась в том, что пришёл «пустой» заказ. Т.е. все реквизиты клиента в письме и заказе есть, а вот товаров в этом заказе нет.

Долго и упорно не мог понять в чём же проблема. Благо есть вебвизор и он таки помог воспроизвести ошибку.

Дело оказалось в смайликах. Которые были вставлены в комментарий к заказу.
Дмитрий Танцирев
18 июля 2020, 08:46
modx.pro
8
2 868
+8

Вывод фоток с Instagram по тегу или юзеру без токена

Всем привет!

Если у вас есть задача вывести фотографии по нику или тегу то можете использовать данное решение:

Иван Бочкарев
14 апреля 2020, 17:52
modx.pro
19
2 839
+13

Проблемы с MIGX после переноса на другой хостинг. Решено

Приветствую!
Сделал сайт перенес на хостинг заказчика. Вроде бы все было нормально. Прошло чуть больше месяца. Зашел на сайт добавить информацию и обнаружил проблему. При редактировании и добавлении строки TV типа MIXG страница и модальное окно съезжают вверх (за пределы окна браузера). Если уменьшить зум страницы, то видно что в модальном окне данные грузятся бесконечно.
Александр Лунегов
06 апреля 2020, 20:45
modx.pro
1
1 178
0

Теория выгрузок из 1С в MODX (часть 1 из 2)

И снова привет!
Выгрузка товаров на сайт — это самый, самый частый кейс моей мини-студии. Для реализации мелких-средних интернет-магазинов используем классическую и сверхпопулярную связку MODX+miniShop2, для крупых — нет, но я как-нибудь обязательно расскажу почему.
Павел Бигель
06 апреля 2020, 19:10
modx.pro
13
6 776
+17

Пошаговая работа скрипта в Console

Здравствуйте, необходимо выполнить данный скрипт
$q = $modx->newQuery('msProduct');
$q->where(array('parent' => '9'));
$col = $modx->getCollection('msProduct', $q);
foreach ($col as $item){
    $oe_number = $item->get('oe_number');
    $article = $item->get('article');
    $old_price = $item->get('old_price');
    $price = $old_price * 1.2;
    $item->set('price', $price);
    if (empty($oe_number)) {
      $item->set('oe_number', $article);
    }
    $item->save();
}
Но так как товаров порядка 30 000, то нужно разбить на пошаговое выполнение, нашел данную шпаргалку — ilyaut.ru/cheats/step-by-step-the-script-in-console/, но мозгов доделать не хватает, вот что получилось

<?php
// Сколько ресурсов обрабатывать за раз
$step = 1;
// Если процесс уже остановлен, сбрасываем OFFSET
if (!isset($_SESSION['Console']['completed'])) {
    $_SESSION['console_offset'] = 0;
}
$offset = isset($_SESSION['console_offset']) && $_SESSION['console_offset'] ? $_SESSION['console_offset'] : 0;

// Формируем запрос

$q = $modx->newQuery('msProduct');
$q->where(array('parent' => '9'));
$total = $modx->getCount('msProduct', $q);

// Пропускаем все уже обработанные объекты
$q->limit($step, $offset);
$resources = $modx->getCollection('msProduct', $q);

// Обработка
foreach ($resources as $resource){
  $oe_number = $resource->get('oe_number');
  $article = $resource->get('article');
  $old_price = $resource->get('old_price');
  $price = $old_price * 1.2;
  $resource->set('price', $price);
  if (empty($oe_number)) {
    $resource->set('oe_number', $article);
  }
  $resource->save();
  print "<p>Processing resource <b>".$resource->get('pagetitle')."</b></p>";
}

// Меняем offset
$_SESSION['console_offset'] = $offset + $step;
if ($_SESSION['console_offset'] >= $total) {
  $sucsess = 100;
  $_SESSION['Console']['completed'] = true;
  unset($_SESSION['console_offset']);
} else {
  $sucsess = round($_SESSION['console_offset'] / $total, 2) * 100;
  $_SESSION['Console']['completed'] = false;
}
for ($i=0; $i<=100; $i++) {
    if ($i <= $sucsess) {
        print '=';
    } else {
        print '_';
    }
}
$current = isset($_SESSION['console_offset']) ?
           $_SESSION['console_offset'] :
           ($sucsess == 100 ? $total : 0);
print "\n";
print $sucsess.'% ('.$current.')'."\n\n";
Подскажите, как правильно написать пошаговое выполнение скрипта
Максим
03 апреля 2020, 20:59
modx.pro
1
1 732
0

modExtra. Новые "плюшки" к чаю

Давно я не писал статей и заметок о нашем любимом MODX. Настало время это исправить. Пакет modExtra не обновлялся с июля 2019ого, по этому я решил добавить свои наработки за пару лет.

SEQUEL.ONE
17 марта 2020, 20:23
modx.pro
6
2 379
+11

Шпаргалка на все случаи жизни

Полезные ссылки, которые Вам пригодятся в некоторых ситуациях.
Михаил
07 февраля 2020, 21:42
modx.pro
72
2 640
+35

Как в админке с помощью ExtJS отследить изменение значения TV и поменять его сразу или перезагрузкой стараницы?

Есть плагин изменения значения tv при определенных условиях.

if ($modx->event->name == 'OnDocFormSave' && $mode != 'new') {
//куча условий
//.......

// меняем значение TV
$resource->setTVValue('my_tv', 'Новое значение');

//...
}


//перезагружает страницу в админке при каждом сохранении ресурса
//НЕ пойму как сделать, чтобы перезагружалось только при изменении значения TV
if ($modx->event->name == 'OnDocFormPrerender' && $mode != 'new') {
	
	$modx->controller->addHTML('
	<script type="text/javascript">
	
		Ext.ComponentMgr.onAvailable("modx-panel-resource", function (e) {
		    var res = Ext.getCmp("modx-panel-resource");
		    res.on("beforeSubmit", function(){			
				//Перезагрузка страницу после сохранения
		        location.reload();
		    });
		   
		});
    </script>');	
}
Данная конструкция перезагружает страницу в админке при каждом сохранении ресурса, НЕ пойму как сделать, чтобы перезагружалась только при изменении значения TV… Не могу передать значение переменной из кода на событие OnDocFormSave в код на событие OnDocFormPrerender, представляется, что это невозможно…
Дмитрий
31 января 2020, 00:44
modx.pro
2
1 418
0

Модифицируем HTML на лету

Привет друзья. Хочу поделиться методикой, которую иногда использую в тех случаях, когда мне нужно подменить или каким то образом модифицировать на лету готовый HTML. Причем сделать это на уровне сервера, а не через JS.

Николай Савин
13 октября 2019, 20:28
modx.pro
17
5 271
+18