PDF Catalog v1.59

Questo forum è dedicato alle discussioni riguardanti le contribution per osCommerce

Moderatore: mod Generali

Rispondi
Avatar utente
max8
membro Baby
membro Baby
Messaggi: 57
Iscritto il: 28/12/2004, 1:00
Località: ITA

PDF Catalog v1.59

Messaggio da max8 »

Ho risolto il problema per il timeout dell'esecuzione dello script,
problema che appare inevitabilmente durante la creazione di cataloghi in PDF per più lingue.

se a qualcuno interessa... :)

appena capisco come funziona l'invio di una Patch per le contrib lo posto su osCommerce.com! Comunque il pezzo modificato all'interno del file PDF_catalogue.php è questo (riga 776) :

Codice: Seleziona tutto

<?php
    switch ($HTTP_GET_VARS['action']) {
      case 'save':
        $languages = tep_get_languages();
        $languages_string = '';
      
//        $i=1;
         if (!isset($_POST['a']))
		 {$a=0;}
		 else
		 {$a=$_POST['a'];}
if ($a<sizeof($languages)){     
	    for ($i=$a; $i<$a+1; $i++)//sizeof($languages)
        {
            $pdf=new PDF();
            $pdf->Open();
            $pdf->SetDisplayMode("real");
            $pdf->AliasNbPages();
            if(SHOW_NEW_PRODUCTS) $pdf->NewProducts($languages[$i]['id'],$languages[$i]['code']);
            $pdf->CategoriesTree($languages[$i]['id'],$languages[$i]['code']);
            $pdf->CategoriesListing($languages[$i]['id'],$languages[$i]['code']);
            if (SHOW_INDEX) {
                $pdf->DrawIndex();
            }
            $pdf->Output(DIR_FS_CATALOG . DIR_WS_PDF_CATALOGS . PDF_FILENAME . "_" . $languages[$i]['id'].".pdf",false);
        }
?>
      <tr>
	<td>
	  <table>
    	    <tr>
		<td class="main"><br>     <? echo PDF_GENERATED . " <font color=red>".$i. "</font>";  ?></td>
	    </tr>
	  </table>
        </td>
      </tr>
<?php
	    $a++;
		echo '<tr><td class="main"><br><br><br>    &nbsp' . PDF_PRE_GENERATED . '  ';
        echo tep_draw_form('language', FILENAME_PDF_CATALOGUE, 'action=save');
        echo tep_image_submit('button_save.gif', IMAGE_SAVE) . ' <a href="' . tep_href_link(FILENAME_PDF_CATALOGUE, 'lngdir=' . $HTTP_GET_VARS['lngdir']) . '">';
        echo '<input type="hidden" name="a" value="'.$a.'">';
		echo "</td></tr></form>";
}//
        break;
      default:
        echo '<tr><td class="main"><br><br><br>    &nbsp' . PDF_PRE_GENERATED . '  ';
        echo tep_draw_form('language', FILENAME_PDF_CATALOGUE, 'action=save');
        echo tep_image_submit('button_save.gif', IMAGE_SAVE) . ' <a href="' . tep_href_link(FILENAME_PDF_CATALOGUE, 'lngdir=' . $HTTP_GET_VARS['lngdir']) . '">';
        echo "</td></tr></form>";
    }
?>      
nel mio caso è stato necessario aggiungere

set_time_limit(600);

all'interno del file pdf_gif.php



spero di esservi stato d'aiuto.
varr98
membro Junior
membro Junior
Messaggi: 16
Iscritto il: 15/04/2005, 19:28
Località: varese

?

Messaggio da varr98 »

si, ma in che punto ?

vorrei provare questa soluzione, perchè quando cerco di generare il pdf, mi si congela tutto .... il processo ieplorer cresce in occupazione ram praticamente all'infinito e dopo circa 20/25 minuti interrompo, perchè a quel punto la macchina sta per scoppiare !!!

ciao
Roberto
Avatar utente
max8
membro Baby
membro Baby
Messaggi: 57
Iscritto il: 28/12/2004, 1:00
Località: ITA

Messaggio da max8 »

set_time_limit(600);

all'interno del file pdf_gif.php

io l'ho inserito all'interno della funzione che si occupa delle immagini,
prova a fare cosi...

senza effettuare nessuna modifica esegui il tuo script,
segnati la funzione che manda in timeout l'esecuzione e in quella inserisci
il set_time_limit(600);

comunque funziona correttamente anche se lo inserisci direttamente dopo il primo <?php
Rispondi