Доска объявлений на tickets
Делаю доску объявлений на tickets.

Для интересующихся этой темой сделал демо сайт http://cp293906.cpsite.ru/. Вход в админку логин: demo пароль: demodemo.
Пока сделал как получилось :). Но работа еще продолжается.
Информацию по настройке tickets брал из источников:
Компонент Tickets — пользовательские страницы и комментарии
[Tickets] Версия 1.4.0-beta4 — Загрузка файлов
[Tickets] Версия 1.1.0 beta2 — Тикеты с ТВ
Фильтрация по TV в Tickets
Пока нигде не нашел как сделать поиск по тикетам. Ясно, что нужно использовать mSearch2, но непонятно как. Буду благодарен за подсказки к поиску по тикетам и замечания к улучшению доски объявлений.
Сделал поиск по тикетам на mSearch2.

Поиск ищет по поисковой фразе и фильтрует по tv параметрам:
Для интересующихся этой темой сделал демо сайт http://cp293906.cpsite.ru/. Вход в админку логин: demo пароль: demodemo.
Пока сделал как получилось :). Но работа еще продолжается.
Информацию по настройке tickets брал из источников:
Компонент Tickets — пользовательские страницы и комментарии
[Tickets] Версия 1.4.0-beta4 — Загрузка файлов
[Tickets] Версия 1.1.0 beta2 — Тикеты с ТВ
Фильтрация по TV в Tickets
Сделал поиск по тикетам на mSearch2.
Поиск ищет по поисковой фразе и фильтрует по tv параметрам:
[[$search_form]]
[[!pdoPage?
&element=`mSearch2`
&showLog=`1`
&limit=`10`
&where=`[[!get_search_where?]]`
&includeTVs=`topic_bar_cat,topic_price,topic_torg,topic_sity`
&tpl=`My.tpl.mSearch2.row`
]]
<div class="pagination">
[[!+page.nav]]
</div>Сниппет get_search_where из $_GET запроса формирует json вида:{"class_key": "Ticket","topic_sity":"минск"}<?php
$where = array('class_key'=>'Ticket');
$get_params = array('topic_sity','topic_bar_cat', 'parent');
foreach($get_params as $p){
if(isset($_GET[$p])){
$modx->setPlaceholder($p,$_GET[$p]);
if($_GET[$p]!='' and $_GET[$p]!=0){
$where[$p]= $_GET[$p];
}
}
}
$p = 'price_from';
if(isset($_GET[$p])){
if($_GET[$p]!=''){
$modx->setPlaceholder($p,$_GET[$p]);
$where['topic_price:>=']= $_GET[$p];
}
}
$p = 'price_to';
if(isset($_GET[$p])){
if($_GET[$p]!=''){
$modx->setPlaceholder($p,$_GET[$p]);
$where['topic_price:<=']= $_GET[$p];
}
}
return json_encode($where); Комментарии: 23
Авторизуйтесь или зарегистрируйтесь, чтобы оставлять комментарии.
Доска объявлений не для объявлений же?
Для товаров, а товары — минишоп.
modx.pro/components/5443-ms2form-new-possibilities-for-editing/
вот тут
Например:
Услуга (товар ms2) «Выделить объявление», при покупке (и оплате) к объявлению ставится бэйдж ms2 или любая твшка.
Второй вариант кастомное поле в заказе «приостановление» и тот же крон.
В выводе сортировка по тому, что вы «продаете».
Вариантов много.
А MODX уже сам отпубликует по unpub_date — никаких дополнительных действий не нужно.
Делал и на ресурсах, и на тикетах и на кастомных таблицах.
Последний вариант самый оптимальный, без нагрузки на движок и очень удобный.
Схема простая:
- Своя отдельная таблица на основе modx_site_content с всеми добавленными полями типа vip, vip_time, top, top_time, thumb и т.д. Генерируется схема например через CMPGenerator и всё выводится через pdoResources без тормозов в виде подключения тв-шек.
- Фото можно загружать с помощью компонента userFiles.
- Платные функции реализуются просто: msProfile для внутреннего счёта и уже своими действиями через Ajax работаешь напрямую с личным счётом пользователя (добавляешь или вычитаешь баланс).
Срок разработки такой доски составляет от трех недель до двух месяцев (+-), зависит от ТЗ.