public function generatePersonalInfo(array $ldapData, $profileId) { if (!$this->id) { throw new Exception('Can\'t call User::generatePersonalInfo() on an empty User object'); } $ldapConfig = Zend_Registry::get('config')->ldap; if (!isset($ldapConfig->fields)) { return; } $fieldValues = new Model_FieldsValues(); $fields = new Model_Fields(); foreach ($ldapConfig->fields->toArray() as $openIdField => $ldapField) { if (!($fieldRow = $fields->getByOpenIdIdentifier($openIdField))) { continue; } if (!isset($ldapData[$ldapField])) { if (strpos($ldapField, '+') == false) { continue; } $subfields = explode('+', $ldapField); array_walk($subfields, 'trim'); $value = array(); foreach ($subfields as $subfield) { if (!isset($ldapData[$subfield])) { continue; } $value[] = $ldapData[$subfield][0]; } $value = implode(' ', $value); } else { $value = $ldapData[$ldapField][0]; } $fieldsValue = $fieldValues->createRow(); $fieldsValue->user_id = $this->id; $fieldsValue->profile_id = $profileId; $fieldsValue->field_id = $fieldRow->id; $fieldsValue->value = $value; $fieldsValue->save(); } }