Константин Ильин

Константин Ильин

С нами с 10 февраля 2014; Место в рейтинге пользователей: #131
09 ноября 2017, 19:08
0
Володь, похожая беда, в последнем обновлении pdoTools написано может с этим связанно:
- [pdoFetch] Ability to use arrays in "&sortby".

Поле createdon в модели
<field key="createdon" dbtype="int" precision="11" phptype="int" null="false" default="0"/>

Вызов
{'!pdoPage' | snippet : [
                    'class' => 'SimpleLog'
                    ,'sortby' => 'createdon'
                    ,'limit' => 0
                    ,'where' => '{"user" : '~$_modx->user.id~'}'
                    ,'tpl' => 'log.tpl'
                ]}

Лог
0.0002570: pdoTools loaded
0.0000269: xPDO query object created
0.0000849: Added selection of SimpleLog: SQL_CALC_FOUND_ROWS `id`, `type`, `user`, `description`, `createdon`, `sum`, `fake`
0.0001092: Added where condition: user=2
0.0000598: Sorted by SimpleLog.createdon, DESC
0.0002530: SQL prepared "SELECT SQL_CALC_FOUND_ROWS `SimpleLog`.`id`, `SimpleLog`.`type`, `SimpleLog`.`user`, `SimpleLog`.`description`, `SimpleLog`.`createdon`, `SimpleLog`.`sum`, `SimpleLog`.`fake` FROM `mfm_freelife_log` AS `SimpleLog` WHERE `SimpleLog`.`user` = 2 ORDER BY SimpleLog.createdon DESC "
0.0000710: SQL executed
0.0001440: Total rows: 3
0.0000148: Rows fetched
0.0013311: Loaded "modChunk" with name "log.tpl"
0.0039690: Compiled Fenom chunk with name "modchunk/28"
0.0055280: Returning processed chunks
0.0066950: Total time
6 291 456: Memory usage

По запросу вроде все есть, но должно быть так ведь(красным отметил):
joxi.ru/823n376IJdxeVm
09 ноября 2017, 10:25
0
Вопрос из серии банальных:
msCart на странице корзины вызывается некешированным? ну и msMiniCart тоже?
09 ноября 2017, 10:22
0
Причем придется добавить еще цикл, для поиска родителя у которого установлены права.
Т.е. я про вложенность, если вложенность 3 уровня или более. Но это блин, замедлит работу.
08 ноября 2017, 10:39
0
Приветствую Сергей!

Интересует пункт с правами родителя и дочерних документов.
Попробовал выставить права
- все - запрещено
- гости - запрещено
- Users - разрешено
Но неавторизированный пользователь все равно может просматривать дочерний документ.
Я полагаю такой функционал не сделан?
Подскажите пожалуйста как проще ограничить доступ к дочерним ресурсам? дочерних ресурсов много в ручную конечно же не вариант(все-таки 21 век)

Мысль написать плагин, чтобы слать всех на страницу авторизации если не авторизирован, но это как то «велосипедно», хотелось бы по уму.
17 октября 2017, 15:07
+1
В классе /core/components/modnodejs/model/modnodejs/modnodejs.class.php, была проблема с путем до файла.

joxi.ru/eAO0K3BIxg6Per
17 октября 2017, 14:35
0
Подскажите пожалуйста в чем проблема
joxi.ru/1A5QnldhnPzxjA
Ошибка что нет файла, его действительно нет. Смотрел на гите там тоже нет.

вроде процесс ноды запустился
joxi.ru/4Ak0YP5Iy40DMr

что не так? куда копать примерно?
03 октября 2017, 21:07
0
На вскидку:
есть событие OnUserSave, т.е. в плагине можно на это событие создавать тикет.

if ($modx->event->name == 'OnUserSave') {
    if ($user && $mode == 'new') {

    	//тут создаем тикет
    }
}
03 октября 2017, 01:04
0
В том проекте был смысл такой, что при определении региона показывать магазины в этом регионе, ну или городе. Это так сказать для юзабилити было. Но то решение с адресом тоже присутствовало на сайте. Просто Илон Маск не добрался до этой проблемы ;)
01 октября 2017, 12:31
+1
Самое простое это создать еще один чанк и готовить вывод заранее, а потом выводить в основном [[+subMIGX]]

foreach ($rows as $key => $row) {

    .......

    if(!empty($row['tv_name2'])){
        $subArr = json_decode($row['tv_name2'],1);

        foreach ($subArr as $keySub => $rowSub) {
            $row['subMIGX'] .= $pdo->getChunk($chunk, $rowSub, false);
        }
    }
    
   .......
}
01 октября 2017, 11:33
0
нужен вложенный foreach
$subArr = json_decode($row['tv_name2'],1);

