public function show($user_id, $type) { $criteria = new CDbCriteria(); $criteria->addCondition('LOWER(type0.name) = "' . strtolower($type) . '"'); $criteria->addCondition('t.status = 1'); $criteria->order = 't.category,t.id ASC'; $criteria->with = array('type0'); $defaultsArray = Defaults::model()->findAll($criteria); $showDefaultsArray = array(); $defaultIds = '('; foreach ($defaultsArray as $default) { $defaultIds .= "'" . $default->id . "',"; $showDefaultsArray[$default->id] = array('category' => $default->category, 'name' => $default->name, 'value' => $default->value, 'sms' => $default->sms, 'email' => $default->email); } $defaultIds = substr($defaultIds, 0, -1); $defaultIds .= ')'; $criteria = new CDbCriteria(); $criteria->addCondition('t.status = 1'); $criteria->addCondition('LOWER(type0.name) = "' . strtolower($type) . '"'); $criteria->addCondition('mstDefaultUsers.status = 1'); $criteria->addCondition('mstDefaultUsers.user_id = ' . $user_id); $criteria->addCondition('mstDefaultUsers.default_id IN ' . $defaultIds); $criteria->order = 't.category,t.id DESC'; $criteria->with = array('mstDefaultUsers', 'type0'); $userDefaults = Defaults::model()->findAll($criteria); foreach ($userDefaults as $userDefault) { $showDefaultsArray[$userDefault->id] = array('category' => $userDefault->category, 'name' => $userDefault->name, 'value' => $userDefault->mstDefaultUsers[0]->value, 'sms' => $userDefault->mstDefaultUsers[0]->sms, 'email' => $userDefault->mstDefaultUsers[0]->email); } $settingsArray = array(); foreach ($showDefaultsArray as $key => $showDefault) { $settingsArray[$showDefault['category']][$key] = $showDefault; } return $settingsArray; }