Zoo joomla и удаленные картинки

Понадобилось мне на компоненте Zoo сделать каталог сайтов. Решил использовать универсальный каталог, настроил вывод всех полей, но вот незадача! Zoo упорно не хотел показывать скрин сайта, потому что скрин я закидывал на хостинг картинок, а компонент понимает только относительные адреса  к картинкам. Пришлось поковыряться, пошагово просмотреть логику приложению и решение было найдено:

1. идем в папку  /media/zoo/elements/image и находим файл image.php

2. открываем его правим:

было

public function hasValue($params = array()) {
		$file = $this->get('file');
		return !empty($file) && JFile::exists(JPATH_ROOT.DS.$this->get('file'));
	}

стало

public function hasValue($params = array()) {
		$file = $this->get('file');
        if(!empty($file) and substr_count($file, 'http')){ /** добавим возможность вставки удаленных изображений*/
            return @file_get_contents($file) ? true : false;
        }
		return !empty($file) && JFile::exists(JPATH_ROOT.DS.$this->get('file'));
	}

и ниже, было:

	public function render($params = array()) {

		// init vars
		$params = $this->app->data->create($params);
		$title  = $this->get('title');
		$file  	= $this->app->zoo->resizeImage(JPATH_ROOT.DS.$this->get('file'), $params->get('width', 0), $params->get('height', 0));
		$link   = JURI::root() . $this->app->path->relative($file);

стало:

public function render($params = array()) {

		// init vars
		$params = $this->app->data->create($params);
		$title  = $this->get('title');

        if(substr_count($this->get('file'), 'http')){ /** добавим возможность вставки удаленных изображений*/
            $link   =  $file = $this->get('file');
        }

        else{
            $file  	= $this->app->zoo->resizeImage(JPATH_ROOT.DS.$this->get('file'), $params->get('width', 0), $params->get('height', 0));
            $link   = JURI::root() . $this->app->path->relative($file);
        }

Таким образом, я добавил условие для проверки, является ли изображение удаленным или нет. При условии, что изображение удаленное — оно не будет проходить через функции ресайза Zoo и будет отдаваться таким как есть.

This entry was posted in Zoo and tagged , . Bookmark the permalink.

Добавить комментарий

Ваш e-mail не будет опубликован. Обязательные поля помечены *

*