Visualizzazione post con etichetta php. Mostra tutti i post
Visualizzazione post con etichetta php. Mostra tutti i post

martedì 4 settembre 2012

PHP - Problemi con EOL

Per qualche strano motivo il testo contenuto in una variabile continua ad andare a capo, questa cosa non è gradita alla funzione javascript a cui passo il valore, dopo varie ricerche e prove riesco a trovare una soluzione.



 $html = '' . $var1 . '' . $var2;
 $html = str_replace("\\r\\n", "", addslashes(trim($html)));
 $html = str_replace(PHP_EOL,"",$html);
 $html = str_replace(array("\r", "\n"), '', $html);


il PHP alle volte è veramente ostico.

lunedì 4 giugno 2012

MongoDB su Duvri 81.08



Dopo un anno di lavoro abbiamo messo online l'app documentale Duvri 81.08.





Comprende una piattaforma per la realizzazione guidata della documentazione per la valutazione dei rischi da interferenze. (vedi blog per maggiori info)

Realizzata dal contributo di Confindustria Vercelli-Valsesia e Inail.

La app si basa su MongoDB distribuito in replicaset su 3 server.

Due macchine front-end bilanciate con PHP5, Zend Framework e Docrine Odm.

Un server con Open Office server, Tomcat con una app web di conversione documenti basata su JodConverter

App segnalata sulla pagina di MongoDB.



giovedì 1 dicembre 2011

MongoDB : Doctrine ODM vs. Mandango

MongoDB Doctine ODM:

pro:
  • semplice e intuitivo
  • i field di tipo array si dichiarano in modo semplice
  • possibilità di _id autogenerati negli embed 
  • Nessun problema con Embed dentro embed e Reference dentro ad embed etc.
  • Id generati anche negli embed in modo semplice

contro:
  • definisco gli indici negli object ma questi non vengono effettivamente creati
  • è lento rispetto a Mandango altri ODM
  • E' in Beta
  • E' difficile trovare documentazione.
da capire:

  • Devo capire se la velocità aumenta configurando gli object in xml.
Mandango

pro:

  • Molta velocità rispetto a Doctine
  • con Mandator crea automaticamente i modelli partendo da un array().
  • i modelli base vengono rigenerati quelli che devono essere estesi da noi no. (ottima cosa)
  • una volta presa la mano con le conf degli object diventa molto veloce.
  • molto utile la funzionalità references/relations
contro:
  • ReferenceOne non molto chiara in db.
  • E' difficile trovare documentazione.
  • Per definire un tipo di dato array bisogna definirlo di tipo 'raw'.
  • Per la definizione dei campi sulle reference bisogna definire un polymorphic per comodità (vedi sotto l'esempio)
  • Non sono riuscito a trovare il metodo per configurare un campo Data a default now().
  • Comportamento strano con gli embed, es : creo un embed di tipo indirizzo e lo salvo in una collection nel field via1, riuso sempre nello codice qualche riga sotto  l'embed salvandolo sempre nella collection indirizzo ma nel campo via2. l'Embed non viene salvato, come se fosse flushato quando è stato agganciato al primo campo.
  • Problemi segnalati con il GridFS
  • Poco supporto sul gruppo 
  • Ho riscontrato un problema nelle reference contenuti negli embed.



ReferenceOne:

Doctrine : definizione molto completa nella collection.



 Mandango: definizione meno accurata.



a mio avviso è meglio usare il field di tipo polymorphic in modo da avere la definizione esatta della classe collegata per facilitare l'eventuale consultazione del db:


è ridondante ma più comprensibile.



altri..

Morph : mancano diversi parti (embed, etc.)
Shanty-Mongo: da verificare sembra valido ad una prima occhiata.

Questo post sarà in aggiornamento continuo.


giovedì 22 settembre 2011

Doctrine MongoDB - @ReferenceOne to different target class






<?

/**
 * @Document
 * @InheritanceType("SINGLE_COLLECTION")
 * @DiscriminatorField(fieldName="type")
 * @DiscriminatorMap({"student"="Student","customer"="Customer"})
 */

class People {


/** @Id */
protected $id;



/** @String */
protected $name;


/** @String */
protected $surname;


        ..etc.. etc...



}





/**
 * @Document
 */
class Student extend People {


/** @String */
protected $course;

/** @String */
protected $year;


        ..etc.. etc...



}




/**

 * @Document

 */

class Customer extend People {


/** @String */
protected $code;

/** @String */
protected $name;


        ..etc.. etc...


}


/**

 * @Document

 */

class MixedPeople {


/** @Id */
protected $id;

        /** @ReferenceOne(targetDocument="People") */
protected $mixedpeople;

        ..etc.. etc...


}

giovedì 21 aprile 2011

Prestashop 1.4 - Modulo pagamento per Banca Sella - PrestaGestPay


Ultima versione del modulo per Banca Sella disponibile sul sito il modulo è funzionante e presente sul questo sito.




fiero di aver contribuito! :)

