Webform_adatbázisba

Hegylako képe

Üdv!

Azt szeretném megoldani, hogy a beállított webform modulal elkészített tartalmakat egy saját adatbázisba tároljam. Az adatbázis része menni fog szerintem, inkább az a problémám, hogy kezdőnek számítok modulok írásában és nem tudom, hogy ezt pontosan hogyan tudnám megoldani (milyen változókra kell hivatkoznom, milyen hook-al). Vagy ha van ennél egyszerűbb megoldás, vagy valamilyen modul erre a célra az is tökéletesen megfelelne.
Köszönöm

Melyik modulhoz, modulokhoz kapcsolódik a téma?: 
Drupal verzió: 
csakiistvan képe

Azt elmondod azért mit szeretnél elérni, mi a célod az egésszel?

0
0

Drupal full-stack developer at Wunderman Thompson Budapest

Hegylako képe

Telefonszámokat tárolok adatbázisban, amelynek van több paramétere is. Ehhez a views modul kiegészítésével készíttem egy olyan modult, amely a külső adatbázisból kilistázza ezeket a paramétereket.
A form modul arra kellene, hogy ha van valami változás, (pl kiadunk egy új számot, vagy elhordozzák) ezt felviszem és ezekkel az értékekkel update-elem az adatbázisomat.

0
0
Nagy Gusztáv képe

Szerintem ez így tökéletesen felesleges bonyolítás. Elég lenne egy tartalomtípus a megfelelő mezőkkel, és Views a listázáshoz.

0
0

Nagy Gusztáv

Hegylako képe

Nem is tudom miért a form jutott először eszembe, igazából megcsinálhatom így is, hogy létre hozok mezőket. De a kérdésem még mindig akkor is az,hogy ezeket a mezőket hogyan íratom bele minden egyes új tartalom felvitelekor a saját adatbázisomba.

0
0
Nagy Gusztáv képe

Miért kellene a saját adatbázisba? Annyi és olyan nézetet csinálsz róla, amilyet akarsz. Akár RSS, akár csv formátumban is.

1
0

Nagy Gusztáv

Hegylako képe

Azért lenne fontos mert egy ilyen nyilvántartást nem excelbe vagy a drupal adatbázisában szeretnék letárolni. Erről minden héten egy adatbázismentés készülne, és eléggé macerásnak tűnik más megoldással, továbbá szeretném elkülöníteni ezeket az adatokat. Véleményem szerint nagyon sok adatot, jobb letárolni valamilyen adatbázisban.
Sőt ez most is így van, ezek az adatok egy mysql adatbázisban vannak, ebbe szeretnék írni, ha valami változás történik, a kiolvasása a views segítségével már működik.

0
0
szantog képe

"Erről minden héten egy adatbázismentés készülne"

Miért? A drupal adatbázisról nincs minimum _napi_ mentés??

"Véleményem szerint nagyon sok adatot, jobb letárolni valamilyen adatbázisban."

??? A drupal nem adatbázis? Itt erős képzavar látszik.. Vagy mi a baj a drupal adatbázissal? Abban is - hidd el - elég sok adat van tárolva.

Ha már mindenképpenéseszméletlenülnagyonfontos másik adatbázis neki, akkor meg drupaltól függetlenül egy shell script, esetleg drush cronba pakolva.

0
-1

----
Rájöttem, miért kérdezek olyan ritkán a drupal.hu-n. Amíg szedem össze az infokat a kérdéshez, mindig rájövök a megoldásra.

Hegylako képe

Az a bajom a drupal adatbázissal, hogy abban más is van ezért amikor el kell küldenem ezeket az adatokat akkor nem a drupal adatbázisát akarom elküldeni. És nem akarok scripteket irogatni ami ebből kidumpolja nekem a lényeget, ráadásul ehhez az adatbázishoz más program is hozzáférhet, ezért célszerűbb külön tárolnom az adatokat.
De ez az adatbázis már létezik, használjuk másra is, EZT szeretném használni és úgy ahogy leírtam, de ha ez ekkora szentégtörés és ennyire felesleges és sokkal jobb, ha mindent egy adatbázisban tárolok, vagy egy csv fájlban vagy bármi másban, akkor sem így lesz mert nem így kell megcsinálnom! De azért köszi a hozzászólást!

UI:
Ja és a fogalom zavarról annyit, hogy olvass vissza egy kicsit egy csv fájlról volt szó.

1
-2
szantog képe

Valszeg nem ok nélkül értetlenkedik mindenki, de te tudod..
Mindenki a saját architektúrájának a kovácsa..

"És nem akarok scripteket irogatni ami ebből kidumpolja nekem a lényeget"
Miért mégis hogyan máshogy képzelted el? Egyik db-ből akarsz másikba adatokat mozgatni, hát azt hogy csinálod anélkül, hogy lekérdezed az drupal adatbázis megfelelő részét?
Amúgy egy drusht használó szkript kb két sor, a pure bashhez nem értek.

Ha pedig mindezt drupalon keresztül akarod megvalósítani akkor kell neked hook_cron, definiálni settings.php-ben a secondary db-t, összehaverkodni a db layerrel, és kb ennyi.

De továbbra is mondom, te most gereblyével akarsz vakolni.

0
0

----
Rájöttem, miért kérdezek olyan ritkán a drupal.hu-n. Amíg szedem össze az infokat a kérdéshez, mindig rájövök a megoldásra.

