2

I have came across my first issue and it has to deal with PHP in smarty. I read the smarty manual where it said to include the SmartyBC.class.php file instead of the regular Smarty.class.php file and i did change the default file to the BC file. I went into my .tpl file and add {php}Messages::displayMsg();{/php} to show my "wrong password" message when i enter incorrect details to test to see if it works. I get this:

Fatal error: Uncaught --> Smarty Compiler: Syntax error in template "file:/var/www/falonde.local/public_html/views/Admin/login.tpl" on line 51 "{php}" {php}{/php} tags not allowed. Use SmartyBC to enable them <-- thrown in /var/www/falonde.local/public_html/libs/Smarty/sysplugins/smarty_internal_templatecompilerbase.php on line 51

I am including it. Its included, smarty works if i remove the php code. But it won't show my error message at all. It gives me that. And i have included SmartyBC.class.php where i included the Smarty.class.php before. What am i doing wrong?

braaterAfrikaaner
  • 1,072
  • 10
  • 20
  • 1
    is your code using `new Smarty()` or `new SmartyBC()` ? https://www.smarty.net/docs/en/bc.tpl – Scuzzy Jan 29 '18 at 02:48
  • Heyo! Thanks for your comment. Just found out that i needed to use SmartyBC() so i changed it. But my messages are still not being shown. I no longer get the error, but my error bootstrap notification is still not showing up. I even ran it through a .php file and it worked. Just not in the smarty.tpl.... whats going on you think/ –  Jan 29 '18 at 02:49

1 Answers1

2

Where you previously had

require_once('path/to/smarty/libs/Smarty.class.php');
$smarty = new Smarty();

change it to

require_once('path/to/smarty/libs/SmartyBC.class.php');
$smarty = new SmartyBC();

https://www.smarty.net/docs/en/bc.tpl

Scuzzy
  • 12,186
  • 1
  • 46
  • 46
  • I just did that a few seconds ago, but my error messages are not showing up. New issue. It shows up when i do "Messages::displayMsg();" in a regular php file but with the template, its still not showing my message. –  Jan 29 '18 at 02:50
  • 1
    If this solves the `{php}{/php} tags not allowed` issue, then anything further is a new stack overflow question. – Scuzzy Jan 29 '18 at 02:51
  • Thanks! Your answer will be marked as correct as soon as it gives me the chance. lolol –  Jan 29 '18 at 02:52
  • Whatever you're doing I would strongly recommend avoiding `{php}` tags in smarty as much as possible, you could assign your `Messages` object to smarty and still do `{$Messages->displayMsg()}` if its a non-static method? – Scuzzy Jan 29 '18 at 02:54
  • https://www.smarty.net/docs/en/advanced.features.static.classes.tpl What version of smarty are you using? – Scuzzy Jan 29 '18 at 02:56
  • Let us [continue this discussion in chat](http://chat.stackoverflow.com/rooms/164061/discussion-between-scuzzy-and-jarrod-estepp). – Scuzzy Jan 29 '18 at 02:58