Jump to content

[WIKI] Come evitare di perdere le modifiche fatte utilizzando l'override (1.5.x)


maofree

Recommended Posts

Ciao

spero che questa mini guida possa aiutarvi ad ottimizzare al meglio il vostro sito ecommerce utilizzando la tecnica dell'override, presente nella 1.5, per evitare di perdere le modifiche fatte a files: php (classes o controllers) oppure files: js, css e tpl (presenti nei moduli da voi utilizzati).

L'override per i files php è possibile farli solamente per quelli presenti nella cartella /classes/ e per quelli presenti nella cartella /controllers/

per quelli della classes

basta andare ad inserire la funzione che si vuole modificare.

es. /override/classes/db/DB.php

per quelli della controllers

bisogna riportare il contenuto del file che si vuole modificare ricordandosi di modificare il nome della classe

es. /override/front/CartController.php

class CartController extends CartControllerCore

 

Premendo sul seguente link è possibile leggere come risolvere il problema della cache per l'override dei files della cartella /controllers/

http://forge.prestas...owse/PSCFV-8600

(You need to trigger the regeneration of the /cache/class_index.php file. This is done simply by deleting the file. It is the same when manually removing an override: in order to reinstate the default behavior, you must delete the /cache/class_index.php file.)

 

Sto scrivendo questa guida non tanto per modificare i files php che ho indicato in precedenza, perchè sicuramente ci sarebbe molto altro da scrivere di natura un pò complicata per un uso generale, ma per descrivere come utilizzare questa tecnica per evitare di modifcare moduli e template ad ogni aggiornamento di prestashop, che con l'utilizzo del modulo 1-click upgrade è sicuramente più facile e veloce e quindi frequenti.

 

Partiamo dal template di default di prestashop

la prima cosa da fare è andare nella cartella /themes/default e farne una copia rinominandola es. mytheme posizionandola sempre all'interno di themes/

Adesso andate nel BO nella sezione temi ed aggiungete un nuovo elemento per utilizzare il nuovo template (riportate l'esatto nome di quello da voi utilizzato, in questo caso mytheme).

Adesso potete modificare tutti i file tpl, js e css del template come avete sempre fatto, ricordandovi di abilitare il force compile dal BO.

 

La tecnica dell'override serve quando, per ottenere la grafica voluta, dovete intervenire sui files tpl, js, css dei moduli di prestashop da voi utilizzati. In pratica questa tecnica non è altro che una protezione delle modifiche fatte dai futuri aggiornamenti del sito che andranno a sovrascivere il files presenti nel vostro sito.

 

es. se dovete, come spesso succede, modificare i files del modulo homefeatured

dovete procedere in questo modo:

per modificare

homefeatured.tpl

creare una cartella modules

/themes/mytheme/modules/

inserite un file index.php (quello che trovate nella cartella themes va bene) in questa cartella appena creata e poi al suo interno create una nuova cartella con lo stesso nome del modulo in questione

/themes/mytheme/modules/homefeatured/

con al suo interno una copia dello stesso file index.php

ed il file originale homefeatured.tpl, senza doverlo rimuovere dalla sua cartella e modificate questo file come credete più giusto.

 

se volete modificare

homefeatured.css

procedete allo stesso modo del file precedente

create una cartella modules in

/themes/mytheme/css/modules/

inserite lo stesso file index.php al suo interno

create al suo interno una nuova cartella con nome del modulo

/themes/mytheme/css/modules/homefeatured/

inserite al suo interno una copia dello stesso file index.php

e aggiungete il file originale homefeatured.css, senza doverlo rimuovere dalla sua cartella e modificate questo file come credete più giusto.

 

la stessa cosa nel caso di modifiche a file js

/themes/mytheme/js/modules/nome_modulo/

 

In questo modo tutti i files da modificare si troverebbero nella cartella del vostro template, senza doversi ricordare i files delle modifiche fatte, risparmiando tempo ed evitando problemi con futuri aggiornamenti di prestashop.

 

Quando avrete sistemato la grafica del vostro sito (modifica dei file tpl), potrete disabilitare il force compile

 

ciaoooooo

Edited by maofree (see edit history)
  • Like 2
Link to comment
Share on other sites

ciao

per fare l'aggiornamento alla 1.5 mi sa che le devi riportare nel template nuovo, che hanno modificato parecchio. Quindi in locale fai l'aggiornamento del sito, poi segui tutti i passaggi che ti ho scritto sopra per mettere le modifiche che hai fatto ai vari moduli di prestashop nel tuo template e poi non dovrai più farlo nei successivi aggiornamenti. Ovviamente dovrai modificare anche i file del tuo template

 

ciao

Link to comment
Share on other sites

Molto interessante, grazie maofree.

 

E' possibile modificare css e immagini di un modulo non standard?

 

Ad esempio se volessi installare un tema natalizio e, avessi un modulo per slideshow e volessi "addobbarlo" provvisoriamente per le feste natalizie con una grafica diversa, dovrei sostituire alcune immagini (ad esempio le frecce prev/next). Come potrei farlo?

Le immagini si trovano ad esempio nella cartella:

 

mio-modulo/img / miaimmagine.jpg

 

e il css si trova nella cartella:

 

mio-modulo/css / mionomefogliodistile.css

 

ho provato a mettere la cartelalì img un po' ovunque (all'interno della cartella mio-tema/css, oppure mio-tema/modules/mio-modulo, creando altre sottodirectory... ecc.) ma non va.

 

A questo punto l'unica alternativa è rinominare il modulo.Oppure?

