Как сортировать раздел по алфавиту?
Бьюсь уже неделю с этим вопросом. Раньше никогда не доводилось работать с МОД Иксом. Подскажите пожалуйста, как сортировать весь раздел по алфавиту?
У меня MODX Revolution 2.2.2-pl (traditional). Именно вот этот раздел www.kitchen812.ru/kuxonnyie-salonyi/
Всем заранее спасибо!
У меня MODX Revolution 2.2.2-pl (traditional). Именно вот этот раздел www.kitchen812.ru/kuxonnyie-salonyi/
Всем заранее спасибо!
Комментарии: 5
Если вам нужно сортировать отображение раздела по умолчанию, то в выводящем сниппете допишите параметры:
(параметры могут отличаться, если выводящий сниппет другой — укажите, чем вы вызываете раздел.)
Если вам нужно сортировать его по клику, то необходимо или дописать перехват сниппетом get-значений для сортировки или воспользоваться готовым решением, как mFilter2.
&sortby=`pagetitle` &sortdir=`ASC`
— пример актуален для сниппетов семейства pdoTools. (параметры могут отличаться, если выводящий сниппет другой — укажите, чем вы вызываете раздел.)
Если вам нужно сортировать его по клику, то необходимо или дописать перехват сниппетом get-значений для сортировки или воспользоваться готовым решением, как mFilter2.
Честно, я даже не представляю, чем выводится. Вот код, возможно где то здесь есть ошибка, нодо этого была кривая сортировка с кодом
<a href="[[~[[*id]]? &sort=`pagetitle` &dir=`ASC`]]"><img src="images/new/ASC.png" alt="Сортировка от А до Я" title="Сортировать от А до Я"/></a>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta name="robots" content="all" />
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />
<base href="[[++site_url]]" />
<title>[[*pagetitle]]</title>
<meta name="description" content="[[*description]]" />
<meta name="keywords" content="[[*keywords]]">
<meta name='yandex-verification' content='6c59f6725f819694' />
<link href="template/css/layout.css" rel="stylesheet" type="text/css" />
<script type="text/javascript" src="template/js/jquery-1.6.js" ></script>
<script type="text/javascript" src="template/js/bg.js" ></script>
<script type="text/javascript" src="http://userapi.com/js/api/openapi.js?49"></script>
<script type="text/javascript">
VK.init({apiId: 2937766, onlyWidgets: true});
</script>
</head>
<!--[if IE 6]>
<style type="text/css">
body {
background: url(about:blank);
background-attachment: fixed;
}
#page-background {
position: absolute;
top: expression(document.getElementsByTagName("body")[0].scrollTop + "px");
}
</style>
<![endif]-->
<script type="text/javascript">
$(function() {
var offset = $("#left").offset();
var topPadding = 15;
$(window).scroll(function() {
if ($(window).scrollTop() > offset.top) {
$("#left").stop().animate({marginTop: $(window).scrollTop() - offset.top + topPadding});
}
else {$("#left").stop().animate({marginTop: 0});};});
});
</script>
<script language="JavaScript">
function createBookmark(name) {
we = window.external;
if (!we) {
return true;
} else {
we.addFavorite('http://www.kitchen812.ru/', name);
return false;
}
}
</script>
</head>
<body>
<!--LiveInternet counter--><script type="text/javascript"><!--
new Image().src = "//counter.yadro.ru/hit?r"+
escape(document.referrer)+((typeof(screen)=="undefined")?"":
";s"+screen.width+"*"+screen.height+"*"+(screen.colorDepth?
screen.colorDepth:screen.pixelDepth))+";u"+escape(document.URL)+
";"+Math.random();//--></script><!--/LiveInternet-->
<div id="page-background">
<img src="template/images/bg.jpg" width="100%" alt="Кухни" />
</div>
<div id="all">
<div id="wrapper">
<div id="top">
<div id="searchform">
<form action="/kuxonnyie-salonyi/" method="get">
<table>
<tr>
<td>
<select name="metro">
<option value="">Выберите станцию метро</option>
[[!tagLister? &tv=`11` &tpl=`metro` &limit=`100` &sortBy=`tag`]]
</select>
</td>
<td>
<input type="submit" value="Найти">
</td>
</tr>
</table>
</form>
</div>
<div id="toptext"><h1>Справочник кухонной мебели Санкт-Петербурга</h1>
</div>
<div id="searchform">
[[!SimpleSearchForm? &tpl=`search` &landing=`8`]]
</div>
<div id="topmenu">
[[!Login]]
</div>
</div>
<div id="content">
<div id="left">
<div id="leftbg">
<div id="left_t">
<div id="left_b">
<div id="menu">
[[Wayfinder?
&level=`1`
&startId=`0`
&outerClass=`menus`
&outerTpl=`leftmenu`
&rowTpl=`row`
]]
</div>
</div>
</div>
</div>
<div>
[[$leftbanner?]]
</div>
</div>
<div id="right">
<div id="modules">
<div class="module">
<div>
[[$topsubbanner?]]
</div>
<div id="foto">
[[!getPage?
&elementClass=`modSnippet`
&element=`getResources`
&tpl=`salonlist`
&includeTVs=`1`
&processTVs=`1`
&hideContainers=`1`
&depth=`1`
&limit=`10`
&parents=`16`
$sortby= $_GET['sortbyTV']
$sortdir= $_GET['sortdirTV']
&sortbyTVType=`integer`
&pageVarKey=`page`
&tvFilters=`metro==%[[!Metro?]]%`
&pageFirstTpl=`<li class="control"><a [[+classes]] href="[[+href]]">Первая</a></li>`
&pageLastTpl=`<li class="control"><a [[+classes]] href="[[+href]]">Последняя</a></li>`
]]
<ul class="pages">
[[!+page.nav ]]
</ul>
<div class="clear"></div>
</div>
</div>
</div>
<div id="text">
<div>
[[Breadcrumbs?
&homeCrumbTitle=`Главная`
&homeCrumbDescription=`Перейти на главную.`
¤tAsLink=`0`
]]
</div>
<div>
<h1>[[*pagetitle]]</h1>
[[*content]]
</div>
</div>
</div>
</div>
</div>
<div class="guarantor">
</div>
</div>
<div id="bottom">
<!-- Yandex.Metrika counter -->
<script type="text/javascript">
(function (d, w, c) {
(w[c] = w[c] || []).push(function() {
try {
w.yaCounter14830867 = new Ya.Metrika({id:14830867, enableAll: true, webvisor:true});
} catch(e) {}
});
var n = d.getElementsByTagName("script")[0],
s = d.createElement("script"),
f = function () { n.parentNode.insertBefore(s, n); };
s.type = "text/javascript";
s.async = true;
s.src = (d.location.protocol == "https:" ? "https:" : "http:") + "//mc.yandex.ru/metrika/watch.js";
if (w.opera == "[object Opera]") {
d.addEventListener("DOMContentLoaded", f);
} else { f(); }
})(document, window, "yandex_metrika_callbacks");
</script>
<noscript><div><img src="//mc.yandex.ru/watch/14830867" style="position:absolute; left:-9999px;" alt="" /></div></noscript>
<!-- /Yandex.Metrika counter -->
<div class="clear"></div>
</div>
</body>
</html>
<script type="text/javascript" src="http://userapi.com/js/api/openapi.js?49"></script>
<script type="text/javascript">
VK.init({apiId: 2937766, onlyWidgets: true});
</script>
</head>
[[!getPage?
&elementClass=`modSnippet`
&element=`getResources`
&tpl=`salonlist`
&includeTVs=`1`
&processTVs=`1`
&hideContainers=`1`
&depth=`1`
&limit=`10`
&parents=`16`
$sortby= $_GET['sortbyTV']
$sortdir= $_GET['sortdirTV']
&sortbyTVType=`integer`
&pageVarKey=`page`
&tvFilters=`metro==%[[!Metro?]]%`
&pageFirstTpl=`<li class="control"><a [[+classes]] href="[[+href]]">Первая</a></li>`
&pageLastTpl=`<li class="control"><a [[+classes]] href="[[+href]]">Последняя</a></li>`
]]
— в этом вызове замените строчки
$sortby= $_GET['sortbyTV']
$sortdir= $_GET['sortdirTV']
на:
&sortby=`{"pagetitle":"ASC"}`
Важно: сейчас у вас реализован функционал, при котором перехватываются значения сортировки из адресной строки. При вышеописанных изменениях он пропадет. Если его необходимо сохранить — нужно будет дописать небольшой сниппет для переключения между желаемой сортировкой и вбитой в адресной строке.
К сожалению, не помогло. Я изменил это
$sortby= $_GET['sortbyTV']
$sortdir= $_GET['sortdirTV']
на это&sortby=`{"pagetitle":"ASC"}`
но ничего не произошло
сортировка такая же кривая
Авторизуйтесь или зарегистрируйтесь, чтобы оставлять комментарии.