PDA

View Full Version : Problem solving with the new template system


sheppardzwc
12-28-2009, 01:39 PM
Hey all,

With the new template system it's getting me confused. I want to grab a few fields from the database, assign them in a defined format on a string, and then register that string to be displayed in a sidebar. (Using SS' sidebar mod) I've got it mostly figured out, but it doesn't seem to be displaying. What do I need to do?

Here's my code;

// 1.0

$templater = vB_Template::create('rp_fh');

$rp_fh_grab_sql = $vbulletin->db->query_read("SELECT threadid,title,replycount,dateline FROM " . TABLE_PREFIX . "thread ORDER BY threadid DESC LIMIT 10");

while($rp_fh_row = $vbulletin->db->fetch_array($rp_fh_grab_sql)) {
$rp_fh_threadid = $rp_fh_row['threadid'];
$rp_fh_title = $rp_fh_row['title'];
$rp_fh_replycount = strval($rp_fh_row['replycount']);
$rp_fh_dateline = date($vbulletin->options['dateformat'] . ' ' . $vbulletin->options['timeformat'], $rp_fh_row['dateline']);
$rp_fh_printout_string = $rp_fh_printout_string . '<a href="showthread.php?t=' . $rp_fh_threadid . '">' . $rp_fh_title . '</a><br />' . $rp_fh_replycount . ' posts / ' . $rp_fh_dateline . PHP_EOL;
}

$templater->register('rp_fh_contents', $rp_fh_printout_string);
vB_Template::preRegister('ss_rightcolumn_contents' , array('rp_fh_contents' => $rp_fh_printout_string));


But when I try to use {vb:raw rp_fh_contents} in the column template nothing shows up. Any suggestions?

Thanks :)

Lynne
12-28-2009, 02:39 PM
What are you doing with the template rp_fh? You never rendered it. You created it, you registered a variable to be used in it, but you never finished the process by rendering it.

sheppardzwc
12-28-2009, 02:49 PM
What are you doing with the template rp_fh? You never rendered it. You created it, you registered a variable to be used in it, but you never finished the process by rendering it.
I want to use the variable $rp_fh_printout_string in the ss_rightcolumn_contents template. How can I do that? I guess I misunderstood the guide I read. Do I need to create a whole new template and then use it as a variable?

Lynne
12-28-2009, 02:56 PM
Not necessarily. But again I'll ask, what is the purpose of the template rp_fh? Do you need it? If not, why do you have anything to do with it in there?

Also, make sure the hook location you picked gets rendered before the column template is rendered or this won't work.

sheppardzwc
12-28-2009, 03:00 PM
Not necessarily. But again I'll ask, what is the purpose of the template rp_fh? Do you need it? If not, why do you have anything to do with it in there?

Also, make sure the hook location you picked gets rendered before the column template is rendered or this won't work.
Basically, I want to pull these fields from the database, put them in a string, and then let that string be accessed in the column template. How can I do that? I thought you had to generate a template (the purpose of rp_fh) and then include that template. Clarification? :p

Lynne
12-28-2009, 03:06 PM
You only need to generate a template if you are going to use the template. You don't use it in your code, so why bother to generate it? Get rid of all your template stuff except the preregistering since I see no purpose for it since you never render/use the template at all.

Your code should work if you are preregistering the variable prior to the column template being rendered.

sheppardzwc
12-28-2009, 03:38 PM
You only need to generate a template if you are going to use the template. You don't use it in your code, so why bother to generate it? Get rid of all your template stuff except the preregistering since I see no purpose for it since you never render/use the template at all.

Your code should work if you are preregistering the variable prior to the column template being rendered.
Thank you Lynne! Wonderful as always.

I just edited the SS plugin when it rendered the templates and added the $templater->register() function. Thank you again. :)