Link to comment
Share on other sites

puoi fare quello che vuoi

domanda??

ma quando fai modifiche a moduli o temi abiliti il force compile??

 

comunque dipende da come è strutturata la galleria e che tecniche utilizza

prova a sostituire le immagini senza cambiare i loro nomi

 

ciao

Link to comment
Share on other sites

puoi fare quello che vuoi

domanda??

ma quando fai modifiche a moduli o temi abiliti il force compile??

 

comunque dipende da come è strutturata la galleria e che tecniche utilizza

prova a sostituire le immagini senza cambiare i loro nomi

 

ciao

 

Sotituire, duplicare, modificare, lo posso fare senz problemi.

 

L'obiettivo è un altro: avere lo stesso modulo con una grafica diversa quando si cambia tema. senza ulteriori interventi.

E' questo il caso in cui volessi sostituire il tema ogni anno per il periodo di Natale. Mi basterebbe cambiare tema in modo che anche i moduli extra cambino grafica con il cambio del tema.

Link to comment
Share on other sites

ciao eugenata

la soluzione è semplice

crei un altro tema con nome natale in themes/natale/

quindi ti troverai 3 temi

default, mytheme (il tema che utilizzerai sempre) e natale

fai una copia dei files di mytheme in natale e poi vai ad aggiungere le modifiche per il modulo della galleria (come ho spiegato sopra in base ai files che vai a modificare) riportando in esso le immagini che vuoi sostituire (dovrai cambiare gli url delle immagini nel file css).

quando sarai nel periodo natalizio attivi questo nuovo tema e quando finisce ritorni a mytheme, l'importante è che quello di default di prestashop non venga mai utilizzato

 

ciaooooo

  • Like 1
Link to comment
Share on other sites

ciao,

volevo chiederti alcune cose in merito a questa guida in modo tale da aver chiaro il concetto e poterla utilizzare nel mio caso. Scusa la mia incompetenza in materia.

 

Attualmente utilizzo prestashop 1.5.0.17 ed un tema scaricato gratuitamente chiamato shadow e adattato alle mie esigenze.

 

Nel mio caso, correggimi se sbaglio, non ho bisogno di fare una copia della cartella default e rinominarla (come spiedato nella guida), ma basta utilizzare la cartella del tema shadow e copiare all'interno i file originali da modificare seguendo la procedura da te descritta.

 

Ho inoltre modificato alcuni moduli direttamente dai file originali. Copiando quest'ultimi nella cartella del mio tema ed aggiornando il mio sito alla nuova versione, mantengo le modifiche apportate in precedenza?

 

Grazie come sempre per il tuo supporto

Link to comment
Share on other sites

ciao

il tema che hai scaricato è per la 1.5??

se si certo tutte le modifiche le fai dentro a quel template

se i files css, js e tpl li metti nel template shadow, l'aggiornamento non comporta modifiche ai files di questo tema. C'è una spunta nel modulo 1-click upgrade per evitare che modifichi il tema di default ma per me è da evitare come soluzione. Se il template di base è sempre aggiornato utilizzando un programma di comparazione di files potete notare le variazioni rispetto al tema utilizzato e in caso di problemi avete subito funzionante un altro template.

Lo sai quale sarà il problema che dovrai risolvere??

leggi l'altro wiki che ho fatto sul problema della rinomina dei nomi dei tipi d'immgine fatta da prestashop nella 1.5.1.0

 

ciao

Link to comment
Share on other sites

il tema l'ho scaricato quando avevo la versione 1.4.x e poi l'ho un po riadattato nel codice in base alle mie esigenze, e con il passaggio alla 1.5 non mi ha dato particolari problemi. Se non era compatibile non so che tipo di problemi doveva apportare.

 

Io cmq ho sempre utilizzato l'aggiornamento manuale.

 

L'altro topic, riguardante l'aggiornamento alla 1.5.1 e il problema delle immagini, l'ho letto ma prima di intraprendere tale procedura volevo capire se per utilizzare la tecnica dell'override devo partire da una versione vergine di prestashop oppure posso anche utilizzare una versione come la mia con le varie modifiche gia apportate a vari codici.

 

Se mi permetto, credo che la procedura da utilizzare nel mio caso, è ricordare tutti i file da me modificati e inserire le copie di questi nella cartella del tema shadow e poi fare eventuali aggiornamente del sito (tenendo presente dell'altro tuo topic nel caso di aggiornamento alla 1.5.1)

Link to comment
Share on other sites

ciao

la tecnica dell'override non dipende dal tema, ma dalla versione di prestashop che implementa questa tecnica.

Il tuo sistema vede le cartelle modules (con incluse quelle di alcuni tuoi moduli) presenti nel tuo tema e si comporta di conseguenza.

certo tutte le modifche fatte devono andare nella cartella del template da te utilizzato. Durante l'aggiornamento i files dei moduli e del template (ovviamente anche quelli del core in php) di default saranno sovrascritti e quindi non riporteranno più le modifiche da te fatte, ma tanto prestashop prenderà in considerazione quelli presenti nel tuo template e non gli altri

 

ciao

Link to comment
Share on other sites

Nonostante la mia mente bacata credo che mi sia tutto chiaro^_^

metterò in pratica quello che hai detto nelle mie prossime modifiche... e vedremo quello che accadrà

 

ti ringrazio per tutto

 

EDIT:

 

ho provato a fare alcune modifiche al codice di alcuni moduli che utilizzo e il metodo da te descritto funziona egregiamente.

Volevo solo chiederti un ultima cosa in merito. Quale è il file da salvare per fare il backup della formattazione dei testi delle schede prodotto e delle pagine CMS?

 

Grazie come sempre

Edited by innovaforniture (see edit history)
Link to comment
Share on other sites

  • 5 months later...

Ciao a tutti, dopo qualche mese leggo per la prima volta questo post molto interessante.

 

Vi chiedo:

1) conviene quindi organizzare fin dalla prima installazione della 1.5.x il tema clonato e lavorare su quello per fare ogni modifica?

