Terve,
Olisi mahdollisesti opinnäytetyönaiheena väkertää yksinkertainen CMS yritykselle.
Minkälaisia asioita tätä aloittaessa pitäisi ottaa huomioon?
Asiakkaalle tehdessä tulee mieleen ainakin 3 asiaa: tietoturva, helppokäyttöisyys ja laajennettavuus.
Pitäs jotenkin saada kehitettyä ajatusmaailmaa tämän tekemiseen (mvc-malli, luokat, templatet jne.). PHP / MySQL:llä tämä olisi tarkoitus tehdä. Aluksi varmaan pitäisi miettiä ne perusominaisuudet ja suunnitella niihin luokat sitten..
Yritä keskittyä siihen, että pidät järjestelmän yksinkertaisena. Esimerkiksi templatet eivät ole välttämättömiä: ne on kivoja helpottamaan design-väen työtä, mutta ohjelmoijalle ne aiheuttavat yleensä lähinnä ylimääräistä työtä. Mieti tarkkaan ne asiat, jotka on pakko tehdä ja tee ne. Älä yritä tehdä liian paljon. Älä tee jotakin asiaa vain sen takia, että "se on kiva juttu".
CMS:t on siitä ilkeitä, että ne ovat pääosin hyvin monimutkaisia järjestelmiä. Nyt ajan kanssa olen todennut, etten pidä CMS-järjestelmien luonteesta tai toteutustavasta, mutta ajattelenkin asiaa yhteisösivuston ylläpitäjän kannalta.
Joo. Lähtökohtana on pitää homma simppelinä ja se on itseasiassa kaiken ydin.
Tässä pohdin että järjestelmään ei varmaan tehdä mitään ulkoasujen hallintaa vaan aikanaan jokaiselle sivustolle tehdään raakasti oma ulkoasu jota ei "lennosta" pysty vaihtamaan tai vaikuttamaan siihen muutenkaan. Järjestelmä on ainoastaan sisältöjen hallintaa varten.. Ulkoasujenhallinta ei ole pois luettu, tietysti siihen voisi jättää ovet auki niin että myöhemmin sen voisi myös kehittää järjestelmään...
Ulkoasun pystyy yleensä hoitamaan järkevästi pelkän CSS:n kautta, kunhan vain kirjoittaa suht järkevää HTML:ää niin ei pitäisi olla ongelmia :) Järkevällä tarkoitan, että CSS:llä pystyy halutessaan tarkasti viittaamaan haluamaansa elementtiin, mutta toisaalta niin ettei jokaista elementtiä ole kuitenkaan erikseen merkattu jollakin classilla (mikä on imo aika ärsyttävää ja sekavaa).
Mitkähän voisi olla tämmöisiä pakollisia ominaisuuksia tämmöisessä perusjärjestelmässä. On tässä muutama mielessä, mutta ajattelin näin kysäistä kuitenkin. :) Pientä epävarmuutta tässä itsellä havaittavissa. :D Tässä tämän vuoden aikana olen oppinut pikku hiljaa ajattelemaan sivustoja enempi web-sovelluksina. Ennen kuin kaikki tuli tehtyä vain staattisina html-sivuina joissa samat koodit toistui.
Tarvitset hallintasivun, jonne ei ole julkista pääsyä. Joko toteutat sisäänkirjautumisen sessioilla tai sitten suojaat hakemiston .htaccessilla ja .htpasswd:llä. Jälkimmäinen on huomattavasti helpompi ja nopeampi toteuttaa. Edellistä taas on helpompi laajentaa useammalle käyttäjälle ja käyttäjät pystyy erottamaan toisistaan, mutta koodattavan määrä kasvaa nopeasti.
Sivujen luontia varten voit käyttää jotakin valmista JavaScript-editoria, esim. TinyMCE. Se tarjoilee valmista HTML-koodia, jonka voi tallentaa vaikka sellaisenaan tietokantaan. Toki kannattaa tehdä perinteiset tietoturvatarkistukset SQL-injektioiden sun muiden välttämiseksi. Mikäli harkitset jQueryä syystä tai toisesta, niin sille löytyy myös jWYSIWYG-laajennos.
Haastavinta lienee sitten luoda navigaatio ja linkittää luodut sivut navigaatioon. Yksyhteen navigaation ja sivujen luominen saattaa tehdä vähän kökköjä tuloksia. Tämä on semmoinen perusongelma, joka on jokaisella CMS:llä, elämä on helppoa niin kauan kuin sivuja on vähän, mutta sivumäärän kasvaessa ne pitäisi pystyä pitämään järjestyksessä kuin myös löydettävissä sivuston käyttäjän toimesta.
Jos jonkinlainen asiakas on tiedossa, niin varmaan turvallisinta olisi kysyä siltä puolelta speksiä.
Metabolix kirjoitti:
Jos jonkinlainen asiakas on tiedossa, niin varmaan turvallisinta olisi kysyä siltä puolelta speksiä.
Jos se on tavallinen asiakas niin ei se mitään tiedä :-D (ainakaan yleensä)...
Se on aina oma haasteensa selvittää asiakkaan tarpeet, varsinkin jos asiakas itse ei oikein tiedä niitä. Joskus halutaan sivut vaan sen vuoksi että ne olisivat olemassa. Sellaisissa tapauksissa on vaikea saada asiakas oikeasti välittämään nettipuolesta sen enempiä.
Vuosien aikana tullut selväksi, että juuri wysiwyg ja "edit in place" on melko pakollisia nykyään. Eli asiakkaille, jotka eivät omassa työssään "joudu" käyttämään tietokonetta, on selkeämpää, kun voi surffata sivuston oikealle sivulle, ja ruveta editoimaan.
Lisäksi valmiit eri näkymät auttavat kummasti. Tuotesivulla (editointitilassa) pitää näkyä siis vain tuotetietojen kentät ja taas "artikkelisivulla" vain tekstilaatikko.
Aihe on jo aika vanha, joten et voi enää vastata siihen.