CCK
Assemblix wiki
CCK on Drupal-laajennus, joka mahdollistaa uusien sisältötyyppien luomisen ilman koodin kirjoittamista.
Sisällysluettelo |
[muokkaa] Sisältötyypeistä
Jokainen Drupalin solmu (node) kuuluu johonkin sisältötyyppiin (type), jotka on määritelty taulussa node_type. Sisältötyyppiin kuuluu kokoelma kenttiä, joihin solmun sisältö syötetään. Drupalin mukana tulee valmiiksi sisältötyypit sivu ja artikkeli. Perussisältötyyppi, eli geneerinen node, sisältää pelkästään otsikon ja valinnaisen tekstialueen.
Uusia sisältötyyppejä voi luoda itse. Esimerkkinä vaikkapa tuote, joka sisältäisi kentät hinta, väri, mallinumero jne.
Sisältötyyppien luominen vaatii perusasennuksessa PHP-ohjelmointia, mutta CCK:n avulla sen voi tehdä web-käyttöliittymän kautta.
[muokkaa] Asennus
Uusin CCK ladataan projektisivulta, paketti puretaan ja kopioidaan sites/all/modules -hakemistoon. Tämän jälkeen CCK kytketään päälle ylläpidon moduulisivulta.
[muokkaa] Sisältötyyppien luominen
Ylläpidon sisällönhallinta-osastolta löytyy kohta Sisältötyypit, joka näyttää nykyiset tyypit ja jossa voi luoda uusia.
[muokkaa] Ominaisuudet
Valitse Lisää sisältötyppi. Joitakin olennaisia kohtia:
- Nimen ja kuvauksen voi valita vapaasti, ja niitä voi muuttaa myöhemmin. Ne ovat lähinnä käyttäjien opasteiksi.
- Järjestelmälle näkyvässä nimessä ei tulisi käyttää skandeja tai muita erikoismerkkejä. Se näkyy mm. osoitteissa ja tietokannan taulujen nimissä.
- Jos jätät sisällön vartalon nimen tyhjäksi, muokkauslomakkeessa ei näytetä tavallista vapaata tekstikenttää.
- Työnkulun asetukset ovat vain oletuksia, ne voi ohittaa julkaistaessa.
[muokkaa] Kentät
Seuraavalla sivulla sisältötyyppiin lisätään kenttiä. Jotkin ovat perinteisiä tekstikenttiä tai valintoja, toisilla tarkasti määritelty rakenne (päiväys, sähköpostiosoite jne). Rakenteellinen kenttä tarkistaa, että käyttäjän syöttämän tiedot ovat valideja. Kentälle voi myös määrittää, että se on pakollinen, että sillä voi olla useampia arvoja jne.
Voit myös valita kentän, jonka olet luonut jotain toista sisältötyyppiä varten. Tällöin molemmissa sisältötyypeissä käytetään samaa kenttää, mikä yksinkertaistaa ylläpitoa ja tietokannan rakennetta.
Lisää rakenteellisia kenttiä voi asentaa moduuleina. Hyödyllisiä ovat mm. URL, päiväys ja kuva.
Kenttien keskenäistä järjestystä voi säätää listaussivulta. Jos kenttiä on paljon, niistä kannattaa muodostaa ryhmiä.
[muokkaa] Teemoitus
Drupal näyttää CCK-sisällön oletuksena hyvin listamaisessa "kentän nimi - kentän teksti" -muodossa.
Sisältötyyppi teemoitetaan lisäämällä teemakansioon tiedosto node-nimi.tpl.php, missä nimi on sisältötyypin järjestelmälle näkyvä nimi. Voit kopioida pohjaksi tiedoston node.tpl.php.
Solmun sisältö on tallennettu muuttujaan $node, jonka täyden sisällön saa näkyville kirjoittamalla teematiedostoon seuraavan rivin. Älä tee tätä tuotantoympäristössä!
<?php print_r($node); ?>
Jokaisella kentällä on oletusmuotoilu. Esimerkiksi kenttä etunimi tulostetaan oletusmuotoilulla seuraavasti:
<?php print content_format('etunimi', $field_etunimi[0]); ?>
Huomaa, että tämä tulostaa vain ensimmäisen arvon, jos niitä on useampia. Useamman arvon voi tulostaa esim. seuraavasti:
<?php foreach ($field_osoite as $osoite) {
print content_format('field_osoite', $osoite);
} ?>
Jos kentällä ei ole arvoa, mitään ei tulosteta.
[muokkaa] Sudenkuoppia
Kerran luotua solmua ei voi siirtää sisältötyypistä toiseen ilman tietokannan muokkausta käsin. Tämän takia kannattaa harkita, millaiset sisältötyypit ovat todella tarpeen.
Saattaa olla houkuttelevaa luoda esimerkiksi sisältötyypit elokuva-arvostelu ja musiikkiarvostelu. Jos molemmat ovat rakenteeltaan samanlaiset, on kuitenkin kannattavampaa luoda yleinen tyyppi arvostelu ja käyttää taksonomiaa erottelemaan elokuvat ja musiikki.