2) Dopo un aggiornamento della versione di PS, per non perdere le modifiche fatte, basta copiare i file dalla cartella del tema "sicuro" nella cartella del tema default, giusto?

 

a presto e grazie!!!

Daniele

Link to comment
Share on other sites

ciao dvanet

 

1)

certo se no a cosa servirebbe questa operazione

2)

stessa risposta, dato che l'aggiornamento va a modificare (se utilizzi 1click upgrade, puoi evitare di farglielo aggiornare, ma non è cosa consigliata, dato che potresti utilizzarli per compararli a quelli del tema clonato, per verificare gli aggiornamenti effettuati da prestashop e correggere eventuali errori nel tema da te creato) i files del template "default" e non quelli del template da te creato.

 

consigli:

se le modifiche da apportare ai files .css dei moduli son di poco conto, si può intervenire solamente sul file gloabal.css del tema clonato utilizzando !important

 

es.

se si volesse modificare il font-size del blocco blockuserinfo, senza dover creare una cartella modules all'interno di quella css del template con all'interno un'ulteriore cartella nominata "blockuserinfo" con il file css modificato, si potrebbe solamente aggiungere una riga di codice css nel file global.css

 

(codice presente in blockuserinfo.css del modulo)

#header_user_info {

clear: both;

float: right;

font-size: 12px;

margin-top: 10px;

padding: 0;

}

 

(codice da aggiungere a global.css)

 

#header_user_info {font-size: 15px !important;}

 

questo avrà una maggiore priorità rispetto a quello del file blockuserinfo.css anche se situato prima dell'altro

 

ciaoooo

  • Like 1
Link to comment
Share on other sites

  • 2 weeks later...

Ciao Maofree,

grazie mille per le tue precisazioni.

a dire il vero non ho ancora provato in concreto perchè sto ancora finendo di importare i prodotti. al momento non ho nemmeno cambiato un modulo. sto usando un template comprato e per ora mi limito a capire la gestione delle cose base.

ma davvero quello che hai scritto è molto interessante e ancor più utile.

mi sono segnato il link così prima di iniziare a smanettare sulla grafica, procedo secondo il tuo metodo.

grazie mille,

Daniele

Link to comment
Share on other sites

  • 1 month later...

Ciao Maofree!

 

ho appena fatto delle modifiche seguendo i tuoi consigli.

 

ho preso un modulo intero (il bankwire), l'ho copiato dalla cartella modules della root principale e l'ho inserito nella cartella modules del mio tema.

 

poi su preferenze ho messo "forza compilazione"

 

però quando provo a usarlo il modulo nella cartella della root principale ha priorità di quello della cartella del tema.

come fare per impostare il mio modulo come principale?

 

grazie mille e buon sabato,

Daniele

Link to comment
Share on other sites

Ciao Daniele

dovresti rileggere più volte quello che ho scritto, perchè hai iniziato subito sbagliando

Non devi prendere il modulo intero presente in modules/

Innanzitutto devi sapere che cosa vuoi modificare

es.

il codice css di default del modulo?

se si la prima cosa da fare è vedere dove si trova

il file css del modulo è nel template in global.css on in un altro files del template oppure nel modulo

se vai a modificare i moduli di default di Prestashop, allora non è detto che siano nel modulo

La quantità di codice che vuoi modificare è molta oppure giusto un paio di righe?

se è poca roba allora conviene aggiungere quelle due righe in global.css e utilizzare la soluzione !important dato che global.css viene caricato prima dei files dei moduli

se molta allora vai nel template e nella cartella css crei una sottocartella con nome "modules" e dentro ne metti un'altra con lo stesso nome del modulo, poi ci copi lo stesso file del modulo e lo modifichi.

Se riguarda modifiche ai files tpl allora nella cartella principale del tuo tema vedrai una cartella modules e lì fai la stessa cosa, crei una cartella con lo stesso nome del modulo che stai andando a modificare, poi inserisci il file tpl originale del modulo e fai le modifiche che vuoi. In realtà per i files tpl bisognerebbe creare le stesse sottocartelle che includono il file originale, ma funziona anche in questo modo.

Stessa cosa nel caso di modifiche ai files js del modulo

Consiglio, prima d'installare un sistema ed utilizzarlo, sarebbe bene leggersi tutta la documentazione ufficiale del sistema, in questo caso di Prestashop. Si eviterebbero un sacco di errori.

 

ciaooo

  • Like 1
Link to comment
Share on other sites

Ciao Maofree

grazie davvero per la spiegazione.

pensa mi ero riletto più volte le tue indicazioni....eppure.

 

siccome ho modificato il file tpl ho agito così:

1) ricreato cartella miotema/modules/modulo-modificato

2) ricreato tutto il percorso di sottocartelle e nell'ultima ho inserito il file index.php e il file xxxx.tpl con le mie modifiche

3) tutti gli altri file sono dentro la cartella modules nella root principale

 

Tutto sembra funzionare perfettamente.

 

Tra un post e l'altro e le modifiche che sto apportando mi converrebbe davvero studiare per bene anche la guida di ps.

