• Уважаемый Гость! Если вы зарегистрировались на нашем форуме, значит вам нужна помощь! Мы всегда рады вам помочь, еще ни один пользователь не получил отказа! Но мы так же нуждаемся в Вашей поддержке. Проект полностью бесплатный, мы не имеем права требовать от вас денег, нам это и не нужно! Но от любой финансовой поддержки не откажемся. Проект развивается, но иногда очень тяжело его поддерживать, особенно в финансовом отношении. Если у вас есть возможность поддержать нас финансово, мы будем вам очень благодарны! С уважением, команда Оскласс Россия!
  • Изменение в правилах форума! В связи с огромным количеством вопросов поступающих в адрес технической поддержки мы решили изменить правила форума! Просим всех пользователей обратить внимание на данные изменения и четко их соблюдать!
  • Ребята, нуждаемся в программистах! Если хотите зарабатывать и есть время, пишите администраторам сайта. Есть база и инструменты, нужен опыт и знания =)
  • Уважаемые пользователи! На форуме появились разделы по работе с системой Yclas. Yclas - это скрипт доски объявлений. Нужны разработчики.

Реализация нового типа атрибута (от - до)

mgdn

Новичок
В плагине Realstate в сайдбаре с поиском достаточно неплохо реализована функция выбора "от - до" в виде ползунка. Но такой "фильтр" также бывает необходим и в других категориях, например с автомобилями для указания даты выпуска авто, или поиска по объему двигателя. Нечто похожее реализовано в плагине Custom attribute, но там это поле является текстовым: удобно на ПК, неудобно на телефоне. Гораздо удобнее если бы было два выпадающих списка.
Для наглядности можно посмотреть на сайте drom.ru к примеру, или на том же авито (но с мобильного).
Возможно, кто-то возьмется это сделать?..
 

djnavel

Модератор
плагин Custom attribute
search_form_fields.php
PHP:
<?php } elseif ($type == 'select') { ?>
<?php if ($search_limits) { ?>
<div class='search_limits'>
<label>от</label>
<select id="selectSmall-search" class='search_select'  name='<?php echo $name_min; ?>' value='<?php echo $value_min; ?>' >
<?php ca_select_options($id, $value_min); ?>
</select>
<label class='search_maximum-select' >до</label>
<select id="selectSmall-search" class='search_select'  name='<?php echo $name_max; ?>' value='<?php echo $value_max; ?>' >
<?php ca_select_options($id, $value_max); ?>
</select>
</div>
<?php } else { ?>
<select id="select-search"  name="<?php echo $name; ?>">
<?php ca_select_options($id, $value); ?>
</select>
<?php } ?>
phpMyAdmin
в таблице oc_t_item_custom_attr_fields у нужного поля SELECT поставить b_search_limits - 1
 

mgdn

Новичок
Если в указанном файле (если я правильно понял) заменить блок
PHP:
<?php } elseif ($type == 'select') { ?>
<select class='search_select' name='<?php echo $name; ?>'>
<?php $this->select_options($id, $value); ?>
</select>
на тот, что предоставили Вы, то ничего не выходит :(
Более того, перестают отображаться варианты выбора в других select-ах, обычных.

Update:
Нашел причину: ca_select_options заменил на изначальное $this->select_options
Варинты выбора появились как в обычных селектах, так и в "от - до". Но при фильтрации методом "от - до" не отображаются варианты подходящие под данное условие, иными словами поиск не осуществляется.
Update2:
Поиск работает :) но лишь при явном указании параметра атрибута.
Т.е. если создать селект со значениями "1 2 3 4 5 6" и при публикации объявления выбрать 3, то чтоб оно отобразилось при фильтрации необходимо указать "от 3 до 3" тогда оно появится. Тут уж руки совсем опускаются...
 
Последнее редактирование:

djnavel

Модератор
Делал давно- подзабыл, да еще у вас версия плагина новая, вот подкорректировал
в index.php плагина заменить:
PHP:
if ($has_min === 0 && $field_type == 'text') {
$subquery .= " AND CAST(s_value AS DECIMAL) >= " . $value;
} elseif ($has_max === 0 && $field_type == 'text') {
$subquery .= " AND CAST(s_value AS DECIMAL) <= " . $value;

на это:
PHP:
if ($has_min === 0 && ($field_type == 'text' || $field_type == 'select')) {
$subquery .= " AND CAST(s_value AS DECIMAL) >= " . $value;
} elseif ($has_max === 0 && ($field_type == 'text' || $field_type == 'select')) {
$subquery .= " AND CAST(s_value AS DECIMAL) <= " . $value;

search_form_fields.php
PHP:
<?php } elseif ($type == 'select') { ?>
<?php if ($search_limits) { ?>
<div class='search_limits'>
<label>от</label>
<select id="selectSmall-search" class='search_select'  name='<?php echo $name_min; ?>' value='<?php echo $value_min; ?>' >
<?php $this->select_options($id, $value_min); ?>
</select>
<label class='search_maximum-select'>до</label>
<select id="selectSmall-search" class='search_select'  name='<?php echo $name_max; ?>' value='<?php echo $value_max; ?>' >
<?php $this->select_options($id, $value_max); ?>
</select>
</div>
<?php } else { ?>
<select class='search_select' name='<?php echo $name; ?>'>
<?php $this->select_options($id, $value); ?>
</select>
<?php } ?>

phpMyAdmin
в таблице oc_t_item_custom_attr_fields у нужного поля SELECT поставить 1 в b_search_limits
 
  • Like
Реакции: mgdn

darkorgo

Новичок
Помогите пожалуйста, у меня не получается ни как, вывел на страницу так:
PHP:
<div class='search_limits'>
<label>от</label>
<select id="selectSmall-search" class='search_select' name='<?php echo $name_min; ?>' value='<?php echo $value_min; ?>' >
<?php $this->select_options($id, $value_min); ?>
</select>
<label class='search_maximum-select'>до</label>
<select id="selectSmall-search" class='search_select' name='<?php echo $name_max; ?>' value='<?php echo $value_max; ?>' >
<?php $this->select_options($id, $value_max); ?>
</select>
</div>
в странице появился поиcк таблица только "от" а таблица "до" не видно и перестают отображаться варианты выбора:(
 
Последнее редактирование модератором:

monah

Активный пользователь
PHP:
<?php } elseif ($type == 'select') { ?>
<?php if ($search_limits) { ?>
<div class='search_limits'>
<label>от</label>
<select id="selectSmall-search" class='search_select'  name='<?php echo $name_min; ?>' value='<?php echo $value_min; ?>' >
<?php $this->select_options($id, $value_min); ?>
</select>
<label class='search_maximum-select'>до</label>
<select id="selectSmall-search" class='search_select'  name='<?php echo $name_max; ?>' value='<?php echo $value_max; ?>' >
<?php $this->select_options($id, $value_max); ?>
</select>
</div>
<?php } else { ?>
<select class='search_select' name='<?php echo $name; ?>'>
<?php $this->select_options($id, $value); ?>
</select>
<?php } ?>
что именно с ним делать?
куда вставлять или заменять?
 

administrator

Блудный сын.
Команда форума
А куда вам нужно вставить туда вставляйте. К примеру в файл отвечающий за вывод объявления.
 

monah

Активный пользователь
можно посмотреть где нибудь на примере? можно ссылку в личку))
 

monah

Активный пользователь
а ни кто не делал такое для input? например где цена?
 
Верх