# Question
Title: Can the External ID have multiple values
I would like to add multiple values in External ID. Is this possible or would I have to create a new custom field?

**Example 2 Duplicate contacts have different external IDs. I want to merge them but keep both external ids.**

Thanks

# Answer
The External ID field isn't just a regular field--it allows matching by ID alone. It would be a waste to have External ID be concatenated fields, for a couple of reasons:

* You can't search easily. If you have a contact with an ID from System 1 of "123" and an ID from System 2 of "789", and you concatenate with a "|", you'd have a value of "123|789". If you search for an External ID of "%123%", you'd catch "123|789" as well as "222|123" (i.e. the record with ID 123 in System 2) and "1123|789" (i.e. any ID with those digits in order, regardless of position).
* You lose auto-matching on import. If you're doing a later import from the external system, you won't be able to identify the External ID and have it match. You'll need to use a matching rule or the CiviCRM ID. This makes it no better than a regular custom field.
* You may have trouble importing in the first place. If you're importing from System 1, you'll know that system's external ID, but you might not know the corresponding contact's ID in System 2. You'd need to do some spreadsheet tricks like Joe suggests, and you'd have to match up the two systems' records in the spreadsheet before you even start.
* You'll never be able to merge records reliably. If Sammy is ID 123 in System 1 and Samuel is ID 789 in System 2, you might not catch that they're the same guy. They might end up as separate contacts in CiviCRM, but when you merge them, you'll only be able to concatenate the IDs by remembering the one that gets lost and going back to edit the External ID manually.

All in all, there's no advantage to cramming multiple values into the External ID field, and it has distinct disadvantages (merging and searching, in particular) as compared to regular custom fields. You should simply decide that one system's ID is the External ID and the others are custom fields. If it would be ambiguous, make them all custom fields; that's still better than mixing up the External ID field.
> 8 votes

# Answer
I believe the External ID is a single value field. On clicking help you'll see: "Use this field to store a unique identifier. This is generally used to link contacts with records in a related or legacy application...."

As you suggested a custom field might be needed, perhaps you can use a multi-value custom field, and move all your external ids to this new custom field.
> 2 votes

# Answer
If you don't have a lot of these - simply add the second External ID to the merged record manually, and separate the values with a non-numeric character like - or | - then you can search using Search Builder or in the back end (using PHPMyAdmin) or in the API Explorer for values with - or |, and/or use the % "wild card" in searches, like %\[second External ID value\]%. This assumes the External ID field doesn't allow only numeric values but any text string - I'm not sure about that.

If you do have a lot of these - export the current and deleted/merged records as .csv, match up the two sets of records by first name and last name, say, then concatenate the values of the two External IDs into a new column/field using that function in Excel, Google Sheets, or with a query using MS Access, MySQL, whatever. Then import and update the External IDs for the records that you are keeping, matching on import using the kept record's Internal Contact ID, Civi's unique ID for that person.
> 2 votes

# Answer
It all depends on what you plan on doing with the External ID. Its suggested use is to use it to match on imported contributions and other transactional data. If that's your use case, then a single value probably makes the most sense.

It's also useful for just referencing back to some prior legacy data. Here a single value probably makes the most sense, though on a manual basis multiple values would probably work using delimiters as outlined in other answers.

Interestingly, if you are doing custom development (and I don't know why you wouldn't use a custom data field for it) you can put anything in the External ID field. For instance on the CiviCRM sandbox I was able to enter in a bit of json formatted values which could be used programmatically. (JSON is a standard for formatting data values, ie `{"source": "sheet12","row": "22"}`. This example might be used to reference back to a row in a spreadsheet.)
> 2 votes

---
Tags: contacts, import, duplicate-contacts
---


title: Importing bank data

text:
# Question
Title: Importing bank data
Is there a possibility to combine a posting line from the bank to a member (donor) in the CiviCRM database? More precise: Could we load the bank statement to CiviCRM or is it necessary to put every donation manually to the donor?

# Answer
There is an extension CiviBanking that allows the import of bank statements. The extension can be found here:https://github.com/Project60/org.project60.banking

Whereabouts are you located? The extension is currently used by a couple of European organizations.
> 5 votes

# Answer
You can do a contribution import through the standard contribution import process, but you will need to ensure that the bank statement is in the proper format (1 line per contribution) and exclude any other transactions.

What generally makes this difficult is the dedupe rule - how can you identify the contact on the bank statement. You probably want to create a special dedupe rule for this.

Do you have a way to match the contact record?
> 1 votes

---
Tags: import
---


# Question
Title: Strange behaviour with activity type in search builder
One of our users reported a strange phenomenon when using search builder. I recreated this on the demo site.

When searching for activity type = Meeting I don't get results:

When searching for activity type like "Meeting" I get (correct) results:

I have similar problems with activity status. Using 'like' works in some cases, but I can't use '=' or 'in'.

Can anyone reproduce this behaviour?

# Answer
> 1 votes
I was able to reproduce the behavior; it seems like a bug, can you post a bug report here: https://issues.civicrm.org/jira/browse/CRM/?selectedTab=com.atlassian.jira.jira-projects-plugin:summary-panel

# Answer
> 1 votes
Well as per my recent fixes in Search Builder, atleast I have changed the column Title to clarify whether a element expects a string value or int. Like in this particular case you will have Activity Type( expects string value as 'Label') and Activity Type ID(integer value as activity\_type\_id), but that fix was partial. So the error is occurring due to faulty select element which you used to select value against '=' operator as it is in ('id' =\> 'label') format and the expected format would be ('label' =\> 'label'). And the underlying fix it needs will be major.

---
Tags: search-results, search-builder
---


# Question
Title: Civi Event - Event Title & Event Name with French accents not saving in correct encoding
Database/environment is set to UTF-8. This just started happening and we can't figure out why.

In the example below, a French title and summary are given -- when saved, the Title appears to be saved properly with the correct accents, but the Event Title field value converts the accented characters.

The Event Description area saves accents fine (it has TINYMCE enabled).

Thoughts?

# Answer
In case anyone stumbles upon this, we figured out the issue.

We discovered it was caused by the Front End Page Options + Entity Settings Helper Extension.

I believe the extensions were only meant for 4.4 (we are on 4.6).
> 2 votes

---
Tags: civievent, database
---


# Question
Title: Is there a way to prevent USPS address standardization from making addresses all caps in PDF letters?
We recently linked our CiviCRM database to the USPS address verification system, which saves me time verifying addresses and looking up the Zip+4 codes. However, Civi now makes the addresses all caps, which is a real pain when printing PDF letters which include the name and address of the contact in the letter. I find myself copying the address out to a text editor, converting it to initial caps, then pasting it into my Civi letter. Do you know of a way to automate this in Civi?

# Answer
> 3 votes
The problem is that the standard is to have addresses all-caps, without punctuation, and with various standard abbreviations. Some clients have asked us if we could "fix" them in bulk to be mixed case, but I point out that the standardization will simply restore the all-caps the next time someone saves the address.

Two options:

1. You can use Smarty to modify your addresses. You'll first need to enable Smarty processing of mail templates. Then you'll need to assign your token(s) to a variable and then output the variable with proper capitalization:

```
{capture assign=address}{contact.street_address}{/capture}{capture assign=city}{contact.city}{/capture}
{$address|capitalize:true:true}
{$city|capitalize:true:true}, {contact.state_province} {contact.postal_code}

```

This will work, though have fun training your coworkers on how to use Smarty. Also, words with internal capital letters ("MacArthur Blvd") will come out wrong ("Macarthur Blvd").

You still will be missing periods on your abbreviations no matter what, however.
2. You can use a different address standardization tool. Most are paid, though at least one client has had luck with SmartyStreets giving them a free account because they're a charitable nonprofit.

With SmartyStreets, you can use the extension that my coworker Tyrell built to auto-suggest standard addresses as you type. We haven't confirmed it works perfectly for 4.6 yet (it definitely supports 4.4 and 4.5, though), but I don't know of any problem spots. If you encounter problems, please let us know.

# Answer
> 1 votes
You might consider investing in commercial software that performs the address standardization and move update tasks. Those products should return the original data unchanged. Appended to the records is the standardized address. Print the letter with the original data fields and print the delivery address with the USPS fields.

If the address on the letter shows through an envelope window, you’ll have to print the delivery address according to USPS standards to qualify for postage discounts.

---
Tags: pdf, addresses
---


# Question
Title: Date field format changes when set to view only
I made a custom field. The field type is a Date field. I set the date format to european (Dutch) settings: dd-mm-yyyy, with time = none. I use the field in a profile that is published as a profile create form, where it works all right. To allow a contact to view the data they sent trough this profile, I made a profile edit form as a menu item. After logging in, the contact can see this date field, but as view only. In this last form the view only field presents the data as mm/dd/yyyy.

I checked all the places where date formats are set, changed everything everywhere to dd-mm-yyyy. This does not change the date-format in the view only field.

Is this normal behaviour, a bug or me doing something wrong?

# Answer
It sounds like a bug, it should take the settings for the date/time, sounds like it does not.
> 1 votes

---
Tags: custom-fields, joomla, date-preferences
---


# Question
Title: Does anyone have a recipe for Commerce / Rules / CiviCRM integration?
I'm helping a group that has a small Commerce store on the site (Drupal 7, CiviCRM 4.6.9) and I'd love to be able to push data from Commerce purchases back into CiviCRM. I have seen some general talk about CiviCRM Entity and Rules integration being able to do this, but I'm curious if anyone has a recipe that is working for them that they would be willing to post -- including the Rule's event(s), condition(s), and action(s) to do this.

I'm assuming the event should be upon successful checkout in Commerce, but I haven't determined the best way to handle conditions and actions.

Ideally I'd love to be able to do the following:

