Доска объявлений на 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 работаешь напрямую с личным счётом пользователя (добавляешь или вычитаешь баланс).
 
                Добрый день! На тикетах доска объявлений не очень. Всякие доп и платные функции сложно программировать.            
                    
                Делал несколько досок объявлений. 
Делал и на ресурсах, и на тикетах и на кастомных таблицах.
Последний вариант самый оптимальный, без нагрузки на движок и очень удобный.
Схема простая:
                    Делал и на ресурсах, и на тикетах и на кастомных таблицах.
Последний вариант самый оптимальный, без нагрузки на движок и очень удобный.
Схема простая:
                            Авторизуйтесь или зарегистрируйтесь, чтобы оставлять комментарии.