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

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

0. Перед началом сделать копию изменяемых файлов.
1. В файле cms/core/classess/blog.class.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']);
вставить это

  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

после

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


вставить

  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;
и в этом же файле


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

  1. $found_posts[$key]['fileurl'] = '/upload/blogs/'.$blank_photo;

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

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

Вроде ничего не упустил, у меня всё работает, побочных эффектов не заметил. Но никому ничего не гарантирую, используете на свой страх и риск)
Нет комментариев. Ваш будет первым!

Еще от автора

Капча на сайт или разделы сайта
Если нужно, закрыть весь сайт или некоторые его разделы каптчей.
Пинг поисковых систем для первой ветки
Небольшая интеграция инструментов для пингования, чтобы сделать его чуть удобнее
Генератор карты сайта в формате txt на лету без крона
Вообще то где то тут уже есть вполне рабочие генераторы карты для первой ветки, но этот вариант тоже имеет право быть.
Используя этот сайт, вы соглашаетесь с тем, что мы используем файлы cookie.