drupal 7에서 실행되고 civicrm 4.4.1을 사용하는 사이트가 있습니다. 검색 결과에 이벤트가 포함되어야합니다. 지금까지 모두 내가 찾은drupal7에서 검색 가능한 civiEvents
은 드루팔 7 나는 또한 검색 페이지 모듈을 시도
을 사용할 수 없습니다 모듈을 필요 civicrm에 대한 문서를 날짜를 기입하고이 이벤트를 잡을 수 없습니다.
drupal 7에서 실행되고 civicrm 4.4.1을 사용하는 사이트가 있습니다. 검색 결과에 이벤트가 포함되어야합니다. 지금까지 모두 내가 찾은drupal7에서 검색 가능한 civiEvents
은 드루팔 7 나는 또한 검색 페이지 모듈을 시도
을 사용할 수 없습니다 모듈을 필요 civicrm에 대한 문서를 날짜를 기입하고이 이벤트를 잡을 수 없습니다.
당신이 찾고있는 것이 조금 분명하지 않으므로 두 가지 대답을하겠습니다.
검색 메뉴에서 고급 검색을 선택하면 가장 쉽게 이벤트 참여자를 검색 할 수 있습니다. 이벤트 헤더를 클릭하면 이벤트 정보를 볼 수 있습니다 - 섹션이 열립니다. 검색 양식에서 검색 할 필요가없는 경우 (예 : 웨스트 버지니아에 거주하는 모금 활동 참석자) 검색 할 때 다른 것을 입력 할 필요가 없습니다.
Drupal 컨텐츠 검색 결과에 CiviCRM 이벤트를 표시하려면 이벤트를 컨텐츠로 표시해야합니다. CiviCRM 정보는 드루팔 (Drupal) 컨텐츠와 100 % 별도이지만, CiviCRM 이벤트를 엔티티로 노출 시키려면 CiviCRM 엔티티 모듈 https://drupal.org/project/civicrm_entity을 사용하는 것이 좋습니다.
표준 Drupal 사이트 검색에 CiviCRM 이벤트가 포함될 사전 빌드 된 것을 보지 못했습니다. 검색 API를 살펴보면 모듈을 만들 수는 있지만 가능하지 않다고 생각합니다. 검색 API에 대한 모듈을 작성하지는 않았지만 이런 종류의 통합을 작성하기 위해 약간의 부기가있는 것 같습니다.
고객을 위해 몇 가지 방법으로 처리했습니다. 첫째, 이벤트에 대한 콘텐츠 형식을 만들고 콘텐츠 형식에 대한 자세한 설명과 기본 날짜 정보를 넣습니다. CiviCRM에서 이벤트를 생성 할 때 등록을위한 베어 본 이벤트를 만들고 이벤트 노드에서 이벤트 등록 페이지로 직접 링크하십시오. 둘째, 멋진 링크와보기로 이벤트 검색을 별도의 작업으로 만듭니다.
나는이 솔루션들 중 어느 것도 이상적이라고는 생각하지 않지만 자신의 검색 플러그인을 작성하는 것 외에는 빠른 해결책을 찾지 못합니다.
Drupal에서 컨텐츠를 작성하고 이벤트 이름과 노드 제목 필드를 일치시키고 이벤트 시작 날짜를 노드의 이벤트 날짜 필드와 일치시키는 Computed Field을 사용하여 Civi 이벤트 페이지에 링크합니다. 계산 된 필드의 샘플 코드 : 우리는 노드에 저장 Civi 이벤트 코드를 가지고 있기 때문에
if ($entity_field_item['value'] == 0)
{
$display_output = '';
}
else
{
$display_output = '<a href="https://examplesite.org/civicrm/event/register?reset=1&id=' . $entity_field_item['value'] . '">Buy tickets</a>';
}
것은, 우리는 또한 하나를 사용할 수 있습니다
list($id, $vid, $bundle) = entity_extract_ids($entity_type, $entity);
$query = "SELECT
ce.id
FROM {node} n
INNER JOIN {field_data_field_event_date} de ON n.nid = de.entity_id AND n.vid = de.revision_id
INNER JOIN {civicrm_event} ce ON n.title = ce.title COLLATE utf8_unicode_ci
AND ce.start_date = convert_tz(field_event_date_value,'GMT','America/New_York')
WHERE n.nid = :nid
AND n.vid = :vid
LIMIT 1";
$result = db_query($query,
array(':vid' => $vid, ':nid' => $id))->fetchField(0);
if ($result === NULL || $result == "")
{
$entity_field[0]['value'] = 0;
}
else
{
$entity_field[0]['value'] = $result;
}
그런 다음 당신은 다음과 같이 표시 코드의 비트를 사용할 수 있습니다 기본 Drupal 검색 또는보기 기능을 사용하고 필요에 따라 Drupal 템플릿에서 창의적으로 만들 수 있습니다. 다른 옵션은 이와 같은 일을하는 모듈을 직접 작성하거나 Cubi REST 엔드 포인트 /sites/all/modules/civicrm/extern/rest.php?entity=Event&action=getlist&json={"sequential":1}&api_key=yoursitekey&key=yourkey
을 Drupal Feeds 및 Feeds Extensible Parsers 모듈과 함께 사용하여 최소한의 코드로 Drupal 이벤트를 생성하고 업데이트하는 솔루션을 고려하는 것입니다.
두 번째 솔루션을 찾고 있는데 엔티티 모듈을 사용해 보았습니다. civicrm 요리 책에 내가 원하는 것을하는 방법에 대한 지침이 있습니다. 이벤트 데이터는 엔티티 모듈에 더 이상 없습니다. 아쉽다. – rparker
엔티티는 규칙과 함께 사용하기에 더 적합합니다. 나는 엔티티를 드루팔 (drupal) 컨텐트에 연결하는 것에 대해서는 아무것도 보지 못했다. 어떤 아이디어/제안? – rparker
예,하지만 civicrm_entity는 CiviCRM 엔티티를 사용자 및 노드와 비슷한 Drupal 엔티티로 표시합니다.100 % 완료된 것은 아니지만 지금 당장 시작한만큼 좋은 출발점입니다. –