Дмитрий Кондаков
С нами с 28 февраля 2013; Место в рейтинге пользователей: #234Создание ресурсов + TV, через Modx API
Добрый день.
Необходимо создать 300 ресурсов.
Как заполнять поля из массива pagetitle, alias и т.д я нашел.
пытался таким образом:
Необходимо создать 300 ресурсов.
Как заполнять поля из массива pagetitle, alias и т.д я нашел.
$array = array(
array(
'title' => 'Ресурс 1',
'alias' => 'res1',
'idс' => '1'
),
array(
'title' => 'Ресурс 2',
'alias' => 'res2',
'idс' => '2'
),
array(
'title' => 'Ресурс 3',
'alias' => 'res3',
'idс' => '3'
),
);
foreach($array as $v){
$res = $modx->newObject('modResource');
$res->set('template', 1);
$res->set('isfolder', 0);
$res->set('published', 0);
$res->set('createdon', time());
$res->set('pagetitle', $v['title']);
$res->set('alias', $v['alias']);
$res->set('parent', 2);
$res->save();
}
Вопрос как проставить значения в ТV из поля idc?пытался таким образом:
$docId= $res->get('id');
$tvDoc = $modx->getObject('modResource', $docId);
$tvDoc->setTVValue(1, $v['idc']);
$tvDoc->save();
Вывод полей с ошибкой при отправке формы AjaxForm
Добрый день всем!
Сделал различные формы для отправки, не могу понять где заносятся значения поля name для вывода ошибок типа [[+fi.error.name]]
Спасибо
Сделал различные формы для отправки, не могу понять где заносятся значения поля name для вывода ошибок типа [[+fi.error.name]]
<input type="text" id="af_name" name="name" value="[[+fi.name]]" placeholder="Имя" class="form-control">
<span class="error_name">[[+fi.error.name]]</span>
Подскажите пожалуйста кто в курсе.Спасибо
Закрываем служебные директории MODX в Apache
В одной статье, касающейся безопасности, Василий дал очень хорошую рекомендацию по защите служебных папок. Реализовав это на своём хостинге, решил написать инструкцию, так как начинающие изучать MODX могут столкнуться с ошибкой 404, как Я например.
modImporter. Настройка импорта в minishop2 из 1С
В прошлой статье я писал про импорт из Excel/XLSX. Вчера-сегодня мы настраивали выгрузку из 1С. Правда по этому проекту пока не настраивали прямую выгрузку на сайт непосредственно из 1С (а просто загружали сформированный одинэской файл), но проблем с этим не должно быть, modImporter изначально имел в себе механизмы работы с 1С и до этого не раз тесты проводились успешно. К слову сказать, сейчас мы взялись переносить довольно крупный магазин с битрикса на MODX, так что в ближайшем будущем 1С-импорт будет прокачен как следует, в том числе и выгрузка заказов с сайта в саму 1С и обновление статусов заказов на сайте со стороны 1С.
В этот раз мы выполняли полный импорт, включая импорт картинок товаров, цен, остатков и производителей, многоуровневая вложенность категорий и т.п. (). В итоге получилось почти 1000 строк кода, полный файл лежит здесь.
В этот раз мы выполняли полный импорт, включая импорт картинок товаров, цен, остатков и производителей, многоуровневая вложенность категорий и т.п. (). В итоге получилось почти 1000 строк кода, полный файл лежит здесь.
Соединяем EasyComm и mFilter2
Всем привет, и сразу к делу (кстати пишу первый раз тут, если будут ошибки — исправим).
Довольно таки часто требуется в интернет магазинах или каталогах добавить возможность пользователям писать отзывы о товарах, с этим очень хорошо справляется компонент EasyComm. Но очень часто возникает и смежная задача, слепить EasyComm с mFilter2, а именно сделать сортировку по количеству отзывов или по рейтингу товара. Выкладываю готовое решение.
Добавляем в вызов mFilter2 следующий код:
Довольно таки часто требуется в интернет магазинах или каталогах добавить возможность пользователям писать отзывы о товарах, с этим очень хорошо справляется компонент EasyComm. Но очень часто возникает и смежная задача, слепить EasyComm с mFilter2, а именно сделать сортировку по количеству отзывов или по рейтингу товара. Выкладываю готовое решение.
Добавляем в вызов mFilter2 следующий код:
&loadModels=`easycomm`
&where=`{"class_key":"msProduct"}`
&leftJoin=`{
"ecThread": {
"class": "ecThread",
"on": "msProduct.id = ecThread.resource"
}
}`
&select=`{
"msProduct": "*",
"ecThread": "ecThread.rating_simple AS rating, ecThread.count AS reviews"
}`
Генерация PDF на основе данных с формы в MODX Revo
Довольно часто возникает необходимость генерировать pdf на основе данных с формы.
Ниже небольшое решение как это сделать если стоит пакет ExportPage
Ниже небольшое решение как это сделать если стоит пакет ExportPage
[mSearch2] Версия 1.5.0 с улучшенным поиском
Для покупки и обновления доступна новая версия mSearch2, с более точным алгоритмом поиска, написанным заново.
Главное отличие в том, что запрос теперь уточняет результаты, а не расширяет их, как раньше. То есть, чем больше слов вы наберёте в запросе, тем точнее будет результат.
Василий — 1276 результатов.
Василий Наумкин — 53 результата.
Василий Наумкин miniShop — 25 результата.
Василий Наумкин miniShop2 — 23 результата.
Главное отличие в том, что запрос теперь уточняет результаты, а не расширяет их, как раньше. То есть, чем больше слов вы наберёте в запросе, тем точнее будет результат.
Василий — 1276 результатов.
Василий Наумкин — 53 результата.
Василий Наумкин miniShop — 25 результата.
Василий Наумкин miniShop2 — 23 результата.
pdoFetch поиск в TV-полях с разделителем ||
Наверняка много кто использовал в своей практике TV-поля типа «Список» (множественный, одиночный, не важно) или «Тег». Здесь важно именно то, в каком виде в базе данных хранятся данные таких полей, ведь они сохраняют множественные значения. А хранят они их одной общей строкой в той же самой таблице ТВшек (естественно, по одной записи на один документ). К примеру, если мы отметили три значения 100, 1005, 10, в БД это запишется 100||1005||10. И здесь возникает вопрос как потом выполнить поиск по таким полям? Простой LIKE здесь не поможет, так как LIKE %100%, к примеру, найдет и '100||1000' и '1001||1005'. Данного вопроса мы уже касались здесь и подобный вопрос опять возник здесь.
Пример работы Fenom
Вчера в поддержку магазина обратились с жалобой на медленную работы mSearch2 при небольшом количестве товаров.
При ближайшем рассмотрении выяснилось, что проблема, конечно, не в самом mSearch2, а в чанке, который используется для вывод результатов работы фильтра.
Изначально debugParser показывал такой результат работы.
При ближайшем рассмотрении выяснилось, что проблема, конечно, не в самом mSearch2, а в чанке, который используется для вывод результатов работы фильтра.
Изначально debugParser показывал такой результат работы.