Jak vytvořit kalendář v ASP – kdo má dnes svátek

    0

    Na četné žádosti čtenářů se téměř po roce od uveřejnění posledního dílů seriálu článku o tvorbě kalendáře pomocí ASP se k tomuto tématu vracím. V dnešním zdaleka ne posledním článku na toto téma vám ukáži jak již existující kalendář z předchozích dílů doplnit o informaci o tom kdo právě slaví svátek.

    Jistě jste si již na některých www stránkách všimli skutečnosti, že občas je dost nekorektně zobrazen den ke kterému se neváže žádné jméno. Není nic neobvyklého se setkat s informací typu „Dnes má svátek: Svátek práce“. Určitě se vám tato konstrukce nelíbí a nebudete chtít mít na svých stránkách podobné nesmyslné informace.

    Základem ošetření těchto hlášení je nutnost si takovýto den nějakým způsobem označit v databázi. Dobrým řešením se ukazuje umístění nějakého identifikátoru na začátek textu jenž není jménem. V databázi pak bude k 1.5. uvedeno „-Svátek práce“. Při vlastním zobrazování si pak pouze otestuji první znak řetězce na existenci znaku „-“ a podle toho zobrazím příslušný text „Dnes má svátek:“ anebo „Dnes je:“.

    Pokud se vám nechce opisovat kalendář máte možnost si SQL skript který to udělá za vás stáhnout z ASP Network. Skript najdete zde. Tento skript vytvoří tabulku ve které bude uveden den, měsíc a k nim odpovídající textový údaj (jméno či jiný popis dne).

    Ve skriptu jsou použity funkce isconnectdb a disconnect jenž jsou obsaženy souboru connect.asp, který zajišťuje spojení s databází a podrobně je popsán v článku ASP, databáze a objekt Connection.

    A nyní už vlastní funkce která jako výsledek své činnosti vrátí text ve kterém je uvedeno kdo má právě dnes svátek případně jaký je významný den.

    <%
    function svatek()
       if isconnectdb() then
          datum=date()
          sql=“select jmeno from svatky where den=“&datepart(„D“,datum)&“ and mesic=“&datepart(„M“,datum)
          set rs=objconn.execute(sql)
          jmeno=trim(rs(„jmeno“))
          rs.close
          set rs=nothing
          disconnect()
          if left(jmeno,1)=“-“ then
             jmeno=right(jmeno,len(jmeno)-1)
             text=“Dnes je: „
          else
             text=“Dnes má svátek: „
          end if
          svatek=text&jmeno
       end if
    end function
    %>

    Pomocí funkce left otestuji zda není v získaném jménu znak „-“ a pokud je tak ho pomocí funkce right odstraním. Dále podle výsledku testu připravím text, který bude uveden před jménem.

    Dnes prezentovanou funkci můžete použít zcela samostatně neboť neobsahuje žádné formátovací znaky a nebo ji včlenit do funkce kalendář, jejíž poslední verze byla publikována v článku Jak vytvořit kalendář pomocí ASP? (III).

    Pro samostatné použití stačí do místa kam chcete informaci umístit vložit tento kód

    Response.write svatek

    Pokud chcete mít umístěn svátek v již existujícím kalendáři je třeba do kalendáře umístit následující kód.

       tmp=tmp&“<tr><td colspan=3 align=center>“&font&svatek&“</a></td></tr>“

    Protože celý kód kalendáře je příliš dlouhý uvedu zde pouze část, která se inkriminované změny přímo dotýká.

       ….
       ……
       ……..
       tmp=tmp&“</table>“
       tmp=tmp&“</td></tr>“
       tmp=tmp&“<tr><td colspan=3 align=center>“&font&“<a href=“&urldnes&“>“&ceskydatumcas(now,1,1)&“</a></td></tr>“
       tmp=tmp&“<tr><td colspan=3 align=center>“&font&svatek&“</a></td></tr>“
       tmp=tmp&“</table>“
       kalendar9=tmp
    end Function

    Jak sami vidíte jedná se o poslední řádek v tabulce kalendáře. Jako vždy si můžete stáhnout zdrojové kódy, které jsou k dispozici zde.

    Pokud vás napadne další funkce kterou by měl kalendář umět napište svůj tip do diskuze pod článkem a nebo jej pošlete na můj email

    Starší komentáře ke článku

    Pokud máte zájem o starší komentáře k tomuto článku, naleznete je zde.

    Žádný příspěvek v diskuzi

    Odpovědět