Asko Korpela 
Palautelomake

Tekstistä nettiin
"...joudutko tekemään siitä erillisen viestin vai onko ohjelmasi näin fiksu?"

Vastauksena tähän saatuun kommenttiin: Näin syntyy Palautelomake
 

Html-koodi 

<a NAME="Lähetä palautetta!"></a>Lähetä palautetta!&nbsp;</h3>
<FORM ACTION="http://www.nebula.fi/cgi-bin/formmail.cgi" METHOD=post>
<input TYPE=hidden NAME="recipient" VALUE="Asko.Korpela@nbl.fi,asta.manner@tse.fi">
<br /><b>Kirjoita otsikko palautteelle</b>
<br /><input TYPE="text" NAME="Otsikko" SIZE="60"><b>
<br />Kirjoita palauteteksti tähän</b>
<br /><textarea wrap=virtual NAME="Teksti" ROWS="6" COLS="60"></textarea>
<br /><b>Kirjoita nimesi tähän.</b> (Nimettömiä ei huomoida.)
<br /><input TYPE="text" NAME="Lahettaja" SIZE="60">
<br /><b>..ja sähköpostiosoitteesi</b>
<br /><input TYPE="text" NAME="email" SIZE=60>
<br />Tämän palauteviestin saa Asta Manner ja kopion Asko Korpela
<br /><input TYPE="hidden" NAME="subject" VALUE="W3-Cervantes">
<input TYPE="hidden" NAME="FileNimi" CHECKED VALUE="C:\Documents and Settings\Asko\Omat tiedostot\nbl\lukupiiri\Cervantes\AMA\37-VaarinLuettu-AMA-20070112.htm">
<br /><input TYPE="submit" VALUE="Lähetä"><input TYPE="reset" VALUE="Tyhjennä">
<br /></form></td>
 

Tästä html-koodista on lopputulos tämä 

Tässä fiksuudessa ei oikeastaan olekaan mitään minun 'fiksuuttani', se kuuluu html kieleen. Mutta minä ohjelmoijana tunnen tiettyä ylpeytä siitä kun saan leikepöydältä siirtyvän pelkän tekstin html-kielen kautta muotoutumaan tällaiseksi lopputulokseksi. Kuten ylempää näkkyy, Html on täysin 'avointa' koodia eli kaikki on näkyvissä ja voidaan millä hyvänsä editorilla (Notepad, Wordpad, Word...) näppäillä merkki kerrallaan. Paljon sitä teenkin, mutta helppo ymmärtää, ettei hommasta mitään tulisi, jos joka-ainoaan tekstiin pitäisi käsin kirjoittaa noin paljon lisähörhellystä. 
 

Html-editorin käyttö 


Sitä varten on olemassa erityisiä Html editoreita. Minä käytän Netscapen Composeria. Sen jäljiltä äskeinen kohta näyttää tältä:
 

Mutta näinkään ei kannattaisi Lukupiiriä hoitaa. Aikaa menisi tuhottomasti. 
 

Html-koodia Delphi ohjelmointikielellä 


Kolmas mahdollisuus on laittaa tietokone kirjoittamaan. Ja siinä tulee vasta minun 'fiksuuteni' esiin. Olen elämän varrella hankkinut yhden 'ylimääräisen' kielitaidon (itse asiassa montakin). Osaan Delphi ohjelmointikielellä kertoa tietokoneelle mitä sen on tehtävä kun se saa leikepöydältä ihan paljaan tekstin, jotta siitä sitten tulisi sellaista html-koodia, joka laittaa alkuperäisen tekstin nätisti esiin ja lähettää sivun käyttäjältä palautetta minulle ja kopion käyttäjälle itselleen. Delphi ohjelmointikielellä tuo samainen kohta (jossa ei alkuperäistä sinun kirjoittamaa tekstiä olekaan) näyttää tällaiselta:

