drupal 7 で実行され、civicrm 4.4.1 を使用するサイトがあります。イベントを検索結果に含める必要があります。
これまでのところ、Drupal 7 で利用できないモジュールを必要とする civicrm に関する日付付きのドキュメントしか見つかりませんでした。
検索ページ モジュールも試しましたが、イベントを取得していません。
drupal 7 で実行され、civicrm 4.4.1 を使用するサイトがあります。イベントを検索結果に含める必要があります。
これまでのところ、Drupal 7 で利用できないモジュールを必要とする civicrm に関する日付付きのドキュメントしか見つかりませんでした。
検索ページ モジュールも試しましたが、イベントを取得していません。
標準の Drupal サイト検索で CiviCRM イベントを含む事前構築済みのものは見たことがありません。検索APIを見ると、それを行うためのモジュールを作成することは可能だと思いますが、簡単ではないと思います。私は検索 API 用のモジュールを作成していませんが、この種の統合を作成するには、多少の簿記が必要なようです。
私はこれを顧客のためにいくつかの方法で処理しました。1 つは、イベントのコンテンツ タイプを作成し、詳細な説明と基本的な日付情報をコンテンツ タイプに入れます。CiviCRM でイベントを作成するときは、登録用のベアボーン イベントを作成し、イベント ノードから直接イベント登録ページにリンクするだけです。2 つ目は、素敵なリンクとビューを使用して、イベント検索を別のアクションにすることです。
これらの解決策はどちらも理想的ではないことはわかっていますが、独自の検索プラグインを作成する以外に簡単な解決策はありません。
Drupal でコンテンツを作成し、イベント名をノードのタイトル フィールドに、イベント開始日をノードのイベント日付フィールドに一致させる計算フィールドを使用して、Civi イベント ページにリンクします。計算フィールドのサンプル コード:
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;
}
次に、次のような表示コードを使用できます。
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>';
}
Civi イベント コードがノードに保存されているため、ネイティブの Drupal 検索またはビュー機能を使用して、必要に応じて Drupal テンプレートでクリエイティブにすることもできます。その他のオプションとして、このようなことを行う独自のモジュールを作成するか、Civi 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 イベントを作成および更新するソリューションを検討することもできます。