We launched new forums in March 2019—join us there. In a hurry for help with your website? Get Help Now!
    • 15286
    • 79 Posts
    Нашел способ сделать выборку данных при выводе Ditto. Не хватает знаний для реализации.

    1. Есть форма в дропдаунами, выбираем параметры. Пишем данные в сессию (всё работает).
    2. Вытаскиваем данные из сеcсии с помощью Снипета, формируем фильтр для Ditto, Запускаем Ditto с параметрами.

    В результате фильтр выборки закрепляется сессией и возврат на страницу фильтрации имеет сохранённые данные.
    Суть проблемы: есть необходимый Снипет, но он к сожалению формирует только 2 фильтра, а требуется выборка по 4-7 значениям.

    <?php
    global $modx;
    $flt ="";
     
    // Poluchaem dannye
    $param_one=mysql_escape_string($_SESSION['type_article']);
    $param_two=mysql_escape_string($_SESSION['color_article']);
     
    // Filtruem
    $param_one = htmlspecialchars(stripslashes($param_one));
    $param_two = htmlspecialchars(stripslashes($param_two));
     
    // Esli "EMPTY" stavim  NULL
    if($param_one==""){$param_one=NULL;}
    if($param_two==""){$param_two=NULL;}
     
    // Formiruem filtr
    $flt_one="tvtype_article,$param_one,1";
    $flt_two="tvcolor_article,$param_two,1";
     
    // Esli "EMPTY" 
    if(empty($param_one) AND $param_two)
    {
    $flt="$flt_two";
    }
    // Esli "EMPTY"
    if(empty($param_two) AND $param_one){
    $flt="$flt_one";
    }
    // Formiruem filtry s razelitelem  "|"
    if($param_two AND $param_one){
    $flt="$flt_one"."|"."$flt_two";
    }
    // Esli "EMPTY" vivodim vse
    if($param_two=="" AND $param_one==""){
    $flt="";
    }
    // Go Ditto
    $result=$modx->runSnippet('Ditto', array('id' => 'viborka', 'startID'=>'16','tpl'=>'viborka','filter'=>$flt,'noResults'=>'Empty...'));  
    $modx->setPlaceholder('search_rezult',$D); 
     
    // Return
    return $result;
    
    ?>
    



    Помогите...