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.xversion 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/PHPtaidot ovat hyödyksi, jos haluaa luoda räätälöidyn kokonaisuuden http://developmentseed.org
Yhteenveto Uuden sivuston rakentaminen vaatii määrittelyä, suunnittelua ja toteutustyötä, Drupal ei tarjoa valmista ratkaisua oikeastaan minkäänlaiseen sivustoon http://developmentseed.org