Разделы

  
 

Revo фильтр по цене

Есть revo последней версии
как сделать фильтр по цене такого плана:

задача тривиальная наверное но я никогда не делал и не знаю.
Натолкните на истинный путь

[Evo] Логика &Filter в Ditto (РЕШЕНО)

Здраствуйте! Возник вопрос по поводу логики &Filter в Ditto когда делаю поиск за критериями. Для начала я сделал только два критерия.
Вызвал Ditto
[[Ditto? &tpl=`Apartments` &depth=`3` &parents=`27,8,9,10` &filter=`tvsdelka,@EVAL return $_POST['sdelka'];,1|&filter=`tvtup_objekta,@EVAL return $_POST['tup_objekta'];,1` &noResults=`Извините, недвижимости по Вашему запросу не найдено.`]]


ну и соответственно саму форму поиска

<form action="index.html" method="post">
Сделка:<select name="sdelka">
<option value="prodaja">Продажа</option>
<option value="arenda">Аренда</option> 
<option value="kuply">Куплю</option>
<option value="snimu">Сниму</option>
</select>
<br /><br /> Тип обьекта:<select name="tup_objekta">
<option value="novostroyki">Новостройки</option> 
<option value="kvartiru">Квартиры</option>
<option value="komnatu">Комнаты в м/с</option>
<option value="garazi">Гаражи</option>
<option value="komkv">Комнаты в квартире</option> 
<option value="chasdom">Частные дома</option>
<option value="zemlya">Земельные участки</option>
<option value="dacha">Дачные участки</option>
<option value="pom">Помещения</option> 
<option value="office">Офисы</option>
<option value="shop">Магазины</option>
<option value="sklad">Склады</option>
<option value="comp">Комплексы</option>
</select>
<input name="Submit" type="submit" value="Просмотр" />
</form>

Поиск осуществляеться но логика его неправильная. В фильтре у меня стоит знак | Что означает логическому И Но читает его как ИЛИ
Тоесть если у меня есть в поиске документ с параметрами TV (Сниму и Офис) То поиск выведет етот документ по всем параметрам первого TV (куплю и офис) (сниму и офис) (аренда и офис) (продажа и офис)
Я уже перерыл много статтей но так ничего поповоду логики ненашёл. Помогите!

Ditto фильтр сегодня, завтра в EVO

Хочу прикрутить фильтр по дате из TV.
Выборка по сегодня, завтра.
Подскажите куда копать. Знаю что в Ditto есть фильтр скрывающий дочерние документы, если дата дочерней новости прошла. Может есть фильтр показывающий по сегодня и завтра?



UPD. Проверьте пожалуйста, делал по примеру:

1)мой tv с датой [*myDate*]
тип: Дата
Визуальный компонент: Unixtime

2)создал чанк фильтра {{filter}}
<form class="filter">
		<ul id="date">
			<li class="c"><a href="#" id="show_all">Все</a></li>
			<li><a href="#" name="today" id="today">Сегодня</a></li>
			<li><a href="#" name="tomorrow" id="tomorrow">Завтра</a></li>
		</ul>
</form>


3) создал снипет [[filter]]
<?php
$today=Date('d-m-Y'); // today
$tomorrow=Date('dm-Y',mktime(0,0,0,date('m'),date('d')+1,date('y'))); // next day

print "
<form method='get'>
<input type='submit' name='today' value='today' />
<input type='submit' name='tomorrow' value='tomorrow' />
</form>
";

if($_GET['submit'] == 'today'){
// today
}elseif($_GET['submit'] == 'tomorrow'){
// tomorrow
}else{
  print "выберите today или tomorrow"
}
?>


4)вызов Ditto:
[[Ditto? &parents=`416` &orderBy=`myDate ASC` &dateSource=`myDate` &dateFormat=`%A | %d.%m | %H:%M`  &language=`ru` &tagData=`documentTags` &tpl=`ditto_afisha2` &extenders=`summary` &summarize=`50` &paginate=`0` &paginateAlwaysShowLinks=`1]]
  • 0
  • 6 февраля 2012, 14:44
  • Trent
  • 1

Поиск/Фильтр в Revo

Добрый день! Есть архив журналов. Нужно сделать поиск по 2м параметрам: год и номер. Выводить нужно только один выбранный номер. Подскажите как лучше его сделать. Заранее спасибо.
  • 0
  • 5 января 2012, 21:49
  • kushnir
  • 1

Хитрая фильтрация в Дитто

Всем доброго дня.

Вопрос по фильтрации в Дитто такого плана:

