OSDN Git Service

#17689 - Extract skill data.
[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         parent::_appendMaster($values,$force);
64         $this->_setElement($this->getId($values[$this->_mValueColumn]),$element,$force);
65     }
66     
67     /**
68      * _setElement
69      * 
70      * @param   int     $skillId
71      * @param   int[]   $element
72      * @param   bool    $force
73      * 
74      * @return  void
75     **/
76     protected function _setElement(/*** int ***/ $skillId,/*** int[] ***/ $element,/*** bool ***/ $force = false)
77     {
78         static $handler = null;
79         if($handler === null)
80         {
81             $handler = Sd3rd_UpdateUtils::getHandler(Sd3rd_HANDLER::SKILL_ELEMENT);
82         }
83         $obj =& $handler->create();
84         $obj->set('skill_id',$skillId);
85         foreach($element as $elementId)
86         {
87             $obj->set('element_id',$elementId);
88             $obj->setNew();
89             if(!$handler->insert($obj,$force))
90             {
91                 throw new Sd3rd_QueryErrorException('Cannot insert skill element data.');
92             }
93         }
94     }
95 }
96
97 ?>