OSDN Git Service

7ab87ff0e5360464bc6914284475f5b22d8ed626
[mulab/sd3rd.git] / trust_path / modules / sd3rd / class / handler / Skill.class.php
1 <?php
2 /**
3  * @file
4  * @package sd3rd
5  * @version $Id$
6 **/
7
8 if(!defined('XOOPS_ROOT_PATH'))
9 {
10     exit;
11 }
12
13 require_once SD3RD_TRUST_PATH . '/class/AbstractMasterHandler.class.php';
14
15 /**
16  * Sd3rd_SkillObject
17 **/
18 class Sd3rd_SkillObject extends XoopsSimpleObject
19 {
20     /**
21      * __construct
22      * 
23      * @param   void
24      * 
25      * @return  void
26     **/
27     public function __construct()
28     {
29         $this->initVar('skill_id', XOBJ_DTYPE_INT, '', false);
30         $this->initVar('skill_name', XOBJ_DTYPE_STRING, '', false, 50);
31         $this->initVar('description', XOBJ_DTYPE_STRING, '', false, 255);
32         $this->initVar('range', XOBJ_DTYPE_INT, '', false);
33         $this->initVar('target_id', XOBJ_DTYPE_INT, '', false);
34         $this->initVar('kind_id', XOBJ_DTYPE_INT, '', false);
35         $this->initVar('tp', XOBJ_DTYPE_INT, '', false);
36         $this->initVar('register_time', XOBJ_DTYPE_INT, '', false);
37     }
38 }
39
40 /**
41  * Sd3rd_SkillHandler
42 **/
43 class Sd3rd_SkillHandler extends Sd3rd_AbstractMasterHandler
44 {
45     public /*** string ***/ $mTable = '{dirname}_skill';
46     public /*** string ***/ $mPrimary = 'skill_id';
47     public /*** string ***/ $mClass = 'Sd3rd_SkillObject';
48     protected /*** string ***/ $_mIdColumn = 'skill_id';
49     protected /*** string ***/ $_mValueColumn = 'skill_name';
50     
51     /**
52      * Create new record at master data.
53      * 
54      * @param   mixed{} $values
55      * @param   bool    $force
56      * 
57      * @return  void
58     **/
59     protected function _appendMaster(/*** mixed{} ***/ $values,/*** bool ***/ $force)
60     {
61         $element = $values['element'];
62         unset($values['element']);
63         $values['range'] *= 10;
64         parent::_appendMaster($values,$force);
65         $this->_setElement($this->getId($values[$this->_mValueColumn]),$element,$force);
66     }
67     
68     /**
69      * Set skill element list.
70      * 
71      * @param   int     $skillId
72      * @param   int[]   $element
73      * @param   bool    $force
74      * 
75      * @return  void
76     **/
77     protected function _setElement(/*** int ***/ $skillId,/*** int[] ***/ $element,/*** bool ***/ $force = false)
78     {
79         static $handler = null;
80         if($handler === null)
81         {
82             $handler = Sd3rd_UpdateUtils::getHandler(Sd3rd_HANDLER::SKILL_ELEMENT);
83         }
84         $obj =& $handler->create();
85         foreach($element as $elementId)
86         {
87             $obj->set('skill_id',$skillId);
88             $obj->set('element_id',$elementId);
89             $obj->setNew();
90             if(!$handler->insert($obj,$force))
91             {
92                 throw new Sd3rd_QueryErrorException('Cannot insert skill element data.');
93             }
94         }
95     }
96 }
97
98 ?>