/** * setUp method * * @return void */ public function setUp() { parent::setUp(); UserAttribute::$userAttributes = null; }
/** * 会員項目のレイアウト用のデータ取得 * * @param bool $force 強制的に取得するフラグ * @return array 会員項目データ配列 * @SuppressWarnings(PHPMD.BooleanArgumentFlag) */ public function getUserAttributesForLayout($force = false) { $this->loadModels(['DataType' => 'DataTypes.DataType', 'UserRole' => 'UserRoles.UserRole', 'UserAttributesRole' => 'UserRoles.UserAttributesRole']); if (isset(self::$userAttributes) && !$force) { return self::$userAttributes; } //UserAttributeデータ取得 $userAttributes = $this->find('all', $this->findOptionsForLayout()); //UserAttributeChoiceデータ取得 $userAttributeIds = Hash::extract($userAttributes, '{n}.UserAttribute.id'); $userAttributeChoices = $this->__getUserAttributeChoice($userAttributeIds); //DataTypeデータ取得 $dataTypes = $this->DataType->getDataTypes($this->UserAttributeSetting->editDataTypes); //UserRoleデータの取得 $userRoles = $this->__getUserRole(); //戻り値の設定 $results = array(); foreach ($userAttributes as $userAttribute) { $userAttributeId = $userAttribute['UserAttribute']['id']; $dataTypeKey = $userAttribute['UserAttributeSetting']['data_type_key']; $result = $userAttribute; if ($userAttribute['UserAttribute']['key'] === 'role_key') { //権限の設定 $result['UserAttributeChoice'] = $userRoles; $result['UserAttributeChoice'] = Hash::insert($result['UserAttributeChoice'], '{n}.user_attribute_id', $userAttributeId); } elseif (isset($dataTypes[$dataTypeKey]['DataTypeChoice'])) { //DataTypeChoiceにデータがある場合 $result['UserAttributeSetting']['data_type_key'] = DataType::DATA_TYPE_SELECT; $result['UserAttributeChoice'] = $dataTypes[$dataTypeKey]['DataTypeChoice']; $result['UserAttributeChoice'] = Hash::insert($result['UserAttributeChoice'], '{n}.user_attribute_id', $userAttributeId); } elseif (isset($userAttributeChoices[$userAttributeId])) { //UserAttributeChoiceにデータがある場合 $result['UserAttributeChoice'] = $userAttributeChoices[$userAttributeId]; } $row = $userAttribute['UserAttributeSetting']['row']; $col = $userAttribute['UserAttributeSetting']['col']; $weight = $userAttribute['UserAttributeSetting']['weight']; $results[$row][$col][$weight] = $result; } self::$userAttributes = $results; return $results; }