Drupal 7とCivicrm 4.4.1を使用しており、個人のキャンペーンページを有効にして、個人がキャンペーンを作成できるようにしました。これには、タイトル、目標額、ようこそ、あなたのメッセージ。別のフィールドをフォームに追加して、ビューからアクセスしてテーブルに表示したいと思います。
追加するフィールドはスポンサーと呼ばれるため、すべてのパーソナルキャンペーンページのビューを一覧表示するときにスポンサーを表示できます。カスタムフィールドデータセットを作成して、使用している投稿タイプに適用しようとしましたが、成功しませんでした。
これらのページのカスタムフィールドを作成する方法に関するアイデアはありますか?
現在、カスタムキャンペーンページにカスタムデータを追加することはできません(example.org/civicrm/admin/custom/group?action=add&reset=1のリストを参照してください)。あなたがそれをしたいのであれば、あなたの最善の策は、これを行うコードを書く(または誰かにコードを書くように支払う)ことであり、これをCiviCRMに戻すことです。
https://drupal.org/node/223482
CiviCRMカスタムデータプロファイルの使用
Drupal WebサイトがCiviCRMと統合されている場合、CiviCRMの連絡先レコードフィールドを介して、よりパーソナライズされたコンテンツをDrupalユーザープロフィールページに取り込むことができます。 CiviCRM連絡先レコードデータをDrupalユーザープロファイルページに取り込む最も簡単な方法は、適切なCiviCRMカスタムデータプロファイルをDrupalユーザーに表示するように構成することです。プロファイルページ。これは、CiviCRMを管理する権限でログインし、CiviCRM->管理->カスタムデータと画面->プロファイルに移動することで実行できます。ユーザープロファイルページで公開するプロファイルを編集し、設定を調整します表示/編集Drupalユーザーアカウント。これらの設定を使用して、DrupalユーザープロファイルページからunでCiviCRMコンテンツを削除することもできます。 Drupalユーザーアカウントに使用するように設定します。
PCPページにカスタムフィールド機能を追加するためのパッチを次に示します。
この差分はCiviCRM 4.5.0に対するものです。
テンプレートのカスタムフィールドを出力しませんが、その部分を理解できます:)
これにより、PCPにカスタムフィールドグループを追加し、PCP追加/編集ページでそれらに値を保存できます。
diff -r original/civicrm/CRM/Core/BAO/CustomGroup.php new/civicrm/CRM/Core/BAO/CustomGroup.php
1102a1103,1104
> case 'Pcp':
> $tableName = 'civicrm_pcp';
1168a1171
> case 'Pcp':
1521a1525
>
1698a1703,1704
> case 'Pcp':
> return 'civicrm_pcp';
1721a1728
>
diff -r original/civicrm/CRM/Core/SelectValues.php new/civicrm/CRM/Core/SelectValues.php
179a180
> 'Pcp' => ts('Personal Campaign Pages'),
diff -r original/civicrm/CRM/Custom/Form/CustomData.php new/civicrm/CRM/Custom/Form/CustomData.php
54c54
< ) {
---
> ) {
145c145
< }
---
> }
diff -r original/civicrm/CRM/PCP/BAO/PCP.php new/civicrm/CRM/PCP/BAO/PCP.php
85c85,92
<
---
> //start custom field code addition
> //store custom data
> if (!empty($params['custom']) &&
> is_array($params['custom'])
> ) {
> CRM_Core_BAO_CustomValueTable::store($params['custom'], 'civicrm_pcp', $dao->id);
> }
> //end custom field code addition
diff -r original/civicrm/CRM/PCP/Form/Campaign.php new/civicrm/CRM/PCP/Form/Campaign.php
63a64,87
>
> //start custom field code additions
> //check for custom data type.
> $this->_cdType = 'Pcp';
> $this->assign('cdType', FALSE);
> if ($this->_cdType) {
> $this->assign('cdType', TRUE);
> $this->set('type', 'Pcp');
> $this->set('entityID', $this->_pageId);
> $this->set('cgcount', 1);
> CRM_Custom_Form_CustomData::preProcess($this);
> }
> //end custom field code additions
>
> // when custom data is included in form.
> if (!empty($_POST['hidden_custom'])) {
> $this->set('type', 'Pcp');
> $this->set('entityID', $this->_pageId);
> $this->set('cgcount', 1);
> CRM_Custom_Form_CustomData::preProcess($this);
> CRM_Custom_Form_CustomData::buildQuickForm($this);
> CRM_Custom_Form_CustomData::setDefaultValues($this);
> }
>
70c94,99
<
---
> //load only custom data defaults.
>
> if ($this->_cdType) {
> $defaults = CRM_Custom_Form_CustomData::setDefaultValues($this);
> }
>
93c122
<
---
>
103a133,140
> $this->assign('customDataType', 'Pcp');
> $this->assign('entityID', $this->_pageId);
>
> if ($this->_cdType) {
> CRM_Custom_Form_CustomData::buildQuickForm($this);
> }
> //lets assign custom data type and subtype.
>
229c266,274
<
---
>
> //process custom data.
> $customFields = CRM_Core_BAO_CustomField::getFields('Pcp', FALSE, FALSE);
> $params['custom'] = CRM_Core_BAO_CustomField::postProcess($params,
> $customFields,
> $this->_pageId,
> 'Pcp'
> );
>
232d276
<
Only in new/civicrm: groupcountsearch.txt
diff -r original/civicrm/templates/CRM/PCP/Form/Campaign.tpl new/civicrm/templates/CRM/PCP/Form/Campaign.tpl
97a98,120
>
> {* load the custom data *}
> {if $cdType}
> {include file="CRM/Custom/Form/CustomData.tpl"}
> {else}
>
> {* include custom data js *}
> {include file="CRM/common/customData.tpl"}
>
> {literal}
> <script type="text/javascript">
> CRM.$(function($) {
> {/literal}{if $customDataSubType}
> CRM.buildCustomData( '{$customDataType}', {$customDataSubType} );
> {else}
> CRM.buildCustomData( '{$customDataType}' );
> {/if}
> {literal}
> });
> </script>
> {/literal}
>
> {/if} {* load custom data *}
99a123
>