on before render
on after render
return function() {
	return form((array)$_POST + ['form_action' => url('/@object/@action')])
		->on_post(function(){
			common()->message_info('on post');
		})
		->on_before_render(function(){
			common()->message_info('on before render');
		})
		->on_after_render(function(){
			common()->message_info('on after render');
		})
		->on_validate_error(function(){
			common()->message_info('on validate error');
		})
		->on_before_validate(function(){
			common()->message_info('on before validate');
		})
		->on_after_validate(function(){
			common()->message_info('on after validate');
		})
		->on_before_update(function(){
			common()->message_info('on before update');
		})
		->on_after_update(function(){
			common()->message_info('on after update');
			cache_del('forum_categories');
		})
		->validate([
			'name'	=> 'trim|required',
		])
		->db_insert_if_ok('forum_categories', ['name','desc','order','status'])
		->text('name')
		->textarea('desc', 'Description')
		->number('order')
		->active_box('status')
		->save()
	;
};