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

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

Тема в разделе "Предложения по улучшению Osclass, Yclas", создана пользователем mgdn, 2 окт 2014.

  1. mgdn

    mgdn Новичок

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

    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 и administrator нравится это.
  3. mgdn

    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" тогда оно появится. Тут уж руки совсем опускаются...
     
    Последнее редактирование: 3 окт 2014
  4. djnavel

    djnavel Модератор

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

    mgdn Новичок

    Все великолепно! ;)
     
  6. darkorgo

    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к таблица только "от" а таблица "до" не видно и перестают отображаться варианты выбора:(
     
    Последнее редактирование модератором: 17 янв 2015
  7. monah

    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 ?> 
    что именно с ним делать?
    куда вставлять или заменять?
     
  8. administrator

    administrator Блудный сын. Команда форума

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

    djnavel Модератор

    пост 4, редактируется плагин Custom attribute
     
    monah нравится это.
  10. monah

    monah Активный пользователь

    можно посмотреть где нибудь на примере? можно ссылку в личку))
     
  11. monah

    monah Активный пользователь

    а ни кто не делал такое для input? например где цена?
     
  12. djnavel

    djnavel Модератор

    А как такие данные в БД записать?
     
  13. monah

    monah Активный пользователь

    autocomplete jquery вот с помощью этого можно, но не разобрался как прикрутить.. а данные (фиксированные) ввести вручную
     

Поделиться этой страницей