da deepmax » ven apr 14, 2006 4:21 am
Ciao, in effetti il problema anche a me risulta esserci, eccome!
Per quanto mi riguarda, penso di aver trovato il 'bug'
Da una mia ricerca nel codice che effettua la cancellazione del prodotto, (che risulta essere molto articolato e abbastanza complesso, occorre effettuare ad esempio tutta una serie di controlli per verificare se il prodotto è collegato a più categorie, se il prodotto ha una immagine etc. etc.) penso di aver trovato la svista del team americano.
Non posso essere però sicuro al 100%, spero in un rapido interessamento da parte anche dei validi ragazzi di zencart-italia.com che faranno sicuramente da tester ed intermediari con gli sviluppatori per confermare la cosa.
Allora, veniamo al problema ed alla soluzione:
file interessato:
[b]admin/includes/modules/delete_product_confirm.php[/b]
righe da [b]49[/b] a [b]51[/b]
codice originale:
$db->Execute("delete from " . TABLE_PRODUCTS_TO_CATEGORIES . "
where products_id = '" . (int)$product_id . "'
and categories_id = '" . (int)$product_categories. "'") .'
';
a mio parere [b]diventa questo:[/b]
for ($i=0, $n=sizeof($product_categories); $i<$n; $i++) {
$db->Execute("delete from " . TABLE_PRODUCTS_TO_CATEGORIES . "
where products_id = '" . (int)$product_id . "'
and categories_id = '" . (int)$product_categories[$i] . "'") .'
';
}
senza il ciclo che effettua la corretta individuazione dei valori dall'array $product_categories non può funzionare.
Infatti se si prova a fare una echo del valore che viene restituito da (int)$product_categories si ottiene semplicemente 1, cioè che true, mentre noi abbiamo bisogno del valore di categories_id perchè la query venga eseguita correttamente.
Spero che questo possa essere di aiuto per tutti, e soprattutto di non aver preso un abbaglio, visto che il codice di tutte queste aree di Zencart è stato praticamente riscritto da zero per adeguarsi al restiling e non posso essere certo, per il momento, di aver interpretato correttamente il pensiero del team di sviluppo.
Ad ogni modo per quanto mi riguarda, tutto sembra funzionare ad ok, perciò in bocca al lupo e forza così, questi sono solo alcuni piccoli passi incerti sul cammino verso una versione più stabile.
Saluti a tutti, e soprattutto al team che ha fatto veramente un lavoro da paura fino ad oggi.
DeepMax
:-D