эту строчку лучше вынести за foreach, т.к. лучше один раз присвоить переменной, чем каждый раз обращаться.
$pdo = $modx->getService('pdoTools');
01 октября 2017, 09:17
+1
$output = $pdo->getChunk($chunk, $row, false);
Вы каждый раз переписывайте значение $output, а не «соединяете» с предыдущим. Нужно делать конкатенацию результата.
вот так:
$output .= $pdo->getChunk($chunk, $row, false);
На счет кеширования точно сказать не могу, но насколько я понимаю кешируется сниппет и все что в нем, если вызывать его кешированным.
30 сентября 2017, 12:10
0
Ну я поэтому и взял в кавычки неадекват)

for и foreach это конечно понятно, просто у вас так прозвучало, что мол должен существовать другой метод, без циклов)

Главное разобрались!
Бывает у многих и я этим грешил, спать надо Сергей)
30 сентября 2017, 11:54
-1
Не за что!
Ну минуса справедливые ведь) Вы просто тут какой-то «неадекват» развели) Еще и умниками «всех» называете))
30 сентября 2017, 11:18
2
+1
Зачем сниппет писать, если можно пару строчек взять из getImageList ну или просто применить свои навыки программирования, благо феном позволяет все на месте писать.

умник ворвется крича что «цикл foreach тебя спасет»
А как еще можно пройтись по массиву?

Если зайти в сниппет getImageList можно найти такие строчки
.....
$fields['_alt'] = $idx % 2;
$idx++;
$fields['_first'] = $idx == 1 ? true : '';
$fields['_last'] = $idx == $limit ? true : '';
$fields['idx'] = $idx;
.....
Надо просто применить их на феноме:
{set $rows = json_decode($_modx->resource.migx_tv, true)}
{set $idx = 0}
{foreach $rows as $idxArr => $row}
    {set $row['idx'] = $idx++} {* idx от созданной переменной с инкриментом*}
    {set $row['idxForeach'] = $row@index} {* idx от foreach*}
    {*set $idxMIGX = $row['MIGX_id']*} {* idx от MIGX*}
    {if $row@first} 
        {set $row['_first'] = 'first item'}
    {/if}
    {if $row@last} 
        {set $row['_last'] = 'last item'}
    {/if}
    {if !($idx % 2)}
        {set $row['_alt'] = 'odd item'}
    {/if}
    {$row | print_r}
{/foreach}
26 сентября 2017, 14:16
0
— если используешь феном то надо вызывать некешированным
— бывает, что в css есть какие-то символы на которые минификс ругается и создает белеберду, у меня так с бутстрапом был глюк, убирал его из списка все норм работало.

после правки css заходить в админку и чистить кеш…
ну так для этого и нужен минификс, собрать все файлы воедино 1 раз и выдавать по запросу. Работай тогда пока без минификс, потом когда закончишь уже соберешь.
09 сентября 2017, 11:31
0
В админке при просмотре модификации работает и соответствует сортировке в категории.
А на фронте что-то надо поменять? какой параметр? т.к. там отображается в конце
{$_modx - > runSnippet('!msOptionsPrice.modification', [
        'tpl' => 'tpl.imagess',
        'includeThumbs' => '360x800',
        'sortby' => 'rank',
        'processOptions' => 1
])}
09 сентября 2017, 11:10
0
По сути ты правильно описал то что я придумал. Но возможно у тебя есть другое предложение или идея как сортировать опции.
Лучший пример — это ситуация:
Есть 10 неких опций, Тест 1-10. Спустя месяцы захотелось добавить опцию Тест 11, но так чтобы она отображался в карточке товара после опции Тест 3.
т.е.:
Тест 1
Тест 2
Тест 3
Тест 11
Тест 4
...
Тест 10
Что в таком случае делать с опциями msProductData которых нет в категории?
Вот я как то тебе задавал этот вопрос. Повторюсь, а зачем в списке опций для модификации, отображаются те опции которые вообще не должны быть у этой категории? joxi.ru/KAg7zleC4DBalA
т.е. не просто так же идет назначение опции для категории при ее создании в настройках ms2

Блин пока писал пост ты уже что-то сделал)))
08 сентября 2017, 16:00
0
{$_modx - > runSnippet('!msOptionsPrice.modification', [
        'tpl' => 'tpl.imagess',
        'includeThumbs' => '360x800',
        'sortby' => 'rank',
        'processOptions' => 1
])}
Володь, подскажи пожалуйста как можно отсортировать опции по rank у категории, rank хранится в ms2_category_options
joxi.ru/D2PVZOJspybd3r
04 сентября 2017, 12:37
0
Вот вот, я тоже думал, что она должна быть, но ее нет… капец, как так
03 сентября 2017, 19:49
0
Привет Володя, не могу утверждать, что это баг, но ко мне обратились с такой проблемой:
При добавление в моификацию опции, отображались не все опции
joxi.ru/82Qpan0sj73Kem

Чтож полез в процессор «mgr/misc/option/getkeys.class.php», вывел массив в лог joxi.ru/1A5QnldhnYkE4A
Там получил все опции нормально.

Пошел дальше с мыслью, что где-то исключается и как вариант лимит стоит, посмотрел функцию getData(). Там установил лимит на 0 и начали отображаться все опции.
joxi.ru/12M7daECM9X6xr

Версия последняя.