Sziasztok,
Az Ubercart Catalog moduljához kérném a segítségeteket. A jelenlegi kiadásban (6.x-2.9) a csatolt katalógus képek kezelése kicsit bugos, illetve nem lehet változtatni a tároló könyvtárat, az alapértelmezett files könyvtárba pakol mindent. Épp ezért készitettem egy saját modult erre a célra. Bemásoltam az uc_catalog_taxonomy($op, $type, $object = NULL) funkció forrását a uc_catalog.module-ból a saját modulba, megcsináltam a szükséges módosításokat, és javításokat, igy már jó helyre teszi a képeket. Viszont akár mit csinálok, az eredeti uc_catalog_taxonomy funkció is lefut, és felülírja az adatbázisban a kép elérési útját. Próbálkoztam a $_FILES['files'], majd a teljes $_FILES törlésével unset($_FILES);
de semmi eredmény, ugyanugy lefut az eredeti funkció is. Először a saját modul fut le, utána az ubercart. Az eredeti funkció igy ellenőrzi a feltöltött képet:
... if ($object['remove']) { db_query("DELETE FROM {uc_catalog_images} WHERE tid = %d", $object['tid']); } elseif ($file = file_save_upload($field_name)) { ide nem kéne eljutnia, ennek nem kéne lefutnia ...
...vagyis a file_save_upload-nak kéne 0 (nulla) értéket visszaadnia, akkor NEM futna le. Hogyan lehet ezt megakadályozni, szabályozni? A $_FILES törlése nem vezetett eredményre. Másképp kérdezve, hogyan tudom megakadályozni, hogy egy feltöltött és lementett képet egy másik funkció újra lementsen? Ötlet? Javaslat?
Ui.: Ismerem a Taxonomy Image modult, de azt nem akarom használni)
modul súly, másik kép mező
A file_save_upload() visszatérési értéke csak hiba esetén lesz 0, itt pedig nincs szó hibáról.
Mivel a hook függvények a modulok súlya szerint futnak le, első ránézésre azt javasolnám, hogy a saját modulod súlyát állítsd nagyobb értékre, mint a katalogusé, így az fog utoljára lefutni.
További lehetséges megoldás, hogy nem az Übercart által alapértelmezettnek vett "image" mezőt használod, hanem létrehozol egy sajátot.
Jó ötlet
Köszi a hozzászólásod, bár különböző okok miatt sem a modul weight, sem a saját form azonosító nem jött be, viszont ezzel egy jó ötletet adtál, hogy a hook_init() résznél módosítani kell a $_FILES tartalmát, átnevezni az image form azonosítót, hogy az ubercart catalog ne találjon ott semmit, valahogy igy:
Ezzel én kezelem a képeket, a többi marad a catalog modulra.
Igy már tökéletes! (bár elment rá mésfél napom... :-( )
Köszi a segítséged!
www.tundus.hu