本文整理汇总了PHP中CRM_Utils_String::extractName方法的典型用法代码示例。如果您正苦于以下问题:PHP CRM_Utils_String::extractName方法的具体用法?PHP CRM_Utils_String::extractName怎么用?PHP CRM_Utils_String::extractName使用的例子?那么恭喜您, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类CRM_Utils_String
的用法示例。
在下文中一共展示了CRM_Utils_String::extractName方法的6个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的PHP代码示例。
示例1: testExtractName
public function testExtractName()
{
$cases = array(array('full_name' => 'Alan', 'first_name' => 'Alan'), array('full_name' => 'Alan Arkin', 'first_name' => 'Alan', 'last_name' => 'Arkin'), array('full_name' => '"Alan Arkin"', 'first_name' => 'Alan', 'last_name' => 'Arkin'), array('full_name' => 'Alan A Arkin', 'first_name' => 'Alan', 'middle_name' => 'A', 'last_name' => 'Arkin'), array('full_name' => 'Adams, Amy', 'first_name' => 'Amy', 'last_name' => 'Adams'), array('full_name' => 'Adams, Amy A', 'first_name' => 'Amy', 'middle_name' => 'A', 'last_name' => 'Adams'), array('full_name' => '"Adams, Amy A"', 'first_name' => 'Amy', 'middle_name' => 'A', 'last_name' => 'Adams'));
foreach ($cases as $case) {
$actual = array();
CRM_Utils_String::extractName($case['full_name'], $actual);
$this->assertEquals($actual['first_name'], $case['first_name']);
$this->assertEquals(CRM_Utils_Array::value('last_name', $actual), CRM_Utils_Array::value('last_name', $case));
$this->assertEquals(CRM_Utils_Array::value('middle_name', $actual), CRM_Utils_Array::value('middle_name', $case));
}
}
示例2: getContactID
/**
* Retrieve a contact ID and if not present.
*
* Create one with this email
*
* @param string $email
* @param string $name
* @param bool $create
* @param string $mail
*
* @return int|null
*/
public static function getContactID($email, $name = NULL, $create = TRUE, &$mail)
{
$dao = CRM_Contact_BAO_Contact::matchContactOnEmail($email, 'Individual');
$contactID = NULL;
if ($dao) {
$contactID = $dao->contact_id;
}
$result = NULL;
CRM_Utils_Hook::emailProcessorContact($email, $contactID, $result);
if (!empty($result)) {
if ($result['action'] == self::EMAILPROCESSOR_IGNORE) {
return NULL;
}
if ($result['action'] == self::EMAILPROCESSOR_OVERRIDE) {
return $result['contactID'];
}
// else this is now create individual
// so we just fall out and do what we normally do
}
if ($contactID) {
return $contactID;
}
if (!$create) {
return NULL;
}
// contact does not exist, lets create it
$params = array('contact_type' => 'Individual', 'email-Primary' => $email);
CRM_Utils_String::extractName($name, $params);
return CRM_Contact_BAO_Contact::createProfileContact($params, CRM_Core_DAO::$_nullArray);
}
示例3: CRM_Core_DAO_UFMatch
/**
* Synchronize the object with the UF Match entry. Can be called stand-alone from
* the drupalUsers script
*
* @param Object $user
* The drupal user object.
* @param string $userKey
* The id of the user from the uf object.
* @param string $uniqId
* The OpenID of the user.
* @param string $uf
* The name of the user framework.
* @param int $status
* Returns the status if user created or already exits (used for CMS sync).
* @param string $ctype
* contact type
* @param bool $isLogin
*
* @return CRM_Core_DAO_UFMatch|bool
*/
public static function &synchronizeUFMatch(&$user, $userKey, $uniqId, $uf, $status = NULL, $ctype = NULL, $isLogin = FALSE)
{
$config = CRM_Core_Config::singleton();
if (!CRM_Utils_Rule::email($uniqId)) {
$retVal = $status ? NULL : FALSE;
return $retVal;
}
$newContact = FALSE;
// make sure that a contact id exists for this user id
$ufmatch = new CRM_Core_DAO_UFMatch();
$ufmatch->domain_id = CRM_Core_Config::domainID();
$ufmatch->uf_id = $userKey;
if (!$ufmatch->find(TRUE)) {
$transaction = new CRM_Core_Transaction();
$dao = NULL;
if (!empty($_POST) && !$isLogin) {
$params = $_POST;
$params['email'] = $uniqId;
$dedupeParams = CRM_Dedupe_Finder::formatParams($params, 'Individual');
$dedupeParams['check_permission'] = FALSE;
$ids = CRM_Dedupe_Finder::dupesByParams($dedupeParams, 'Individual');
if (!empty($ids) && Civi::settings()->get('uniq_email_per_site')) {
// restrict dupeIds to ones that belong to current domain/site.
$siteContacts = CRM_Core_BAO_Domain::getContactList();
foreach ($ids as $index => $dupeId) {
if (!in_array($dupeId, $siteContacts)) {
unset($ids[$index]);
}
}
// re-index the array
$ids = array_values($ids);
}
if (!empty($ids)) {
$dao = new CRM_Core_DAO();
$dao->contact_id = $ids[0];
}
} else {
$dao = CRM_Contact_BAO_Contact::matchContactOnEmail($uniqId, $ctype);
}
$found = FALSE;
if ($dao) {
// ensure there does not exists a contact_id / uf_id pair
// in the DB. This might be due to multiple emails per contact
// CRM-9091
$sql = "\nSELECT id\nFROM civicrm_uf_match\nWHERE contact_id = %1\nAND domain_id = %2\n";
$params = array(1 => array($dao->contact_id, 'Integer'), 2 => array(CRM_Core_Config::domainID(), 'Integer'));
$conflict = CRM_Core_DAO::singleValueQuery($sql, $params);
if (!$conflict) {
$found = TRUE;
$ufmatch->contact_id = $dao->contact_id;
$ufmatch->uf_name = $uniqId;
}
}
if (!$found) {
if ($config->userSystem->is_drupal) {
$mail = 'mail';
} elseif ($uf == 'WordPress') {
$mail = 'user_email';
} else {
$mail = 'email';
}
if (is_object($user)) {
$params = array('email-Primary' => $user->{$mail});
}
if ($ctype == 'Organization') {
$params['organization_name'] = $uniqId;
} elseif ($ctype == 'Household') {
$params['household_name'] = $uniqId;
}
if (!$ctype) {
$ctype = "Individual";
}
$params['contact_type'] = $ctype;
// extract first / middle / last name
// for joomla
if ($uf == 'Joomla' && $user->name) {
CRM_Utils_String::extractName($user->name, $params);
}
if ($uf == 'WordPress') {
if ($user->first_name) {
//.........这里部分代码省略.........
示例4: getContactID
/**
* retrieve a contact ID and if not present
* create one with this email
*/
function getContactID($email, $name = null, $create = true)
{
require_once 'CRM/Contact/BAO/Contact.php';
$dao = CRM_Contact_BAO_Contact::matchContactOnEmail($email, 'Individual');
if ($dao) {
return $dao->contact_id;
}
if (!$create) {
return null;
}
// contact does not exist, lets create it
$params = array('contact_type' => 'Individual', 'email-Primary' => $email);
require_once 'CRM/Utils/String.php';
CRM_Utils_String::extractName($name, $params);
return CRM_Contact_BAO_Contact::createProfileContact($params, CRM_Core_DAO::$_nullArray);
}
示例5: CRM_Core_DAO_UFMatch
//.........这里部分代码省略.........
$transaction = new CRM_Core_Transaction();
if (!empty($_POST) && !$isLogin) {
$params = $_POST;
$params['email'] = $uniqId;
require_once 'CRM/Dedupe/Finder.php';
$dedupeParams = CRM_Dedupe_Finder::formatParams($params, 'Individual');
$ids = CRM_Dedupe_Finder::dupesByParams($dedupeParams, 'Individual');
if (!empty($ids) && defined('CIVICRM_UNIQ_EMAIL_PER_SITE') && CIVICRM_UNIQ_EMAIL_PER_SITE) {
// restrict dupeIds to ones that belong to current domain/site.
require_once 'CRM/Core/BAO/Domain.php';
$siteContacts = CRM_Core_BAO_Domain::getContactList();
foreach ($ids as $index => $dupeId) {
if (!in_array($dupeId, $siteContacts)) {
unset($ids[$index]);
}
}
$ids = array_values($ids);
//re-index the array
}
if (!empty($ids)) {
$dao = new CRM_Core_DAO();
$dao->contact_id = $ids[0];
}
} else {
require_once 'CRM/Contact/BAO/Contact.php';
if ($uf == 'Standalone') {
$dao =& CRM_Contact_BAO_Contact::matchContactOnOpenId($uniqId, $ctype);
} else {
$dao =& CRM_Contact_BAO_Contact::matchContactOnEmail($uniqId, $ctype);
}
}
if ($dao) {
//print "Found contact with uniqId $uniqId<br/>";
$ufmatch->contact_id = $dao->contact_id;
$ufmatch->uf_name = $uniqId;
} else {
if ($uf == 'Drupal') {
$mail = 'mail';
} else {
$mail = 'email';
}
if (is_Object($user)) {
$params = array('email-Primary' => $user->{$mail});
}
if ($ctype == 'Organization') {
$params['organization_name'] = $uniqId;
} else {
if ($ctype == 'Household') {
$params['household_name'] = $uniqId;
}
}
if (!$ctype) {
$ctype = "Individual";
}
$params['contact_type'] = $ctype;
// extract first / middle / last name
// for joomla
if ($uf == 'Joomla' && $user->name) {
require_once 'CRM/Utils/String.php';
CRM_Utils_String::extractName($user->name, $params);
}
if ($uf == 'Standalone') {
$params['openid-Primary'] = $uniqId;
//need to delete below code once profile is
//exposed on signup page
if (!empty($user->first_name) || !empty($user->last_name)) {
$params['first_name'] = $user->first_name;
$params['last_name'] = $user->last_name;
} elseif (!empty($user->name)) {
require_once 'CRM/Utils/String.php';
CRM_Utils_String::extractName($user->name, $params);
}
}
$contactId = CRM_Contact_BAO_Contact::createProfileContact($params, CRM_Core_DAO::$_nullArray);
$ufmatch->contact_id = $contactId;
$ufmatch->uf_name = $uniqId;
}
// check that there are not two CMS IDs matching the same CiviCRM contact - this happens when a civicrm
// user has two e-mails and there is a cms match for each of them
// the gets rid of the nasty fata error but still reports the error
$sql = "\nSELECT uf_id\nFROM civicrm_uf_match\nWHERE ( contact_id = %1\nOR uf_name = %2\nOR uf_id = %3 )\nAND domain_id = %4\n";
$params = array(1 => array($ufmatch->contact_id, 'Integer'), 2 => array($ufmatch->uf_name, 'String'), 3 => array($ufmatch->uf_id, 'Integer'), 4 => array($ufmatch->domain_id, 'Integer'));
require_once 'CRM/Core/DAO.php';
$conflict = CRM_Core_DAO::singleValueQuery($sql, $params);
if (!$conflict) {
$ufmatch->save();
$ufmatch->free();
$newContact = true;
$transaction->commit();
} else {
$msg = ts("Contact ID %1 is a match for %2 user %3 but has already been matched to %4", array(1 => $ufmatch->contact_id, 2 => $uf, 3 => $ufmatch->uf_id, 4 => $conflict));
unset($conflict);
}
}
if ($status) {
return $newContact;
} else {
return $ufmatch;
}
}
示例6: CRM_Core_DAO_UFMatch
/**
* Synchronize the object with the UF Match entry. Can be called stand-alone from
* the drupalUsers script
*
* @param Object $user the drupal user object
* @param string $userKey the id of the user from the uf object
* @param string $uniqId the OpenID of the user
* @param string $uf the name of the user framework
* @param integer $status returns the status if user created or already exits (used for CMS sync)
*
* @return the ufmatch object that was found or created
* @access public
* @static
*/
static function &synchronizeUFMatch(&$user, $userKey, $uniqId, $uf, $status = null, $ctype = null)
{
// validate that uniqId is a valid url. it will either be
// an OpenID (which should always be a valid url) or a
// http://uf_username/ construction (so that it can
// be used as an OpenID in the future)
require_once 'CRM/Utils/Rule.php';
if ($uf == 'Standalone') {
if (!CRM_Utils_Rule::url($uniqId)) {
return $status ? null : false;
}
} else {
if (!CRM_Utils_Rule::email($uniqId)) {
return $status ? null : false;
}
}
$newContact = false;
// make sure that a contact id exists for this user id
$ufmatch =& new CRM_Core_DAO_UFMatch();
if (CRM_Core_DAO::checkFieldExists('civicrm_uf_match', 'domain_id')) {
// FIXME: if() condition check was required especially for upgrade cases (2.2.x -> 3.0.x),
// where folks if happen to logout, would encounter a column not found fatal error
$ufmatch->domain_id = CRM_Core_Config::domainID();
}
$ufmatch->uf_id = $userKey;
if (!$ufmatch->find(true)) {
require_once 'CRM/Core/Transaction.php';
$transaction = new CRM_Core_Transaction();
if (!empty($_POST)) {
$params = $_POST;
$params['email'] = $uniqId;
require_once 'CRM/Dedupe/Finder.php';
$dedupeParams = CRM_Dedupe_Finder::formatParams($params, 'Individual');
$ids = CRM_Dedupe_Finder::dupesByParams($dedupeParams, 'Individual');
if (!empty($ids)) {
$dao = new CRM_Core_DAO();
$dao->contact_id = $ids[0];
}
} else {
require_once 'CRM/Contact/BAO/Contact.php';
if ($uf == 'Standalone') {
$dao =& CRM_Contact_BAO_Contact::matchContactOnOpenId($uniqId, $ctype);
} else {
$dao =& CRM_Contact_BAO_Contact::matchContactOnEmail($uniqId, $ctype);
}
}
if ($dao) {
//print "Found contact with uniqId $uniqId<br/>";
$ufmatch->contact_id = $dao->contact_id;
$ufmatch->uf_name = $uniqId;
} else {
if ($uf == 'Drupal') {
$mail = 'mail';
} else {
$mail = 'email';
}
if (is_Object($user)) {
$params = array('email-Primary' => $user->{$mail});
}
if ($ctype == 'Organization') {
$params['organization_name'] = $uniqId;
} else {
if ($ctype == 'Household') {
$params['household_name'] = $uniqId;
}
}
if (!$ctype) {
$ctype = "Individual";
}
$params['contact_type'] = $ctype;
// extract first / middle / last name
// for joomla
if ($uf == 'Joomla' && $user->name) {
require_once 'CRM/Utils/String.php';
CRM_Utils_String::extractName($user->name, $params);
}
if ($uf == 'Standalone') {
$params['openid-Primary'] = $uniqId;
//need to delete below code once profile is
//exposed on signup page
if (!empty($user->first_name) || !empty($user->last_name)) {
$params['first_name'] = $user->first_name;
$params['last_name'] = $user->last_name;
} elseif (!empty($user->name)) {
require_once 'CRM/Utils/String.php';
CRM_Utils_String::extractName($user->name, $params);
//.........这里部分代码省略.........