We launched new forums in March 2019—join us there. In a hurry for help with your website? Get Help Now!
    • 4036
    • 239 Posts
    Есть у меня один проект, и вот столкнулась с проблемой разделения страниц http://www.zakagite.ru/index.php?id=27
    Их стало много, "рвут" страницу sad

    И все было бы легко и просто, если бы там использовался чистый Ditto.
    Так как "чистый" Ditto по задачи фильтрации не подходил - пришлось изворачиваться и мне написали вот такой сниппет:
    <?php
    /**
     * Wrapper for Ditto
     * Email: [email protected]
     * ICQ: 199315127
     */
    if($_GET['show']=='all'){ 
        $params['display']='all';
    }else{
        $params['display'] = '20';
    }
    
    $startID = isset($startID) ? $startID : $modx->documentIdentifier;
    //for_men,on
    $filter = (isset($filter))? $filter : "";
    //articul
    $sortBy = (isset($sortBy))? $sortBy : "price";
    
    if($_SESSION['onsklad'] == '1'){
    	if(strlen($filter)>0){
    		$params['filter'] = 'sklad,в наличии,1|'.$filter;		
    	}else{
    		$params['filter'] = 'sklad,в наличии,1';	
    	}	
    }
    
    if(is_numeric($_GET['sort'])){
    	$sort = $_GET['sort'];
    	if($sort == 1){
    		$params['sortBy'] = 'price';
    		$params['sortDir'] = 'ASC';
    	}
    	else if($sort == 2){
    		$params['sortBy'] = 'price';
    		$params['sortDir'] = 'DESC';
    	}else{
    		$params['sortBy'] = $sortBy;
    		if($sortBy == 'price'){
    			$params['sortDir'] = 'DESC';
    		}
    	}
    }
    
    $params['parents'] = $startID;
    $params['tpl'] = 'shopStuff';
    $params['depth'] = '5';
    $params['hideFolders'] = '1';
    $params['paginate'] = '1';
    $params['id'] = 'split';
    	
    print $modx->runSnippet('Ditto', $params);
    ?>


    Так как он все равно на основе Ditto работает, то я добавила $params[’id’] = ’split’;

    Вот вызов этого сниппета:
    [[DittoWrapper? &startID=`2` &tpl=`shopStuff` &depth=`5` &hideFolders=`1` &paginate=`1` &display=`20` &filter=`for_women,on` &sortBy=`articul` &sortDir=`ASC`]]
    [[splitPagination? &id=`split` &pagesToShow=`10` &constantEndCount=`3` &return=`1`]]
    <div align="left"><strong>Страницы:</strong> [+splitPages+]</div>
    


    И не работает, страницы вообще не выводит sad
    Не могу разобраться, помогите, а?
      Портфолио - http://wowstudio.pro
      • 16111
      • 101 Posts
      Я бы вообще не сталбы писать пхп снипет, для того, чтобы пагинаторы перестали рвать страницу, а обошёлся бы элементарным ЖС скриптом.
        Basic Manager
        Хочешь ускорить развитие Basic Manager? Хочешь создавать невероятно красивые фотогалереи и слайдшоу за 1 клик? Пожертвуй деньги на развитие плагина, WMR: R148348561691. Помни, что даже 50 рублей являются стимуляцией к разработке.

        Я в контакте
        • 4036
        • 239 Posts
        Quote from: kobezzza at Oct 27, 2010, 06:18 PM

        Я бы вообще не сталбы писать пхп снипет, для того, чтобы пагинаторы перестали рвать страницу, а обошёлся бы элементарным ЖС скриптом.

        Каким?
          Портфолио - http://wowstudio.pro
          • 785
          • 2,113 Posts
          Quote from: kobezzza at Oct 27, 2010, 06:18 PM

          Я бы вообще не сталбы писать пхп снипет, для того, чтобы пагинаторы перестали рвать страницу, а обошёлся бы элементарным ЖС скриптом.
          И чем это лучше – при загрузке, даже если нужна только первая страница, грузится все, а еще и дополнительные скрипты. На некоторых мобильных устройствах работать не будет. Поисковые системы воспринимают как одну страницу, и, скорее всего, сходят с ума от объема – в итоге не ранжируют страницу высоко. Ссылки на внутренние страницы послать кому-то нельзя, кнопка браузера «назад», скорее всего, не работает.
          А по теме – подсказать не могу, так как для разных нестандартных выводов я использую полностью написанные сниппеты с разбивкой на страницы, не обращаясь к дитто. В случае с дитто надо разбираться…
            Создание сайтов на MODx, поддержка сайтов, поисковая оптимизация, программирование, копирайтинг
            Статьи о MODx, регулярно новые публикации
            • 16111
            • 101 Posts
            И чем это лучше
            Ваша критика не аргументированна, а лучше по многим параметрам:

            • Это проще;
            • Можно избавиться от лишних перегрузок страницы и запросов к серверу;
            • Пользователи без ЖС (хотя моё имхо: если нету ЖС или ты на ИЕ6 - твои проблемы) смогут пользоваться пагинатором тоже;
            • Навигация не нарушается (да и даже если бы и нарушалась, то можно использовать якорные ссылки и будет счастье);
            • В данном примере используется снипет Shopkeeper с JS фреймворком Jquery, так что дополнительный код займёт от силы 500 байт.

            грузится все
            Грузятся только ссылки.

            Ну если у вас нереально много ссылок (больше 10 000), то может данный метод не лучший, в так - все претензии не уместны.

            Каким?
            Ну если количество ссылок больше некоторого числа, то можно взять позицию активной ссылки, показать следующие 3 к примеру (если такие есть) и последний, а остальные захайдить. Активная страница вычисляется исходя из GET переменной. Кнопки << и >> просто меняют логическую позицию активной страницы - в результате нету прегрузок, нету запросов к серверу, всё очень быстро работает)
              Basic Manager
              Хочешь ускорить развитие Basic Manager? Хочешь создавать невероятно красивые фотогалереи и слайдшоу за 1 клик? Пожертвуй деньги на развитие плагина, WMR: R148348561691. Помни, что даже 50 рублей являются стимуляцией к разработке.

              Я в контакте
              • 4036
              • 239 Posts
                Портфолио - http://wowstudio.pro