Александр

Александр

Был в сети 06 февраля 2023, 18:32
Заказы не принимаю
Спасибо, Василий.

Я вывожу на главной странице список всех тикетов таким образом:

[[!mSearchForm?]]

[[!mFilter2?
	&tpl=`tpl.Tickets.list.row`
        &parents=`4,5,6,7,8,9,10,11,12,13`
        &filters=`tv|realty, tv|transport`
        &element=`mSearch2`
]]
Но почему-то выводятся только [[+pagetitle]] и [[+introtext]].
Такие параметры как [[+date_ago]], [[+views]] и т.д. не показываются.
Пробовал их указать в includeTV для mSearch2 — безрезультатно.
Или я опять не туда полез? )
Извиняюсь, а можно полностью описать конечное решение? почитал комментарии и в конец запутался, где какие чанки, плагины и сниппеты создавать… Если это решение актуально конечно ещё, может другие способы есть, более удобные?
Спасибо большое за помощь!

Пошел дальше, сделал через js отслеживание чекбоксов, чтобы можно было выбирать разделы группами (
http://krskdoska.ru).
Если нажать на чекбокс Недвижимость — то выбираются все подразделы, но фильтрация не происходит.

Я так понимаю, в скрипте нужно запустить фильтрацию, но что именно прописать?

Скрипт, отвечающий за выделение чекбоксов:

<script type="text/javascript">
//<![CDATA[ 
$(function(){
$('.main_check').on('change',function () {
    var $that = $(this);
    $that.next('ul').find(':checkbox').prop('checked', $that.prop('checked'));
});
$('.checkbox').on('change', function(){
    var $that = $(this),
        ul = $that.closest('ul'),
        main = ul.prev('.main_check');
    main.prop('checked', $(':checkbox',ul).length == $(':checkbox:checked',ul).length);
});
});//]]>  
</script>

Сгенерированный код страницы, где выводятся чекбоксы:

<ul class="folder">
    	<li>Недвижимость<input type="checkbox" class="main_check">
    	    <ul class="section">
    	        <li>
    <label for="mse2_tv|realty_0" class="">
    	<input type="checkbox" class="checkbox" name="tv|realty" id="mse2_tv|realty_0" value="Гаражи и машиноместа"> Гаражи и машиноместа <sup>1 </sup>
    </label>
   
</li>
<li>
    <label for="mse2_tv|realty_1" class="">
    	<input type="checkbox" class="checkbox" name="tv|realty" id="mse2_tv|realty_1" value="Дома и дачи"> Дома и дачи <sup>2 </sup>
    </label>
   
</li>
<li>
    <label for="mse2_tv|realty_2" class="">
    	<input type="checkbox" class="checkbox" name="tv|realty" id="mse2_tv|realty_2" value="Земельные участки"> Земельные участки <sup>1 </sup>
    </label>
   
</li>
<li>
    <label for="mse2_tv|realty_3" class="">
    	<input type="checkbox" class="checkbox" name="tv|realty" id="mse2_tv|realty_3" value="Квартиры"> Квартиры <sup>3 </sup>
    </label>
   
</li>
<li>
    <label for="mse2_tv|realty_4" class="">
    	<input type="checkbox" class="checkbox" name="tv|realty" id="mse2_tv|realty_4" value="Коммерческая недвижимость"> Коммерческая недвижимость <sup>1 </sup>
    </label>
   
</li>
<li>
    <label for="mse2_tv|realty_5" class="">
    	<input type="checkbox" class="checkbox" name="tv|realty" id="mse2_tv|realty_5" value="Комнаты"> Комнаты <sup>3 </sup>
    </label>
   
</li>
    	    </ul>
    	</li>
    </ul>
Вот страница krskdoska.ru/

Если не вводить ничего в поисковую строку, и просто кликнуть на фильтр (скажем, Квартиры), то справа в результатах выводится только ссылка на раздел с квартирами. А нужно, чтобы выводились все тикеты из этого раздела.

Надеюсь, понятно выразился )
Попробовал так сделать, результат кое-какой есть )

Сделал параметр realty (список), в нём возможные значения (Квартиры||Комнаты||Земельные участки и т.д.), на всякий случай разрешил его всем шаблонам.

Прошелся по категориям недвижимости и к каждому разделу назначил соответствующий пункт из realty.

Вызвал mFilter2 так:
[[!mFilter2?
    &parents=`0`
    &filters=`tv|realty`
]]

В итоге выводит вот такой фильтр:



Но если выбирать пункты, то в результаты поиска выводятся только те страницы, которые отмечены tv realty. То есть, если я выбираю Гаражи и машиноместа, то выводится ссылка только на этот раздел, а дочерние игнорируются, хотя они там есть.

Параметры &hideContainers = `false` и &showHidden = `true` по умолчанию.

Есть подозрение, что я неправильно указываю filters при вызове. Есть какие-нибудь соображения? )
Запутался немного.

У меня параметр: tv1
Возможные значения ввода: Квартиры||Комнаты||Гаражи||Офисы||

В чанке с формой такой код:
<select name="tv1" id="ticket-type">[[+tv1]]</select>
Создал плагин ticket_select с кодом:
if($mode == 'new' && $resource->class_key == 'Ticket' && $modx->event->name == 'OnDocFormSave'){
	$resource->setTVValue('tv1', $_POST['tv1']);
}
Куда нужно прописать вот этот код и что в нем нужно заменить?
$services_services = implode("||", $_POST['services_services']);
	if (!$resource->setTVValue('services_services', $services_services)) {
		$modx->log(xPDO::LOG_LEVEL_ERROR, 'services_services - ERROR');
	}