Installare Osclass 3.2.2 su Altervista
Warning: Undefined array key "juiz_sps_order" in /membri/saitfainder/wp-content/plugins/juiz-social-post-sharer/inc/front/buttons.php on line 302
Osclass è un applicativo PHP open source per la creazione di un sito di annunci. Bastano pochi minuti per mettere online il proprio portale e raggiungere il proprio scopo.
Purtroppo però installando Osclass su Altervista si ha un grave problema durante il caricamento delle immagini associate alle singole inserzioni. Questo perché Osclass tenta di salvare dei file nella cartella temporanea predefinita, ma questo non è possibile su Altervista come su altri hosting condivisi.
La soluzione è quindi quella di applicare una piccola patch al sorgente.
Questa guida è stata scritta per la versione 3.2.2 che in questo momento è l’ultima disponibile. Versioni precedenti (o successive) potrebbero differire di poco o essere completamente diverse.
Se installando Osclass avete ottenuto questo errore allora questa guida fa per voi:
Warning: imagejpeg() [function.imagejpeg]: SAFE MODE Restriction in effect. The script whose uid is 5595 is not allowed to access /membri/.dummy/temp owned by uid 500 in /membri/saitfainder/test/osclass/oc-includes/osclass/classes/ImageResizer.php on line 118
Applichiamo la modifica
Il primo passo è di creare una cartella chiamata tmp all’interno della cartella principale di Osclass, dove trovate anche oc-admin, oc-content e oc-include. Lo potete fare sia tramite la gestione file che via FTP.
Quindi andiamo a fare la modifica del codice del file os-includes/osclass/ItemActions.php utilizzando l’editor visuale del pannello di controllo di Altervista, oppure accedendo via FTP al vostro spazio web. La seconda è consigliata soprattutto se sul vostro PC avete un qualche editor di codice come Notepad++, gEdit o kWrite che vi facilitano il lavoro.
All’interno del sorgente cercate quindi questa riga (si trova nel metodo uploadItemResources verso la fine del file):
$tmpName = $aResources['tmp_name'][$key];
E sostituitela con le seguenti:
$tmpName2 = $aResources['tmp_name'][$key]; $tmpName = ABS_PATH.'tmp/'.substr($aResources['tmp_name'][$key], strrpos($aResources['tmp_name'][$key], '/'));
Quindi questa
$imgres = ImageResizer::fromFile($tmpName);
con questa
$imgres = ImageResizer::fromFile($tmpName2);
Poi, poco più avanti, sostituite questa:
ImageResizer::fromFile($tmpName)->resizeTo($size[0], $size[1])->saveToFile($path);
Con questa:
ImageResizer::fromFile($tmpName2)->resizeTo($size[0], $size[1])->saveToFile($path);
E infine questa:
move_uploaded_file($tmpName, $path);
Con questa:
move_uploaded_file($tmpName2, $path);
Una spiegazione? Osclass crea una serie di copie ridimensionate dell’immagine caricata. La prima è la versione “normale”, seguono altre versioni di dimensioni differenti fatte usando la “normale” e non l’originale. La modifica fa in modo che queste immagini vadano a finire nella cartella tmp che abbiamo creato. Tutto qui.files/files/
10 Commenti per “Installare Osclass 3.2.2 su Altervista”
Salve, ho provato a risolvere il problema seguendo la sua guida, ma nel file da lei indicato non trova questa stringa “$sizeTmp = filesize($tmpName);”…può dipendere dal fatto che la mia versione è la 3.2.2? come risolvere in questo caso?
Caribe 1999
Effettivamente nella versione 3.2.2 hanno eliminato il controllo sulla dimensione occupata dai file, forse perché non funzionava poi tanto bene sui vari hosting. Che poi hanno anche lasciato in giro la variabile $total_size che non viene più utilizzata. Ho aggiornato l’articolo eliminando quella sostituzione.
Per chi eventualmente usasse ancora la versione 3.2.1 ricordo quindi che occorre cercare questa riga:
$sizeTmp = filesize($tmpName);
E sostituirla con questa:
$sizeTmp = filesize($tmpName2);
Matteo
Salve, ho eseguito le modifiche segnalate da lei però quando cerco di potare annuncio con un immagine mi ritrovo questo errore:
“Fatal error: Uncaught exception ‘Exception’ with message ‘/membri/mercatinogrv/OSclass/tmp//phpHWn3ZX does not exist!’ in /membri/mercatinogrv/OSclass/oc-includes/osclass/classes/ImageResizer.php:37 Stack trace: #0 /membri/mercatinogrv/OSclass/oc-includes/osclass/classes/ImageResizer.php(28): ImageResizer->__construct(‘/membri/mercati…’) #1 /membri/mercatinogrv/OSclass/oc-includes/osclass/ItemActions.php(1350): ImageResizer::fromFile(‘/membri/mercati…’) #2 /membri/mercatinogrv/OSclass/oc-includes/osclass/ItemActions.php(232): ItemActions->uploadItemResources(Array, 10) #3 /membri/mercatinogrv/OSclass/oc-includes/osclass/controller/item.php(151): ItemActions->add() #4 /membri/mercatinogrv/OSclass/index.php(95): CWebItem->doModel() #5 {main} thrown in /membri/mercatinogrv/OSclass/oc-includes/osclass/classes/ImageResizer.php on line 37”
Caribe 1999
@Matteo Effettivamente c’è una modifica in più da fare per la versione 3.2.2. L’ho inserita nell’articolo (è la seconda sostituzione da fare).
Matteo
Ti ringrazio, adesso funziona perfettamente!!!!
mark
ciao io ho la versione 3.3.2 di osclass e non riesco ad aggiungere le immagini, e soprattutto sapete come togliere pubblica annuncio? grazie mark
ciao mark
anke io con lo stesso problema tu come lai risolto
garzie
caribe salve inanzi tutto grazie per avermi risolto il problema pero non riesco a trovare l’ultima stringa saresti cosi gentile da indicarmi dove e posizionata piu o meno grazie ho osclass 3.2.2
Caribe 1999
Praticamente alla fine del file, riga 1388
Robypd
salve, ho visto il tuo lavoro circa la correzione del file ItemActions.php, ma ho visto che fa riferimento alle versioni 3.2.2 o precedenti. io avevo la verso 3.10, ho aggiornato alla 3.5.6 e mi ritrovo con lo stesso problema. l’errore che mi da è questo: Fatal error: Uncaught exception ‘Exception’ with message ‘/membri/.dummy/temp/phplBkH7S_normal does not exist!’.
mi sembra che il file item sia diverso e non trovo le stesse cose indicate. come risolvere? Grazie
Marco