maofree Posted October 10, 2012 Share Posted October 10, 2012 Ciao facendo l'aggiornamento dalla 1.5.0.17 alla 1.5.1.0 uno pensa che vuoi che sia avranno cambiato un pò di files per risolvere dei bugs, quindi filerà tutto liscio. Ecco non è così. Hanno fatto una modifica importante proprio nella prima versione stabile della 1.5 che riguarda il nome di default dei tipi d'immagine come?? in pratica da small adesso il nome è small_default large è deventato large_default ecc... son sempre 8 macon nome modificato Questo cosa comporta? Un sacco di modifiche: nomi delle immagini presenti nella cartella img/ che termineranno con _default.jpg es. 7-home.jpg è diventata 7-home_default.jpg con un'installazione 1.5.1.0 non ci son problemi ma se venite da versioni precedenti la cosa è differente perchè la rigenerazione delle immagini già presenti non avviene nella fase d'installazione, quindi che succede? che alla fine del processo d'installazione, vi troverete nella sezione delle immagini, 16 tipi d'immagine, i files tpl tipo quello del modulo homefeatured e dei vari blocchi aggiornati che si aspettano tipi d'immagine tipo home_default invece nella cartella img/ son presenti solo home. Allora sarete costretti a fare l'aggiornamento delle miniature. Non fatelo perchè le foto raddoppieranno di numero. Un altra cosa dovrete aggiornare anche i files tpl presenti nel vostro template (se utilizzate come è sempre consigliabile fare, un template con un nome differente da quello di default), non tutti ma solo quelli che utilizzano immagini come product.tpl ; aggiungendo _default es. a large per diventare large_default. SOLUZIONE questa è la soluzione che ho adottato: aggiornate il sito con il metodo che preferite (non entro in merito dato che ci sono varie guide e topic) adesso controllate se nel FO non vengono più visualizzate le immagini dei prodotti, se ciò accade allora seguite questi passi (prima fate un bel backup del sito e del suo database): andate nel BO nella sezione immagini rimuovete i primi 8 elementi (in pratica son quelle passate) poi andate nel vostro database e riordinateli nella tabella image_type quindi il 9 diventa il primo il 10 diventa il 2 .... ricordarsi di premere su Operations per cambiare il valore AUTO_INCREMENT a 9 (il numero successivo all'ultimo id di questa tabella) (questo passaggio della rinumerazione se avete paura di sbagliare potete evitarlo) adesso potete installare il modulo qui allegato. (se avete molte immagini, questa operazione prenderà un pò di tempo) Questa modulo andrà a cancellare tutte le miniature ad eccezione del file principale es 77.jpg (dal quale si creano le varie miniature) presenti nelle cartelle di img/ (c, m, p, scenes, st, su). Dopo questa pulizia potete disinstallarlo e rimuoverlo dal vostro sito. Adesso potete rigenerare le miniature delle immagini (volendo lo potete fare anche prima di aver proceduto con l'operazione del reset del modulo) Se riscontrate problemi di timeout (dipende come è configurato il server del vostro hosting) allora vi conviene fare tutta questa operazione in locale su sistemi tipo questo http://www.wampserver.com e modificare il timeout del file php.ini Ricordatevi di abilitare il force compile tutte le volte che fate delle modifiche ai file tpl adesso se avete aggiornato i file tpl del vostro tema e quelli dei moduli che utilizzano immagini avrete risolto questo problema. ciaoooooo maofree_deleteimages(only-for-1.5.x).zip 2 Link to comment Share on other sites More sharing options...
Rams Posted October 18, 2012 Share Posted October 18, 2012 Ciao, provato dopo upgrade dalla 149 alla 151. Ho usato il modulo blockmanufacturer. ho provato con resetta, disintalla, reinstalla etc etc ma le vecchie immagini non sono state cancellate. Ho guardato anche i permessi cartella provando a settarli anche con 777, ma nulla, non ci sono riuscito. Ho provato anche a cambiare modulo, usando il modulo negozio, ma niente nemmeno qui. il file PHP è stato cosi modificato : if (!defined('_PS_VERSION_')) exit; class BlockManufacturer extends Module { public function __construct() { $this->name = 'blockmanufacturer'; $this->tab = 'front_office_features'; $this->version = 1.0; $this->author = 'PrestaShop'; $this->need_instance = 0; parent::__construct(); $this->displayName = $this->l('Manufacturers block'); $this->description = $this->l('Displays a block of manufacturers/brands'); } public function install() { Configuration::updateValue('MANUFACTURER_DISPLAY_TEXT', true); Configuration::updateValue('MANUFACTURER_DISPLAY_TEXT_NB', 5); Configuration::updateValue('MANUFACTURER_DISPLAY_FORM', true); return parent::install() && $this->registerHook('leftColumn') && $this->registerHook('header') && $this->deleteImages(); } public function hookLeftColumn($params) { $this->smarty->assign(array( 'manufacturers' => Manufacturer::getManufacturers(), 'text_list' => Configuration::get('MANUFACTURER_DISPLAY_TEXT'), 'text_list_nb' => Configuration::get('MANUFACTURER_DISPLAY_TEXT_NB'), 'form_list' => Configuration::get('MANUFACTURER_DISPLAY_FORM'), 'display_link_manufacturer' => Configuration::get('PS_DISPLAY_SUPPLIERS'), )); return $this->display(__FILE__, 'blockmanufacturer.tpl'); } public function hookRightColumn($params) { return $this->hookLeftColumn($params); } public function getContent() { $output = '<h2>'.$this->displayName.'</h2>'; if (Tools::isSubmit('submitBlockManufacturers')) { $text_list = (int)(Tools::getValue('text_list')); $text_nb = (int)(Tools::getValue('text_nb')); $form_list = (int)(Tools::getValue('form_list')); if ($text_list && !Validate::isUnsignedInt($text_nb)) $errors[] = $this->l('Invalid number of elements'); elseif (!$text_list && !$form_list) $errors[] = $this->l('Please activate at least one system list'); else { Configuration::updateValue('MANUFACTURER_DISPLAY_TEXT', $text_list); Configuration::updateValue('MANUFACTURER_DISPLAY_TEXT_NB', $text_nb); Configuration::updateValue('MANUFACTURER_DISPLAY_FORM', $form_list); } if (isset($errors) && count($errors)) $output .= $this->displayError(implode('<br />', $errors)); else $output .= $this->displayConfirmation($this->l('Settings updated')); } return $output.$this->displayForm(); } public function displayForm() { $output = ' <form action="'.Tools::safeOutput($_SERVER['REQUEST_URI']).'" method="post"> <fieldset><legend><img src="'.$this->_path.'logo.gif" alt="" title="" />'.$this->l('Settings').'</legend> <label>'.$this->l('Use a plain-text list').'</label> <div class="margin-form"> <input type="radio" name="text_list" id="text_list_on" value="1" '.(Tools::getValue('text_list', Configuration::get('MANUFACTURER_DISPLAY_TEXT')) ? 'checked="checked" ' : '').'/> <label class="t" for="text_list_on"> <img src="../img/admin/enabled.gif" alt="'.$this->l('Enabled').'" title="'.$this->l('Enabled').'" /></label> <input type="radio" name="text_list" id="text_list_off" value="0" '.(!Tools::getValue('text_list', Configuration::get('MANUFACTURER_DISPLAY_TEXT')) ? 'checked="checked" ' : '').'/> <label class="t" for="text_list_off"> <img src="../img/admin/disabled.gif" alt="'.$this->l('Disabled').'" title="'.$this->l('Disabled').'" /></label> '.$this->l('Display').' <input type="text" size="2" name="text_nb" value="'.(int)(Tools::getValue('text_nb', Configuration::get('MANUFACTURER_DISPLAY_TEXT_NB'))).'" /> '.$this->l('elements').' <p class="clear">'.$this->l('To display manufacturers in a plain-text list').'</p> </div> <label>'.$this->l('Use a drop-down list').'</label> <div class="margin-form"> <input type="radio" name="form_list" id="form_list_on" value="1" '.(Tools::getValue('form_list', Configuration::get('MANUFACTURER_DISPLAY_FORM')) ? 'checked="checked" ' : '').'/> <label class="t" for="form_list_on"> <img src="../img/admin/enabled.gif" alt="'.$this->l('Enabled').'" title="'.$this->l('Enabled').'" /></label> <input type="radio" name="form_list" id="form_list_off" value="0" '.(!Tools::getValue('form_list', Configuration::get('MANUFACTURER_DISPLAY_FORM')) ? 'checked="checked" ' : '').'/> <label class="t" for="form_list_off"> <img src="../img/admin/disabled.gif" alt="'.$this->l('Disabled').'" title="'.$this->l('Disabled').'" /></label> <p class="clear">'.$this->l('To display manufacturers in a drop-down list').'</p> </div> <center><input type="submit" name="submitBlockManufacturers" value="'.$this->l('Save').'" class="button" /></center> </fieldset> </form>'; return $output; } public function hookHeader($params) { $this->context->controller->addCSS(($this->_path).'blockmanufacturer.css', 'all'); } private function deleteImages() { $dir_to_scan = array('p'); foreach ($dir_to_scan as $dir) { $directory = _PS_IMG_DIR_.$dir; $scanned_directory = array_diff(scandir($directory), array('..', '.', 'index.php')); if ($scanned_directory) { foreach ($scanned_directory as $file) { if (preg_match("/small.jpg/i", $file)) unlink(_PS_IMG_DIR_.$dir.'/'.$file); elseif (preg_match("/medium.jpg/i", $file)) unlink(_PS_IMG_DIR_.$dir.'/'.$file); elseif (preg_match("/large.jpg/i", $file)) unlink(_PS_IMG_DIR_.$dir.'/'.$file); elseif (preg_match("/thickbox.jpg/i", $file)) unlink(_PS_IMG_DIR_.$dir.'/'.$file); elseif (preg_match("/home.jpg/i", $file)) unlink(_PS_IMG_DIR_.$dir.'/'.$file); elseif (preg_match("/category.jpg/i", $file)) unlink(_PS_IMG_DIR_.$dir.'/'.$file); elseif (preg_match("/large_scene.jpg/i", $file)) unlink(_PS_IMG_DIR_.$dir.'/'.$file); elseif (preg_match("/thumb_scene.jpg/i", $file)) unlink(_PS_IMG_DIR_.$dir.'/'.$file); } } } return true; } } Link to comment Share on other sites More sharing options...
maofree Posted October 20, 2012 Author Share Posted October 20, 2012 ciao Rams ho modificato lo script, per pulire anche le sottocartelle da eventuali duplicazioni. Ci ho fatto un mini modulo così sarà più semplice utilizzarlo l'ho provato su due server senza problemi è allegato nel primo topic ciaoo Link to comment Share on other sites More sharing options...
Rams Posted October 20, 2012 Share Posted October 20, 2012 ciao Rams ho modificato lo script, per pulire anche le sottocartelle da eventuali duplicazioni. Ci ho fatto un mini modulo così sarà più semplice utilizzarlo l'ho provato su due server senza problemi è allegato nel primo topic ciaoo YES funziona al primo colpo !! Grazie mille. Link to comment Share on other sites More sharing options...
merlinaccio Posted December 19, 2012 Share Posted December 19, 2012 SOLUZIONE questa è la soluzione che ho adottato: aggiornate il sito con il metodo che preferite (non entro in merito dato che ci sono varie guide e topic) adesso controllate se nel FO non vengono più visualizzate le immagini dei prodotti, se ciò accade allora seguite questi passi (prima fate un bel backup del sito e del suo database): andate nel BO nella sezione immagini rimuovete i primi 8 elementi (in pratica son quelle passate) poi andate nel vostro database e riordinateli nella tabella image_type quindi il 9 diventa il primo il 10 diventa il 2 .... (questo passaggio della rinumerazione se avete paura di sbagliare potete evitarlo) adesso potete installare il modulo qui allegato. (se avete molte immagini, questa operazione prenderà un pò di tempo) Questa modulo andrà a cancellare tutte le miniature ad eccezione del file principale es 77.jpg (dal quale si creano le varie miniature) presenti nelle cartelle di img/ (c, m, p, scenes, st, su). Dopo questa pulizia potete disinstallarlo e rimuoverlo dal vostro sito. Adesso potete rigenerare le miniature delle immagini (volendo lo potete fare anche prima di aver proceduto con l'operazione del reset del modulo) Se riscontrate problemi di timeout (dipende come è configurato il server del vostro hosting) allora vi conviene fare tutta questa operazione in locale su sistemi tipo questo http://www.wampserver.com e modificare il timeout del file php.ini Ricordatevi di abilitare il force compile tutte le volte che fate delle modifiche ai file tpl adesso se avete aggiornato i file tpl del vostro tema e quelli dei moduli che utilizzano immagini avrete risolto questo problema. ciaoooooo ciao maofree, ho provato diverse volte a seguire tutta la procedura ma continuo a non visualizzare le immagini. Il sito è questo: http://www.tcritalia.it/tcrshop/index.php?id_product=8&controller=product Ho provato a ritornare alla 1.0.17 e le immagini ricompaiono, ma ogni volta che aggiorno si ripresenta lo stesso problema.. qualche idea? premetto che non ho tanta dimestichezza con prestashop, il sito non è ancora attivo ed è ancora in fase di sviluppo, ma credo di aver seguito alla lettera tutte le tue indicazioni, più volte. Link to comment Share on other sites More sharing options...
merlinaccio Posted December 20, 2012 Share Posted December 20, 2012 Risolto! Sono ritornato nuovamente alla versione 1.5.0.17, ho spostato da lì le immagini per utilizzare il nuovo sistema e poi ho aggiornato alla 1.5.2.0. Funziona tutto, adesso vedo le immagini. Link to comment Share on other sites More sharing options...
maofree Posted January 22, 2013 Author Share Posted January 22, 2013 ciao scusa merlinaccio se non ti ho risposto prima, ma non mi sono arrivare le segnalazioni dei tuoi interventi, ogni tanto accade col forum di prestashop. Spero sia tutto ok ciaooo Link to comment Share on other sites More sharing options...
nuccio91 Posted January 24, 2013 Share Posted January 24, 2013 SALVE HO LA VERSIONE 1.5.3.1 E HO AGGIORNATO CON 1-CLICK UPGRADE E HO IL PROBLEMA DELLA IMMAGINI NELLA SCHEDA PRODOTTO CHE NON SI VEDONO. C'E' UNA QUALCHE SOLUZIONE? LE MINIATURE PICCOLE LE VISUALIZZO,NEL BLOCCO NUOVI PRODOTTI O PIU' VENDUTI O IN QUELLI DOVE DICE "30 ALTRI PRODOTTI DELLA STESSA CATEGORIA" MA NIENTE DA FA RE PER LE LARGE_DEFAULT. AIUTATEMI Link to comment Share on other sites More sharing options...
nex1973 Posted May 15, 2013 Share Posted May 15, 2013 io ho risolto con le spiegazioni di maofree ... grazie Link to comment Share on other sites More sharing options...
Recommended Posts
Create an account or sign in to comment
You need to be a member in order to leave a comment
Create an account
Sign up for a new account in our community. It's easy!
Register a new accountSign in
Already have an account? Sign in here.
Sign In Now