Tud valaki olyan modulról, ami a CCK imagefield-el feltöltött képeket a megadott könyvtáron belül, node-onként a node id-je alapján külön könyvtárba tölti fel.
A TOKEN modul engedi az user adatai alapján megadható token-eket, de nekem ez nem teljesen kielégítő.
Melyik modulhoz, modulokhoz kapcsolódik a téma?:
Fórum:
saját modullal tudod létrehozni a neked kellő tokeneket
soha nem próbáltam, de elvileg ez a módja a dolognak. valamikor a héten vagy a múlt héten volt egy szál, ahol valaki az auto_nodetitles modulhoz akart így tokent hozzáadni, igaz ott taxonomy termekről volt szó, de szerintem az elv ugyan az.
engem is nagyon érdekelne egyébként a megoldás. ;)
-
clear: both;
:) A helyzet az, hogy ennél
:)
A helyzet az, hogy ennél egy kicsit bonyolultabb a dolog, ugyanis, ha egy új tartalmat küldesz be, akkor még nincs a node-nak nid-je :) Ugyan az adatbázisból ki lehet olvasni a következő nid értékét, de ha lassú vagy akkor elképzelhető, hogy valaki hamarabb küld be egy node-ot, és így nem lesz valós a kiolvasott nid.
Én nem találtam modult rá, de ez még nem jeleni azt, hogy nincs....
Én egy olyan modulra gondoltam, ahol hook_alter()-ben kiegészítem az imagefield-nél megadott könyvtárt egy generált karaktersorral. Majd amikor ténylegesen megtörtént a nid megadása utána átnevezem a könyvtárat, valamint a files táblában átírom a generált karaktersort, a nid értékre. Persze ez csak az elv, még reménykedem, hogy van rá kész megoldás.
...mit tudok: http://web.termuves.hu
hát kössz.
régóta ver a víz miatta, hogy a token + filefield tokens engedéylezése után sem tudok az imagefield mezőimnek olyan file útvonalat adni, hogy tistutyafule/[nid]/[uid] például és tökre nem értettem, hogy miért, de így hogy most mondod, elég logikus. :)
én úgy szoktam megadni filemezőknek útvonalat, hogy az uid (meg néha más, pl ttipus) alapján van könyvtárakba pakolva a sok file. nem tudtam még jobbat kitalálni, illetve nem volt időm rá vagy még inkább a kettő együtt. :)
-
clear: both;
Ez eddig egy félmegoldás, de
Ez eddig egy félmegoldás, de meglepően egyszerű:
(kell hozzá a TOKEN modul is)
A félmegoldás az, hogy csak akkor menti a nid könyvtárba, ha előtte már el volt mentve a node. Egyébként a field-nél megadott könyvtárba teszi.
Itt most elakadtam.
Lehetséges megoldások:
1. Lehetne úgy, hogy ha új node beküldése van, akkor egyszerűen nem lehet képet feltölteni: hook_alter()-ben törölni az imagefield form részét, majd a node beküldése után visszairányítani a szerkesztő oldalra. Ekkor már van nid, tehát lehet képet feltölteni, a nid-el jelzett könyvtárba. Ez nem nagyon elegáns, de működőképesnek tűnik.
2. Mehet a képfeltöltés az alapkönyvtárba, majd a node beküldése után és a node megjelenése előtt, ahol már van konkrét nid, áttölteni a képeket a nid nevű könyvtárban, illetve kibővíteni a files tábla filepath mezőjét. Amit nem tudok, hogy miután kiossza a Drupal a nid-et, mivel, és hol lehet beavatkozni ? Nekem ez lenne a tetsző megoldás...
3. cron futtatásnál, nézni, hogy van-e olyan feltöltés, ami az alapkönyvtárra mutat, ha igen, akkor áttölteni. Ha a 2. nem megy ezen a vonalon fogok próbálkozni.
...mit tudok: http://web.termuves.hu
Na igen. Csak bele kellett
Na igen. Csak bele kellett nézni a node_save()-be.
Az tárolás előtt a hook_nodeapi() "presave" a végén tárolás után "insert" $op-al hívódik meg. "Insert"-nél már van nid.
(egy jó és hasznos téma lenne, ha valaki összefoglalná, hogy a hook_nodeapi() és az xxx_alter() fügvényekkel mikor, hol és hogyan lehet beavatkozni az adatok kezelésébe)
...mit tudok: http://web.termuves.hu
[nid] token imagefield-ben
http://www.emela.hu/drupal/imagefield_nid.rar
TOKEN modul kell hozzá
Elvileg működik, de nem árt tesztelni...
Az imagefield könyvtár megadásnál, be kell írni [nid] tokent.
Ha még nincs a node beküldve (csak a kép feltöltésre kattintunk), akkor a megadott könyvtárba (nid nélkül) tölti fel a képet. Ha a node beküldésre került, akkor átmásolja a képeket a nid szerinti alkönyvtárba.
szerk: frissítettem a modult, volt benn egy-két hiba (2008.12.21)
...mit tudok: http://web.termuves.hu