Squak Smalltalk [6 * 9 = 42] whileTrue: [World run]
Stopařův průvodce jedním převážně neškodným programovacím jazykem
smalltalk
Swiki
  • Domů
  • Zpět
  • Tento server

    Squeak
  • Úvod
  • Smalltalk
  • Články
  • Knihy
  • Dokumentace
  • FAQ
  • Tutoriály
  • Download
  • Odkazy

    Komunita
  • CSSUG
  • Oznámení
  • Projekty
  • O nás
  • Fórum
  • Kontakt

     

  • 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>


    Jméno:
    Heslo:

    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

    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





    Administrátoři: Pavel Křivánek, Zbyněk Křivka