Hegylako képe

Lehet rosszul fogalmaztam akkor az elején még, megpróbálom megint leírni. Van egy mysql adatbázisunk, ami telefonszámokkal kapcsolatos dolgokat tárol, ezt már használjuk, de olyan programok is használják amelyek ebből olvasgatnak adatokat, pl számlázás és egyéb nyilvántartás. Nekem mindenképp ebből kell kiolvasnom adatokat, de ha változás történik akkor ebbe is kell beleírnom mivel ebből olvasom ki. Ezért gondoltam, hogy ha valami két különböző helyen változik az nem túl jó. Tényleg nem értem teljesen mi a problémátok ezzel. Nagy Gusztáv javaslata jó lehetne, ha nem így kellene mindenképpen megoldanom.

Az a problémám ezekkel a megoldásokkal, hogy ha változtatok valamit akkor az nem a telefonos adatbázisban változik meg ezért minden egyes módosításnál, valami script-el szinkronizálnom kellene. Nem értem miért akarok gereblyével vakolni? Én nem így látom, én azt látom, hogy akkor az egész adatbázist valahogy bele kellene építenem a drupal saját adatbázisába és az összes programunknál több mindent is átállítani.

0
0
szantog képe

Ez így most már ok.

"Ezért gondoltam, hogy ha valami két különböző helyen változik az nem túl jó."
Igen. Illetve majdnem. Esetedben ez így lesz pontos:
Ha két különböző helyen tároljuk ugyanazt az nem túl jó.

Szóval ha az adott rekordokat szerkeszteni akarod drupalból, akkor a webform lesz a gereblye ez esetben ugyanis felesleges a drupalban tárolni az adatokat, főleg nem inkonzisztens módon.

Nem tudom, van-e olyan modul, amivel direkt lehet másik db adatait szerkesztni, de én kb annyit csinálnék, hogy egy saját menüelemet (hook_menu()) biztosítanék egy formmal, amin a szerkesztést lehet elvégezni. Gondolom a másik db rekordjainak van valami egyedi azonosítója, mondjuk id, és akkor a masikdb/%id/edit útvonalra kell egy form, aminek a default adatai a frissiben kiolvasott másik db mezői, submitkor pedig frissíteni a másik dbt. Ehhez még az eddig emlegetetteken kívül a Form api beható tanulmányozása szükséges.

1
0

----
Rájöttem, miért kérdezek olyan ritkán a drupal.hu-n. Amíg szedem össze az infokat a kérdéshez, mindig rájövök a megoldásra.

vajdasági képe

Ha ez egy ilyen komoly valami akkor azert szerintem a heti mentes az adatbazisrol eleg gazos. Napi szinten is csinaljatok pl. inkrementalis backupot. Jol ertem hogy ezen a Drupalos formon keresztul tortenik majd meg az adatbazis sorainak a modositgatasa? Vagy ez inkabb csak lekerdezesekre lessz e sa modositas lehetosege az csak valami rendkivuli esetekre korlatozodik? Mert ha ebben tortenik majd minden akkor nem eleg szerintem csak ugy siman belejavitani egy soraba egy adatbazisnak...Naplozni szoktak hogy ki mikor mit valtoztatott meg.

Megprobalom neked egy peldaval ilusztralni mire is gondolok. Kepzeljuk el hogy telszamokat tarolunk de letaroljuk hogy melyik szamhoz milyen szinu telefon tartozik :) Akkor egy modositasnal nem eleg csak annal a sornal kicserelni a szint hanem letarlodik egy olyan "naplosor" is hogy Joska felhasznalo ekkor es ekkor ehhez a szamhoz tartozo telefon szinet pl. pirosra cserelte. Na de ez nem annyira drupal igy nem melyednek bele, csak megjegyeztem. A modositas idelyere zarolni szoktak az erintett sorokat a tablaban vagy tablakban nehogy egy idoben 2 valaki ugyanazt modositsa.

0
0
Hegylako képe

Igen igazad van a heti mentéssel kapcsolatban, de igazából főleg a lekérdezéseken lesz a hangsúly és viszonylag ritkán lesznek módosítások. Bár így jobban belegondolva, sűrűbben fogok menteni.

Az adatbázissal kapcsolatban értem mire gondolsz, csináltam egy ügyfélkezelő és ügyfélnyilvántartó alkalmazást, az ilyen volt. De ennél az adatbázisnál megvannak a szükséges mezők amelyek alapján mindent vissza lehet nézni amire szükségünk van. Szóval ha ezeket update-elem akkor az itt elég.

0
0
Hegylako képe

Mivel nem igazán vagyok még otthon a Drupalban lenne még egy-két kérdésem. Ha esetleg valaki csinált ilyet, hogy a a webform egyes mezőit feldolgozta, elmentette máshova stb,az ő segítségét szívesen venném.

A webform modulnak a főkönytárában van egy hooks.php nevű fájl amelyben a linken található funkciók vannak definiálva Webform hooks. Ha jól értem, akkor itt kellene valamelyik hook-ot kiegészítenem azzal, hogy mentse el a külső adatbázisomba(talán a hook_webform_component_presave??)?

Ha esetleg valaki le tudná nekem írni, hogy merre induljak el, egy kicsit részletesebben azért nagyon hálás lennék. Kezdőként sajnos nem egyértelmű még sok minden.

0
0