procedure TfSivusto.TeePalauteLomake;
begin
 with HtmFi
 do begin
  Add('<p>&nbsp;</td>');
  Add('</tr>');

  Add('<tr>');
  Add('<td>');
  Add('<h2>');
  Add('<a name="Palautetta"></a>Palautetta&nbsp;</h2>');

  Add('</td>');
  Add('</tr>');

  Add('<tr>');
  Add('<td>');
  Add('<h3>');
  Add('<a NAME="Lähetä palautetta!"></a>Lähetä palautetta!&nbsp;</h3>');
  Add('<FORM ACTION="http://www.nebula.fi/cgi-bin/formmail.cgi" METHOD=post>');
  if nae=ProgUser
  then begin
   Add('<input TYPE=hidden NAME="recipient" VALUE="'+UserMail+'">');
  end
  else begin
   if nae<>''
   then begin
    Add('<input TYPE=hidden NAME="recipient" VALUE="'+UserMail+','+spo+'">');
   end
   else begin
    Add('<input TYPE=hidden NAME="recipient" VALUE="'+UserMail+'">');
   end;
  end;
  Add('<br /><b>Kirjoita otsikko palautteelle</b>');
  Add('<br /><input TYPE="text" NAME="Otsikko" SIZE="60"><b>');
  Add('<br />Kirjoita palauteteksti tähän</b>');
  Add('<br /><textarea wrap=virtual NAME="Teksti" ROWS="6" COLS="60"></textarea>');
  Add('<br /><b>Kirjoita nimesi tähän.</b> (Nimettömiä ei huomoida.)');
  Add('<br /><input TYPE="text" NAME="Lahettaja" SIZE="60">');
  Add('<br /><b>..ja sähköpostiosoitteesi</b>');
  Add('<br /><input TYPE="text" NAME="email" SIZE=60>');
  if nae=ProgUser
  then begin
   Add('<br />Tämän palauteviestin saa '+ProgUser);
  end
  else begin
   if nae<>''
   then begin
    Add('<br />Tämän palauteviestin saa '+nae+' ja kopion '+ProgUser);
   end
   else begin
    Add('<br />Tämän palauteviestin saa '+ProgUser);
   end;
  end;
  Subj1 := 'W3-'+Subj1;
  Add('<br /><input TYPE="hidden" NAME="subject" VALUE="'+Subj1+'">');
  Add('<input TYPE="hidden" NAME="FileNimi" CHECKED VALUE="'+dir+myd+'\'+FileNimi+'.htm">');
  Add('<br /><input TYPE="submit" VALUE="Lähetä"><input TYPE="reset" VALUE="Tyhjennä">');
  Add('<br /></form></td>');
 end;
end;

En tiedä miten olet ohjelmointiin perehtynyt, mutta vaikket olisi, tuostakin melkein pystyt seuraamaan rivi riviltä, miten lopputulos syntyy. Paljon tarvitaan html-koodia, käsin menisi kauan, vaikka leikepöydän kautta jostakin vanhasta saisikin, mutta Delphi ohjelma tekee homman täysin käsittämättömän nopeasti. Tottuneenakin melkein huimaa ajatus, että minulla on ohjelma joka tähän tapaan muistaakseni noin 10 sekunnissa lukee erään venäläisen filosofin 500-sivuisen oppikirjan16 kertaa läpi, siis 8000 sivua  ja muuttaa yksitoikkoisen harmaan tekstin huomattavasti mukavemmin luettavaan muotoon ja samalla tekee jos jonkinlaisia luetteloita ja indeksejä. Vilkaise huviksesi tästä linkistä

http://www.askokorpela.fi/filosofia/Balashov/Filosofia/00-Balashov-fil-sho.htm
http://www.askokorpela.fi/filosofia/Balashov/Filosofia/LBFilo-01-ajk.htm ... jne
 

Palautteen jälkikäsittely 

Tästähän näköjään tulikin kokonainen oppitunti. Enkä malta vieläkään lopettaa. 'Kukas kissa hentte nosta, ellei kissa itte'. Varsinainen fiksuus on siinä, että saamasi palaute (ja minun saamani samanlainen) on valmista pässinlihaa samaisen Sivusto-ohjelmani toiselle näppäimelle. Se ottaa nimittäin taas leikepöydän kautta vastaan palautetekstin ja siinä olevien tietojen perusteella etsii palautetta antaneen tiedoston, lukee sen pari kertaa ja sijoittaa oikeaan väliin annetun palautteen, pannen sen ihan tiettyyn muotoon, lisäten päiväyksen ym. Tähän minun panostani tarvitaan täsmälleen kaksi näpäytystä: ensimmäinen ottaa vastaan tekstin leikepöydältä ja toinen laatii uuden palautteella lisästyn nettisivun. Sivu on sitten vain siirrettävä palvelimelle, kuten kaikki muukin. Jos olisin oikein pätevä, voisin järjestää asian niin, ettei minun tarvitsisi tätäkään tehdä, vaan olisin ohjelmoinut palvelimen tekemään sen. Siihen ohjelmointiin en valitettavasti ole perehtynyt.

 

Asko Korpela 20070120 (20070120) o AJK kotisivu o o Webmaster