0 Пользователей и 1 Гость просматривают эту тему.
  • 10 Ответов
  • 5643 Просмотров
*

cmotp10

  • Осваиваюсь на форуме
  • 29
  • 3 / 1
Уважаемое сообщество, очень благодарен отзывчивости участникам форума, которые способствовали решению задачи вывода индивидуального тега title в статье. Воспользовавшись поиском - я к сожалению не нашел ответа на свою новую задачу.

Заключается она в следующем. Компонент k2, при создании статьи, дает возможность загрузить изображение в статью (вкладка "изображение"). Все происходит очень просто, и результатом доволен.

Есть очень существенный недостаток в этой процедуре.

При загрузке изображения он создает дубликаты разных размеров, часть которых вообще не используется. Т.е. загружаемую картинку он дублирует по числу настраиваемых "Параметры изображения материала". Итого получается 6 копий одной и той же картинки, и как результат, вместо запланированных 30-100кб одной картинки - мы получаем 700-800кб.
Это было бы терпимо, если использовать на маленьком сайте визитке, но когда сайтом является новостник, то нешуточный вес получается. Так на оном из своих новостников я решил зачистить папку с картинками, и в результате получился ошеломительный результат. Сайт весил 1,5 гига, а стал весит 30мб.

Прошу помочь с решением задачи. Можно ли найти решение, как запретить k2 дублировать картинки и дать возможность просто делать ресайз одной картинки при выводе в разных вариантах?
« Последнее редактирование: 14.02.2013, 19:17:04 от cmotp10 »
*

cmotp10

  • Осваиваюсь на форуме
  • 29
  • 3 / 1
Буду записывать версии того, что смог нащупать в коде. Решения пока нет, но может быть эти действия натолкнут меня, либо кого еще на правильный путь.

Итак. Запретить записывать дубликаты изображение на сервер в Joomla k2 можно следующим образом:

1. Открываем файл по адресу: /administrator/components/com_k2/models/item.php
В нем нужно найти код, начинающийся с
Код
//Original image
$savepath = JPATH_SITE.DS.'media'.DS.'k2'.DS.'items'.DS.'src';

Этот корд у нас отвечает за настройки картинок. В нем мы можем в конце каждого размера увидеть строку
Код
$handle->Process($savepath);
Она то и сохраняет наши лишние дубликаты на сервере.

Что бы запретить сохранения - нужно эту строку закомментировать.
Код
//$handle->Process($savepath);

Проведя эксперименты методом научного тыка я понял, что в заглавии статьи выводятся файлы размера '_L' они же Large image
Т.е. если закомментить все, кроме Large image (т.е. оставить в разделе строчку $handle->Process($savepath); незакомментированной), то в блоге отображается картинка и в статье тоже. На сервере естественно находится только 1 копия этой самой картинки. Как ее потом оформить в статье (т.е. расположение и прочее) - это уже руками допиливает стили.

Теперь задача. Файл, который сохраняется в '_L' - из 100кб оригинального размера почему то весит после загрузки на сервер 440кб. С этим пока я не разобрался, однако заметил, что вес файла '_S' - это маленький который - весит всего 40кб. Это меня прям устраивает, но я не пойму где прописать, что бы он отображался на том месте, где показывает '_L'.

В Google вычитал, как можно избавиться от мусора (т.е. сохраненная бесполезная версия оригинального файла) на сервере.
вот ссылка автора этой статьи:
Спойлер
[свернуть]

После манипуляций в этом же файле /administrator/components/com_k2/models/item.php согласно описаниям в статье - мы получаем в результате пустую папку src, куда заливается оригинальный файл.

В общем то задача моя частично решена. Я понял как запрещать делать копии файлов, это хорошо. Но я не понял где регламентируются размеры этих файлов, что бы с оптимальным для себя размером их можно было бы заливать на сервер и мой сайт при этом мало весил. Успех выполнения оценю пока на 20% из 100.

очень надеюсь на помощь сообщества.
*

