Installare Osclass 3.2.2 su Altervista

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”

Commento di
Marco
Inserito: 24/11/2013 18:19

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?

Commento di
Caribe 1999
Inserito: 28/11/2013 11:15

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);

Commento di
Matteo
Inserito: 01/12/2013 14:45

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”

Commento di
Caribe 1999
Inserito: 02/12/2013 11:07

@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).

Commento di
Matteo
Inserito: 02/12/2013 20:40

Ti ringrazio, adesso funziona perfettamente!!!!

Commento di
mark
Inserito: 04/01/2014 15:55

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

Commento di
ciao mark
Inserito: 30/03/2014 16:16

anke io con lo stesso problema tu come lai risolto
garzie

Commento di
mimmo
Inserito: 21/02/2015 16:47

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

Commento di
Caribe 1999
Inserito: 22/02/2015 17:11

Praticamente alla fine del file, riga 1388

Commento di
Robypd
Inserito: 10/05/2015 23:28

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

Commenta