PDA

Zobacz pełną wersję : K2 Ogranicznie auto-generacji obrazków



qbin2001
30-06-2010, 23:28
K2 v2.3 Ogranicznie auto-generacji obrazków

Kiedy dodajemy w komponencie K2 artykuł w zakładce "Grafika" mamy mozliwość dodania ilustracji do artykułu. Ilustracja ta jest automatycznie generowana w folderze 'media/k2/items/cache' aż w sześciu rozmiarach:

1. Generic (domyślna)
2. XS (miniatura)
3. S (mała)
4. M (średnia)
5. L (duża)
6. XL (wielka)

Zazwyczaj korzystamy jednak jedynie z 2-3 wielkości, a przy dużej ilości artykułów rozmiar folderu z ilustracjami rośnie w zastraszającym tempie.

Domyślnie K2 nie oferuje możliwości wyłączenia generowania wybranych wielkości ilustracji. Aby samemu wprowadzić tę opcję wystarczą cztery zmiany w plikach K2.

I. Plik "administrator/components/com_k2/config.xml"

Linia 12 - jest:


<param menu="hide" name="imagesQuality" type="text" default="100" size="4" label="Quality (%) used when processing images" description="" />Linia 12 - zmieniamy na:


<param menu="hide" name="imagesQuality" type="text" default="100" size="4" label="Quality (%) used when processing images" description="" />
<param menu="hide" name="@spacer" type="spacer" default="" label="" description="" />
<param menu="hide" name="xs_size" type="radio" default="1" label="Use XSmall Images" description="">
<option value="0">No</option>
<option value="1">Yes</option>
</param>
<param menu="hide" name="s_size" type="radio" default="1" label="Use Small Images" description="">
<option value="0">No</option>
<option value="1">Yes</option>
</param>
<param menu="hide" name="m_size" type="radio" default="1" label="Use Medium Images" description="">
<option value="0">No</option>
<option value="1">Yes</option>
</param>
<param menu="hide" name="l_size" type="radio" default="1" label="Use Large Images" description="">
<option value="0">No</option>
<option value="1">Yes</option>
</param>
<param menu="hide" name="xl_size" type="radio" default="1" label="Use XLarge Images" description="">
<option value="0">No</option>
<option value="1">Yes</option>
</param>
<param menu="hide" name="@spacer" type="spacer" default="" label="" description="" />II. Plik "administrator/components/com_k2/models/item.php"

Linia 204 - jest:


//XLarge image
$handle->image_resize = true;
$handle->image_ratio_y = true;
$handle->image_convert = 'jpg';
$handle->jpeg_quality = $params->get('imagesQuality');
$handle->file_auto_rename = false;
$handle->file_overwrite = true;
$handle->file_new_name_body = $filename.'_XL';
if (JRequest::getInt('itemImageXL')) {
$imageWidth = JRequest::getInt('itemImageXL');
} else {
$imageWidth = $params->get('itemImageXL', '800');
}
$handle->image_x = $imageWidth;
$handle->Process($savepath);

//Large image
$handle->image_resize = true;
$handle->image_ratio_y = true;
$handle->image_convert = 'jpg';
$handle->jpeg_quality = $params->get('imagesQuality');
$handle->file_auto_rename = false;
$handle->file_overwrite = true;
$handle->file_new_name_body = $filename.'_L';
if (JRequest::getInt('itemImageL')) {
$imageWidth = JRequest::getInt('itemImageL');
} else {
$imageWidth = $params->get('itemImageL', '600');
}
$handle->image_x = $imageWidth;
$handle->Process($savepath);

//Medium image
$handle->image_resize = true;
$handle->image_ratio_y = true;
$handle->image_convert = 'jpg';
$handle->jpeg_quality = $params->get('imagesQuality');
$handle->file_auto_rename = false;
$handle->file_overwrite = true;
$handle->file_new_name_body = $filename.'_M';
if (JRequest::getInt('itemImageM')) {
$imageWidth = JRequest::getInt('itemImageM');
} else {
$imageWidth = $params->get('itemImageM', '400');
}
$handle->image_x = $imageWidth;
$handle->Process($savepath);

