 |
[6 * 9 = 42] whileTrue: [World run]
Stopařův průvodce jedním převážně neškodným programovacím jazykem
|
 |
|
Dynamická tvorba obsahu
Tento server je oproti standardnímu swiki rozšířen o některé drobnosti.
Nutno dodat, že se nejedná o způsob, jak se tyto úlohy standardně ve Smalltalku řeší, takže pokud se Smalltalkem začínáte, DON'T PANIC
Inline Smalltalk
Nejjednodušší možnost je použít speciální tag <SMALLTALK> (case-sensitive) a dovnitř vložit libovolný smalltalkovský výraz.
<SMALLTALK>3+4</SMALLTALK>
<SMALLTALK>
| num |
num := 3+4.
num
</SMALLTALK>
Nastavení cookie
(self at: #request) raw setCookieName: #jmeno
value: 'Pavel'
path: '/'.
Získání cookie
[(self at: #request) raw cookies at: #jmeno]
ifError: ['nikdo' ]
Formuláře
<center><form action="/Squeak/83" method=post>
|Jméno: |<input type="text" size=20 value="" name="jmeno">
|Heslo: |<input type="password" size=20 value="" name="heslo">
<input type="submit" value="Přihlásit"></center>
Získání obsahu formuláře
Podobný kód je třeba uvést na stránce, na kterou je nasměrována action ve formuláři. Může to být tedy i jiná stránka než ta, na které je původní formulář
<SMALLTALK>
| dict |
dict := (self at: #request) raw postFields.
dict isEmpty
ifFalse: [
((dict at: #jmeno) = 'jmeno'
and: [(SecureHashAlgorithm new
hashMessage: (dict at: #heslo)) asString
= '628022029064920457606303469569901564949872826602'])
ifFalse: ['Špatné jméno nebo heslo']
ifTrue: ['Správné jméno nebo heslo']
]
</SMALLTALK>
Test funkčnosti
Jméno je 'jmeno', heslo je 'heslo'. Při prázdném furmuláři vrací nil
Formuláře a odkazy
V případě, že potřebujete používat odkazy místo tlačítek, pak formulář nazvěte myForm a uveďte dva speciální sktyté vstupy
<input type="hidden" name="EVENTTARGET" value="" >
<input type="hidden" name="EVENTARGUMENT" value="" >
odkaz pak může vypadat například takto:
<a id="Odkaz" href="javascript:__doPostBack('Target','argument')">Odkaz</a>
Odkaz na tuto stránku
- Tento server, poslední úprava dne 25 Červenec 2008 v 15:46:47 uživatelem localhost
|
|