Salve, io avrei questo quesito da porre.
Io ho una scheda di informazione con una gallery allegata.
La scheda madre è in italiano è clonata per l'inglese.
La questione è che ho bisogno che la scheda quando viene eliminata dall'inglese essendo che usa le stesse immagini della gallery italiana, non elimini le immagini.
Perchè succede che se elimino una scheda le immagini che si trovano nell'altra lingua spariscono insieme al thumb, e poi devo ricaricarle nel'ftp per poterle vedere almeno nella lingua italiana.
C'è un modo per fare un controllo sulle foto al momento dell'eliminazione?
Sono nel pallone con questa cosa perchè l'ho risolta in una maniera, ma il cliente vuole per forza questa modifica.
Alcuni file gli avevo individuati, ma non sono sicuro però.
Fatemi sapere vi prego anche se devo allegare dei file individuati per metterci le mani.
Grazie
Eliminazione di una scheda contenuto con gallery senza eliminare immagini
Gio, 28/01/2010 - 16:15
#1
Eliminazione di una scheda contenuto con gallery senza eliminare immagini
Mi da l'impressione - se stiamo parlando di allegati - che il codice Drupal non controlla se ci sono altri riferimenti al file (modules/upload/upload.module:422):
function upload_delete($node) {
$files = array();
$result = db_query('SELECT DISTINCT f.* FROM {upload} u INNER JOIN {files} f ON u.fid = f.fid WHERE u.nid = %d', $node->nid);
while ($file = db_fetch_object($result)) {
$files[$file->fid] = $file;
}
foreach ($files as $fid => $file) {
// Delete all files associated with the node
db_query('DELETE FROM {files} WHERE fid = %d', $fid);
file_delete($file->filepath);
}
// Delete all file revision information associated with the node
db_query('DELETE FROM {upload} WHERE nid = %d', $node->nid);
}
Sfortunatamente sembra che CCK filefield fa la stessa cosa! (sites/all/modules/filefield/filefield_field.inc:208). Quest'argomento è stato discusso:
http://drupal.org/node/119539
http://stackoverflow.com/questions/2101754/drupal-filefield-remove-file-...
http://stackoverflow.com/questions/1796948/how-can-i-associate-many-exis...
http://drupal.org/project/filefield_sources
Comunque, sembra un bel 'fallo' di Drupal - che non ha un bellisimo rapporto con files.
Al rischio di infrangere la prima regola (don't hack core) una rapida soluzione sarebbe di
togliere le chiamate arendere inocuo questo funzione. Riempirà il disco e la tabella files, ma almeno non perdi niente...file_delete
[Edit]
La soluzione migliore sarebbe un Document Management System. Anche forse troppo. Comunque, mi sembra che un DMS di Drupal non esiste, ma che ci sono soluzioni di integrazione con altri DMS:
http://groups.drupal.org/document-management
http://drupal.org/node/57400
http://groups.drupal.org/node/134
http://drupal.org/node/90330
http://cafuego.net/2009/05/31/simple-drupal-document-management-system
http://acquia.com/node/1389
http://buytaert.net/drupal-and-alfresco
http://groups.drupal.org/node/4708
http://groups.drupal.org/node/3459
(Non ho letto tutti questi articoli, solo le prime 2-3 paragrafi)
[/Edit]
Più imparo, più dubito.
Ti ringrazio innanzitutto, ma filefield_field.inc non c'è l'ho nella directory, c'è il file filefield.module, ma quello mi manca.
Poi ho fatto delle prove su upload.module commentanto file_delete($file->filepath); .Dopo anche le funzioni, le select che eliminavano la tabella file, sempre passi alla volta, però....niente.
Come si può fare secondo lei?
P.s. Una soluzione momentanea ci sarebbe disconnettendo la traduzione renderla non pubblica, e quindi ricreare un'altra traduzione, ma il cliente è un pò complicato e quindi.....devo continuare con questo problema.
Credo proprio che ci dev'essere:
http://drupalcode.org/viewvc/drupal/contributions/modules/filefield/
http://drupalcode.org/viewvc/drupal/contributions/modules/filefield/file...
Prova aggiornare ;-)
Questo era il mio errore di sbaglio. Meglio che elimini sia la cancellazione del file, sia i record del db:
Se mi dai del 'lei' per via del colore dei capelli... ;-)
Anche a me sembra complicato. Non ho indagato su come viene creato un nodo 'parallelo' in un altro linguaggio...
Questa soluzione (se oso chiamarlo così - è un vero hack, praticamente una lobotomia) - se funziona - funzionerà solo per attachments, bisogna fare un'altra lobotomia per filefield (se stavi usando quello)...
Non sto faccendo un controllo di questi modifiche nel mio sandbox, non ho tempo ora - quindi bisogna sperimentare da solo. Se così non funziona, togli anche l'unica riga rimasta nella funziona...
Bon chance
Più imparo, più dubito.
Ho apena visto questo video tutorial (di solito gli evito) http://geeksandgod.com/tutorials/computers/cms/drupal/creating-drupal-ph... dove gli immagini sono nodi separati dalle gallerie. Credo che così non vengono eliminati se elimini la galleria. Da testare però...
Più imparo, più dubito.
Ma con Drupal 6.15 questo problema che ho riscontrato all'inizio si risolve o bisogna mettere qualche modulo?