Evgeny Epifanov
С нами с 17 июня 2013; Место в рейтинге пользователей: #204Тип содержимого или сделать аналог miniShop
Добрый день, я тут подумал, что при большом дереве ресурсов более 2 тысяч админка будет жутко глючить. И решил спросить в какую сторону смотреть чтобы сделать ресурсы как на miniShop товар — таким образом хотел бы избавиться от возможной проблемы — на данном моменте сайта её нет ресурсов меньше 1000 но не за горами то время когда этот порог будет преодалён, не хочется быть в тупике.
И еще стоит ли так делать? Или в любом случае при таком количестве ресурсов сайт уже начнет лагать и глючить? Спасибо всем.
И еще стоит ли так делать? Или в любом случае при таком количестве ресурсов сайт уже начнет лагать и глючить? Спасибо всем.
[Tickets] Ajax комментарии
В продолжении темы про книгу отзывов.
Как и обещал, выкладываю описание решения. Только я решил разбить его на отдельные пункты, потому что каждая из описанных возможностей может быть использована независимо от других.
Первым пунктом была указана возможность ajax подгрузки комментариев. Она самая простая. С нее и начнем.
Как и обещал, выкладываю описание решения. Только я решил разбить его на отдельные пункты, потому что каждая из описанных возможностей может быть использована независимо от других.
Первым пунктом была указана возможность ajax подгрузки комментариев. Она самая простая. С нее и начнем.
Создание и настройка прав пользователя
Прошу посмотреть порядок мои действий, и если там есть ошибки подсказать их решение.
Задача заключается в том что бы:
Вариант 1. Когда пользователи могут создавать, редактировать, удалять тикеты и комментарии
1) Сам админ мог создавать, редактировать, удалять тикеты и комментарии.
2) Гости не могут создавать, редактировать, удалять тикеты и комментарии.
3) Авторизованные пользователи могут создавать, редактировать и удалять тикеты и комментарии.
И так имея уже установленный компонент tickets и HybridAuth, настраиваем права доступа:
Задача заключается в том что бы:
Вариант 1. Когда пользователи могут создавать, редактировать, удалять тикеты и комментарии
1) Сам админ мог создавать, редактировать, удалять тикеты и комментарии.
2) Гости не могут создавать, редактировать, удалять тикеты и комментарии.
3) Авторизованные пользователи могут создавать, редактировать и удалять тикеты и комментарии.
И так имея уже установленный компонент tickets и HybridAuth, настраиваем права доступа:
Сниппет вывода path первого изображения из альбома компонента Gallery
Для начала создадим новый тип TV вот по этой инструкции — community.modx-cms.ru/blog/tips_and_tricks/8733.html
Далее создадим сниппет, который будет выводить наше первое изображение из альбома заполненного в дополнительных полях ресурса:
[[!getGalleryImage? &album=`[[*hotelPhotos]]`&toPlaceholder=`hotelFirstImage`]]
[[*hotelPhotos]] — это TV с id альбома Gallery (с тем новым типом TV, который мы создали по инструкции выше)
Также мы можем указать параметр «rank», он будет отвечать, какое по счёту изображение от начала нам вывести. Допустим если укажем "&rank=`1`", то получим второе по счёту от начала изображение, укажем «2» — получим третье изображение и т.д.
Далее создадим сниппет, который будет выводить наше первое изображение из альбома заполненного в дополнительных полях ресурса:
<?php
// Сниппет получения пути изображения из указанного альбома компонента Gallery
$album = $modx->getOption('album', $scriptProperties, '1'); // проверяем, указан ли id альбома.. (по умолчанию - id альбома = 1)
$rank= $modx->getOption('rank', $scriptProperties, '0'); // проверяем, указан ли номер картинки в альбоме, по счёту от начала, которую нужно вывести.. (по умолчанию - первая)
$toPlaceholder = $modx->getOption('toPlaceholder', $scriptProperties, ''); // в плейсхолдер
$where=array();
$where['album'] = $album;
$where['rank'] = $rank;
$gAlbumItemObj = $modx->getObject("galAlbumItem", $where );
$pathToImage = ''; // Сохраняем пустоту, чтобы в случае пустого альбома обновить плейсхолдер..
// Проверяем, получили ли мы результат.. проще говоря - есть ли такая картинка в таком альбоме
if(is_object($gAlbumItemObj)) {
$gItemObj = $modx->getObject("galItem", array('id' => $gAlbumItemObj->get('item')) );
$pathToImage = '/assets/gallery/' . $gItemObj->get('filename');
//print_r($gItemObj->toArray()); die;
}
if($toPlaceholder!='') {
$modx->setPlaceholder($toPlaceholder, $pathToImage);
} else {
return $pathToImage;
}
Пример запроса к сниппету:[[!getGalleryImage? &album=`[[*hotelPhotos]]`&toPlaceholder=`hotelFirstImage`]]
[[*hotelPhotos]] — это TV с id альбома Gallery (с тем новым типом TV, который мы создали по инструкции выше)
Также мы можем указать параметр «rank», он будет отвечать, какое по счёту изображение от начала нам вывести. Допустим если укажем "&rank=`1`", то получим второе по счёту от начала изображение, укажем «2» — получим третье изображение и т.д.
[pdoTools] 1.9.5-pl Возврат JSON и исправления
После довольно долгого перерыва вышла новая версия pdoTools.
Из новых функций в ней только возможность возврата JSON и сериализованных строк:
Из новых функций в ней только возможность возврата JSON и сериализованных строк:
[[!pdoResources?
&return=`json`
]]
[[!pdoResources?
&return=`serialize`
]]
В документации можно почитать подробнее. Всё остальное — разные исправления и улучшения, в основном, в pdoMenu Обновление остатков товара
Хотелось бы поднять вопрос обновления остатков товара после оформления заказа.
Точнее, в момент совершения заказа на n-ое количество товара остаток должен уменьшиться на n заказанных штук.
Возможно, плохо гуглил, но информация какая-то разрозненная и нужно собрать по крупицам в кучу.
В общем, благодаря этому комменту написал такой плагин:
Точнее, в момент совершения заказа на n-ое количество товара остаток должен уменьшиться на n заказанных штук.
Возможно, плохо гуглил, но информация какая-то разрозненная и нужно собрать по крупицам в кучу.
В общем, благодаря этому комменту написал такой плагин:
Выбрать элементы без tv
Задача такая есть несколько десятков ресурсов у которых не проставлен определенный TV параметр. Нужно вывести на отдельную страницу ресурсы у которых нет этого параметра, чтоб можно было его проставить. Не могу сообразить, как сделать запрос. Параметр числовой. Больше меньше
или равно вывести могу
или равно вывести могу
&tvFilters=`mytv==0`
, а вот с отсутствующим параметром я в тупике. Подскажите Уязвимость MODx
Оформление писем Minishop2
Добрый день!
Не могу понять, как менять то, что подставляется в плейсхолдер [[+goods]] и как это менять. И как прикрепить свою css к письмам.
Не могу понять, как менять то, что подставляется в плейсхолдер [[+goods]] и как это менять. И как прикрепить свою css к письмам.
Где формируется номер заказа [[+num]]?
Добрый день. Ребята подскажите где формируется номер заказа который помещается потом в плейсхолдер [[+num]]? Сейчас это выглядит так: 1409/5. Меняется только последняя цифра. Как я понял 1409 у всех заказов — что это? Произвольная цифра, или год и месяц?