peccato sia tutta in inglese e francese, le cose più tecniche mi sfuggono.

 

Grazie per il tuo aiuto prezioso.

Spero di aver imparato per bene così da poter replicare per i prossimi cambiamenti.

A presto e buona serata,

Daniele

Link to comment
Share on other sites

adesso hai fatto tutto bene

per le cose tecniche serve più tempo e studiarsi qualche guida.

La difficoltà maggiore con Prestashop, per quanto riguarda la grafica, è comprendere a cosa serva e come funzioni smarty.

Col tempo si supera anche questa difficoltà.

 

ciao

Link to comment
Share on other sites

  • 1 month later...

Ciao, giuro che ho letto tutto e credo di aver quasi capito. Ho letto anche la guida (solo la parte sull'override). Magari sono ripetitivo e faccio delle domande idiote, ma è solo per essere sicuro di non sbagliare (è la prima volta) :D .

 

Prestashop ultima versione. Template default intonso appena installato.

 

Come hai detto ho creato una copia della cartella Default (tema) all'interno della directory Prestashop > Themes rinominandolo.

 

Subito non ho capito: "Adesso andate nel BO nella sezione temi ed aggiungete un nuovo elemento per utilizzare il nuovo template"

Io ho semplicemente selezionato il tema rinominato e funziona. Cosa dovrei fare esattamente?

 

Poi: "se volete modificare homefeatured.css procedete allo stesso modo del file precedente create una cartella modules in /themes/mytheme/css/modules/."

Intendi una sottocartella nominata Modules. Perché come sai esiste già la cartella Modules in Prestashop > Themes > Default. Giusto?

 

 

Infine: "bisogna riportare il contenuto del file che si vuole modificare ricordandosi di modificare il nome della classe es. /override/front/CartController.php class CartController extends CartControllerCore"

E qua credo proprio di non aver capito una cippa e mi serve perché vorrei eliminare dei campi dal modulo registrazione. Ecco come l'ho capita:

 

Praticamente, vado nella directory Prestashop > Controllers > Front > AuthController.php. Copio questo file nella directory Prestashop > Override > Controllers > Front. E poi da qui lo modifico. Corretto?

 

Per quanto riguardo invece la modifica dell'aspetto (Css) che ho notato essere praticamente tutta in Global.css che si trova appunto solo nella directory Prestashop > Themes > NomeTema > Css. Se volessi come dici cambiare l'aspetto di Homefeatured.css dovrei:

 

Prestashop > Modules > Homefeatured > Homefeatured.css. Copiarlo e poi

Prestashop > Themes > NomeTema > Modules > Qua Creo una sottocartella Modules > Qua creo una cartella con il nome Homefeatured> Qua dentro incollo il file Homefeatured.css. Poi da qua posso modificarlo. Tutto giusto?

 

Grazie e scusa la rottura.

Link to comment
Share on other sites

ciao

ogni descrizione deve essere sempre provata e verificata, soprattutto perchè prestashop aggiorna di continuo il suo codice apportando molte modifiche ad ogni aggiornamento e poi si descrive in modo generico non tutti utilizzano il tema di default o la stessa versione.

Se non trovi una cartella tipo modules allora la devi creare se no no. Stessa cosa per il BO per selezionare il tema.

 

la cartella /themes/mytheme/css/modules/ è per i files .css dei moduli

mentre quella

/themes/mytheme/modules/ è per i files .tpl dei moduli

 

per la parte dell'override dei files class o controller, se possibile la eviteri sempre perchè almeno nel mio caso ho visto che prestashop ha dei problemi, credo nella gestione cache del sistema, comunque puoi sempre provare.

Comunque in override... il nome della classe deve essere cambiato, basta che guardi i files presenti in override per capire come rinominarli.

 

per il css è giusto

 

Ho visto che metti la maiuscola ai file, non lo fare, devono avere lo stesso nome dei files o cartelle originali

 

 

ciao

  • Like 1
Link to comment
Share on other sites

Si hai ragione ma ho scritto che avrei puntualizzato cose inutili. La tua mini-guida è perfetta, sono io che sono un po' pignolo essendo la prima volta sapendo però che fare queste cose con CMS sono fondamentali.

 

Avrei solo una cosa da chiarire. Purtroppo l'override devo farlo perché voglio togliere dei campi da quel benedetto modulo di registrazione.

 

Nella cartella override non ci sono file. Se apro, come nel tuo esempio, prestahop > controllers > front > CarController.php leggo alla prima riga: class CartControllerCore extends FrontController.

Se è questa la class a cui ti riferisci, come bisogna cambiarla prima di incollare il file nella cartella override.

Link to comment
Share on other sites

Rieccomi perché ho "scoperto" una cosa in quanto principiante.

 

Alcuni file .tpl sono già presenti nel tema Default e l'unica cosa che cambia con quelli nella cartella prestashop è un <h> che diventa <p>. Si può dire quindi che questi file del tema sono gli override? E che quindi possono essere modificati senza paura per l'upgrade?

 

Per concludere: la cartella override della directory prestashop serve esclusivamente per controllers e classes. Mentre per la modifica di file css e tpl basta semplicemente copiare i file dalla directory prestashop e incollarli nella directory modules del tema (eventualmente creando la cartella). Si tratta in definitiva di riprodurre il contenuto di quello che c'è nella directory prestashop all'interno del tema. Sbaglio?

 

Inoltre il file che a me serve authentication.tpl (che ho già modificato con successo) si trova solo all'interno del tema però fuori dalla cartella modules. Come ci si comporta in questo caso dato che non esiste il corrispondente nella directory prestashop.

 

P.S C'è un modo per testare se le modifiche resistono ad un upgrade oppure l'unica è installare la versione precedente.

 

Grazie

Edited by Budo (see edit history)
Link to comment
Share on other sites

ciao

stai facendo un pò di confusione, come è normale che sia.

Es.

per fare l'override del file AuthController.php presente in controllers/front/

dovrai copiare questo file in override/controllers/front/AuthController.php e cambiare il nome della classe

da

class AuthControllerCore extends FrontController

{

....

}

a

 

class AuthController extends AuthControllerCore

{

....

}

 

prima di fare una modifica dovresti ragionarci un pò su, se no fai solo confusione

Es.

vuoi togliere dei campi dal form di refistrazione?

se si quali?

quelli obbligatori o non?

per togliere quelli obbligatori dovrai fare delle modifiche anche al file del controller che gestisce quella pagina, se no ti segnalerà un errore. Ma sei sicuro che poi per il sistema che gestisce il tuo sito non siano importanti e magari con aggiornamenti futuri, non ti creino problemi?

un sito di ecommerce è decisamente più complesso di un sito di presentazione.

Se vuoi un consiglio fai solo le modifiche alla grafica o a qualche modulo, poi per il resto lascia così.

Comunque sei libero di fare come credi, il sito è tuo.

 

Per testare l'ovveride?

basta che installi il modulo 1-click e selezioni versioni beta e provi ma non certo sul sito ufficiale ma su uno in locale usando sistemi come wampserver

 

nel caso di files tipo authentication.tpl che non appartengono a moduli, per evitare la perdita di modifiche durante gli aggiornamenti del sito, basta creare una copia del tema di default e rinominarla. Se no a cosa sarebbe servito questo passaggio ???

 

ti consiglio di leggere qualche wiki fatto da Prestashop

 

il prossimo wiki sarà inerente alla migrazione di un sito. È un operazione facile e veloce che è giusto sia alla portata di tutti.

 

ciaooooooo

  • Like 1
Link to comment
Share on other sites

ciao, sono già che mi stai mandando dei cancari, e che non pensavi esistesse uno così rompipalle. Però.....eccomi :rolleyes:

 

Per i cambiamenti estetici non ho nessun problema, conosco bene css2-3-4-5-6-7-8 .......e potrei trasformare il mio sito in una pera :D Purtroppo php, (come il tedesco alle superiori...azz "sapevo che dovevo impararlo") non lo capisco , non so scriverlo, però so togliere quello che non mi serve.

 

Siccome devo vendere solo prodotti editoriali come libri, riviste, fumetti etc..., i campi cognome, date di nascita, paesi, il blocco fornitori per la ricerca, e altre robe, anche se non obbligatori non li voglio. Quindi, da ignorante, che però si è letto in inglese gli orribili wiki (non capendo una cippa), chiedo ad un esperto, le soluzioni giuste. Capirai che risulta un po' idiota provare perdendo tempo se tanto non si conosce una lingua (php), che ovviamente non si può imparare con PS.

 

Quindi, tornando a noi, l'ultima questione che non mi torna riguarda la copia del tema.

Se devo lavorare su una copia del tema di default (rinominato) come nel mio caso, apportando tutte le modifiche nel modo che hai insegnato, e poi per una sfiga colossale mi tocca ripristinare il tema originale (default), ovviamente perdo tutto.

 

Quindi, se non erro, lavorare su una copia è come un'assicurazione. Si opera in questo modo solo per garantirsi, nella peggiore delle ipotesi, le funzionalità minime. Si potrebbe in teoria lavorare sull'originale impostando le funzioni vitali e al quel punto fare una copia e aggiungere il resto. Altrimenti, in fase di ripristino dovrei comunque reimpostare le funzionalità indispensabili. Corretto?

Link to comment
Share on other sites

ciao

sbagliato :D

prendi il tema di prestashop lo chiami come ti pare ad esempio miotema (dovrà contenere tutti i files e sottocartelle del tema di default)

poi da lì in poi lavorerai solo sul tuo tema. Ultimamente per fare l'upgrade del sito si utilizza il modulo 1-click upgrade, nel suo pannello trovi varie opzioni tra cui quella di aggiornare il tema di default (fa anche il backup per ripristinare il sito se qualcosa andasse storto, quindi tutta sta paura sul template secondo me è un pò esagerata, poi un backup a modifiche fatte non sarebbe male).

Ti spiego come faccio io:

faccio una copia di quello di default, poi faccio la grafica del sito su quello rinominato, poi quando si va ad aggiornare il sito gli faccio aggiornare anche quello di default e con un comparatore di file controllo le variazioni apportate nei vari files del tema di default e riporto queste modifiche sui files del mio tema.

 

La spiegazione dell'override dei file php te l'ho già spiegata, ma ti ripeto ultimamente ha qualche problema. Se invece andassi a modificare quelli del core, ogni modifica andrebbe persa dopo l'aggiornamento del sito.

 

Adesso ti lascio in balia dei tuoi dubbi

 

ciaooooooo

  • Like 1
Link to comment
Share on other sites

ok

http://winmerge.org/ confronta files in cerca di differenze nel codice

http://notepad-plus-plus.org/ editor per vari linguaggi

http://bluefish.openoffice.nl editor per linguaggi web

 

http://www.wampserver.com sistema per poter sviluppare un sito sul proprio pc

http://forum.joomlah...la-su-wamp.html tutorial

 

questi sono per windows ma ce ne sono per ogni sistema operativo

 

ciao

  • Like 1
Link to comment
Share on other sites

  • 1 month later...
  • 3 months later...

Ciao volevo fare alcune domande:

 

sto creando un un sito e siccome mi sono avvicinato da poco a questo mondo di prestashop, le domande sgorgano a fiumi però sarò breve. 

 

Sto ultimamente modificando dei file tpl e solo ora leggendo questo post mi sono reso conto che dovevo fare una copia del mio tema per non perdere poi le modifiche da me fatte. 

 

Ora vi chiedo:

 

come posso risolvere ora questo problema?

Nel senso che io ora ho il tema di default installato, delle modifiche fatte sul global.css e sui file tpl dei moduli nella cartella moduli della root del sito ed alcuni nella cartella moduli della root della cartella del tema.

 

possibile soluzione:

 

potrei fare una copia del tema sostituire copiare i file tpl modificati nella root principale di moduli del sito e metterli nella cartella moduli del tema? Stessa cosa con i css ecc per i altri?

 

Il tutto perché ora mi sorge il dubbio che aggiornando prestashop non vorrei perdere le modifiche da me fatte

 

Grazie in anticipo per le eventuali risposte

Link to comment
Share on other sites

ciao medinaoff

certo, ogni modifica la devi riportare nel template, quindi ripristini il codice di default dei files originali presenti in /modules e fai esattamente quello che ho scritto nella prima pagina.

Comunque anche questa soluzione, che sarebbe un override dei files originali presenti in modules/, tipo quello che avviene per i files php del core di prestashop con la cartella ovverride/, ha sempre un problema con gli aggiornamenti.

Es. se avete utilizzato questa soluzione (che poi è quella utilizzata da tutti i template a pagamento o free) per un sito che usa la 1.5.2 e volete aggiornarlo alla 1.5.6.1, potrebbero esserci delle anomalie nel vostro FO.

La cosa migliore sarà quella di fare un confronto con i files originali della versione es. 1.5.6.1 (moduli e tema) e riportare le modifiche nei files del vostro template.

Stessa cosa per chi usa soluzioni per i files php nella cartella override/ (che di solito sarebbe bene non usare a meno che non aggiunga metodi o proprietà alle classi esistenti)

Comunque ogni prova e modifica è giusto farla in locale.

 

Consiglio:

Spesso ho visto che i siti si gestiscono un pò come un pc, cartelle di backup, cartella install/ rinominata, un sacco di versioni di moduli non più compatibili con la versione usata, files non necessari nella webroot e in modules, permessi sbagliati delle varie cartelle del sito .... Poi è normale che il sito possa avere dei problemi.

Tutte le prove dovrebbero esser fatte in locale e i files di backup del sito, di moduli e temi sul pc.

Quando provate un nuovo template o modulo fatelo sempre in locale, dopo varie prove potete decidere se installarlo sul sito. Nel database ci sono 260 tabelle, le modifiche avvengono non solo nei files e sistemare il template è decisamente più complesso. Quindi cercate di utilizzare un sistema/modalità che vi permetta di ritornare alla configurazione precedente in modo semplice e sicuro.

 

ciaooooo

Link to comment
Share on other sites

  • 2 years later...

ciao

dalla 1.6 è ancora più facile

non serve modificare nessun file css del template base e non serve fare una duplicazione della cartella default-bootstrap se le modifiche sono limitate al solo css

basta aggiungere un file tipo miofile.css nella cartella del template di default css/autoload/miofile.css e inserire tutto il codice che volete, semmai usando !important per fare l'override del codice css dei vari file css caricati dal template e moduli vari, non serve nemmno modificare header.tpl per farlo caricare, verrà caricato da se in automatico

stessa cosa per il codice in javascript nella cartella js/autoload

 

ciaoooo

Link to comment
Share on other sites

  • 4 weeks later...
  • 2 months later...

Una domanda sui file messi in css/autoload/miofile.css oppure in js/autoload/miofile.js

 

ma se aggiorno il mio tema questi file me li pialla??? cioè me li mantiente oppure sovrascrive tutto il tema aggironato?????

 

no perchè altirmenti mi chiedo l'utilità.... bo... ma non è possibile fare come in WORDPRESS per poter modificare la grafica del proprio tema... com un bel tema CHILD....

Link to comment
Share on other sites

ciao

ogni cosa automatica ha delle regole, semmai potrebbe rimuovere il tuo file, ma non quello di sovrascriverlo (poi con quale codice?), se no che senso avrebbe quella cartella oltre a caricare in automatico gli script inseriti? usare questa tecnica ti fa risparmiare un sacco di tempo evitando di dover rinominare un tema e di dover riportare tutte le modifiche css e js nel tema utilizzato nei successivi aggiornamenti. Serve solo riportare il codice da modificare o da aggiungere

 

ciaooooo

Link to comment
Share on other sites

  • 8 months later...

Ciao, è da poco che uso Prestashop, ho installato l'ultima versione 1.7, e cercavo informazioni sull'override. Ho letto il topic ma non sono comunque riuscita a capire il procedimento, spero possiate darmi una mano. In pratica ho modificato dei file del tema di default, sia file css che tpl, quindi vorrei far in modo che al prossimo aggiornamento le mie modifiche non vadano perse. Se ho capito bene devo duplicare il tema di default nella cartella themes, il problema è che poi nel BO non riesco a selezionare il mio tema duplicato perchè non mi compare. C'è qualche passaggio che salto? Una volta fatto questo, che altro devo fare per completare l'override? Grazie, mi scuso se richiedo sempre le stesse cose ma spero che in questo modo riuscirò finalmente a capire  :)