//Small image
$handle->image_resize = true;
$handle->image_ratio_y = true;
$handle->image_convert = 'jpg';
$handle->jpeg_quality = $params->get('imagesQuality');
$handle->file_auto_rename = false;
$handle->file_overwrite = true;
$handle->file_new_name_body = $filename.'_S';
if (JRequest::getInt('itemImageS')) {
$imageWidth = JRequest::getInt('itemImageS');
} else {
$imageWidth = $params->get('itemImageS', '200');
}
$handle->image_x = $imageWidth;
$handle->Process($savepath);

//XSmall image
$handle->image_resize = true;
$handle->image_ratio_y = true;
$handle->image_convert = 'jpg';
$handle->jpeg_quality = $params->get('imagesQuality');
$handle->file_auto_rename = false;
$handle->file_overwrite = true;
$handle->file_new_name_body = $filename.'_XS';
if (JRequest::getInt('itemImageXS')) {
$imageWidth = JRequest::getInt('itemImageXS');
} else {
$imageWidth = $params->get('itemImageXS', '100');
}
$handle->image_x = $imageWidth;
$handle->Process($savepath);Linia 204 - zmieniamy na:


if ($params->get('xl_size', '1')) {
//XLarge image
$handle->image_resize = true;
$handle->image_ratio_y = true;
$handle->image_convert = 'jpg';
$handle->jpeg_quality = $params->get('imagesQuality');
$handle->file_auto_rename = false;
$handle->file_overwrite = true;
$handle->file_new_name_body = $filename.'_XL';
if (JRequest::getInt('itemImageXL')) {
$imageWidth = JRequest::getInt('itemImageXL');
} else {
$imageWidth = $params->get('itemImageXL', '800');
}
$handle->image_x = $imageWidth;
$handle->Process($savepath);
}
if ($params->get('l_size', '1')) {
//Large image
$handle->image_resize = true;
$handle->image_ratio_y = true;
$handle->image_convert = 'jpg';
$handle->jpeg_quality = $params->get('imagesQuality');
$handle->file_auto_rename = false;
$handle->file_overwrite = true;
$handle->file_new_name_body = $filename.'_L';
if (JRequest::getInt('itemImageL')) {
$imageWidth = JRequest::getInt('itemImageL');
} else {
$imageWidth = $params->get('itemImageL', '600');
}
$handle->image_x = $imageWidth;
$handle->Process($savepath);
}
if ($params->get('m_size', '1')) {
//Medium image
$handle->image_resize = true;
$handle->image_ratio_y = true;
$handle->image_convert = 'jpg';
$handle->jpeg_quality = $params->get('imagesQuality');
$handle->file_auto_rename = false;
$handle->file_overwrite = true;
$handle->file_new_name_body = $filename.'_M';
if (JRequest::getInt('itemImageM')) {
$imageWidth = JRequest::getInt('itemImageM');
} else {
$imageWidth = $params->get('itemImageM', '400');
}
$handle->image_x = $imageWidth;
$handle->Process($savepath);
}
if ($params->get('s_size', '1')) {
//Small image
$handle->image_resize = true;
$handle->image_ratio_y = true;
$handle->image_convert = 'jpg';
$handle->jpeg_quality = $params->get('imagesQuality');
$handle->file_auto_rename = false;
$handle->file_overwrite = true;
$handle->file_new_name_body = $filename.'_S';
if (JRequest::getInt('itemImageS')) {
$imageWidth = JRequest::getInt('itemImageS');
} else {
$imageWidth = $params->get('itemImageS', '200');
}
$handle->image_x = $imageWidth;
$handle->Process($savepath);
}
if ($params->get('xs_size', '1')) {
//XSmall image
$handle->image_resize = true;
$handle->image_ratio_y = true;
$handle->image_convert = 'jpg';
$handle->jpeg_quality = $params->get('imagesQuality');
$handle->file_auto_rename = false;
$handle->file_overwrite = true;
$handle->file_new_name_body = $filename.'_XS';
if (JRequest::getInt('itemImageXS')) {
$imageWidth = JRequest::getInt('itemImageXS');
} else {
$imageWidth = $params->get('itemImageXS', '100');
}
$handle->image_x = $imageWidth;
$handle->Process($savepath);
}
C.D. W drugim poście

qbin2001
30-06-2010, 23:29
III. Plik "administrator/components/com_k2/models/items.php" (poprawione!)


Od lini 410 - jest:

