Андрей
С нами с 09 апреля 2015; Место в рейтинге пользователей: #68Как обновить дату редактирования ресурса в котором публикуется цепочка сообщений easyComm при нажатии в админке кнопки сохранить?
Как обновить дату редактирования ресурса в котором публикуется цепочка при публикации отзыва или ответа на вопрос (редактировании ответа на вопрос), в общем при нажатии в админке кнопки сохранить?
Нужно для правильной работы LastModified, так как публикация отзыва или ответа на вопрос является изменением документа.
В каком файле это можно сделать и где именно, или надо сниппет или плагин свой делать?
Нужно для правильной работы LastModified, так как публикация отзыва или ответа на вопрос является изменением документа.
В каком файле это можно сделать и где именно, или надо сниппет или плагин свой делать?
[SelectFilters] - выбор фильтров для mFilter2
Всем привет, написал простенькое дополнение которое решает одну очень надоевшую проблему — клиент не может выбирать какие опции miniShop2 попадут в фильтр товаров mFilter2. В общем дополнение добавляет чекбокс в окно создания и редактирования опций, в комплекте также сниппет подготовки поля 'filter'
[msPromoCode2] Кейс. Установка промо-кода программно при входе на сайт
Мало кто знает, что msPromoCode2 можно использовать и как компонент для скидок на товары, без обязательного ввода промо-кода юзером. Всего лишь нужно написать маленький плагин, взаимодействующий с программным API. В этом посте предлагаю данный кейс.
К сожалению, никак не успеваю пополнить раздел API, пусть этот пост станет началом!
Плюс и минус в каунте корзины MS2
Досточно простой вопрос, который мучает начинающих разработчиков. Решил поделиться решением, как сделать кнопки плюс и минус в корзине MS2. Что бы все было «по-фуншую»
Начнем c разметки. Я показываю на страндартной теме MS2. Вносим правки в чанк tpl.msCart
Начнем c разметки. Я показываю на страндартной теме MS2. Вносим правки в чанк tpl.msCart
...
<td class="count">
<form method="post" class="ms2_form" role="form">
<input type="hidden" name="key" value="{$product.key}"/>
<div class="form-group">
<div class="input-group input-group-sm qty">
<span class="input-group-prepend">
<span class="input-group-text minus input_count_action">-</span>
</span>
<input type="number" name="count" value="{$product.count}" class="form-control"/>
<span class="input-group-append">
<span class="input-group-text plus input_count_action">+</span>
<span class="input-group-text">{'ms2_frontend_count_unit' | lexicon}</span>
</span>
</div>
<button class="btn btn-sm" type="submit" name="ms2_action" value="cart/change">
↻</button>
</div>
</form>
</td>
...
Docs. Подготовка к обновлению MODX с 2.x до 3.0
Всем привет!
В связи с скорым релизом альфа версии MODX 3.0 — @Mark Hamstra начал готовить новую документацию по обновлению с версии 2.x до 3.x, а я соответственно начал переводить все для нашего русскоговорящего сообщества.
Вывод pdoResources в ячейке Collections в админке
Добрый день, уважаемые коллеги! Продолжаю страдать от собственного перфекционизма, прошу спасити!
Есть ресурс, тип Коллекция, выводит дочерние ресурсы. Внутри каждого дочернего ресурса, есть TV в котором выбираются другие ресурсы от некого родителя (артисты, участвующие в ивенте из раздела артистов).
Если просто выводить в ячейку содержимое этого TV, то выводится только ID ресурса, а хочется что б выводилось по этим ID например pagetitle и longtitle этих ресурсов, ну может еще какой TV от них, ну, видимо с помощью pdoResources.
Заказчику так-то это вообще не интересно, но вот мне хочется что б всё было тип-топ, как в аптеке.
Прошу помочь, заранее сердечно благодарю!
Есть ресурс, тип Коллекция, выводит дочерние ресурсы. Внутри каждого дочернего ресурса, есть TV в котором выбираются другие ресурсы от некого родителя (артисты, участвующие в ивенте из раздела артистов).
Если просто выводить в ячейку содержимое этого TV, то выводится только ID ресурса, а хочется что б выводилось по этим ID например pagetitle и longtitle этих ресурсов, ну может еще какой TV от них, ну, видимо с помощью pdoResources.
Заказчику так-то это вообще не интересно, но вот мне хочется что б всё было тип-топ, как в аптеке.
Прошу помочь, заранее сердечно благодарю!
Выведение опций товара по категориям
Сниппет msProductOptions выводит товары общим массивом. В принципе, никто не запрещает в чанке вывода делать с этим массивом всё что угодно, в том числе и делить по категориям. Однако всё чаще поступает запрос от клиента не только вывести категории, но и соблюсти их сортировку.
Для этих целей мне пришлось msProductOptions переписать. Мой вариант сниппета воспроизводит запрос msProductData::loadOptions с сортировкой по полю rank категории, затем группирует все опции по категориям с соблюдением сортировки самих опций.
Для этих целей мне пришлось msProductOptions переписать. Мой вариант сниппета воспроизводит запрос msProductData::loadOptions с сортировкой по полю rank категории, затем группирует все опции по категориям с соблюдением сортировки самих опций.
Смена шаблона через плагин
Добрый день, что-то не получается разобрать со сменой шаблона через плагин при загрузке страницы
В чем проблема, надо вызывать плагин не для OnLoadWebDocument? или в чем-то другом проблема?
case 'OnLoadWebDocument':
$id = $modx->resource->get('id');
$resource = $modx->getObject('modResource',$id);
$resource->set('template', 4);
$resource->save();
break;
Шаблон меняется в админке и все бы хорошо, на на странице сайта указанный шаблон применяется только после второго захода, т.е получается, что смена шаблона происходит после отображения страницы.В чем проблема, надо вызывать плагин не для OnLoadWebDocument? или в чем-то другом проблема?
Можно ли изменить стоимость заказа перед переходом к оплате?
Приветствую!
Подскажите, есть ли способ изменить стоимость заказа (а лучше доставки отдельно), перед переходом к оплате (после того, как пользователь нажал «Сделать заказ!»? Сколько искал, не нашёл в сети похожих примеров.
Подскажите, есть ли способ изменить стоимость заказа (а лучше доставки отдельно), перед переходом к оплате (после того, как пользователь нажал «Сделать заказ!»? Сколько искал, не нашёл в сети похожих примеров.
[Решено]: pdoResources &where сортировка по дате
Уж сколько копий изломано по этому параметру(а прежде и по &tvFilters), вот очередная похожая проблема,
все что мог выискал, вычитал, в ядро дальше копать? Подскажите, чего я не вижу.
Есть события, у каждого в двух TV — время начала и окончания события. Как известно, они хранятся не в timestamp. Нужно выводить только те, у которых дата завершения еще не наступила.
В тестируемом контейнере событий всего 10, и только одно еще не завершилось.Сниппет currentDate возвращает просто метку времени через time().
Вызов сниппета:
все что мог выискал, вычитал, в ядро дальше копать? Подскажите, чего я не вижу.
Есть события, у каждого в двух TV — время начала и окончания события. Как известно, они хранятся не в timestamp. Нужно выводить только те, у которых дата завершения еще не наступила.
В тестируемом контейнере событий всего 10, и только одно еще не завершилось.Сниппет currentDate возвращает просто метку времени через time().
Вызов сниппета:
{'!pdoResources' | snippet : [
'select' => '{"modResource":"id,pagetitle"}',
'tpl' => 'marketEventTpl',
'level' => '1',
'limit' => '100',
'tvPrefix' => '',
'includeTVs' => 'EventStart,EventEnd',
'templates' => '17',
'sortby' => '{"EventStart":"ASC"}'
'where' => 'UNIX_TIMESTAMP(EventEnd) > "[[!currentDate]]"'
'showLog' => '1'
]}
Лог результата:0.0000610: pdoTools loaded
0.0000160: xPDO query object created
0.0004399: Included list of tvs: EventEnd, EventStart
0.0001340: leftJoined modTemplateVarResource as TVeventend
0.0001180: leftJoined modTemplateVarResource as TVeventstart
0.0000529: Added selection of modResource: `id`, `pagetitle`
0.0000050: Added selection of modTemplateVarResource: IFNULL(`value`, '') AS `EventEnd`
0.0000041: Added selection of modTemplateVarResource: IFNULL(`value`, '') AS `EventStart`
0.0000520: Replaced TV conditions
0.0003431: Processed additional conditions
0.0005569: Added where condition: 0=UNIX_TIMESTAMP(`TVeventend`.`value`) > "1574334058", modResource.parent:IN(8,29,286,310,311,312,292,313,314,315,293,308,309), modResource.template:IN(17), modResource.published=1, modResource.deleted=0
0.0000060: Replaced TV conditions
0.0001009: Sorted by CAST(`TVeventstart`.`value` AS DATETIME), ASC
0.0000021: Limited to 100, offset 0
0.0001509: SQL prepared "SELECT `modResource`.`id`, `modResource`.`pagetitle`, IFNULL(`TVeventend`.`value`, '') AS `EventEnd`, IFNULL(`TVeventstart`.`value`, '') AS `EventStart` FROM `modx_site_content` AS `modResource` LEFT JOIN `modx_site_tmplvar_contentvalues` `TVeventend` ON `TVeventend`.`contentid` = `modResource`.`id` AND `TVeventend`.`tmplvarid` = 149 LEFT JOIN `modx_site_tmplvar_contentvalues` `TVeventstart` ON `TVeventstart`.`contentid` = `modResource`.`id` AND `TVeventstart`.`tmplvarid` = 148 WHERE ( UNIX_TIMESTAMP(`TVeventend`.`value`) > "1574334058" AND `modResource`.`parent` IN (8,29,286,310,311,312,292,313,314,315,293,308,309) AND `modResource`.`template` IN (17) AND `modResource`.`published` = 1 AND `modResource`.`deleted` = 0 ) ORDER BY CAST(`TVeventstart`.`value` AS DATETIME) ASC LIMIT 100 "
0.0012290: SQL executed
0.0000150: Rows fetched
0.0012670: Prepared and processed TVs
0.0005660: Loaded "modChunk" with name "marketEventTpl"
0.0079620: Compiled Fenom chunk with name "modchunk/8"
0.0120490: Returning processed chunks
0.0162890: Total time
8 388 608: Memory usage
Выводит все 10. Удивительно то, что если скормить формируемый SQL запрос напрямую в базу, получаем желаемый один результат!