本文整理汇总了PHP中CRM_Utils_Hook::export方法的典型用法代码示例。如果您正苦于以下问题:PHP CRM_Utils_Hook::export方法的具体用法?PHP CRM_Utils_Hook::export怎么用?PHP CRM_Utils_Hook::export使用的例子?那么恭喜您, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类CRM_Utils_Hook
的用法示例。
在下文中一共展示了CRM_Utils_Hook::export方法的3个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的PHP代码示例。
示例1: exportComponents
public static function exportComponents($selectAll, $ids, $params, $order = NULL, $fields = NULL, $moreReturnProperties = NULL, $exportMode = CRM_Export_Form_Select_Relationship::RELATIONSHIP_EXPORT, $componentClause = NULL, $componentTable = NULL, $mergeSameAddress = FALSE, $mergeSameHousehold = FALSE, $exportParams = array(), $queryOperator = 'AND')
{
$headerRows = $returnProperties = array();
$queryMode = CRM_Relationship_BAO_Query::MODE_RELATIONSHIPS;
//Welke velden exporteren, gezet bij een mapping, indien niet gezet, primary fields.
if ($fields) {
foreach ($fields as $key => $value) {
$fieldName = CRM_Utils_Array::value(0, $value);
if (!$fieldName) {
continue;
}
$returnProperties[$fieldName] = 1;
}
} else {
// Copied from CRM_Relationship_BAO_QUERY should be refactored to seperate
// method.
$fields = CRM_Contact_BAO_Relationship::fields();
// Add display_name for both contacts
$contact_fields = CRM_Contact_BAO_Contact::exportableFields('All', FALSE, TRUE, TRUE);
$fields['contact_a'] = $contact_fields['display_name'];
$fields['contact_a']['where'] = 'contact_a.display_name';
$fields['contact_b'] = $contact_fields['display_name'];
$fields['contact_b']['where'] = 'contact_b.display_name';
// Add relationship type field
$relationship_type_fields = CRM_Contact_BAO_RelationshipType::fields();
$fields['relationship_type'] = $relationship_type_fields['label_a_b'];
$fields['relationship_type']['where'] = 'relationship_type.label_a_b';
// Add custom fields
$fields = array_merge($fields, CRM_Core_BAO_CustomField::getFieldsForImport('Relationship'));
$returnProperties = CRM_Relationship_BAO_Query::defaultReturnProperties();
}
if ($moreReturnProperties) {
$returnProperties = array_merge($returnProperties, $moreReturnProperties);
}
$query = new CRM_Relationship_BAO_Query($params, $returnProperties, NULL, FALSE, FALSE, FALSE, TRUE, $queryOperator);
//sort by state
//CRM-15301
$query->_sort = $order;
list($select, $from, $where, $having) = $query->query();
$allRelContactArray = $relationQuery = array();
if (!$selectAll && $componentTable) {
// TODO For not select all
//$from .= " INNER JOIN $componentTable ctTable ON ctTable.contact_id = contact_a.id ";
} elseif ($componentClause) {
if (empty($where)) {
$where = "WHERE {$componentClause}";
} else {
$where .= " AND {$componentClause}";
}
}
$queryString = "{$select} {$from} {$where} {$having}";
$groupBy = "";
if ($queryMode & CRM_Relationship_BAO_Query::MODE_RELATIONSHIPS && $query->_useGroupBy) {
$groupBy = " GROUP BY relationship.id";
}
$queryString .= $groupBy;
// always add relationship.id to the ORDER clause
// so the order is deterministic
if (strpos('relationship.id', $order) === FALSE) {
$order .= ", relationship.id";
}
if ($order) {
list($field, $dir) = explode(' ', $order, 2);
$field = trim($field);
if (!empty($returnProperties[$field])) {
//CRM-15301
$queryString .= " ORDER BY {$order}";
}
}
$componentDetails = $headerRows = $sqlColumns = array();
$setHeader = TRUE;
$rowCount = self::EXPORT_ROW_COUNT;
$offset = 0;
// we write to temp table often to avoid using too much memory
$tempRowCount = 100;
$count = -1;
// for CRM-3157 purposes
$i18n = CRM_Core_I18n::singleton();
$outputColumns = array();
//@todo - it would be clearer to start defining output columns earlier in this function rather than stick with return properties until this point
// as the array is not actually 'returnProperties' after the sql query is formed - making the alterations to it confusing
foreach ($returnProperties as $key => $value) {
$outputColumns[$key] = $value;
}
while (1) {
$limitQuery = "{$queryString} LIMIT {$offset}, {$rowCount}";
$dao = CRM_Core_DAO::executeQuery($limitQuery);
if ($dao->N <= 0) {
break;
}
while ($dao->fetch()) {
$count++;
$row = array();
//convert the pseudo constants
// CRM-14398 there is problem in this architecture that is not easily solved. For now we are using the cloned
// temporary iterationDAO object to get around it.
// the issue is that the convertToPseudoNames function is adding additional properties (e.g for campaign) to the DAO object
// these additional properties are NOT reset when the $dao cycles through the while loop
// nor are they overwritten as they are not in the loop
// the convertToPseudoNames will not adequately over-write them either as it doesn't 'kick-in' unless the
//.........这里部分代码省略.........
示例2: exportComponents
/**
* Get the list the export fields.
*
* @param int $selectAll
* User preference while export.
* @param array $ids
* Contact ids.
* @param array $params
* Associated array of fields.
* @param string $order
* Order by clause.
* @param array $fields
* Associated array of fields.
* @param array $moreReturnProperties
* Additional return fields.
* @param int $exportMode
* Export mode.
* @param string $componentClause
* Component clause.
* @param string $componentTable
* Component table.
* @param bool $mergeSameAddress
* Merge records if they have same address.
* @param bool $mergeSameHousehold
* Merge records if they belong to the same household.
*
* @param array $exportParams
* @param string $queryOperator
*
*/
public static function exportComponents($selectAll, $ids, $params, $order = NULL, $fields = NULL, $moreReturnProperties = NULL, $exportMode = CRM_Export_Form_Select::CONTACT_EXPORT, $componentClause = NULL, $componentTable = NULL, $mergeSameAddress = FALSE, $mergeSameHousehold = FALSE, $exportParams = array(), $queryOperator = 'AND')
{
$headerRows = $returnProperties = array();
$primary = $paymentFields = $selectedPaymentFields = FALSE;
$origFields = $fields;
$relationField = NULL;
$phoneTypes = CRM_Core_PseudoConstant::get('CRM_Core_DAO_Phone', 'phone_type_id');
$imProviders = CRM_Core_PseudoConstant::get('CRM_Core_DAO_IM', 'provider_id');
$contactRelationshipTypes = CRM_Contact_BAO_Relationship::getContactRelationshipType(NULL, NULL, NULL, NULL, TRUE, 'name', FALSE);
$queryMode = self::getQueryMode($exportMode);
if ($fields) {
//construct return properties
$locationTypes = CRM_Core_PseudoConstant::get('CRM_Core_DAO_Address', 'location_type_id');
$locationTypeFields = array('street_address', 'supplemental_address_1', 'supplemental_address_2', 'city', 'postal_code', 'postal_code_suffix', 'geo_code_1', 'geo_code_2', 'state_province', 'country', 'phone', 'email', 'im');
foreach ($fields as $key => $value) {
$phoneTypeId = $imProviderId = NULL;
$relationshipTypes = $fieldName = CRM_Utils_Array::value(1, $value);
if (!$fieldName) {
continue;
}
// get phoneType id and IM service provider id separately
if ($fieldName == 'phone') {
$phoneTypeId = CRM_Utils_Array::value(3, $value);
} elseif ($fieldName == 'im') {
$imProviderId = CRM_Utils_Array::value(3, $value);
}
if (array_key_exists($relationshipTypes, $contactRelationshipTypes)) {
if (!empty($value[2])) {
$relationField = CRM_Utils_Array::value(2, $value);
if (trim(CRM_Utils_Array::value(3, $value))) {
$relLocTypeId = CRM_Utils_Array::value(3, $value);
} else {
$relLocTypeId = 'Primary';
}
if ($relationField == 'phone') {
$relPhoneTypeId = CRM_Utils_Array::value(4, $value);
} elseif ($relationField == 'im') {
$relIMProviderId = CRM_Utils_Array::value(4, $value);
}
} elseif (!empty($value[4])) {
$relationField = CRM_Utils_Array::value(4, $value);
$relLocTypeId = CRM_Utils_Array::value(5, $value);
if ($relationField == 'phone') {
$relPhoneTypeId = CRM_Utils_Array::value(6, $value);
} elseif ($relationField == 'im') {
$relIMProviderId = CRM_Utils_Array::value(6, $value);
}
}
}
$contactType = CRM_Utils_Array::value(0, $value);
$locTypeId = CRM_Utils_Array::value(2, $value);
if ($relationField) {
if (in_array($relationField, $locationTypeFields) && is_numeric($relLocTypeId)) {
if ($relPhoneTypeId) {
$returnProperties[$relationshipTypes]['location'][$locationTypes[$relLocTypeId]]['phone-' . $relPhoneTypeId] = 1;
} elseif ($relIMProviderId) {
$returnProperties[$relationshipTypes]['location'][$locationTypes[$relLocTypeId]]['im-' . $relIMProviderId] = 1;
} else {
$returnProperties[$relationshipTypes]['location'][$locationTypes[$relLocTypeId]][$relationField] = 1;
}
$relPhoneTypeId = $relIMProviderId = NULL;
} else {
$returnProperties[$relationshipTypes][$relationField] = 1;
}
} elseif (is_numeric($locTypeId)) {
if ($phoneTypeId) {
$returnProperties['location'][$locationTypes[$locTypeId]]['phone-' . $phoneTypeId] = 1;
} elseif ($imProviderId) {
$returnProperties['location'][$locationTypes[$locTypeId]]['im-' . $imProviderId] = 1;
} else {
//.........这里部分代码省略.........
示例3: exportComponents
/**
* Function to get the list the export fields
*
* @param int $selectAll user preference while export
* @param array $ids contact ids
* @param array $params associated array of fields
* @param string $order order by clause
* @param array $fields associated array of fields
* @param array $moreReturnProperties additional return fields
* @param int $exportMode export mode
* @param string $componentClause component clause
* @param string $componentTable component table
* @param bool $mergeSameAddress merge records if they have same address
* @param bool $mergeSameHousehold merge records if they belong to the same household
*
* @static
* @access public
*/
static function exportComponents($selectAll, $ids, $params, $order = null, $fields = null, $moreReturnProperties = null, $exportMode = CRM_Export_Form_Select::CONTACT_EXPORT, $componentClause = null, $componentTable = null, $mergeSameAddress = false, $mergeSameHousehold = false)
{
$headerRows = $returnProperties = array();
$primary = $paymentFields = false;
$origFields = $fields;
$queryMode = null;
$phoneTypes = CRM_Core_PseudoConstant::phoneType();
$imProviders = CRM_Core_PseudoConstant::IMProvider();
$contactRelationshipTypes = CRM_Contact_BAO_Relationship::getContactRelationshipType(null, null, null, null, true, 'label', false);
$queryMode = CRM_Contact_BAO_Query::MODE_CONTACTS;
switch ($exportMode) {
case CRM_Export_Form_Select::CONTRIBUTE_EXPORT:
$queryMode = CRM_Contact_BAO_Query::MODE_CONTRIBUTE;
break;
case CRM_Export_Form_Select::EVENT_EXPORT:
$queryMode = CRM_Contact_BAO_Query::MODE_EVENT;
break;
case CRM_Export_Form_Select::MEMBER_EXPORT:
$queryMode = CRM_Contact_BAO_Query::MODE_MEMBER;
break;
case CRM_Export_Form_Select::PLEDGE_EXPORT:
$queryMode = CRM_Contact_BAO_Query::MODE_PLEDGE;
break;
case CRM_Export_Form_Select::CASE_EXPORT:
$queryMode = CRM_Contact_BAO_Query::MODE_CASE;
break;
case CRM_Export_Form_Select::GRANT_EXPORT:
$queryMode = CRM_Contact_BAO_Query::MODE_GRANT;
break;
case CRM_Export_Form_Select::ACTIVITY_EXPORT:
$queryMode = CRM_Contact_BAO_Query::MODE_ACTIVITY;
break;
}
require_once 'CRM/Core/BAO/CustomField.php';
if ($fields) {
//construct return properties
$locationTypes = CRM_Core_PseudoConstant::locationType();
$locationTypeFields = array('street_address', 'supplemental_address_1', 'supplemental_address_2', 'city', 'postal_code', 'postal_code_suffix', 'geo_code_1', 'geo_code_2', 'state_province', 'country', 'phone', 'email', 'im');
foreach ($fields as $key => $value) {
$phoneTypeId = $imProviderId = null;
$relationshipTypes = $fieldName = CRM_Utils_Array::value(1, $value);
if (!$fieldName) {
continue;
}
// get phoneType id and IM service provider id seperately
if ($fieldName == 'phone') {
$phoneTypeId = CRM_Utils_Array::value(3, $value);
} else {
if ($fieldName == 'im') {
$imProviderId = CRM_Utils_Array::value(3, $value);
}
}
if (array_key_exists($relationshipTypes, $contactRelationshipTypes)) {
if (CRM_Utils_Array::value(2, $value)) {
$relationField = CRM_Utils_Array::value(2, $value);
if (trim(CRM_Utils_Array::value(3, $value))) {
$relLocTypeId = CRM_Utils_Array::value(3, $value);
} else {
$relLocTypeId = 'Primary';
}
if ($relationField == 'phone') {
$relPhoneTypeId = CRM_Utils_Array::value(4, $value);
} else {
if ($relationField == 'im') {
$relIMProviderId = CRM_Utils_Array::value(4, $value);
}
}
} else {
if (CRM_Utils_Array::value(4, $value)) {
$relationField = CRM_Utils_Array::value(4, $value);
$relLocTypeId = CRM_Utils_Array::value(5, $value);
if ($relationField == 'phone') {
$relPhoneTypeId = CRM_Utils_Array::value(6, $value);
} else {
if ($relationField == 'im') {
$relIMProviderId = CRM_Utils_Array::value(6, $value);
}
}
}
}
}
$contactType = CRM_Utils_Array::value(0, $value);
//.........这里部分代码省略.........