source: iPeer/app/models/sys_parameter.php @ 9db0c9c

3.1.xdevhotfixpagodaboxticket463
Last change on this file since 9db0c9c was 9db0c9c, checked in by Compass <pan.luo@…>, 6 years ago

added new component TemplateEmail? for sending emails with templates in database.
added display.contact_info to sys_parameter table.
refactored email method in app_controller, #357.
added sending emails after submitting the evaluation.

  • Property mode set to 100644
File size: 3.0 KB
Line 
1<?php
2/**
3 * SysParameter
4 *
5 * @uses AppModel
6 * @package   CTLT.iPeer
7 * @author    Pan Luo <pan.luo@ubc.ca>
8 * @copyright 2012 All rights reserved.
9 * @license   MIT {@link http://www.opensource.org/licenses/MIT}
10 */
11class SysParameter extends AppModel
12{
13    public $name = 'SysParameter';
14    public $actsAs = array('Traceable');
15
16    public $validate = array (
17        'parameter_code' => array(
18            'rule' => 'notEmpty',
19            'message' => 'Parameter code is required',
20        ),
21        'parameter_type' => array(
22            'rule' => 'notEmpty',
23            'message' => 'Parameter code is required',
24            'on' => 'create',
25        )
26    );
27
28    /**
29     * findParameter
30     *
31     * @param string $paramCode
32     *
33     * @access public
34     * @return void
35     */
36    function findParameter ($paramCode)
37    {
38        return $this->find('first', array(
39            'conditions' => array('parameter_code' => $paramCode),
40            'fields' => array('id', 'parameter_code', 'parameter_value', 'parameter_type')
41        ));
42    }
43
44    /**
45     * get the value of a parameter
46     *
47     * @param string $paramCode
48     *
49     * @access public
50     * @return void
51     */
52    function get($paramCode, $default = null)
53    {
54        // search in cache first
55        $result = Cache::read($paramCode, 'configuration');
56        if (null == $result) {
57            $param = $this->findParameter($paramCode);
58            if ($param) {
59                $result = $param['SysParameter']['parameter_value'];
60                Cache::write($paramCode, $result, 'configuration');
61            } else {
62                $result = $default;
63            }
64        }
65
66        return $result;
67    }
68
69    /**
70     * set a value to database
71     *
72     * @param mixed $paramCode
73     * @param mixed $value
74     *
75     * @access public
76     * @return void
77     */
78    function setValue($paramCode, $value)
79    {
80        $obj = $this->findParameter($paramCode);
81        if ($obj) {
82            $obj['SysParameter']['parameter_value'] = $value;
83            return $this->save($obj);
84        }
85
86        return false;
87    }
88
89    /**
90     * beforeSave
91     *
92     *
93     * @access public
94     * @return void
95     */
96    function beforeSave()
97    {
98        $this->data[$this->name]['modified'] = date('Y-m-d H:i:s');
99
100        return true;
101    }
102
103    /**
104     * afterSave
105     *
106     * @param boolean $created
107     *
108     * @access public
109     * @return void
110     */
111    function afterSave($created)
112    {
113        Cache::write($this->data['SysParameter']['parameter_code'], $this->data['SysParameter'], 'configuration');
114
115        return true;
116    }
117
118    /**
119     * getDatabaseVersion
120     *
121     *
122     * @access public
123     * @return void
124     */
125    public function getDatabaseVersion()
126    {
127        return $this->get('database.version');
128    }
129
130    /**
131     * reload force reload by clearing the cache
132     *
133     * @access public
134     * @return void
135     */
136    public function reload()
137    {
138        Cache::clear(false, 'configuration');
139    }
140}
Note: See TracBrowser for help on using the repository browser.