Kuopassa.net

Lisää kirjoituksia netistä.

Etsi blogista

Paikkakuntalistaus Goottideitti.nettiin

Kirjoitettiin
Päivitettiin 8. kesäkuuta 2014 kello 03.24

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

Tämä juttu mukaan laskettuna blogissa on julkaistu yhteensä 1292 kirjoitusta. Tämän sivun niin sanottu kestolinkki on tässä siltä varalta jos haluat linkittää siihen esimerkiksi blogista tai joltain foorumilta..

Kommentit

Blogiin ei nyt oteta vastaan uusia kommentteja, sillä käyttämäni Web-palvelin tapaa jättää lähettämättä sähköposti-ilmoituksen kun joku tallentaa uuden kommentin. Siksi en pysty moderoimaan kommentteja kunnolla. Kommentointi tulee mahdolliseksi myöhemmin. Tämän jutun saamat kommentit näkyvät alapuolella.

Juuso kirjoitti 22. toukokuuta 2012

Seuraavalle kerralla suosittelisin vilkaisemaan tämmöistä: https://github.com/bestiejs/punycode.js

Itsellänikin on nuo IDN domainit ollut ongelmana jo pitkän aikaan, kun mikään ei vaan tahdo toimia oikein.

Suosittelisin myös käyttämään document.ready komentoa, ettei vaan JavaScript livahda pyörimään ennen kun php on saanut omansa hoidettua. Lisäksi tämän pitäisi toimia helposti, eli POST ja GET -tiedot voidaan noutaa form attribuutin kautta, tai sitten vain jonkun divin sisältä.

Petri kirjoitti 23. toukokuuta 2012

Kiitos linkistä! Tutustun siihen huolellisemmin paremmalla ajalla. :-)

Tsekkaa myös minkälaisia valokuvia teen: www.pjti.fi