Владимир Новопашин

Владимир Новопашин

С нами с 29 октября 2014; Место в рейтинге пользователей: #327

OnPageNotFound вывод страницы

Добрый день. Суть вопроса в следующем — есть ресурс, вывод пользователя. У него указывается get параметр ?user=1 Но хотелось бы указывать не get параметром, а ссылкой вида ..../user/1/

Проблема заключается в том, что при вводе /user/1/ такую страницу не находит и отображает ресурс на который настроено в конфиге. Каким образом можно если выполнено какое-либо условие (в данном случае REQUEST_URI содержит /user/) отображать страницу, отличную от 404.

Могу конечно в самом шаблоне 404 страницы сниппетом сделать обработку REQUEST_URI и выводить шаблон в зависимости от него, но тогда же по адресу /user/1/ будет возвращаться код 404, а хотелось бы этого избежать. Да и плагином было бы более «правильно»
Владимир Новопашин
13 октября 2017, 11:54
modx.pro
1
1 197
0

Фильтр связей по мастеру и характеристикам "раба"

Добрый день. Имеется следующая структура — есть база товаров, разбитая по категориям. Например
-Asus
--N Series
---Asus N53
---Asus N73
--A Series
---Asus A53
---Asus A73
-Acer
--Aspire
---Aspire 50C
---Aspire 60C

И так далее
И имеется база комплектующих — которые связаны связью «один ко многим» (к одному товару подходит много комплектующих).
Требуется собственно искать комплектующие, которые подходят к Товарам выбранной категории, например «Комплектующие для всех Asus N53» или «Комплектующие для ASUS», но так же требуется и фильтровать полученные результаты по цене или например наличию данной комплектующей.

Собственно вопрос — возможно ли это сделать средствами mFilter2 или необходимо изобретать что-то своё?
Владимир Новопашин
22 июня 2017, 15:47
modx.pro
1
1 140
0

Получить товар по артикулу

Добрый день. Пытаюсь получить товар по артикулу, но выдает что Unknown column 'msProduct.article' in 'where clause'
Код следующий:
$option = $modx->getObject('msProduct', array('article' => 'KB-333R'));
print_r($option->toArray());
В чем может быть причина?

UPD:
Просто нужно указывать не 'msProduct', а 'msProductData':
$option = $modx->getObject('msProductData', array('article' => 'KB-333R'));
print_r($option->toArray());
Владимир Новопашин
02 июня 2017, 09:27
modx.pro
2
3 196
0

Проставить значение опций через API

Импортирую товары в каталог магазина используя API MODX, но после сохранения опций — они не изменяются. В итоге для проверки сократил код до
$prod = $modx->getObject('msProduct', 5059);
$prod->set('tv_1c_index', 'Changed');
echo $prod->get('tv_1c_index')."
========
";
$prod->save();

$opts = $prod->getMany('Options');
foreach ($opts as $id => $opt){
    echo $opt->get('key')."
";
    echo $opt->get('value')."
";
}
В итоге вывод выглядит следующим образом:
Changed
========
tv_1c_index
00000000000000000
tv_brand_name
222222222
tv_category_id
999999999999
Т.е. первая строка — это вывод значения поля сразу после присвоения — и он корректен, значение 'Changed' но вот далее вывод всех опций у товара — выводит всеравно старое значение. Т.е. как будто бы не срабатывает функция save(). Однако если делать таким же образом для стандартных опций типа size — то все сохраняется, хотя значения опций size и записываются в ту же таблицу что и пользовательские опции.

В чем может быть причина?
Владимир Новопашин
31 мая 2017, 15:37
modx.pro
1 209
0

Не подгружаются данные компонент в $modx->packages

