Omia Interface tageja voi ohjelmoida millä tahansa Internetissä käytetyllä ohjelmointikielellä, esim. PHP:lla, ASP:lla tai Rubylla. Oman tagin ohjelmoimiseksi tarvitset erillisen palvelimen tai webhotellin, jossa on tuki ohjelmointikielelle sekä tietokannalle mikäli toteutat tietokantapohjaisen tagin. Oman Interface-tagin lähdekoodeja ei siis tallenneta MyCashflow palveluun eikä tageilla ole suoraa pääsyä verkkokaupan tietokantaan.
Toimintaperiaate on yksinkertainen.
Esimerkiksi {HttpGet(url:'http://www.yritys.fi/tiedosto.php',action:'showComments')} lähettää HTTP protokollan mukaisen GET kutsun osoitteeseen http://www.yritys.fi/tiedosto.php?action=showComments. {HttpPost} tagi toimii vastaavalla tavalla, mutta lähettää parametrit POST-kutsuna.
Voit lisätä tagiin rajattomasti attribuutteja, jotka kaikki välitetään url-attribuuttina antamaasi osoitteeseen. Lisäksi MyCashflow lisää jotain attribuutteja mukaan. Esimerkiksi jos tagia käytetään tuotekortilla, niin mukaan liitetään automaattisesti parametrit ProductID=id, CategoryID=id ja MainCategoryID=id. Lopullinen palvelimellesi lähtevä kutsu on siten:
http://www.yritys.fi/tiedosto.php?action=showComments&ProductID=id&CategoryID=id&MainCategoryID=id
- Ohjelmoi http://www.yritys.fi/tiedosto.php osoite palauttamaan standardia HTML-koodia, joka näkyy verkkokaupassa
Oman PHP-tiedoston, tai mitä tahansa kieltä käytätkin, toiminnalle ei ole muita vaatimuksia, kuin että sen täytyy palauttaa HTML-koodia.
Case esimerkki: Kommentoinnin toteuttaminen
Seuraavassa case esimerkissä käydään läpi kommentointi-ominaisuuden toteuttaminen verkkokauppaan käyttäen {HttpGet} tagia. Esimerkissä käydään läpi ominaisuuden rakenne ja toimintaperiaate, mutta varsinaiseen PHP-koodiin ei syvennytä kovinkaan tarkasti. Case esimerkki auttaa hahmottamaan tagien hyödyntämistä käytännössä eikä tarkoitus ole tarjota valmista lähdekoodia.
Esimerkissä www.yritys.fi -palvelimella sijaitsee kaksi tiedostoa, joista toinen, kommentoi.php, hoitaa kommentointilomakkeen näyttämisen ja tallentamisen tietokantaan ja toinen, kommentit.php, tulostaa kommentit.
Kommenttien lisääminen tietokantaan
product.html sivupohjaan lisätään tagi:
{HttpGet(url:'http://www.yritys.fi/kommentoi.php')}
Kun vierailija lataa verkkokaupan tuotesivun haetaan tagin tilalle HTML-koodi osoitteesta:
http://www.yritys.fi/kommentoi.php?ProductID=id&CategoryID=id&MainCategoryID=id
kommentoi.php:
<?php
include("config.php");
if( isset($_POST["ProductID"]) && isset($_POST["Comment"]) && !empty($_POST["Comment"]) ) {
/* Kommentin tallennus tietokantaan */
// Tallennuksen jälkeen ohjataan takaisin tuotesivulle
header("location:http://yritys.mycashflow.fi/product/".$_POST["ProductID"]."/");
}elseif( isset($_GET["ProductID"]) ){
/* Näytetään kommentointilomake */
?>
<form action="http://www.yritys.fi/kommentoi.php" method="post">
<input type="hidden" name="ProductID" value="<?= $_GET["ProductID"] ?>" class="Hidden" />
<div class="FormItem">
<label for="Comment">Kommentti</label>
<textarea name="Comment" id="Comment" rows="10" cols="50"></textarea>
</div>
<div class="FormItem SubmitItem">
<input type="submit" name="AddComment" value="Lisää kommentti" />
</div>
</form>
<?php
}
?>
kommentoi.php tiedosto palauttaa <form> elementin kommentin lisäämiseksi, tai tallentaa kommentin tietokantaan ja ohjaa kävijän takaisin tuotesivulle.
Kommenttien näyttäminen verkkokaupassa
product.html sivupohjaan lisätään tagi:
{HttpGet(url:'http://www.yritys.fi/kommentit.php')}
Kun vierailija lataa verkkokaupan tuotesivun haetaan tagin tilalle HTML-koodi osoitteesta:
http://www.yritys.fi/kommentit.php?ProductID=id&CategoryID=id&MainCategoryID=id
kommentit.php:
<?php
include("config.php");
if( isset($_GET["ProductID"]) ) {
/* Haetaan kommentit tietokannasta */
$sql = "SELECT * FROM comments WHERE productid = '".mysql_real_escape_string($_GET["ProductID"])."' ORDER BY date ASC";
$result = mysql_query($sql);
if($result && mysql_num_rows($result) > 0) {
while($CommentRow = mysql_fetch_object($result)) {
?>
<div class="Comment">
<p><?= $CommentRow->Comment ?></p>
</div>
<?php
}
}
}
?>
kommentit.php tiedosto tarkistaa, että GET-parametri ProductID on annettu ja etsii sen perusteella kommentit tietokannasta. Mikäli kommentteja löytyy ne tulostetaan ja näytetään verkkokaupan tuotesivulla {HttpGet} tagin paikalla.