Link to comment
Share on other sites

Ciao

le cartelle autoload sono presenti nella 1.5 e 1.6 non nella 1.7

ho fatto richiesta a Prestashop per avere delle info, purtroppo hanno tolto delle cose utili tipo il media server da 3 a 1, diversi moduli utili tipo loyalty e productcomments non sono ancora stati aggiornati. Non ho ancora avuto modo di studiare per bene la 1.7, quindi non so darti informazioni dettagliate, tra poco dovrò farlo per aggiornare tutti i moduli fatti. Attualmente considero la 1.7 poco stabile, inizierò ad usarla tra diversi mesi.

 

ciaooo

Link to comment
Share on other sites

In effetti sto avendo difficoltà con la 1.7. Come ti dicevo è da poco che uso Prestashop e quasi tutti i tutorial che ho trovato sono sulla 1.6, quindi ora molte cose non riesco a capire come farle, ad esempio moduli che mancano, oppure sono stati sostituiti con altro ma non essendo pratica non riesco a capirlo. Ho deciso di usare direttamente la 1.7 perchè la mia paura è che andando avanti, se usassi la 1.6, poi al momento di dover aggiornare mi troverei ancora più in difficoltà e dovrei rifare tutto daccapo. Secondo te sbaglio e dovrei cominciare con la 1.6?

