Ero sivun ”Kommentointityökalu” versioiden välillä
(raakile) |
p (→Vastaus) |
||
(15 välissä olevaa versiota 2 käyttäjän tekeminä ei näytetä) | |||
Rivi 1: | Rivi 1: | ||
<rcode embed= | {{metodi|moderaatttori=Jouni}} | ||
== Kysymys == | |||
Millainen on kommentointityökalu, joka | |||
* toimii osana Opasnetiä, | |||
* on avointa lähdekoodia, | |||
* kommentteja voidaan hallinnoida riippumatta ulkopuolisista palveluista? | |||
== Vastaus == | |||
Kommentointityökalu tallentaa käyttäjien antamia kommentteja tietokantaan. Tallennettava taulu on tämän näköinen, ja jokainen kommentti tallennetaan omalle rivilleen. | |||
{| {{prettytable}} | |||
|+ '''Kommentit | |||
!Versio||JaeID||Aika||Liittymä||Result | |||
|---- | |||
| Hankkeen versionumero ||Kommentin juokseva id||Kommentin tallennusaika || Jos kommentti liittyy toiseen kommenttiin tai asiaan sivulla, kommentin numero tai asian nimi tai kuvailu || Kommentin sisältö. | |||
|} | |||
Kommentteja voi myös poistaa näkyvistä. Tietokannasta ei kuitenkaan poisteta tietoa, vaan tällaiseen tauluun laitetaan kommentille poistomerkintä. | |||
{| {{prettytable}} | |||
|+ '''Kommenttipoistot | |||
! Versio||Aika||Käyttäjä||Syy|| Result | |||
|---- | |||
| Hankkeen versionumero || Poistamisen ajankohta||Poistajan käyttäjänimi/IP||Poistamisen syy. Käyttöliittymässä on tarjottuna pudotusvalikossa olennaiset syyt. || Poistettavan kommentin JaeID | |||
|} | |||
;Ohjeita kommentointityökalun käyttöönottoon | |||
* Sijoita työkalu kakkostason väliotsikon "Kommentoi kirjautumatta" alle. | |||
* Kommentointityökalua ei tarvitse alustaa. | |||
* Työkalun lisääminen onnistuu kopioimalla alla oleva malline(templaatti) halutulle wikisivulle. | |||
<pre> | |||
<nowiki>{{kommentointityökalu}}</nowiki> | |||
</pre> | |||
Mallineelle voi antaa kaksi parametria, mutta yleensä näitä ei tarvita. | |||
* Voit laittaa sivutunnisteen ensimmäiseksi parametriksi, mutta tätä tarvitaan vain poikkeustapauksissa, jos kommentit halutaan tallentaa jonkin muun sivun kuin oman sivun kohdalle. Sivutunniste on muotoa Op_fi1234. | |||
* Jos kakkoskysymys eli ''liittymä toiseen kommenttiin'' halutaan piilottaa, pitää toiseksi parametriksi laittaa hidden. | |||
<pre> | |||
<nowiki>{{kommentointityökalu|Op_fiXXXX|hidden}}</nowiki> | |||
</pre> | |||
== Perustelut == | |||
Vastauksessa on tuontantokäytössä oleva työkalu. Perusteluissa on kehitysvaiheen malli. | |||
[[Luokka:Sisältää kommentointityökalun]] | |||
Voit kommentoida sisältöä myös kirjautumatta Opasnetiin yksinkertaisesti kirjoittamalla kommenttisi alla olevaan kenttään. Sivun moderaattori siirtää kommenttisi asiasisällön osaksi sivun tekstiä ja siirtää kommentin sitten arkistoon: {{tuloslinkki}}. | |||
<pre> | |||
<rcode label="Näytä kommentit" embed=1 showcode=-1 variables=" | |||
name:ident|type:hidden|default:'{{{1|Op_fi{{PAGEID}}}}}'| | |||
name:pagename|type:hidden|default:'{{PAGENAME}}' | |||
"> | "> | ||
library(OpasnetUtils) | library(OpasnetUtils) | ||
library(OpasnetUtilsExt) | |||
dat <- data | pagename <- gsub(" ", "_", pagename) | ||
dat <- tryCatch( | |||
opbase.data(ident, subset = "Kommentit"), | |||
error = function(...) return(NULL) | |||
) | |||
oprint(dat) | if (is.null(dat)) oprint("Kommentteja ei löytynyt") else { | ||
#opbase.upload(dat, ident = " | poistot <- tryCatch( | ||
opbase.data(ident, subset = "Kommentinpoistot"), | |||
error = function(...) return(NULL) | |||
) | |||
if (!is.null(poistot)) dat <- dat[!dat$JaeID %in% poistot$Result, ] | |||
if(nrow(dat) == 0) { | |||
oprint("Kaikki kommentit on sisällytetty tekstiin.") | |||
} else { | |||
oprint(dat, include.rownames = FALSE) | |||
# cat("Kommenttien tunnistelinkit (tarvitaan tägäyksessä):\n") | |||
# | |||
# for(i in 1:nrow(dat)) { | |||
# olink( | |||
# paste(pagename, "?Komm=", dat$Obs[i], "#Kommentit", sep = ""), | |||
# wiki = "op_fi", | |||
# text = paste(dat$Obs[i], substr(dat$Kommentti[i], 1, 30)) | |||
# ) | |||
# if(i == nrow(dat)) cat("\n") else cat(" · ") | |||
# } | |||
} | |||
} | |||
</rcode> | |||
'''Voit kommentoida sisältöä''' myös kirjautumatta Opasnetiin yksinkertaisesti kirjoittamalla kommenttisi alla olevaan kenttään. Sivun moderaattori siirtää kommenttisi asiasisällön osaksi sivun tekstiä ja siirtää kommentin sitten arkistoon: {{tuloslinkki}}. | |||
<rcode embed=1 label="Lisää kommentti" showcode=-1 variables=" | |||
name:kommentti|description:Kommenttisi tämän sivun sisältöön tai keskusteluun|type:textbox| | |||
name:liittymä|description:Mihin sivun kohtaan kommenttisi liittyy?|type:{{{2|text}}}| | |||
name:pagename|type:hidden|default:'{{PAGENAME}}'| | |||
name:ident|type:hidden|default:'{{{1|Op_fi{{PAGEID}}}}}' | |||
"> | |||
library(OpasnetUtils) | |||
# Vähän vaarallista että mikä tahansa virhe jothaa siihen että | |||
# data tulkitaan olemassa olemattomaksi, R tietokantafunktiot ovat | |||
# jäljessä kehitystä: .series ja .locations eivät toimi subseteille. | |||
obs <- tryCatch( | |||
opbase.data(ident, subset = "Kommentit"), | |||
error = function(...) return(NULL) | |||
) | |||
if (!is.null(obs)) { | |||
if ("Obs" %in% colnames(obs)) { | |||
at <- "replace" | |||
obs <- 1 | |||
} else { | |||
at <- "append" | |||
obs <- obs$JaeID | |||
obs <- gsub("[A-Za-z]", "", as.character(obs)) | |||
obs <- max(as.numeric(obs)) + 1 | |||
} | |||
} else { | |||
at <- "replace" | |||
obs <- 1 | |||
} | |||
dat <- data.frame( | |||
Versio = 1, | |||
JaeID = paste("K", obs, sep = ""), | |||
Aika = date(), | |||
Liittymä = liittymä, | |||
Result = kommentti | |||
) | |||
opbase.upload( | |||
dat, | |||
ident = ident, | |||
name = pagename, | |||
subset = "Kommentit", | |||
act_type = at, | |||
language = "fin", | |||
who = wiki_username | |||
) | |||
if (at == "replace") { | |||
dat <- data.frame( | |||
Versio = 1, | |||
Aika = date(), | |||
Käyttäjä = wiki_username, | |||
Syy = "Alustus", | |||
Result = "NA" | |||
) | |||
opbase.upload( | |||
dat, | |||
ident = ident, | |||
name = pagename, | |||
subset = "Kommentinpoistot", | |||
act_type = at, | |||
language = "fin", | |||
who = wiki_username | |||
) | |||
} | |||
oprint("Kommenttisi on onnistuneesti tallennettu.") | |||
</rcode> | |||
'''Poistettavat kommentit''' (varsinaiseen tekstiin siirretyt) | |||
<rcode embed=1 label="Poista kommentti" showcode=-1 variables=" | |||
name:jaeid|description:Poistettavan kommentin ID|type:text| | |||
name:syy|description:Poiston syy|type:selection|options: | |||
;- Valitse syy -; | |||
'Kommentti on sisällytetty keskusteluun tai sivulle';Kommentti on sisällytetty keskusteluun tai sivulle; | |||
'Kommentti ei liity sivun aiheeseen';Kommmentti ei liity sivun aiheeseen; | |||
'Kommentti on häiriköintiä';Kommentti on häiriköintiä (käytä säästellen)| | |||
name:ident|type:hidden|default:'{{{1|Op_fi{{PAGEID}}}}}'| | |||
name:pagename|type:hidden|default:'{{PAGENAME}}' | |||
"> | |||
library(OpasnetUtils) | |||
dat <- data.frame( | |||
Versio = 1, | |||
Aika = date(), | |||
Käyttäjä = wiki_username, | |||
Syy = syy, | |||
Result = jaeid | |||
) | |||
opbase.upload( | |||
dat, | |||
ident = ident, | |||
name = pagename, | |||
subset = "Kommentinpoistot", | |||
act_type = "append", | |||
language = "fin", | |||
who = wiki_username | |||
) | |||
oprint("Kommentti onnistuneesti poistettu.\n") | |||
pois <- opbase.data(ident, subset = "Kommentit") | |||
oprint(pois[pois$JaeID == jaeid , ], include.rownames = FALSE) | |||
</rcode> | </rcode> | ||
</pre> | |||
==Katso myös == | |||
* [[:Malline:Kommentointityökalu]] |
Nykyinen versio 9. heinäkuuta 2014 kello 16.03
Moderaattori:Ei ole (katso kaikki) Kuinka ryhtyä moderaattoriksi? Sivun edistymistä ei ole arvioitu. Arvostuksen määrää ei ole arvioitu (ks. peer review). |
Lisää dataa
|
Kysymys
Millainen on kommentointityökalu, joka
- toimii osana Opasnetiä,
- on avointa lähdekoodia,
- kommentteja voidaan hallinnoida riippumatta ulkopuolisista palveluista?
Vastaus
Kommentointityökalu tallentaa käyttäjien antamia kommentteja tietokantaan. Tallennettava taulu on tämän näköinen, ja jokainen kommentti tallennetaan omalle rivilleen.
Versio | JaeID | Aika | Liittymä | Result |
---|---|---|---|---|
Hankkeen versionumero | Kommentin juokseva id | Kommentin tallennusaika | Jos kommentti liittyy toiseen kommenttiin tai asiaan sivulla, kommentin numero tai asian nimi tai kuvailu | Kommentin sisältö. |
Kommentteja voi myös poistaa näkyvistä. Tietokannasta ei kuitenkaan poisteta tietoa, vaan tällaiseen tauluun laitetaan kommentille poistomerkintä.
Versio | Aika | Käyttäjä | Syy | Result |
---|---|---|---|---|
Hankkeen versionumero | Poistamisen ajankohta | Poistajan käyttäjänimi/IP | Poistamisen syy. Käyttöliittymässä on tarjottuna pudotusvalikossa olennaiset syyt. | Poistettavan kommentin JaeID |
- Ohjeita kommentointityökalun käyttöönottoon
- Sijoita työkalu kakkostason väliotsikon "Kommentoi kirjautumatta" alle.
- Kommentointityökalua ei tarvitse alustaa.
- Työkalun lisääminen onnistuu kopioimalla alla oleva malline(templaatti) halutulle wikisivulle.
{{kommentointityökalu}}
Mallineelle voi antaa kaksi parametria, mutta yleensä näitä ei tarvita.
- Voit laittaa sivutunnisteen ensimmäiseksi parametriksi, mutta tätä tarvitaan vain poikkeustapauksissa, jos kommentit halutaan tallentaa jonkin muun sivun kuin oman sivun kohdalle. Sivutunniste on muotoa Op_fi1234.
- Jos kakkoskysymys eli liittymä toiseen kommenttiin halutaan piilottaa, pitää toiseksi parametriksi laittaa hidden.
{{kommentointityökalu|Op_fiXXXX|hidden}}
Perustelut
Vastauksessa on tuontantokäytössä oleva työkalu. Perusteluissa on kehitysvaiheen malli. Voit kommentoida sisältöä myös kirjautumatta Opasnetiin yksinkertaisesti kirjoittamalla kommenttisi alla olevaan kenttään. Sivun moderaattori siirtää kommenttisi asiasisällön osaksi sivun tekstiä ja siirtää kommentin sitten arkistoon: {{#opasnet_base_link:Op_fi4224}} .
<rcode label="Näytä kommentit" embed=1 showcode=-1 variables=" name:ident|type:hidden|default:'{{{1|Op_fi{{PAGEID}}}}}'| name:pagename|type:hidden|default:'{{PAGENAME}}' "> library(OpasnetUtils) library(OpasnetUtilsExt) pagename <- gsub(" ", "_", pagename) dat <- tryCatch( opbase.data(ident, subset = "Kommentit"), error = function(...) return(NULL) ) if (is.null(dat)) oprint("Kommentteja ei löytynyt") else { poistot <- tryCatch( opbase.data(ident, subset = "Kommentinpoistot"), error = function(...) return(NULL) ) if (!is.null(poistot)) dat <- dat[!dat$JaeID %in% poistot$Result, ] if(nrow(dat) == 0) { oprint("Kaikki kommentit on sisällytetty tekstiin.") } else { oprint(dat, include.rownames = FALSE) # cat("Kommenttien tunnistelinkit (tarvitaan tägäyksessä):\n") # # for(i in 1:nrow(dat)) { # olink( # paste(pagename, "?Komm=", dat$Obs[i], "#Kommentit", sep = ""), # wiki = "op_fi", # text = paste(dat$Obs[i], substr(dat$Kommentti[i], 1, 30)) # ) # if(i == nrow(dat)) cat("\n") else cat(" · ") # } } } </rcode> '''Voit kommentoida sisältöä''' myös kirjautumatta Opasnetiin yksinkertaisesti kirjoittamalla kommenttisi alla olevaan kenttään. Sivun moderaattori siirtää kommenttisi asiasisällön osaksi sivun tekstiä ja siirtää kommentin sitten arkistoon: {{tuloslinkki}}. <rcode embed=1 label="Lisää kommentti" showcode=-1 variables=" name:kommentti|description:Kommenttisi tämän sivun sisältöön tai keskusteluun|type:textbox| name:liittymä|description:Mihin sivun kohtaan kommenttisi liittyy?|type:{{{2|text}}}| name:pagename|type:hidden|default:'{{PAGENAME}}'| name:ident|type:hidden|default:'{{{1|Op_fi{{PAGEID}}}}}' "> library(OpasnetUtils) # Vähän vaarallista että mikä tahansa virhe jothaa siihen että # data tulkitaan olemassa olemattomaksi, R tietokantafunktiot ovat # jäljessä kehitystä: .series ja .locations eivät toimi subseteille. obs <- tryCatch( opbase.data(ident, subset = "Kommentit"), error = function(...) return(NULL) ) if (!is.null(obs)) { if ("Obs" %in% colnames(obs)) { at <- "replace" obs <- 1 } else { at <- "append" obs <- obs$JaeID obs <- gsub("[A-Za-z]", "", as.character(obs)) obs <- max(as.numeric(obs)) + 1 } } else { at <- "replace" obs <- 1 } dat <- data.frame( Versio = 1, JaeID = paste("K", obs, sep = ""), Aika = date(), Liittymä = liittymä, Result = kommentti ) opbase.upload( dat, ident = ident, name = pagename, subset = "Kommentit", act_type = at, language = "fin", who = wiki_username ) if (at == "replace") { dat <- data.frame( Versio = 1, Aika = date(), Käyttäjä = wiki_username, Syy = "Alustus", Result = "NA" ) opbase.upload( dat, ident = ident, name = pagename, subset = "Kommentinpoistot", act_type = at, language = "fin", who = wiki_username ) } oprint("Kommenttisi on onnistuneesti tallennettu.") </rcode> '''Poistettavat kommentit''' (varsinaiseen tekstiin siirretyt) <rcode embed=1 label="Poista kommentti" showcode=-1 variables=" name:jaeid|description:Poistettavan kommentin ID|type:text| name:syy|description:Poiston syy|type:selection|options: ;- Valitse syy -; 'Kommentti on sisällytetty keskusteluun tai sivulle';Kommentti on sisällytetty keskusteluun tai sivulle; 'Kommentti ei liity sivun aiheeseen';Kommmentti ei liity sivun aiheeseen; 'Kommentti on häiriköintiä';Kommentti on häiriköintiä (käytä säästellen)| name:ident|type:hidden|default:'{{{1|Op_fi{{PAGEID}}}}}'| name:pagename|type:hidden|default:'{{PAGENAME}}' "> library(OpasnetUtils) dat <- data.frame( Versio = 1, Aika = date(), Käyttäjä = wiki_username, Syy = syy, Result = jaeid ) opbase.upload( dat, ident = ident, name = pagename, subset = "Kommentinpoistot", act_type = "append", language = "fin", who = wiki_username ) oprint("Kommentti onnistuneesti poistettu.\n") pois <- opbase.data(ident, subset = "Kommentit") oprint(pois[pois$JaeID == jaeid , ], include.rownames = FALSE) </rcode>