В общем, установил Tickets, но в $modx->packages его нет. Собственно, хотелось бы узнать а откуда там вообще берутся пакеты, точнее где они туда вносятся? Ибо на чистой установке modx после установки Tickets — информация о путях прописывается и в $modx->packages, а вот на том сайте что нужно — нет. В итоге система не может найти необходимые классы\сервис и выдает ошибку.
Владимир Новопашин
05 мая 2017, 14:53
modx.pro
728
0

Не работает Tickets

Добрый день. Проблема в следующем — установил Tickets последней 1.8.1 версии, в итоге при заходе на страницу приложения выдает 500 ошибку и запись в консоль:
[2017-05-02 15:58:10] (ERROR @ */core/xpdo/xpdo.class.php : 644) Could not load class: tickets from tickets.
[2017-05-02 15:58:10] (ERROR @ */core/xpdo/xpdo.class.php : 1247) Problem getting service tickets, instance of class tickets, from path
Папка ядра вынесена на тот же уровень что и public_html. Сейчас ищу в чем проблема, но может кто быстрее сможет подсказать хотя бы в какую сторону капать?
Владимир Новопашин
02 мая 2017, 13:24
modx.pro
1 345
0

Слетают дружественные URL

Возникла следующая проблема — на сайте перестали генерироваться ссылки на ресурсы. В логах пишет
".../modx/modparser.class.php: 1352) Bad link tag `[[~29]]` encountered"
Полез копаться, выяснил следующее:
1) Если включить\выключить дружественные URL — то на сайте будут отображаться ссылки, но до первой очистки кэша — затем они опять будут пустые и вести на главную
2) Если отключить дружественные URL то ссылки вида ?id=2 отображаются корректно
3) Простой код
$document = $modx->getObject('modResource', 2);
$context = $document->get('context_key');
echo $modx->makeUrl(2, $context);
Выдает ошибку "`2` was requested but no alias was located." и «Resource with id 2 was not found in context web» причем context_key определяется корректно

В итоге уже голову сломал в чем может быть причина. Может кто сталкивался с таким. Или может подскажет как вызвать обновление дружественных URL (ведь после их включения\выключения все работает, дак в качестве костыля можно каждый раз их включать\выключать)
Владимир Новопашин
28 апреля 2017, 15:29
modx.pro
1
1 418
0

Выборка ресурсов по ТВ через API

Имеется следующая структура — есть несколько заказов, к каждому заказу можно объявлять «ставку». Хочется получить все ставки, объявленные этому заказу, которые выше новой предложенной ставки.
В ресурсе ставки есть доп. поля bet-price и bet-order в которых указаны предложенная стоимость и ID ресурса заявки соответственно. В итоге у меня получается получить все ставки, у которых bet-price выше, но выдаются вообще все ставки из базы, нужно еще и ограничение по bet-order, но вот как сделать выборку по нескольким ТВ-параметрам — не могу представить. Точнее понимаю что по запросу к бд — должен получаться LEFT JOIN еще раз, но уже не tv.name а tv.name2, но вот как это сделать в API — не очень.
Для выборки по стоимости вот этот код делает то что нужно (стоимость забиваю ручками, т.к. для понимания это без разницы)
Владимир Новопашин
13 апреля 2017, 10:55
modx.pro
1 056
0

Создание ресурса через API

Добрый день. Возникла следующая проблемка.
Имеется сайт, на нем пользователи могут создать ресурс (добавить транспорт), затем автоматически на него перенаправляет. Так же имеется список всех транспортных средств, добавленных пользователем.
Код создания транспорта следующий:
Владимир Новопашин
20 февраля 2017, 10:32
modx.pro
2 746
0

Обязательная авторизация

Добрый день. Имеется сайт с настроенной авторизацией через Login и HybridAuth, но необходимо чтоб при заходе на любую страницу (кроме авторизации, сброса пароля, регистрации и их обработчиков) если пользователь не авторизован, то требовало бы авторизоваться, а после авторизации перенаправляло бы обратно на эту страницу.

Владимир Новопашин
18 января 2017, 13:00
modx.pro
897
0