<?xml version="1.0"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="fi">
	<id>https://wikikko.info/w3/index.php?action=history&amp;feed=atom&amp;title=Smarty</id>
	<title>Smarty - Muutoshistoria</title>
	<link rel="self" type="application/atom+xml" href="https://wikikko.info/w3/index.php?action=history&amp;feed=atom&amp;title=Smarty"/>
	<link rel="alternate" type="text/html" href="https://wikikko.info/w3/index.php?title=Smarty&amp;action=history"/>
	<updated>2026-06-04T08:34:35Z</updated>
	<subtitle>Tämän sivun muutoshistoria</subtitle>
	<generator>MediaWiki 1.45.3</generator>
	<entry>
		<id>https://wikikko.info/w3/index.php?title=Smarty&amp;diff=967&amp;oldid=prev</id>
		<title>imported&gt;WikikkoSysop (14. helmikuuta 2017 kello 13.12)</title>
		<link rel="alternate" type="text/html" href="https://wikikko.info/w3/index.php?title=Smarty&amp;diff=967&amp;oldid=prev"/>
		<updated>2017-02-14T13:12:47Z</updated>

		<summary type="html">&lt;p&gt;&lt;/p&gt;
&lt;p&gt;&lt;b&gt;Uusi sivu&lt;/b&gt;&lt;/p&gt;&lt;div&gt;== Johdanto ==&lt;br /&gt;
Smarty on &amp;quot;template engine&amp;quot;, joka helpottaa esimerkiksi kotisivujen sivupohjien koodaamista. Esimerkiksi julkaisujärjestelmä CMS Made Simple käyttää Smartya.&lt;br /&gt;
&lt;br /&gt;
:http://www.smarty.net&lt;br /&gt;
&lt;br /&gt;
KESKEN: http://www.smarty.net/docsv2/en/language.modifiers.tpl&lt;br /&gt;
&lt;br /&gt;
== Asennus ==&lt;br /&gt;
Hyvät ohjeet, joita kannattaa seurata: http://www.smarty.net/quick_install&lt;br /&gt;
* Smarty löytyy myös CMS Made Simplen hakemistosta.&lt;br /&gt;
&lt;br /&gt;
=== Ongelmia ===&lt;br /&gt;
* Blankko sivu, eikä mikään $smarty -komento toimi, ei esm. $smarty-&amp;gt;testInstall(); jolla testataan ovatko hakemistopolut ym. oikein. &lt;br /&gt;
** todennäköisesti polku on väärin siinä, mikä yrittää noutaa Smarty.class.php:tä &lt;br /&gt;
*** jos käytössä on esm. cmsmadesimple, niin Smarty sijaitsee cmsmadesimple/lib/smarty/libs/Smarty.class.php&lt;br /&gt;
*** jos taas olet asentanut Smartyn sen sivujen ohjeiden mukaan, se on ehkä /usr/local/lib/php/Smarty/Smarty.class.php&lt;br /&gt;
** jos käytät OSX järjestelmää ja olet tehnyt juurihakemistoksi localhost/~käyttäjänimesi niin tällöin selvitä tämän hakemiston polku pääteohjelmassa pwd -komennolla kun olet tuossa juurihakemistossa&lt;br /&gt;
*** se on esm. /Users/käyttäjänimesi/Sites/&lt;br /&gt;
*** oikea muoto on silloin esm.:  require(&amp;#039;/Users/kättäjänimesi/Sites/cmsmadesimple/lib/smarty/libs/Smarty.class.php&amp;#039;);&lt;br /&gt;
&lt;br /&gt;
== Viritetään CMS Made Simple harjoituskäyttöön ==&lt;br /&gt;
* Luodaan harjoituspohja Sisältö &amp;gt; Uutiset &amp;gt; Koostepohja &amp;gt; Luo uusi pohja.&lt;br /&gt;
* Anna pohjalle nimi, lisää Smarty koodi ja Lähetä.&lt;br /&gt;
* Kytke kyseinen pohja valikosta oletukseksi.&lt;br /&gt;
* Lataa uudelleen kotisivu, jossa uutiset moduulin tuloste näkyy ja näet tulokset. Normaaliksi palauttaminen tapahtuu valitsemalla joku toinen oletuspohja. &lt;br /&gt;
* Jos käytössäsi on esimerkiksi CGUserDirectory -moduuli, voit tehdä myös sillä sivipohjan ja tulostaa suoraan varsinaiseen sivun lohkoon.&lt;br /&gt;
* Tämän jälkeen teet muutokset, painat Ota käyttöön ja lataat kotisivun uudestaan ja näet heti muutokset. Smartyn välimuistiasetuksia voi säätää Sivuston hallinnassa, mutta välimuistit lienee hyvä olla tällaisessa käytössä pois päältä.&lt;br /&gt;
&lt;br /&gt;
== Alkeet ==&lt;br /&gt;
Kannattaa käyttää 10 minuuttia perusteiden opettelemiseen. Tässä tiivistetyt ohjeet.&lt;br /&gt;
* Smarty:ä voi käyttää tiedostojärjestelmästä tai esimerkiksi CMS Made Simplen sisältä.&lt;br /&gt;
* Tässä ohjeessa on käytetty apuna smarty -sivuston [http://www.smarty.net/docsv2/en/smarty.for.designers tutorialia], joka erityisesti keskittyy sivupohjien ohjelmoijille.&lt;br /&gt;
* Smartyn perus syntaksi on {$tähänmuuttuja} jonka ympärille voidaan lisätä esm. html-kieltä &amp;lt;p&amp;gt;{$tähänmuuttuja}&amp;lt;/p&amp;gt; Käytetään siis { } ellei asetuksissa toisiksi ole muutettu.&lt;br /&gt;
* Jokainen tagi eli { } joko &amp;#039;&amp;#039;tulostaa&amp;#039;&amp;#039; muuttujan tai &amp;#039;&amp;#039;suorittaa aliohjelman&amp;#039;&amp;#039; (function). Funktiolle voidaan syöttää arvot seuraavasti:&lt;br /&gt;
 {funktionnimi attribuutti1=&amp;#039;arvo1&amp;#039; attribuutti2=&amp;#039;arvo2&amp;#039;}&lt;br /&gt;
 {insert file=&amp;#039;sivupohja.tpl&amp;#039; title=&amp;#039;Teksti tähän&amp;#039;}&lt;br /&gt;
&lt;br /&gt;
== Smarty tiedostojärjestelmässä ==&lt;br /&gt;
# Itse Smarty-ohjelma sijaitsee jossain hakemistossa (kts. yllä). Tämä osoite tarvitsee tietää: esm. require(&amp;#039;/Users/käyttäjänimesi/Sites/cmsmadesimple/lib/smarty/libs/Smarty.class.php&amp;#039;);&lt;br /&gt;
# Se ohjelma, johon käytät Smartyä voidaan liittää esm. CMS Made Simple:en sivun osoitteella tiedostojärjestelmän hakemistoon. Tämä on myös sama URL-tai vastaava osoite on kuin kutsuisit sitä suoraan. &lt;br /&gt;
# Smarty:n ohjeiden mukaan&lt;br /&gt;
## Tee kuten sivulla on ohjeistettu: http://www.smarty.net/quick_install&lt;br /&gt;
&lt;br /&gt;
=== CMS Made Simple ===&lt;br /&gt;
# Jos haluat tehdä oman pienen ohjelman tai toiminnon, voit tehdä sen käyttäjän määrittelemänä tagina php:llä ylläpidon puolella.&lt;br /&gt;
# Jos haluat tehdä laajemman ohjelman, se kannattaa sijoittaa tiedostojärjestelmään.&lt;br /&gt;
# Kannattaa ehkä sijoittaa ohjelma omaan hakemistoonsa esm. /uploads hakemistoon, koska sitä ei CMS Made Simpleä päivitettäessä tule tuhottua.&lt;br /&gt;
## /uploads/omanohjelmannimi -hakemistoon tee hakemistot: cache, configs, templates, templates_c ja tarkista että templates_c ja cache -hakemistoilla on 775 ja oikea omistaja ja ryhmä. Kts. edellä annetulta Smarty-linkkisivulta. &lt;br /&gt;
# Sijoita templates -hakemistoon sivupohjat, eli ne jotka päättyvät .tpl niissä on se tieto, mikä muodostaa netissä näkyvän sivun&lt;br /&gt;
# cache on välimuisti ja templates_c samoin myös hakemisto, johon Smarty itse tekee tiedostoja.&lt;br /&gt;
# configs -hakemisto voi sisältää tekstitiedostoja ohjelmasi avuksi&lt;br /&gt;
# Smarty osaa hakea alikansioista automaattisesti. Jos haluat ohjata ohjelmasi hakemaan ne muualta, määrittele index.php -tiedostossa hakemistot:&lt;br /&gt;
 $smarty-&amp;gt;setTemplateDir(&amp;#039;/Users/käyttäjänimesi/Sites/cmsmadesimple/uploads/testi2/templates&amp;#039;);&lt;br /&gt;
 $smarty-&amp;gt;setCompileDir(&amp;#039;/Users/käyttäjänimesi/Sites/cmsmadesimple/uploads/testi2/templates_c&amp;#039;);&lt;br /&gt;
 $smarty-&amp;gt;setCacheDir(&amp;#039;/Users/käyttäjänimesi/Sites/cmsmadesimple/uploads/testi2/cache&amp;#039;);&lt;br /&gt;
 $smarty-&amp;gt;setConfigDir(&amp;#039;/Users/käyttäjänimesi/Sites/cmsmadesimple/uploads/testi2//configs&amp;#039;);&lt;br /&gt;
# Kun osoitat selaimen &amp;quot;omanohjelmannimi&amp;quot; -kansioon, se lataa index.php -tiedoston. Se on se komennuskeskus, mikä ohjaa muihin toimintoihin eli tiedostoihin tässä hakemistossa ellet ole muualle määrännyt.&lt;br /&gt;
&lt;br /&gt;
* Myöhemmin tällä sivulla on esimerkki miten tehdään pieni ohjelma joka pyytää käyttäjältä arvoja ja tulostaa ne.&lt;br /&gt;
&lt;br /&gt;
=== Muuttujat ===&lt;br /&gt;
* Muuttuja alkaa $ (dollari) merkillä. Voi sisältää kirjaimia, numeroita ja alaviivoja.&lt;br /&gt;
 {$muuttuja} tulostaa muuttujan joka ei ole taulukko eikä olio.&lt;br /&gt;
 {&amp;quot;muuttuja&amp;quot;} staattinen arvo&lt;br /&gt;
 {$muuttuja[10]} tulostaa taulukon 11. alkion&lt;br /&gt;
 {$muuttuja[10].avaimennimi}&lt;br /&gt;
 {$muuttuja[10].$avaimennimi}&lt;br /&gt;
 {$muuttuja.avaimennimi} tulostaa taulukosta avaimen arvon&lt;br /&gt;
 {$muuttuja.$avaimennimi} tulostaa taulukosta muuttujassa olevan avaimen arvon&lt;br /&gt;
 {$muuttuja-&amp;gt;ominaisuus} tulostaa olion nimeltä muuttuja ominaisuuden ??&lt;br /&gt;
 {$muuttuja-&amp;gt;ominaisuus()} tulostaa olion nimeltä muuttuja ominaisuuden paluuarvon ??&lt;br /&gt;
 {$muuttuja-&amp;gt;ominaisuus($muuttuja2,2,$muuttuja3)}&lt;br /&gt;
 {#muuttuja#} tulostaa tiedostonimi.conf -tiedostoon tallennetun arvon. Kts. oma otsikko.&lt;br /&gt;
 {$smarty.config.muuttuja} tulostaa tiedostonimi.conf -tiedostoon tallennetun arvon. Kts. oma otsikko.&lt;br /&gt;
 {assign var=muuttuja value=&amp;#039;teksti&amp;#039;}{$muuttuja} tulostaa teksti &lt;br /&gt;
 {$smarty.server.SERVER_NAME} tulostaa palvelimen nimen&lt;br /&gt;
 {$muuttuja+1} laskutoimitukset voidaan sisällyttää suoraan&lt;br /&gt;
 {assign var=&amp;quot;muuttuja&amp;quot; value=&amp;quot;`$muuttuja+$muuttuja1`&amp;quot;}&lt;br /&gt;
&lt;br /&gt;
: Lähde http://www.smarty.net/docsv2/en/language.syntax.variables.tpl&lt;br /&gt;
&lt;br /&gt;
* muuttuja $smarty on varattu ja sen takaa löytyy monenlaista tietoa. &lt;br /&gt;
** http://www.smarty.net/docsv2/en/language.variables.smarty.tpl&lt;br /&gt;
* [http://www.smarty.net/docsv2/en/language.custom.functions.tpl#language.function.assign {assign}]&lt;br /&gt;
* [http://www.smarty.net/docsv2/en/api.assign.tpl assign()]&lt;br /&gt;
&lt;br /&gt;
== Muunnin ==&lt;br /&gt;
&amp;quot;Muuttuja muuntimia&amp;quot; voi liittää muuttujiin, custon aliohjelmiin tai merkkijonoihin. Ne listätään putkimerkillä |&lt;br /&gt;
 {$muuttuja|upper}&lt;br /&gt;
 {$muuttuja|truncate:40:&amp;#039;...&amp;#039;} muunnin parametreilla&lt;br /&gt;
 {aliohjelma loop=$muuttuja|upper} &lt;br /&gt;
 {&amp;#039;merkkijono&amp;#039;|upper}&lt;br /&gt;
 {mailto|upper address=&amp;#039;nimi@osoite.fi&amp;#039;}&lt;br /&gt;
 {$taulukko|@count} PHP:n count&lt;br /&gt;
&lt;br /&gt;
=== Käytössäolevien muuttujien tutkiminen ===&lt;br /&gt;
* Miten sitten saadaan näkyviin käytettävissä olevat muuttujat, joita ei esimerkiksi sivupohjassa ole itse luotu?&lt;br /&gt;
**tulostaa kaikki sillä hetkellä käytettävissä olevat ylimmän tason smarty-muuttujat ja niiden tyypit. Tämä soveltuu esimerkiksi sivupohjien (template) tekemiseen, kunt tarvitsee saada käsitys mitä muuttujia on käytettävissä.&lt;br /&gt;
 {get_template_vars} &lt;br /&gt;
* Oman muuttujan voi luoda esim. item:llä: {foreach from=$jokumuuttuja.properties.membership item=&amp;#039;jasenyys&amp;#039;} Tämän jälkeen käytettävissä on muuttuja $jasenyys&lt;br /&gt;
* {dump item=&amp;quot;jokumuuttuja&amp;quot;} tulostaa ylimmän tason muuttujan jäsenet (member).&lt;br /&gt;
* &amp;lt;nowiki&amp;gt;&amp;lt;pre&amp;gt;{$somevariable|print_r}&amp;lt;/pre&amp;gt;&amp;lt;/nowiki&amp;gt; tulostaa muuttujan jäsenet.&lt;br /&gt;
** &amp;lt;nowiki&amp;gt;{foreach from=$jokumuuttuja item=entry}&amp;lt;pre&amp;gt;{$entry|print_r}&amp;lt;/pre&amp;gt;{/foreach}&amp;lt;/nowiki&amp;gt; jos kysessä ei ole ylimmän tason muuttuja.&lt;br /&gt;
* Laajennokset &amp;gt; Tagit näyttää käytettävissä olevat ? ja niitä klikkaamalla antaa ohjeet!&lt;br /&gt;
&lt;br /&gt;
== Debug ==&lt;br /&gt;
 {debug}&lt;br /&gt;
 {$debugging = TRUE} Soveltuu esimerkiksi muuttujien tutkimiseen.&lt;br /&gt;
&lt;br /&gt;
== Arvojen kanssa pelaaminen ==&lt;br /&gt;
: Calguys Module Extensions&lt;br /&gt;
&lt;br /&gt;
* Noudetaan aluksi kaikki kayttajat kaikki-taulukkoon&lt;br /&gt;
** {foreach from=$users item=&amp;#039;kaikki&amp;#039;}&lt;br /&gt;
* Toteutetaan jotain jos ehto toteutuu. Huomaa, miten tieto haetaan tietokannasta $-merkillä. Aluksi viitataan edellä haettuun kaikki-taulukkoon ja sitten mennään syvemmälle arvoa kohti. Katso tästä selitys muutava rivi alempana.  &lt;br /&gt;
** {if ($kaikki.groups.0 == 2 or $kaikki.groups.1 == 2) and ($kaikki.properties.membership != &amp;#039;opiskelijajäsen&amp;#039;)}&lt;br /&gt;
** {if $kaikki.props.osaajanakyvyys.data == 1}&lt;br /&gt;
* Asettamalla debugin eli seuraavan päälle ja päivittämällä kotisivun, saa tiedot taulukoista.&lt;br /&gt;
 {get_template_vars} &lt;br /&gt;
 {foreach from=$users item=entry}&amp;lt;pre&amp;gt;{$entry|print_r}&amp;lt;/pre&amp;gt;{/foreach}&lt;br /&gt;
** Ne näkyvät esimerkiksi seuraavasti viitaten edellä oleviin if-lausekkeisiin:&lt;br /&gt;
 [groups] =&amp;gt; Array ( [0] =&amp;gt; 2 )&lt;br /&gt;
 [properties] =&amp;gt; Array ( [membership] =&amp;gt; opiskelijajäsen )&lt;br /&gt;
 &lt;br /&gt;
== Kommentointi ==&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
{* Kommentti tähän joka ei näy loppukäyttäjän lähdekoodissa *}&lt;br /&gt;
&amp;lt;!-- HTML kommentti joka näkyy loppukäyttäjän lähdekoodissa --&amp;gt;&lt;br /&gt;
{* Useammalla&lt;br /&gt;
   rivillä&lt;br /&gt;
*}&lt;br /&gt;
&lt;br /&gt;
{*********************************************************&lt;br /&gt;
Teksti tähän&lt;br /&gt;
**********************************************************}&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Tietojen hakeminen omaan muuttujaan ==&lt;br /&gt;
Perusmuoto on käyttää foreach komentoa ja määritellä mistä muuttujasta haetaan ja mihin muuttujaan &lt;br /&gt;
 {foreach from=$muuttujajostahaetaan item=kohdemuuttuja}&lt;br /&gt;
&lt;br /&gt;
== Valmiit aliohjelmat (built-in functions) ==&lt;br /&gt;
: http://www.smarty.net/docsv2/en/language.builtin.functions.tpl&lt;br /&gt;
* Esimerkiksi {if}&lt;br /&gt;
* Valmiita aliohjelmia ei tulisi muuttaa.&lt;br /&gt;
* Osa aliohjelmista sisältää assign -attribuutin joka kerää aliohjelman tulokset nimettyyn mallipohjan muuttujaan&lt;br /&gt;
&lt;br /&gt;
=== Attribuutit ===&lt;br /&gt;
 {include file=&amp;#039;header.tpl&amp;#039;}&lt;br /&gt;
 {include file=&amp;#039;header.tpl&amp;#039; attrib_name=&amp;#039;attribuutin arvo&amp;#039;}&lt;br /&gt;
 {include file=$muuttujasta}&lt;br /&gt;
 {include file=#conf-tiedostosta ladattu muuttuja# title=&amp;#039;Teksti tähän&amp;#039;}&lt;br /&gt;
 {html_select_date display_days=yes}&lt;br /&gt;
 {mailto address=&amp;#039;nimi@osoite.fi&amp;#039;}&lt;br /&gt;
&lt;br /&gt;
=== Muuttujat attribuuteissa ===&lt;br /&gt;
 {func var=&amp;quot;teksti $muuttuja teksti&amp;quot;} huomioi $muuttuja&lt;br /&gt;
 {func var=&amp;quot;teksti $muuttuja[bar] teksti&amp;quot;} huomioi $muuttuja[bar]&lt;br /&gt;
 {func var=&amp;quot;teksti $muuttuja.bar teksti&amp;quot;} huomioi $muuttuja&lt;br /&gt;
 {func var=&amp;quot;teksti `$muuttuja.bar` teksti&amp;quot;} huomioi $muuttuja.bar&lt;br /&gt;
 {func var=&amp;quot;teksti `$muuttuja.bar` teksti&amp;quot;|escape}&lt;br /&gt;
&lt;br /&gt;
 {include file=&amp;quot;hakemistonimi/$mallipohjan_nimi.tpl&amp;quot;} korvaa malipohjan_nimi kohdan muuttujan arvolla&lt;br /&gt;
 {include file=&amp;#039;hakemistonimi/$mallipohjan_nimi.tpl&amp;#039;} ei korvaa mallipohjan_nimi kohtaa&lt;br /&gt;
&lt;br /&gt;
* Boolean arvoja: true, on, yes ja false, off, no&lt;br /&gt;
&lt;br /&gt;
== Custom aliohjelmat (functions) ==&lt;br /&gt;
: http://www.smarty.net/docsv2/en/language.custom.functions.tpl&lt;br /&gt;
* Esimerkiksi {html_options}&lt;br /&gt;
* Aliohjelmia, jotka implementoidaan lisäosilla (plugin). Näitä voi muokata tai luoda lisää.&lt;br /&gt;
* Et voi käyttää nimiä, jotka sisältyvät Smartyyn&lt;br /&gt;
&lt;br /&gt;
== If ==&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
 {if $logged_in}&lt;br /&gt;
     Hei, &amp;lt;font color=&amp;quot;{#fontColor#}&amp;quot;&amp;gt;{$name}!&amp;lt;/font&amp;gt;&lt;br /&gt;
 {else}&lt;br /&gt;
     Moi, {$name}&lt;br /&gt;
 {/if}&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Conf-tiedosto ==&lt;br /&gt;
* Tallenna esm. seruaava tiedostoon tiedostonimi.conf&lt;br /&gt;
 muuttuja = &amp;quot;Teksti tähän&amp;quot;&lt;br /&gt;
* Sivupohjassa kutsu seuraavasti (kaksi eri vaihtoehtoa):&lt;br /&gt;
 {config_load file=&amp;#039;tiedostonimi.conf&amp;#039;}&lt;br /&gt;
 &amp;lt;title&amp;gt;{#muuttuja#}&amp;lt;/title&amp;gt;&lt;br /&gt;
 &amp;lt;title&amp;gt;{$smarty.config.muuttuja}&amp;lt;/title&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Päivämäärä ==&lt;br /&gt;
 {$smarty.now|date_format:&amp;quot;%Y/%m/%d&amp;quot;}&lt;br /&gt;
&lt;br /&gt;
== Tuonti PHP:stä ==&lt;br /&gt;
Muuttujan tuonti&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
PHP koodi:&lt;br /&gt;
&amp;lt;?php&lt;br /&gt;
$smarty = new Smarty();&lt;br /&gt;
$smarty-&amp;gt;assign(&amp;#039;nimi&amp;#039;, &amp;#039;Matti&amp;#039;);&lt;br /&gt;
$smarty-&amp;gt;display(&amp;#039;tiedostonimi.tpl&amp;#039;);&lt;br /&gt;
?&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Sivupohjakoodi nimeltä tiedostonimi.tpl:&lt;br /&gt;
Hei {$nimi}&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
Taulukon tuonti&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
&amp;lt;?php&lt;br /&gt;
$smarty-&amp;gt;assign(&amp;#039;Taulukko&amp;#039;,&lt;br /&gt;
    array(&amp;#039;arvo1&amp;#039; =&amp;gt; &amp;#039;123456789&amp;#039;,&lt;br /&gt;
          &amp;#039;arvo2&amp;#039; =&amp;gt; &amp;#039;Teksti tähän&amp;#039;,&lt;br /&gt;
          &amp;#039;arvo3&amp;#039; =&amp;gt; array(&amp;#039;alaarvo1&amp;#039; =&amp;gt; &amp;#039;1234567&amp;#039;,&lt;br /&gt;
                           &amp;#039;alaarvo2&amp;#039; =&amp;gt; &amp;#039;12345&amp;#039;)&lt;br /&gt;
                           )&lt;br /&gt;
         );&lt;br /&gt;
$smarty-&amp;gt;display(&amp;#039;tiedostonimi.tpl&amp;#039;);&lt;br /&gt;
?&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Sivupohjakoodi nimeltä tiedostonimi.tpl:&lt;br /&gt;
{$Taulukko.arvo2}&amp;lt;br /&amp;gt;&lt;br /&gt;
{$Taulukko.arvo3.alaarvo2}&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
&amp;lt;?php&lt;br /&gt;
$smarty-&amp;gt;assign(&amp;#039;Taulukko&amp;#039;, array(&lt;br /&gt;
                           &amp;#039;123456789&amp;#039;,&lt;br /&gt;
                           &amp;#039;Teksti tähän&amp;#039;,&lt;br /&gt;
                            array(&amp;#039;1234567&amp;#039;,&lt;br /&gt;
                                  &amp;#039;12345&amp;#039;)&lt;br /&gt;
                            ));&lt;br /&gt;
$smarty-&amp;gt;display(&amp;#039;index.tpl&amp;#039;);&lt;br /&gt;
?&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Sivupohjakoodi nimeltä tiedostonimi.tpl:&lt;br /&gt;
{$Taulukko[1]}&amp;lt;br /&amp;gt; tulostaa Teksti tähän&lt;br /&gt;
{$Taulukko[2][1]} tulostaa 12345&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Lomakkeen käsittely ==&lt;br /&gt;
Seuraava esimerkki tulostaa nettisivulle lomakkeen, johon käyttäjä syöttää arvoja. Kun käyttäjä on lähettänyt lomakkeen, php laskee niitä ja näyttää toisella nettisivulle tuloksen &lt;br /&gt;
* Katso yllä eri vaihtoehdot miten sinulla pitää olla käytössä hakemistoja. &lt;br /&gt;
* HUOM! Jos tiedostopolku ei ole oikein Smarty.class.php -hakemistoon tulostuu todennäköisesti tyhjä valkoinen sivu. &lt;br /&gt;
* Muutoin voit käyttää apuna vianetsintä -apuria, joka näkyy oheisesta koodista.&lt;br /&gt;
* Tässä esimerkissä polku on OSX localhost palvelimella Sites -hakemisto.&lt;br /&gt;
* On myös ilmeisesti muita Smartyfunktioita, joilla lomakkeen voi tehdä. Tämän esimerkin tarkoitus on osoittaa kuinka tällainen toiminto liitetään esimerkiksi kotisivuihin.&lt;br /&gt;
* index.tpl voi myös sijoittaa CMS Made Simplen sivulle, jolloin lomake tulostuu sivulta, ja se hakee tiedon hakemistosta, jossa laskuri.php on. &lt;br /&gt;
** Tästä puuttuu, miten vastaus tuodaan valkoisen sivun sijaan (jonne se kyllä tulee automaattisesti) kotisivun sisälle.&lt;br /&gt;
&lt;br /&gt;
 Tänne tullaan ja tästä kaikki alkaa&lt;br /&gt;
 /laskuri/index.php&lt;br /&gt;
 &lt;br /&gt;
 &amp;lt;?php&lt;br /&gt;
 require(&amp;#039;/Users/käyttäjänimi/Sites/cmsmadesimple/lib/smarty/libs/Smarty.class.php&amp;#039;);&lt;br /&gt;
 $smarty = new smarty();&lt;br /&gt;
 $smarty-&amp;gt;debugging = true; // Näyttää muuttujien arvot eri ikkunassa&lt;br /&gt;
 $smarty-&amp;gt;caching = true;&lt;br /&gt;
 $smarty-&amp;gt;cache_lifetime = 10;&lt;br /&gt;
 //$smarty-&amp;gt;testInstall(); // Järjestelmän polkutesti&lt;br /&gt;
 &lt;br /&gt;
 $smarty-&amp;gt;assign(&amp;quot;title&amp;quot;, &amp;quot;Sivun otsikko&amp;quot;); // Asettaa Smarty $title arvoksi Sivun otsikko&lt;br /&gt;
 &lt;br /&gt;
 $smarty-&amp;gt;display(&amp;#039;index.tpl&amp;#039;); // Tulostetaan kotisivulle&lt;br /&gt;
 ?&amp;gt;&lt;br /&gt;
&lt;br /&gt;
 Tämä määrittelee html-sivun aloituksen ja skandinaaviset merkit&lt;br /&gt;
 /laskuri/templates/header.tpl&lt;br /&gt;
 &lt;br /&gt;
 &amp;lt;!DOCTYPE html&amp;gt;&lt;br /&gt;
 &amp;lt;html lang=&amp;quot;fi-FI&amp;quot;&amp;gt;&lt;br /&gt;
 &amp;lt;head&amp;gt;&lt;br /&gt;
 &amp;lt;meta charset=&amp;quot;utf-8&amp;quot;&amp;gt;&lt;br /&gt;
 &amp;lt;title&amp;gt;{$title}&amp;lt;/title&amp;gt;&lt;br /&gt;
 &amp;lt;/head&amp;gt;&lt;br /&gt;
 &amp;lt;body&amp;gt;&lt;br /&gt;
&lt;br /&gt;
 Varsinainen html, mikä tulostaa nettiin vastauksen&lt;br /&gt;
 /laskuri/templates/index.tpl&lt;br /&gt;
 &lt;br /&gt;
 {include file=&amp;quot;header.tpl&amp;quot; title={$title}}&lt;br /&gt;
 &amp;lt;form action=&amp;quot;laskuri.php&amp;quot; method=&amp;quot;get&amp;quot;&amp;gt;&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;&amp;lt;h1&amp;gt;Otsikko&amp;lt;/h1&amp;gt;&lt;br /&gt;
 &amp;lt;p&amp;gt;Tämä laskuri laskee kaksi arvoa yhteen&amp;lt;/p&amp;gt;&lt;br /&gt;
 &amp;lt;p&amp;gt;Syötä arvot kenttiin ja paina Laske&amp;lt;/p&amp;gt;&lt;br /&gt;
 &amp;lt;p&amp;gt;Eka arvo &amp;lt;input id=&amp;quot;arvo1&amp;quot; type=&amp;quot;number&amp;quot; name=&amp;quot;arvo1&amp;quot; value=&amp;quot;20&amp;quot; size=&amp;quot;5&amp;quot; /&amp;gt;&amp;lt;/p&amp;gt;&lt;br /&gt;
 &amp;lt;p&amp;gt;Toka arvo &amp;lt;input id=&amp;quot;arvo2&amp;quot; type=&amp;quot;number&amp;quot; name=&amp;quot;arvo2&amp;quot; value=&amp;quot;30&amp;quot; size=&amp;quot;5&amp;quot; /&amp;gt;&amp;lt;/p&amp;gt;&lt;br /&gt;
 &amp;lt;p&amp;gt;&amp;lt;input type=&amp;quot;submit&amp;quot; name=&amp;quot;painike&amp;quot; value=&amp;quot;Laske&amp;quot; /&amp;gt;&amp;lt;/p&amp;gt;&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
 &amp;lt;/form&amp;gt;&lt;br /&gt;
 {include file=&amp;quot;footer.tpl&amp;quot;}&lt;br /&gt;
&lt;br /&gt;
 Tämä lopettaa html-sivun&lt;br /&gt;
 /laskuri/templates/footer.tpl&lt;br /&gt;
 &lt;br /&gt;
 &amp;lt;/body&amp;gt;&lt;br /&gt;
 &amp;lt;/html&amp;gt;&lt;br /&gt;
&lt;br /&gt;
 Tämä on varsinainen koodi joka tekee tässä laskennan&lt;br /&gt;
 /laskuri/laskuri.php&lt;br /&gt;
 &lt;br /&gt;
 &amp;lt;?php&lt;br /&gt;
 //include(&amp;quot;config.php&amp;quot;);&lt;br /&gt;
 if(isset($_GET))&lt;br /&gt;
 {&lt;br /&gt;
 // Noudetaan lomakkeen arvot muuttujiin&lt;br /&gt;
 $arvo1 = $_GET[&amp;quot;arvo1&amp;quot;];&lt;br /&gt;
 $arvo2 = $_GET[&amp;quot;arvo2&amp;quot;];&lt;br /&gt;
 &lt;br /&gt;
 // Tulostetaan lähtöarvot kotisivulle&lt;br /&gt;
 print (&amp;quot;Annetut arvot ovat:&amp;quot;.&amp;quot;&amp;lt;br&amp;gt;&amp;quot;);&lt;br /&gt;
 print &amp;quot;Eka arvo: &amp;quot;.$arvo1.&amp;quot;&amp;lt;br&amp;gt;&amp;quot;;&lt;br /&gt;
 print &amp;quot;Toka arvo: &amp;quot;.$arvo2.&amp;quot;&amp;lt;br&amp;gt;&amp;quot;.&amp;quot;&amp;lt;br&amp;gt;&amp;quot;;&lt;br /&gt;
 &lt;br /&gt;
 // Tehdään laskutoimitus&lt;br /&gt;
 ($vastaus = $arvo1 + $arvo2);&lt;br /&gt;
 &lt;br /&gt;
 // Tulostetaan tulokset kotisivulle&lt;br /&gt;
 print (&amp;quot;Vastaus: &amp;quot;.$vastaus);&lt;br /&gt;
 }&lt;br /&gt;
 ?&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Sekalaista ==&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
{include file=&amp;#039;header.tpl&amp;#039;}&lt;br /&gt;
{insert file=&amp;#039;sivupohja.tpl&amp;#039; title=&amp;#039;Teksti tähän&amp;#039;}&lt;br /&gt;
&lt;br /&gt;
{if $entry-&amp;gt;postdate}&lt;br /&gt;
	&amp;lt;div class=&amp;quot;NewsSummaryPostdate&amp;quot;&amp;gt;&lt;br /&gt;
		{$entry-&amp;gt;postdate|cms_date_format}&lt;br /&gt;
	&amp;lt;/div&amp;gt;&lt;br /&gt;
{/if}&lt;br /&gt;
&lt;br /&gt;
&amp;lt;select name=&amp;#039;company_id&amp;#039;&amp;gt;&lt;br /&gt;
  {html_options options=$companies selected=$company_id}&lt;br /&gt;
&amp;lt;/select&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Lähteitä ja linkkejä ==&lt;br /&gt;
: http://calguy1000.com/Blogs/12/60/basic-cms-template-development-skills.html&lt;br /&gt;
&lt;br /&gt;
[[Luokka:Tietokoneet]]&lt;/div&gt;</summary>
		<author><name>imported&gt;WikikkoSysop</name></author>
	</entry>
</feed>