mercoledì 20 aprile 2011

Prestashop 1.4 - Modulo Pagamento in contrassegno

Il modulo del pagamento in contrassegno non era presente in Prestashop, ovvero il modulo dove si possa pagare la merce alla consegna con l'aggiunta della spesa del contrassegno (per ora è pensato Italia to Italia).

Eccolo realizzato per la comunità





dalle configurazione è possibile definire a cose viene applicata la tassa, in questo caso si seleziona solamente il totale delle spese di spedizione, se avete richieste chiedete pure. (a me serviva fatto così :) )

liberamente scaricabile da qui

lunedì 11 aprile 2011

Prestashop 1.4 - problemi paginazione/ordinamento sui best-sales

Nella estrazione dei Best Sales ho notato il problema del non funzionamento della paginazione e dell’ordinamento, penso che chi guarda questa sezione vorrebbe vedere l’elenco dei prodotti più venduti ordinati appunto da quelli più venduti!!

questo file è da inserire nella cartella /overide/controllers/BestSalesController.php


tra le altre cose ho scoperto che è possibile usare la cartella /overide/ per iserire tutte le classi e i controller che vanno sovrascritti!


articolo postato anche qui


venerdì 8 aprile 2011

Prestashop 1.4 - problemi sul calcolo dei voucher

Usando Prestashop mi sono accorto che esiste un problema sul calcolo dei voucher, infatti gli sconti vengono sempre calcolati sul totale ordine con iva e spese di spedizione quando il cliente logicamente vuole il calcolo sulla sommatoria di soli tutti i prodotti iva esclusa. Per sistemare questa problematica ho dovuto eseguire una patch brutale del codice dei File Cart.php, Discount.php e naturalmente la generazione del PDF.php

per il file Discount.php bisogna modificare il seguente e calcolo

foreach ($products AS $product)
if (count($categories) AND Product::idIsOnCategoryId($product['id_product'], $categories))
$totalAmount += $useTax ? $product['total_wt'] : $product['total'];


con

foreach ($products AS $product)
if (count($categories) AND Product::idIsOnCategoryId($product['id_product'], $categories))
$totalAmount += $product['total'];
//$totalAmount += $useTax ? $product['total_wt'] : $product['total'];


qui trovate la funzione da sostituire nel file Cart.php

per il pdf lascio ad ognuno la modifiche che servono.

questo post è stato anche inserito qui

se avete bisogno di aiuto scrivetemi.

giovedì 10 marzo 2011

Prestashop 1.4 - Cache

Quando la cache non ti fa modificare i moduli bisogna eliminare i file contenuti in

tools/smarty/cache e tools/smarty/compile

lunedì 21 febbraio 2011

Prestashop - Eliminare gli ordini dal BO

cambiare la chiamata di vieworder con deleteorder

es:

http://dominio.com/adminindex.php?tab=AdminOrders&id_order=1&vieworder;&token;=f62930bu9214d96112339×567c0e9kq


to

http://dominio.com/adminindex.php?tab=AdminOrders&id_order=1&deleteorder;&token;=f62930bu9214d96112339×567c0e9kq

fonte:
http://www.prestashop.com/forums/viewthread/8994/

mercoledì 2 febbraio 2011

Prestashop - Selezione in fase di registrazione del gruppo di appartenenza

Devo usare prestashop in versione italiana con c.f., p.iva e privacy:

/themes/prestashop/autentication.tpl

<p class="radio required">
<span>{l s='group'}</span>
<input type="radio" name="group" id="group1" value="2"
<label for="group1" class="top">{l s='Business'}</label>
<input type="radio" name="group" id="group2" value="3"/>
<label for="group2" class="top">{l s='Privato'}</label>
</p>

/autentication.php recupero il dato via post


$customer->id_default_group = (empty($_POST['group']) ? 1 : intval($_POST['group']));

nella funziona add di classes/Customers.php

//if ($this->id_default_group == 1)
// $row = array('id_customer' => intval($this->id), 'id_group' => 1);
if ($this->id_default_group)
$row = array('id_customer' => intval($this->id), 'id_group' =>$this->id_default_group);
else
$row = array('id_customer' => intval($this->id), 'id_group' => 1);

return Db::getInstance()->AutoExecute(_DB_PREFIX_.'customer_group', $row, 'INSERT');

versione 1.3.6.0 – 0.306s - presa da http://www.prestamodules.com/prestashop/1-Prestashop-Italia.html


riferimento ad articolo sul blog http://www.prestashop.com/forums/viewthread/89794/