* Push first name, last name, billing address into the CiviCRM contact that is already created (but just contains email address)
* On a product type basis (or if necessary, a line item basis) push a contribution onto this contact record, tagged to the appropriate contribution type. (e.g. we have set up the ability to 'add a donation to your order' in the Commerce shopping cart, so we'd like to be able to split apart the physical product purchase into a 'store purchase' contribution, and push any add-on donation as a 'donation' contribution).

# Answer
**Exported Rules:**

The description of what I'm trying to do is below, and you can download (and/or pitch in) on the current versions of the Rules below at this GitHub repo.

**Problem Areas:**

* In creating the CiviCRM Contribution record, I haven't been able to figure out how to set the Receive Date. I can't input the token for the date of the order because that is of type Date and the CiviCRM Receive Date field only allows data of type Text. Pointers/ideas welcome as currently it leaves the date off completely in the inserted contribution record.
* Also less than ideal is leaving `Fee amount` and `Net amount` blank...
* This seems not to work unless the purchaser is an administrator so I've got some further digging to do on permissions

---

With a lot of trial and error, I have a start on this. This is a work in progress, so feel free to chip in on remaining items if you have an idea or have thought of a better way.

**Needed Modules:**

**Working Elements:**

* Add some contact info to the CiviCRM contact
* Add separate contributions to the CiviCRM contact depending on type (store item, donation, shipping fee)

**Instructions:**

Set up Commerce Donate and have a pane on your checkout to allow someone to add a donation to a store order:

Now go to Rules (**Configuration \> Workflow \> Rules**) and create a new rule. I ended up breaking this into two separate rules but after I discovered the Conditional Rules module I'm pretty sure I could have done it in one.

***First rule:*** *Add contact info to CiviCRM on store order*

1. Events: `Completing the checkout process`
2. Conditions: I don't think any conditions are needed. I have a few in there from testing currently but I don't think they affect anything.
3. Actions:

* `Fetch entity by id` with Entity type = "CiviCRM Contact" and Identifier = "commerce-order:owner:civicrm-contact:id"
    * `Fetch entity by id` with Entity type = "User" and Identifier = "site:current-cart-order:uid"
    * `Fetch entity by id` with Entity type = "Commerce Customer profile" and Identifier = "site:current-cart-order:uid"
    * `Set a data value` selecting "civi-contact:first-name" and using the value "\[customer:commerce-customer-address:first\_name\]" *(do likewise for any other information you want to pull from the Commerce profile and insert into the appropriate CiviCRM field)*

***Second rule****: Add contribution info to CiviCRM on store order*

1. Events: `Completing the checkout process`
2. Conditions: Same as above; I don't think any conditions are needed. I have a few in there from testing currently but I don't think they affect anything.
3. Actions:

* `Fetch entity by id` with Entity type = "CiviCRM Contact" and Identifier = "commerce-order:owner:civicrm-contact:id"
    * For each contribution type (e.g. donation, store product, shipping fee) do: `Add a variable` to capture the total amount for that type. (e.g. `donation_total`) and set it to 0 to start.
    * After all variables are added, `Add a loop` to the rule's actions
    * Within this loop, `Add a switch` on Data to match against = "line-item:type" (switch functionality is provided by the Conditional Rules module; this is assuming your store products are set up as different types -- e.g. Donations as a donation type)
    * For each contribution type again, within this Switch, add a Case (again provided by Conditional Rules) and select the type of product in the Data value. Select "Fall through" as False.
    * Within each of these conditional Cases, add two new actions. The first one is to `Calculate a value` (input value 1 as the respective variable you set up above, e.g. `donation_total`, and input value 2 as `line-item:commerce-total:amount-decimal` and the operator as + for addition). The second action within this case is to `Set a data value` on the `donation_total` variable, using the value you just calculated.
    * After all of the Cases have been added to the Switch, add a new root level Conditional for each product type, to make sure the total for that type is greater than zero before creating a Contribution record. To do this, choose `Add conditional` and then within this conditional, choose `Add if` with a "Data comparison" to make sure it isn't empty (or is greater than zero).
    * Within this final If, we can add a new action to `Create a new entity`, selecting `CiviCRM Contribution`. Within here, I've added a number of direct input/hard coded values such as:

    + Financial Type ID = 1 (for donations, adjust as needed for other types such as a custom 'Store purchase' financial type within CiviCRM)
        + Total Amount: use the variable that you created and have updated for this type, e.g. total\_donations
        + Contact id: `civi-contact:id`
        + Payment Instrument ID: kind of hackish but I've just entered a hard-coded value for credit card purchase (4)
        + You can add a direct input value in the "Contribution source" field and "note" field if you like
> 3 votes

# Answer
As they say ... there is a module for that:commerce civicrm You can also use rules if you want to trigger other actions but it sounds like this may cover a lot of what you need.
> 2 votes

---
Tags: drupal, civicrm-entity, drupal-rules, commerce
---


# Question
Title: Does CiviCRM have camp or conference housing capabilities?
I am evaluating CiviCRM for a camp and conference center with extensive on-site housing (former college campus). It seems very well-suited except that it seems to be lacking a housing piece. The only information I could find on this was an old forum post that went nowhere: Does CiviEvent have housing management capabilities?

Is there anything like this in existence? I found information on using Drupal, Webform Integration, and Ubercart for web-based camp registrations, but a housing component is very important for a large facility like ours.

Thanks for any input!

# Answer
> 2 votes
A housing component is not available in CiviCRM itself. You could possibly try to use CiviBooking (https://civicrm.org/extensions/civibooking), which deals with resource bookings. Depending on your exact functional requirement that might be sufficient. If you are just concerned about booking rooms it might well do for you.

If not, it will probably be a CiviCRM extension that you either have to develop yourself or find a CiviCRM specialist to develop it for you. This is very possible, we have done some specific stuff for a Dutch Housing Corporation in the past.

# Answer
> 2 votes
FYI you don't need Ubercart any more for camp registrations - CiviCRM plus Drupal Webform integration can do it all.

The simplest way to allocate housing would be by creating a custom field (extending Participants) to specify which house/room the participant will be in. This of course lacks anything "smart" like telling whether a particular room is already booked for a given time. Depending on the complexity of your organization, you could solve that by creating a Drupal View of participants and their room booking, which would let you visually see what's taken so you don't double-book. Or you could try out the CiviBooking extension.

# Answer
> 1 votes
It would be a bit of a parallel installation to CiviCRM, but there is a Drupal module called Rooms, and it handles rooms and buildings, I think. It might be useful in conjunction with Commerce.

Features (from the project page):

> * Create rooms and assign availability (or on hold states) via a calendar.
> * Manage pricing for rooms using calendars that allow to set pricing for entire seasons or just change it for specific dates.
> * Define optional add-ons for rooms.
> * Charge either per-night or per-person.
> * Handle children discounts.
> * Create bookings and keep customer records.
> * Make rooms available for booking with a availability search functionality and/or calendar - handling both immediate bookings and bookings following owner confirmation.
> * Search by Room Type.
> * Handle multiple owners within a single Drupal installation through fine-grained permissions.
> * Full integration with Commerce to manage payments, a range of different payment gateways, and a host of other e-commerce features.
> * Accept full or partial payments (deposits) using Commerce features.

I am actually working on a project that uses it currently and am playing with Rules to push rental/reservation payment data from Commerce into CiviCRM.

---
Tags: civievent, evaluating-civicrm
---


# Question
Title: Is Drupal Views affecting CiviCRM performance?
I have created a Drupal Views block, which aggregates some CiviCRM values. This block I have on most pages.

How (if any) is this affecting the performance of the CiviCRM site?

(How does Drupal Views aggregate its result? SQL query?)

# Answer
> 4 votes
Views has an option to display the exact query it generates, so you can get a rough idea by running that query alone with a tool that allows you to time it. Ideally a single query should execute in a matter of milliseconds, not seconds.

If you have general concerns about sql performance, enable slow query logging to find out which queries on your site are taking the longest.

# Answer
> 4 votes
Views also offers 'caching' so you could set that if you do have proof that it is the View display that is slowing down your page load.

---
Tags: drupal-views
---


title: Schedule reminders broken in 4.6.8

text:
# Question
Title: Schedule reminders broken in 4.6.8
using civi 4.6.8

needed a notification sent to a volunteer when they sign up for an event. setup a scheduled reminder to catch the action. everything work ok and email was added to the queue in civicrm\_action\_schedule.

forced the job to execute.

got back

Finished execution of Send Scheduled Reminders with result: Failure, Error message: API (ActionLog, get) does not exist (join the API team and implement it!)

it's telling the truth. i can't find ActionLog / Get in the API Explorer.

# Answer
The JIRA issue appears to be this one It is marked as CLOSED and "cannot reproduce"
> 2 votes

---
Tags: api
---


# Question
Title: Will Stripe Payment Processor work with CiviCRM 4.6 and/or Drupal Webforms?
We are planning to use stripe payment processor with CiviCRM 4.6.x and are considering using it in Drupal Webforms. Currently the extension is only marked as compatible with 4.5 but there is a 4.6 dev branch on github.

I was looking into stripe in combination with CiviCRM \<--\> Drupal webforms and found that there had been issues, described here and here. I was however not sure if those were resolved (as indicated by the Drupal issue) or if there are still problems as the Github issue is still open.

I tried to contact Drastik on the stripe payment processor blog but the spam protection wouldn't allow me for some reason. I also tried the contact form and email but got no response.

I would love to get some feedback on 4.6 compatibility from the developer or anyone who has tried it.

# Answer
> 4 votes
We are using Stripe with 4.4.14 and had problems accepting payments for memberships using a webform. With investigation though, our developer installed a version of Stripe 1.9.1 from the github and the latest dev build of webform and it is now working for us.

Whether anything within 4.5/4.6 has changed to make our experience irrelevant, that I can not answer.

Whether it is useful or not, contrary to the information on some of the links you provide indicating it might be a problem with the webform module; in our case it was apparently the Stripe module that was the issue.

# Answer
> 4 votes
We use Stripe with CiviCRM 4.6.4 on Drupal 7's latest rev and are not having issues. We grabbed the latest Civi Stripe library from github.

So far we have only processed event registrations, not membership payments or other contributions. We haven't tried processing payments via WebForms, only regular civicrm event registration pages.

We had one issue where the Stripe library would not be made available if other payment processors or the "pay later" option was available on that event. With that one issue aside, we've had no problems and are enjoying using Stripe with Civi.

# Answer
> 4 votes
As promised, here are our experiences with Stripe Version 1.9.1 | CiviCRM 4.6.8 | Drupal 7:

* We are using it on CiviCRM contribution pages for memberships
* In order for the pay later option to work we needed to fix an issue
* Afaik the fix has not been integrated with the Stripe master branch - our version can been found here.
* Apart from the pay later problem everything worked really smoothly
* We have not tried using stripe within an CiviCRM Webform

---
Tags: webform-civicrm, payment-processor, stripe
---


# Question
Title: Even registration emails not going through - registration produces error
Event registrations hang for all events and then gives error whenever "send email confirmation" is set to "yes". While it's hanging, I can see the registration went through, then it finally shows an error with "Could not find valid value for id". I posted the full error at the end of this post.

I tried Amazon SES and sendgrid, getting the same error either way. Either way, sending test emails from outbound email settings works. It just gets stuck sending the email confirmation when registering events.

I'm currently using Drupal 7.37 and CiviCRM 4.6.3.

Full error:

```
#0 /opt/bitnami/apps/drupal/htdocs/sites/all/modules/civicrm/CRM/Core/Error.php(359): CRM_Core_Error::backtrace()
#1 /opt/bitnami/apps/drupal/htdocs/sites/all/modules/civicrm/CRM/Utils/Request.php(95): CRM_Core_Error::fatal("Could not find valid value for id")
#2 /opt/bitnami/apps/drupal/htdocs/sites/all/modules/civicrm/CRM/Event/Form/Registration.php(183): CRM_Utils_Request::retrieve("id", "Positive", Object(CRM_Event_Form_Registration_Register), TRUE)
#3 /opt/bitnami/apps/drupal/htdocs/sites/all/modules/civicrm/CRM/Event/Form/Registration/Register.php(88): CRM_Event_Form_Registration->preProcess()
#4 /opt/bitnami/apps/drupal/htdocs/sites/all/modules/civicrm/CRM/Core/Form.php(455): CRM_Event_Form_Registration_Register->preProcess()
#5 /opt/bitnami/apps/drupal/htdocs/sites/all/modules/civicrm/CRM/Core/QuickForm/Action/Display.php(94): CRM_Core_Form->buildForm()
#6 /opt/bitnami/apps/drupal/htdocs/sites/all/modules/civicrm/packages/HTML/QuickForm/Controller.php(203): CRM_Core_QuickForm_Action_Display->perform(Object(CRM_Event_Form_Registration_Register), "display")
#7 /opt/bitnami/apps/drupal/htdocs/sites/all/modules/civicrm/packages/HTML/QuickForm/Page.php(103): HTML_QuickForm_Controller->handle(Object(CRM_Event_Form_Registration_Register), "display")
#8 /opt/bitnami/apps/drupal/htdocs/sites/all/modules/civicrm/CRM/Core/Controller.php(353): HTML_QuickForm_Page->handle("display")
#9 /opt/bitnami/apps/drupal/htdocs/sites/all/modules/civicrm/CRM/Core/Invoke.php(312): CRM_Core_Controller->run((Array:3), NULL)
#10 /opt/bitnami/apps/drupal/htdocs/sites/all/modules/civicrm/CRM/Core/Invoke.php(86): CRM_Core_Invoke::runItem((Array:15))
#11 /opt/bitnami/apps/drupal/htdocs/sites/all/modules/civicrm/CRM/Core/Invoke.php(54): CRM_Core_Invoke::_invoke((Array:3))
#12 /opt/bitnami/apps/drupal/htdocs/sites/all/modules/civicrm/drupal/civicrm.module(489): CRM_Core_Invoke::invoke((Array:3))
#13 [internal function](): civicrm_invoke("event", "register")
#14 /opt/bitnami/apps/drupal/htdocs/includes/menu.inc(519): call_user_func_array("civicrm_invoke", (Array:2))
#15 /opt/bitnami/apps/drupal/htdocs/index.php(21): menu_execute_active_handler()
#16 {main}

```

# Answer
This is a known, documented bug that does not seem to have a solution. Please see ref: https://issues.civicrm.org/jira/browse/CRM-17161

I am happy to help a civicrm wizard debug this :)

Also noted here:

CiviEvent - Error when registering: Could not find valid value for id

Even registration emails not going through - registration produces error

Why is the event registration "Thank You" page generating an error?
> 1 votes

---
Tags: civievent, email
---


# Question
Title: Disable the default tick to send email confirmation for events registration.
Do you know of a way to disable the check box for send email confirmation when registering a participant to an event manually from the back office? Even when the event settings say no automated email confirmation when you try to register a participant manually you get the tick box for send email confirmation enabled.

Please help if you know a method to disable this.

# Answer
> 2 votes
There's an extension which does that here: Prevent Sending Event Registration Confirmation from the Back-Office

---
Tags: civievent
---


title: How to set custom relative date filters

text:
# Question
Title: How to set custom relative date filters
I noticed that the relative date filters (e.g. "This week", "Previous quarter) have some new options available in 4.7, and I heard that you can now customize them to create new options. I don't know how to do this, though.

I see them in **Administer - System Settings - Option Groups**, but it doesn't have any definition of what they are. Neither **Administer - Customize Data and Screens - Date Preferences** nor **Administer - Localization - Date Formats** have them.

Specifically, I'd like to add something like "Empty or prior to this year". I know that this might be a bit much to ask even if I can customize it, but I thought I'd find where I could edit the settings.

# Answer
> 3 votes
So I think I was jumping the gun with my excitement about this.

I found the issue on Jira, which has been updated to say the custom filter creation has been bumped to 4.8. The work-in-progress code that Jon was working on is at https://github.com/civicrm/civicrm-core/pull/6307

---
Tags: civireport, search, date-preferences, dates
---


# Question
Title: What's the right way override the default source on a contribution page?
If I add this to the inbound link: https://mysite.org/civicrm/contribute/transact?reset=1&id=1&**source=facebookcampaign123**

Will my source addendum be added to the contribution record?

# Answer
One of our clients has done something similar to this answer:

but using a campaign selector or a custom field on the contribution page. Not sure from memory whether they did it with JS or Smarty, but the end result was an invisible field which tracked this.
> 1 votes

---
Tags: civicontribute
---


# Question
Title: CiviMail Track Click Throughs directed to Page Not Found
Since upgrading to CiviCRM 4.6.9 on Drupal 6.37, when using track click throughs in CiviMail, links send to Page Not Found.

# Answer
What is the url to track that generates the page not found?

One common problem is that your apache/nginx rules are wrongly redirecting the url used to track the clicks to be handled by drupal

Is this a "real" 404 page (coming from your webserver) or is this drupal handling that page and generating a page not found?
> 2 votes

# Answer
I thought this patch fixed the problem: https://issues.civicrm.org/jira/browse/CRM-7400

But, I spoke too soon. Still having the same "Page Not Found" issue when Tracking Click Throughs is turned on.
> 0 votes

---
Tags: civimail
---


# Question
Title: Recalculating final payment value on Civicrm Webform
I'm trying to recalculate the final payment value of a contribute page that I'm using on a webform.

Depending on the value of certain fields recorded when submitting the form (the fields are custom fields attached to contacts), the membership fee needs to increase or decrease.

I've looked at the civicrm preprocess and postprocess hooks although it seems they're only called when the form is finally submitted. I need to chance the value before the form is submitted so the correct payment value is passed to the payment processor.

# Answer
Webform conditionals might work for you, if you:

* Add the membership fee field as a hidden field
* Set the value of it via conditional rules

Conditional rules can be along the lines of:

> **if** custom\_field\_color **is** blue **then** membership fee = $100
>
> **if** custom\_field\_color **is** yellow **then** membership fee = $50

Unfortunately they can't perform *math* so if you needed to combine multiple values you'd need something more sophisticated like custom code.
> 1 votes

---
Tags: webform-civicrm
---


# Question
Title: How to recording financial classes in addition to financial types in a contribution?
We have been using CiviCRM's 'Campaign' functionality as a way of assigning additional information to contributions. It's how we have made CiviCRM more compatible with our Quickbooks, which makes extensive use of 'Classes'. So we match up 'Financial Types' from Civi with 'Accounts' in Quickbooks, and match 'Campaigns' in Civi with 'Classes' in Quickbooks. This has worked well as long as all financial types on a given Contribution page in CiviCRM were associated with a single 'Campaign'.

However we now have a need for contribution pages that not only record different financial types (through price sets), but also record different campaigns. The intention is to allow people to contribute towards multiple things with a single payment- for example: if I were to donate towards the 'Event Scholarship Fund', make a payment for my Membership, and make a donation towards the 'San Francisco Center', those would each have separate accounts *and* separate classes when they are entered into Quickbooks.

I would like to give donors the option to contribute towards many different areas and only have to enter their payment info once. As it currently is set up, I can only associate a single campaign with a contribution page. So the donor would have to visit multiple contribution pages and enter their payment info each time as it is currently set up.

Does anyone know of another way to accomplish this? To record both financial types and classes in CiviCRM?

I have considered adding a new financial type for each class and appending the class name to the end, but this would result in an unwieldy number of financial types. I thought about using custom fields in place of Campaigns, but couldn't figure out a clean way to use them to accomplish this same purpose. Campaigns work really well for us because of the way they are integrated throughout CiviCRM, but I can't figure out how to move forward with this and accept multiple donations on a single contribution page in a way that integrates with our accounting.

# Answer
> 2 votes
The big thing you need is a way to associate line items with campaigns. This would be fairly simple to do with an additional table in an extension. Then, so long as campaigns were appropriately named, the extension could provide a drop-down on each line in a price set allowing the donor to specify the campaign. I'd suggest we also add a new field for campaigns representing the text to be exported, since you might have class names in Quickbooks that aren't appropriate for the donors to see on your Contribution pages.

When exporting financial data, the extension could include the related campaign name for each bookkeeping entry.

HTH. Feel free to contact me offline for more information.

# Answer
> 3 votes
You could add a custom field for the donors to effectively pick the campaigns they wish to donate to, then you could reallocate behind the scenes is one option.

Another is to use shop items, these could result in separate contributions being created in CiviCRM for each item.

Either approach would need a bit more then just config so to speak.

# Answer
> 2 votes
Great use of campaigns. We've had similar situations and we've generally either written a custom search or a custom view(if you're using Drupal). I don't believe there is any built in functionality. It would be great to write a custom search and make it available in GitHub if you can make it generic enough.

---
Tags: civicontribute, contributions, accounting, civicampaign, financial-types
---


# Question
Title: Can a contact be matched with a campaign
Is it possible to match individuals with campaigns?

Example: I create an event, can assign contacts to this event with a role. So I have the overview which contacts have participated.

Is it also possible to assign contacts to a campaign? So that I can see who participated and what role he had?

# Answer
Your question isn't completely clear to me. You can associate one person, or a few, with a campaign by creating a custom contact reference field for them.

You could also search for individuals who have been involved in a campaign in some way, e.g., donating to it, from Search \> Advanced Search. You could then make a smart group from the results.
> 2 votes

---
Tags: contacts, civicampaign
---


title: Batch create relationships

text:
# Question
Title: Batch create relationships
We have 2 relationship types : A and B. We have about 500 contacts with A-relationships already set, and for each we need to create a B-relationship with the same contact. For example :

**We already have :**

Bob -\> A -\> Alice

**We need to have :**

Bob -\> A -\> Alice

Bob -\> B -\> Alice

It could be done manually but I thought I could write a custom cron job which does this :

* loop over contacts in a particular group (we already have this group)
* for each contact with a B-relationship and without a A-relationship :

grab the A-relationship target contact (let's call him C)

create a B-relationship with C

* end for each

How can I write a custom cron job for CiviCRM ? Is this a good idea ? Is there a better way to achieve this ?

Thanks

# Answer
> 2 votes
Are you sure it isn't more "logical" to not create/rename the relationship so instead of being "A" it's "A&B"?. Would be easier at least ;)

If you are on drupal, you can run a php script that has already dealt with initializing and authentication, and from within it, you can directly use civicrm\_api3 to read the existing relationships and create new ones (it takes a bit longer, but safer than trying to access at the db layer directly)

The script itself is fairly simple, fetching all contacts in a group and creating a new relationship.

The easiest is probably to use the api explorer (on your own database or better a copy of it) to test and get it generate for your the right php code that you mostly have to copy/paste into your script file

This is assuming you have access to the shell on your machine, this is way easier to run these type of long running scripts

# Answer
> 3 votes
Here's a trick. Use the API to get relationships with one relationship type and chain an API call to create a relationship with the other relationship type. You have to explicitly say that the new relationship has "0" as the ID, or else it'll just change the relationships you find.

The following example creates a relationship of type 8 for each relationship of type 7.

```
CRM.api3('Relationship', 'get', {
  "relationship_type_id": 7,
  "api.Relationship.create":{
    "id":0,
    "relationship_type_id":8,
    "contact_id_a":"$value.contact_id_a",
    "contact_id_b":"$value.contact_id_b",
    "is_active":"$value.is_active"
  }
})

```

You could add parameters to the Relationship/Get call to just pick certain relationships. Theoretically, you could also chain all of this to another API call, perhaps to get the members of a group.

---
Tags: cron-job, relationships
---


title: How to Setup for Recurring Giving

text:
# Question
Title: How to Setup for Recurring Giving
Hi I am thinking about using CiviCRM and we are implementing a recurring giving program. How would I set up CiviCRM to track recurring monthly, bi-monthly, quarterly or annual donor contributions and send them reminders that their credit card is going to be charged?

# Answer
The answer depends on your payment processor, but here's the general plan:

* Contact your payment processor and inform them that you want ARB (Automated Recurring Billing) added to your account. Most payment processors will add an additional monthly charge (around $10-20/month). Some (like iATS Payments) do not.
* Most payment processors (e.g. Authorize.Net, PayPal) will send a notification to a predetermined URL when they process a payment. Instructions are here for PayPal and Authorize.
* Other payment processors (e.g. iATS Payments) store a token in CiviCRM. CiviCRM submits the token on a regular basis to process a payment.
* On any contribution page, go to the **Configure menu \> Contribution Amounts** and check the box labeled "Recurring Contributions".

You can configure your options from there. Bi-monthly and quarterly transactions are possible by specifying recurring intervals. I've been commissioned to write an extension to add "quarterly" as an option without using intervals, but it's not written yet!
> 4 votes

---
Tags: civicontribute, recurring-contributions
---


# Question
Title: Do not send scheduled reminder if at least 1 membership is active
we recently encountered an issue after migrating to CiviCRM.

In the original system, membership renewals were considered discrete, separate memberships rather than a contiguous one.

When we imported the membership history from the original CRM to CiviCRM, the membership history imported fine, and the old memberships were marked as "Expired". However, due to a scheduled reminder rule ("Send membership renewal notice 7 days after expiry"), we're finding that people who have already renewed a membership and have an active one will still get a reminder notice because one of their expired memberships meets that criteria.

Does anyone have a code snippet to adjust the schedule reminder for memberships to only send a reminder if there are zero ACTIVE memberships on record?

# Answer
> 4 votes
yes this can be problematic. You may also find that having other 'expired' memberships will trip you up when doing other searches etc. Therefore in a similar situation we have opted to find all the historic expired memberships and set them to a new Membership Status of 'previous expired'. that helped reduce confusion and would resolve your Scheduled Reminder issue to.

# Answer
> 2 votes
I have a client who deals with a related situation. In their case, we use SQL to update membership statuses.

In their situation, they have people who create new memberships that supersede an old membership - but they still get membership reminders on the old membership. This SQL runs hourly on a cron job and sets the old memberships to "expired" with the "status override" flag set:

```
mysql <dbname> -e "UPDATE civicrm_membership cm2  SET status_id=35, is_override=1  WHERE cm2.status_id = 34 AND  cm2.contact_id IN  (SELECT contact_id FROM (SELECT contact_id, status_id FROM civicrm_membership) cm JOIN civicrm_membership_status cms ON status_id = cms.id WHERE cms.is_current_member = 1 GROUP BY contact_id HAVING count(contact_id) > 1)"

```

Owing to different membership status configuration, this won't work as-is for you, but should give you the right idea! They're in a slightly different situation in that they have "grace" membership statuses that are still active

---
Tags: civimember, scheduled-reminders
---


title: Network error related with permissions?

text:
# Question
Title: Network error related with permissions?
When I log in with the username of certain users and try to edit a field and save, I get a Network Error. However, If I log in with another users or as the admin, I can edit the field with no problem at all. Same computer, same profile to edit.

Why this network error depending on the user?

Thanks!

# Answer
This looks like a Javascript error. You may want to check out the Troubleshooting Javascript forum post for help on this.
> 1 votes

---
Tags: contacts
---


title: Allow user to manage mail templates

text:
# Question
Title: Allow user to manage mail templates
I can't find out how to allow a CiviCRM user to manage the mail templates, i.e access

/civicrm/admin/messageTemplates

...without giving the "Administer CiviCRM" permission. How can I do that ?

I'm using Drupal 7 and CiviCRM 4.5.8.

Thanks

# Answer
> 4 votes
"edit message templates" is a separate permission in CiviCRM 4.6 (see screenshot below), so you'll get this functionality by upgrading.

Upgrading is also a good idea, since version 4.5 isn't a "Long Term Support" version of CiviCRM and thus doesn't receive security updates.

---
Tags: permissions, message-templates
---


# Question
Title: Do I need to "Move" my site after changing access URL
I set up Drupal and CiviCRM on a shared server by using IPaddress/userid. Now I have changed the DNS servers for the domain-name and can access Drupal OK using www.domain-name CiviCRM is shown on the menu but when I click on it I get a revolving circle and the dashboard never come up. Still works fine if I use IPaddress/userid/ to get to Drupal and then CiviCRM

I have changed the URLs in "Settings - Resource URLs" and "Settings - Cleanup Caches and Update Paths" But that has not helped.

Looking at posts on various forums it would appear I have to "Move" CiviCRM and maybe Drupal.

I looked at the question "How to correct domain in URLs after a change?" on this site but could not find any of the mentioned items in my civicrm.settings.php

These include `define( 'CIVICRM_UF_BASEURL'` and `$civicrm_root = '/home/path_to_html/sites/all/modules/civicrm'; define( 'CIVICRM_TEMPLATE_COMPILEDIR', '/home/path_to_html/sites/default/files/civicrm/templates_c/' );`

I have pasted the contents of the civicrm.settings.php that is in the sites/all/modules/civicrm directory below. There are no other civicrm.settings.php files in higher directories.

Could someone please confirm that I need to "move" the site by saving the DB and creating a new CiviCRM and then loading the saved data (leaving some bits out) into the new database?

Thanks Greg

```
<?php

/**
 * This function has been copied from DRUPAL_ROOT/includes/bootstrap.inc
 */

/**
 * Locate the appropriate configuration file.
 *
 * Try finding a matching configuration directory by stripping the
 * website's hostname from left to right and pathname from right to
 * left.  The first configuration file found will be used, the
 * remaining will ignored.  If no configuration file is found,
 * return a default value '$confdir/default'.
 *
 * Example for a fictitious site installed at
 * http://www.drupal.org/mysite/test/ the 'settings.php' is
 * searched in the following directories:
 *
 *  1. $confdir/www.drupal.org.mysite.test
 *  2. $confdir/drupal.org.mysite.test
 *  3. $confdir/org.mysite.test
 *
 *  4. $confdir/www.drupal.org.mysite
 *  5. $confdir/drupal.org.mysite
 *  6. $confdir/org.mysite
 *
 *  7. $confdir/www.drupal.org
 *  8. $confdir/drupal.org
 *  9. $confdir/org
 *
 * 10. $confdir/default
 *
 */

function civicrm_conf_init() {
    global $skipConfigError;

    static $conf = '';

    if ($conf) {
        return $conf;
    }

    /**
     * We are within the civicrm module, the drupal root is 2 links
     * above us, so use that
     */
    $currentDir = dirname( __FILE__ ) . DIRECTORY_SEPARATOR;
    if ( file_exists( $currentDir . 'settings_location.php' ) ) {
        include $currentDir . 'settings_location.php';
    }

    if ( defined( 'CIVICRM_CONFDIR' ) && ! isset( $confdir ) ) {
        $confdir = CIVICRM_CONFDIR;
    } else {
        // make it relative to civicrm.config.php, else php makes it relative
        // to the script that invokes it
        $moduleDir  = 'sites' . DIRECTORY_SEPARATOR . 'all' . DIRECTORY_SEPARATOR . 'modules';
        $contribDir = $moduleDir . DIRECTORY_SEPARATOR . 'contrib';
        // check to see if this is under sites/all/modules/contrib or subdir civicrm-core
        if ( strpos( $currentDir, $contribDir ) !== false || strpos( $currentDir, 'civicrm-core' ) !== false) {
            $confdir = $currentDir . '..' . DIRECTORY_SEPARATOR . '..' . DIRECTORY_SEPARATOR . '..' . DIRECTORY_SEPARATOR . '..';
        // check to see if this is under sites/all/modules
        } else if ( strpos( $currentDir, $moduleDir ) !== false ) {
            $confdir = $currentDir . '..' . DIRECTORY_SEPARATOR . '..' . DIRECTORY_SEPARATOR . '..';
        } else if ( strpos( $currentDir, 'plugins' . DIRECTORY_SEPARATOR . 'civicrm' . DIRECTORY_SEPARATOR . 'civicrm' ) !== false ) {
             //if its wordpress
            $confdir = $currentDir . DIRECTORY_SEPARATOR . '..';
        } else {
            $confdir = $currentDir . '..' . DIRECTORY_SEPARATOR . '..' . DIRECTORY_SEPARATOR;
        }
    }

    if ( file_exists( $confdir . DIRECTORY_SEPARATOR . 'civicrm.settings.php' ) ) {
        return $confdir;
    }

    if ( ! file_exists( $confdir ) && ! $skipConfigError ) {
        echo "Could not find valid configuration dir, best guess: $confdir<br/><br/>\n";
        exit( );
    }

    $phpSelf  = array_key_exists( 'PHP_SELF' , $_SERVER ) ? $_SERVER['PHP_SELF' ] : '';
    $httpHost = array_key_exists( 'HTTP_HOST', $_SERVER ) ? $_SERVER['HTTP_HOST'] : '';

    $uri    = explode('/', $phpSelf );
    $server = explode('.', implode('.', array_reverse(explode(':', rtrim($httpHost, '.')))));
    for ($i = count($uri) - 1; $i > 0; $i--) {
        for ($j = count($server); $j > 0; $j--) {
            $dir = implode('.', array_slice($server, -$j)) . implode('.', array_slice($uri, 0, $i));
            if (file_exists("$confdir/$dir/civicrm.settings.php")) {
                $conf = "$confdir/$dir";
                return $conf;
            }
        }
    }

// FIXME: problem spot for Drupal 5.1 config dir layout
$conf = "$confdir/default";
return $conf;
}

$settingsFile = civicrm_conf_init( ) . '/civicrm.settings.php';
define('CIVICRM_SETTINGS_PATH', $settingsFile);
$error = @include_once( $settingsFile );
if ( $error == false ) {
    echo "Could not load the settings file at: {$settingsFile}\n";
    exit( );
}

// Load class loader
global $civicrm_root;
require_once $civicrm_root . '/CRM/Core/ClassLoader.php';
CRM_Core_ClassLoader::singleton()->register();

```

# Answer
> 4 votes
On your civicrm.settings.php, you have a line

define( 'CIVICRM\_UF\_BASEURL', 'http://42.42.42.42' );

with the numbers being your real ip address. You need to modify and replace that with your domain name

Once that's done, clear all caches again and it should work

X+

# Answer
> 1 votes
You're looking in the wrong place for civicrm.settings.php. Check /sites/default/civicrm.settings.php (or wherever your Drupal settings.php is located, if it's not in /sites/default)

---
Tags: drupal
---


title: Where is the edit button?

text:
# Question
Title: Where is the edit button?
I have created a user that belongs to a group. I have rights to edit contacts from that group. However I can only edit in the "quick view", but the button for editing the whole profile has disappeared. From the advanced search I can see that "edit" link... Why? How can I restore it? Thanks!

# Answer
Do you have any custom CSS or java script? Do you see a reference to the edit button if you check the page source?
> 1 votes

---
Tags: contacts
---


# Question
Title: How do I pass a variable to a smarty template?
Big picture: I'm working on a module that will display view-only custom data on a specific contribution page.

Please understand, if you're not aware of this already, view-only custom data is not available to smarty templates automatically.

I have successfully put my custom-data in a variable and have displaying in a debug message on my specific contribution page.

Now I want to display it for the user. Some folks seem to be using the hook buildform for this. I've looked at he buildform reference, and can make a form field appear on my contribution page.

In my template, I've tried using {$variable\_name}, but it seems that's not enough to display my variable.

I've also tried: $form-\>setVar( 'my\_var', $variable\_name); //in the module

and

{$my\_var} // in the template

or

{$form.my\_var} // in the template.

Still nothing. How do I pass a variable to a smarty template?

Can someone reply with some source code for the module and accompanying template help illustrate this for me?

Thanks much

# Answer
I found a way to achieve the goal, although I'm sure there are other ways and possibly a more correct way.

In the module, assuming the value of $var is already set, in the module I have:

```
 $form->addElement('text','my_var', $var );

  // dynamically insert a template block in the page
   $templatePath = realpath(dirname(__FILE__)."/templates");
    CRM_Core_Region::instance('page-body')->add(array(
      'template' => "{$templatePath}/testfield.tpl"

```

Then the template file is this. My data appears under 'label' instead of 'value'. It does work though.

```
{* template block that contains the new field *}
<div id="testfield-tr">
  <div>The value of var is: {$form.my_var.label}</div>
</div>
{* reposition the above block after #someOtherBlock *}
<script type="text/javascript">
  cj('#testfield-tr').insertAfter('#intro_text')
</script>

```
> 2 votes

# Answer
add {debug} into your template, it should show you all the variables that are assigned, if you are lucky, the variable you want is already there.

If it isn't you need to write a bit of php code to assign it to the template. Depends on where/how you want it, but the more "future proof" is to create an extension (with civix) and use a hook (buildform or page or...?)
> 0 votes

---
Tags: custom-fields, smarty
---


# Question
Title: CiviMail - SMTP error when sending test email
I am running CiviCRM 4.6.8 on Wordpress 4.3.1. I have configured my hosting providers SMTP details (as provided by them) under outbound email settings and when I click on "Save & Send Test Email", the email is sent successfully.

When I compose a new mailing under Mailing -\> New Mailing, and click on the "Send Test" button to send a test email to myself, I get this error:

> Error in call to Mailing\_send\_test : Failed to set sender: b.167.72.4a390771944bc4a6@ \[SMTP: Invalid response code received from SMTP server while sending email. This is often caused by a misconfiguration in Outbound Email settings. Please verify the settings at Administer CiviCRM \>\> Global Settings \>\> Outbound Email (SMTP). (code: 501, response: : domain missing or malformed)\]

What is the problem here and how do I resolve it?

# Answer
This is a problem not with your SMTP but with your Mail Accounts settings in CiviCRM. When using CiviMail (as opposed to other emails from CiviCRM), the headers are altered so that the message comes from a unique address. If a message bounces, CiviCRM can know exactly which recipient of which message generated the bounce.

The unique address is generated from the account in **Administer - CiviMail - Mail Accounts** selecter for bounce processing. It's made up of the Localpart (if set), a "b" followed by random string of numbers and dots, an "@" sign, and the Email Domain.

Looking at the address shown in your error message, it's missing the domain, and that's what the error is complaining about. Check your Mail Accounts settings to be sure you have the domain set.

Incidentally, while you're at it, you should double-check the whole bounce handling system:

1. Mail to random addresses at the domain you set should end up in a single mailbox.
2. Your IMAP or POP settings in Mail Accounts should work for checking that mailbox.
3. Your scheduled job for fetching bounces should be running.

See the page on book.civicrm.org for more information.
> 5 votes

---
Tags: civimail
---


# Question
Title: Civicrm upgrade problem - will clearing cache help?
Trying to run upgrade script on wordpress civicrm gives me a new login screen followed by another chance to click the upgrade button follow by another login screen. civicrm 4.6.9 from 4.6.8 wordpress 4.3.1

**How do I flush cache on Wordpress?**

Warning: Illegal string offset 'type' in /home/mygriefandloss/public\_html/wp/wp-content/plugins/civicrm/civicrm/CRM/Core/BAO/Setting.php on line 613

Warning: Illegal string offset 'group\_name' in /home/mygriefandloss/public\_html/wp/wp-content/plugins/civicrm/civicrm/CRM/Core/BAO/Setting.php on line 516

These errors happen when I just try to access civicrm from menu.

# Answer
> 2 votes
The answers here list a few different ways to clear cache: How to clear the caches in WP / Wordpress or Drupal via url? including on WordPress.

---
Tags: wordpress, upgrade, error, cache
---


title: Cannot get mailings to work

text:
# Question
Title: Cannot get mailings to work
I would like to use mailings for our organization.

First, I went to System Settings-\>Outbound Email Settings and selected mail(). When I clicked 'Save & Send Test Email', the email was properly delivered.

I then went to Mailing-\>Create New Mailing. I entered a message and clicked 'Send test' under 'Send test email to'. When I did this, I received the error: Error in call to Mailing\_send\_test : mail() returned failure.

Per some other posts, I did turn on additional debugging support, but that did not change the message displayed or the message that was logged to ConfigAndLog.

My guess was that mail() was the issue and specifying an authorized user via SMTP might work. So, I then went back to System Settings-\>Outbound Email Settings and selected SMTP. I entered the correct information (trying both SSL and non-SSL) and both times when clicking 'Save & Send Test Email', I recieved a lengty error message:

Sending test email. FROM: mail\_sender@ TO: test\_recipient@. Oops. Your SMTP settings are incorrect. No test mail has been sent.

An error occurred when CiviCRM attempted to send an email (via SMTP). If you received this error after submitting on online contribution or event registration - the transaction was completed, but we were unable to send the email receipt.

The mail library returned the following error message: Failed to connect to :25 \[SMTP: Failed to connect socket: php\_network\_getaddresses: getaddrinfo failed: Name or service not known (code: -1, response: )\]

I tried replacing the fully qualified domain name with localhost, but that also resulted in the same error message.

Can someone please suggest some steps for me to try to resolve these problems?

Thank you.

# Answer
> 1 votes
So you have two issues, that are probably not directly connected:

1) mail() working only when 'Save & Send Test Email' it uses a different sender (the default site email, as opposed at the one defined as the bounce mailbox)

They are various reasons so the later could fail, the most common ones are that you didn't configure properly the bounce mailbox or that your mail server prevents you to "impersonate" the bounce mailbox (eg if you use a gmail account for the bounce)

The documentation on how to configure is usually helpful, but if you can't walk through the steps, could you create a new question?

2) no smtp connection It depends on how your server is configured, check with your host provider what is your smtp server, if it on the same box as your webserver, if it accepts local connections, or if it needs authentication.

