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