Григорий
С нами с 05 марта 2020; Место в рейтинге пользователей: #3172Сделать сортировку в фильтре по tv полю
Здравствуйте имеется данный фильтр, у него есть поле селект называется выбрать автомобиль тип список.
Подскажите каким образом можно отфильтровать по этому полю.
Вот вёрстка фильтра
Подскажите каким образом можно отфильтровать по этому полю.
Вот вёрстка фильтра
<div class="form-selection">
<form action="[[~3]]" name="f-selection">
<div class="f-fields plane-1">
<select name="s-category" id="s-category">
<option value="0">Выберите тип запасных частей</option>
[[!getResources? &limit=`0` &parents=`15` &where=`{"template:=":4}` &sortby=`{"menuindex":"ASC"}` &tpl=`category-item-option-model-selection`]]
</select>
</div>
<div class="f-fields plane-2">
<select name="s-auto" id="s-auto" onchange="getMod(this.value);">
<option value="0">Выберите автомобиль</option>
[[!getResources? &parents=`28` &where=`{"template:=":6}` &tpl=`category-item-option-model-selection-2`&limit=`0`]]
</select>
</div>
<div id="append">[[select-model]]</div>
<div class="f-button">
<input type="submit" id="s-sub" name="s-sub" value="Найти">
<!--<button type="submit">Найти</button>-->
</div>
</form>
</div>
Это сниппет selection <?php
// [[!getResources? &sortby=`{"menuindex":"ASC"}` &parents=`[[*id]]` &where=`{"template:IN":[5]}` &tpl=`product-list`]]
$auto = $_GET['s-auto'];
$seng = $_GET['s-eng'];
if(!empty($auto) && empty($seng)) {
$modelfl = array();
$array_ids = $modx->getChildIds($auto, 5, array('context' => 'web'));
foreach($array_ids AS $item) {
$modelfl[] = 'model==%'.$item.'%';
}
$modelfl_str = implode('||',$modelfl);
}
else if(!empty($seng)) {
$modelfl_str = 'model==%'.$seng.'%';
}
$filter .= $modelfl_str;
$cat = $_GET['s-category'];
if($cat == 0) {
$array_ids = $modx->getChildIds(15,1,array('context' => 'web'));
$cat = implode(",",$array_ids);
}
$arr = array(
'sortby'=>'{"pagetitle":"ASC"}',
'includeTVs'=>1,
'processTVs'=>1,
'depth'=> 2,
'where'=>'{"template:IN":[5]}',
'tpl'=>'product-list-selection',
'parents'=>$cat,
'tvFilters'=>"$filter",
'limit'=>0);
$sn = $modx->runSnippet('getResources',$arr);
if(!empty($_GET['s-auto']) || !empty($_GET['s-eng']) || !empty($_GET['s-category'])) {
if(!empty($sn)) {
echo '<table class="param-model">';
echo $sn;
echo '</table>';
}
else {
echo '<p class="not">По вашему запросу ничего не найдено</p>';
}
}
select-model сниппет модели<?php
if(!empty($_GET['s-auto'])) {
$array_ids = $modx->getChildIds($_GET['s-auto'],6,array('context' => 'web'));
echo'<div class="f-fields plane-2"><select name="s-eng" id="s-eng"><option value="0">Выберите двигатель</option>';
foreach($array_ids AS $item) {
$page = $modx->getObject('modResource', $item);
$output = $page->get('pagetitle');
if($_GET['s-eng'] == $item) {
$cls = ' selected';
}
else {
$cls = '';
}
echo '<option value="'.$item.'"'.$cls.'>'.$output.'</option>';
}
echo '</select></div>';
}
сниппет searchauto<?php
// [[!getResources? &sortby=`{"menuindex":"ASC"}` &parents=`[[*id]]` &where=`{"template:IN":[5]}` &tpl=`product-list`]]
$model = $_GET['f-auto'];
$arr = array(
'sortby'=>'{"menuindex":"ASC"}',
'includeTVs'=>1,
'processTVs'=>1,
'where'=>'{"template:IN":[5]}',
'tpl'=>'product-list',
'parents'=>15,
'tvFilters'=>"model==%$model%");
echo '<table class="param-model">';
echo $sn = $modx->runSnippet('getResources',$arr);
echo '</table>';
Кто чем подскажет, поможет, буду благодарен обыскал всё, сам почти не разбираюсь в модексе вообще, по этому прошу помощи, нашёл что сортировку можно выполнить по sortbyTV — Сортировка по TV. Указать имя TV. А как и что не понятно. Убрать ссылку в меню саму на себя (устранения циклических ссылок)
Вот это меню, тут как я понял надо написать условие, если повторяется то оборачивать в спан, но как это правильно сделать, подскажите пожалуйста чайник в модексе
<div class="nav-wrap js-add-mm" data-order="1">
<div class="nav screen">
<div class="container">
<div class="nav-bar clearfix">
<ul class="top-menu">
<li class="folder f-1 top-menu__list js-top-menu-list ">
<a class="js-top-menu-link" href="[[~2]]"[[act? &id=`2` &cid=`[[*id]]` &cpid=`[[*parent]]`]]>
<span class="js-top-menu-name">О БРЕНДЕ</span>
<span class="top-menu__arr js-top-menu-arr"></span>
</a>
<div class="nav-submenu screen top-menu__submenu-wrap js-top-menu-sub active">
[[Wayfinder? &startId=`2` &level=`1`]]
</div>
</li>
<li class="folder f-2 top-menu__list js-top-menu-list">
<a class="js-top-menu-link" href="[[~15]]"[[act? &id=`15` &cid=`[[*id]]` &cpid=`[[*parent]]`]]>
<span class="js-top-menu-name">ПРОДУКЦИЯ</span>
<span class="top-menu__arr js-top-menu-arr"></span>
</a>
<div class="nav-submenu-product screen top-menu__submenu-wrap js-top-menu-sub active">
[[Wayfinder? &startId=`15` &level=`1`]]
</div>
</li>
<li class="nav-sub-formtop-menu__list js-top-menu-list">
<a class="js-top-menu-link" href="[[~3]]"[[act? &id=`3` &cid=`[[*id]]` &cpid=`[[*parent]]`]]>
<span class="js-top-menu-name">ПОДБОР ЗАПЧАСТЕЙ</span>
</a>
</li>
<!-- <li class="nav-link-shoptop-menu__list js-top-menu-list">-->
<!-- <a class="js-top-menu-link" href="[[~12]]" target="_blank">-->
<!-- <span class="js-top-menu-name">ИНТЕРНЕТ-МАГАЗИН</span>-->
<!-- </a>-->
<!--</li>-->
<li class="folder f-3 top-menu__list js-top-menu-list">
<a class="js-top-menu-link" href="[[~13]]"[[act? &id=`13` &cid=`[[*id]]` &cpid=`[[*parent]]`]]>
<span class="js-top-menu-name">ГДЕ КУПИТЬ</span>
<span class="top-menu__arr js-top-menu-arr"></span>
</a>
<div class="nav-submenu-partners screen top-menu__submenu-wrap js-top-menu-sub active">
[[Wayfinder? &startId=`13` &level=`1`]]
</div>
</li>
<li class="top-menu__list js-top-menu-list">
<a class="js-top-menu-link" href="[[~14]]"[[act? &id=`14` &cid=`[[*id]]` &cpid=`[[*parent]]`]]>
<span class="js-top-menu-name">КОНТАКТЫ</span>
</a>
</li>
</ul>
</div>
</div>
</div>
</div>