if you really have the same error message when you put localhost, try 127.0.0.1, if it works, you might have another problem (wrongly configured dns on the server), because localhost must be seen as a valid address (ie. I was expecting a different error message)

Lastly, what hosting provider are you using? if you went for a "low cost" option (ie. less than 5$/month) you often have providers that actively prevents you to send mass emails and you will spend way more struggling with your server than the cost of switching to a more mass mailing friendly.

---
Tags: civicrm-home
---


# Question
Title: How to turn off the prompts for additional participants in event registration
I have an event with a $10/head admission fee. I have "register multiple participants" and "same email address" boxes checked in the setup. The profile is just first name, last name and email. The problem is that each registrant is still taken to a profile screen for each person they are registering. So if Suzie is buying 6 tickets, she will be prompted to enter data on all six people. They may be optional, but they are still annoying to the user. How do you turn that off so Suzie can just say she wants 6 tickets, enter her own data, pay the fee and be done?

# Answer
Create a price set with options set at 1 Ticket $10, 2 Tickets $20, 3 Tickets $30 and so on.

Uncheck Register Multiple Participants, and use the price set you just created.
> 2 votes

# Answer
You can also create one option field of "Input Field Type" Text/numeric quantity. Suzie can then just enter in 6.
> 1 votes

---
Tags: civievent
---


