Всего 122 820 комментариев

Василий Наумкин
10 апреля 2015, 18:20
+1
Можно попробовать указать явно таблицу:
&sortby=`msCategory.menutitle`

Ну и вообще, стоит убедиться, что menutitle везде заполнен, потому что mySql не подставит pagetitle вместо пустого menutitle как сниппет pdoMenu.
aj
aj
10 апреля 2015, 17:37
0
Вопрос именно в том как это назначить через настройки админки. Можно чуть подробнее?
Серьёзный
10 апреля 2015, 17:13
0
Спасибо, Руслан, большущее!

Разобрался. Для тех, кому еще понадобится такая выборка, немного доработанная мной:
[[pdoResources?
    &tplWrapper=`@INLINE <span>Коллекции: </span> [[+output]]`
    &tpl=`TPL.collection.item.for.products.page`
    &class=`msProduct`
    &parents=`0`
    &outputSeparator=`, `
    &where=`{
        "Data.vendor":"[[+id]]",
        "msCategory.template":"9"
    }`
    &leftJoin=`{
        "Data": {
            "class": "msProductData",
            "on": "msProduct.id = Data.id"
        },
        "msCategoryMember": {
            "class": "msCategoryMember",
            "on": "msCategoryMember.product_id = msProduct.id"
        },
        "msCategory": {
            "class": "msCategory",
            "on": "msCategory.id = msCategoryMember.category_id"
        }
    }`
    &select=`{
        "msCategory":"longtitle,id,pagetitle,template,menutitle"
    }`
    &groupby=`msCategory.id`
    &showLog=`0`
    &sortby=`menutitle`
    &sortdir=`ASC`
]]
Только вот беда, что по menutitle не сортирует почему-то… Все вперемешку. Непонятно из-за чего.
anatol
10 апреля 2015, 16:59
0
Можно назначить менеджеру свою группу
А потом через Настройки админки скрыть это поле от этой группы
GrinRom
10 апреля 2015, 14:49
0
А подключать через require_once? Или как-то по иному лучше?
anatol
10 апреля 2015, 14:35
0
как все сложно :)
насколько я понимаю, на момент срабатывания вашей строки $captionTv содержит в себе данные конкретного TV из таблицы modx_site_tmplvars
а ваша строка
$val = $captionTv->renderOutput($modx->resource->id);

выводит значение этого TV, в текущем ресурсе, которое хранится совсем в другой таблице — modx_site_tmplvar_contentvalues
Виктор
10 апреля 2015, 14:28
0
хм, действительно. Но почему тогда тут не включено сжатие? И на modhost тоже.
Сергей Шлоков
10 апреля 2015, 14:03
+1
Да тоже самое, только не со стороны ресурса, а со стороны TV.
Можно, например, и так.
$val = $captionTv->getValue($modx->resource->id);
Но тогда значение получится необработанное. Т.е. вместо картинки — путь, вместо даты — timestamp и т.п.
anatol
10 апреля 2015, 13:58
0
Этот вариант сработал. А теперь не могли бы вы объяснить, что делает эта строка? :))))))
anatol
10 апреля 2015, 13:57
0
1. Вызов
$arr = array_map('trim', explode(',', $ids));
в поведении сниппета ничего не поменял. Пробелов в строке не было.
2. За проверку существования id спасибо — я уже столкнулся с этой проблемой, но отложил её на потом.
Павел Ширяев
10 апреля 2015, 13:50
0
Функция самого спиннера должна для MS2 выглядеть так:

(function ($) {
        $.fn.spinner = function () {
            this.each(function () {
                var el = $(this);
                var parent = $(el.parents('span.spinner')).length;

                // Если такого родителя нет, то оборачиваем спиннер и добавляем + и -
                if (parent == 0) {
                    el.wrap('<span class="spinner"></span>');
                    el.before('<span class="sub">-</span>');
                    el.after('<span class="add">+</span>');
                

                // Реагируем на нажатие -
                el.parent().on('click', '.sub', function () {
                    if (el.val() > parseInt(el.attr('min')))
                        el.val(function (i, oldval) {
                            return --oldval;
                        });
                });

                // Реагируем на нажатие +
                el.parent().on('click', '.add', function () {
                    if (el.val() < parseInt(el.attr('max')))
                        el.val(function (i, oldval) {
                            return ++oldval;
                        });
                });
}
            });
        };
    })(jQuery);
Ну и вызов спиннера при Ajax-перезагрузке (работает и для первой загрузки):

$(document).bind("ajaxComplete", function(){
        $('.goods_container').ready(function() {
        $('input[type=number]').spinner();
        
        });
     });
G@G
G@G
10 апреля 2015, 13:50
0
Просто так пока решили, посмотрим, это временное решение.
Возможно просто сделаем переадресацию с выключенного мобильного на городской…
или автоотвечик.
Наумов Алексей
10 апреля 2015, 13:44
+3
Спасибо за дельный комментарий!

Мысль сделать это была, просто пока не добрался! Но теперь точно придется сделать)))
Илья Уткин
10 апреля 2015, 13:44
0
Как раз такие скрипты и стили MinifyX собирает в один файл и минимизирует.

UPD. Василий меня опередил))
Сергей Шлоков
10 апреля 2015, 13:42
+1
Странно.
Попробуй заменить
$val = $modx->resource->getTVValue($tvID);
на
$val = $captionTv->renderOutput($modx->resource->id);
Василий Наумкин
10 апреля 2015, 13:37
+2
$arr = explode(',', $ids);
Здесь передаётся строка и в ней запросто может быть лишний пробел.

Я делаю так:
$arr = array_map('trim', explode(',', $ids));

Ну и дальше нужно добавить проверку, иначе при неверном id будет fatal error:
if ($captionTv = $modx->getObject('modTemplateVar', $tvID)) {
	$captionVal = $captionTv->get("caption");
	$val = $modx->resource->getTVValue($tvID);
	print '<tr><td>'.$captionVal.'</td><td>'.$val.'</td></tr>';
}
else {
	print 'Не могу получить ТВ c id = ' .  $tvID;
}
Сергей Шлоков
10 апреля 2015, 13:26
0
Потому что внутри класса обращаться надо через this.
$this->modx->user->get('id')
Сергей Шлоков
10 апреля 2015, 13:16
0
А вот тут можно поспорить. Глядя на тот же код, можно заметить недокументированную возможность указывать свой путь к файлам.
В системных настройках нужно указать свой путь в параметре mycalendar.assets_url и, соответственно, css и js файлы будут доступны по новому пути — «новое значение/css/» и «новое значение/js/». И пожалуйста, подключай свои файлы.
Это к разговору о разработчиках. Для простого админа это не очень прозрачно.