Разделы

  
 

Получение ранее введенного значения для поля формы - пока единственный тип - text.

Создаем сниппет: getRequerstValue. Сниппет будет принимать одно единственное значение — это указатель для массива _REQUEST по которому необходимо получить значение. В сниппет записываем
<?php
if(!empty($_REQUEST[$value])){
        echo $_REQUEST[$value];
    }
?>

Применять эту простейшую конструкцию очень легко: рассмотрим на простом примере
<input type="text" name="title" value="[[getRequestValue?&value=`title`]]"/>

При каждой отправке значений посредством сабмитинга формы мы будем получать введенное значение в данном поле.

Эта вещица будет полезна при реализации фильтрации на сайте для сохранения введенных ранее значений.

В настоящее время в планах реализовать механизм сохранения значения для — сделаю последующим UPD

Фильтрация каталога для юзера с помощью Ditto - Request

Здравствуйте.
Возникла такая идея — сделать с помощью Ditto -> request фильтрацию по каталогу (со стороны пользователя), используя html-форму(checkbox или multiple select) где использовать тэги, как параметры для фильтрации.
Напомню, что расширение Request позволяет ditto принимать и обрабатывать параметры, пришедшие методом GET.
Таким образом в ditto-параметр &tags можно поместить значения какого-либо TV и сделать фильтр соответствующих документов, отправляя данные с html-формы методом get.

Проблема в том, что html форма, которую придётся использовать для формирования GET запроса, передаёт параметры поочереди, так, что ditto обрабатывает только самую поледнюю переменную.

index.php?id=1&ditto_tags=param1&ditto_tags=param2&ditto_tags=param3


А request понимает, только когда тэги разделены запятой

index.php?id=1&ditto_tags=param1,param2,param3


Какие могут быть способы решения проблемы?
(Может с помощью javascript «научить» html-форму передавать параметры через запятую, или изменить сам request, чтобы понимал поочерёдные параметры?)

Может быть, подобный фильтр реализуем как-то подругому?

Спасибо большое за внимание к проблеме!

РЕШЕНИЕ:

Создан сниппет [[GetStringMod]], который преобразует полученный методом GET значения параметров, в вид, приемлемый для ditto, т.е. поочередно, через запятые;
В моем примере три параметра формы priority, place, style (принимают значения из input selelct'а).


$Priority = isset($_GET["priority"]) ? $_GET["priority"] : false;
$Place = isset($_GET["place"]) ? $_GET["place"] : false;
$Style = isset($_GET["style"]) ? $_GET["style"] : false;

if ($Priority=="priority") $Priority="";
if ($Place=="place") $Place="";
else $Place=','.$Place;
if ($Style=="style")$Style="";
else $Style=','.$Style;

echo $Priority.$Place.$Style;


Таким образом GET запрос например
index.php?tags=priority1&tags=style1&tags=place1
преобразуется в priority1,style1,place1

Далее он(сниппет) помещен в вызов ditto

[!Ditto? &startID=`id` &tpl=`list-output` &display=`all` &tagDelimiter=`,` &tags=`[!GetStringMod!]` &tagData=`priority,style,place` &tagMode=`onlyTags`  &sortBy=`createdon` &sortDir=`ASC` &extenders=`request`!]


И дитто выбирает значения подкаталога только по пришедшим, с помощью расширения request, тэгам (параметр &tags)
Всё, надеюсь это кому-нибудь пригодится :)