# Question
Title: How do I embed an image into CiviMail messages?
Is possible to embedd images into civimail mailings? Would be great to have a choice between loading images from the server and sending them along with the mailing. For example Acymailing have this option. Is it possible in CiviMail?

# Answer
If you are referring to embedding images in the body of the email, yes, that is entirely possible in CiviMail.

Using the WYSIWYG editor, you can embed images. There is an image icon on the toolbar to do this. The images will be stored on your server and can be referenced in the HTML email. (Of course you could optionally just include the image hosted at a different URL as well.)

You could theoretically embed the byte stream of an image, though I don't know why you would want/need this.

If you are referring to attaching the images as attachments that is possible too. Check the Attachments section when you are defining the email in CiviMail.
> 5 votes

# Answer
You can embed an image (rather than a link to the image) directly into an email by viewing the image in any image editor and then copying and pasting the image into the CiviCRM HTML email editor.

Doing so has several undesirable effects however:

1. The image will be stored in your database rather than as a file. If you send a lot of large pictures over a period of time, then your database may grow unreasonably large making maintenance tasks such as a daily backup more difficult.
2. Users on slow or pay-by-byte connections may be displeased.
> 1 votes

# Answer
I have the same requirement for my organization. I want to be able to embed the image into the email body. I think you need to convert the image to Base64 encoding - see this stack exchange post on the topic.
> 0 votes

