web-dev-qa-db-ja.com

パーソナルキャンペーンページにカスタムフィールドを追加する方法-Civicrm

Drupal 7とCivicrm 4.4.1を使用しており、個人のキャンペーンページを有効にして、個人がキャンペーンを作成できるようにしました。これには、タイトル、目標額、ようこそ、あなたのメッセージ。別のフィールドをフォームに追加して、ビューからアクセスしてテーブルに表示したいと思います。

追加するフィールドはスポンサーと呼ばれるため、すべてのパーソナルキャンペーンページのビューを一覧表示するときにスポンサーを表示できます。カスタムフィールドデータセットを作成して、使用している投稿タイプに適用しようとしましたが、成功しませんでした。

これらのページのカスタムフィールドを作成する方法に関するアイデアはありますか?

1
jsheffers

現在、カスタムキャンペーンページにカスタムデータを追加することはできません(example.org/civicrm/admin/custom/group?action=add&reset=1のリストを参照してください)。あなたがそれをしたいのであれば、あなたの最善の策は、これを行うコードを書く(または誰かにコードを書くように支払う)ことであり、これをCiviCRMに戻すことです。

5
michaelmcandrew

https://drupal.org/node/223482

CiviCRMカスタムデータプロファイルの使用

Drupal WebサイトがCiviCRMと統合されている場合、CiviCRMの連絡先レコードフィールドを介して、よりパーソナライズされたコンテンツをDrupalユーザープロフィールページに取り込むことができます。 CiviCRM連絡先レコードデータをDrupalユーザープロファイルページに取り込む最も簡単な方法は、適切なCiviCRMカスタムデータプロファイルをDrupalユーザーに表示するように構成することです。プロファイルページ。これは、CiviCRMを管理する権限でログインし、CiviCRM->管理->カスタムデータと画面->プロファイルに移動することで実行できます。ユーザープロファイルページで公開するプロファイルを編集し、設定を調整します表示/編集Drupalユーザーアカウント。これらの設定を使用して、DrupalユーザープロファイルページからunでCiviCRMコンテンツを削除することもできます。 Drupalユーザーアカウントに使用するように設定します。

1
stevegmag

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
> 
0
jackrabbithanna