60.19.13.4.1. Jednoduchá šablona stránky

Jednou z prvních věcí kterou jsem udělal bylo napsání šablony stránky. Tato slouží k tomu abych oddělil vnější 'design' od vnitřního obsahu stránky. V první fázi se jedná o triviální způsob kdy šablona, tedy vnější obal, je tvořena dvěma funkcemi. První vypíše do stdout 'hlavičku' tedy část html kódu před tělem stránky a druhá pak na závěr 'patičku' jenž dokončí obalení těla stránky. Princip je následující. Pokud zvolíme například jednoduchý tabulkový design kde stránka má graficky vypadat takto

        +---------------------------------------+
        | logo |      titulek            | user |
        |------+-------------------------+------|
        | Menu                                  |
        |---------------------------------------|
        |                                       |
        |        obsah                          |
        |                                       |
        |                                       |
        |                                       |
        |---------------------------------------|
        | rcsinfo                     copyright |
        +---------------------------------------+

Pak html kód stránky:

	<html>
          <head>
            <title>titulek</title>
          </head>
          <body>
            <table>
              <tr>
                <td>logo</td>
                <td>titulek</td>
                <td>user</td>
              </tr>
              <tr>
                <td>menu</td>
              </tr>
              <tr>
                <td>
        --------------------------------
                    obsah
        --------------------------------
                         </td>
              </tr>
              <tr>
                <td>rcsinfo  copyright</td>
              <tr>
            </table>
          </body>
        </html>

Tak tento vzor rozdělíme v místě obsahu na části jak napovídají čáry. První část kódu bude vložena do funkce 'template_header' a poslední do funkce 'template_footer' například tímto způsobem

        function template_header() {
            cat <<EOF
            ...html kód první části...
        EOF
        }

        function template_footer() {
            cat <<EOF
            ...html kód poslední části...
        EOF
        }

Kód generující jednotlivé stránky pak bude vpadat takto

        function page_prvni() {
            template_header
            ... generování obsahu stránky ...
            template_footer
        }

Tento primitivní způsob použití šablony stránky rozdělené na hlavičku a patičku nám v začátku postačí a přitom nám dá dostatečně silný nástroj na vytváření webu s potřebnou úpravou. Zásah do hlavičky/patičky se pak projeví na všech vytvářených stranách.