---
Tags: civimail
---


# Question
Title: What's the story behind the name 'CiviCRM'?
Last week, we finally deployed CiviCRM in our organisation. Hurray! :-)

One of the questions I get from our users, is 'what does the civi in CiviCRM means'? And I have no idea.

Does anybody knows something about the name CiviCRM, about where it comes from?

# Answer
> 12 votes
The canonical explanation is that Civi comes from "**civi**l society", ie " "aggregate of non-governmental organizations and institutions that manifest interests and will of citizens."

Over the years, I've heard various other explanations, one is that Dave and Lobo are extremely polite borderline canadian, so when they built a crm, they wanted it **civi**l.

After the first civicon, at the end of a long night involving lots of tequila shots, I've heard a sinister plot that Dave is an 5-star general in the army that is going rogue and wants to take control of the UN. According to the legend, the cividog has fought back and protected the **civi**lians. Those knowing Dave (or Scout) would take that explanation with a pinch of salt.

# Answer
> 3 votes
I have also heard the 'civic sector' alternative, but I like the Scout story far better!

---
Tags: civicrm.org
---


# Question
Title: What timezones should we use on the server and database?
We run a Civicrm installation that spans a continent (a long way from UTC).

What is the best practice?

1. What time should our server be set to?
2. How do we manage user timezones?
3. What time should go in the database?

