Hello!
Egy olyan modult fejlesztek, amelyhez kell fájlfeltöltés, és annak ellenörzése, hogy a fájl megfelelő tartalommal rendelkezik-e. Ezt úgy oldottam meg, hogy validáláskor feltöltöm a fájlt, megnyitom, és végigmegyek a tartalmán. Ha nem megfelelő, törlöm a fájlt(adatbázisból, meg ideiglenens mappából is), ha viszont megfelelő, akkor továbblépnék az létrehozás/módosítás esetre, de itt kezdődnek a problémák...sajnos nem érem el azokat a változókat, amikre szükségem lehet...mivel validáláskor nem írok semmit adatbázisba, így az insert/update esetben csak a $node-ot érem el és nem tudom, hogy melyik a hozzákapcsolódó fájl...
Esetleg a validáláskor is írjak már az adatbázisba? Vagy van valami szebb megoldás?
Drupal verzió:
Fórum:
Validáláskor még nem tudom az
Validáláskor még nem tudom az újonan létrehozott node azonosítóját, szóval, az ötlet, hogy validáláskor mentsek el néhány adatot az adatbázisba, az nem jó megoldás...próbálom vizsgálni, hogy milyen változókat érek el egyes régiókban, de nem sikerült még megoldanom a problémát! Esetleg valami javaslat?
talán az előnézet
Az előnézet kötelező tételével meg lehet oldani szerintem.
Gonda János
Nálam azért nincs előnézet,
Nálam azért nincs előnézet, mert az adatbázisból jelenítem meg a node-omat, márpedig akkor előtte fel kéne töltenem azt...vagy a presave-re gondolsz? ott meg az a baj, hogy még nincs node azonosító, ha egy új node-ot hozok létre...
A lényeg az lenne, hogy van egy fájl, aminek a tartalmát átvizsgálom(feltöltöm, megnyitom olvasásra). Eddig nincs is probléma. Ha nem jó, hibaüzenetet küldök, és törlöm a fájlt, ha viszont jó, akkor jönne az 'insert' v. 'update' opció, elmenteni a fájl tartalmát az adatbázisba(ez még nem működik, mert nem tudom, melyik fájl tartozik a node-omhoz)
Igaziból annyit szeretnék elérni, hogy valamilyen változóban el tudjam menteni a feltöltött fájl azonosítóját a 'validate' opció alatt úgy, hogy azt el tudjam érni majd az 'insert' opció alatt a hook_nodeapi-ban. A $form_state-tel próbálkozom ezt megoldani, de nem akarja az igazságot...:S
létrehoznék egy mezőt
oda feltölteném az ellenőrizni kivánt tartalmat. Átvizsgálva vagy beküldöd vagy törlöd.
Az is lehet, hogy nagyon nem értem a problémát:)
Gonda János
Az első modulom, úgyhogy
Az első modulom, úgyhogy valószínűleg az én készülékemben van a probléma :)
Ha lehet, kihagynám az előnézetet, persze azt nem tudom, hogy enélkül megoldható-e a problémám, csak nekem kézenfekvőbbnek tűnik az, hogy valahogy átpasszoljam egy változóban a szükséges adatot. Nem tudok nodeapi-n belül valami változót létrehozni, aminek a 'validate'-ban adok értéket, és az 'insert'-ben olvasom ki?
Gondoltam arra, hogy esetleg a $form_state-be mentem el, és majd onnan elérem, de mintha a $form-state se lenne elérhető...
A neten se találok rá megoldást, vagy csak nem látom a fától az erdőt...:)
Megvan a hiba!
Természetesen az én figyelmetlenségemnek köszönhető, de az upload modul-t használtam a fájl feltöltésere, de létrehoztam egy külön form-ot erre a célra(fájl feltöltésére), ami viszont nem mentett el semmit az upload táblába, így onnan nem tudtam kinyerni az információkat!
De hiba javítva, és mostmár műxik:)
Zavaros
Eleg zavaros amit irsz.
En mar hanyagolnam az upload modult (d7 mar nem is lesz).
Miert nem irtal egy filefiled alapu file feltoltest?
---
http://drupalaton.hu
Azért az upload modult
Azért az upload modult használtam, mert a core-hoz tartozik, úgy gondoltam, hogy ez lesz a megfelelő a számomra. De utánanézek, amit irtál és meglátjuk:)
Amúgy bocs, ha zavaros, még nekem sem teljesen tiszta, hogy melyik függvényből milyen változokat lehet elérni.
akkor újra az egész
Most megpróbálom összeszedni a gondolataimat és értelmesen leírni a problémámat.
Tehát kell egy form, amivel feltöltöm a fájlt:
aztán a hook_nodeapi-ban a validate-ben feltöltöm a fájlt:
ellenörzöm a fájl tartalmát, ha nem megfelelő, törlöm azt, ha megfelelő, akkor
szeretném elérni a fájlt a hook_nodeapi insert-ből, de nem tudom, hogy honnan kaphatnám meg a fájl azonosítóját. A $result->fid-re lenne szükségem, de sajnos az insert-ből már nem érem el a változót. A lényeg, hogy olvasásra nyitnám meg újra a fájlt, hogy fel tudjam tölteni a tartalmát az adatbázisba. Honnan tudnám megszerezni ezt az értéket?
(ez most független az upload modultól, csak magát a problémát próbáltam leírni)
Én az Upload element modult
Én az Upload element modult szoktam erre használni. http://drupal.org/project/upload_element
Picit gyorsabb vele a fejlesztés, de ha igazi kihívásra vársz akkor hajrá.
a $_FILES tömbben lehet elérni sok adatot az adott fájlról.
Palócz István
https://palocz.hu | https://tanarurkerem.hu
köszi a segítséget! Mivel nem
köszi a segítséget! Mivel nem akarok semmilyen contrib modult felhasználni a modulomhoz, ezért nekiesek inkább a $_FILES tömbnek:)
upload modul nelkul
File feltoltes upload modul nelkul:
http://openproject.hu/blog/york/allomany-feltoltes-sajat-formon
---
http://drupalaton.hu
sikerült
Sikerült kinyernem a fájl nevét a $_FILES['files']['name']['form_neve']-ből, ahol a form_neve annak a formnak a neve, ahol a fájlt feltöltjük.