1 <?php |
1 <?php |
2 |
2 |
3 class Opiniarbo extends Controller { |
3 class Opiniarbo extends Controller { |
4 |
4 |
5 function index() |
5 function Opiniarbo() |
6 { |
6 { |
|
7 parent::Controller(); |
|
8 $this->load->library('form_validation'); |
7 $this->load->library('aulib'); |
9 $this->load->library('aulib'); |
8 $this->load->library('parser'); |
10 $this->load->library('parser'); |
9 $this->load->helper('form'); |
11 $this->load->helper('form'); |
|
12 $this->load->model('opiniarbo_model'); |
|
13 } |
10 |
14 |
11 $data['logindata'] = $this->aulib->getLoginLink(); |
15 function index() |
12 $this->parser->parse('arbo', $data); |
16 { |
|
17 $mainassert = $this->uri->segment(3, -1); |
|
18 $parserdata['logindata'] = $this->aulib->getLoginLink(); |
|
19 if ($mainassert == -1) |
|
20 { |
|
21 // Managing heads |
|
22 $this->form_validation->set_rules('text', 'Aserta teksto', 'required|min_length[1]'); |
|
23 $this->form_validation->set_rules('value', 'Valoro', 'callback__value_check'); |
|
24 $this->form_validation->set_rules('context', 'Context', 'required|min_length[0]'); |
|
25 |
|
26 if ($this->form_validation->run()) |
|
27 { |
|
28 $dbdata['assert'] = $this->input->post('text'); |
|
29 $dbdata['value'] = $this->input->post('value')/20.+0.5; |
|
30 $dbdata['context'] = $this->input->post('context'); |
|
31 $this->opiniarbo_model->insert_assertion($this->aulib->getSessionId(), |
|
32 $dbdata); |
|
33 $this->opiniarbo_model->recalculate(); |
|
34 } |
|
35 $parserdata['asserts'] = $this->opiniarbo_model->get_my_heads($this->aulib->getSessionId()); |
|
36 foreach($parserdata['asserts'] as &$row) |
|
37 { |
|
38 if ($row->value != NULL) |
|
39 $row->value = ($row->value - 0.5) * 20; |
|
40 if ($row->calc_value != NULL) |
|
41 $row->calc_value = $row->calc_value * 10; |
|
42 } |
|
43 $this->parser->parse('arbo_heads', $parserdata); |
|
44 } |
|
45 else |
|
46 { |
|
47 // Assert chosen |
|
48 $parserdata['mainassert'] = $mainassert; |
|
49 |
|
50 $this->form_validation->set_rules('text', 'Aserta teksto', 'required|min_length[1]'); |
|
51 $this->form_validation->set_rules('value', 'Valoro', 'callback__value_check'); |
|
52 $this->form_validation->set_rules('influence', 'Influo', 'callback__influence_check'); |
|
53 $this->form_validation->set_rules('context', 'Context', 'required|min_length[0]'); |
|
54 |
|
55 if ($this->form_validation->run()) |
|
56 { |
|
57 $dbdata['assert'] = $this->input->post('text'); |
|
58 $dbdata['value'] = $this->input->post('value')/20. + 0.5; |
|
59 $dbdata['influence'] = $this->input->post('influence')/10.; |
|
60 $dbdata['context'] = $this->input->post('context'); |
|
61 $dbdata['parent'] = $mainassert; |
|
62 $this->opiniarbo_model->insert_assertion($this->aulib->getSessionId(), |
|
63 $dbdata); |
|
64 $this->opiniarbo_model->recalculate(); |
|
65 } |
|
66 $assertdata = $this->opiniarbo_model->get_assert($mainassert, $this->aulib->getSessionId()); |
|
67 $parserdata['maintext'] = $assertdata['assert']; |
|
68 $parserdata['mainvalue'] = $assertdata['value']; |
|
69 if ($parserdata['mainvalue'] != NULL) |
|
70 $parserdata['mainvalue'] = ($parserdata['mainvalue'] - 0.5)*20; |
|
71 $parserdata['maininfluence'] = $assertdata['influence']; |
|
72 if ($parserdata['maininfluence'] != NULL) |
|
73 $parserdata['maininfluence'] = $parserdata['maininfluence'] * 10; |
|
74 $parserdata['maincontext'] = $assertdata['context']; |
|
75 $parserdata['maincalc_value'] = $assertdata['calc_value']; |
|
76 if ($parserdata['maincalc_value'] != NULL) |
|
77 $parserdata['maincalc_value'] = ($parserdata['maincalc_value'] - 0.5)*20; |
|
78 |
|
79 $parserdata['subasserts'] = $this->opiniarbo_model->get_subasserts($mainassert, $this->aulib->getSessionId()); |
|
80 foreach($parserdata['subasserts'] as &$row) |
|
81 { |
|
82 if ($row['value'] != NULL) |
|
83 $row['value'] = ($row['value'] - 0.5) * 20; |
|
84 if ($row['influence'] != NULL) |
|
85 $row['influence'] = $row['influence'] * 10; |
|
86 if ($row['calc_value'] != NULL) |
|
87 $row['calc_value'] = ($row['calc_value'] - 0.5)*20; |
|
88 } |
|
89 |
|
90 $parserdata['preasserts'] = $this->opiniarbo_model->get_preasserts($mainassert, $this->aulib->getSessionId()); |
|
91 foreach($parserdata['preasserts'] as &$row) |
|
92 { |
|
93 if ($row['value'] != NULL) |
|
94 $row['value'] = ($row['value'] - 0.5) * 20; |
|
95 if ($row['influence'] != NULL) |
|
96 $row['influence'] = $row['influence'] * 10; |
|
97 if ($row['calc_value'] != NULL) |
|
98 $row['calc_value'] = ($row['calc_value'] - 0.5)*20; |
|
99 } |
|
100 $this->parser->parse('arbo', $parserdata); |
|
101 } |
|
102 } |
|
103 |
|
104 function recalculate() |
|
105 { |
|
106 $this->opiniarbo_model->recalculate(); |
|
107 echo "OK"; |
|
108 } |
|
109 |
|
110 function _value_check($str) |
|
111 { |
|
112 if (strlen($str) > 0 && $str <= 10.0 && $str >= -10.0) |
|
113 return TRUE; |
|
114 $this->form_validation->set_message("_value_check", "Skribu valoron inter -10 kaj 10"); |
|
115 return FALSE; |
|
116 } |
|
117 |
|
118 function _influence_check($str) |
|
119 { |
|
120 if (strlen($str) > 0 && $str <= 10.0 && $str >= -10.0) |
|
121 return TRUE; |
|
122 $this->form_validation->set_message("_influence_check", "Skribu influon inter -10 kaj 10"); |
|
123 return FALSE; |
13 } |
124 } |
14 } |
125 } |