希望有人可以帮助我。我在 CMSMS 中使用 smarty,并且在我的页面中运行了一个称为用户定义标签的东西。这包含以下代码:
$db = cmsms()->GetDb();
$menu = $smarty->get_template_vars('page');
$user_id = $smarty->get_template_vars('userid');
if (!isset($user_id)) {
$user_id = -1;
}
// Getting menu items from DB
$query = 'SELECT * FROM '. cms_db_prefix() .'module_tools_options
WHERE active = 1 AND user_id = ? AND menu = ?
ORDER BY sort';
$dbresult = $db->Execute($query, array($user_id, $menu));
while ($dbresult && $row = $dbresult->FetchRow()) {
$smarty->_compile_source('preprocess template', $row['title'], $_compiled);
@ob_start();
$smarty->_eval('?>' . $_compiled);
$result = @ob_get_contents();
@ob_end_clean();
echo '<li id="menu_' . $row['option_id'] . '">' . $result . "</li>\n";
}
我已经升级了 CMSMS 安装,所以它现在运行 smarty 3,这破坏了我的页面。我收到以下错误:
/lib/smarty/sysplugins/smarty_internal_templatebase.php:调用未知方法“_compile_source”。
我猜 Compile Source 方法在 Smarty 3 中已经被贬值了。谁能指出我正确的替换方向或让它再次工作的方法?
非常感谢