Riguardo alla domanda che avevo fatto sull'override, potresti spiegarmi comunque come fare se stessi usando la 1.6? Come avevo scritto ho capito che devo duplicare il mio tema, ma poi nel BO non mi compare...è un problema della 1.7 o c'è qualche passaggio che salto? Poi come dovrei continuare? Grazie in anticipo  :)

Link to comment
Share on other sites

ciao

con la 1.7 sono andati a cambiare la parte frontale di prestashop, integrando il framework Symfony sono state aggiunte diverse novità, hanno sostituito smarty con twig che aumenta decisamente la velocità del sito e toglie diversi problemi di cache che c'erano con smarty, però ha cambiato completamente la struttura dei template.

Con la 1.8 verrà cambiata anche la parte del pannello di controllo.

La cartella overrides serve per aggiungere metodi o apportare modifiche a quelli esistenti ma a livello php, nelle classi, nei controllers e nei moduli, per la parte grafica lo fai nel template.

Non avendo ancora studiato bene il template della 1.7 non mi va di darti tanti consigli, semmai prova a controllare i moduli nel template e andare a modificare quei files per vedere i vari risultati.

Duplicare un tema di una versione di prestashop ancora parecchio instabile che verrà aggiornata molto nelle prossime settimane ti costriggerebbe a dover ricontrollare il template ad ogni aggiornamento per vedere quali modifiche hanno apportato. L'override serve per evitare una cosa del genere.