Имеется ряд документов. У каждого документа имеются tv-параметры: event_date (дата публикации) и kol_dney (количество дней публикации).

Вывожу через Дитто из сниппета самый старый (по event_date) документ за последние 10 дней (т.е. самый первый):

<?php
$dit_prosh='';
$td = date('m-d-Y');
$today = explode("-", $td);
$day = $today[1];
$month = $today[0];
$year =  $today[2];


$timestamp2 = mktime(23, 59, 59, $month, $day, $year);
$timestamp3 = mktime(0, 0, 0, $month, $day-10, $year);


$dit_prosh = $modx->runSnippet(
        "Ditto",
        array('parents'=>'2',
              'dateSource' => 'event_date',
              'sortBy' => 'event_date',
              'sortDir' => 'ASC',
              'tpl' => 'tpl_baner',
              'summarize' => '1',
              'paginate' => '0',
              'noResults' => '',
              'filter' => 'event_date,'.$timestamp2.',4|event_date,'.$timestamp3.',3',
              'id' => 'banner'
        )
);


return $dit_prosh;
?>


Как видно из фильтра, выборка ограничивается сегодняшним днем минус десять дней… А теперь вопрос: Как изменить фильтр, чтобы происходил учет количества дней вывода (tv параметр kol_dney — не может быть больше 10 дней), т.е. если документ был опубликован 5 дней назад (в текущий фильтр он попадает), но у него стоит всего 3 дня вывода (параметр kol_dney) — фильтр должен его задерживать, а если документ был опубликован 5 дней назад и у него стоит 6 дней вывода — фильтр должен его пропустить… Просто дата отмены публикации документа не подходит — документ должен быть доступен и в дальнейшем, просто не попадать в эту выборку.

В общем, идея такая… Буду очень благодарен за наводку… пробовал через экстендер, но что-то не получается…

Filtr strWordCount [[REVO,EVO]]

Всем приятного дня! Выкладываю очередной фильтр strWordCount, так как нужен был в текущем проекте. По названию, вы уже поняли принцип этого фильтра. Иногда в проектах в pagetitle нужно отделить первое, второе или третие слово к примеру другим шрифтом или цветом.

( Читать дальше )

Возможно ли такое на MODx ?

Товарищи, неугомонный заказчик никак не прекратит эксперименты с видом и пинципом выбора тканей для диванов на своём магазине.

В этот раз ему понравилось вот такое решение.

Глаза округляются и встаёт вопрос возможно ли это чудо на MODx EVO (на нём стоит сайт) и если да — то кто возьмётся это сделать? Естесственно за плату.

Фильтр по tv для Evo

Я вот так вот решил этот вопрос

cat и mat это у меня категории и материалы, можете свои названия придумывать


<?php

$filter = $add = ""; // устанавливаем изначально пустое значение для переменных filter и add

$cat = $_GET[cat]; // получаем данные из select`а "cat"
$mat = $_GET[mat];  // получаем данные из select`а "mat"

if($_GET[cat] >> 0) {
	$filter .= "|"."cat,".mysql_escape_string($_GET[cat]).",1";
} // проверяем выбрано ли что-то в селекте "cat", если выбрано то идёт подстановка фильтра в Дитто

if($_GET[mat] >> 0) {
	$filter .= "|"."mat,".mysql_escape_string($_GET['mat']).",1";
} // то же самое с селектом "mat"

$id = $modx->documentIdentifier; // заносим в переменную id документа на котором будет вызван сниппет

?>

// форма с двумя селектами.

<form method="get" id="GET" action="">
<select name="mat" onChange="this.form.submit();">
<option value="">Все материалы</option>
<option <?php if ($_GET[mat] == 1) { echo selected; } ?> value="1">Шинилл</option>
<option <?php if ($_GET[mat] == 2) { echo selected; } ?> value="2">Флок</option>
<option <?php if ($_GET[mat] == 3) { echo selected; } ?> value="3">Гобелен</option>
<option <?php if ($_GET[mat] == 4) { echo selected; } ?> value="4">Кожезаменитель</option>
<option <?php if ($_GET[mat] == 5) { echo selected; } ?> value="5">Терможаккард</option>
<option <?php if ($_GET[mat] == 6) { echo selected; } ?> value="6">Велюр</option>
</select>
<select name="cat" onChange="this.form.submit();">
<option value="">Все категории</option>
<option <?php if ($_GET[cat] == 1) { echo selected; } ?> value="1">Категория 1</option>
<option <?php if ($_GET[cat] == 2) { echo selected; } ?> value="2">Категория 2</option>
<option <?php if ($_GET[cat] == 3) { echo selected; } ?> value="3">Категория 3</option>
<option <?php if ($_GET[cat] == 4) { echo selected; } ?> value="4">Категория 4</option>
<option <?php if ($_GET[cat] == 5) { echo selected; } ?> value="5">Категория 5</option>
<option <?php if ($_GET[cat] == 6) { echo selected; } ?> value="6">Категория 6</option>
<option <?php if ($_GET[cat] == 7) { echo selected; } ?> value="7">Категория 7</option>
<option <?php if ($_GET[cat] == 8) { echo selected; } ?> value="8">Категория 8</option>
</select>
<?php
print "<br /><br /></form>";

