Доска объявлений на 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/
Доска объявлений не для объявлений же?
Для товаров, а товары — минишоп.
modx.pro/components/5443-ms2form-new-possibilities-for-editing/
Не знал что так можно :)
Тогда ждем вторую ветку ;)
А вот поздно уже :). На tickets половина работы уже сделана и начинать разработку на другом компоненте нет желания.
я уже делал)
вот тут
вот тут
спасибо за ссылку
А поиск как делали? на msearch2?
нет, поиск по сайту — старый msearch, а фильтр по тикетам руками писал
а поиск по тикетам — в msearch2 передайте параметр &where=`{«class_key»: «Ticket»}`
Спасибо. Жаль msearch2 на демо поставить нельзя. Компонент платный, а для демо его покупать не охота. Разве, что Василий разрешить поставить без покупки в образовательных целях :).
В образовательных целях и не последняя версия сгодится — github
Это все легко и понятно, как бы реализовать платные услуги?
Пару товаров в минишопе, при покупке товара выполняет обработка кастомным плагином.
Например:
Услуга (товар ms2) «Выделить объявление», при покупке (и оплате) к объявлению ставится бэйдж ms2 или любая твшка.
Например:
Услуга (товар ms2) «Выделить объявление», при покупке (и оплате) к объявлению ставится бэйдж ms2 или любая твшка.
А если например поднять надо объявление на самый верх и прикрепить на 1 день??
Новая таблица, в ней id заказа и дата «приостановления». Далее крон, думаю тут обяснять не надо.
Второй вариант кастомное поле в заказе «приостановление» и тот же крон.
В выводе сортировка по тому, что вы «продаете».
Вариантов много.
Второй вариант кастомное поле в заказе «приостановление» и тот же крон.
В выводе сортировка по тому, что вы «продаете».
Вариантов много.
я просто делал отдельную таблицу Payments и прикручивал робокассу, без минишопа. Там было три варианта платного размещения. При заполнении заявки создавался объект. У каждого объекта был указан тип размещения и дата оплаты. При оплате он помечался как оплаченный, активный, и проставлялась дата окончания. По крону в дату окончания снимался флажок активности. А сниппет вывода джойнил табличку payments и делал соответствующую выборку через where
Я с tickets раньше ничего не делал. Мне не так уж все легко и понятно :). 4 дня потратил пока. Демка для маленьких, чтобы легче было пройти по проторенному пути :)
Самый интересный момент, это срок публикации и продление объявления. Как у вас это реализовано?
Пока никак. Заказчику пока не требуется. Если вдруг понадобиться то сделаю и выложу :)
Есть поле unpub_date, а при продлении просто нужно увеличивать дату unpub_date (можно и publishedon для поднятия объявления) на нужное количество дней.
А MODX уже сам отпубликует по unpub_date — никаких дополнительных действий не нужно.
А MODX уже сам отпубликует по unpub_date — никаких дополнительных действий не нужно.
Доброго дня, тема эта очень интересует. Удалось завершить доску объявлений? Если да, то можно посмотреть?
- Своя отдельная таблица на основе modx_site_content с всеми добавленными полями типа vip, vip_time, top, top_time, thumb и т.д. Генерируется схема например через CMPGenerator и всё выводится через pdoResources без тормозов в виде подключения тв-шек.
- Фото можно загружать с помощью компонента userFiles.
- Платные функции реализуются просто: msProfile для внутреннего счёта и уже своими действиями через Ajax работаешь напрямую с личным счётом пользователя (добавляешь или вычитаешь баланс).
Добрый день! На тикетах доска объявлений не очень. Всякие доп и платные функции сложно программировать.
Делал несколько досок объявлений.
Делал и на ресурсах, и на тикетах и на кастомных таблицах.
Последний вариант самый оптимальный, без нагрузки на движок и очень удобный.
Схема простая:
Делал и на ресурсах, и на тикетах и на кастомных таблицах.
Последний вариант самый оптимальный, без нагрузки на движок и очень удобный.
Схема простая:
Авторизуйтесь или зарегистрируйтесь, чтобы оставлять комментарии.