Here is the source code and to install procedure for a small Joomla application that works with the TBS plug-in.
This application present a search area, and the result of the search trough a table in the Joomla database.
But it also:
- checks the TBS version
- allows template which are a full HTML page
- allows one CSS style sheet in the template
- allows additional both GET and POST parameters
Installation:
-------------
1) create a folder "applications/simple_search" under the Joomla folder.
2) put the following files
3) create a new Joomla article with the following contents: {tbs}script=applications/simple_search/index.php{/tbs}
4) in the TBS plug-in parameters (under Joomla plug-ins), add the article id to the hallowed ids.
Files:
------
index.php
| <?php 
 /* Simple Search application
 Skrol29, 2012-03-01
 */
 
 if (!isset($TBS)) exit("This application can work only under Joomla.");
 
 // Check TBS version
 if (version_compare($TBS->Version,'3.6.0')<0) {
 $TBS->Source = utf8_encode("This applciation require TinyButStrong Template Engine version 3.6.0 ou higher. The installed version is ".$TBS->Version.".");
 return; // back to Joomla
 }
 
 // Retrieve user parameters
 global $what;
 $what = isset($_REQUEST['what']) ? $_REQUEST['what'] : ''; // text to search
 
 // Build The URL to the current article
 global $art_url;
 $art_id = $TBS->JoomlaArticle->id;
 $art_url = JRoute::_(ContentHelperRoute::getArticleRoute($art_id));
 $art_url .= (strpos($art_url,'?')===false) ? '?' : '&'; // ensure compatibility with the Short URL mode of Joomla
 
 
 // Load the template
 $TBS->JoomlaScript = $PrmLst['script'];
 f_load_template($TBS, 'tpl_main.html', 'Simple Search');
 
 if ($what=='') {
 // nothing to search
 $TBS->MergeBlock('c', 'clear');
 } else {
 $sql = "
 SELECT id, name
 FROM jos_components
 WHERE (name LIKE '%".str_replace("'", "''", $what)."%')
 ORDER BY id
 ";
 $TBS->MergeBlock('c', 'mysql', $sql);
 }
 
 /* END : do not use exit() nore TBS->Show() in order to let Joomla continue the process
 */
 return; // go back to Joomla
 
 // ------------------------------------------------------
 // ------------------------------------------------------
 
 function f_load_template(&$TBS, $modele, $titre='') {
 
 if ($titre!=='') $TBS->JoomlaArticle->title = utf8_encode($titre);
 
 $TBS->LoadTemplate(dirname(__FILE__).'/'.$modele);
 
 // search and delete the <body> element
 $p = strpos($TBS->Source, '<body');
 if ($p!==false) {
 $p = strpos($TBS->Source, '>', $p);
 if ($p!==false) $TBS->Source = substr($TBS->Source, $p+1);
 }
 $p = strpos($TBS->Source, '</body');
 if ($p!==false) $TBS->Source = substr($TBS->Source, 0, $p);
 
 // Add the CSS
 $TBS->Source = '<link rel="stylesheet" href="'.dirname($TBS->JoomlaScript).'/style.css" type="text/css" />'."\r\n".$TBS->Source;
 
 }
 
 | 
tpl_main.html
| <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd"> <html xmlns="http://www.w3.org/1999/xhtml">
 <head>
 <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
 <title>Search</title>
 <link href="style.css" rel="stylesheet" type="text/css" />
 </head>
 <body>
 <form action="[onshow.art_url;htmlconv=no]" method="post">
 Search for:
 <input type="text" name="what" value="[onshow.what]"/>
 <input type="submit" name="btn_ok" value="OK" />
 </form>
 <p>Result:</p>
 <table border="1" cellspacing="0" cellpadding="4" class="btable">
 <tr>
 <th bgcolor="#999999">Id</th>
 <th bgcolor="#999999">Name</th>
 </tr>
 <tr>
 <td>[c.id;block=tr]</td>
 <td>[c.name]</td>
 </tr>
 <tr class="nodata">
 <td colspan="2">[c;block=tr;nodata]No item found</td>
 </tr>
 </table>
 </body>
 </html>
 
 
 | 
style.css
| .msg-ok { color: #060;
 }
 .msg-err {
 color: #F00;
 }
 .nodata {
 background-color:#F96;
 }
 
 table.btable {
 width:auto;
 }
 table.btable td, th {
 padding:2px;
 }
 table.btable a {
 text-decoration:none;
 }
 
 
 |