Olen rakentamassa nettisivustoa Drupal 7 -ympäristöön. Tarkoitus on toteuttaa karkeasti seuraavanlainen rakenne:
Oma tietotyyppi "X"
Oma alasivu tietotyypin X esittämiseksi. Kaikki olemassaolevat X-instanssit näkyvät samalla kertaa.
X-instanssien sisältö päivitettävissä sähköpostiviestillä ja muutos näkyy omalla alasivulla reaaliajassa tai korkeintaan minuuttien viiveellä.
Kaksi ensimmäistä olen onnistunut saamaan aikaan moduleita asentelemalla ja klikkailemalla. Tiedon päivittämistä sähköpostin avulla olen ajatellut lähestyä "mailhandler" -nimisen moduulin avulla. Haluaisin koodata sille parserin joka ottaa vakiomuotoisesta sähköpostista tietyt tiedot ja päivittää ne tiettyyn X-tietotyypin instanssiin. Oikea instanssi tunnistetaan sähköpostin otsikkorivin tiedon perusteella.
Tämä viimeinen vaihe tuntuu hankalalta enkä oikein tiedä miten asiaa lähestyä. Luen sujuvasti C/C++/PHP -kieliä ja osaa seurata rautalankaisia ohjeita jos joku osaisi tässä asiassa auttavaa raajaa ojentaa.
Kiitos.
EDIT: onnistuin hienosti jo laittamaan tämän väärän otsikon alle. Tästä on hyvä jatkaa.
Prosessissa on selvästi kolme vaihetta: Selvitä ensin, miten mailhandler-moduulilta saa sähköpostin vaikka tekstinä, ja kokeeksi tallenna posti tekstimuodossa tiedostoon. Selvitä sitten, miten ylipäänsä muutetaan X-instansseja, ja tee vaikka koodi, joka tekee jonkin vakiomuutoksen aina sähköpostin saapuessa. Lopuksi kirjoita koodi, joka kerää X:n tiedot sähköpostista. Tietojen etsiminen tekstistä riippuu siitä, millaisessa muodossa haluat laittaa ne sähköpostiin; PHP:ssä on esimerkiksi valmiit funktiot json_decode ja parse_ini_string, ja muita tekstejä on yleensä helpointa käsitellä säännöllisillä lausekkeilla.
Kiitos hyvin jäsennetystä yleiskatsauksesta. Olen samaa mieltä, jotenkin tuohon malliin hommassa kannattaa edetä.
Nyt on kuitenkin niin, että olen kovin vielä uusi tämän Drupalin kanssa. Kaipaisin vielä ihan kädestä pitäen neuvoa että miten käytännössä lähden tuota kaikkea implementoimaan. Mihin koodi sijoitetaan ja missä asetetaan joku vipu niin että sitä minun koodiani kutsutaan?
Jonkun Drupal-asiantuntijan vinkkejä odotellessa voisit lähteä liikkeelle dokumentaatiosta, jossa esimerkiksi Writing custom command plugins näyttää lupaavalta. On kylläkin niin epäselvää dokumentaatiota, että onneksi en itse käytä Drupalia...
Minä en Drupal 7:sta tykkää yhtään mutta kasi on vielä liian raakile suositeltavaksi kenellekään. Ihmettelen vain, että mitä moduuleita muka tarvitsit noiden kahden ensimmäisen asian toteuttamiseksi? Kaikki tarvittava löytyy vakiona: joko teet web-käyttöliittymästä käsin uuden content typen tai jotain spesiaalimpaa hakiessasi voit pykätä täysin uuden Entity-sukuisen luokan tietotyypillesi.
Yleensä en vaivaudu kopioimaan api-dokumentaatioista löytyviä asioita foorumin puolelle, mutta koska kyse on Drupalista, niin tehdään poikkeus... Hook-funkkarit implementoidaan niin, että teet moduulisi koodiin vastaavalla nimellä funktion. Jos hook-funkkarin nimi on "hook_foo_bar" ja moduulisi on my_module, niin moduuliin lisättävän funktion nimi on "my_module_foo_bar". Koodin voi laittaa my_module.module-tiedostoon, joka on nimestään huolimatta ihan tavallinen php-skripti (jonne laitetaan vain funktiomäärittelyitä, ei muuta syheröä). Nyt vain lukemaan, että miten teet oman Drupal-moduulin.
Kiitos.
Olisihan tuolta näköjään löytynyt dokumentaatiostakin apuja. Kieltämättä hieman sekavasti kylläkin.
Offtopikkina ja kulminaatiopisteenä utelisin vielä että minkä te olisitte sitten ottaneet Drupalin asemasta käyttöön?
Offtopikkiin vastaus:
Drupal on mielestäni hyvin joustava, erityisesti tuon moduulirakenteensa ansiosta. Dokumentaatiot on tosi sekavasti kirjoitettu, mutta kun rakenteen ymmärtää, niin aika helppo loppujen lopuksi tehdä mitä vaan. Drupalin sivuston sisältörakenteesta ei ikinä uskoisi, että taustalla tuotoksena on näinkin joustava ohjelma. Valitsen Drupalin, jos sivustolla tarvitaan esimerkiksi käyttöoikeusalueita, kikkavitosia tai sivusto on muutoin kovin laaja.
Itsellä ongelmana on tuo webformin lomaketietojen saaminen tulostumaan sähköpostin PDF-liitteeseen. Ilmeisesti tarvitsee mimemailin ja miljoona muuta modulia..kukaan ei tunnu tietävän vastausta..tai sitten vastaus on yksinkertainen ja kokoajan silmieni alla, enkä vain tunnista sitä.
Aihe on jo aika vanha, joten et voi enää vastata siihen.