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;
 }