Inserisco immagine per una categoria ma appare anche x altre

Postate qui discussioni di carattere generale riguardo a problemi di installazione e configurazione di osCommerce

Moderatore: mod Generali

Rispondi
aaacollezioni
membro Junior
membro Junior
Messaggi: 12
Iscritto il: 09/08/2010, 15:21

Inserisco immagine per una categoria ma appare anche x altre

Messaggio da aaacollezioni »

Come potete vedere anche dal link (http://www.aaacollezioni.it/index.php?c ... anguage=it) appena ho inserito l'immagine della categoria Intrepido (sottocategoria di "Riviste"), questa si è andata a posizionare anche come immagine della categoria Euroflash.
La cosa strana è che se vado a modificare l'immagine di Euroflash da Admin/Catalogo, questa risulta corretta(images/Euroflash.jpg).
L'esempio che vi ho portato non è l'unico. Se provo ad inserire altre categorie o sottocategorie, questa storia si ripete anche con altre cartelle (ad esempio: prima di scrivervi, è capitato che il logo Euroflash fosse al posto delle categorie Goal ed Intrepido).
Secondo voi cos'è che fa si che le foto di una categoria vadano a piazzarsi come foto di un'altra categoria?
Ah! L'unica contrib che ho inserito è Thumbnail+Real Image (utile per lasciare le immagini proporzionate).

P.S.: molto probabilmente non c'entra niente ma mi accade un fatto strano con le foto. Normalmente le rimpicciolisco tutte (non quelle dei prodotti, solo quelle delle categorie) a circa 100x130. A quel punto da Admin/Catalogo, creo una categoria e cliccando su "sfoglia" vado ad inserire l'immagine. Il problema (non so ancora se lo sia oppure no) è che nella cartella "catalog" si ricreano automaticamente le foto che ho appena inserito con nomi tipo questo: -57x40.jpgs-57x40.jpg-57x40.jpg0001-57x40 o questo -100x57.jpgs-100x57.jpg-100x57.jpg-100x57.jpg-100x57.
Ma è normale questa "duplicazione"?
Ogni tanto questi duplicati li elimino e vedo che non creano alcun problema. L'unica cosa è che mi intasano la cartella di foto che sono già presenti in "images".

Se non fossi stato troppo chiaro mi scuso in anticipo e rimango sempre a disposizione per maggiori chiarimenti.
Questo problema mi blocca il lavoro in quanto non voglio più andare avanti nell'inserire prodotti e categorie perchè, non sapendo qual'è il problema, non vorrei mai fare tutto questo lavoro per poi avere una vostra risposta che mi dice che dovrò rifare tutto da capo.

GRAZIE MILLE per le vostre risposte e buon Ferragosto a tutti.
06voip
membro Veteran
membro Veteran
Messaggi: 549
Iscritto il: 12/09/2009, 11:58

Re: Inserisco immagine per una categoria ma appare anche x altre

Messaggio da 06voip »

non conosco la contrib che hai installato però mi sa che è quella che ti crea problemi, prova a toglierla e ad inserire le immagini di categoria a 100x57

xiao
ATTENZIONE: Questi non sono cambiamenti banali. C'è un sacco di codice qui :o) bene bravo bis!!:)
aaacollezioni
membro Junior
membro Junior
Messaggi: 12
Iscritto il: 09/08/2010, 15:21

Re: Inserisco immagine per una categoria ma appare anche x altre

Messaggio da aaacollezioni »

Prima di tutto ti ringrazio tanto per la tua attenzione.
Devo ammettere un errore (ho sbagliato col file facendo il copia/incolla): il programma che ho installato non è quello che ho citato sopra ma è "Dynamic Image Resizing".

Mi consigli comunque di toglierlo?

In caso di risposta affermativa, quale altra contrib che non interferisce col programma mi consigli di installare per risolvere lo stesso problema (lasciare le foto che inserisco -sia verticali che orizzontali- proporzionate e non schiacciate)?
Ti ringrazio ancora molto e scusami in anticipo se ti faccio perdere un po' di tempo.
06voip
membro Veteran
membro Veteran
Messaggi: 549
Iscritto il: 12/09/2009, 11:58

Re: Inserisco immagine per una categoria ma appare anche x altre

Messaggio da 06voip »

figurati, solo che non conosco neanche questa, più che consigliarti di togliere la contrib, visto che ti cra un po' di confusione ti consiglio di studiartela bene prima di adottarla! poi considera che lato SEO è consigliato che le immagini abbiano un nome descrittivo.

Per lasciare le immagini proporzionate, a parte quelle delle categorie, bisogna farle quadrate! tipo quelle per categoria le fai prima proporzionate a 57x57 poi se necessario le allunghi a 100x57 con degli spazi bianchi. Per i prodotti invece se riesci fai direttamente almeno un 300x300

all'inizio volevo implementare anche io una contrib di questo tipo però poi, nel mio caso, mi è venuta a mancare l'esigenza visto che quelle che carico le recupero già quasi tutte quadrate, così se mi capita qualche immagine non conforme la modifico a mano..

Però alla fine dipende sempre da quante ne devi gestire.. se non lo sai già, in admin->configurazione->immagini ci sono i parametri di configurazione delle misure per le immagini sul sito, prova a vederle così ti fai un'idea di come vengono gestite, però a meno che non hai esigenze particolari, lascia pure i valori di default

xiao
ATTENZIONE: Questi non sono cambiamenti banali. C'è un sacco di codice qui :o) bene bravo bis!!:)
aaacollezioni
membro Junior
membro Junior
Messaggi: 12
Iscritto il: 09/08/2010, 15:21

Re: Inserisco immagine per una categoria ma appare anche x altre

Messaggio da aaacollezioni »

Avevi ragione.
Ho tolto la contrib ed il problema è stato risolto.
Per quel che riguarda le dimensioni delle foto, avendo notato che praticamente tutte quelle rettangolari (come figurine o riviste) sono circa 100x130, ho modificato le impostazioni portandole da 100x57 a 100x130.
Per ora va tutto bene, ma quando dovrò inserire delle immagini quadrate?
o alcune orizzontali (come queste http://www.aaacollezioni.it/index.php?cPath=1)?
Quando dici che in alcune foto aggiungi del bianco sotto per renderle proporzionate, questa cosa la fai con un programma banale di editing di fotografie?
Ti ringrazio ancora molto per le tue risposte.



P.S.: a titolo informativo ti dico che la contrib che ho tolto era formata solo da un file di testo in cui c'era scritto così (scusatemi tutti se è un po' lunga):

==============================Dynamic Image Resizing====================================


Presenting product images in your store is always a nightmare with osCommerce. You upload your image to your store only to find it has been resized and looks awful. Our Resize module solves this problem by dynamically resizing your product images to a more suitable size.

Once generated, the image is then displayed to the user and cached for future use. The advantage of this method is you use less bandwidth and your images always appear clean and clear.

With our module you can:

*
Upload a single high quality image and have it resized on different page types
*
Customise the output size using the osCommerce admin site
*
Enhance the enlarge image display

To install the module you will need to edit one file: /catalog/includes/functions/html_output.php. Open this file in your php editing program or any text editor, find the following function:
Replace original image function

===============================FIND====================================

// The HTML image wrapper function
function tep_image($src, $alt = '', $width = '', $height = '', $parameters = '') {
if ( (empty($src) || ($src == DIR_WS_IMAGES)) && (IMAGE_REQUIRED == 'false') ) {
return false;
}

// alt is added to the img tag even if it is null to prevent browsers from outputting
// the image filename as default
$image = '<img src="' . tep_output_string($src) . '" border="0" alt="' . tep_output_string($alt) . '"';

if (tep_not_null($alt)) {
$image .= ' title=" ' . tep_output_string($alt) . ' "';
}

if ( (CONFIG_CALCULATE_IMAGE_SIZE == 'true') && (empty($width) || empty($height)) ) {
if ($image_size = @getimagesize($src)) {
if (empty($width) && tep_not_null($height)) {
$ratio = $height / $image_size[1];
$width = intval($image_size[0] * $ratio);
} elseif (tep_not_null($width) && empty($height)) {
$ratio = $width / $image_size[0];
$height = intval($image_size[1] * $ratio);
} elseif (empty($width) && empty($height)) {
$width = $image_size[0];
$height = $image_size[1];
}
} elseif (IMAGE_REQUIRED == 'false') {
return false;
}
}

if (tep_not_null($width) && tep_not_null($height)) {
$image .= ' width="' . tep_output_string($width) . '" height="' . tep_output_string($height) . '"';
}

if (tep_not_null($parameters)) $image .= ' ' . $parameters;

$image .= '>';

return $image;
}

=============================AND REPLACE WITH====================================

// The HTML image wrapper function
function tep_image($src, $alt = '', $width = '', $height = '', $parameters = '', $supressOutput = false)
{
// if no width or height specified or file not found use default function
if ((!$width) || (!$height) || (!is_file(DIR_FS_CATALOG . '/' . $src))){
return tep_default_image($src, $alt, $width, $height, $parameters);
}

// If file is a gif simply output as we can't handle gif images
$filetype = strrchr($src, '.');
if($filetype == '.gif'){
return tep_default_image($src, $alt, $width, $height, $parameters);
}

// Name for the resampled image (always JPEG for decent results in size and quality
$newName = eregi_replace( '.([a-z]{3,4})', "-{$width}x{$height}.jpg", $src );
//$newName = str_replace(DIR_WS_IMAGES, DIR_WS_IMAGES . 'thumbs/', $newName);

if(!file_exists(DIR_WS_IMAGES . 'thumbs')){
mkdir(DIR_WS_IMAGES . 'thumbs');
chmod(DIR_WS_IMAGES . 'thumbs', '777');
}

// if resampled image exists, no need to create. Use existing one.
// Added check to determine whether thumbnail is older than main image. If it is, the main image has been updated. Generate a new thumbnail.
if( is_file( DIR_FS_CATALOG . str_replace(DIR_WS_IMAGES, DIR_WS_IMAGES . 'thumbs/', $newName)) && filemtime( DIR_FS_CATALOG . $src) < filemtime ( DIR_FS_CATALOG . str_replace(DIR_WS_IMAGES, DIR_WS_IMAGES . 'thumbs/', $newName)) )
{
$src = str_replace(DIR_WS_IMAGES, DIR_WS_IMAGES . 'thumbs/', $newName);
if($supressOutput == true){
return $src;
} else {
return tep_default_image($src, $alt, $width, $height, $parameters);
}
}

// get the size of the image. if width or height=0, image is broken. No processing.
$size = GetImageSize(DIR_FS_CATALOG . '/' . $src);
if (!$size[0] || !$size[1])
return tep_default_image($src, $alt, $width, $height, $parameters);

// Calculate Scaling Factor and x,y pos for centering the thumbnail
// If scale = 1, image does not need to be resized.
$scale = min($width/$size[0], $height/$size[1]);
if ( $scale == 1 )
return tep_default_image($src, $alt, $width, $height, $parameters);

$newwidth = (int)($size[0]*$scale);
$newheight = (int)($size[1]*$scale);
$xpos = (int)(($width - $newwidth)/2);
$ypos = (int)(($height - $newheight)/2);

//create the destination image resource.
//always use true color here, or you'll get some real bad color shifts
$destImg = ImageCreateTrueColor($width, $height);
$backColor=ImageColorAllocate($destImg, 255, 255, 255);
ImageFilledRectangle($destImg, 0, 0, $width, $height, $backColor);

// Check image format. Only process JPG or PNG. GIF not supported by PHP.
// The results with gifs were no good anyway
// We set the memory limit very high so that the script can handle big images.
// The image resize only needs to be done once anyway.
ini_set("memory_limit","64M");
$newName = str_replace(DIR_WS_IMAGES, DIR_WS_IMAGES . 'thumbs/', $newName);
switch ( $size[2] )
{
case 2: // JPG
$sourceImg = ImageCreateFromJPEG (DIR_FS_CATALOG . '/' . $src);
if (function_exists('ImageCopyResampled'))
ImageCopyResampled($destImg, $sourceImg, $xpos, $ypos, 0, 0, $newwidth, $newheight, $size[0], $size[1]);
else
ImageCopyResized($destImg, $sourceImg, $xpos, $ypos, 0, 0, $newwidth, $newheight, $size[0], $size[1]);
imagejpeg($destImg, DIR_FS_CATALOG . '/' . $newName, 90);
$src = $newName; // Use the resampled image
$width = $height = ""; // and it's own properties
break;
case 3: // PNG
$sourceImg = ImageCreateFromPNG (DIR_FS_CATALOG . '/' . $src);
if (function_exists('ImageCopyResampled'))
ImageCopyResampled($destImg, $sourceImg, $xpos, $ypos, 0, 0, $newwidth, $newheight, $size[0], $size[1]);
else
ImageCopyResized($destImg, $sourceImg, $xpos, $ypos, 0, 0, $newwidth, $newheight, $size[0], $size[1]);
imagejpeg($destImg, DIR_FS_CATALOG . '/' . $newName, 90);
$src = $newName;
$width = $height = "";
break;
}
if($supressOutput == true){
return $newName;
} else {
return tep_default_image($src, $alt, $width, $height, $parameters);
}
}

function tep_default_image($src, $alt = '', $width = '', $height = '', $parameters = '') {
if ( (empty($src) || ($src == DIR_WS_IMAGES)) && (IMAGE_REQUIRED == 'false') ) {
return false;
}

// alt is added to the img tag even if it is null to prevent browsers from outputting
// the image filename as default
$image = '<img src="' . tep_output_string($src) . '" border="0" alt="' . tep_output_string($alt) . '"';

if (tep_not_null($alt)) {
$image .= ' title=" ' . tep_output_string($alt) . ' "';
}

if ( (CONFIG_CALCULATE_IMAGE_SIZE == 'true') && (empty($width) || empty($height)) ) {
if ($image_size = @getimagesize($src)) {
if (empty($width) && tep_not_null($height)) {
$ratio = $height / $image_size[1];
$width = intval($image_size[0] * $ratio);
} elseif (tep_not_null($width) && empty($height)) {
$ratio = $width / $image_size[0];
$height = intval($image_size[1] * $ratio);
} elseif (empty($width) && empty($height)) {
$width = $image_size[0];
$height = $image_size[1];
}
} elseif (IMAGE_REQUIRED == 'false') {
return false;
}
}

if (tep_not_null($width) && tep_not_null($height)) {
$image .= ' width="' . tep_output_string($width) . '" height="' . tep_output_string($height) . '"';
}

if (tep_not_null($parameters)) $image .= ' ' . $parameters;

$image .= '>';

return $image;
}

=========================================================================

Once the module has been installed you will begin to see the benefits immediately, your product images will appear clearer and will no longer look pixelated. You can easily tweak the sizes of the images output by logging into the osCommerce admin and viewing the image size configuration page.

The small image section controls all products images that are displayed on your site, it’s best tonormally only enter either a required height or width and not both. This will then allow the module to mathematically calculate the required output image size. If you want to disable the module and output all images at their original size just change the height and width to 0.

Note: The module can only handle JPEG or PNG. Gif images will not be processed.
06voip
membro Veteran
membro Veteran
Messaggi: 549
Iscritto il: 12/09/2009, 11:58

Re: Inserisco immagine per una categoria ma appare anche x altre

Messaggio da 06voip »

guarda che ad esempio l'immagine Euroflash.jpg in orgine ce l'hai a 199px × 85px e il sistema te la adatta a 100x30 come gli hai detto, bisogna modificare a priori le misure delle l'immagini se no te le deforma, un editing di fotografie dovrebbe andare bene, l'importante che ti faccia variare le misure mantenendo le proporzioni e in un secondo momento potergli dare le misure corrette aggiungendo spazi bianchi.. con gimp fai tutto solo che non è proprio così banale.. in rete però ci sono un sacco di guide!

le misure devono essere LxA, e come ti dicevo quadrate servono per i prodotti, che al momento non hai ancora caricato, era un consiglio in + :D

xiao
ATTENZIONE: Questi non sono cambiamenti banali. C'è un sacco di codice qui :o) bene bravo bis!!:)
aaacollezioni
membro Junior
membro Junior
Messaggi: 12
Iscritto il: 09/08/2010, 15:21

Re: Inserisco immagine per una categoria ma appare anche x altre

Messaggio da aaacollezioni »

Anzitutto scusatemi per il ritardo.
Ho seguito il tuo consiglio.
Mi sono salvato un foglio bianco 130x100 (misura che ho impostato nelle configurazioni) con Picture it (so che è un po' vecchio ma mi trovo bene) e, quando ho qualche immagine di formato diverso, ce la incollo sopra e la salvo come .png.
Sicuramente le alternative potranno essere molteplici: ciascuno, poi, dovrà scegliere quella più comoda per se.
Vi ringrazio tutti per il vostro supporto.
Rispondi