Игорь

Игорь

С нами с 21 марта 2018; Место в рейтинге пользователей: #125

Сложный запрос в where для pdoResources

Приведённый код (ниже) прекрасно работает, НО

[[pdoResources?
    &parents=`2`
    &depth=`0`
    &tpl=`TestListRowTpl`
    &includeTVs=`tvimage,nacpr,konpr`
    &where=`["konpr >= now() AND nacpr<=now()"]`
    ]]
При попытке дописать ещё пару условий выводится совершенно не то, что надо (весь список, вместо выбранных)

[[pdoResources?
    &parents=`2`
    &depth=`0`
    &tpl=`TestListRowTpl`
    &includeTVs=`tvimage,nacpr,konpr`
    &where=`["konpr >= now() AND nacpr<=now() 
    OR konpr>=DATE_ADD(NOW(),INTERVAL 7 DAY) 
    AND nacpr<=DATE_ADD(NOW(),INTERVAL 7 DAY)"]`
    ]]
По отдельности, как не странно, всё работает…

Проблема, (как я понимаю) в том, что для where нужно сформировать json-строку (если where простой — можно обойтись чистым sql-кодом в квадратных скобках)

Подскажите, пожалуйста, пример такой json-строки с условиями A and B or C and D?

Где-то откопал код (ниже), но я не понимаю, к сожалению, что делать, если условий много:
для условия width=15 and height=10 or width=25 json-код такой
{"0":{"width :=":"15","AND:height:=":"10"},"OR:width :=":"25"}

А если будет ещё пару условий?

Уперся, реально не знаю — что делать
Игорь
06 февраля 2020, 15:48
modx.pro
656
0

Обновление MIGX ДРУГОГО тикета при сохранении документа

Добрый день!
Необходимо при сохранении Заказов обновить определённое поле MIGX в Исполнителях

Создал плагин на OnDocFormSave
При сохранении — бесконечное сохранение.
Что я делаю не так?

<?php
if ($modx->event->name=="OnDocFormSave") // Плагин срабатывает при сохранении ресурса
{    
    $id = $resource->get('id'); // Получаю id ресурса
    $parent = $resource->get('parent'); // Получаем id родителя

    if($parent!=2) //id раздела с тикетами Заказов =2, остальные не трогаю
    {
        return;
    }


    $migx = $modx->resource->getTVValue('vibce');
    $items = $modx->fromJSON($migx);

    foreach($items as $item) {

    $reskuda = $modx->getObject('modResource', $item['celovecus']);  // celovecus - id исполнителя
    $migxkuda=$reskuda->getTVValue('vibzak');
    $itemskuda = $modx->fromJSON($migxkuda);

        $naideno=0;
        $output = array();    
        foreach($itemskuda as $itemkuda) {
        $output[] = $itemkuda['zakazus'];

            if($itemkuda['zakazus']==$id)  // есть ли у исполнителя такой заказ
                {
                $naideno=1;
                }
        }
    
    if($naideno==0)     //  такого заказа нет
        {
            $itemkuda['zakazus'] = $id;
            $output[] = $itemkuda;
            $reskuda->setTVValue('vibzak', $modx->toJSON($output));
        }    

    }

}
Игорь
27 января 2020, 10:39
modx.pro
591
0

Вместо поля introtext берутся данные из content. ПОЧЕМУ?

Добрый день!
В первый раз с таким сталкиваюсь, вместо одного поля (introtext) данные берутся с другого (content).
Ставил самую последнюю версию — 2.7.2

Пример, вгоняющий в ступор (данные берутся с content только если не заполнено поле introtext! includeContent ТОЖЕ НЕТ!)
Игорь
23 января 2020, 14:30
modx.pro
988
0

Получение данных из всех MIGX (не только по id документа)

Добрый день!
Назначаю заказу нескольких исполнителей (в MIGX).

Есть ли возможность получить, к примеру, список ВСЕХ заказов определённого исполнителя, не заходя в каждый заказ по по его id документа?

Заранее буду благодарен за ответ.
Игорь
21 января 2020, 18:16
modx.pro
1 104
0

Выборка (where) по дате в pdoResources

Добрый день!
Понадобилось вывести только те записи, в которых ТЕКУЩАЯ дата попадает в период с (tv поле nacpr) по (tv поле konpr)
Перерыл весь интернет — не могу найти работающий пример выборки по периоду!