cmotp10

  • Осваиваюсь на форуме
  • 29
  • 3 / 1
Дополнение 2.

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

Расскажу что сделал:
1. Как уже и описал выше - вся процедура с комментированием строки $handle->Process($savepath); в ненужных мне форматах в файле, который находится по адресу: /administrator/components/com_k2/models/item.php. За это спасибо парням из ветки http://joomlaforum.ru/index.php/topic,104299.new.html Печально, что это я нашел только сейчас...

2. После исправлений в файле /administrator/components/com_k2/models/item.php с учетом рекомендаций по запрету сохранения оригинального файла я перешел в редактирование других файлов.

А именно: /components/com_k2/models/item.php (Заметьте без administrator, а именно в components).
В ней меня заинтересовало оба файла:
item.php
itemlist.php

В нижестоящих строках типа
Код
if (JFile::exists(JPATH_SITE.DS.'media'.DS.'k2'.DS.'items'.DS.'cache'.DS.md5("Image".$item->id).'_S.jpg'))
{
$item->imageXSmall = JURI::base(true).'/media/k2/items/cache/'.md5("Image".$item->id).'_S.jpg';
if ($params->get('imageTimestamp'))
{
$item->imageXSmall .= $timestamp;
}
}
я вставил '_S.jpg' в конце после id (в них по умолчанию были записаны все форматы)
Обе манипуляции я провел в двух этих файлах, и как результат - все встало как надо.

ОСТАВИЛ ПУСТОЙ ТОЛЬКО САМЫЙ ПЕРВЫЙ (Я так понимаю он отвечает за вывод картинки заглушки, и если в него вставить атрибут, а заглушки нет - то появится у вас во фронтэнде тег alt.)

Процент своего успеха оценю как 60%.

Что теперь. Теперь, если этой темой все же кто-то заинтересуется - я хотел бы услышать от специалистов по PHP и просто знающих людей- что я сделал лишнее, или что я сделал Неправильно. Сразу скажу, что я не программист, но умею верстать, поэтому подсказки на сугубо техническом языке мне будут не понятны.

Теперь, что мне предстоит сделать - поскольку победа для меня большая. Я получаю сжатый для себя файл, который при старте весит 100кб на сервер сохраняется лишь 25кб. - мне нужно переверстать теперь свои странички, что бы все красиво выводилось) и после этого думаю будет большая победа.

Ах да, еще мне необходимо прооптимизировать код, для поисковой оптимизации для моих картинок. Думаю это не сложно, главное понять что куда засунуть.

И не решенной задачей осталось то, что в админке пока не видно - какая картинка прикреплена. По сути мне она и не нужна, но если с точки зрения программистов окажется, что мои действия были правильны - нужно будет этот момент довести до ума.
« Последнее редактирование: 14.02.2013, 20:05:47 от cmotp10 »
*

maestra

  • Захожу иногда
  • 80
  • 6 / 1
В Google вычитал, как можно избавиться от мусора (т.е. сохраненная бесполезная версия оригинального файла) на сервере.
вот ссылка автора этой статьи:
http://argon06.blogspot.ru/2011/12/k2.html

Решение по указанной автором ссылке оказалось самое действенное :) Но хотел бы добавить, что при редактировании материала в админке вместо картинке отображается ее alt, что не есть хорошо. Лечится это следующим образом:
Открываем файл: /administrator/components/com_k2/views/item/tmpl/default.php
Здесь надо найти строку (у меня это 277 строка)
Код
<img alt="<?php echo $this->row->title; ?>" src="<?php echo $this->row->thumb; ?>" class="k2AdminImage" />
и изменить "thumb" на "image".
*

DmWagner

  • Захожу иногда
  • 53
  • 1 / 0
Классный урок, все работает хорошо, кроме одного, а именно, не отображается предпросмотр изображения в форме добавления материала на фронте, отображается только alt попытка изменить thumb на image в шаблонах формы, результата не дала, менял во всех шаблонах, в том числе и в default тот что в компонентах... Если не обращать на это внимания, то все работает.
Может кто подскажет как решить проблему с этим предпросмотром?
*

