Hei Drupal-tietäjät,
Aloitin tekemään tutkimusryhmälleni sivustoa ja päätin ottaa Drupalin käyttöön sivustojen tekemiseen. Olen täysin Drupal-newbie, joten olisin kiinnostunut kuulemaan jos drupalin valmiita moduuleita käyttämällä/pienellä säätämisellä voisi toteuttaa haluamani tietokantasovelluksen. Tarkoitus siis olis tehdä prosessikuvausmatriisi, jonka voisi pullauttaa tietokannasta helposti esiin. Eli prosessi menisi näin:
1. Käyttäjä tallentaa case-tapauksen tiedot tietokantaan
2. Tietokannasta voidaan automaattisesti "piirtää" prosessimatriisi casen tietojen perusteella
3. Matriisi tulisi olla interaktiivinen siinä mielessä että otsikoita/datasta painamalla voidaan avata uusia sivuja joissa annetaan lisätietoa kyseistä luokasta tai prosessivaiheesta
4. Matriisin datasta voisi tehdä mielivaltaisia hakuja minkä tahansa luokituksen tai datasisällön mukaan
5. Matriisi skaalautuu helposti eri suuntiin, esim. luokituksia voi olla X määrä
Ohessa esimerkki miltä matriisi näyttäisi: http://users.tkk.fi/~jtvehvil/Processmatrix.png
Eli kysymykseni lähinnä on, että kannattaako tätä lähteä toteuttamaan drupalin avulla (mitkä moduulit/työkalut/etc?) vai kannattaako tehdä toteutukselle kokonaan oma tietokanta ja PHP-sovellus jonka sitten liittää drupal-sivustoon? Kiitos jo etukäteen,
Jay
- Kirjaudu tai rekisteröidy kirjoittaaksesi kommentteja
Drupal sopii hyvin, pientä laajentamista vaaditaan
Kuulostaa siltä että Drupal on juurikin oikea työkalu tarpeisiisi. Voit rakentaa koko sisällön syötön helposti suunnittelemalla sopivat sisällöntyypit kenttineen etkä luultavasti edes tarvitse hurjan montaa laajennusmoduulia Drupal 7:n päälle. Tuon prosessimatriisin visualisointiin joudut kuitenkin todennäköisesti kirjoittamaan jonkin verran ihan omaakin koodia. Toteutuksen kokonaistyömäärässä säästät huomattavasti, mutta vastapainoksi joudut opettelemaan Drupalin. Varsinaista koodausta ei kuitenkaan tule kuin tosi vähän ja suurimman osan pystyt rakentamaan valmiista palikoista.
Kiitos vastauksesta
Kiitos vastauksesta wesku!
Sisällön syöttä aiheuttaa ongelmia koska drupalin perustoiminnot ja muutamat lisämoduulit (Conditional Fields, Webform, Select other...) eivät ole pystyneet tarjoamaan kaikkia toimintoja joita tarvitsisin.
Olen siis tehnyt Custom Content Type:llä pohjan webbiformille mutta seuraavia toimintoja en ole keksinyt miten ne voisi toteuttaa:
1. Select list kentän generoiminen suoraan kustomoidusta tietokannan taulusta (onko tämä mahdollista views-moduulilla?)
2. Käyttäjälle mahdollisuuden lisätä oma arvo jos listan arvot ei tyydytä. Tämän pystyy toteuttamaan Select Other moduulilla, mutta arvoja ei saa automaattisesti tallennettua alkuperäiseen listaan joka olisi erittäin toivottavaa.
Puuttuuko multa joku moduuli joka mahdollistais tämän? En vaan keksi miten tän vois tehdä modaamatta moduuleja...
Node referencet
"Perinteinen" tapa tehdä tämä on ollut node reference. Teet vain nodeen CCK-kentän joka on referenssi toiseen nodeen ja täydennät käyttöliittymän esimerkiksi tällä: http://drupal.org/project/noderefcreate
Selectiin tuotavat nodet voit filtteröidä viewsillä. Jos käyttöliittymä ei miellytä on se myös melko helppoa räätälöidä mieleisekseen. Peruskäyttöliittymän saat kuitenkin aikaan koodaamatta riviäkään. Tietysti jos oman räätälöidyn tietokantataulun käyttö on jostain syystä välttämätöntä tarvitset jonkun toisen lähestymistavan.
Node reference vaikuttais
Node reference vaikuttais lupaavalta! Kiitos paljon vinkistä, mä luulen että tuo auttaa jo paljon eteenpäin.
Voitko vielä selittää, että
Voitko vielä selittää, että voiko node referenssillä päästä jotenkin käsiksi noden field-arvoihin? Saan kyllä noden (eli taulun nimen) näkymään Node Referenssiä käyttämällä, mutta arvot jotka haluan näkymään select listalla on tallennettu noden fieldiin. Löysin sellaisen moduulin kuin Field Reference, mutta sitä ei ole saatavilla Drupal 7:lle.
Yritin tehdä samaa View Reference moduulia käyttämällä, mutta lopputulos oli sama. Sain View:n otsikon näkymään listalla mutta en varsinaista sisältöä.
Drupalin ajatusmaailma on kyllä välillä tosi vaikea sisäistää, olisi mm. kiva jos select fieldiä määritellessä olisi paikka johon kirjottaa rivin pituinen tietokantahaku joka mielestäni ratkaisisi suurimman osan näistä moduulikikkailuista...
Drupalin perusteet ovat haastavia
Kyllä tuo viitatun noden kenttien haku onnistuu node referencellä. Ei tarvita mitään erillisiä palikoita. Sinun pitää viewsissä kertoa näkymälle millä kaksi nodea liitetään toisiinsa (reference). Tämän jälkeen voit kenttiä näytettäessä valita haetaanko ne liitoksen takaa ja jos niin minkä liitoksista. Periaate on täsmälleen sama kuin SQL-kyselyissä ja views jopa näyttää sinulle generoimansa kyselyn.
Drupal on kenttien ja näkymiensä kanssa vain astetta hienompi tietokannan ylläpitotyökalu. Aluksi olisi helpompaa ja nopeampaa käyttää matalamman tason työkaluja kuten suoraan SQL:n kirjoittelua, mutta myöhemmin Drupalilla tekeminen on tuhansia kertoja nopeampaa. Kynnys päästä Drupaliin sisälle on korkea, mutta sen ylittämisen jälkeen hyvin palkitseva. Laajennettavuutta löytyy loputtomiin ja viimeisenä keinona myös koodilla saa laajennettua mitä vain kuitenkaan itse Drupalia rikkomatta.
Suosittelen hankkimaan hyvän kirjan aiheesta (http://drupal.org/books), katsomaan opetusvideoita (http://drupalize.me/) tai käymään kursseja (http://mearra.com/training) alkuun pääsemiseksi. Pelkästään webistä surffaamalla Drupalin peruskäsitteistä on vaikeaa saada hyvää otetta. Itse olen reilut kolme vuotta kouluttanut Drupalia ja tuskailusi on kovin tutun kuuloista. :-)
Eli pitääkö käyttää viewsin
Eli pitääkö käyttää viewsin relationship toimintoa? En saanut vielä tuota toimimaan mutta views alkoi avautua paremmin. Laitoin Drupal 7 ja Drupal 7 Pro Development - kirjat tilaukseen, ehkä Drupalin maailma alkaa sen jälkeen selkiytymään :)
Juurikin relationships
Olet oikeilla jäljillä. Määrittelet relationshipsillä mitä joineja views käyttää eri olioiden välillä.
Hei Wesku, Kiitos paljon
Hei Wesku,
Kiitos paljon aikaisemmista vastauksista! Paljon on tullu opittua lukemalla ja esimerkkejä katsomalla, mutta varsinaista toivottua tulosta en ole saanut vielä aikaan. Ongelma on lähinnä tietojen syöttölomakkeen kanssa. Olen paininut nyt tän kanssa viikkoja et jos pystyt auttamaan niin olisin erittäin kiitollinen. Aikaisemmasta kuvasta poiketen tietorakenne on lähinnä tällainen http://users.tkk.fi/~jtvehvil/Processmatrix2.PNG (kuvaa siis sitä millainen taulukko piirretään syötettyjen tietojen jälkeen, lomake ei tartte olla taulukkomuodossa)
Eli luokituksia (classification) on 5 mutta rivejä voi olla N määrä. Rivien rajaton määrä on aiheuttanut ongelmia. Mun lähestymistapoja on ollut:
1. CASE on node ja ROW (taulukon rivi) on node ja näillä on 2 suuntainen node reference. Tällöin sekä casen luokitus ja rivin luokitus on helppo tehdä taxonomyllä ja rivien määrää ei ole rajattu. Ajatuksena tuntui hyvältä mutta jotta se olisi käyttäjille helppo täytyisi nämä kaksi content typeä saada liitettyä yhteen lomakkeeseen jotta tietojen syöttö olisi mutkatonta. En ole keksinyt miten tämän voisi tehdä.
2. CASE on node ja rivit ovat field-ryhmiä, ja näitä ryhmiä voi olla N määrä. Field collection http://drupal.org/project/field_collection vaikutti aluksi erittäin lupaavalta, mutta sen ongelma on että rivit luodaan vasta sen jälkeen kun Case node on luotu eli siellä on aina edit/add-nappi kun katselee luotua nodea ja field collectionin ulkoasun modaaminen on vaikeaa ja rajattua.
Kumpi tapa vaikuttaa järkevämmältä? Ja Olisko muita tapoja tehdä field-ryhmiä D7ssa? Flexifield http://drupal.org/project/flexifield vois olla hyvä, mutta se on vaan D6lle...
Ja olisiko tälle http://drupal.org/project/popups_reference D7ssa vastinetta? Käytän select list widgetiä node referensissä joten noderefcreate http://drupal.org/project/noderefcreate ei toimi siihen tarkoitukseen...
Sori että on paljon kysymyksiä kerralla, mutta jos johonkin on edes ideoita niin auttaisi paljon. Kiitos jo etukäteen!
Jay
[poistettu]
[poistettu]