print "[[Ditto? &parents=`66` &summarize=`36` &paginate=`1` &paginateAlwaysShowLinks=`0` &tpl=`show_material` &depth=`4` &hideFolders=`1` &filter=`template,12,1".$filter."`]]";
print "<div style=\"clear:both\"></div>
<p>Показано с <strong>[+start+]</strong> по
<strong>[+stop+]</strong> из <strong>[+total+]</strong> материалов | Страница 
<strong>[+currentPage+]</strong> из <strong>[+totalPages+]</strong>
</p> ";
print "<div id=\"ditto_pages\">";
print "[+previous+] [+pages+] [+next+]";
print "</div>";
?>


Tv-параметры я создавал так:
Шинилл==1||Флок==2||Гобелен==3||Кожезаменитель==4||Терможаккард==5||Велюр==6

Значения параметров как вы видите равны значениям option в селекте mat.

Ну, на вид вроде всё просто
Вот тут пример http://www.mebeli-vld.ru/katalog/myagkaya-mebel/divanyi-evroknizhka/palermo.html
  • 0
  • 26 сентября 2011, 23:28
  • DustyArt
  • 6

Фильтр товаров по tv

Вот и моё решение данной проблемы ))

<?php
$filter = $checked_cat = $checked_mat = $add = "";
$cat = $_GET[cat];
$mat = $_GET[mat];
if($_GET[cat] >> 0) {
	$filter .= "|"."cat,".mysql_escape_string($_GET[cat]).",1";
	$checked_cat = " checked=\"checked\"";
	$add .= "?cat=".$cat."";
}
if($_GET[mat] >> 0) {
	$filter .= "|"."mat,".mysql_escape_string($_GET['mat']).",1";
	$checked_mat = " checked=\"checked\"";
	$add .= "&mat=".$mat."";
}

$id = $modx->documentIdentifier;

print "<div class=\"filter\">
<form method=\"get\" action=\"\">
<select name=\"mat\">
<option value=\"\">Материал</option>
<option value=\"2\"".$checked_mat.">Флок</option>
<option value=\"3\"".$checked_mat.">Гобелен</option>
</select>
<select name=\"cat\">
<option value=\"\">Выберите категорию</option>
<option value=\"1\"".$checked_cat.">Категория 1</option>
<option value=\"3\"".$checked_cat.">Категория 3</option>
</select>";

print "<br /><br />";

print "<input type=\"submit\" value=\"Показать\" class=\"button-filter\" />
</form>
</div>";

$url = $modx->makeUrl($id, '', '', 'full');

print '<script type="text/javascript"> 
$(document).ready(function(){ 
$("#brand-filter").change(function(){
window.location.href = "'.$url.'/" + "'.$add.'";
});
});
</script>';

print "<div class=\"items\">
[[Ditto? &parents=`1311` &summarize=`15` &paginate=`1` &paginateAlwaysShowLinks=`0` &tpl=`show_material` &depth=`4` &filter=`template,12,1".$filter."` &noResults=``]]
</div>";
?>
  • -1
  • 26 сентября 2011, 22:28
  • DustyArt
  • 4

Создание фильтра тканей к товару

Имеется страница товара (мягкая мебель), для которой нужно сделать показ доступных тканей для обивки с фильтрацией. Тканей в общем 500+ и делятся они:
1. По категориям (влияет на цену, но цена для всех тканей внутри одной категории одна и та же)
2. По материалу (не влияет на цену, делится на шинил, флок и тп)

При выборе ткани должен всплывать хелпер с выбором «основной» и «дополнительный» (радио-кнопки) выбраный пнкт просто добавляется к описанию товара в шопкипере.

Evo 1.0.4
Shopkeeper

ICQ 281973567
Skype dustyart
  • 0
  • 26 сентября 2011, 19:30
  • DustyArt
  • 2