function onEndProfileSaveForm($action) { $fields = GNUsocialProfileExtensionField::allFields(); $user = common_current_user(); $profile = $user->getProfile(); foreach ($fields as $field) { $val = $action->trimmed($field->systemname); $response = new GNUsocialProfileExtensionResponse(); $response->profile_id = $profile->id; $response->extension_id = $field->id; if ($response->find()) { $response->fetch(); $response->value = $val; if ($response->validate()) { if (empty($val)) { $response->delete(); } else { $response->update(); } } } else { $response->value = $val; $response->insert(); } } }
static function findResponsesByProfile($id) { $extf = 'gnusocialprofileextensionfield'; $extr = 'gnusocialprofileextensionresponse'; $sql = "SELECT {$extr}.*, {$extf}.title, {$extf}.description, {$extf}.type, {$extf}.systemname FROM {$extr} JOIN {$extf} ON {$extr}.extension_id={$extf}.id WHERE {$extr}.profile_id = {$id}"; $response = new GNUsocialProfileExtensionResponse(); $response->query($sql); $responses = array(); while ($response->fetch()) { $responses[] = clone $response; } return $responses; }