# Answer
As long as your PHP and MySQL settings are correctly set (CiviCRM should warn you if they are not), you can set the server time to your preference. Using UTC for the server is probably more convenient on the long term, but it's not a CiviCRM requirement. For example, lets say you are in UTC-8, but next year a new sysadmin joins your team and is in UTC+6, UTC-8 will probably be pretty annoying (CiviCRM servers were initially on PCT time, before being changed to UTC).

The biggest issue with time in CiviCRM is with CiviMail scheduled mailings and with scheduled reminders.

If you are using Drupal or WordPress, CiviCRM should use the user's timezone settings and adjust time inputs/outputs accordingly. Otherwise you will have issues with the mailings not being sent at the right time (from the point of view of the user).

Eileen and Jamie have posted a good wrap-up of this issue here:
https://issues.civicrm.org/jira/browse/CRM-9683?focusedCommentId=67732&page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel#comment-67732

There is one detail with the timestamp field type that I do not really understand. i.e. if it's necessary to convert the field so that the fixes already committed work. Hopefully someone else can chime in.
> 3 votes

---
Tags: sysadmin, timezone
---


# Question
Title: Word replacement not working in some areas
I'm in Canada, and instead of County, we use "Province". I've set up a Word Replacement for "County" to change it to "Province", but when I edit a Contact, the label on the form still reads "County".

I'm running civiCRM 4.6.9 under Joomla 3.4.5

A short video walkthrough: http://www.youtube.com/watch?v=ok02KLEpYKM

Can anyone explain why this Word Replacement isn't working?

# Answer
> 2 votes
Word replacement for County works on the demo - I renamed it to County/rename.

http://joomla.demo.civicrm.org/administrator/?option=com\_civicrm&task=civicrm/contact/add&reset=1&ct=Individual

State/Province is a default field, I'm not sure why you're not using that, instead of renaming. Look at your address settings, link on demo: http://joomla.demo.civicrm.org/administrator/?option=com\_civicrm&task=civicrm/admin/setting/preferences/address&reset=1

---
Tags: contacts, admin
---


# Question
Title: Summary Fields Extension - Do the contribution fields include event/membership payments
For the Summary Fields Extension - Do the contribution fields (i.e "Total Lifetime Contributions") include event/membership payments?

Also, related question, if it does include event payments, does it include partial payments?

A blog about this extension is here: https://civicrm.org/extensions/summary-fields.

# Answer
> 1 votes
You can select the contribution types you want to include (there is a setting page). I don't know about partial payments though...

# Answer
> 1 votes
Yes the contribution fields can include event fees/contributions, membership payments, pretty much whatever you like. For Civi 4.6.9, and earlier versions, go to Administer -\> Customize Data and Screens -\> Summary Fields and you'll see the Summary Fields Administration settings page. If a partial payment has a Financial Type, it should appear. The admin choices are pretty intuitive.

---
Tags: civievent, extension, contributions
---


title: Volunteer Portal

text:
# Question
Title: Volunteer Portal
I work for a nonprofit who utilizes volunteers for many different functions, from day to day operations to special events. In our current data system we are able to set up a portal so that we can post volunteer opportunities online, and potential volunteers can look through them and sign up for them. Volunteers can also keep track of their volunteer hours and we can have volunteer descriptions right online. I did not see a volunteer portal on your list of options, do you have anything similar available if we switch to Civi CRM?

# Answer
> 5 votes
Take a look at CiviVolunteer at https://civicrm.org/extensions/civivolunteer

CiviVolunteer is installed at the CiviCRM Demos. Enable it for an event, example click Volunteers tab on: http://d46.demo.civicrm.org/civicrm/event/manage/settings?reset=1&action=update&id=3

---
Tags: civivolunteer
---


# Question
Title: Migrating domain to new server. mysql migration Error 1881
Wordpress 4.3.1

CiviCRM 4.5.5

Old host: Apache 2.2.26 - PHP: 5.3.28 - MySQL: 5.1.73

New host: Apache 2.2.29 - PHP: 5.3.29 - MySQL: 5.6.23

My only export options on the old host are via phpMyAdmin or cpanel export on the old host. I basically get a data.sql.gz file.

When I do this in ssh on the new host:

```
mysql -u username -p -h localhost DATA-BASE-NAME < data.sql

```

I'm getting this error:

```
ERROR 1881 (HY000) at line 48: Operation not allowed when innodb_forced_recovery > 0.

```

What can I do with my sql file or from the old host's phpMyAdmin so that the data import properly into the new host?

# Answer
It appears from this other StackExchange answer that the MySQL on the new server may be set to read only. Try opening the my.cnf configuration file for MySQL and changing the setting.
> 0 votes

---
Tags: wordpress, mysql, error, migration
---


# Question
Title: Can numeric version naming conventions for CiviCRM extensions use the Drupal module naming conventions?
I like the numeric naming conventions for Drupal modules - Drupal version number then module version number. For Drupal version 6 modules, it follows something like 6.x-2.1, for example. For Drupal version 7, something like 7.x-1.1, for example.

For CiviCRM, naming conventions for extensions could be 4.4-1.0 and 4.7-1.0, for example.

I think this would be *really* helpful for clarifying which extensions (should) work with which Civi versions.

The current system is a little vague, and it's sometimes unclear which extensions should work with which Civi version.

Also, extension version update info does not always get updated on the Civi website extensions page, but is sometimes buried in a GitHub repo issue discussion, or in a blog post elsewhere on the CiviCRM website, or issues.civicrm.org, or another website entirely.

Thoughts?

# Answer
> 7 votes
It's hard to apply the Drupal model to CiviCRM because the release cycles are so very different. Drupal releases a complete overhaul every 3-5 years, with nothing but bugfixes in-between. Civi's release cycle is more frequent and incremental, with some big changes in each major release but a lot of stability too. Drupal intentionally breaks compatibility with all modules with every new major version, whereas it's not uncommon for a single copy of a CiviCRM extension to work equally well with 4.4, 4.5, 4.6 & 4.7. For this sort of thing, the Drupal versioning convention would be too rigid.

Currently each release of an extension explicitly declares which version(s) of Civi it is compatible with in its info.xml. You can see this at a glance by looking at the extension's page on CiviCRM.org - each release has one or more compatible versions listed.

The only downside I've seen is that often times extensions continue to work fine with a new version of Civi but their info.xml hasn't been updated to show it. E.g. once 4.7 is released, the majority of 4.6-branded extensions will probably work fine, but you won't be able to automatically download them until someone manually tests, verifies, and bugs the maintainer to update their info.

---
Tags: extension
---


# Question
Title: Integrating CiviCRM events with Drupal Commerce?
I am wondering if anyone has successfully integrated CiviCRM events with Drupal Commerce. I'd like to sell events through commerce to prevent having a two commerce solutions on one site. I am aware of Commerce CiviCRM, but it seems irrelevant for the purpose of selling event registration.

