Pagina 1 di 1

Cartelle Immagini Per Categorie

Inviato: 01/12/2005, 20:40
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.

Inviato: 02/12/2005, 22:28
da Bistecc1
Nessuno è così gentile da darmi una risposta?

Inviato: 02/12/2005, 22:34
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

Azpita un altro perfezionista ...

Inviato: 03/12/2005, 3:17
da MrFLY
come me.....

alla ricerca della perfezione...

viewtopic.php?t=4948&highlight=

Inviato: 03/12/2005, 12:43
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.

Inviato: 03/12/2005, 14:54
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.

Inviato: 03/12/2005, 15:29
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>

Inviato: 03/12/2005, 17:29
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

Inviato: 03/12/2005, 17:31
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

Inviato: 03/12/2005, 18:39
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.

Inviato: 04/12/2005, 8:37
da MrFLY
Grandioso .. mi sono un po perso ma mi riepilogo la correzione con calma.

:D

Inviato: 04/12/2005, 14:33
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? :?

Inviato: 04/12/2005, 15:08
da Bistecc1
Si hai ragione... avevo sbagliato a fare copia incolla... adesso è corretto. :D