Personalmente per un nuovo sito andrei su una 1.6, con un template extra che preferisci, poi aspetterei una versione stabile della 1.7 e di saperne di più. La 1.6 verrà aggiornata fino alla fine del 2018 se non sbagio. Credo ci siano molte persone che sono arrabbiati con prestashop per le decisioni prese.

 

nella 1.6 la duplicazione è semplice copi la cartella e poi la rinomini, con la 1.7 non ho ancora prova, ti ripeto sono completamente diversi quindi ci sta che serva comportarsi in modo diverso

 

ciaooo

Link to comment
Share on other sites

Ciao,

ok quindi visto che le mie modifiche saranno solo a livello grafico, non devo toccare la cartella override ma semplicemente devo duplicare il mio tema.

Ho scaricato anche la 1.6 per vedere le differenze, e il problema è che una volta duplicato il tema, mentre nella 1.6 nel BO > Configura il tuo tema, ho la possibilità di scegliere quale tema usare, nella 1.7 questa parte è stata proprio eliminata. Mi sa che ho scelto proprio un momento sbagliato per cominciare ad usare Prestashop  :)  Anche se non capisco perchè con questo aggiornamento alcune cose, a mio avviso utili, sono state eliminate. Stavo anche leggendo la documentazione ufficiale, ma credo che non sia stata aggiornata...sto trovando davvero poche informazioni sulla 1.7 e quindi mi trovo in difficoltà non essendo pratica. Grazie mille per il tuo aiuto  :)

Link to comment
Share on other sites

Ciao

ho controllato un pò il tema della 1.7 e ho visto che è tutto in smarty quindi senza twig, però hanno cambiato completamente la struttura interna.

Se si disabilita la cache va ancora più veloce, poi poco altro, dato che hanno rimosso tante cose e molti moduli base di presta sono ancora da configurare, altri non verranno più gestiti.

Qui trovi un pò d'informazioni, alla fine ho elencato tutte le cose che hanno rimosso, sperando di stimolare prestashop a fare una versione migliore

https://www.prestashop.com/forums/topic/480580-want-to-know-more-about-17

 

ciao

Link to comment
Share on other sites

Ciao,

prima di tutto grazie mille per la tua disponibilità...sei forse l'unico che sta rispondendo alle mie domande :) Da quello che ho capito visto che ho modificato solo file della cartella themes, basta che duplico il tema (di default nel mio caso) e scelgo quello dal BO come mio nuovo tema. Quindi ho scaricato il tema di default, ho modificato nel file theme.yml "name" e "display name" e ho provato a caricarlo nel BO, ma mi dice che il tema non è valido. Ho sbagliato qualcosa quando l'ho duplicato? Scusami se continuo a chiederti sempre la stessa cosa, ma proprio non riesco a farlo funzionare. 

