<?php
+/*
+ * PHP version 5
+ *
+ * @copyright Copyright 2010, Cake. (http://trpgtools-onweb.sourceforge.jp/)
+ * @category Model
+ * @package TRPG Data Bank
+ * @version beta
+ * @author Cake <cake_67@users.sourceforge.jp>
+ * @license http://www.opensource.org/licenses/mit-license.php The MIT License
+ * @link http://trpgtools-onweb.sourceforge.jp/
+ */
+
class Profile extends AppModel {
var $name = 'Profile';
'radio',
'checkbox',
'm-input',
- 'm-radio',
- 'm-select',
'table',
+ 's-table',
);
var $fields = array(
- 'add' => array('system_id', 'name', 'key_name', 'profile_type', 'required', 'editable', 'public_flag_default', 'sort_order'),
- 'edit' => array('name', 'key_name', 'profile_type', 'required', 'editable', 'public_flag_default', 'sort_order'),
+ 'add' => array('system_id', 'name', 'key_name', 'profile_type', 'required', 'show_list', 'search', 'public_flag_default', 'sort_order'),
+ 'edit' => array('name', 'key_name', 'profile_type', 'required', 'show_list', 'search', 'public_flag_default', 'sort_order'),
+ 'edit_all' => array('required', 'show_list', 'search','sort_order'),
'escape' => array(
'name' => array(
'html' => true,
+ 'tags' => true,
'all' => true,
),
),
),
),
'key_name' => array(
+ 'keyNameNg' => array(
+ 'rule' => 'keyNameNg',
+ ),
'keyName' => array(
'rule' => 'keyName',
),
'profile_type' => array(
'profileType' => array(
'rule' => 'profileType',
+ 'allowEmpty' => true,
),
),
'required' => array(
'boolean' => array(
'rule' => 'boolean',
+ 'allowEmpty' => true,
+ ),
+ ),
+ 'show_list' => array(
+ 'boolean' => array(
+ 'rule' => 'boolean',
+ 'allowEmpty' => true,
),
),
- 'editable' => array(
+ 'search' => array(
'boolean' => array(
'rule' => 'boolean',
+ 'allowEmpty' => true,
),
),
'public_flag_default' => array(
'publicFlag' => array(
'rule' => 'publicFlagDefault',
+ 'allowEmpty' => true,
),
),
'sort_order' => array(
'foreignKey' => 'system_id',
'conditions' => '',
'fields' => array('id', 'name'),
- 'order' => ''
)
);
'dependent' => true,
'conditions' => '',
'fields' => '',
- 'order' => array('ProfileSelect.sort_order' => 'asc'),
+// 'order' => array('ProfileSelect.sort_order' => 'asc'), // Using filesortの原因
'limit' => '',
'offset' => '',
'exclusive' => '',
'dependent' => true,
'conditions' => '',
'fields' => '',
- 'order' => array('ProfileTable.sort_order' => 'asc'),
+// 'order' => array('ProfileTable.sort_order' => 'asc'),
'limit' => '',
'offset' => '',
'exclusive' => '',
'associationForeignKey' => 'id',
'dependent' => true,
'conditions' => '',
- 'fields' => array("id", "profile_id", "profile_select_id", "profile_table_id", "value", "public_flag", "link_value"),
- 'order' => '',
- 'limit' => 10,
+ 'fields' => array(
+ 'CharactersHasProfile.id',
+ 'CharactersHasProfile.character_id',
+ 'CharactersHasProfile.profile_table_id',
+ 'CharactersHasProfile.profile_table_static_id',
+ 'CharactersHasProfile.value',
+ 'CharactersHasProfile.public_flag',
+ 'CharactersHasProfile.link_value',
+ ),
+ 'order' => array('CharactersHasProfile.id' => 'asc'),
+ 'limit' => '',
'offset' => '',
'finderQuery' => '',
'deleteQuery' => '',
'insertQuery' => ''
+ ),
+ 'DefaultProfile' => array(
+ 'className' => 'DefaultProfile',
+ 'foreignKey' => 'profile_id',
+ 'dependent' => true,
+ 'conditions' => '',
+ 'fields' => '',
+ 'order' => '', // Using filesortの原因
+ 'limit' => '',
+ 'offset' => '',
+ 'exclusive' => '',
+ 'finderQuery' => '',
+ 'counterQuery' => ''
)
);
return parent::beforeSave($options);
}
+
+ function afterSave($created) {
+ $this->deleteCache4Profile();
+
+ return parent::afterSave($created);
+ }
+ function afterDelete() {
+ $this->deleteCache4Profile();
+
+ return parent::afterDelete();
+ }
+
+ /* キャッシュ削除 */
+ function deleteCache4Profile()
+ {
+ if (!isset($this->Character)) {
+ $this->Character = CorePlus::set_model('Character');
+ }
+ $this->Character->cacheDelete();
+
+ if (!isset($this->System)) {
+ $this->System = CorePlus::set_model('System');
+ }
+ $this->System->cacheDelete();
+ }
+
}
-?>
\ No newline at end of file