Difference between revisions of "CiviCRM"
(extract upgrade) |
(adds Developing Extensions) |
||
(31 intermediate revisions by the same user not shown) | |||
Line 1: | Line 1: | ||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
== Learn == | == Learn == | ||
[[File:Applications-education.svg|thumb|link=http://civiteacher.com|Go to CiviTeacher.com to learn about using CiviCRM|200px]] | [[File:Applications-education.svg|thumb|link=http://civiteacher.com|Go to CiviTeacher.com to learn about using CiviCRM|200px]] | ||
[http://civiteacher.com CiviTeacher.com] is a place for high quality videos on CiviCRM | [http://civiteacher.com CiviTeacher.com] is a place for high quality videos on CiviCRM | ||
− | |||
− | |||
− | |||
− | |||
− | |||
== Installation == | == Installation == | ||
Line 31: | Line 14: | ||
After installation, there is a checklist that you should complete (e.g. http://example.org/civicrm/admin/configtask) | After installation, there is a checklist that you should complete (e.g. http://example.org/civicrm/admin/configtask) | ||
− | + | Some of the things needed for a first-time setup: | |
<ol> | <ol> | ||
<li>Enable the CiviBartik theme, for Civi admin, and then immediately configure various blocks to NOT appear in that theme (remove everything from column two, so that you get a wide display) | <li>Enable the CiviBartik theme, for Civi admin, and then immediately configure various blocks to NOT appear in that theme (remove everything from column two, so that you get a wide display) | ||
<li>enable the [http://book.civicrm.org/user/current/introduction/components/ components] | <li>enable the [http://book.civicrm.org/user/current/introduction/components/ components] | ||
<li>check/enable permissions (Drupal) | <li>check/enable permissions (Drupal) | ||
− | <li> | + | <li>set the headers and footers for mailings |
− | <li>set the message template for mailings | + | <li>set the message template for mailings |
<li>setup custom fieldsets and data fields. Before you do this, learn about Option Groups | <li>setup custom fieldsets and data fields. Before you do this, learn about Option Groups | ||
<li>map import data to fields, groups, tags. Also do a large amount of data wrangling (normalization; and ETL) to get source data in a format suitable for use with CiviCRM. The data that I have is "composite" because it has individuals embedded inside organization records. So I needed to extract and flatten out contact records from their organization records; plus create and maintain a simple "external ID" system to relate them after import. This means parsing, slicing and dicing, string manipulation and making corrections or formatting data a particular way. I almost installed Pentaho Data Integration (kettle) because that tool is (supposedly) built for this job. <ref>But like since version 3, Pentaho still doesn't work even at 5. The install docs are missing. The thing failed to even load, with no error.</ref> | <li>map import data to fields, groups, tags. Also do a large amount of data wrangling (normalization; and ETL) to get source data in a format suitable for use with CiviCRM. The data that I have is "composite" because it has individuals embedded inside organization records. So I needed to extract and flatten out contact records from their organization records; plus create and maintain a simple "external ID" system to relate them after import. This means parsing, slicing and dicing, string manipulation and making corrections or formatting data a particular way. I almost installed Pentaho Data Integration (kettle) because that tool is (supposedly) built for this job. <ref>But like since version 3, Pentaho still doesn't work even at 5. The install docs are missing. The thing failed to even load, with no error.</ref> | ||
Line 43: | Line 26: | ||
<li>Option Groups. There are many things in CiviCRM that are already configured as "Option Groups". "Website" is one example. When adding an Organization or Contact, and you want to enter data about their website, it could be one of many types: main, work, personal, facebook, twitter, pinterest, github etc. These are defined in the option group for "website". You can modify these to suit your data and your needs. As another example, "Campaign Type" comes defined as 'Direct Mail', 'Referral Program', and 'Customer Engangement'. I added 'Marketing' so that I can do a generic (email/web) marketing campaign. | <li>Option Groups. There are many things in CiviCRM that are already configured as "Option Groups". "Website" is one example. When adding an Organization or Contact, and you want to enter data about their website, it could be one of many types: main, work, personal, facebook, twitter, pinterest, github etc. These are defined in the option group for "website". You can modify these to suit your data and your needs. As another example, "Campaign Type" comes defined as 'Direct Mail', 'Referral Program', and 'Customer Engangement'. I added 'Marketing' so that I can do a generic (email/web) marketing campaign. | ||
<li>If you plan to use the CiviCase component to manage the common constituent "projects" or "workflows" and their associated timelines, then you'll need to create your own "Case Types". Look at the existing "Case Types" for reference. | <li>If you plan to use the CiviCase component to manage the common constituent "projects" or "workflows" and their associated timelines, then you'll need to create your own "Case Types". Look at the existing "Case Types" for reference. | ||
− | <li>{{@todo}} review [http://wiki.civicrm.org/confluence/display/CRMDOC/Managing+Scheduled+Jobs docs] and setup cron to do things like geocoding | + | <li>{{@todo}} review [http://wiki.civicrm.org/confluence/display/CRMDOC/Managing+Scheduled+Jobs docs] and setup cron to do things like geocoding |
− | <li>Test and set your SPF record for your domain so that you can use Mailer, and review the docs for [http://book.civicrm.org/user/current/advanced-configuration/email-system-configuration/ email system configuration] | + | <li>Test and set your SPF record for your domain so that you can use Mailer, and review the docs for [http://book.civicrm.org/user/current/advanced-configuration/email-system-configuration/ email system configuration] |
− | |||
− | |||
− | |||
</ol> | </ol> | ||
Interestingly, CiviCRM optionally uses <code>[http://wkhtmltopdf.org/ wkhtmltopdf]</code> to convert HTML to PDF | Interestingly, CiviCRM optionally uses <code>[http://wkhtmltopdf.org/ wkhtmltopdf]</code> to convert HTML to PDF | ||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
== Todo == | == Todo == | ||
Line 313: | Line 37: | ||
== Extensions == | == Extensions == | ||
− | + | See https://civicrm.org/extensions/drupal | |
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
== Developing Extensions == | == Developing Extensions == | ||
− | |||
− | |||
− | |||
* [http://wiki.civicrm.org/confluence/display/CRMDOC/Settings+Reference Settings Reference] | * [http://wiki.civicrm.org/confluence/display/CRMDOC/Settings+Reference Settings Reference] | ||
* [http://www.zyxware.com/articles/4490/civicrm-how-to-add-and-use-your-variable-in-settings-field-in-civicrm-database settings example] | * [http://www.zyxware.com/articles/4490/civicrm-how-to-add-and-use-your-variable-in-settings-field-in-civicrm-database settings example] | ||
Line 336: | Line 46: | ||
== API == | == API == | ||
<ol> | <ol> | ||
− | <li> Learn the Civi API ( | + | <li>{{@todo}} Learn the Civi API (<code>/civicrm/api</code>) http://wiki.civicrm.org/confluence/display/CRMDOC/API+Examples |
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
</ol> | </ol> | ||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
== Notes == | == Notes == |
Revision as of 15:45, 17 June 2015
Contents
Learn[edit | edit source]
CiviTeacher.com is a place for high quality videos on CiviCRM
Installation[edit | edit source]
CiviCRM sits on top of a CMS: either Drupal, WordPress, or Joomla!.
The CiviCRM User and Administrator Book and also the wiki (see https://civicrm.org/go/books) are invaluable in getting setup.
When installing on top of Drupal, if you have the HTMLPurifier module enabled, you will run into a conflict that you can resolve by disabling the module in Drupal proper, or else modifying the bootstrap code in civicrm [1]
Also, the default theme (and most other themes?) don't work well for CiviCRM - especially the admin side. So, drush dl civi_bartik
and enable it for the admin side.
After installation, there is a checklist that you should complete (e.g. http://example.org/civicrm/admin/configtask)
Some of the things needed for a first-time setup:
- Enable the CiviBartik theme, for Civi admin, and then immediately configure various blocks to NOT appear in that theme (remove everything from column two, so that you get a wide display)
- enable the components
- check/enable permissions (Drupal)
- set the headers and footers for mailings
- set the message template for mailings
- setup custom fieldsets and data fields. Before you do this, learn about Option Groups
- map import data to fields, groups, tags. Also do a large amount of data wrangling (normalization; and ETL) to get source data in a format suitable for use with CiviCRM. The data that I have is "composite" because it has individuals embedded inside organization records. So I needed to extract and flatten out contact records from their organization records; plus create and maintain a simple "external ID" system to relate them after import. This means parsing, slicing and dicing, string manipulation and making corrections or formatting data a particular way. I almost installed Pentaho Data Integration (kettle) because that tool is (supposedly) built for this job. [2]
- Be sure to tag each import with some unique tag. You can always remove those tags later (easily). When you inevitably run into problems during import, the proper way to delete records is to search by tag, and delete.
- Option Groups. There are many things in CiviCRM that are already configured as "Option Groups". "Website" is one example. When adding an Organization or Contact, and you want to enter data about their website, it could be one of many types: main, work, personal, facebook, twitter, pinterest, github etc. These are defined in the option group for "website". You can modify these to suit your data and your needs. As another example, "Campaign Type" comes defined as 'Direct Mail', 'Referral Program', and 'Customer Engangement'. I added 'Marketing' so that I can do a generic (email/web) marketing campaign.
- If you plan to use the CiviCase component to manage the common constituent "projects" or "workflows" and their associated timelines, then you'll need to create your own "Case Types". Look at the existing "Case Types" for reference.
- todo review docs and setup cron to do things like geocoding
- Test and set your SPF record for your domain so that you can use Mailer, and review the docs for email system configuration
Interestingly, CiviCRM optionally uses wkhtmltopdf
to convert HTML to PDF
Todo[edit | edit source]
- todo Install, and use overrides for DEV/PROD and make sure you can use the installation on multiple hosts [3]
Extensions[edit | edit source]
See https://civicrm.org/extensions/drupal
Developing Extensions[edit | edit source]
API[edit | edit source]
- todo Learn the Civi API (
/civicrm/api
) http://wiki.civicrm.org/confluence/display/CRMDOC/API+Examples
Notes[edit | edit source]
"Views" in Drupal (in core as of Drupal 8 [4]) is a good way to get reports from your data. If you want to use "Views" for your CiviCRM instance, you have to manually integrate it http://wiki.civicrm.org/confluence/display/CRMDOC/Views3+Integration Admin = civicrm/admin/setting/uf
References[edit source]
- ↑ http://forum.civicrm.org/index.php?topic=28429.0
- ↑ But like since version 3, Pentaho still doesn't work even at 5. The install docs are missing. The thing failed to even load, with no error.
- ↑ http://wiki.civicrm.org/confluence/display/CRMDOC/Moving+an+Existing+Installation+to+a+New+Server+or+Location
- ↑ https://www.drupal.org/project/views