Ivan

Ivan

Был в сети 10 июня 2025, 00:15
Заказы не принимаю
Можете сделать так:
Создаете ТВ поле. У него ID допустим 28.
Создаете плагин вешаете событие на OnManagerPageInit.

<?php
switch($modx->event->name){
    case 'OnManagerPageInit':
    	$ids = [183]; //Ресурсы, где ПОКАЗЫВАТЬ ТВ ПОЛЕ
    	if ($_GET['a'] == 'resource/create' || ($_GET['a'] == 'resource/update' && !in_array($_GET['id'], $ids))) {
    		$myCSS = '<style media="screen">
	            #tv28-tr{display:none!important}
	            </style>';
	        $modx->regClientCSS( $myCSS );
    	}
        break;
}
Так же нужно скопировать mFilter2 и назвать его mFilter2Custom.
В этом файле на 289 строке заменить
if (!empty($sort)) {
    $paginatorProperties['sortby'] = $mSearch2->getSortFields($sort);
    $paginatorProperties['sortdir'] = '';
}
на
if (!empty($sort)) {
    $sorting = $mSearch2->getSortFields($sort);
    if ($sorting == '`Data`.`price` desc') {
        $sorting = 'IF (`Data`.`price` > 0, 1, 0) desc, `Data`.`price` desc';
    } elseif ($sorting == '`Data`.`price` asc') {
        $sorting = 'IF (`Data`.`price` > 0, 1, 0) desc, `Data`.`price` asc';
    }
    $paginatorProperties['sortby'] = $sorting;
    $paginatorProperties['sortdir'] = '';
}
В общем решение не самое красивое, но рабочее.
1) Копируем файл
/assets/components/msearch2/js/web/default.js
и называем его
/assets/components/msearch2/js/web/custom.js
.
2) В этом файле везде
mse2Config['actionUrl']
заменяем на
'/assets/components/msearch2/actionCustom.php'
3) Копируем файл
/assets/components/msearch2/action.php
и называем его
/assets/components/msearch2/actionCustom.php
4) В html коде сортировки указываем
<a href="#" data-sort="ms|price" data-dir="[[+mse2_sort:is=`ms|price:desc`:then=`desc`]]" data-default="desc" class="sort">По цене <span></span></a>
5) В файле
actionCustom.php
на 76 строчке меняем
$paginatorProperties['sortby'] = !empty($sort)
            ? $mSearch2->getSortFields($sort)
            : '';
на
$sorting = '';
            if (!empty($sort)) {
            $sorting = $mSearch2->getSortFields($sort);
            if ($sorting == '`Data`.`price` desc') {
                $sorting = 'IF (`Data`.`price` > 0, 1, 0) desc, `Data`.`price` desc';
            } elseif ($sorting == '`Data`.`price` asc') {
                $sorting = 'IF (`Data`.`price` > 0, 1, 0) desc, `Data`.`price` asc';
            }
        }
        $paginatorProperties['sortby'] = $sorting;
Радуемся
Да! Проблема есть.
Если у товара 1 картинка, то выведется все верно. А если больше, то в прогрессии.

Можно где-то скачать старую версию? Или поправить побыстрому? А то проект как делать?

UPD: По быстрому 67 строчка реально помогла. Спасибо
Я видел какой-то пост тут по этому поводу, но там как-будто решали проблему с каким-то одним дополнением (вроде бы simpleupdater). Смотрел ночью. Может ошибся.

Если вам не трудно — скажите что нужно изменить. А то там много всяких мелочей сделано и не хочется это все вручную делать при создании сайта. Половину наверно даже не упомнишь, какие мелочи там сконфигурированы и созданы.
Спасибо
Такая информация по тому ресурсу который указан в данном посте sitedash.app/extras

Так же на другом сайте когда я искал migx жаловались что не весь функционал работает как нужно даже в альфе.

Не очень хочется начинать делать сайт на modx3, а к концу создания узнать что что-то работает не правильно. А такое ведь может произойти с migx?

Просто видно что еще не все готово что бы он был основной версией. Пока я все же сделаю на modx 2.8.3