models/opiniarbo.php
author viric@mandarina
Thu, 25 Dec 2008 11:25:58 +0000
changeset 0 3773f4677c40
permissions -rw-r--r--
Opiniarbo - versikontrolita.
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
class Opiniarbo_model extends Model {
3773f4677c40 Opiniarbo - versikontrolita.
viric@mandarina
parents:
diff changeset
     3
3773f4677c40 Opiniarbo - versikontrolita.
viric@mandarina
parents:
diff changeset
     4
    function Opiniarbo_model()
3773f4677c40 Opiniarbo - versikontrolita.
viric@mandarina
parents:
diff changeset
     5
    {
3773f4677c40 Opiniarbo - versikontrolita.
viric@mandarina
parents:
diff changeset
     6
        parent::Model();
3773f4677c40 Opiniarbo - versikontrolita.
viric@mandarina
parents:
diff changeset
     7
    }
3773f4677c40 Opiniarbo - versikontrolita.
viric@mandarina
parents:
diff changeset
     8
3773f4677c40 Opiniarbo - versikontrolita.
viric@mandarina
parents:
diff changeset
     9
    function get_my_heads($user)
3773f4677c40 Opiniarbo - versikontrolita.
viric@mandarina
parents:
diff changeset
    10
    {
3773f4677c40 Opiniarbo - versikontrolita.
viric@mandarina
parents:
diff changeset
    11
        $query = $this->db->get_where('asertoj',
3773f4677c40 Opiniarbo - versikontrolita.
viric@mandarina
parents:
diff changeset
    12
            array('user' => $user, 'parent' => NULL));
3773f4677c40 Opiniarbo - versikontrolita.
viric@mandarina
parents:
diff changeset
    13
        return $query->result();
3773f4677c40 Opiniarbo - versikontrolita.
viric@mandarina
parents:
diff changeset
    14
    }
3773f4677c40 Opiniarbo - versikontrolita.
viric@mandarina
parents:
diff changeset
    15
3773f4677c40 Opiniarbo - versikontrolita.
viric@mandarina
parents:
diff changeset
    16
    function get_other_heads($user)
3773f4677c40 Opiniarbo - versikontrolita.
viric@mandarina
parents:
diff changeset
    17
    {
3773f4677c40 Opiniarbo - versikontrolita.
viric@mandarina
parents:
diff changeset
    18
        $query = $this->db->get_where('asertoj',
3773f4677c40 Opiniarbo - versikontrolita.
viric@mandarina
parents:
diff changeset
    19
            array('user !=' => $user, 'parent' => NULL));
3773f4677c40 Opiniarbo - versikontrolita.
viric@mandarina
parents:
diff changeset
    20
        return $query->result();
3773f4677c40 Opiniarbo - versikontrolita.
viric@mandarina
parents:
diff changeset
    21
    }
3773f4677c40 Opiniarbo - versikontrolita.
viric@mandarina
parents:
diff changeset
    22
3773f4677c40 Opiniarbo - versikontrolita.
viric@mandarina
parents:
diff changeset
    23
    function get_my_subasserts($parent, $user)
3773f4677c40 Opiniarbo - versikontrolita.
viric@mandarina
parents:
diff changeset
    24
    {
3773f4677c40 Opiniarbo - versikontrolita.
viric@mandarina
parents:
diff changeset
    25
        $query = $this->db->get_where('asertoj',
3773f4677c40 Opiniarbo - versikontrolita.
viric@mandarina
parents:
diff changeset
    26
            array('user' => $user,
3773f4677c40 Opiniarbo - versikontrolita.
viric@mandarina
parents:
diff changeset
    27
                  'parent' => $parent));
3773f4677c40 Opiniarbo - versikontrolita.
viric@mandarina
parents:
diff changeset
    28
        return $query->result();
3773f4677c40 Opiniarbo - versikontrolita.
viric@mandarina
parents:
diff changeset
    29
    }
3773f4677c40 Opiniarbo - versikontrolita.
viric@mandarina
parents:
diff changeset
    30
3773f4677c40 Opiniarbo - versikontrolita.
viric@mandarina
parents:
diff changeset
    31
    function get_other_subasserts($parent, $user)
3773f4677c40 Opiniarbo - versikontrolita.
viric@mandarina
parents:
diff changeset
    32
    {
3773f4677c40 Opiniarbo - versikontrolita.
viric@mandarina
parents:
diff changeset
    33
        $query = $this->db->get_where('asertoj',
3773f4677c40 Opiniarbo - versikontrolita.
viric@mandarina
parents:
diff changeset
    34
            array('user !=' => $user,
3773f4677c40 Opiniarbo - versikontrolita.
viric@mandarina
parents:
diff changeset
    35
                  'parent' => $parent));
3773f4677c40 Opiniarbo - versikontrolita.
viric@mandarina
parents:
diff changeset
    36
        return $query->result();
3773f4677c40 Opiniarbo - versikontrolita.
viric@mandarina
parents:
diff changeset
    37
    }
3773f4677c40 Opiniarbo - versikontrolita.
viric@mandarina
parents:
diff changeset
    38
3773f4677c40 Opiniarbo - versikontrolita.
viric@mandarina
parents:
diff changeset
    39
    function get_calc_value($assert, $orig_value)
3773f4677c40 Opiniarbo - versikontrolita.
viric@mandarina
parents:
diff changeset
    40
    {
3773f4677c40 Opiniarbo - versikontrolita.
viric@mandarina
parents:
diff changeset
    41
        $query = $this->db->get_where('asertoj',
3773f4677c40 Opiniarbo - versikontrolita.
viric@mandarina
parents:
diff changeset
    42
            array('parent' => $assert));
3773f4677c40 Opiniarbo - versikontrolita.
viric@mandarina
parents:
diff changeset
    43
3773f4677c40 Opiniarbo - versikontrolita.
viric@mandarina
parents:
diff changeset
    44
        if ($query->num_rows() > 0)
3773f4677c40 Opiniarbo - versikontrolita.
viric@mandarina
parents:
diff changeset
    45
        {
3773f4677c40 Opiniarbo - versikontrolita.
viric@mandarina
parents:
diff changeset
    46
            $val = 0;
3773f4677c40 Opiniarbo - versikontrolita.
viric@mandarina
parents:
diff changeset
    47
            foreach($query->result() as $row)
3773f4677c40 Opiniarbo - versikontrolita.
viric@mandarina
parents:
diff changeset
    48
            {
3773f4677c40 Opiniarbo - versikontrolita.
viric@mandarina
parents:
diff changeset
    49
                $val += get_calc_value($row->id, $row->value);
3773f4677c40 Opiniarbo - versikontrolita.
viric@mandarina
parents:
diff changeset
    50
            }
3773f4677c40 Opiniarbo - versikontrolita.
viric@mandarina
parents:
diff changeset
    51
            $query2 = $this->db->where('id', $row->id);
3773f4677c40 Opiniarbo - versikontrolita.
viric@mandarina
parents:
diff changeset
    52
            $query2->update('asertoj', array(
3773f4677c40 Opiniarbo - versikontrolita.
viric@mandarina
parents:
diff changeset
    53
                'calc_value' => $val));
3773f4677c40 Opiniarbo - versikontrolita.
viric@mandarina
parents:
diff changeset
    54
3773f4677c40 Opiniarbo - versikontrolita.
viric@mandarina
parents:
diff changeset
    55
            return $val;
3773f4677c40 Opiniarbo - versikontrolita.
viric@mandarina
parents:
diff changeset
    56
        }
3773f4677c40 Opiniarbo - versikontrolita.
viric@mandarina
parents:
diff changeset
    57
3773f4677c40 Opiniarbo - versikontrolita.
viric@mandarina
parents:
diff changeset
    58
        return $orig_value;
3773f4677c40 Opiniarbo - versikontrolita.
viric@mandarina
parents:
diff changeset
    59
    }
3773f4677c40 Opiniarbo - versikontrolita.
viric@mandarina
parents:
diff changeset
    60
3773f4677c40 Opiniarbo - versikontrolita.
viric@mandarina
parents:
diff changeset
    61
    function recalculate()
3773f4677c40 Opiniarbo - versikontrolita.
viric@mandarina
parents:
diff changeset
    62
    {
3773f4677c40 Opiniarbo - versikontrolita.
viric@mandarina
parents:
diff changeset
    63
        // Get all heads
3773f4677c40 Opiniarbo - versikontrolita.
viric@mandarina
parents:
diff changeset
    64
        get_calc_value(NULL, 0);
3773f4677c40 Opiniarbo - versikontrolita.
viric@mandarina
parents:
diff changeset
    65
    }
3773f4677c40 Opiniarbo - versikontrolita.
viric@mandarina
parents:
diff changeset
    66
3773f4677c40 Opiniarbo - versikontrolita.
viric@mandarina
parents:
diff changeset
    67
    function insert_assertion()
3773f4677c40 Opiniarbo - versikontrolita.
viric@mandarina
parents:
diff changeset
    68
    {
3773f4677c40 Opiniarbo - versikontrolita.
viric@mandarina
parents:
diff changeset
    69
        if (isset($_POST['parent']))
3773f4677c40 Opiniarbo - versikontrolita.
viric@mandarina
parents:
diff changeset
    70
        {
3773f4677c40 Opiniarbo - versikontrolita.
viric@mandarina
parents:
diff changeset
    71
            $data['parent'] = $_POST['parent'];
3773f4677c40 Opiniarbo - versikontrolita.
viric@mandarina
parents:
diff changeset
    72
            $data['influence'] = $_POST['influence'];
3773f4677c40 Opiniarbo - versikontrolita.
viric@mandarina
parents:
diff changeset
    73
        }
3773f4677c40 Opiniarbo - versikontrolita.
viric@mandarina
parents:
diff changeset
    74
        else
3773f4677c40 Opiniarbo - versikontrolita.
viric@mandarina
parents:
diff changeset
    75
        {
3773f4677c40 Opiniarbo - versikontrolita.
viric@mandarina
parents:
diff changeset
    76
            $data['parent'] = NULL;
3773f4677c40 Opiniarbo - versikontrolita.
viric@mandarina
parents:
diff changeset
    77
            $data['influence'] = $_POST['influence'];
3773f4677c40 Opiniarbo - versikontrolita.
viric@mandarina
parents:
diff changeset
    78
        }
3773f4677c40 Opiniarbo - versikontrolita.
viric@mandarina
parents:
diff changeset
    79
        $data['assert'] = $_POST['assert'];
3773f4677c40 Opiniarbo - versikontrolita.
viric@mandarina
parents:
diff changeset
    80
        $data['context'] = $_POST['context'];
3773f4677c40 Opiniarbo - versikontrolita.
viric@mandarina
parents:
diff changeset
    81
        $data['value'] = float($_POST['value']);
3773f4677c40 Opiniarbo - versikontrolita.
viric@mandarina
parents:
diff changeset
    82
    }
3773f4677c40 Opiniarbo - versikontrolita.
viric@mandarina
parents:
diff changeset
    83
}
3773f4677c40 Opiniarbo - versikontrolita.
viric@mandarina
parents:
diff changeset
    84
3773f4677c40 Opiniarbo - versikontrolita.
viric@mandarina
parents:
diff changeset
    85
?>