0

うまくいけば、誰かがこれで私を助けてくれます。私は 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 で減価償却されたと思います。だれかが、その置換の正しい方向、またはこれを再び機能させる方法を教えてもらえますか?

どうもありがとう

4

1 に答える 1