Я ПОНИМАЮ, что в where нужно задать сложное условие (AND) вида

текущая_дата>=nacpr AND текущая_дата<=kon_pr

К сожалению, навыков работы с датами в MODx пока не имею, но я быстро учусь…

[[pdoResources?
    &parents=`2`
    &depth=`0`
    &tpl=`TestListRowTpl`
    &includeTVs=`tvimage,nacpr,konpr`
	&where=`["FROM_UNIXTIME(nacpr, '%Y-%m-%d') .....___код___`
]]
Заранее буду благодарен за работающий пример сложной выборки по текущей дате.
Игорь
17 января 2020, 12:08
modx.pro
1
1 279
0

MIGX - добавление id и Title тикета из выпадающего списка - возможно ли такое?

Добрый день!
Хочу в MIGX получить возможность добавления Id (мне-то нужен только id) и заголовка тикета (заголовок — для справки, что добавляется именно то, что надо).

Каким образом можно реализовать «визуальный» (мышкой) выбор тикета из выпадающего списка в MIGX?



При выборе в поле должен быть выбранный Id (и рядом название заголовка), но отобразиться (для выбора) должен именно ЗАГОЛОВОК.

Есть ли такая возможность в MIGX? Мне достаточно небольшого примера (если такое вообще реализуется)…
Игорь
15 января 2020, 12:57
modx.pro
897
0

Установка MODx в подкаталог или основной каталог поверх существующего сайта

Здравствуйте!
Хочу поставить MODx поверх существующего сайта, причём так, чтобы это не затронуло УЖЕ размещённый контент (html-страницы, zip-архивы и прочее).
Существующий сайт НЕ ИСПОЛЬЗУЕТ PHP и базы данных.

Есть ли какие-то подводные камни в такой установке?

Куда лучше поставить MODx — в основной каталог или подпапку? Что может пойти не так в каждом из случаев?
В интернете крайне мало информации по данному вопросу (есть одна статья на modx.pro).

Если кто занимался такой установкой — просветите пожалуйста?
Заранее, СПАСИБО!
Игорь
13 января 2020, 12:51
modx.pro
668
0

Формирование json файлов на лету в зависимости от имени в начале файла

Необходимо формирование json-файлов в зависимости от имени (id в начале) файла.
К примеру,
1234_related_articles.json — сформируется нужный файл с информацией по тикету с id=1234
или
237_related_articles.json — сформируется нужный файл с информацией по тикету с id=237
Как назначить единый шаблон для создания таких файлов (related_articles) в modx?
Игорь
19 декабря 2019, 13:02
modx.pro
477
0

Как задать "Выполнять теги modx" и "Отключить Jevix" по умолчанию по всем уже существующим тикетам?

Существует огромное количество тикетов, где флаги «Выполнять теги modx» и «Отключить Jevix» сняты.
Как УСТАНОВИТЬ эти флаги по умолчанию по всем существующим тикетам?
Ну, или, выполнять действия по флагам независимо от установки?
Игорь
17 декабря 2019, 12:49
modx.pro
391
0

Выполнение Ajax при скроллинге до определённого места

Есть код, который показывает кнопки с социальных сетей для публикации заметки.
Сейчас код срабатывает при нажатии на ссылку Опубликовать у себя в социальной сети
При нажатии делается запрос и в определённое место (Ajax ) вставляется необходимый javascript блок для отображения кнопок без перезагрузки страницы.
Но нужно ОБЯЗАТЕЛЬНО нажать кнопку!

Можно ли запустить «автонажатие» (либо сразу выполнить необходимый код) на эту ссылку при скроллинге до ссылки?

javascript
<script type="text/javascript" src="http://yandex.st/jquery/1.7.1/jquery.min.js"></script>
<script type="text/javascript">
$(document).ready(function() {
	// Вешаем обработчик события "клик" на все ссылки с классом ajax_link
	$('a.ajax_link').click(function() {
	// Берем действие из атрибута data-action ссылки
	var action = $(this).data('action');
	// Ajax запрос к текущей страницы (а на ней наш сниппет) методом post
	$.post(document.location.href, {action: action}, function(data) {
		// Выдаем ответ
		$('#result').html(data);
	})
	// Не даем ссылке кликнуться 
	return false;
  })
})
</script>
Игорь
07 декабря 2019, 11:44
modx.pro
978
0