Does anyone have a working model for selling event registration through commerce?

# Answer
Having spent time working with the CiviCRM Commerce module approach, the route we now recommend is using CiviCRM Entities and Drupal Rules. We don't have a package of such Rules yet as the project that was going to give us the time to do this has been deferred.
> 3 votes

---
Tags: drupal, commerce
---


# Question
Title: How can I display an info only field in a webform
I have put together a webform for signing in guests to a Nightshelter. Some guests are banned from time to time, and when a known guest tries to get signed in I want to show if he/she is subject to a ban. Simple enough, but I can't figure out how to do this without exposing the yes/no banned field as updateable. I can use conditionals but still end up showing the field as updateable. Is it possible to show a field as read only in a webform? Or any other suggestions?

# Answer
You could use webform conditional rules to display or hide a message based on the ban.

1. Add the "is banned" custom field to your webform
2. Update it from the webform tab to be type "hidden" (but *not* secure value)
3. Create a "Markup" field, and enter your warning message
4. Add a conditional rule to show/hide the markup based on the "is banned" value.
> 4 votes

# Answer
For select option components in a Webform, Disabled is not an option.

For something like what you are trying to do, I might be inclined to add a contextual block view that boldly states that they are not allowed in.

I also might try to set up a rule that checks that field and prints out a warning.
> 2 votes

---
Tags: webform-civicrm
---


# Question
Title: How does using CiviCRM compare to using NationBuilder?
Have you used or tried out NationBuilder.com, a US-based commercial not-free CRM used for political and community advocacy? What does CiviCRM do better, or worse? I prefer Civi but looking for more evidence for comparisons and info about experiences of those who've used both Civi and NationBuilder. Thanks!

# Answer
never used it directly, but had some customers that switched between civi and nationbuilder, in one direction or the other.

so the thing they liked better on nationbuilder was as well the thing they liked less: the ui is more polished, but/because you can do less. less features, less customisation, so easier to use and maintain.

a friend working for a political party that used it for all their candidates in the latest election said that the integration with social media- eg. from an email address being able to know the twitter or facebook accounts and how many followers and friends was quite nifty... but not always working as well as they hoped.

not sure how your extension compares to that, you're using the same base as they are, aren't you?
> 2 votes

---
Tags: civimail, civievent, civicontribute, civimember, civireport
---


title: CiviCRM on MariaDB instead of mySQL

text:
# Question
Title: CiviCRM on MariaDB instead of mySQL
Has anyone run CiviCRM on MariaDB instead of mySQL

https://mariadb.org/

Running CiviCRM on MariaDB could provide significant speed improvements.

# Answer
> 3 votes
We have mariadb on our newest server, it's a completely transparent replacement. I haven't noticed any major speed change, either better or worse, so I'd take your hope of major speed gain with a pinch of salt.

We switched to it mostly because they seem to do a better job at pushing new features than oracle... and because it looks like 100% the same, as viewed from civi

# Answer
> 3 votes
I have used Maria db 10 and noticed improved stability and lower resources utilization on 3 instances.... esp memory footprint. While it is a drop in replacement be sure to review the details about each version compatailty. Also btw Cpanel is moving from mysql to mariadb as its preferred platform.

# Answer
> 1 votes
We have a relatively major client in the UK (300k+ contact records / 100 users) who has swapped in Percona as we were reaching some DB connection timeouts with Mysql. It may just be related to having a better default db config with Percona then Mysql but the issues seem to have resolved. The IT manager at the client also thinks we've seen some minor performance improvements. We've been running for about a month now without any issues.

---
Tags: database
---


# Question
Title: Moving a membership from one contact type to another
We have a database where some memberships were attached to Households and some to Individuals. We'd like to normalize this -- what is the best way to move the membership from one to another? (e.g. take a Household's membership and move it to an Individual)

# Answer
Future searchers, here is the query I used. **Your mileage may vary** as this was helpful for our particular case but you may need to tweak to make it work in yours. This makes no attempt to look at membership-related contributions or anything else, simply swaps membership owner ID.

In our case we had Households that owned the membership and shared it to Individuals by relationship. This code finds all Current, Primary Household-owned memberships that also have secondary relationships, then swaps the individual's contact ID into the primary membership's owner ID field.

```
UPDATE civicrm_membership primary_memb

-- Join to Household Contact
INNER JOIN civicrm_contact hh
ON primary_memb.contact_id = hh.id

-- Join to Individual (secondary) membership by primary membership ID
INNER JOIN civicrm_membership indiv_memb
ON indiv_memb.owner_membership_id = primary_memb.id

-- Join to Individual Contact
INNER JOIN civicrm_contact indiv
ON indiv.id = indiv_memb.contact_id

-- Change owner of primary membership
SET primary_memb.contact_id = indiv.id

-- Status ID of 2 means "Current"
WHERE primary_memb.status_id = 2
-- Make sure it is a primary membership
AND primary_memb.owner_membership_id IS NULL
-- Only do this for the Household-owned memberships
AND hh.contact_type = 'Household';

```

Next step for us is to purge all secondary/shared memberships and then regenerate them.
> 1 votes

# Answer
This would probably depend on how many you have. If just a few, you should be able to just change contact\_id value in civicrm\_membership
> 3 votes

---
Tags: civimember
---


# Question
Title: Problem with Simple Donate extension and anonymous users
I installed and configured the Simple Donate extension on Drupal 7.39 and Civicrm 4.6.3. The Simple Donate page displays and functions fine if you are logged into drupal, but for anonymous users an error message is displayed stating "id is not a valid integer"

Looking at the backtrace it is showing the wrong domain\_id for the contribution page (it shows 1, but it should be 5) and and then at the very bottom the final message is Previous:Exception:private

Any assistance is greatly appeciated as I am sure that I am missing a setting somewhere, but not sure where.

Here is the backtrace I see in the logs after trying to render the page as anonymous user:

Oct 21 06:42:59 \[info\] $Fatal Error Details = Array ( \[message\] =\> id is not a valid integer \[code\] =\> \[exception\] =\> CiviCRM\_API3\_Exception Object ( \[extraParams:CiviCRM\_API3\_Exception:private\] =\> Array ( \[error\_field\] =\> id \[type\] =\> integer \[error\_code\] =\> 2001 \[entity\] =\> Contact \[action\] =\> get \[is\_error\] =\> 1 \[error\_message\] =\> id is not a valid integer )

```
        [message:protected] => id is not a valid integer
        [string:Exception:private] =>
        [code:protected] => 0
        [file:protected] => /var/www/html/mplace/sites/all/modules/civicrm/api/api.php
        [line:protected] => 45
        [trace:Exception:private] => Array
            (
                [0] => Array
                    (
                        [file] => /var/www/html/mplace/sites/all/modules/civicrm/CRM/Mailing/Info.php
                        [line] => 165
                        [function] => civicrm_api3
                        [args] => Array
                            (
                                [0] => Contact
                                [1] => getvalue
                                [2] => Array
                                    (
                                        [id] => user_contact_id
                                        [return] => email
                                    )

                            )

                    )

                [1] => Array
                    (
                        [file] => /var/www/html/mplace/sites/all/modules/civicrm/Civi/Angular/Manager.php
                        [line] => 130
                        [function] => getAngularModules
                        [class] => CRM_Mailing_Info
                        [type] => ->
                        [args] => Array
                            (
                            )

                    )

                [2] => Array
                    (
                        [file] => /var/www/html/mplace/sites/all/modules/civicrm/Civi/Angular/Page/Main.php
                        [line] => 66
                        [function] => getModules
                        [class] => Civi\Angular\Manager
                        [type] => ->
                        [args] => Array
                            (
                            )

                    )

                [3] => Array
                    (
                        [file] => /var/www/html/mplace/sites/all/modules/civicrm/Civi/Angular/Page/Main.php
                        [line] => 58
                        [function] => registerResources
                        [class] => Civi\Angular\Page\Main
                        [type] => ->
                        [args] => Array
                            (
                            )

                    )

                [4] => Array
                    (
                        [file] => /var/www/html/mplace/sites/all/modules/civicrm/CRM/Core/Invoke.php
                        [line] => 312
                        [function] => run
                        [class] => Civi\Angular\Page\Main
                        [type] => ->
                        [args] => Array
                            (
                                [0] => Array
                                    (
                                        [0] => civicrm
                                        [1] => simple
                                    )

                                [1] =>
                            )

                    )

                [5] => Array
                    (
                        [file] => /var/www/html/mplace/sites/all/modules/civicrm/CRM/Core/Invoke.php
                        [line] => 86
                        [function] => runItem
                        [class] => CRM_Core_Invoke
                        [type] => ::
                        [args] => Array
                            (
                                [0] => Array
                                    (
                                        [id] => 417
                                        [domain_id] => 1
                                        [path] => civicrm/simple
                                        [title] => Simple Donation Page
                                        [access_callback] => Array
                                            (
                                                [0] => CRM_Core_Permission
                                                [1] => checkMenu
                                            )

                                        [access_arguments] => Array
                                            (
                                                [0] => Array
                                                    (
                                                        [0] => make online contributions
                                                    )

                                                [1] => and
                                            )

                                        [page_callback] => \Civi\Angular\Page\Main
                                        [breadcrumb] => Array
                                            (
                                                [0] => Array
                                                    (
                                                        [title] => CiviCRM
                                                        [url] => /civicrm?reset=1
                                                    )

                                            )

                                        [is_public] => 1
                                        [is_ssl] => 1
                                        [weight] => 0
                                        [type] => 1
                                        [page_type] => 0
                                        [page_arguments] =>
                                    )

                            )

                    )

                [6] => Array
                    (
                        [file] => /var/www/html/mplace/sites/all/modules/civicrm/CRM/Core/Invoke.php
                        [line] => 54
                        [function] => _invoke
                        [class] => CRM_Core_Invoke
                        [type] => ::
                        [args] => Array
                            (
                                [0] => Array
                                    (
                                        [0] => civicrm
                                        [1] => simple
                                    )

                            )

                    )

                [7] => Array
                    (
                        [file] => /var/www/html/mplace/sites/all/modules/civicrm/drupal/civicrm.module
                        [line] => 489
                        [function] => invoke
                        [class] => CRM_Core_Invoke
                        [type] => ::
                        [args] => Array
                            (
                                [0] => Array
                                    (
                                        [0] => civicrm
                                        [1] => simple
                                    )

                            )

                    )

                [8] => Array
                    (
                        [function] => civicrm_invoke
                        [args] => Array
                            (
                                [0] => simple
                            )

                    )

                [9] => Array
                    (
                        [file] => /var/www/html/mplace/includes/menu.inc
                        [line] => 519
                        [function] => call_user_func_array
                        [args] => Array
                            (
                                [0] => civicrm_invoke
                                [1] => Array
                                    (
                                        [0] => simple
                                    )

                            )

                [10] => Array
                    (
                        [file] => /var/www/html/mplace/index.php
                        [line] => 21
                        [function] => menu_execute_active_handler
                        [args] => Array
                            (
                            )

                    )

            )

        [previous:Exception:private] =>
    )

```

)

Oct 21 06:42:59 \[info\] $backTrace = #0 /var/www/html/mplace/sites/all/modules/civicrm/CRM/Core/Error.php(444): CRM\_Core\_Error::backtrace("backTrace", TRUE)

# 1 /var/www/html/mplace/sites/all/modules/civicrm/CRM/Core/Invoke.php(57): CRM\_Core\_Error::handleUnhandledException(Object(CiviCRM\_API3\_Exception))

# 2 /var/www/html/mplace/sites/all/modules/civicrm/drupal/civicrm.module(489): CRM\_Core\_Invoke::invoke((Array:2))

# 3 internal function: civicrm\_invoke("simple")

# 4 /var/www/html/mplace/includes/menu.inc(519): call\_user\_func\_array("civicrm\_invoke", (Array:1))

# 5 /var/www/html/mplace/index.php(21): menu\_execute\_active\_handler()

# 6 {main}

# Answer
Wayne,

Simple Donate is a CiviCRM + angular extension. So there was some issue with loading angular related files for the anonymous user.

I would suggest below patch to your CiviCRM instance, https://github.com/civicrm/civicrm-core/pull/7111

Here is the issue for more info: https://issues.civicrm.org/jira/browse/CRM-17393

Let me know if it works.

Kurund
> 1 votes

---
Tags: civicontribute, contribution-page
---


# Question
Title: Is it possible to upload a default image for a field
While creating a Personal Campaign Page, there is one image upload field (see attached screenshot). Is it possible to attach a default image in case a user does not wish to upload one? Screenshot:

Thanks!

# Answer
The issue of default values for PCPs has come up a few times but there are no options currently to do this so it will require some development work.
> 1 votes

---
Tags: personal-campaign-pages
---


# Question
Title: Parent group isn't counting contact in child groups
In the WordPress demo site I just create a group called `parent_01` and a child group inside this one called `child_01`.
I create a contact called `test1` and added to `child_01` gruop, but in the `Manage Groups` screen the parent group has `0` in the `count` field
Is this a correct behaviour?

# Answer
This is a limitation of current implementation, "Parent Group" contact count does not include "Child Group" contact count. So I would call this a missing feature :)
> 4 votes

