Превью изображений из блогов для модуля "Блог" и плагина "Похожие посты". 1.X

982
Как известно в первой ветке в модуле "новые посты из блогов" в качестве изображений выводится либо аватар автора поста либо первая картинка из поста, если она в посте есть. Проблема в том, что картинка выводится "как есть" сжимаясь только визуально средствами html|css. Если в посте картинка 1000 px на 600 px весом 200 kb в модуле на главной странице выводится она же. Если в модуле десяток постов с такими картинками, то это уже 2 мб на главную страницу. Google ругается и требует оптимизировать изображения.

0. Перед началом сделать копию изменяемых файлов.
1. В файле cms/core/classess/blog.class.php
после



Код PHP:
  1. while($post = $this->inDB->fetch_assoc($result)){
  2. $post['fpubdate'] = cmsCore::dateFormat($post['pubdate']);
  3. $post['url'] = $ownerModel->getPostURL($post['bloglink'], $post['seolink']);
  4. $post['blog_url'] = $ownerModel->getBlogURL($post['bloglink']);
вставить это

Код PHP:
  1. //превью изображения из поста для модуля и плагина
  2. $mini_image = str_replace('/upload/blogs/', 'upload/blogs/mini/', $post['fileurl']);
  3. if(!file_exists($mini_image)){
  4. cmsCore::includeGraphics();
  5. @img_resize(PATH.$post['fileurl'], $mini_image, 100, 100, true, false);
  6. }
  7. $post['fileurl_small'] = '/'.$mini_image;
  8.  
Комментарии к четвёртой строке:
100 и 100 - ширина и высота маленького изображения, можете изменить.
true - изображение будет обрезаться в квадрат (если не нужно, заменить на false)
false - на мини изображение не будет накладываться ватермарк.


2. В шаблоне модуля mod.blogs.tpl

заменить {$post.fileurl} на {$post.fileurl_small}

3. plugins/p_related_posts/plugin.php

после

Код PHP:
  1. foreach($found_posts as $key=>$post){
  2. if(!$found_posts[$key]['fileurl']){
  3. $found_posts[$key]['fileurl'] = '/images/photos/small/'.$blank_photo;
  4. }


вставить

Код PHP:
  1. //превью изображения из поста для модуля и плагина
  2. $mini_image = str_replace('/upload/blogs/', 'upload/blogs/mini/', $found_posts[$key]['fileurl']);
  3. if(!file_exists($mini_image)){
  4. cmsCore::includeGraphics();
  5. @img_resize(PATH.$post['fileurl'], $mini_image, 100, 100, true, false);
  6. }
  7. $found_posts[$key]['fileurl_small'] = '/'.$mini_image;
и в этом же файле


Код PHP:
  1. $found_posts[$key]['fileurl'] = '/images/photos/small/'.$blank_photo;
заменить на

Код PHP:
  1. $found_posts[$key]['fileurl'] = '/upload/blogs/'.$blank_photo;

в шаблоне плагина {$post.fileurl} заменить на {$post.fileurl_small}

в папке uploads/blogs/ создать папку /mini
положить в эту папку для плагина файл загрушки no_image.png или другой который указан у вас в настройках плагина.

Вроде ничего не упустил, у меня всё работает, побочных эффектов не заметил. Но никому ничего не гарантирую, используете на свой страх и риск)
Размещение поста на форуме от имени пользователя. | Онлайн редактор изображений для админа на базе API Pixlr
Комментарии (0)

Нет комментариев. Ваш будет первым!