Дмитрий Кондаков

Дмитрий Кондаков

С нами с 28 февраля 2013; Место в рейтинге пользователей: #231

Vite + MODX CMP, как избавиться от ExtJS и жить дальше с комфортом в разработке

В данном видео мы посмотрим как можно избавить себя от использования ExtJS при разработке компонентов и начать применять современные реактивные фреймворки, такие как Vue, React, Svelte и другие.


Семён Кудрявцев
22 февраля 2023, 18:54
modx.pro
9
1 471
+30

[mFilter2] Как выводить сначала товары с определённым свойством?

Добрый день.
Подскажите, как можно с помощью mFilter2 выводить в результатах сортировки сначала товары с определённым свойством (например, какого-то конкретного производителя), а затем — все остальные? При фильтрации и сортировке сверху должны оставаться товары с указанным свойством (если они есть), ниже — остальные товары, т.е. товары с указанным свойством всегда должны оставаться выше остальных.
Спасибо за подсказку
Giant Dad
19 декабря 2021, 16:48
modx.pro
2
613
0

[miniShop2] Группируем поля на вкладке "Свойства товара"

Всем привет, небольшая инструкция про кастомизацию вкладки «Свойства товара» у miniShop2.
Наумов Алексей
20 июля 2021, 17:09
modx.pro
13
1 648
+13

[Мультиязычность] Скрипт массовой связки разных языковых версий (в разных контекстах) по URI [Babel]

Надо добавить мультиязычность на сайт через Babel. Для этого была сделана русская версия (в контексте web) и затем сделаны ее копии (en и de).

Далее нужно было связать все версии языков ресурсов между собой.
Fullstack
27 февраля 2021, 23:04
modx.pro
7
1 310
+9

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

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

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

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

Как в админке с помощью 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 016
0

Поле стоимость доставки значение "Бесплатно" и "Индвидуальный рассчет"

Появилась еще одна задача с которой я хочу с Вами поделиться.

Две задачи:

1. Не нравиться значение доставки 0 руб хочется заменить на Бесплатно
2. Через настойки MS2 адмистратору сайта устанавливать значение стоимости доставки «Индивидуальный рассчет.

Для того что бы это реализовать нам нужно выполнить все действия расписанные в статье Стоимость доставки отдельной строкой в оформление заказа MS2

Олег Щавелев
08 декабря 2019, 23:51
modx.pro
5
1 050
+10

Стоимость доставки отдельной строкой в оформление заказа MS2

На заметку.

Делаем колбеки miniShop2 для всех

Хочу сразу отметить, что решение уже есть в просторах сообщества MS, хочется расставить акценты и более краткой форме поделиться с решением данной проблемы.

Итак, приступим.

Сначала расширим класс msOrderHandler назовем его customOrderInterface

Олег Щавелев
02 декабря 2019, 03:01
modx.pro
14
2 862
+16

[xParser] 1.8.0 Вспомогательный Node JS демон или ускоряем парсинг в 27 раз!


Встала задача ускорить, насколько это возможно, работу парсера, т.к. у клиента отработка задания на парсинг 7к ресурсов длилась в течение ~2-3 суток!
Первым делом я подумал, что проблема таится в получении данных со стороннего ресурса. 7 тысяч запросов к стороннему ресурсу только за текстовой информацией, а ещё у каждой записи по 5 картинок, в общей сложности получается 42к запросов к стороннему ресурсу.
Если в среднем запрос длится по 1 секунде, то получается 42 тысячи секунд, что эквивалентно 11 часам и ещё 40 минутам! А ведь ресурс ещё нужно сохранить, на что в среднем уходит по 1-2 секунды. Это ещё +22 часа работы. Итого ~34 часа на отработку задания на парсинг 7к ресурсов, в лучшем случае. Мда… не дело!

Павел Гвоздь
29 октября 2019, 10:25
modx.pro
7
3 153
+27

Обновление дубликатов страниц (duplicate_updater_modx)

Может кому пригодится, написал скриптец для поиска дублей страниц и обновления последних путем добавление префикса +=1

Инструкция залить duplicate_updater_modx.php в корень сайта и запустить в браузере yousute.ru/duplicate_updater_modx.php
git: github.com/vectorserver/duplicate_updater_modx

Сам код:
<?php
/**
 * Created by PhpStorm.
 * User: admin
 * Date: 25.06.2019
 * Time: 14:19
 */


define('MODX_API_MODE', true);
require 'index.php';

$modx->getService('error', 'error.modError');
$modx->setLogLevel(modX::LOG_LEVEL_FATAL);
$modx->setLogTarget(XPDO_CLI_MODE ? 'ECHO' : 'HTML');

$msg = "";

$table_prefix = $modx->config['table_prefix'];

//Ищем двойников
$find_query = $modx->query("SELECT group_concat(`id`) ids, count(id) c FROM `" . $table_prefix . "site_content` GROUP by concat(uri) HAVING c > 1");

$dubles = $find_query->fetchAll(PDO::FETCH_ASSOC);
//Если нашли
if (count($dubles)) {
    foreach ($dubles as $item) {
        //Разбивем ID
        $ids = explode(",", $item['ids']);
        //Сортируем - старые вверх
        sort($ids, SORT_NUMERIC);

        $count = 0;

        foreach ($ids as $doc_id) {
            $count++;
            //ПРопускаем оригинал
            if ($count > 1) {

                //Обновляем ресурс
                $originalRes = $modx->getObject('modResource', $doc_id);
                $generated = $originalRes->cleanAlias($originalRes->get('pagetitle')) . "-" . $count;
                $originalRes->set('alias', $generated);
                $originalRes->save();
                //В лог
                $msg .= $originalRes->get('id') . " | " . $originalRes->get('pagetitle') . " - обновлен.\n";
            }

        }
        //Сброрс кеша
        $modx->cacheManager->refresh();
    }

} else {
    $msg .= "Дублей нет\n";
}

echo "<pre>" . $msg;
vectorserver
25 июня 2019, 12:33
modx.pro
11
1 285
+7