2 class Profile extends AppModel {
6 var $profile_type = array(
18 'add' => array('system_id', 'name', 'key_name', 'profile_type', 'required', 'allow_link', 'public_flag_default', 'sort_order'),
19 'edit' => array('name', 'key_name', 'profile_type', 'required', 'allow_link', 'public_flag_default', 'sort_order'),
20 'edit_all' => array('sort_order'),
29 var $validate = array(
31 'maxLengthJP' => array(
32 'rule' => array('maxLengthJP', 255),
42 'maxLengthJP' => array(
43 'rule' => array('maxLengthJP', 64),
49 'profile_type' => array(
50 'profileType' => array(
51 'rule' => 'profileType',
59 'allow_link' => array(
64 'public_flag_default' => array(
65 'publicFlag' => array(
66 'rule' => 'publicFlagDefault',
69 'sort_order' => array(
71 'rule' => array('numeric'),
77 //The Associations below have been created with all possible keys, those that are not needed can be removed
78 var $belongsTo = array(
80 'className' => 'System',
81 'foreignKey' => 'system_id',
83 'fields' => array('id', 'name'),
88 'ProfileSelect' => array(
89 'className' => 'ProfileSelect',
90 'foreignKey' => 'profile_id',
94 // 'order' => array('ProfileSelect.sort_order' => 'asc'), // Using filesortの原因
101 'ProfileTable' => array(
102 'className' => 'ProfileTable',
103 'foreignKey' => 'profile_id',
107 // 'order' => array('ProfileTable.sort_order' => 'asc'),
114 'CharactersHasProfile' => array(
115 'className' => 'CharactersHasProfile',
116 'foreignKey' => 'profile_id',
117 'associationForeignKey' => 'id',
121 'CharactersHasProfile.id',
122 'CharactersHasProfile.character_id',
123 'CharactersHasProfile.profile_table_id',
124 'CharactersHasProfile.profile_table_static_id',
125 'CharactersHasProfile.value',
126 'CharactersHasProfile.public_flag',
127 'CharactersHasProfile.link_value',
129 'order' => array('CharactersHasProfile.id' => 'asc'),
138 /* validation Rule */
140 /* 同システム中に同じkey_nameは不可 */
141 function isUniqueKeyname4system($data, $system_id, $id = null)
144 'conditions' => array(
145 'Profile.system_id' => $system_id,
146 'Profile.key_name' => $data['key_name'],
152 $params['conditions']['Profile.id !='] = $id;
155 return !($this->find('count', $params));
159 function profileType($data)
161 if (isset($data['profile_type']) && in_array($data['profile_type'], $this->profile_type)) {
168 function publicFlagDefault($data)
170 if (isset($data["public_flag_default"]) && in_array($data["public_flag_default"], $this->public_flag)) {
179 function beforeSave($options = array())
181 if (empty($this->data['Profile']['sort_order'])) {
182 $this->data['Profile']['sort_order'] = 0;
185 return parent::beforeSave($options);
188 function afterSave($created) {
189 $this->deleteCache4Profile();
191 return parent::afterSave($created);
193 function afterDelete() {
194 $this->deleteCache4Profile();
196 return parent::afterDelete($model);
200 function deleteCache4Profile()
202 if (!isset($this->Character)) {
203 $this->Character = CorePlus::set_model('Character');
205 $this->Character->cacheDelete();
207 if (!isset($this->System)) {
208 $this->System = CorePlus::set_model('System');
210 $this->System->cacheDelete();