Ресайз изображений статьи в блоге категории
Ресайз изображения статьи (привязанного через "изображения и ссылки") в блоге.
Рецепт для 2.5, новероятно будет работать и на 3.х, пока не пробовали...
<?php //Вставляем в файл blog_item.php. Не забываем переопределять на уровне своего шаблона
$img = json_decode($this->item->images);
$imgsrc = (isset($img->image_intro))? $img->image_intro: '';
if ($imgsrc){
$h = 100; //Новая высота изображения
$w = 150; //Новая ширина изображения
$path_parts = pathinfo($imgsrc);
$file_thumb = $path_parts['dirname'].'/'.$path_parts['filename'].'_'.$h.'_'.$w.'.'.$path_parts['extension'];
if (!file_exists($file_thumb) || filemtime($file_thumb) <= filemtime($imgsrc)){
$image = new JImage($imgsrc);
$new_image = $image->resize($w, $h, true, JImage::SCALE_INSIDE );
$properties = $image->getImageFileProperties($imgsrc);
switch ($properties->mime){
case 'image/jpeg':
$type = IMAGETYPE_JPEG; break;
case 'image/png':
$type = IMAGETYPE_PNG; break;
case 'image/gif':
$type = IMAGETYPE_GIF; break;
}
$new_image->toFile($file_thumb, $type);
}
$attr = getimagesize(JURI::base().$file_thumb);
$imgfloat = (empty($images->float_intro))? $params->get('float_intro') : $images->float_intro;
$imgfloat = htmlspecialchars($imgfloat);
$html = '<div class="img-blog-'.$imgfloat.'">';
$html .= '<a href="'.JRoute::_(ContentHelperRoute::getArticleRoute($this->item->slug, $this->item->catid)).'" title="'.$this->item->tile.'">';
$html .= JHTML::_('image', $file_thumb, htmlspecialchars($img->image_intro_alt), $attr[3]);
$html .= '</a></div>';
echo $html;
}
?>
Ссылки и благодарности
Спасибо Fedor Vlasenko с JoomlaForum, там также пример для полного изображения материала.
Ещё статьи по теме: