/**
  * Save an extended profile field as a Profile_detail
  *
  * @param User   $user    the current user
  * @param string $name    field name
  * @param string $value   field value
  * @param string $rel     field rel (type)
  * @param int    $index   index (fields can have multiple values)
  * @param date   $date    related date
  */
 function saveField($user, $name, $value, $rel = null, $index = null, $date = null)
 {
     $profile = $user->getProfile();
     $detail = new Profile_detail();
     $detail->profile_id = $profile->id;
     $detail->field_name = $name;
     $detail->value_index = $index;
     $result = $detail->find(true);
     if (empty($result)) {
         $detial->value_index = $index;
         $detail->rel = $rel;
         $detail->field_value = $value;
         $detail->date = $date;
         $detail->created = common_sql_now();
         $result = $detail->insert();
         if (empty($result)) {
             common_log_db_error($detail, 'INSERT', __FILE__);
             // TRANS: Server error displayed when a field could not be saved in the database.
             $this->serverError(_m('Could not save profile details.'));
         }
     } else {
         $orig = clone $detail;
         $detail->field_value = $value;
         $detail->rel = $rel;
         $detail->date = $date;
         $result = $detail->update($orig);
         if (empty($result)) {
             common_log_db_error($detail, 'UPDATE', __FILE__);
             // TRANS: Server error displayed when a field could not be saved in the database.
             $this->serverError(_m('Could not save profile details.'));
         }
     }
     $detail->free();
 }
 /**
  * Save an extended profile field as a Profile_detail
  *
  * @param string $name    field name
  * @param string $value   field value
  * @param string $rel     field rel (type)
  * @param int    $index   index (fields can have multiple values)
  * @param date   $date    related date
  */
 function saveField($name, $value, $rel = null, $index = null, $date = null)
 {
     $detail = new Profile_detail();
     $detail->profile_id = $this->scoped->getID();
     $detail->field_name = $name;
     $detail->value_index = $index;
     $result = $detail->find(true);
     if (!$result instanceof Profile_detail) {
         $detail->value_index = $index;
         $detail->rel = $rel;
         $detail->field_value = $value;
         $detail->date = $date;
         $detail->created = common_sql_now();
         $result = $detail->insert();
         if ($result === false) {
             common_log_db_error($detail, 'INSERT', __FILE__);
             // TRANS: Server error displayed when a field could not be saved in the database.
             throw new ServerException(_m('Could not save profile details.'));
         }
     } else {
         $orig = clone $detail;
         $detail->field_value = $value;
         $detail->rel = $rel;
         $detail->date = $date;
         $result = $detail->update($orig);
         if ($result === false) {
             common_log_db_error($detail, 'UPDATE', __FILE__);
             // TRANS: Server error displayed when a field could not be saved in the database.
             throw new ServerException(_m('Could not save profile details.'));
         }
     }
     $detail->free();
 }