Николай
С нами с 09 ноября 2013; Место в рейтинге пользователей: #57Соединяем 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"
}`
Создание правил при смене суффикса контейнера
Хочу поменять у ресурсов-контейнеров суффикс контейнера с / на .html
Установил autoRedirector, поменял суффикс в системных настройка, обновил кэш. URI-ссылки поменялись, но автоматически правила не создались. А ведь должны были?
MODX Revolution 2.3.3-pl (traditional)
Установил autoRedirector, поменял суффикс в системных настройка, обновил кэш. URI-ссылки поменялись, но автоматически правила не создались. А ведь должны были?
MODX Revolution 2.3.3-pl (traditional)
Расширение объекта modResource
Добрый день, Уважаемые!
Начитавшись статей про расширение таблиц modx, решил попробовать совсем простой вариант для закрепления материала, решил добавить дополнительное поле keywords к объекту modResource, как делают это многие с помощью TV, но захотелось что бы оно было в одной таблице modx_site_content, попробовал использовать плагин Василия, который инициализируется по событию OnMODXInit. Физически я в таблицу добавил столбец, и теперь когда пишу в консоли получить объект и распечатать его я вижу своё поле keywords, но вопрос а как его теперь вывести на панели ресурса, что бы можно было его заполнять?
Начитавшись статей про расширение таблиц modx, решил попробовать совсем простой вариант для закрепления материала, решил добавить дополнительное поле keywords к объекту modResource, как делают это многие с помощью TV, но захотелось что бы оно было в одной таблице modx_site_content, попробовал использовать плагин Василия, который инициализируется по событию OnMODXInit. Физически я в таблицу добавил столбец, и теперь когда пишу в консоли получить объект и распечатать его я вижу своё поле keywords, но вопрос а как его теперь вывести на панели ресурса, что бы можно было его заполнять?
mFilter2 - функции обратного вызова
Как перехватить данные с pdoPage, используемому в mFilter2 по умолчанию?
То есть в обычном pdoPage прекрасно работают функции обратного вызова, а в mFilter2 почему-то не получается.
Или я не туда смотрю? Может и для mFilter2 есть функции обратного вызова, только я пропустил это?
То есть в обычном pdoPage прекрасно работают функции обратного вызова, а в mFilter2 почему-то не получается.
Или я не туда смотрю? Может и для mFilter2 есть функции обратного вызова, только я пропустил это?
[SkypeNotify] - уведомление в скайп для MODX
[SkypeNotify] — собственно уведомление в скайп для MODX.
подключить и инициализировать skypenotify
подключить и инициализировать skypenotify
$skypenotify = $modx->getService('skypenotify')
$skypenotify->initialize();
подключить аккаунт скайп$skypenotify->connect('login', 'password');
отправить сообщение$skypenotify->sendMessage('login', 'Привет Боб, как дела?');
Вывод пути к статическому чанку
Доброго времени суток,
Есть статический чанк, как средствами modx вывести урл, куда сохранен данный чанк?
в описании getChunk() не нашел.
Есть статический чанк, как средствами modx вывести урл, куда сохранен данный чанк?
в описании getChunk() не нашел.
pdoFetch поиск в TV-полях с разделителем ||
Наверняка много кто использовал в своей практике TV-поля типа «Список» (множественный, одиночный, не важно) или «Тег». Здесь важно именно то, в каком виде в базе данных хранятся данные таких полей, ведь они сохраняют множественные значения. А хранят они их одной общей строкой в той же самой таблице ТВшек (естественно, по одной записи на один документ). К примеру, если мы отметили три значения 100, 1005, 10, в БД это запишется 100||1005||10. И здесь возникает вопрос как потом выполнить поиск по таким полям? Простой LIKE здесь не поможет, так как LIKE %100%, к примеру, найдет и '100||1000' и '1001||1005'. Данного вопроса мы уже касались здесь и подобный вопрос опять возник здесь.
АнтиСео в MODX 2.4.0
Доброго времени суток, господа
Думаю не все в курсе (по крайней мере я не был) о том, что последние версии modx не корректно отрабатывают в связке в nginx ЧПУ (верней переадресацию при включении чпу).
В результате чего контент сайтацеликом дублируется в глазах поисковика и вы уныло катитесь вниз в выдаче.
Приведу простой пример:
Ваш сайт доступен по ссылке */index.php?id=1 и /, */index.php?id=2 и по чпу документа с id 2 и т.д.
К сожалению на modhost установлен nginx и я совершенно случайно обнаружил этот факт.
Василий предложил использовать плагин
Так же обратил внимание, что при включении этого плагина слетает выборка последних новостей (последние 3 дочерных документа у родителя по id).
Вот собственно вопрос:
как поставить проверку по содержанию /manager/ в url?
Почему может не работать pdoResources при включении этого плагина?
Думаю не все в курсе (по крайней мере я не был) о том, что последние версии modx не корректно отрабатывают в связке в nginx ЧПУ (верней переадресацию при включении чпу).
В результате чего контент сайта
Приведу простой пример:
Ваш сайт доступен по ссылке */index.php?id=1 и /, */index.php?id=2 и по чпу документа с id 2 и т.д.
К сожалению на modhost установлен nginx и я совершенно случайно обнаружил этот факт.
Василий предложил использовать плагин
<?php
if ($modx->event->name == 'OnHandleRequest') {
if (!empty($_GET['id'])) {
$id = (int)$_GET['id'];
if (!$modx->getCount('modResource', array('id' => $id, 'published' => 1, 'deleted' => 0))) {
$id = $modx->getOption('error_page', null, $modx->getOption('site_start'));
}
$modx->sendRedirect($modx->makeUrl($id));
}
}
На первый взгляд он закрывает эту дырку, но на практике получилось, что он ресолвит id и для страниц бэкенда, что убило его функционал.Так же обратил внимание, что при включении этого плагина слетает выборка последних новостей (последние 3 дочерных документа у родителя по id).
Вот собственно вопрос:
как поставить проверку по содержанию /manager/ в url?
Почему может не работать pdoResources при включении этого плагина?
Упрощаем работу с TV
Продолжая тему, начатую Василием, предлагаю решение для упрощения работы с TV. Оно поможет тем, у кого логика сайта завязана на TV — запросы, фильтры и т.п.
Решается эта задача созданием полей в таблице ресурсов и копированием в них значений TV.
Решается эта задача созданием полей в таблице ресурсов и копированием в них значений TV.
Конвертировать сырой SQL в xPDO. Вложенные запросы
Ребят, может кто помочь переделать сырой sql в xpdo?
Есть вот такой код, который отлично работает в phpmyadmin:
SELECT * FROM (
SELECT * FROM `modx_site_tmplvar_contentvalues` WHERE `tmplvarid` = '11'
) AS `tv_article`
LEFT JOIN `modx_shopmodx1c_tmp_categories` AS `main`
ON `main`.`parent` = `tv_article`.`value` AND `main`.`processed`=1
На modx перешел недавно, поэтому не ориентируюсь пока в xpdo, так как раньше надобности не было.
Есть вот такой код, который отлично работает в phpmyadmin:
SELECT * FROM (
SELECT * FROM `modx_site_tmplvar_contentvalues` WHERE `tmplvarid` = '11'
) AS `tv_article`
LEFT JOIN `modx_shopmodx1c_tmp_categories` AS `main`
ON `main`.`parent` = `tv_article`.`value` AND `main`.`processed`=1
На modx перешел недавно, поэтому не ориентируюсь пока в xpdo, так как раньше надобности не было.