//Source images
$sourceImage = JPATH_ROOT.DS.'media'.DS.'k2'.DS.'items'.DS.'src'. DS.md5("Image".$item->id).'.jpg';
$sourceImageXS = JPATH_ROOT.DS.'media'.DS.'k2'.DS.'items'.DS.'cache '.DS.md5("Image".$item->id).'_XS.jpg';
$sourceImageS = JPATH_ROOT.DS.'media'.DS.'k2'.DS.'items'.DS.'cache '.DS.md5("Image".$item->id).'_S.jpg';
$sourceImageM = JPATH_ROOT.DS.'media'.DS.'k2'.DS.'items'.DS.'cache '.DS.md5("Image".$item->id).'_M.jpg';
$sourceImageL = JPATH_ROOT.DS.'media'.DS.'k2'.DS.'items'.DS.'cache '.DS.md5("Image".$item->id).'_L.jpg';
$sourceImageXL = JPATH_ROOT.DS.'media'.DS.'k2'.DS.'items'.DS.'cache '.DS.md5("Image".$item->id).'_XL.jpg';
Od lini 410 - zmieniamy na:


//Source images
$sourceImage = JPATH_ROOT.DS.'media'.DS.'k2'.DS.'items'.DS.'src'. DS.md5("Image".$item->id).'.jpg';
if ($params->get('xs_size', '1')) {$sourceImageXS = JPATH_ROOT.DS.'media'.DS.'k2'.DS.'items'.DS.'cache '.DS.md5("Image".$item->id).'_XS.jpg';}
if ($params->get('s_size', '1')) {$sourceImageS = JPATH_ROOT.DS.'media'.DS.'k2'.DS.'items'.DS.'cache '.DS.md5("Image".$item->id).'_S.jpg';}
if ($params->get('m_size', '1')) {$sourceImageM = JPATH_ROOT.DS.'media'.DS.'k2'.DS.'items'.DS.'cache '.DS.md5("Image".$item->id).'_M.jpg';}
if ($params->get('l_size', '1')) {$sourceImageL = JPATH_ROOT.DS.'media'.DS.'k2'.DS.'items'.DS.'cache '.DS.md5("Image".$item->id).'_L.jpg';}
if ($params->get('xl_size', '1')) {$sourceImageXL = JPATH_ROOT.DS.'media'.DS.'k2'.DS.'items'.DS.'cache '.DS.md5("Image".$item->id).'_XL.jpg'; }IV. Plik "administrator/language/pl-PL/pl-PL.com_k2.ini"

dodajemy na końcu pliku:


/* generacja ilustracji */
USE XSMALL IMAGES=Używaj miniatur ilustracji
USE SMALL IMAGES=Używaj małych ilustracji
USE MEDIUM IMAGES=Używaj średnich ilustracji
USE LARGE IMAGES=Używaj dużych ilustracji
USE XLARGE IMAGES=Używaj wielkich ilustracjiOd tej chwili w Preferencjach K2 mamy dodatkową opcję wyłączenia nieużywanych rozmiarów obrazków.
Należy jednak pamiętać które zostały wyłączone przy wyborze wielkości ilustracji w opcjach Kategorii, gdyż nie są one usuwane z list wyboru (są one generowane z XML'a 'category.xml' - jeśli ktoś zna możliwość odfiltrowania ich proszę o kontakt.)

W załączniku wszystkie 4 pliki do podmiany (do najnowszej wersji K2 - 2.3).

PeFik
01-07-2010, 12:40
dzięki za wpis, bardzo trafna uwaga + porada, współtworzyłem serwis na K2 , więc widzę jak rośnie ilość MB zajmowanych przez nowe fotografie.

Sugeruje abyś napisał o tym także na forum K2 - community.getk2.org , niech grecy dołączą twoje rozwiązanie do następnego wydania.

Sova
01-07-2010, 13:08
przyjemna i przydatna rzecz!

PeFik
03-07-2010, 11:31
-----wykasowano, mój błąd-----

Przy okazji połączyłem ów modyfikacje + mini modyfikacje + spolszczenie i dałem na blogu (http://blog.elimu.pl/3920-k2-v2-3-spolszczenie-modyfikacja/)

qbin2001
04-07-2010, 16:36
@PeFik

Załączone spolszczenie pokazuje prawidłowo wersję 2.3! Chyba sobie nie przegrałeś pliku tam gdzie trzeba....:blink: