Yii Google images widget

Даный виджет поможет отобразить на странице изображения полученые в результате поиска с помощью сервиса Google Images Search

Для работы данного виджета Вам не нужно вносить никаких дополнительных настроек


q = preg_replace("/\([^\)]+\)/", "", $this->q);
        $this->q = preg_replace("/\[[^\]]+\]/", "", $this->q);
        return $this->q;
    }

    public function init() {

        parent::init();

        $assets = dirname(__FILE__) . '/assets';
        $this->baseUrl = Yii::app()->assetManager->publish($assets);

        $cs = Yii::app()->getClientScript();
        $cs->registerCoreScript('jquery');
        $cs->registerCSSFile($this->baseUrl . '/css/style.css')
                ->registerScriptFile($this->baseUrl . '/js/jquery.jsonp.js', CClientScript::POS_END);

        return;
    }

    public function run() {

        $cs = Yii::app()->clientScript;

        $js = 'function processResults(data) {
            
                if(data && data.responseData){
                    var container = $("#' . $this->getId() . '_container").html("");
                        $(data.responseData.results).each(function(){
                            //console.log(this);
                            container.append($("").attr("src", this.tbUrl));
                        });
                }
            
        } ' . PHP_EOL;

        $cs->registerScript(__CLASS__ . $this->getId() . 'head', $js, CClientScript::POS_HEAD);

        $url = 'http://ajax.googleapis.com/ajax/services/search/images?v=1.0&q=' . urlencode($this->prepareQuery()) . '&start=0' . ($this->safeSearch ? '' : '&safe=off') . '&rsz=' . $this->size . '&callback=processResults';
        $js = '$.jsonp(' . CJavaScript::encode(array(
                    'url' => $url,
                )) . ')';

        $cs->registerScript(__CLASS__ . $this->getId(), $js, CClientScript::POS_READY);

        echo CHtml::tag('div', array('id' => $this->getId() . '_container'), 'querying images...');
    }

}

Для работы используется кроссдоменный протокол JSONP

Скачать виджет можно с оффициальной директории расширений Yii Скачать

Leave a Reply

Your email address will not be published. Required fields are marked *