Un'informazione che invece volevo condividere è che ho scritto nel link che mi avevi suggerito http://forge.prestas.../Dashboard.jspa riguardo l'assenza del theme configurator, e mi hanno detto che è stato eliminato dal tema di default, non so se solo per il momento, mentre invece potrebbe esserci ancora in qualche altro tema, e probabilmente anche nello Starter theme. Io l'ho scaricato, anche se non riesco ad installare nemmeno questo ovviamente, ma comunque non so se mi sarebbe utile, ho letto che è proprio per gli sviluppatori, quindi forse troppo vuoto per me

Link to comment
Share on other sites

ciao

se le modifiche sono solo codice css o js non serve duplicare un tema ma basta seguire le indicazioni di quei siti che ho postato

per duplicarlo basta prendere il tema di prestashop, modificare i nomi relativi al template e metterlo in themes dopo lo installi dal BO

se ci son problemi serve andare nel bug-tracker e aprire un topic fornendo descrizioni ed immagini, dopo poco dovrebbero contattarti come hanno fatto con me con altri errori che gli ho postato.

 

ciao

Link to comment
Share on other sites

Per i file css ho creato un mio css dove sto apportando le modifiche, è che ho modificato anche dei file tpl perciò volevo duplicare il tema. Io credo di eseguire la procedura correttamente, ho scaricato il tema di default, ho modificato nel file theme.yml "name" e "display name", poi vado nel BO > Aggiungi tema, e scelgo carica file zip dal computer. A quel punto però mi dice che il tema non è valido. Prima di scrivere nella sezione dei bug volevo essere sicura di non sbagliare io qualcosa

Link to comment
Share on other sites

provato così mi son tolto il dubbio

non riscontro errori

basta copiare la cartella "classic" sul pc, poi la rinomini mytheme o come vuoi, poi editi il file config/theme.yml e cambi

name: mytheme
display_name: Mytheme
version: 1.0.0

 

poi carichi tutto tramite filezilla in themes

dopo vai nel back-office in temi e premi sul pulsante usa questo tema

 

ciao

Link to comment
Share on other sites

Ma tu stai usando sempre la 1.7? Perchè io ho fatto proprio come dici tu, solo che quando poi devo caricare il tema nel BO, non c'è la spunta usa questo tema. Ho "aggiungi tema" e ho tre opzioni: IMPORTA DAL COMPUTER, IMPORTA DAL WEB, IMPORTA CON FTP. In tutti e tre i casi mi chiede di selezionare un file ZIP. Quando lo carico poi mi dice "Questo tema non è valido per PrestaShop 1.7". é un problema della 1.7?

Link to comment
Share on other sites

non so che dirti

uso la 1.7.0.3, a me lo abilita subito e non chiede zip

che sia un bug di presta dubito perchè viene provato da diversi programmatori che fanno temi, un errore di questo tipo lo avrebbero già risolto

se vuole lo zip credo siano necessari altri file

per capire se lo sbaglio dipende da noi basta scaricarsi un template gratuito e vedere come è fatto lo zip

https://presta-theme-maker.com/maker-17/

http://www.prestabrain.com/theme/pts-base/

 

ciaooooooo

Link to comment
Share on other sites

Scusa se ti faccio perder tempo per una cosa così banale. Può essere che dipende dal fatto che sto usando la 1.7.0.2? Ti scrivo al volo quello che io vedo nel back office, poi smetto di romperti le scatole :) anche perchè a quanto pare è un errore mio visto che a te funziona. Allora vado in Temi, ho un anteprima del mio tema classic, poi a fianco c'è "Configura i layout della tua pagina", ma qui non mi fa scegliere il tema ma solo il layout per i vari tipi di pagina. In alto a destra ho "Aggiungi tema" e lì faccio come ti ho scritto prima. Non so se a questo punto aggiornare alla 1.7.0.3 e poi sostituire i file che ho modificato a mano. Grazie davvero per la tua disponibilità

Link to comment
Share on other sites

prima cosa aggiorna alla 1.7.0.3

poi

basta copiare la cartella "classic" sul pc, poi la rinomini mytheme o come vuoi, poi editi il file config/theme.yml e cambi

name: mytheme
display_name: Mytheme
version: 1.0.0

 

poi carichi tutto tramite filezilla in themes

dopo vai nel back-office in temi e premi sul pulsante usa questo tema

 

il tema mytheme appare sotto a quello classic in uso. Se ci passi sopra col mouse appare un pulsante con la scritta usa questo tema, quindi non serve caricare zip

ho riprovato e funziona perfettamente, anche nella parte frontale i file css vengono caricati dal nuovo tema

 

Ho trovato pure un errore in prestashop sugli url ai css ma non è la causa del tuo problema

 

post-60956-0-95910700-1483010631_thumb.png

Link to comment
Share on other sites

  • 5 weeks later...

Ragazzi, che ne dite di uploadare su un vostro server qualche template da condividere? Sembra stia diventando davvero arduo trovare i template grafici online. Persino il tema Classic non si riesce a trovare online per la versione 1.7.0.4 nemmeno in formato zip... assurdo, che razza di programmatori/hackers opensource siamo? :-)

Facciamo girare qualche dannato template, o mi troverò a sviluppare e regalare su sourceforge un'app che li crei gratis in automatico.

Ciao a Tutti Voi e buon lavoro ;)

Link to comment
Share on other sites

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 account

Sign in

Already have an account? Sign in here.

Sign In Now
×
×
  • Create New...