本文整理汇总了PHP中CRM_Utils_Array::crmInArray方法的典型用法代码示例。如果您正苦于以下问题:PHP CRM_Utils_Array::crmInArray方法的具体用法?PHP CRM_Utils_Array::crmInArray怎么用?PHP CRM_Utils_Array::crmInArray使用的例子?那么恭喜您, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类CRM_Utils_Array
的用法示例。
在下文中一共展示了CRM_Utils_Array::crmInArray方法的5个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的PHP代码示例。
示例1: getCaseActivity
//.........这里部分代码省略.........
$reporterName = $dao->reporter;
if ($hasViewContact) {
$reporterName = '<a href="' . $contactViewUrl . $dao->reporter_id . '">' . $dao->reporter . '</a>';
}
$values[$dao->id]['reporter'] = $reporterName;
$targetNames = CRM_Activity_BAO_ActivityContact::getNames($dao->id, $targetID);
$targetContactUrls = $withContacts = array();
foreach ($targetNames as $targetId => $targetName) {
if (!in_array($targetId, $clientIds)) {
$withContacts[$targetId] = $targetName;
}
}
foreach ($withContacts as $cid => $name) {
if ($hasViewContact) {
$name = '<a href="' . $contactViewUrl . $cid . '">' . $name . '</a>';
}
$targetContactUrls[] = $name;
}
$values[$dao->id]['with_contacts'] = implode('; ', $targetContactUrls);
$values[$dao->id]['display_date'] = CRM_Utils_Date::customFormat($dao->display_date);
$values[$dao->id]['status'] = $activityStatus[$dao->status];
//check for view activity.
$subject = empty($dao->subject) ? '(' . ts('no subject') . ')' : $dao->subject;
if ($allowView) {
$url = CRM_Utils_System::url('civicrm/case/activity/view', array('cid' => $contactID, 'aid' => $dao->id));
$subject = '<a class="crm-popup medium-popup" href="' . $url . '" title="' . $viewTitle . '">' . $subject . '</a>';
}
$values[$dao->id]['subject'] = $subject;
// add activity assignee to activity selector. CRM-4485.
if (isset($dao->assignee)) {
if ($dao->ismultiple == 1) {
if ($dao->reporter_id != $dao->assignee_id) {
$values[$dao->id]['reporter'] .= $hasViewContact ? ' / ' . "<a href='{$contactViewUrl}{$dao->assignee_id}'>{$dao->assignee}</a>" : ' / ' . $dao->assignee;
}
$values[$dao->id]['assignee'] = $dao->assignee;
} else {
$values[$dao->id]['reporter'] .= ' / ' . ts('(multiple)');
}
}
// FIXME: Why are we not using CRM_Core_Action for these links? This is too much manual work and likely to get out-of-sync with core markup.
$url = "";
$css = 'class="action-item crm-hover-button"';
$additionalUrl = "&id={$dao->id}";
if (!$dao->deleted) {
//hide edit link of activity type email.CRM-4530.
if (!in_array($dao->type, $emailActivityTypeIDs)) {
//hide Edit link if activity type is NOT editable (special case activities).CRM-5871
if ($allowEdit) {
$url = '<a ' . $css . ' href="' . $editUrl . $additionalUrl . '">' . ts('Edit') . '</a> ';
}
}
if ($allowDelete) {
$url .= ' <a ' . str_replace('action-item', 'action-item small-popup', $css) . ' href="' . $deleteUrl . $additionalUrl . '">' . ts('Delete') . '</a>';
}
} elseif (!$caseDeleted) {
$url = ' <a ' . $css . ' href="' . $restoreUrl . $additionalUrl . '">' . ts('Restore') . '</a>';
$values[$dao->id]['status'] = $values[$dao->id]['status'] . '<br /> (deleted)';
}
//check for operations.
if (self::checkPermission($dao->id, 'Move To Case', $dao->activity_type_id)) {
$url .= ' <a ' . $css . ' href="#" onClick="Javascript:fileOnCase( \'move\',' . $dao->id . ', ' . $caseID . ', this ); return false;">' . ts('Move To Case') . '</a> ';
}
if (self::checkPermission($dao->id, 'Copy To Case', $dao->activity_type_id)) {
$url .= ' <a ' . $css . ' href="#" onClick="Javascript:fileOnCase( \'copy\',' . $dao->id . ',' . $caseID . ', this ); return false;">' . ts('Copy To Case') . '</a> ';
}
// if there are file attachments we will return how many and, if only one, add a link to it
if (!empty($dao->attachment_ids)) {
$attachmentIDs = explode(',', $dao->attachment_ids);
$values[$dao->id]['no_attachments'] = count($attachmentIDs);
if ($values[$dao->id]['no_attachments'] == 1) {
// if there is only one it's easy to do a link - otherwise just flag it
$attachmentViewUrl = CRM_Utils_System::url("civicrm/file", "reset=1&eid=" . $dao->id . "&id=" . $dao->attachment_ids, FALSE, NULL, FALSE);
$url .= " <a href='{$attachmentViewUrl}' ><span class='icon paper-icon'></span></a>";
}
}
$values[$dao->id]['links'] = $url;
$values[$dao->id]['class'] = "";
if (!empty($dao->priority)) {
if ($dao->priority == CRM_Core_OptionGroup::getValue('priority', 'Urgent', 'name')) {
$values[$dao->id]['class'] = $values[$dao->id]['class'] . "priority-urgent ";
} elseif ($dao->priority == CRM_Core_OptionGroup::getValue('priority', 'Low', 'name')) {
$values[$dao->id]['class'] = $values[$dao->id]['class'] . "priority-low ";
}
}
if (CRM_Utils_Array::crmInArray($dao->status, $compStatusValues)) {
$values[$dao->id]['class'] = $values[$dao->id]['class'] . " status-completed";
} else {
if (CRM_Utils_Date::overdue($dao->display_date)) {
$values[$dao->id]['class'] = $values[$dao->id]['class'] . " status-overdue";
} else {
$values[$dao->id]['class'] = $values[$dao->id]['class'] . " status-scheduled";
}
}
if ($allowEdit) {
$values[$dao->id]['status'] = '<a class="crm-activity-status crm-activity-status-' . $dao->id . ' ' . $values[$dao->id]['class'] . ' crm-activity-change-status crm-editable-enabled" activity_id=' . $dao->id . ' current_status=' . $dao->status . ' case_id=' . $caseID . ' href="#" title=\'' . $statusTitle . '\'>' . $values[$dao->id]['status'] . '</a>';
}
}
$dao->free();
return $values;
}
示例2: summary
/**
* handle the values in summary mode
*
* @param array $values the array of values belonging to this line
*
* @return boolean the result of this processing
* @access public
*/
function summary(&$values)
{
$erroneousField = NULL;
$response = $this->setActiveFieldValues($values, $erroneousField);
$errorRequired = FALSE;
if ($this->_membershipTypeIndex < 0) {
$errorRequired = TRUE;
} else {
$errorRequired = !CRM_Utils_Array::value($this->_membershipTypeIndex, $values);
}
if ($errorRequired) {
array_unshift($values, ts('Missing required fields'));
return CRM_Import_Parser::ERROR;
}
$params =& $this->getActiveFieldParams();
$errorMessage = NULL;
//To check whether start date or join date is provided
if (!CRM_Utils_Array::value('membership_start_date', $params) && !CRM_Utils_Array::value('join_date', $params)) {
$errorMessage = 'Membership Start Date is required to create a memberships.';
CRM_Contact_Import_Parser_Contact::addToErrorMsg('Start Date', $errorMessage);
}
//end
//for date-Formats
$session = CRM_Core_Session::singleton();
$dateType = $session->get('dateTypes');
foreach ($params as $key => $val) {
if ($val) {
switch ($key) {
case 'join_date':
if (CRM_Utils_Date::convertToDefaultDate($params, $dateType, $key)) {
if (!CRM_Utils_Rule::date($params[$key])) {
CRM_Contact_Import_Parser_Contact::addToErrorMsg('Member Since', $errorMessage);
}
} else {
CRM_Contact_Import_Parser_Contact::addToErrorMsg('Member Since', $errorMessage);
}
break;
case 'membership_start_date':
if (CRM_Utils_Date::convertToDefaultDate($params, $dateType, $key)) {
if (!CRM_Utils_Rule::date($params[$key])) {
CRM_Contact_Import_Parser_Contact::addToErrorMsg('Start Date', $errorMessage);
}
} else {
CRM_Contact_Import_Parser_Contact::addToErrorMsg('Start Date', $errorMessage);
}
break;
case 'membership_end_date':
if (CRM_Utils_Date::convertToDefaultDate($params, $dateType, $key)) {
if (!CRM_Utils_Rule::date($params[$key])) {
CRM_Contact_Import_Parser_Contact::addToErrorMsg('End date', $errorMessage);
}
} else {
CRM_Contact_Import_Parser_Contact::addToErrorMsg('End date', $errorMessage);
}
break;
case 'membership_type_id':
$membershipTypes = CRM_Member_PseudoConstant::membershipType();
if (!CRM_Utils_Array::crmInArray($val, $membershipTypes) && !array_key_exists($val, $membershipTypes)) {
CRM_Contact_Import_Parser_Contact::addToErrorMsg('Membership Type', $errorMessage);
}
break;
case 'status_id':
if (!CRM_Utils_Array::crmInArray($val, CRM_Member_PseudoConstant::membershipStatus())) {
CRM_Contact_Import_Parser_Contact::addToErrorMsg('Membership Status', $errorMessage);
}
break;
case 'email':
if (!CRM_Utils_Rule::email($val)) {
CRM_Contact_Import_Parser_Contact::addToErrorMsg('Email Address', $errorMessage);
}
}
}
}
//date-Format part ends
$params['contact_type'] = 'Membership';
//checking error in custom data
CRM_Contact_Import_Parser_Contact::isErrorInCustomData($params, $errorMessage);
if ($errorMessage) {
$tempMsg = "Invalid value for field(s) : {$errorMessage}";
array_unshift($values, $tempMsg);
$errorMessage = NULL;
return CRM_Import_Parser::ERROR;
}
return CRM_Import_Parser::VALID;
}
示例3: getCaseActivity
//.........这里部分代码省略.........
}
if (!$rp) {
$rp = 10;
}
$start = ($page - 1) * $rp;
$query = $select . $from . $where . $groupBy . $orderBy;
$params = array(1 => array($caseID, 'Integer'));
$dao =& CRM_Core_DAO::executeQuery($query, $params);
$params['total'] = $dao->N;
//FIXME: need to optimize/cache these queries
$limit = " LIMIT {$start}, {$rp}";
$query .= $limit;
$dao =& CRM_Core_DAO::executeQuery($query, $params);
$activityTypes = CRM_Case_PseudoConstant::activityType(false, true);
require_once "CRM/Utils/Date.php";
require_once "CRM/Core/PseudoConstant.php";
$activityStatus = CRM_Core_PseudoConstant::activityStatus();
$activityPriority = CRM_Core_PseudoConstant::priority();
$url = CRM_Utils_System::url("civicrm/case/activity", "reset=1&cid={$contactID}&caseid={$caseID}", false, null, false);
$editUrl = "{$url}&action=update";
$deleteUrl = "{$url}&action=delete";
$restoreUrl = "{$url}&action=renew";
$viewTitle = ts('View this activity.');
require_once 'CRM/Core/OptionGroup.php';
$emailActivityTypeIDs = array('Email' => CRM_Core_OptionGroup::getValue('activity_type', 'Email', 'name'), 'Inbound Email' => CRM_Core_OptionGroup::getValue('activity_type', 'Inbound Email', 'name'));
$activityCondition = " AND v.name IN ('Open Case', 'Change Case Type', 'Change Case Status', 'Change Case Start Date')";
$caseAttributeActivities = CRM_Core_OptionGroup::values('activity_type', false, false, false, $activityCondition);
require_once 'CRM/Core/OptionGroup.php';
$emailActivityTypeIDs = array('Email' => CRM_Core_OptionGroup::getValue('activity_type', 'Email', 'name'), 'Inbound Email' => CRM_Core_OptionGroup::getValue('activity_type', 'Inbound Email', 'name'));
require_once 'CRM/Case/BAO/Case.php';
$caseDeleted = CRM_Core_DAO::getFieldValue('CRM_Case_DAO_Case', $caseID, 'is_deleted');
//check for delete activities CRM-4418
require_once 'CRM/Core/Permission.php';
$allowToDeleteActivities = CRM_Core_Permission::check('delete activities');
// define statuses which are handled like Completed status (others are assumed to be handled like Scheduled status)
$compStatusValues = array();
$compStatusNames = array('Completed', 'Left Message', 'Cancelled', 'Unreachable', 'Not Required');
foreach ($compStatusNames as $name) {
$compStatusValues[] = CRM_Core_OptionGroup::getValue('activity_status', $name, 'name');
}
$contactViewUrl = CRM_Utils_System::url("civicrm/contact/view", "reset=1&cid=", false, null, false);
while ($dao->fetch()) {
$values[$dao->id]['id'] = $dao->id;
$values[$dao->id]['type'] = $activityTypes[$dao->type]['label'];
$values[$dao->id]['reporter'] = "<a href='{$contactViewUrl}{$dao->reporter_id}'>{$dao->reporter}</a>";
$values[$dao->id]['display_date'] = CRM_Utils_Date::customFormat($dao->display_date);
$values[$dao->id]['status'] = $activityStatus[$dao->status];
$values[$dao->id]['subject'] = "<a href='javascript:viewActivity( {$dao->id}, {$contactID} );' title='{$viewTitle}'>{$dao->subject}</a>";
// add activity assignee to activity selector. CRM-4485.
if (isset($dao->assignee)) {
if ($dao->ismultiple == 1) {
$values[$dao->id]['reporter'] .= ' / ' . "<a href='{$contactViewUrl}{$dao->assignee_id}'>{$dao->assignee}</a>";
$values[$dao->id]['assignee'] = $dao->assignee;
} else {
$values[$dao->id]['reporter'] .= ' / ' . ts('(multiple)');
}
}
$url = "";
$additionalUrl = "&id={$dao->id}";
if (!$dao->deleted) {
//hide edit link of activity type email.CRM-4530.
if (!in_array($dao->type, $emailActivityTypeIDs)) {
$url = "<a href='" . $editUrl . $additionalUrl . "'>" . ts('Edit') . "</a> ";
}
//block deleting activities which affects
//case attributes.CRM-4543
if (!array_key_exists($dao->type, $caseAttributeActivities) && $allowToDeleteActivities) {
if (!empty($url)) {
$url .= " | ";
}
$url .= "<a href='" . $deleteUrl . $additionalUrl . "'>" . ts('Delete') . "</a>";
}
} else {
if (!$caseDeleted) {
$url = "<a href='" . $restoreUrl . $additionalUrl . "'>" . ts('Restore') . "</a>";
$values[$dao->id]['status'] = $values[$dao->id]['status'] . '<br /> (deleted)';
}
}
$values[$dao->id]['links'] = $url;
$values[$dao->id]['class'] = "";
if (!empty($dao->priority)) {
if ($dao->priority == CRM_Core_OptionGroup::getValue('priority', 'Urgent', 'name')) {
$values[$dao->id]['class'] = $values[$dao->id]['class'] . "priority-urgent ";
} elseif ($dao->priority == CRM_Core_OptionGroup::getValue('priority', 'Low', 'name')) {
$values[$dao->id]['class'] = $values[$dao->id]['class'] . "priority-low ";
}
}
if (CRM_Utils_Array::crmInArray($dao->status, $compStatusValues)) {
$values[$dao->id]['class'] = $values[$dao->id]['class'] . " status-completed";
} else {
if (CRM_Utils_Date::overdue($dao->display_date)) {
$values[$dao->id]['class'] = $values[$dao->id]['class'] . " status-overdue";
} else {
$values[$dao->id]['class'] = $values[$dao->id]['class'] . " status-scheduled";
}
}
}
$dao->free();
return $values;
}
示例4: getCaseActivity
//.........这里部分代码省略.........
$statusTitle = ts('Edit Status');
$emailActivityTypeIDs = array('Email' => CRM_Core_OptionGroup::getValue('activity_type', 'Email', 'name'), 'Inbound Email' => CRM_Core_OptionGroup::getValue('activity_type', 'Inbound Email', 'name'));
$emailActivityTypeIDs = array('Email' => CRM_Core_OptionGroup::getValue('activity_type', 'Email', 'name'), 'Inbound Email' => CRM_Core_OptionGroup::getValue('activity_type', 'Inbound Email', 'name'));
$caseDeleted = CRM_Core_DAO::getFieldValue('CRM_Case_DAO_Case', $caseID, 'is_deleted');
// define statuses which are handled like Completed status (others are assumed to be handled like Scheduled status)
$compStatusValues = array();
$compStatusNames = array('Completed', 'Left Message', 'Cancelled', 'Unreachable', 'Not Required');
foreach ($compStatusNames as $name) {
$compStatusValues[] = CRM_Core_OptionGroup::getValue('activity_status', $name, 'name');
}
$contactViewUrl = CRM_Utils_System::url("civicrm/contact/view", "reset=1&cid=", FALSE, NULL, FALSE);
$hasViewContact = CRM_Core_Permission::giveMeAllACLs();
$clientIds = self::retrieveContactIdsByCaseId($caseID);
if (!$userID) {
$session = CRM_Core_Session::singleton();
$userID = $session->get('userID');
}
$caseActivities = array();
$caseCount = 0;
while ($dao->fetch()) {
$caseCount++;
$caseActivity = array();
$caseActivityId = $dao->id;
$allowView = self::checkPermission($caseActivityId, 'view', $dao->activity_type_id, $userID);
$allowEdit = self::checkPermission($caseActivityId, 'edit', $dao->activity_type_id, $userID);
$allowDelete = self::checkPermission($caseActivityId, 'delete', $dao->activity_type_id, $userID);
//do not have sufficient permission
//to access given case activity record.
if (!$allowView && !$allowEdit && !$allowDelete) {
continue;
}
//Add classes to the row, via DataTables syntax
$caseActivity['DT_RowClass'] = "crm-entity";
if (CRM_Utils_Array::crmInArray($dao->status, $compStatusValues)) {
$caseActivity['DT_RowClass'] .= " status-completed";
} else {
if (CRM_Utils_Date::overdue($dao->display_date)) {
$caseActivity['DT_RowClass'] .= " status-overdue";
} else {
$caseActivity['DT_RowClass'] .= " status-scheduled";
}
}
if (!empty($dao->priority)) {
if ($dao->priority == CRM_Core_OptionGroup::getValue('priority', 'Urgent', 'name')) {
$caseActivity['DT_RowClass'] .= " priority-urgent ";
} elseif ($dao->priority == CRM_Core_OptionGroup::getValue('priority', 'Low', 'name')) {
$caseActivity['DT_RowClass'] .= " priority-low ";
}
}
//Add data to the row for inline editing, via DataTable syntax
$caseActivity['DT_RowData'] = array();
$caseActivity['DT_RowData']['entity'] = 'activity';
$caseActivity['DT_RowData']['id'] = $caseActivityId;
//Activity Date and Time
$caseActivity['activity_date_time'] = CRM_Utils_Date::customFormat($dao->display_date);
//Activity Subject
$caseActivity['subject'] = $dao->subject;
//Activity Type
$caseActivity['type'] = $activityTypes[$dao->type]['label'];
//Activity Target (With)
$targetContact = '';
if (isset($dao->target_contact_id)) {
$targetContact = $dao->target_contact_name;
if ($hasViewContact) {
$targetContact = '<a href="' . $contactViewUrl . $dao->target_contact_id . '">' . $dao->target_contact_name . '</a>';
}
示例5: getCaseActivity
//.........这里部分代码省略.........
while ($dao->fetch()) {
$allowView = self::checkPermission($dao->id, 'view', $dao->activity_type_id, $userID);
$allowEdit = self::checkPermission($dao->id, 'edit', $dao->activity_type_id, $userID);
$allowDelete = self::checkPermission($dao->id, 'delete', $dao->activity_type_id, $userID);
//do not have sufficient permission
//to access given case activity record.
if (!$allowView && !$allowEdit && !$allowDelete) {
continue;
}
$values[$dao->id]['id'] = $dao->id;
$values[$dao->id]['type'] = $activityTypes[$dao->type]['label'];
$reporterName = $dao->reporter;
if ($hasViewContact) {
$reporterName = '<a href="' . $contactViewUrl . $dao->reporter_id . '">' . $dao->reporter . '</a>';
}
$values[$dao->id]['reporter'] = $reporterName;
$targetNames = CRM_Activity_BAO_ActivityTarget::getTargetNames($dao->id);
$targetContactUrls = $withContacts = array();
foreach ($targetNames as $targetId => $targetName) {
if (!in_array($targetId, $clientIds)) {
$withContacts[$targetId] = $targetName;
}
}
foreach ($withContacts as $cid => $name) {
if ($hasViewContact) {
$name = '<a href="' . $contactViewUrl . $cid . '">' . $name . '</a>';
}
$targetContactUrls[] = $name;
}
$values[$dao->id]['with_contacts'] = implode('; ', $targetContactUrls);
$values[$dao->id]['display_date'] = CRM_Utils_Date::customFormat($dao->display_date);
$values[$dao->id]['status'] = $activityStatus[$dao->status];
//check for view activity.
$subject = empty($dao->subject) ? '(' . ts('no subject') . ')' : $dao->subject;
if ($allowView) {
$subject = '<a href="javascript:' . $type . 'viewActivity(' . $dao->id . ',' . $contactID . ',' . '\'' . $type . '\' );" title=' . $viewTitle . '>' . $subject . '</a>';
}
$values[$dao->id]['subject'] = $subject;
// add activity assignee to activity selector. CRM-4485.
if (isset($dao->assignee)) {
if ($dao->ismultiple == 1) {
if ($dao->reporter_id != $dao->assignee_id) {
$values[$dao->id]['reporter'] .= $hasViewContact ? ' / ' . "<a href='{$contactViewUrl}{$dao->assignee_id}'>{$dao->assignee}</a>" : ' / ' . $dao->assignee;
}
$values[$dao->id]['assignee'] = $dao->assignee;
} else {
$values[$dao->id]['reporter'] .= ' / ' . ts('(multiple)');
}
}
$url = "";
$additionalUrl = "&id={$dao->id}";
if (!$dao->deleted) {
//hide edit link of activity type email.CRM-4530.
if (!in_array($dao->type, $emailActivityTypeIDs)) {
//hide Edit link if activity type is NOT editable (special case activities).CRM-5871
if ($allowEdit) {
$url = '<a href="' . $editUrl . $additionalUrl . '">' . ts('Edit') . '</a> ';
}
}
if ($allowDelete) {
if (!empty($url)) {
$url .= " | ";
}
$url .= '<a href="' . $deleteUrl . $additionalUrl . '">' . ts('Delete') . '</a>';
}
} else {
if (!$caseDeleted) {
$url = '<a href="' . $restoreUrl . $additionalUrl . '">' . ts('Restore') . '</a>';
$values[$dao->id]['status'] = $values[$dao->id]['status'] . '<br /> (deleted)';
}
}
//check for operations.
if (self::checkPermission($dao->id, 'Move To Case', $dao->activity_type_id)) {
$url .= " | " . '<a href="#" onClick="Javascript:fileOnCase( \'move\',' . $dao->id . ', ' . $caseID . ' ); return false;">' . ts('Move To Case') . '</a> ';
}
if (self::checkPermission($dao->id, 'Copy To Case', $dao->activity_type_id)) {
$url .= " | " . '<a href="#" onClick="Javascript:fileOnCase( \'copy\',' . $dao->id . ',' . $caseID . ' ); return false;">' . ts('Copy To Case') . '</a> ';
}
$values[$dao->id]['links'] = $url;
$values[$dao->id]['class'] = "";
if (!empty($dao->priority)) {
if ($dao->priority == CRM_Core_OptionGroup::getValue('priority', 'Urgent', 'name')) {
$values[$dao->id]['class'] = $values[$dao->id]['class'] . "priority-urgent ";
} elseif ($dao->priority == CRM_Core_OptionGroup::getValue('priority', 'Low', 'name')) {
$values[$dao->id]['class'] = $values[$dao->id]['class'] . "priority-low ";
}
}
if (CRM_Utils_Array::crmInArray($dao->status, $compStatusValues)) {
$values[$dao->id]['class'] = $values[$dao->id]['class'] . " status-completed";
} else {
if (CRM_Utils_Date::overdue($dao->display_date)) {
$values[$dao->id]['class'] = $values[$dao->id]['class'] . " status-overdue";
} else {
$values[$dao->id]['class'] = $values[$dao->id]['class'] . " status-scheduled";
}
}
}
$dao->free();
return $values;
}