QuickFormのcontroller でのFreeze
class ActionFreeze extends HTML_QuickForm_Action { function perform(&$page, $actionName) { $page->isFormBuilt() or $page->buildForm(); // page is invalid: don't go further if($page->validate()) $page->freeze(); return $page->handle('display'); } }
最初どうやって,次のページでの処理をしてやればいいかわからんかったけど,
performの中にページの描画を実行してやればよかったみたい.
てっきり,先にperformを実行して,そのあとbuildFormされるのかなとか思ってた.
ただひとつ気になるのは
HTML_QuickForm_Action_Next とかHTML_QuickForm_Action_Directとかには
$pageName = $page->getAttribute('id'); $data =& $page->controller->container(); $data['values'][$pageName] = $page->exportValues(); $data['valid'][$pageName] = $page->validate();
って書いてあるんだよね.これの意味がまだわかっていない.
たぶん,HTML_QuickForm_Action_Jumpとかでページ切り替わるときにsessionに
値を保存して,次のページに渡しているだけだと思うんだけどね.