Cartelle Immagini Per Categorie

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

Moderatore: mod Generali

Rispondi
Bistecc1
membro Junior
membro Junior
Messaggi: 19
Iscritto il: 28/11/2005, 15:53
Contatta:

Cartelle Immagini Per Categorie

Messaggio da Bistecc1 »

Ciao a tutti!,
Forse è un problema che è già stato affrontato ma sono nuovo e quindi:

Vorrei che le immagini caricate degli articoli venissero memorizzate nella cartella relativa alla categoria dentro la cartella images, inoltre sarebbe carino che se la cartella non esiste venisse creata automaticamente.

E' possibile in qualche modo? se puo servire utilizzo il modulo Image Magic per avere le anteprime delle immagini.
Bistecc1
membro Junior
membro Junior
Messaggi: 19
Iscritto il: 28/11/2005, 15:53
Contatta:

Messaggio da Bistecc1 »

Nessuno è così gentile da darmi una risposta?
Bass
membro Master
membro Master
Messaggi: 3593
Iscritto il: 18/04/2004, 0:00
Località: Varese
Contatta:

Messaggio da Bass »

Bistecc1 ha scritto:Nessuno è così gentile da darmi una risposta?
Non credo si possano creare direttamente le cartelle, a meno che non ci sia qualche contribution, ma per metterle in cartelle all'interno di images non ci sono problemi, basta che rei le cartelle e, quando complili la scheda prodotto, indichi il percorso

'iao

Sergio
http://www.oscomtemplate.com - E' disponibile il nuovo pacchetto free con forum di supporto

http://www.semilandia.it
MrFLY
membro Baby
membro Baby
Messaggi: 61
Iscritto il: 12/11/2005, 16:58
Località: Salerno
Contatta:

Azpita un altro perfezionista ...

Messaggio da MrFLY »

come me.....

alla ricerca della perfezione...

viewtopic.php?t=4948&highlight=
Bistecc1
membro Junior
membro Junior
Messaggi: 19
Iscritto il: 28/11/2005, 15:53
Contatta:

Messaggio da Bistecc1 »

catalog/admin/categories.php

Codice: Seleziona tutto

Sostituire:
// copy image only if modified
        $products_image = new upload('products_image');
        $products_image->set_destination(DIR_FS_CATALOG_IMAGES);
Con:

Codice: Seleziona tutto

Sostituire:
// copy image only if modified
        $products_image = new upload('products_image');
        $products_image->set_destination(DIR_FS_CATALOG_IMAGES.tep_output_generated_category_path($current_category_id));
In questo modo quando si salva un'immagine essa viene memorizzata nella cartella che ha lo stesso nome della categoria.

1° problema risolto.

Collaboriamo per risolvere anche gli altri?

Nota: con questo sistema non vengono lette le immagini perchè vengono cercate nella cartella images.
Bistecc1
membro Junior
membro Junior
Messaggi: 19
Iscritto il: 28/11/2005, 15:53
Contatta:

Messaggio da Bistecc1 »

/catalog/includes/modules/product_linsting.php

aggiungere all'inizio:

Codice: Seleziona tutto

  $cartella = tep_db_query("select categories_name from " . TABLE_CATEGORIES_DESCRIPTION . " where categories_id = '" . $cPath . "'");
  $cartella = tep_db_fetch_array($cartella);
  $cartella = $cartella['categories_name'];
sostituire:

Codice: Seleziona tutto

case 'PRODUCT_LIST_IMAGE':
            $lc_align = 'center';
            if (isset($HTTP_GET_VARS['manufacturers_id'])) {
              $lc_text = '<a href="' . tep_href_link(FILENAME_PRODUCT_INFO, 'manufacturers_id=' . $HTTP_GET_VARS['manufacturers_id'] . '&products_id=' . $listing['products_id']) . '">' . tep_image(DIR_WS_IMAGES. $listing['products_image'], $listing['products_name'], SMALL_IMAGE_WIDTH, SMALL_IMAGE_HEIGHT) . '</a>';
            } else {
              $lc_text = ' <a href="' . tep_href_link(FILENAME_PRODUCT_INFO, ($cPath ? 'cPath=' . $cPath . '&' : '') . 'products_id=' . $listing['products_id']) . '">' . tep_image(DIR_WS_IMAGES. $listing['products_image'], $listing['products_name'], SMALL_IMAGE_WIDTH, SMALL_IMAGE_HEIGHT) . '</a> ';
            }
            break;
con:

Codice: Seleziona tutto

