Vierailuluento:
Lyhyt johdatus Drupaliin

           Joonas Meriläinen
          (joonas.merilainen@tut.fi)

           Tutkimusapulainen
         Hypermedialaboratorio
     Tampereen Teknillinen Yliopisto
Kuka Joonas?
• Tutustuin Drupaliin vajaat kaksi vuotta sitten hypermedian
  projektityön merkeissä
• Projektityöstä tuli päivätyö → tutkimusapulaiseksi
  Hypermedialabraan
• Drupal ollut käytössä jokaisessa projektissa (10+)
• Olen opiskellut useita ohjelmointikieliä, mutta en ole rutinoitunut
  minkään kielen osaajaksi → PHP-osaaminen on parantunut vasta
  Drupalin moduuleja tutkiessa ja muokattaessa
• Drupal kehityksessä monialaisuus on plussaa; yksi kehittäjä voi
  vastata kaikesta (tietomalli, toiminnallisuus, käyttöliittymä, ulkoasu...)
• Tällä hetkellä teen diplomityötä otsikolla “Streamlining creation of
  social networking services”
Taustaa ja historiaa
Drupal 1.0.0 released
on January 15, 2001
“Today, drop.org announces the release of Drupal 1.00 after an
extensive period of testing. Drupal is a full-featured content
management/discussion engine using Apache/PHP/MySQL and
suitable to setup a news-driven community or portal site similar to
kuro5hin.org and slashdot.org. Current features include discussion
forums, web-based administration, theme support, an open
submission queue, content management, a modularized design, PHP
sessions, user management with access control and
username/profanity/hostname filters, error logging, a public diary
module, an affiliate site module, backend/headline generation
(RSS/RDF) and much more.”
Historiaa
•   Alkoi 2001
•   Dries Buytaert
•   Antwerp, Belgia
•   Dorpje (“pieni kylä”) → Drop →
    Druppel → Drupal
Yhteisö
• drupal.org ja groups.drupal.org
   – ~300 000 käyttäjää
   – ~2000 moduulia
   – Lähes miljoona kommenttia




                                    pingv.com/files/images/drupal-community.png
Onko Drupal oikea valinta?
Ei aina:
• Blogeja varten Wordpress toimii mainiosti
• Wikejä voi luoda vaikka MediaWikillä
• Joomlalla onnistuu yksinkertaisen sivuston luominen helposti

Mutta:
•    Kun valmis ratkaisu ei miellytä, Drupalia voi laajentaa melkein
     rajattomasti
•    Erilaiset sisältötyypit, listaukset ja näkymät onnistuu helposti
•    Valmiita ratkaisuita eri tarpeisiin löytyy valmiina moduuleina
Toiminta
5) Ulkoasu

4) Käyttöoikeudet

3) Lohkot ja valikot

2) Moduulit (ja ydin)

1) Data (tietokannassa)



                          http://drupal.org/getting-started/before/overview
Keskeisimmät termit
•   Module (moduuli)
     – Toimivat ytimen kanssa laajentaen
       sen toimintaa PHP-koodilla
     – Ytimen moduulit, muiden moduulit,
       omat moduulit
     – Kaksi pakollista tiedostoa, .info ja
       .module
Keskeisimmät termit
•   User, permission, role (käyttäjä, oikeus, rooli)
     – Jokaisella käyttäjällä on ID: Vierailijoilla
       ID=0, admin=1 ja muilla >1
     – Käyttäjille voidaan antaa oikeuksia roolien
       avulla
     – Moduulit voivat määritellä omia oikeuksia
       annettavaksi
Keskeisimmät termit
•   Node (“solmu”)
     – Jokainen sivuston sisältökappale on solmu
     – Solmuille on määritetty sisältötyyppi (sivu,
       uutinen, blogimerkintä jne.)
•   Comment (kommentti)
     – Liittyy aina johonkin solmuun
