Поиск объявлений только с Фото

Вопросы и ответы по изменению функционала, смене дизайна, переносу сайта и т.п.

Модераторы: Xpycm, Koduc

Правила форума
ВНИМАНИЕ! Форум не является средством гарантированной поддержки клиентов и пользователей. Поэтому на быстрый ответ тут рассчитывать не нужно, как и на ответ вообще. Сотрудники отвечают по мере своих возможностей.

На форуме действует ограничение в 3 сообщения / сутки.
Если Вы хотите сказать "спасибо", то воспользуйтесь функцией "Повысить репутацию" - зелёная иконка "плюс" под ником ответившего.

Поиск объявлений только с Фото

Сообщение lomuk » 27 апр 2014, 12:05

Подскажите как добавить к поиску критерий "поиск с фото"
http://odessa-dom.com.ua - На Open Real Estate Pro
lomuk
Гражданин
Гражданин
 
Сообщения: 164
Зарегистрирован: 13 сен 2013, 09:42
Очки репутации: 0

Re: Поиск объявлений только с Фото

Сообщение andipas » 28 апр 2014, 14:51

В модель protected/modules/apartments/models/Apartment.php добавляем scopes withPhoto:

Код: Выделить всё

    
public function scopes()
    {
        return array(
            
'onlyAuthOwner' => array(
                
'condition' => $this->getTableAlias() . '. owner_id = ' Yii::app()->user->id,
            ),
            
'withPhoto'=>array(
                
'condition' => 'EXISTS(SELECT 1 FROM {{images}} `i` WHERE t.id = i.id_object)',
            ),
        );
    }
 


в protected/modules/quicksearch/controllers/MainController.php в методе actionMainsearch

добавляем

Код: Выделить всё

        
if(isset($_GET['wp']) && $_GET['wp'] == 1){
            
$criteria->scopes = array('withPhoto');
        }
 


Теперь если в url поиска укажем этот параметр search?wp=1, то выведутся объявления только с фото. Соответственно в поисковой форме, можно сделать чекбокс типа:

Код: Выделить всё
<label for="with_photo">
<
input type="checkbox" name="wp" id="with_photo"С фото
</label>
 
Часто задаваемые вопросы. Для правки файлов notepad++, netbeans, phpStorm. Для правки CSS firebug.
Аватара пользователя
andipas
Разработчик
Разработчик
 
Сообщения: 695
Зарегистрирован: 28 дек 2011, 22:37
Очки репутации: 30

Re: Поиск объявлений только с Фото

Сообщение lomuk » 29 апр 2014, 02:09

Сделал всё как написано, но выводит все объявления, с фото и без

В url получается &wp=on, при замене на &wp=1 тоже не ищет
http://odessa-dom.com.ua - На Open Real Estate Pro
lomuk
Гражданин
Гражданин
 
Сообщения: 164
Зарегистрирован: 13 сен 2013, 09:42
Очки репутации: 0

Re: Поиск объявлений только с Фото

Сообщение andipas » 29 апр 2014, 07:19

lomuk писал(а):Сделал всё как написано, но выводит все объявления, с фото и без

В url получается &wp=on, при замене на &wp=1 тоже не ищет


Описное решение проверял, работает как надо.

Возможно если вы добавили этот код:

Код: Выделить всё

        if
(isset($_GET['wp']) && $_GET['wp'] == 1){
            $criteria->scopes = array('withPhoto');
        }
 


в самое начало actionMainsearch ? Нужно добавлять пониже, вместе с другими $criteria

чтобы было &wp=1

Код: Выделить всё
<input type="checkbox" name="wp" id="with_photo" value="1"> 
 


upd. Описанное решение подойдет для сайта с < 1000 объявлений. Для сайта с большим кол-вом объявлений, решение в 2-х словах:
1. прописать отдельное поле - флаг (with_photo) в таблице apartment
2. сделать скрипт который заполнит это поле для текущих фото
3. настроить сохранение фотографий, чтобы этот флаг был = 1 когда есть фото, и = 0 когда их нет
4. сделать поиск по данному полю
Часто задаваемые вопросы. Для правки файлов notepad++, netbeans, phpStorm. Для правки CSS firebug.
Аватара пользователя
andipas
Разработчик
Разработчик
 
Сообщения: 695
Зарегистрирован: 28 дек 2011, 22:37
Очки репутации: 30


Вернуться в Вопросы и помощь по изменениям

Кто сейчас на конференции

Сейчас этот форум просматривают: нет зарегистрированных пользователей и гости: 40

cron