MarcoRomio Posted September 21, 2016 Share Posted September 21, 2016 Buongiorno a tutti, Per lavoro sto modificando il file che regolamenta la visualizzazione dei prodotti on-line: product.tpl. Avrei bisogno di leggere semplicemente due numeri dalla tabella prodotti da me modificata aggiungendo due campi. Tuttavia, anche se regolarmente modificato il file, la variabile $product non mi stampa i nuovi due record. Ho provato anche a vedere se riuscivo ad individuare la query che popola la variabile, ma non trovo nemmeno il file da cui viene richiamato product.tpl. Premetto che le mie competenze sono in ambito di programmazione standalone su C#, php molto poco se non ignoto disgraziatamente. Qualcuno riesce a darmi una dritta? Grazie Link to comment Share on other sites More sharing options...
Fabry Posted September 21, 2016 Share Posted September 21, 2016 Salve Marco, da B.Office é possibile aggiungere campi alla scheda prodotto semplicemente entrando nell editing del prodotto e scegliere la voce di menu "personalizzazione" se mi ricordo bene.. Premetto che non sono esperto in sviluppo php ma qualcosa di ps ho capito..si impara giorno per giorno:-). Ora non ho capito bene se questi due campi devono essere visibili sia nel front che nel Back Office. PS é basato sul famoso pattern Model View Control che praticamente separa la logica di presentazione dei dati...ossia i file tpl presenti nella cartella template sono quelli che si occupano dell'aspetto grafico che vogliamo dare ai nostri contenuti......ma questi file sono richiamati da un rispettivo file controller con estensione .php in questo caso ProductController...per es si legge: $this->context->smarty->assign(array( 'stock_management' => Configuration::get('PS_STOCK_MANAGEMENT'), 'customizationFields' => $customization_fields, 'id_customization' => empty($customization_datas) ? null : $customization_datas[0]['id_customization'], 'accessories' => $accessories, 'return_link' => $return .....eppoi $this->setTemplate(_PS_THEME_DIR_.'product.tpl'); significa che questo file va a leggere dati dal DB.. e li assegna al motore di template che é Smarty che é basato sul linguaggio php. Nel caso voglia aggiungere due campi sia nel front che nel BO dove possono essere popolati:-)..deve operare in diverse parti della piattaforma..se mi ricordo bene: nella cartella Admin>tabs deve lavorare sul file AdminProducts nella cartella Override ( essí perché deve seguire questa strada per fare le cose corrette ) deve alterare il file product.php nella rispettiva cartella classes e nella cartella del tema come ovvio fará le sue modifiche al rispettivo file product.tpl Ora le modifiche da attuare variano in base a quello che vuole realizzare. ci dia piú info specifiche e vedró se riesco ad aiutarla scrivendo il corretto codice. Fabrizio Ps: troverá info ben dettagliate se cerca informazioni riguardo all'estensione di oggetti in prestashop perché in realtá é di questo che si parla, estendere nuovi campi all'oggetto "prodotto" e quindi alterando la rispettiva classe;-)...non é semplice come sembra!! almeno per me Link to comment Share on other sites More sharing options...
MarcoRomio Posted September 22, 2016 Author Share Posted September 22, 2016 Buongiorno Fabrizio, Grazie della risposta. Specifico meglio l'esigenza: sto sviluppando un applicativo in C# che connetta un gestionale o più gestionali ad un negozio prestashop: allineando classificazioni, produttori, prodotti, ordini, clienti e fatture. All'attuale stato sono riuscito a allineare gran parte di questi, tuttavia è sorta una possibile modifica allo stesso prevedendo di considerare in visualizzazione le giacenze di più luoghi contemporaneamente e se eventualmente ci sono in ordine dei quantitativi. Per esempio potrei avere in sede una qta x ed in altre 4 logistiche su territorio delle qta y, z, v, w. Ho potuto osservare che esiste anche una gestione dei magazzini più approfondita, ma per me prestashop deve solo subire il dato e non gestirlo. Potrei gestire con i campi aggiuntivi alla scheda prodotto? Tuttavia questo deve avvenire per tutti i prodotti, come uno standard non potrò effettuarlo per il singolo prodotto. Ringrazio anticipatamente per le risposte. Marco Link to comment Share on other sites More sharing options...
Fabry Posted September 22, 2016 Share Posted September 22, 2016 Buongiorno Marco, ok quindi se ho ben capito in pratica si tratta di sincronizzare questo gestionale o gestionali verso Prestashop attraverso il suo modulo; quindi deve avere accesso al DB dall'esterno giusto? Non tutti i server lo permettono peró a meno che siano vps o dedicati. Quá nel forum ci sono developers che di sicuro sapranno aiutarla, purtroppo questo suo problema per ora esula le mie competenze ahimé....ma sono curioso di sapere come poter risolvere, nel caso trovassi info dettagliate lo scrivo nel topic!. buona giornata Link to comment Share on other sites More sharing options...
Codencode Posted September 23, 2016 Share Posted September 23, 2016 I sono stati aggiunti anche nel model? (classe Product) Link to comment Share on other sites More sharing options...
MarcoRomio Posted September 26, 2016 Author Share Posted September 26, 2016 Buongiorno, Grazie comunque Fabrizio, in effetti sto testando su un ambiente di prova il programma, non su quello ufficiale che è attualmente in hosting esterno. Ho subito inoltrato la richiesta di verifica degli accessi al provider. Spero non facciano problemi eventualmente a sbloccare l'accesso o diventerà un problema notevole. In realtà ho solo aggiunto il seguente codice al file product.tpl: <span id="availability_date_value">{if Validate::isDate($product->available_date)}{dateFormat date=$product->available_date full=false}{/if}</span> </p> <p> <span>Quantità disponibile presso logistica: {$product->ps_qta_logistica}</span><br/> <span>Quantità in arrivo dal fornitore: {$product->ps_qta_in_arrivo}</span> </p> <!-- Out of stock hook --> <div id="oosHook"{if $product->quantity > 0} style="display: none;"{/if}> {$HOOK_PRODUCT_OOS} I due campi con il medesimo nome utilizzato nel codice sono ovviamente stati aggiunti al db e valorizzati dall'applicativo.Tengo a precisare che cambiando il campo da visualizzare, sul frontend questo viene visualizzato correttamente. 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