Keskeisimmät termit
•   Taxonomy (taksonomia, luokittelu)
     – Koostuu sanastoista, jotka sisältävät
       termejä
     – Sanastot liitetään sisältötyyppeihin
     – Sanastot voivat olla (rakenteellisia)
       listoja tai vapaita sanastoja (=tagit)
Ytimen sisältötyypit
•   Page (sivu)
     – Staattinen perussivu, joka yleensä
       sijoitetaan johonkin valikkoon
•   Story (juttu)
     – Kuten sivu, mutta ei yleensä sijoiteta
       valikkoon vaan listataan blogimaiseen
       tyyliin esim. Etusivulla (“River of news”) ja
       sitä voi kommentoida
•   Blog Entry (blogimerkintä)
     – Kuten juttu, mutta liittyy erityisesti tiettyyn
       käyttäjään
•   Book Page (kirjan sivu)
     – Kirjat koostuvat kirjan sivuista ja niillä on
       hierarkia sekä mahdollisesti versiohistoria.
Ytimen sisältötyypit
•   Forum (foorumi)
     – Sisältää aiheita (topic) ja niihin liittyviä
       kommentteja. Aiheet järjestetään
       keskustelualueiksi sanastojen (taxonomy) avulla.
•   Poll (kysely)
     – Käyttäjät voivat vastata kyselyihin ja nähdä
       muiden vastaukset
•   Comment (kommentti)
     – Voi liittyä lähes mihin tahansa sisältötyyppiin
Teknologia
Vaatimukset:
• Palvelin: Apache (suositus) tai Miscrosoft IIS (versiot 5-7)
• PHP: Versio 4.3.5 tai uudempi, suositus 5.2.x (Drupal7 vaatimus)
• Tietokanta: MySQL 4.1 tai 5.0 (suositus) tai PostgreSQL 7.4 →
Selaintuki:
• Internet Explorer 6.x ja uudemmat
• Firefox 2.x ja uudemmat
• Opera 7 ja uudemmat
• Safari 1.x ja uudemmat (+Chrome)
• Camino 1.x ja uudemmat




                                       http://www.nurweb.biz/wp-content/uploads/2009/06/browsers-icons.jpg
Drupal ja moduulit
Valitseminen, asentaminen, asetukset...
Mitä moduulit ovat?
• Ydin tarjoaa vain
  perustoiminnallisuuden ja hyvät
  “palvelut” moduulien käyttöön
  (api.drupal.org)
• Moduulit laajentavat ytimen
  ominaisuuksia tai toteuttavat
  täysin uuden toiminnallisuuden
• Toimivat vain tietyssä ytimen
  versiossa (Drupal6 vaatii 6.x-
  version moduulin)
• Saattavat käyttää muita
  moduuleja toimintaansa
  (riippuvaisuudet)               http://technbiz.blogspot.com/2009_06_01_archive.html
“Moduulia mä metsästän...”
Moduulien etsimiseen on useita tapoja
•    Lukemalla moduulien ohjeita
     http://drupal.org/handbook/config/contribmodules saa käsityksen
     niiden toiminnasta
•    Selaamalla moduulien sivuja http://drupal.org/project/modules
•    Googlella (esim. “drupal podcast module”)
Yleisimmät moduulit
• Administration menu
   – Helpottaa ylläpitäjän elämää
• CCK (Content Construction Kit)
   – Uusia kenttiä olemassaoleviin sisältötyyppeihin
