What do you mean by "proper template engine"? What roundcube has is perfectly fine. There's no need to hunker down and rework the entire code to use SMARTY or any other PHP templating system, or to use a different one. The one we have works, and works well.
If you go back in the history of the list and search for a message written by me about variable tags, I show you how to implement it. I'm not sure of the exact date, or even what address it came from, but I know I had it implemented to search almost every variable available.
Well, found the message ( http://lists.roundcube.net/mail-archive/dev/2006-08/0000128.html ) but since the forum isn't up currently (still fighting with my provider) it's not available. So here is a way to add the functionality you seek.
In /program/include/rcmail_template.inc if you scroll to around line 498 you should see an ending "case" block for the case "object". Just add this after the "break;" and before the "}":
case 'var':
$var = $attrib['name'];
if(substr($var, 0, 1) == '$')
$var = substr($var, 1);
if(isset($$var))
{
if(is_array($$var))
return print_r($$var, true);
elseif(is_bool($$var))
return ($$var) ? 'true' : 'false';
else
return $$var;
}
else
{
global $$var;
if(isset($$var))
{
if(is_array($$var))
return print_r($$var, true);
elseif(is_bool($$var))
return ($$var) ? 'true' : 'false';
else
return $$var;
}
else
return $var.' was not found.';
}
break;
Then in your template, just add something like this: <roundcube:var name="variableName" />
I tested with _SESSION and $_SESSION and both worked flawlessly ;) Hope that helps. Maybe Thomas or Till will add this small feature in (after they security check of course!!).
~Brett
Chris Fordham wrote:
On Fri, 14 Sep 2007 16:23:34 +1000, Thomas Bruederli roundcube@gmail.com
wrote:Jorge Asch wrote:
How would I print out a variable on a template.
Such a feature is not available yet. There are some hard-coded properties like the username that you can access from within the template.
For example, I would like to display a text with the user's email address, or display a text with the currently choosen language setting.
For the current user name it would be <roundcube:object name="username" />
For a generic solution we could probably provide access to config, env
and request variables using the same syntax as for contitional tags. You
could then access the language something like this: <roundcube:var name="env:language" />But this still has to be implemented. We've also planned to enable PHP
code in RoundCube templates.Can you we use a proper template engine and no PHP, stick to principle?
Regards, Thomas _______________________________________________ List info: http://lists.roundcube.net/dev/
List info: http://lists.roundcube.net/dev/