GridView + ImagesWidget

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

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

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

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

GridView + ImagesWidget

Сообщение gpu89 » 30 янв 2014, 15:52

Здравствуйте!
Никак не получается сделать так, чтобы галерея объявления (модальное окно с листалкой) вызывалась из каталога объявлений, а не только на отдельной страницы объявления.
Чтобы по тыку на превьюшку вызывалась галерея с остальными фотографиями и для их просмотра не требовалось переходить на отдельную страницу.
Подскажите, как это сделать? Должно быть не сложно, но мне не хватает знаний.
gpu89
Незнакомец
 
Сообщения: 10
Зарегистрирован: 03 окт 2013, 13:01
Очки репутации: 0

Re: GridView + ImagesWidget

Сообщение gpu89 » 03 фев 2014, 03:22

Народ, помогите =(((
gpu89
Незнакомец
 
Сообщения: 10
Зарегистрирован: 03 окт 2013, 13:01
Очки репутации: 0

Re: GridView + ImagesWidget

Сообщение Xpycm » 03 фев 2014, 09:29

Здравствуйте.

Откройте файл protected\modules\apartments\views\_view.php - это один из файлов для отображения объявления.
В нём увидите, что все изображения можно получить из объекта $data->images. Где $data - это модель объявления.
Её можно получить так: Apartment::model()->findByPk('здесь ид объявления');
Чтобы изображения пролистывались в fancybox достаточно к изображению добавить class='fancy'
Dropbox
Open Real Estate CMS: FAQ | FAQ 2 | FAQ 3
Изображение
Xpycm
Разработчик
Разработчик
 
Сообщения: 1592
Зарегистрирован: 30 дек 2011, 11:06
Откуда: Йошкар-Ола
Очки репутации: 50

Re: GridView + ImagesWidget

Сообщение gpu89 » 04 фев 2014, 17:56

Xpycm писал(а):Здравствуйте.

Откройте файл protected\modules\apartments\views\_view.php - это один из файлов для отображения объявления.
В нём увидите, что все изображения можно получить из объекта $data->images. Где $data - это модель объявления.
Её можно получить так: Apartment::model()->findByPk('здесь ид объявления');
Чтобы изображения пролистывались в fancybox достаточно к изображению добавить class='fancy'


Странно, но само по себе цепляние класса fancy к содержащей картинку ссылке (к самой картинке тоже пробовал) ничего не даёт.
Попробовал хотя бы сами превьюшки выводить во всплывающем окне, пока что без остальных фото по объявлению - не получается.
Возможно нужно что-то ещё...
gpu89
Незнакомец
 
Сообщения: 10
Зарегистрирован: 03 окт 2013, 13:01
Очки репутации: 0

Re: GridView + ImagesWidget

Сообщение Xpycm » 04 фев 2014, 20:08

FancyBox цепляется к классу "fancy" элемента a (ссылка).
Вот можете посмотреть в файле protected\views\layouts\main.php
код:
Код: Выделить всё
$this->widget('application.modules.fancybox.EFancyBox', array(
    
'target'=>'a.fancy',
    
'config'=>array(
            
'ajax' => array('data'=>"isFancy=true"),
            
'titlePosition' => 'inside',
            
'onClosed' => 'js:function(){
                var capClick = $("#yw0_button");
                if(typeof capClick !== "undefined")    capClick.click();
            }'
        
),
    )
); 


В самом EFancyBox (protected\modules\fancybox\EFancyBox.php), в методе run:
Код: Выделить всё
Yii::app()->clientScript->registerScript($this->getId(), "
    $('
$this->target').fancybox($config);
"
); 


Т.е в target можно запихать и вот такое:
'target'=>'a.fancy, div.fancy, span.fancy'...

Ну вы поняли :-)
Dropbox
Open Real Estate CMS: FAQ | FAQ 2 | FAQ 3
Изображение
Xpycm
Разработчик
Разработчик
 
Сообщения: 1592
Зарегистрирован: 30 дек 2011, 11:06
Откуда: Йошкар-Ола
Очки репутации: 50

Re: GridView + ImagesWidget

Сообщение gpu89 » 06 фев 2014, 15:47

Xpycm писал(а):FancyBox цепляется к классу "fancy" элемента a (ссылка).
Вот можете посмотреть в файле protected\views\layouts\main.php
код:
Код: Выделить всё
$this->widget('application.modules.fancybox.EFancyBox', array(
    'target'=>'a.fancy',
    'config'=>array(
            'ajax' => array('data'=>"isFancy=true"),
            'titlePosition' => 'inside',
            'onClosed' => 'js:function(){
                var capClick = $("#yw0_button");
                if(typeof capClick !== "undefined")    capClick.click();
            }'
        ),
    )
);
 


В самом EFancyBox (protected\modules\fancybox\EFancyBox.php), в методе run:
Код: Выделить всё
Yii::app()->clientScript->registerScript($this->getId(), "
    $('
$this->target').fancybox($config);
"
); 


Т.е в target можно запихать и вот такое:
'target'=>'a.fancy, div.fancy, span.fancy'...

Ну вы поняли :-)


Большое спасибо!
Последний вопросик. Только не про вашу CMS, а про Yii.
Мне потребовалось вывести записи гридом в три колонки вместо обычного табличного вывода по одной записи на строку.
Подскажите как это можно сделать? Или хотя бы в две колонки...
gpu89
Незнакомец
 
Сообщения: 10
Зарегистрирован: 03 окт 2013, 13:01
Очки репутации: 0

Re: GridView + ImagesWidget

Сообщение Xpycm » 06 фев 2014, 15:59

В GridView, насколько я знаю, одна строка - это информация одного элемента.
Никогда не сталкивался с такой задачей, чтобы в одной строке было по 2-3 разных элемента.

В YiiBooster также нет подобного готового решения - http://yiibooster.clevertech.biz/extend ... index.html
Наверное, никто так не извращался.

Единственное, либо написать на чистом html+css, либо унаследоваться от CGridView и переписывать методы отображения/сортировки/поиска и прочего.
Dropbox
Open Real Estate CMS: FAQ | FAQ 2 | FAQ 3
Изображение
Xpycm
Разработчик
Разработчик
 
Сообщения: 1592
Зарегистрирован: 30 дек 2011, 11:06
Откуда: Йошкар-Ола
Очки репутации: 50

Re: GridView + ImagesWidget

Сообщение gpu89 » 06 фев 2014, 16:12

Xpycm писал(а):В GridView, насколько я знаю, одна строка - это информация одного элемента.
Никогда не сталкивался с такой задачей, чтобы в одной строке было по 2-3 разных элемента.

В YiiBooster также нет подобного готового решения - http://yiibooster.clevertech.biz/extend ... index.html
Наверное, никто так не извращался.

Единственное, либо написать на чистом html+css, либо унаследоваться от CGridView и переписывать методы отображения/сортировки/поиска и прочего.


Мне казалось задача не редкая.
Каким же тогда образом организован вывод объявлений на главной странице вашей CMS?
gpu89
Незнакомец
 
Сообщения: 10
Зарегистрирован: 03 окт 2013, 13:01
Очки репутации: 0

Re: GridView + ImagesWidget

Сообщение Xpycm » 06 фев 2014, 16:19

GridView у нас стандартный и используется при просмотре "таблицей" - https://www.dropbox.com/s/we6njdpmaxwpe ... 717301.jpg (одна строка = одна запись в таблице БД)
Остальные типы просмотров (списком и картой) - обычный html+css
Dropbox
Open Real Estate CMS: FAQ | FAQ 2 | FAQ 3
Изображение
Xpycm
Разработчик
Разработчик
 
Сообщения: 1592
Зарегистрирован: 30 дек 2011, 11:06
Откуда: Йошкар-Ола
Очки репутации: 50


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

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

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

cron