• Pathauto
   – Automaattiset polut sääntöjen ja “tokenien” avulla (esim.
     www.lehti.fi/blogit/joonas/2009/08
• Views
   – Erilaisia listauksia
• Panels
   – Omien näkymien määrittely
Administration menu




http://drupal.org/node/523640
Administration menu
Asentaminen
1. Lataa oikea versio moduulista
2. Pura paketti
3. Lue ohjeet (varsinkin
   riippuvaisuudet)
4. Kopioi palvelimelle oikeaan
   kansioon (esim. sites/all/modules)
5. Kytke moduuli päälle Drupalin
   valikosta
6. Säädä moduulin asetukset ja
   oikeudet
7. Testaa toiminta
                                        gadgetmaniac.mail2web.com/2006/07/ikea-buster/
CCK (Content Construction Kit)
• Mahdollistaa uusien kenttien luomisen sisältötyyppiin
• Laajennettavissa alimoduuleilla (email, link, number jne.)
Views
• Tarjoaa käyttöliittymän erilaisten (tietokanta)näkymien luomiseen ja
  muokkaamiseen
Useita eri näyttöjä
Oletusasetuksia ja näyttökohtaisia asetuksia
Sisällön rajaaminen
Mitä halutaan näyttää?
Tulosjoukon laajentaminen
Sisällön järjestäminen
Panels
• Mahdollistavat monipuolisten näkymien rakentamisen




                   http://drupal.org/project/panels
Panels – ominaisuuksia
• Valmiita oletusnäkymiä
• Voi luoda kokonaan uusia “paneeleita”, joihin voi sijoittaa
  haluamaansa sisältöä (esim. Lohkoja)
• Viewsin avulla voi listata haluamansa sisällön ja panelsilla sen voi
  esittää haluamallaan tavalla
Asettelun voi valita valmiista vaihoehdoista...
… tai luoda kokonaan uuden (flexible)
Jonka jälkeen sisällön voi sijoittaa haluamaansa alueeseen
Jonka jälkeen sisällön voi sijoittaa haluamaansa alueeseen
Yhteenveto
• Drupal tarjoaa
  monipuolisen
  ytimen, jota
  yleensä joutuu
  laajentamaan
  moduulien avulla
  vastaamaan
  tarpeita




                     http://developmentseed.org
Yhteenveto
• Ohjelmointia ei
  tarvitse osata
  yleisesti ottaen
  moduulien
  käyttämiseen,
  mutta moduulien
  ohjeisiin
  tutustuminen on
  pakollista
• HTML/CSS/PHP-
  taidot ovat        http://developmentseed.org
  hyödyksi, jos
  haluaa luoda
  räätälöidyn
  kokonaisuuden
Yhteenveto
• Uuden sivuston rakentaminen vaatii määrittelyä,
  suunnittelua ja toteutustyötä, Drupal ei tarjoa valmista
  ratkaisua oikeastaan minkäänlaiseen sivustoon




                                         http://developmentseed.org

Johdatus drupaliin

  • 1.
    Vierailuluento: Lyhyt johdatus Drupaliin Joonas Meriläinen (joonas.merilainen@tut.fi) Tutkimusapulainen Hypermedialaboratorio Tampereen Teknillinen Yliopisto
  • 2.
    Kuka Joonas? • TutustuinDrupaliin vajaat kaksi vuotta sitten hypermedian projektityön merkeissä • Projektityöstä tuli päivätyö → tutkimusapulaiseksi Hypermedialabraan • Drupal ollut käytössä jokaisessa projektissa (10+) • Olen opiskellut useita ohjelmointikieliä, mutta en ole rutinoitunut minkään kielen osaajaksi → PHP-osaaminen on parantunut vasta Drupalin moduuleja tutkiessa ja muokattaessa • Drupal kehityksessä monialaisuus on plussaa; yksi kehittäjä voi vastata kaikesta (tietomalli, toiminnallisuus, käyttöliittymä, ulkoasu...) • Tällä hetkellä teen diplomityötä otsikolla “Streamlining creation of social networking services”
  • 3.
  • 4.
    Drupal 1.0.0 released onJanuary 15, 2001 “Today, drop.org announces the release of Drupal 1.00 after an extensive period of testing. Drupal is a full-featured content management/discussion engine using Apache/PHP/MySQL and suitable to setup a news-driven community or portal site similar to kuro5hin.org and slashdot.org. Current features include discussion forums, web-based administration, theme support, an open submission queue, content management, a modularized design, PHP sessions, user management with access control and username/profanity/hostname filters, error logging, a public diary module, an affiliate site module, backend/headline generation (RSS/RDF) and much more.”
  • 5.
    Historiaa • Alkoi 2001 • Dries Buytaert • Antwerp, Belgia • Dorpje (“pieni kylä”) → Drop → Druppel → Drupal
  • 7.
    Yhteisö • drupal.org jagroups.drupal.org – ~300 000 käyttäjää – ~2000 moduulia – Lähes miljoona kommenttia pingv.com/files/images/drupal-community.png
  • 8.
    Onko Drupal oikeavalinta? Ei aina: • Blogeja varten Wordpress toimii mainiosti • Wikejä voi luoda vaikka MediaWikillä • Joomlalla onnistuu yksinkertaisen sivuston luominen helposti Mutta: • Kun valmis ratkaisu ei miellytä, Drupalia voi laajentaa melkein rajattomasti • Erilaiset sisältötyypit, listaukset ja näkymät onnistuu helposti • Valmiita ratkaisuita eri tarpeisiin löytyy valmiina moduuleina
  • 9.
    Toiminta 5) Ulkoasu 4) Käyttöoikeudet 3)Lohkot ja valikot 2) Moduulit (ja ydin) 1) Data (tietokannassa) http://drupal.org/getting-started/before/overview
  • 10.
    Keskeisimmät termit • Module (moduuli) – Toimivat ytimen kanssa laajentaen sen toimintaa PHP-koodilla – Ytimen moduulit, muiden moduulit, omat moduulit – Kaksi pakollista tiedostoa, .info ja .module
  • 11.
    Keskeisimmät termit • User, permission, role (käyttäjä, oikeus, rooli) – Jokaisella käyttäjällä on ID: Vierailijoilla ID=0, admin=1 ja muilla >1 – Käyttäjille voidaan antaa oikeuksia roolien avulla – Moduulit voivat määritellä omia oikeuksia annettavaksi
  • 12.
    Keskeisimmät termit • Node (“solmu”) – Jokainen sivuston sisältökappale on solmu – Solmuille on määritetty sisältötyyppi (sivu, uutinen, blogimerkintä jne.) • Comment (kommentti) – Liittyy aina johonkin solmuun
  • 13.
    Keskeisimmät termit • Taxonomy (taksonomia, luokittelu) – Koostuu sanastoista, jotka sisältävät termejä – Sanastot liitetään sisältötyyppeihin – Sanastot voivat olla (rakenteellisia) listoja tai vapaita sanastoja (=tagit)
  • 14.
    Ytimen sisältötyypit • Page (sivu) – Staattinen perussivu, joka yleensä sijoitetaan johonkin valikkoon • Story (juttu) – Kuten sivu, mutta ei yleensä sijoiteta valikkoon vaan listataan blogimaiseen tyyliin esim. Etusivulla (“River of news”) ja sitä voi kommentoida • Blog Entry (blogimerkintä) – Kuten juttu, mutta liittyy erityisesti tiettyyn käyttäjään • Book Page (kirjan sivu) – Kirjat koostuvat kirjan sivuista ja niillä on hierarkia sekä mahdollisesti versiohistoria.
  • 15.
    Ytimen sisältötyypit • Forum (foorumi) – Sisältää aiheita (topic) ja niihin liittyviä kommentteja. Aiheet järjestetään keskustelualueiksi sanastojen (taxonomy) avulla. • Poll (kysely) – Käyttäjät voivat vastata kyselyihin ja nähdä muiden vastaukset • Comment (kommentti) – Voi liittyä lähes mihin tahansa sisältötyyppiin
  • 16.
    Teknologia Vaatimukset: • Palvelin: Apache(suositus) tai Miscrosoft IIS (versiot 5-7) • PHP: Versio 4.3.5 tai uudempi, suositus 5.2.x (Drupal7 vaatimus) • Tietokanta: MySQL 4.1 tai 5.0 (suositus) tai PostgreSQL 7.4 → Selaintuki: • Internet Explorer 6.x ja uudemmat • Firefox 2.x ja uudemmat • Opera 7 ja uudemmat • Safari 1.x ja uudemmat (+Chrome) • Camino 1.x ja uudemmat http://www.nurweb.biz/wp-content/uploads/2009/06/browsers-icons.jpg
  • 17.
    Drupal ja moduulit Valitseminen,asentaminen, asetukset...
  • 18.
    Mitä moduulit ovat? •Ydin tarjoaa vain perustoiminnallisuuden ja hyvät “palvelut” moduulien käyttöön (api.drupal.org) • Moduulit laajentavat ytimen ominaisuuksia tai toteuttavat täysin uuden toiminnallisuuden • Toimivat vain tietyssä ytimen versiossa (Drupal6 vaatii 6.x- version moduulin) • Saattavat käyttää muita moduuleja toimintaansa (riippuvaisuudet) http://technbiz.blogspot.com/2009_06_01_archive.html
  • 19.
    “Moduulia mä metsästän...” Moduulienetsimiseen on useita tapoja • Lukemalla moduulien ohjeita http://drupal.org/handbook/config/contribmodules saa käsityksen niiden toiminnasta • Selaamalla moduulien sivuja http://drupal.org/project/modules • Googlella (esim. “drupal podcast module”)
  • 20.
    Yleisimmät moduulit • Administrationmenu – Helpottaa ylläpitäjän elämää • CCK (Content Construction Kit) – Uusia kenttiä olemassaoleviin sisältötyyppeihin • Pathauto – Automaattiset polut sääntöjen ja “tokenien” avulla (esim. www.lehti.fi/blogit/joonas/2009/08 • Views – Erilaisia listauksia • Panels – Omien näkymien määrittely
  • 21.
  • 22.
  • 23.
    Asentaminen 1. Lataa oikeaversio moduulista 2. Pura paketti 3. Lue ohjeet (varsinkin riippuvaisuudet) 4. Kopioi palvelimelle oikeaan kansioon (esim. sites/all/modules) 5. Kytke moduuli päälle Drupalin valikosta 6. Säädä moduulin asetukset ja oikeudet 7. Testaa toiminta gadgetmaniac.mail2web.com/2006/07/ikea-buster/
  • 24.
    CCK (Content ConstructionKit) • Mahdollistaa uusien kenttien luomisen sisältötyyppiin • Laajennettavissa alimoduuleilla (email, link, number jne.)
  • 25.
    Views • Tarjoaa käyttöliittymänerilaisten (tietokanta)näkymien luomiseen ja muokkaamiseen
  • 26.
  • 27.
  • 28.
  • 29.
  • 30.
  • 31.
  • 32.
    Panels • Mahdollistavat monipuolistennäkymien rakentamisen http://drupal.org/project/panels
  • 33.
    Panels – ominaisuuksia •Valmiita oletusnäkymiä • Voi luoda kokonaan uusia “paneeleita”, joihin voi sijoittaa haluamaansa sisältöä (esim. Lohkoja) • Viewsin avulla voi listata haluamansa sisällön ja panelsilla sen voi esittää haluamallaan tavalla
  • 34.
    Asettelun voi valitavalmiista vaihoehdoista...
  • 35.
    … tai luodakokonaan uuden (flexible)
  • 36.
    Jonka jälkeen sisällönvoi sijoittaa haluamaansa alueeseen
  • 37.
    Jonka jälkeen sisällönvoi sijoittaa haluamaansa alueeseen
  • 38.
    Yhteenveto • Drupal tarjoaa monipuolisen ytimen, jota yleensä joutuu laajentamaan moduulien avulla vastaamaan tarpeita http://developmentseed.org
  • 39.
    Yhteenveto • Ohjelmointia ei tarvitse osata yleisesti ottaen moduulien käyttämiseen, mutta moduulien ohjeisiin tutustuminen on pakollista • HTML/CSS/PHP- taidot ovat http://developmentseed.org hyödyksi, jos haluaa luoda räätälöidyn kokonaisuuden
  • 40.
    Yhteenveto • Uuden sivustonrakentaminen vaatii määrittelyä, suunnittelua ja toteutustyötä, Drupal ei tarjoa valmista ratkaisua oikeastaan minkäänlaiseen sivustoon http://developmentseed.org