case 'PRODUCT_LIST_IMAGE':
            $lc_align = 'center';
            if (isset($HTTP_GET_VARS['manufacturers_id'])) {
              $lc_text = '<a href="' . tep_href_link(FILENAME_PRODUCT_INFO, 'manufacturers_id=' . $HTTP_GET_VARS['manufacturers_id'] . '&products_id=' . $listing['products_id']) . '">' . tep_image(DIR_WS_IMAGES."$cartella/" . $listing['products_image'], $listing['products_name'], SMALL_IMAGE_WIDTH, SMALL_IMAGE_HEIGHT) . '</a>';
            } else {
              $lc_text = ' <a href="' . tep_href_link(FILENAME_PRODUCT_INFO, ($cPath ? 'cPath=' . $cPath . '&' : '') . 'products_id=' . $listing['products_id']) . '">' . tep_image(DIR_WS_IMAGES."$cartella/"  . $listing['products_image'], $listing['products_name'], SMALL_IMAGE_WIDTH, SMALL_IMAGE_HEIGHT) . '</a> ';
            }
            break;
Con questa modifica è possibile vedere le immagini nella lista prodotti di una categoria.

Note: funziona solo con una sola lingua installata. e il nome delle cartelle deve essere IDENTICO a quello delle categorie.
Bistecc1
membro Junior
membro Junior
Messaggi: 19
Iscritto il: 28/11/2005, 15:53
Contatta:

Messaggio da Bistecc1 »

/catalog/product_info.php

Aggingere all'inizio:

Codice: Seleziona tutto

  $cartella = tep_db_query("select categories_name from " . TABLE_CATEGORIES_DESCRIPTION . " where categories_id = '" . $cPath . "'");
  $cartella = tep_db_fetch_array($cartella);
  $cartella = $cartella['categories_name'];
sostituire:

Codice: Seleziona tutto

<script language="javascript"><!--
document.write('<?php echo '<a href="javascript:popupWindow(\\\'' . tep_href_link(FILENAME_POPUP_IMAGE, 'pID=' . $product_info['products_id']) .'\\\')">' . tep_image(DIR_WS_IMAGES. $product_info['products_image'], addslashes($product_info['products_name']), SMALL_IMAGE_WIDTH, SMALL_IMAGE_HEIGHT, 'hspace="5" vspace="5"') . '<br>' . TEXT_CLICK_TO_ENLARGE . '</a>'; ?>');
//--></script>
<noscript>
<?php echo '<a href="' . tep_href_link(DIR_WS_IMAGES. $product_info['products_image']) . '" target="_blank">' . tep_image(DIR_WS_IMAGES. $product_info['products_image'], $product_info['products_name'], SMALL_IMAGE_WIDTH, SMALL_IMAGE_HEIGHT, 'hspace="5" vspace="5"') . '<br>' . TEXT_CLICK_TO_ENLARGE . '</a>'; ?>
</noscript>
Con:

Codice: Seleziona tutto

<script language="javascript"><!--
document.write('<?php echo '<a href="javascript:popupWindow(\\\'' . tep_href_link(FILENAME_POPUP_IMAGE, 'pID=' . $product_info['products_id']) . '&cPath=' . $cPath .'\\\')">' . tep_image(DIR_WS_IMAGES."$cartella/" . $product_info['products_image'], addslashes($product_info['products_name']), SMALL_IMAGE_WIDTH, SMALL_IMAGE_HEIGHT, 'hspace="5" vspace="5"') . '<br>' . TEXT_CLICK_TO_ENLARGE . '</a>'; ?>');
//--></script>
<noscript>
<?php echo '<a href="' . tep_href_link(DIR_WS_IMAGES."$cartella/". $product_info['products_image']) . '" target="_blank">' . tep_image(DIR_WS_IMAGES."$cartella/" . $product_info['products_image'], $product_info['products_name'], SMALL_IMAGE_WIDTH, SMALL_IMAGE_HEIGHT, 'hspace="5" vspace="5"') . '<br>' . TEXT_CLICK_TO_ENLARGE . '</a>'; ?>
</noscript>
/catalog/popup_image.php

Aggiungere all'inizio:

Codice: Seleziona tutto

  $cartella = tep_db_query("select categories_name from " . TABLE_CATEGORIES_DESCRIPTION . " where categories_id = '" . (int)$HTTP_GET_VARS['cPath'] . "'");
  $cartella = tep_db_fetch_array($cartella);
  $cartella = $cartella['categories_name'];
Sostituire:

Codice: Seleziona tutto

<body onload="resize();">
<?php echo tep_image(DIR_WS_IMAGES. $products['products_image'], $products['products_name']); ?>
</body>
Con:

Codice: Seleziona tutto

<body onload="resize();">
<?php echo tep_image(DIR_WS_IMAGES."$cartella/" . $products['products_image'], $products['products_name']); ?>
</body>
MrFLY
membro Baby
membro Baby
Messaggi: 61
Iscritto il: 12/11/2005, 16:58
Località: Salerno
Contatta:

Messaggio da MrFLY »

Grandioso Bisteccone!!!

Appena ho un 2 minuti le provo per vedere il risultato.

Se come mi sembra di capire apporta le giuste migliorie bisognerebbe implementare queste modifiche nella ms3.

Ho capito tutti i post ma non l'ultimo.. che modifiche apporta?

Ciao
MrFLY
membro Baby
membro Baby
Messaggi: 61
Iscritto il: 12/11/2005, 16:58
Località: Salerno
Contatta:

Messaggio da MrFLY »

Bistecc1 ha scritto:catalog/admin/categories.php

Codice: Seleziona tutto

Sostituire:
// copy image only if modified
        $products_image = new upload('products_image');
        $products_image->set_destination(DIR_FS_CATALOG_IMAGES);
Con:

Codice: Seleziona tutto

Sostituire:
// copy image only if modified
        $products_image = new upload('products_image');
        $products_image->set_destination(DIR_FS_CATALOG_IMAGES.tep_output_generated_category_path($current_category_id));
In questo modo quando si salva un'immagine essa viene memorizzata nella cartella che ha lo stesso nome della categoria.

1° problema risolto.

Collaboriamo per risolvere anche gli altri?

Nota: con questo sistema non vengono lette le immagini perchè vengono cercate nella cartella images.
Perdonami ma crea in automatico in images la cartella con lo stesso nome della categoria o devo impostarla a mano?

Tnx
Bistecc1
membro Junior
membro Junior
Messaggi: 19
Iscritto il: 28/11/2005, 15:53
Contatta:

Messaggio da Bistecc1 »

CANCELLATE TUTTO QUANTO DETTO IN PRECEDENZA!!!

METODO MOLTO MOLTO PIU SEMPLICE!!!

Mentre modificavo i file mi è venuto in mente... ma perchè mi devo scannare a modificare 50mila file solo per aggiungere ogni volta il nome della cartella davanti al nome del file immagine quando posso memorizzare direttamente nel db il nome del file compreso il nome della cartella?????

Detto fatto:

andate in /catalog/admin/categories.php

e sostituite:

Codice: Seleziona tutto

if (isset($HTTP_POST_VARS['products_image']) && tep_not_null($HTTP_POST_VARS['products_image']) && ($HTTP_POST_VARS['products_image'] != 'none')) {
            $sql_data_array['products_image'] = tep_db_prepare_input($HTTP_POST_VARS['products_image']);
          }
Con:

Codice: Seleziona tutto

if (isset($HTTP_POST_VARS['products_image']) && tep_not_null($HTTP_POST_VARS['products_image']) && ($HTTP_POST_VARS['products_image'] != 'none')) {
            $sql_data_array['products_image'] = tep_output_generated_category_path($current_category_id)."/".tep_db_prepare_input($HTTP_POST_VARS['products_image']);
          }
Questo era per inserire nel database come nome del file "cartella/nome.xxx"

adesso sostituite:

Codice: Seleziona tutto

// copy image only if modified
        $products_image = new upload('products_image');
        $products_image->set_destination(DIR_FS_CATALOG_IMAGES);
Con:

Codice: Seleziona tutto

// copy image only if modified
        $products_image = new upload('products_image');
        $products_image->set_destination(DIR_FS_CATALOG_IMAGES.tep_output_generated_category_path($current_category_id));
Questo invece serve per salvare i file immagine dei prodotti nella cartella giusta, cioè quella della categoria a cui appartiene.


PER ORA le cartella bisogna crearsele da soli ma sto studiando il modo di farle creare automaticamente quando si crea una categoria.
Ultima modifica di Bistecc1 il 04/12/2005, 15:06, modificato 1 volta in totale.
MrFLY
membro Baby
membro Baby
Messaggi: 61
Iscritto il: 12/11/2005, 16:58
Località: Salerno
Contatta:

Messaggio da MrFLY »

Grandioso .. mi sono un po perso ma mi riepilogo la correzione con calma.

:D
Avatar utente
ciuski
membro Regular
membro Regular
Messaggi: 211
Iscritto il: 22/06/2005, 18:14
Località: www.tokimeki.it
Contatta:

Messaggio da ciuski »

Bistecc1 ha scritto:andate in /catalog/admin/categories.php

e sostituite:

Codice: Seleziona tutto

if (isset($HTTP_POST_VARS['products_image']) && tep_not_null($HTTP_POST_VARS['products_image']) && ($HTTP_POST_VARS['products_image'] != 'none')) {
            $sql_data_array['products_image'] = tep_output_generated_category_path($current_category_id)."/".tep_db_prepare_input($HTTP_POST_VARS['products_image']);
          }
Con:

Codice: Seleziona tutto

if (isset($HTTP_POST_VARS['products_image']) && tep_not_null($HTTP_POST_VARS['products_image']) && ($HTTP_POST_VARS['products_image'] != 'none')) {
            $sql_data_array['products_image'] = tep_output_generated_category_path($current_category_id)."/".tep_db_prepare_input($HTTP_POST_VARS['products_image']);
          }
scusa ma non sono uguali? :?
Immagine
Immagine
Bistecc1
membro Junior
membro Junior
Messaggi: 19
Iscritto il: 28/11/2005, 15:53
Contatta:

Messaggio da Bistecc1 »

Si hai ragione... avevo sbagliato a fare copia incolla... adesso è corretto. :D
Rispondi