# Answer
Since clicking 'Contacts' on the parent group does show the contact you added, this looks like a bug. I tested the same setup on dmaster.demo.civicrm.org and see the same behavior, so it doesn't appear to be 4.6 specific. I ran the job to rebuild the smart group cache as well, with no change.

Please file a bug when you get a chance.
> 2 votes

---
Tags: groups
---


# Question
Title: Is there a Notification Setting associated with "potential" Duplicates
New to CiviCRM and learning the ropes. I know how to search for duplicates and merge them but wondering if when CiviCRM finds a potential duplicate on its own is there a setting where I can be notified by email or within CiviCRM when I log in to the Dashboard where a "cache" of potential dups is waiting for me to inspect?

# Answer
> 1 votes
Currently, there no setting that will email or notify you about duplicates in your system. The only way is searching duplicates and merging them as mentioned by you.

# Answer
> 0 votes
What you could do is create a group or a tag "potential duplicate". You can then use the standard contact reports to create a dashboard with member of this group/contacts who have this tag?

---
Tags: duplicate-contacts
---


title: webform how to change live options

text:
# Question
Title: webform how to change live options
I am trying to add in some additional dropdown options on a component of a webform

I dont want to use static options and need to alter the live options

How do do find the fields that the live options refer on CIVI so I can change them? So that they will come up as live options

Hope this makes sense!

# Answer
Good question. Best way is to click on the CiviCRM Tab on the webform, and then look at the fields that are checked either on the relevant Contact, or on the Activity, Membership or Contribution section. That should show you both the 'name' of the field and the 'name' of the fieldset (field group).

The other option would be to look at the webform component itself and the 'field key' would look something like civicrm\_1\__1\_cg16\_custom\_152. in this case the '16' is the id of the fieldset (field group) and the 152 is the id of the custom field.

You should therefore be able to look at /civicrm/admin/custom/group?reset=1 and click on View and Edit Custom Fields on any of the field sets, and then change the id in the url, eg such as /civicrm/admin/custom/group/field?reset=1&action=browse&gid=27 so instead of '27' to '16'

If the field is still not obvious then you can repeat this process, ie click on any of the 'fields' and change the id, eg from /civicrm/admin/custom/group/field/update?action=update&reset=1&gid=16&id=1 so you change the '1' to '152'

At that point you should have access to the 'options' for the field and should be able to add new options.

Gosh that seems long-winded, but hope it helps.
> 2 votes

---
Tags: webform-civicrm
---


title: Is CIviCRM compatible with Concrete5?

text:
# Question
Title: Is CIviCRM compatible with Concrete5?
Our website is built on the Concrete5 platform. Is CiviCRM compatible with Concrete5?

# Answer
Perhaps it isn't as clearly documented as would be expected (seeing nothing on front page or /about or /get-started actually talks about CMS) but nevertheless CiviCRM has been built to work with Drupal, Joomla! and WordPress. Hence the answer is somewhere between 'no' and 'incredibly unlikely' ;-)
> 4 votes

---
Tags: webserver, evaluating-civicrm
---


# Question
Title: How can we rank contacts in league tables based on 'points' for completing Activities, attending Events, having a Membership, etc - "gameify" CiviCRM?
I want to create "league tables" (rankings based on "points") - similar to the user rankings that Stack Exchange uses - for contacts who have participated in Events, completed various Activities, have Membership(s), made other Contributions, etc.

Completing different actions would have different, weighted points - for example, an organization might value attending a political action, or signing an online petition, or voting, more highly than merely having a Membership or just contributing money otherwise.

It seems relatively simple - assigning the points to the Activities, Event participation, etc in back-end tables and adding custom fields, then creating Reports using current capabilities with some slight tweaking.

Rankings based on weighted points *could* be more objective than merely assigning a leadership/engagement value (like 1,2,3,4,5 with 1 being better/most, 5 the least) to a contact, which can be somewhat subjective.

Has anyone done something like this using Civi? Would be great to know.

Thanks!

# Answer
> 3 votes
I'm the author of CiviPoints that John and Erik mentioned. We have a points system internally at Future First for tracking engagement, and then colour codes based on that for reporting. Currently it's being done with spreadsheets.

Some development was done before the sprint on the database structure and API for this extension, and a basic UI including contact tabs. Hearing more about CiviRules at CiviCon and the sprint I thought it would be a great idea for automating our weekly figures. I'm interested in integrating it with CiviRules as both a trigger (when some level of points is hit, do X) and an action (when Y happens, grant some points). There's a preliminary version of the action part in a branch.

I haven't done anything on it since the sprint, and it's not in production or automatic distribution, because our main priority has been working on a new portal for our members. I do hope to give it more attention soon though!

League tables aren't something I've considered before, but sounds like a good idea. Some features it does have, in the underlying structure at least, are point-in-time history, and support for multiple points types (different programmes, or maybe engagement tracking as well as some sort of credits).

Some issues/enhancements are listed on GitHub. Please feel free to use it and test it, any feedback would be welcome. Thanks!

# Answer
> 2 votes
Following from ErikH's answer, the repo is here: https://github.com/futurefirst/uk.org.futurefirst.networks.civipoints

There's fledgling CiviRules integration that hasn't been merged. CiviRules will allow you to build the conditions necessary to award points. For instance, attending a certain type of event gives 5 points, having a certain type of activity or a certain value in a custom field gives 10 points etc.

The extra neat thing is that points can expire. I.e. if you want to track engagement over time, a volunteer who did a shift 10 years ago isn't as engaged as one who has done one earlier in the month.

If you were to: 1. install, use, and test and 2. write instructions that might be a really handy contribution :)

(PS: I've brought the author DaveFF's attention to this, although I haven't contributed to this code myself. I've no idea if it's currently in active use or not, but I've seen it working on a local install).

# Answer
> 1 votes
I know someone at Future First is working on the same kiond of idea, combining it with the CiviRules extension

---
Tags: civievent, civicontribute, civimember, activities
---


# Question
Title: Is anyone using the bootstrap UI css in production in 4.6?
I'm using bootstrap and it's very easy to work with, especially for form data. I know there is a project, with documentation: http://wiki.civicrm.org/confluence/display/CRMDOC/Bootstrap+UI+for+CiviCRM but wondering if anyone is actually using it? Also, I'm not sure how this is implemented - is it an extension?

# Answer
This was part of a google summer of code. This requires change in the core and it wasn't "production ready" and hasn't been merged. For what I recall, they were a few tweaks that were "big gain", like automatically generate the input fields (most of?) so they use the same html structure and classes than bootstrap.

It would be great to complete the project and get it back in the core, but so far, no one picked it up (hint hint...)

What I often do is to use bootstrap and webform for nearly all the public facing forms, and it works fine

X+
> 2 votes

---
Tags: 4.6, bootstrap
---


# Question
Title: How to create custom opt-in email for webforms
I've seen the option to double opt-in (send a confirmation email) when choosing a public group in webform, but I'd like to be able to:

* customise the confirmation email sent
* have a double opt-in for private emails

Is there a way to do that in webform civi? I tried to find a checksum token to be used in a custom email, does it exist?

Alternatively, is there a webform specific confirmation page that I could use? eg. https://www.drupal.org/project/webform\_confirm\_email

# Answer
You can daisy-chain webforms using checksums, so on form 1 you set up your fields to collect contact detail data, then set up a second webform which actually adds them to your private email group, and having set the second webform up you can find the url with checksum on the CiviCRM tab of the webform, and then set that as the link that goes out in the email from the first webform.
> 3 votes

---
Tags: webform-civicrm
---