Как сортировать раздел по алфавиту?

Бьюсь уже неделю с этим вопросом. Раньше никогда не доводилось работать с МОД Иксом. Подскажите пожалуйста, как сортировать весь раздел по алфавиту?

У меня MODX Revolution 2.2.2-pl (traditional). Именно вот этот раздел www.kitchen812.ru/kuxonnyie-salonyi/

Всем заранее спасибо!
Вячслав
12 октября 2015, 09:10
modx.pro
2 146
0

Комментарии: 5

Максим Кузнецов
12 октября 2015, 12:17
0
Если вам нужно сортировать отображение раздела по умолчанию, то в выводящем сниппете допишите параметры:
&sortby=`pagetitle` &sortdir=`ASC`
— пример актуален для сниппетов семейства pdoTools.
(параметры могут отличаться, если выводящий сниппет другой — укажите, чем вы вызываете раздел.)

Если вам нужно сортировать его по клику, то необходимо или дописать перехват сниппетом get-значений для сортировки или воспользоваться готовым решением, как mFilter2.
    Вячслав
    12 октября 2015, 12:35
    0
    Честно, я даже не представляю, чем выводится. Вот код, возможно где то здесь есть ошибка, нодо этого была кривая сортировка с кодом
    <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=`Перейти на главную.` 
                              &currentAsLink=`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>
      Максим Кузнецов
      12 октября 2015, 12:48
      0
      [[!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"}`

      Важно: сейчас у вас реализован функционал, при котором перехватываются значения сортировки из адресной строки. При вышеописанных изменениях он пропадет. Если его необходимо сохранить — нужно будет дописать небольшой сниппет для переключения между желаемой сортировкой и вбитой в адресной строке.
    Вячслав
    12 октября 2015, 13:16
    0
    К сожалению, не помогло. Я изменил это

    $sortby= $_GET['sortbyTV'] 
    $sortdir= $_GET['sortdirTV']
    на это
    &sortby=`{"pagetitle":"ASC"}`
    но ничего не произошло
      Вячслав
      12 октября 2015, 13:16
      0
      сортировка такая же кривая
        Авторизуйтесь или зарегистрируйтесь, чтобы оставлять комментарии.
        5