За кэш ты наверное пошутил? А насчет &debug попробую...
Попробуйте почистить кеш, и проверте весь код в Дитто в форме и в снипетах.
Попробуйте воспользоваться функцией &debug в Дитто, что бы посмотреть по каким критериям работают фильтра
Parse error: syntax error, unexpected '[' in \assets\snippets\ditto\classes\ditto.class.inc.php(566) : eval()'d code on line 1
<form> <select name="ditto_sortDir" onchange="submit()"> <option value="ASC" [!isselected? &name=`ditto_sortDir` &value=`ASC`!]>По возрастанию</option> <option value="DESC" [!isselected? &name=`ditto_sortDir` &value=`DESC`!]>По убыванию</option> </select> </form>
[!Ditto? &parents=1 &display=1 &tpl=xxx &paginate=1 &paginateAlwaysShowLinks=1 &sortBy=`price` &sortDir=ASC &extenders=`request` !]
<?php if (isset ($_GET[$name])&& $_GET[$name]==$value) return 'selected="selected"'; else return ''; ?>
<form method="POST"> <select name="ditto_sortDir" onchange="submit()"> <option value="ASC" [!isselected? &name=`ditto_sortDir` &value=`ASC`!]>По возрастанию</option> <option value="DESC" [!isselected? &name=`ditto_sortDir` &value=`DESC`!]>По убыванию</option> </select> </form>
[!Ditto? &parents=1 &display=1 &tpl=xxx &paginate=1 &paginateAlwaysShowLinks=1 &sortBy=`price` &sortDir=ASC &extenders=`request` !]
<?php if (isset ($_POST[$name])&& $_POST[$name]==$value) return 'selected="selected"'; else return ''; ?>
<form method="POST"> <select name="ditto_sortDir"> <option value="ASC" [!isselected? &name=`ditto_sortDir` &value=`ASC`!]>По возрастанию</option> <option value="DESC" [!isselected? &name=`ditto_sortDir` &value=`DESC`!]>По убыванию</option> </select> <select name="ditto_sortBy"> <option value="pagetitle" [!isselected? &name=`ditto_sortBy` &value=`pagetitle`!]>По Названию</option> <option value="price" [!isselected? &name=`ditto_sortBy` &value=`price`!]>По Цене</option> </select> <input type="submit" value="OK" /> </form>
&filter=`product,@EVAL return $_POST['product'];,7|category,@EVAL return $_POST['category'];,7`
&filter=`product,mufta,2|product,@EVAL return $_POST['product'];,7|category,@EVAL return $_POST['category'];,7`
@EVAL return isset($_POST['category'])?$_POST['category']:'ASC';
wikibooks(ru) Ditto(en) | Wayfinder e-book | Заметки и о MODxQuote from: wowkas at Oct 18, 2010, 06:05 PM
Еще добавил сортировку по названию и по цене вместе:
<form method="POST"> <select name="ditto_sortDir"> <option value="ASC" [!isselected? &name=`ditto_sortDir` &value=`ASC`!]>По возрастанию</option> <option value="DESC" [!isselected? &name=`ditto_sortDir` &value=`DESC`!]>По убыванию</option> </select> <select name="ditto_sortBy"> <option value="pagetitle" [!isselected? &name=`ditto_sortBy` &value=`pagetitle`!]>По Названию</option> <option value="price" [!isselected? &name=`ditto_sortBy` &value=`price`!]>По Цене</option> </select> <input type="submit" value="OK" /> </form>
&filter=xxx - не использовал ранее и пока нет необходимости, а данные передаются с помощью стандартного дополнения ditto &extendert=request - и все дела, я все подробно описал в постах выше, читай внимательно и все получится, без доп. спиппентов
Слушай только я не совсем понимаю как ты собираешься передавать значение ASC или DESC в &sortDir=, как без снипета его передать я ума не приложу.
Всё бы хорошо, всё бы отлично но возник ещё один вопрос, как заставить Ditto выводить доки если в форме ещё нечего не задано, у меня стоят такие фильтра
&filter=`product,@EVAL return $_POST['product'];,7|category,@EVAL return $_POST['category'];,7`
я пытался к ним подставить
&filter=`product,mufta,2|product,@EVAL return $_POST['product'];,7|category,@EVAL return $_POST['category'];,7`
Но нечего не показывает, так как фильтра то работают, и они ждут переменных с формы, а коль их нет, то и нечего не будут показывать.
Можно это как-то обойтись без хирургического вмешательства в снипеты, тобишь без подмены ditto ?