1 <?php
2
3 4 5 6 7 8 9 10
11
12 namespace Icybee\Modules\Forms;
13
14 use ICanBoogie\Errors;
15 use ICanBoogie\Operation;
16
17 18 19
20 class DefaultsOperation extends Operation
21 {
22 23 24
25 protected function get_controls()
26 {
27 return array
28 (
29 self::CONTROL_AUTHENTICATION => true,
30 self::CONTROL_PERMISSION => Module::PERMISSION_CREATE
31 )
32
33 + parent::get_controls();
34 }
35
36 37 38
39 protected function validate(Errors $errors)
40 {
41 if (!$this->key)
42 {
43 $errors['key'] = 'Missing modelid';
44
45 return false;
46 }
47
48 return true;
49 }
50
51 52 53 54
55 protected function process()
56 {
57 global $core;
58
59 $modelid = $this->key;
60 $models = $core->configs->synthesize('formmodels', 'merge');
61
62 if (empty($models[$modelid]))
63 {
64 \ICanBoogie\log_error("Unknown model.");
65
66 return;
67 }
68
69 $model = $models[$modelid];
70 $model_class = $model['class'];
71
72 if (!method_exists($model_class, 'get_defaults'))
73 {
74 \ICanBoogie\log_success("The model doesn't have defaults.");
75
76 return false;
77 }
78
79 return call_user_func(array($model_class, 'get_defaults'));
80 }
81 }