Использование картинок со стороннего сайта

Использование картинок со стороннего сайта

Если на вашем хостинге не хватает места или вы просто не хотите загружать картинки товара, то можно настроить отображение картинок товара со стороннего сайта.

Для этого в файл classes/Product.php после строки

public		$id_tax;

добавьте

public		$image_link;

после

'id_tax' => 'isUnsignedId',

добавьте

'image_link' => 'isString',

после

$fields['id_tax'] = intval($this->id_tax);

добавьте

$fields['image_link'] = pSQL($this->image_link);

Теперь класс Product дополнен свойством image_link. Для внесения изменений в базу данных нужно выполнить запрос (замените префикс таблицы на свой):

ALTER TABLE `ps_product` ADD `image_link` VARCHAR( 255 ) NOT NULL

Для добавления поля ввода ссылки в при редактировании товара изменяем файл adm/tabs/AdminProducts.php. После

echo '<div class="lang_'.$language['id_lang'].'" style="display: '.($language['id_lang'] == $this->_defaultFormLanguage ? 'block' : 'none').'; float: left;">
<input size="55" type="text" id="name_'.$language['id_lang'].'" name="name_'.$language['id_lang'].'"
value="'.stripslashes(htmlspecialchars($this->getFieldValue($obj, 'name', $language['id_lang']))).'"'.((!$obj->id) ? ' onkeyup="copy2friendlyURL();"' : '').' onkeyup="updateCurrentText();" onchange="updateCurrentText();" /><sup> *</sup>
<span class="hint" name="help_box">'.$this->l('Invalid characters:').' <>;=#{}<span class="hint-pointer">&nbsp;</span></span>
</div>';

Добавляем

echo '</td></tr><tr>
<td class="col-left">'.$this->l('Image Link:').'</td>
<td style="padding-bottom:5px;"><input size="55" type="text" name="image_link" value="'.$this->getFieldValue($obj, 'image_link') .'" />';

Для показа картинок изменяем функцию получения ссылки getImageLink в файле classes/Link.php. Заменяем ее на:

public function getImageLink($name, $ids, $type = null)
{
	$product=new Product((int)$ids);
	if ($product->image_link)
		return $product->image_link;
	return ($this->allow == 1) ? (__PS_BASE_URI__.$ids.($type ? '-'.$type : '').'/'.$name.'.jpg') : (_THEME_PROD_DIR_.$ids.($type ? '-'.$type : '').'.jpg');
}

Теперь если ссылка на картинку не указана, то будет отображатся уже загруженная картинка или картинка по умолчанию.

Если нужно использовать картинки разных размеров, то аналогичным образом добавляем свойства продукта image_link1, image_link2… При этом функция getImageLink будет выглядеть так:

public function getImageLink($name, $ids, $type = null)
{
	$product=new Product((int)$ids);
	if ($type='small')
		if ($product->image_link1)
			return $product->image_link1;
	elseif ($type='home')
		if ($product->image_link2)
			return $product->image_link2;
	...
	return ($this->allow == 1) ? (__PS_BASE_URI__.$ids.($type ? '-'.$type : '').'/'.$name.'.jpg') : (_THEME_PROD_DIR_.$ids.($type ? '-'.$type : '').'.jpg');
}
ispolzovanie-kartinok-so-storonnego-sajta.txt · Последние изменения: 2015/12/27 16:22 (внешнее изменение)