Categories > TinyButStrong general >

Can anyone help with that? ondata=customfunc

The forum is closed. Please use Stack Overflow for submitting new questions. Use tags: tinybutstrong , opentbs
By: Manos
Date: 2009-09-06
Time: 20:16

Can anyone help with that? ondata=customfunc

Hello,

im having a problem using the custom function on the ondata event.
i have the following array in a file called thearray.php

$test = array(
1 => "blue",
2 => "green",
3 => "red",
4 => "white"
);

which i include in my script that loads the template. Here is the script:

require_once('testdir/thearray.php');

function getColor($BlockName,&$CurrRec,$RecNum) {
    $CurrRec['color_name'] = $test[$CurrRec['colorId']];
}

$tbs = new clsTinyButStrong;
$tbs->LoadTemplate('tpl/home.html');
$tbs->MergeBlock('colorlist', 'tbssql', 'SELECT id FROM colors');
$tbs->Show();

On the HTML side i have the following:

<ul>
  <li class="arrow">
    <a href="showColors.php?colId=[colorlist.id;block=li;ondata=getColorName]">[colorlist.color_name]
    </a>
  </li>
</ul>

When i run this im getting no color names.

After some tests i figured that my function doesnt see the array (out of scope maybe??)

The goal is to translate the color ids that i keep in the DB with the color names that i keep in a PHP array. Finally show a list of color names on the page based on the color ids.

Any clue what im doing wrong or how to achieve this?

Thanks anyway!
By: Manos
Date: 2009-09-06
Time: 20:31

Re: Can anyone help with that? ondata=customfunc

2 corrections, sorry for that..

I forgot to say that i also include the following files in the script:

require_once('inc/dbConfig.php');
require_once('inc/tbs.php');

and a correction in the function code,

function getColor($BlockName,&$CurrRec,$RecNum) {
   $CurrRec['color_name'] = $test[$CurrRec['id']];
}

The correct script looks like this

require_once('inc/dbConfig.php');
require_once('inc/tbs.php');
require_once('testdir/thearray.php');

function getColor($BlockName,&$CurrRec,$RecNum) {
   $CurrRec['color_name'] = $test[$CurrRec['id']];
}

$tbs = new clsTinyButStrong;
$tbs->LoadTemplate('tpl/home.html');
$tbs->MergeBlock('colorlist', 'tbssql', 'SELECT id FROM colors');
$tbs->Show();

I tested the db connection and works fine. I cant see what am i missing here :-|
By: TomH
Date: 2009-09-07
Time: 01:49

Re: Can anyone help with that? ondata=customfunc

You have ondata=getColorName

...but you have function getColor()

Is that correct
By: Manos
Date: 2009-09-07
Time: 08:31

Re: Can anyone help with that? ondata=customfunc

You are right. I checked it and i had this correct on my server. Still i get nothing when i merge block.

Can anyone suggest a solution on how to do this?
By: TomH
Date: 2009-09-07
Time: 12:16

Re: Can anyone help with that? ondata=customfunc

Can you post the html source for the result page that you are getting. please?
By: Manos
Date: 2009-09-07
Time: 19:11

Re: Can anyone help with that? ondata=customfunc

This is what i get:
<ul>
  <li><a href="showColors.php?colId=1"></a></li>
  <li><a href="showColors.php?colId=2"></a></li>
  <li><a href="showColors.php?colId=3"></a></li>
  <li><a href="showColors.php?colId=4"></a></li>
</ul>

Each of the lines should have been like this:
<li><a href="showColors.php?colId=1">blue</a></li>
...

Inside the custom function if i change the code from this:
$CurrRec['color_name'] = $test[$CurrRec['id']];

to this:
$CurrRec['color_name'] = $CurrRec['id'];

it works as expected. I get this:
<ul>
  <li><a href="showColors.php?colId=1">1</a></li>
  <li><a href="showColors.php?colId=2">2</a></li>
  <li><a href="showColors.php?colId=3">3</a></li>
  <li><a href="showColors.php?colId=4">4</a></li>
</ul>

Can you suggest a way to solve this? I really thing i miss something simple here..
By: TomH
Date: 2009-09-08
Time: 01:22

Re: Can anyone help with that? ondata=customfunc

Maybe just...
function getColor($BlockName,&$CurrRec,$RecNum) {
   global $test;
   $CurrRec['color_name'] = $test[$CurrRec['id']];
}
By: Manos
Date: 2009-09-08
Time: 07:38

Re: Can anyone help with that? ondata=customfunc

yep, it works! Thanks man. This is my first project using TBS, i totally agree with the title Tiny But Strong :)