muratb

  • Захожу иногда
  • 57
  • 12 / 0
К сожалению, этот "номер" не проходит на К2+Joomla! 3.5.1 (сервер Апач 2.2 РНР 5.3).
Прописываешь в /administrator/components/com_k2/models/item.php
Код
//$handle->Process($savepath);
и перестают загружаться изображения вообще.
Кто нибудь имеет решение?
*

muratb

  • Захожу иногда
  • 57
  • 12 / 0
На оф. форуме пока молчат  :laugh:
Спойлер
[свернуть]
*

muratb

  • Захожу иногда
  • 57
  • 12 / 0
 *DRINK* Ждемс
*

printed2010

  • Новичок
  • 6
  • 0 / 0
Зачем трогать код? В настройках К2 поставить качество сжатия Jpeg - 51% (всё равно все картинки из Интернета и уже ужаты по максимуму), на нужные размеры поставить нужную ширину в пикселях, а на ненужные указать 100 пикселей. А можно и 1 пиксель. 100 000 картинок самого маленького размера будут весить около 300 Мб. Столько материалов за всю жизнь не вставить.
*

muratb

  • Захожу иногда
  • 57
  • 12 / 0
Зачем трогать код? В настройках К2 поставить качество сжатия Jpeg - 51% (всё равно все картинки из Интернета и уже ужаты по максимуму), на нужные размеры поставить нужную ширину в пикселях, а на ненужные указать 100 пикселей. А можно и 1 пиксель. 100 000 картинок самого маленького размера будут весить около 300 Мб. Столько материалов за всю жизнь не вставить.
В том то и дело, там не 100 000 картинок а намного больше ))) и каждый день пополняются )))
*

Septdir

  • Живу я здесь
  • 3370
  • 168 / 4
В том то и дело, там не 100 000 картинок а намного больше ))) и каждый день пополняются )))
Ну в 3 версии k2 уже настраиваемые. Но по факту же 3 версию фиг дождешься так что есть 4 подхода.
1. Написать свой плагин (я может займусь, но пока мне не до этого).
2. Есть такой плагин k2 png image можно там код исправить, просто и сердито.
3. Поправить код в самих файлах, ну тут можно закоментить лишнее, либо удалить, но k2 юзает почти все изображения. small есть в админе l тоже.
4. Как верно было описано выше снизить качество. И поставить лишние изображения размеров 1px. Можно конечно все поставить 1px а в материалы дергать изображения из папки srс, но тогда оптимизация изображений будет хромать. Я лично ставлю по 1px все кроме small medium и large. Даже без уменьшения качества при 30к - 40к материалов места хватает.
Не можете справиться с задачей сами пишите, решу ее за вас, не бесплатно*.
*Интересная задача, Деньги или Бартер. Натурой не беру!
CodersRank | Контакты | Мой GitHub | Workshop
Чтобы оставить сообщение,
Вам необходимо Войти или Зарегистрироваться
 

Как заменить заглушку изображения в к2?

Автор sergspb

Ответов: 0
Просмотров: 1313
Последний ответ 13.10.2022, 14:21:02
от sergspb
Решено: Более одной группы доп. полей

Автор chilly_bang

Ответов: 75
Просмотров: 9132
Последний ответ 07.02.2022, 17:06:11
от Dobrota
[Решено] K2 не сохраняет настройки

Автор Dobrota

Ответов: 2
Просмотров: 1421
Последний ответ 07.02.2022, 15:58:04
от Dobrota
Не открываются файлы после загрузки на сайт

Автор GeniusUd

Ответов: 1
Просмотров: 545
Последний ответ 01.02.2021, 17:19:38
от voland
Ошибка ПРИ создании материала В К2 - РЕШЕНО

Автор korchaga

Ответов: 1
Просмотров: 624
Последний ответ 28.12.2020, 03:21:46
от korchaga