K2 Ogranicznie auto-generacji obrazków
Wyniki 1 do 6 z 6

Temat: K2 Ogranicznie auto-generacji obrazków

  1. #1
    Przeglądacz
    Dołączył
    23-12-2008
    Wpisy
    45
    Punkty
    15

    Domyślny K2 Ogranicznie auto-generacji obrazków

    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:

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

    Kod:
    <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:

    Kod:
                    //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:

    Kod:
                 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
    Załączone pliki Załączone pliki

  2. Pani Reklamowa
    Pani Reklamowa jest aktywna
    Avatar Panny Google

    Dołączył
    19-08-2010
    Skąd
    Internet
    Postów
    milion
    Pochwał
    setki
  3. #2
    Przeglądacz
    Dołączył
    23-12-2008
    Wpisy
    45
    Punkty
    15

    Domyślny

    III. Plik "administrator/components/com_k2/models/items.php" (poprawione!)


    Od lini 410 - jest:
    Kod:
                //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:

    Kod:
                //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:

    Kod:
    /* 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 ilustracji
    Od 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).
    Ostanio edytowane przez qbin2001 : 01-07-2010 19:52

  4. #3
    Senior PeFik awatar
    Dołączył
    18-02-2007
    Skąd
    Miasto Stu Mostów
    Wpisy
    5 465
    Punkty
    241

    Domyślny

    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.
    Współautor bloga o systemie Joomla! -> blog.elimu.pl < oraz kilku książek i artykułów o tym CMS.

  5. #4
    Wiarus Sova awatar
    Dołączył
    20-02-2006
    Skąd
    Kraków
    Wpisy
    1 098
    Punkty
    47

    Domyślny

    przyjemna i przydatna rzecz!
    "Po sposobie zadawania pytań widać, że niektórzy dopiero zaczynają swoją przygodę z myśleniem..."
    =====================================
    Przebudzenie, czyli wszytkich witam po długiej nieobecności...

  6. #5
    Senior PeFik awatar
    Dołączył
    18-02-2007
    Skąd
    Miasto Stu Mostów
    Wpisy
    5 465
    Punkty
    241

    Domyślny

    -----wykasowano, mój błąd-----

    Przy okazji połączyłem ów modyfikacje + mini modyfikacje + spolszczenie i dałem na blogu
    Ostanio edytowane przez PeFik : 05-07-2010 09:46
    Współautor bloga o systemie Joomla! -> blog.elimu.pl < oraz kilku książek i artykułów o tym CMS.

  7. #6
    Przeglądacz
    Dołączył
    23-12-2008
    Wpisy
    45
    Punkty
    15

    Domyślny

    @PeFik

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

Podobne tematy

  1. CB - auto zapisywanie do grup
    przez negali na forum CB i Joomsocial
    Odpowiedzi: 0
    Ostatni post/autor: 16-03-2010, 09:51
  2. czas na auto wylogowanie
    przez nikoś na forum Administracja Joomla!
    Odpowiedzi: 1
    Ostatni post/autor: 03-03-2009, 23:58
  3. Odpowiedzi: 0
    Ostatni post/autor: 25-02-2009, 20:40
  4. Kontakt z Auto Stand 2.1
    przez maxigas na forum Administracja składnikami
    Odpowiedzi: 0
    Ostatni post/autor: 15-11-2007, 21:19
  5. Auto-Linki
    przez sobol84 na forum Administracja składnikami
    Odpowiedzi: 4
    Ostatni post/autor: 10-08-2006, 18:40

Reguły pisania

  • Nie możesz zakładać nowych tematów
  • Nie możesz dodawać wypowiedzi
  • Nie możesz dodawać załączników
  • Nie możesz poprawiać swoich postów
  •