⚈ Kuopassa.net

Lisää kertomuksia netistä. 摆烂

Paikkakuntalistaus Goottideitti.nettiin

Asun Porvoossa ja olen ilmoittanut sen tiedon Goottideitti.netissä sijaitsevaan profiilisivuuni. Koodasin eilen ja tänään tuota systeemiä, jolla käyttäjätiliin ilmoitetun paikkakunnan nimen avulla luodaan automaattisesti kaupunkikohtaiset listaukset käyttäjistä. Systeemin avulla käyttäjä voi kirjoittaa tekstikenttään oman asuinpaikkakuntansa nimen. Se tallennetaan tietokantaan. Paikkakuntien nimiä ei siis valita pudotusvalikosta vaan käyttäjät voivat itse hoitaa kirjoittamisen. Sen avulla meikäläisen ei tarvitse myöhemmin huolehtia kaupunkien ja kuntien nimiuudistuksista. Isoin homma oli koodata systeemi, joka tunnistaa myös ääkköselliset paikkakuntien nimet.

Ääkköset ovat olleet Goottideitti.netin Akilleen kantapää jo sivuston alkuajoista lähtien. Olen jossain vaiheessa sekoittanut, sotkenut ja hämmentänyt merkistökoodauksen niin huolellisesti päin honkia, etteivät siihen liittyvät ongelmat tule ihan heti loppumaan kesken. PHP:n urlencode- ja urldecode-funktioilla olen yrittänyt saada ääkköselliset paikkakuntain nimet toimimaan selaimen osoitekentissä ja pyöritettäessä nimiä ees taas tietokannan ja PHP-tiedostojen välillä. Jostain syystä urlencode ei paikkakuntalistauksissa tuntunut toimimaan kuten halusin, joten systeemi piti laittaa kuosiin vanhanaikaisesti str_replace-funktiolla.

Paikkakuntalistauksen toteuttava PHP-tiedosto vie 15 kilotavua levytilaa. Koodista valtaosa kuluu switch-toimintoon, jossa plärätään läpi paikkakuntien nimiä ja yritetään taivuttaa niiden kirjoitusasu jokseenkin järkevään muotoon. Esimerkiksi tuo yllä oleva Porvoon listaus sisältää taivutetun sanan porvoolaisia. Se on yksi niistä kymmenistä paikkakuntien taivutetuista nimistä, joita järjestelmään on tallennettu. Taivutuksia on koodissa tehty switch-kytkimen avulla tähän tapaan:

...
case 'tampere';
$taivutettu_paikkakunta = 'tamperelaisia';
break;
case 'tornio';
$taivutettu_paikkakunta = 'torniolaisia';
break;
case 'turku';
$taivutettu_paikkakunta = 'turkulaisia';
break;
...

Taivutusta voi myöhemmin hyödyntää jotenkin muuten jos riipaisen tuon kytkimen esimerkiksi omaksi tiedostokseen. Ajattelin, että sen voisi kutsua käyttöön muillakin sivuilla, kuten sisäänkirjautuneen käyttäjän omalla sivulla. Käyttäjää voisi houkutella vaikka kysymällä: "Haluatko nähdä muita porvoolaisia?" tai jotain muuta sellaista. Lisäksi koko kaupunkilistauksen tekevä koodi on jalostettavissa eteenpäin mikäli kunnianhimoa syntyy jonkinasteisen tagipilven kehittämiseen. Käyttäjille voisi antaa mahdollisuuden lisätä profiiliinsa avainsanoja, tageja, jotka eroteltaisiin vaikka pilkulla. Saa nähdä.

Tietoa kirjoittajasta