controllers/opiniarbo.php
changeset 1 f08a11b5d207
parent 0 3773f4677c40
child 2 7c6c888b2fed
equal deleted inserted replaced
0:3773f4677c40 1:f08a11b5d207
     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 }