# Question
Title: Mosaico with WordPress Unexpected errors
I am working with the Mosaico extension in WordPress with Civi 4.7.20.

If I go to build a template the template builder loads OK. I get several errors when working on the template.

1. When a template loads the image placement areas do not show an image and if I upload an image I get an internal server error.
2. When I try to save an template I get an unexpected error, please contact us. This only occurs on the versafix-1 template the tedc15 template saves OK.

Not sure if it is a bug or configuration issue.

# Answer
This is a bug - and it looks like it has been reported upstream:

https://github.com/veda-consulting/uk.co.vedaconsulting.mosaico/issues/160

The temporary fix is to add an Alias to your Apache or Nginx configuration. I added the following for nginx:

```
location /templates/versafix-1/ {
  alias /srv/longshore/platforms/ourpowerbase-d7-c4.7.19/sites/all/extensions/uk.co.vedaconsulting.mosaico/packages/mosaico/templates/versafix-1/;
}

```
> 1 votes

---
Tags: wordpress, mosaico
---


# Question
Title: Front End Name List/Search Gives DB Error
All of a sudden my front end name listing/search gives a DB Error. Any ideas on why this would start now?? This is occuring on the public and the registered access search profiles.

Here's what I found in the Log \>\>

Using Joomla 3.6.2 and CiviCRM 4.7.20, with MySQL 5.6.35

---

Jun 20 17:18:51 \[info\] $Fatal Error Details = Array ( \[callback\] =\> Array ( \[0\] =\> CRM\_Core\_Error \[1\] =\> handle )

```
[code] => -2
[message] => DB Error: syntax error
[mode] => 16
[debug_info] => SELECT count(id) FROM civicrm_uf_field WHERE uf_group_id =  AND visibility IN ('Public Pages', 'Public Pages and Listings')  [nativecode=1064 ** You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near 'AND visibility IN ('Public Pages', 'Public Pages and Listings')' at line 1]
[type] => DB_Error
[user_info] => SELECT count(id) FROM civicrm_uf_field WHERE uf_group_id =  AND visibility IN ('Public Pages', 'Public Pages and Listings')  [nativecode=1064 ** You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near 'AND visibility IN ('Public Pages', 'Public Pages and Listings')' at line 1]
[to_string] => [db_error: message="DB Error: syntax error" code=-2 mode=callback callback=CRM_Core_Error::handle prefix="" info="SELECT count(id) FROM civicrm_uf_field WHERE uf_group_id =  AND visibility IN ('Public Pages', 'Public Pages and Listings')  [nativecode=1064 ** You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near 'AND visibility IN ('Public Pages', 'Public Pages and Listings')' at line 1]"]

```

)

# Answer
> 1 votes
Looks like you don't have `summary_overlay` profile in your `civicrm_uf_group` table. This is a reserved profile which we cannot delete or disable from UI.

So its possible if the name is edited or the profile is deleted from your db due to some reason. To check-

1. Open `civicrm_uf_group` table.
2. Check for the entry for `Summary Overlay` profile. This is with id `7` on demo site of civicrm.
3. If you don't find this profile - error is due to this reason.
4. If you find it - check the name column of this profile and change if it is anything other than `summary_overlay`.

# Answer
> 0 votes
Neil Z - your query missing uf\_group\_id value in the query ("WHERE uf\_group\_id = AND") - sorry if this is stating the obvious - and i think the value should be whatever the id of the civicrm\_uf\_group is. Has anyone deleted/disabled groups , can you find it in Manage Groups?

# Answer
> 0 votes
We had exactly the same problem. Changed summary\_overlay\_7 to Summary\_Overlay like before it stopped "DB Syntax error"

---
Tags: profile
---


# Question
Title: Tracking on Civimail suddenly stopped working
Morning all

Civi 4.7.14 Wordpress 4.7.5 Using Mosaico (the original one)

All's been going fine for months and months.. suddenly the tracking has stopped working. The emails are being received..just not being reported.

I tried this suggestion: CiviMail tracking opens stopped working after upgrade to 4.7.x

ie cut and paste this link img src="https://yoursite.org/sites/all/modules/civicrm/extern/open.php?q=91954565" width='1' height='1' alt='' border='0'

but got a black screen- no error message- which I guess is what I'm supposed to get?

thanks for any suggestions

# Answer
> 1 votes
That looks like a tracking image (it's 1x1 px and probably transparent), so you probably don't see it or get an error message.

Once after an upgrade, I somehow ended up with a space before the opening php tag in https://yoursite.org/sites/all/modules/civicrm/extern/url.php which broke tracking (can't have output before the header('Location: ' . $url);)

# Answer
> 1 votes
and the answer is...

dont use tokens to set your paths...

"A workaround is to change the root civicrm token to an absolute path (Credit due to Eli Lisseck for research and workaround solution)"

thanks greatly to Civimail open tracking is not working for some mailings - inserts var/www/html into path for some mailings but not others

---
Tags: wordpress, civimail, tracked-links, mosaico
---


title: Can you use moneris with CiviCRM?

text:
# Question
Title: Can you use moneris with CiviCRM?
Is there a CiviCRM extension that supports the moneris payment gateway?

Thank you

# Answer
Yes - this is where you can find the Moneris payment processor extension.
> 1 votes

---
Tags: payment-processor, moneris
---


title: Unable to add financial account

text:
# Question
Title: Unable to add financial account
I have run into an issue and I'm not sure if it's a bug or if i'm not understanding how Civi is using the Financial Accounts.

I have created a new account relationship called "Fund" in the option groups. I created a Financial Account called "General Fund" as an Asset (EQUITY) account type. I attempted to assign the Financial Account "General Fund" with a relationship of Fund to the Financial Type Donation. Civi just sits and spins when I click on assign account and never actually adds the account to the Financial Type.

The reason I'm doing this is so that an extension that I'm having written can pull that info from Civi to import into my accounting software.

Edit: I was able to replicate this on my site and the demo.

I'm running 4.7.11 and Drupal 7. The demo is running 4.7.13

**EDIT** I checked the database just to see if there was something different with the financial type and account that I created. I did notice that in the civicrm\_option\_value table that the row for the account relationship I created the column component\_id was blank and all the others were set to 2. I changed the one I entered to 2 (it didn't make a difference).

I tried adding the account to the type manually in the database and it shows up in the UI. I can't edit it through the UI but it's there.

# Answer
This was due to the exception thrown on an AJAX pop. A fix has been raised for it at https://github.com/civicrm/civicrm-core/pull/10651.

Hopefully it will be a part of 4.7.23 release.
> 4 votes

# Answer
I am afraid that CiviCRM on this side is less flexible as it seems. Here is a fragment of the file FinancialAccount.php Line 282.

```
$Links = array(
  'Expense Account is' => 'Expenses',
  'Accounts Receivable Account is' => 'Asset',
  'Income Account is' => 'Revenue',
  'Asset Account is' => 'Asset',
  'Cost of Sales Account is' => 'Cost of Sales',
  'Premiums Inventory Account is' => 'Asset',
  'Discounts Account is' => 'Revenue',
  'Sales Tax Account is' => 'Liability',
  'Deferred Revenue Account is' => 'Liability',
  'Refunds to' => 'Liability',
);

```

It shows that the code makes strong assumptions about the defined account relationships. You can add your custom account relationship in this place, and you then you can use the screen to connect it to financial types. But I think it is safer to figure out how your extension can work within the existing financial schemes.
> 0 votes

---
Tags: issues, accounting, financial-types, financial-accounts
---


# Question
Title: Cannot install CiviCRM 4.7.21 on WordPress/Drupal
Wanting to do a clean install of CiviCRM, I thought I should use version *4.7.21*. I am using a clean install of *WordPress 4.8* with no other plugins.

I get the error message below when I go to the configure screen (`....<civicrm directory>/civicrm/install/index.php`) and all the database checks appear red (*edit*: attempted installation with *Drupal 7.56* with the exact same problem):

> Warning: `mysqli_real_escape_string()` expects parameter 1 to be `mysqli`, `null` given in `/home/fotgm080/public_html/temp2/wp-content/plugins/civicrm/civicrm/install/index.php` on line 1282
>
> Your database settings don't appear to be correct.
>
> * Does the server exist? OK (localhost)
> * Are the access credentials correct? That username/password doesn't work:
> * Can I access/create the database? I can't create new databases and the database 'fotgm080\_wp685' doesn't exist. (user 'fotgm080\_wp685' doesn't have CREATE DATABASE permissions.)
> * Can I access/create InnoDB tables in the database? Unable to create InnoDB tables. MySQL InnoDB support is required for CiviCRM but is either not available or not enabled in this MySQL database server. Could not determine if MySQL has InnoDB support. Assuming no.
> * Can I create temporary tables in the database? Could not login to the database.
> * Can I create lock tables in the database? Could not connect to the database server.
> * Can I create triggers in the database? Could not login to the database.

If I do a clean install of WordPress/Drupal again and try *CiviCRM 4.7.20* then everything is fine.

# Answer
> 3 votes
This issue is corrected in the 4.7.22 release. I was able to do a clen install on a WordPress site.

# Answer
> 2 votes
I had the same error in *Drupal 7.56*:

> `mysqli_real_escape_string()` expects parameter 1 to be `mysqli`, `null` given ...

Exactly on line 1282 of the new `civicrm/install/index.php`, which is different from *CiviCRM 4.7.20*'s `index.php`. So I just **replaced the new file by the old one** and all the checks became green and the installation proceeded normally (Drupal and CiviCRM share the same DB). CiviCRM is working fine.

# Edit: after investigating...

I compared both versions `install/index.php` files and there is actually a new function that replaces all the connections to MySQL that were made previously and directly through `mysqli_connect($server, $username, $password)`.

This is the new function:

```
protected function connect($host, $username, $password, $database = '') {
  $hostParts = explode(':', $host);
  if (count($hostParts) > 1 && strrpos($host, ']') !== strlen($host) - 1) {
    $port = array_pop($hostParts);
    $host = implode(':', $hostParts);
  }
  else {
    $port = '';
  }
  $conn = @mysqli_connect($host, $username, $password, $database, $port);
  return $conn;
}

```

This function does not add or alter procedures in the installation process. It is basically a verification and treatment of the `$server` variable passed as parameter (`$host`). What it does:

1. Does the `$server`/`$host` string contains a **port**?
    * if **YES** than:
        1. pop it out from the string and place it under the `$port` variable;
        2. replace the original `$host` string by a new string without the port.
    * if **NO** than:
        1. assign an empty string to `$port`.
2. Establish a connection with the "new" separated parameters like so:

```
@mysqli_connect($host, $username, $password, $database, $port)

```

If you notice, the difference from the old version is just one: 2 more parameters provided to `mysqli_connect`, in order to support websites running in different ports.

Which means, for all connections without a specific port (most cases), replacing `index.php` of version *4.7.21* with the one from version *4.7.20* will work (here's a pastebin with the old `index.php`).

## How to fix it in version 4.7.21

The problem does not lie in the `connect` function parameters treatment, but in **the `$port` value, which if it becomes an empty string mysqli's result will be `null`**. Also the `$database` value is always empty.

These can be fixed either by:

1. adding the proper value to `$database` when `connect` is invoked
2. providing a valid value for `$port` (not an empty string)

### Quickfix (2.)

Do not allow the `$port` to become an empty string, i.e. replace **only this line** in the `install/index.php@connect`:

```
$port = '';

```

By this line:

```
$port = NULL;

```

This will prevent `mysqli_connect` result to be `null`.

I have tested this in a new installation and it works.

### Proper fix (1.):

For making use of the `$database` parameter, these lines:

```
$this->conn = $this->connect($server, $username, $password);

```

Must be replaced with:

```
$this->conn = $this->connect($server, $username, $password, $database);

```

These include lines 1040, 1075, 1105, 1145, 1226, 1270 and 1409.

For the remaining lines (978 and 1192 where the `connect` is invoked), since there is no available database name value, we need to add to the respective functions the `$database` parameter, i.e.:

1. For `requiredMysqlConnection`:
    * replace with `public function requireMysqlConnection($server, $username, $password, $database, $testDetails) {`
    * replace with `$this->conn = $this->connect($server, $username, $password, $database);`
    * line 445 (after `$databaseConfig['password'],`) add a new line with `$databaseConfig['database'],` (`$dbName` should not be used since it only contains a default value like `'CiviCRM'`)
2. For `requireMySQLAutoIncrementIncrementOne`:
    * replace with `public function requireMySQLAutoIncrementIncrementOne($server, $username, $password, $database, $testDetails) {`
    * replace with `$conn = $this->connect($server, $username, $password, $database);`
    * line 465 (after `$databaseConfig['password'],`) add a new line with `$databaseConfig['database'],` (`$dbName` should not be used since it only contains a default value like `'CiviCRM'`)

This handles empty `$database` values. However, **if `$port` is actually an empty string**, `mysqli_connect` will also return `null`. Therefore, the line mentioned in the previous **Quickfix (2.)** should also be changed.

I have tested this fix and it worked as well. If you have any suggestions/improvements, please comment below and I'll edit.

---
Tags: wordpress, drupal, installation, version
---


title: Set [civicrm.files]

text:
# Question
Title: Set [civicrm.files]
I have a dev copy of CiviCRM that I upgraded to 4.7.21. The file paths have been removed and show \[civicrm.files\] instead. I cannot figure out how to set \[civicrm.files\] so that CiviCRM can see the *extend* directory and other files.

Thanks!

# Answer
> 12 votes
You can specifically set the value of `[civicrm.files]` in `civicrm.settings.php` with code like this:

```
global $civicrm_paths;
$civicrm_paths['civicrm.files'] = array(
  'url' => 'https://example.com/foo',
  'path' => '/var/www/example.com/foo',
);

```

If you don't set the value, then Civi will try to find it automatically, but this doesn't work in all configurations. (For example, if your directory structure uses symlinks, it may not resolve correctly.)

**Tip**: You didn't ask, but if your system is basically working, then you can inspect the value of `[civicrm.files]` in a few ways:

* In the web UI, navigate to `Administer => System Settings => Directories`. Click on the main help icon.
* In the web UI, navigate to `Administer => System Settings => Resource URLs`. Click on the main help icon.
* In the CLI, run `cv path -d [civicrm.files]`
* In the CLI, run `cv url -d [civicrm.files]`

---
Tags: civicrm.settings.php
---


# Question
Title: How to make status always 'Completed' for activities added to a case?
A couple of clients would like to use CiviCase and both of them have very unstructured cases, so a timeline or a sequence is not appropriate. So I have created a case without a timeline or sequence but... when an activity is added to such a case it defaults to a status of 'Scheduled'. Both of my clients want to normally record activities after the fact, so for them the status should default to 'Completed'. I don't see how this can be done in the UI. Can anyone either tell me how this can be done with the UI or in the code? If it can't be done in the UI then adding a default status for new case activities seems like a desirable feature.

# Answer
> 8 votes
Might be easiest to update the database is\_default field. Works for me on a 4.6 site:

```
update civicrm_option_value set is_default=0 where option_group_id=26 and name='Scheduled';
update civicrm_option_value set is_default=1 where option_group_id=26 and name='Completed';

```

You may need to change the 26 but it's a stock option group. To confirm first can do:

```
select id from civicrm_option_group where name='activity_status';

```

or go to admin - system settings - option groups and see what the id in the link is. Ideally you'd be able to set default value on that screen but it doesn't seem to offer it.

# Answer
> 4 votes
You can use the buildForm hook on an activity to check if the activity belongs to a case (in which case `case_id` will not be empty I think) and then set the default status to Completed.

There is an example here, although it sets different statuses for different types it basically does the same thing. Copy and change I would say :-): https://github.com/PUMNL/nl.pum.casestatus And it is developed for CiviCRM 4.4...

# Answer
> 3 votes
You can also use CiviRules: https://civicrm.org/extensions/civirules

You can set a trigger when a case activity is saved, that the status always changed to "Completed."

---
Tags: civicase, 4.7, 4.6, activity
---


# Question
Title: Authorize.net TLS Disablement Notice civicrm
what are the changes I need to make to make sure authorize.net works perfectly after authorize.net has sent this message as given below

> Your Payment Gateway ID: Dear Authorize.Net Merchant: As you may be aware, new PCI DSS requirements state that all payment systems must disable early TLS by 2018.
> TLS FAQs Merchant Interface Transport Layer Security (TLS), is a technology used to encrypt sensitive information sent via the Internet. TLS is the replacement for Secure Sockets Layer (SSL). In preparation for this requirement, Authorize.Net plans to disable TLS 1.0 and TLS 1.1 on the following dates:
>
> Sandbox: COMPLETE Production: September 18, 2017
>
> We have disabled the sandbox in advance of production to allow you and your developer time to test your website or payment solution and ensure you are no longer using TLS 1.0 or 1.1 prior to September 18th.
>
> Please contact your web developer or payment solution provider, as well as your web hosting company, to confirm that they can support TLS 1.2 for your API connections.

# Answer
See this blog post which has specific instructions.
> 3 votes

---
Tags: authorize.net
---


title: Linking Activities

text:
# Question
Title: Linking Activities
I have a case where I would like to be able to create linked activities. This is already in the context of a case so a case will not work.

An activity of type A might have 4 or five of type B that are related to it.

I do not think this is possible with CiviCRM but I want to check before I build something custom.

I am thinking of just populating the ID of Activity A in a custom field for Activity B and then I can query accordingly and use Views to show my results.

Any other ideas are greatly appreciated.

Thanks, Josh

# Answer
> 2 votes
Depends what you want the 'link' to do, but you could set the type B activities as follow-up activities to the type A using the `parent_id` attribute - which is pretty much the same as your approach but using a standard field instead of custom.

---
Tags: activities
---


# Question
Title: What are some ways to handle flight information?
My organization coordinates international trips, and so we collect flight information for airport pickups. Currently, we use a google form and multiple spreadsheets, but I am exploring possibilities for civi.

What I would like:

* user reporting of their own flight information - arrival date/time, flight info
* user editing of the flight information would be ideal (through online profiles)
* assign someone to pick them up
* create reports and/or exports of the flight information

Here are some options I am thinking of, and I invite suggestions for the best way to handle this use case. (We use Joomla, so webforms are not an option.)

* Create custom Participant fields. The problem with this is that the user could only report them when registering for the event, when they are unlikely to have booked their flights.
* Create custom Contact fields, with a profile for user input/editing. One drawback of this is that it isn't really "contact" information, but I'm willing to overlook that.
* Create custom contact fields with multiple records, which makes more sense that simple contact fields. I haven't used these yet for other cases, but it seems that reporting/exporting would be a problem.
* Create a "Flight" Activity Type, and use the standard activity fields to record the information. The advantage of this is that it doesn't require custom fields, but as far as I can tell, users wouldn't be able to self-report through a front-end profile.

Has anyone else developed a process for tracking airport pickups? What might be some other good options?

# Answer
> 2 votes
So I did this with your option:

Create custom Contact fields, with a profile for user input/editing. One drawback of this is that it isn't really "contact" information, but I'm willing to overlook that.

It worked pretty well of course I am only working on one trip at a time - so multiple trips are not needed. This would get a bit hairy if you had the same person having multiple trips at the same time - if that is not the case it should work

# Answer
> 2 votes
looks like you have done a good analysis of the options. Here is one extra one - add CiviCRM to a Drupal website - make the Drupal website theme match your joomla one - push folks through to the Drupal site - and then make use of Views and Webforms to deliver all the bits that you can't do via Joomla.

Possibly not the answer you want, but trade-off might be doing a fair amount of workaround/customisation with joomla, versus having a different front end for civicrm and getting a bunch of drupal tools that will take care of a lot of what i see you need.

# Answer
> 2 votes
We have a customer that use CiviCase to manage the flight travel for their volunteers, including all the visa processes required. They give the pick up contact a role on the case. Works well for them!

# Answer
> 0 votes
The "flight" activity type seems like the way to go, if someone could have multiple flights. If there's a single flight, I agree that you could use Contact custom fields.

---
Tags: civievent
---


# Question
Title: Civimail Not working after upgrade to 4.7.21 with Joomla 3.7.3 unless I turn on debugging
I run 3 instances of Civi with pretty much the same setup - All had been working fine on 4.7.20

4.7.21 not so much - 2 of the 3 instances get stuck at Initializing... when creating a new mailing or reusing or editing.

In the case of the new / reuse - the mailing is created just can not get to the issues

The really odd thing - if I turn on debugging the CiviMail lets me create new mailings and edit existing ones

Thoughts / Suggestions

Thanks

# Answer
This is the result of some changes to the angular implementation introduced in v4.7.21, which among other things, implements asset caching to improve the performance of angular built pages (such as the mailing interface).

The folder where those asset cache files are stored must be directly accessible (in Joomla, that folder is: media/civicrm/persist/contribute/dyn/). If it's not, it will throw console errors and fail to render the page.

In your case, you were using AdminTools to generate your .htaccess file, and that included directives which blocked direct access to files in that folder. By adding that folder to the exclusion list and rebuilding your .htaccess file, you can now render the screen.

The other option is to go to Administer \> System Settings \> Debugging and error handling --- and turn asset caching off.

Additional details (and other recommended folder exclusions in AdminTools) can be found here: https://docs.civicrm.org/user/en/latest/website-integration/integrating-with-joomla/#configurationconflicts-with-common-extensions
> 1 votes

---
Tags: civimail, joomla, 4.7.21
---


# Question
Title: Link to filtered Activities tab from Contact Summary? (Drupal 7, civicrm 4.7)
I'd like to have a user click "View All Meeting Activities" from the contact summary front page and be shown the activities tab filtered by Activity Type "Meeting"

Is it going to be possible to pass the filter like that?

Thanks!

edit: i'm using Drupal 7 and civicrm 4.7

# Answer
> 1 votes
One way to approach this is to build a Drupal View based on CiviCRM Activities that is Filtered to show just the activities that you want for the logged in user and display that block on the civicrm home page.

If that sounds like the way to go and you are not familiar with Views, then add a comment and I can probably do an export of a View that might get you started.

---
Tags: contacts, activities
---


# Question
Title: Syncing Drupal Roles from CiviCRM Smart Groups
(Drupal 7.52 CiviCRM 4.6.24)

I am trying to make sense of a work-around for keeping Drupal roles in sync with a smart group.

The Smart Group takes into account:

* Contact Type in Organisation
* Contact SubType
* Membership Type of SubType is "Full Member"
* Membership Type is New, Current, Grace
* Contact with a (custom) Relationship Type of "Associate of:"

When the smart group is created it will only permit Mailing List rather than Access Control (by design, I understand)

So; I want this Smart Group to have permissions for Drupal under a role "Associate"

How do I do this? I understand that CiviGroup Roles Sync does not work with Smart Groups.

The reason I set it up like this is that when organisation memberships lapse or are revoked; I want the Associates to lose access with automation.

# Answer
> 2 votes
You could in a custom module, implement hook\_user\_login()

Then you could make an API call to get the contact id for the user...

Then you can do an API lookup to see if the contact is in the group (In this example I have a smart group with id 6. Then if the contact is in the group, and the user account doesn't have the role, add it....if the contact is not in the group and has the role, then remove the role. Easy peasy

```
function YOURMODULE_user_login(&$edit, $account){
  civicrm_initialize();

  $result = civicrm_api3('UFMatch', 'get', [
    'sequential' => 1,
    'uf_id'      => $account->uid,
  ]);

  if ($result['count']) {
    $contact_id = $result['values'][0]['contact_id'];
  }

  // replace 2 with the rid of the role Associate
  $rid = 2;
  if (!empty($contact_id)) {
    $contact_result = civicrm_api3('Contact', 'get', [
      'sequential' => 1,
      'group'      => 6, // replace with your smart group, group id
      'id'         => $contact_id,
    ]);

    if ($contact_result['count']) {
      if (!user_has_role($rid, $account)) {
        $account->roles[$rid] = 'Associate';
        user_save($account);
      }
    }
    else {
      if (user_has_role($rid, $account)) {
        unset($account->roles[$rid]);
        user_save($account);
      }
    }
  }
}

```

# Answer
> 0 votes
Dealing with related contacts can be done by setting the Memberships up as 'inherited memberships' based on a Relationship, in your case 'Associate is' (ie from the Org name). Then when the Org lapses so do the inherited Memberships, and therefore you can use the Member Sync approach to ensuring the Associates have the relevant Drupal Role.

---
Tags: drupal, smartgroups, 4.6
---


# Question
Title: assigning task of writing thank-you letters to staff members
In our NGO, we write thank you letters by hand. When I build a search that contains all contacts which donated in the last 2 months, all I can do is send them a Thank-you email automatically. I would prefer matching these contacts (around 200) to staff members (around 20), which will then write thank you letters by hand.

Any ideas how this could be achieved? Do I have to create a CiviRules-action?(https://docs.civicrm.org/civirules/en/latest/create-your-own-action/)

Thank you very much for any help!

# Answer
CiviRules will indeed allow you to automatically create an activity when a new contribution is added. I assume there is an algorithm for which team member should be selected, I think you would need to create a customized action to make that happen!
> 2 votes

---
Tags: civicontribute, contacts, activities
---


# Question
Title: Securiy certificate expired for installation documentation
I can't get to the installation documentation (e.g. https://wiki.civicrm.org/confluence/display/CRMDOC/Installation+and+Upgrades) at the moment because it says the security certificate expired in the early hours of this morning. Hopefully someone can fix this soon!

# Answer
Thank you for reporting this, I believe the certificate issue has now been fixed. Future issues like this should be reported in the infrastructure channel of CiviCRM chat https://chat.civicrm.org
> 1 votes

---
Tags: documentation
---


# Question
Title: Online Application with a small processing fee required on submission
Using WordPress and iATS Payments

I need to setup up an online application for our school. We charge a $25 processing fee. In reading the threads here, it appears I will need to use CiviPetition to do the Online Application. Or I was thinking about trying CiviGrants with the Grant Application Extension. Does anyone know if we can require a fee payment with submission using either of these methods?

# Answer
For Grant Application on Drupal: I recommend webform\_civicrm module for application workflows:

* collect all contact info/fields you need (parents + child(ren) + emergency contacts)
* store the relationships between these contacts
* make it a nice looking multi page application
* add payment field(s) in the process
> 1 votes

# Answer
I came across two form Plugins that people have written additional plugins so that they interact with CiviCRM.

The first one I tried was Caldera Forms. Here is the github link to the civi integration https://github.com/mecachisenros/caldera-forms-civicrm I only recommend Caldeara Forms if you have a basic form. I finally gave up and asked for a refund.

The second form that I found was Gravity Forms. Here is the integration link. http://shop.civivip.com/civi-plugins/gravity-forms-integration/
I was able to set up our application with all the extras that we wanted with Gravity Forms. I highly recommend Gravity Forms. I ended up not using the above integration because I have a redirect in place, when they click submit, that takes them to the Application Fee page. When they pay the fee, then I have their contact info in Civi. This is less than ideal because they are not forced to pay it, but it is put right in front of them.
> 1 votes

---
Tags: wordpress, civigrant, civipetiton
---


# Question
Title: simple way to import membership and contributions together
What is the simplest way to import Membership information and corresponding contribution information together from .CSV files?

# Answer
> 1 votes
You cannot do this in one import. You have to update one table per import.

You will likely need the API csv Import extension.

First step will be to create your csv files. 1. If they do not have it already, give each member a unique id number. 2. If your contact info and contribution are all on the same report, divide those into two csv files. You will need to assign the unique contact id # to each contribution.

After you have your csv files ready, you can import the contact files and then the contribution files. I recommend that your first import only have 2-3 contacts and then another with 2-3 related contributions. This way you can test it without making a mess of all 300 contacts.

You may need the API csv Import extension to import the Contributions. It depends on your setup and which fields you are importing.

https://wiki.civicrm.org/confluence/display/CRM/Import+Contacts+from+Other+Sources

https://wiki.civicrm.org/confluence/display/CRMDOC/Import+Contributions

---
Tags: civicontribute, civimember, import, contributions, recurring-contributions
---


# Question
Title: How to create a Drupal rules condition that checks CiviCRM contact's Group or Tag or Subtype
Using Drupal Workflow Rules with CiviCRM Entity to create a Drupal User after a new Civi contact is created.

Rule works fine if the only condition is that a new Drupal user can be created for the Civi contact.

I need to add an additional condition to limit the creation of the new Drupal user according to other criteria. Examples might be group membership or a Civi tag or certain Civi contact subtypes.

here is the rule that is not working:

{ "rules\_testnewcontact" : { "LABEL" : "TestNewContact", "PLUGIN" : "reaction rule", "OWNER" : "rules", "REQUIRES" : \[ "civicrm", "rules" \], "ON" : { "civicrm\_contact\_create" : \[\] }, "IF" : \[ { "civicrm\_entity\_user\_exists\_or\_creatable" : { "civicrm\_contact" : \[ "civicrm\_contact" \] } }, { "NOT text\_matches" : { "text" : \[ "civicrm-contact:contact-sub-type" \], "match" : "Client" } } \], "DO" : \[ { "civicrm\_entity\_action\_load\_create\_user" : { "USING" : { "civicrm\_contact" : \[ "civicrm\_contact" \], "is\_active" : "1", "notify" : "1" }, "PROVIDE" : { "civicrm\_user" : { "civicrm\_user" : "Created or Loaded Drupal User" } } } } \] } }

# Answer
Well to answer this question, basically I had to write a couple of new Rules conditions. They have been added to the CiviCRM Entity project, right now they are in the -dev version.

I added two new Conditions. CiviCRM Contact is of subtype, and CiviCRM Contact is in Group.

They both require a civicrm\_contact object is loaded in the rule, which you get automatically if you are reacting to "CiviCRM Contact is created", or "CiviCRM Contact is updated" Rules events.

The "CiviCRM Contact is of subtype" rule allows you to select which contact subtype to check for.

The "CiviCRM Contact is in Group" rule allows you to select which group to check if the contact is in.

This functionality will be in the next stable version of CiviCRM Entity.

These conditions are used as any other Rules conditions are....

Here's a sample of a Rule that shows a message on the site if a contact with sub-type Student is updated:

```
{ "rules_show_message_if_contact_is_subtype_student" : {
    "LABEL" : "Show Message if contact is subtype student",
    "PLUGIN" : "reaction rule",
    "OWNER" : "rules",
    "REQUIRES" : [ "civicrm_entity", "rules", "civicrm" ],
    "ON" : { "civicrm_contact_edit" : [] },
    "IF" : [
      { "civicrm_entity_contact_is_subtype" : {
          "civicrm_contact" : [ "civicrm_contact" ],
          "contact_subtype" : "Student"
        }
      }
    ],
    "DO" : [
      { "drupal_message" : { "message" : "Contact of subtype student saved!" } }
    ]
  }
}

```
> 1 votes

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


title: Edit subscription confirmation requests

text:
# Question
Title: Edit subscription confirmation requests
CIVICRM 4.6.27 Drupal 7

Hi,

I have subscription confirmation requests on for anyone signing up to a CIVI group via a webform.

How do i edit the text in that email. It currently says You have a pending subscription to the "" mailing list. To confirm this subscription, reply to this email or click here.

I want to remove the reply feature as it clogs up mailboxes.

Thanks, Andy

# Answer
The automated messages can be edited here:

Administer\>CiviMail\>Headers, Footers and Automated Messages

You can also get to this under the Mailings menu.

Hope this helps!
> 3 votes

---
Tags: webform-civicrm, groups
---


# Question
Title: How do I see which permissions are necessary to execute a given API call?
If I pick a random **entity** and **action**, what steps can I take (manually if necessary) to see which specific permissions are necessary for CiviCRM to execute an API call with `check_permissions=1`?

# Answer
> 1 votes
This doesn't have a completely straightforward answer because sometimes one entity will create another entity with its own set of permissions. Additionally, permissions also get blended with ACLs and custom permission hooks. Finally, the permissions typically happen at the BAO and not API layer.

That said - the best single resource is CRM\_Core\_Permission::getEntityActionPermissions(). See CRM-20581 for a real-life recent example of how creating an event failed because accessing the StateProvince entity went from being a permission-skipping call to a permission-respecting call.

---
Tags: api, developer
---


title: Date picker separator characters munged

text:
# Question
Title: Date picker separator characters munged
I've a got a local sandbox running CiviCRM 4.7.18 on Drupal.

For any datepicker field (e.g., Contacts \> New Activity), the selection is displayed with munged URLs separating the date components. For example, were I to select today's date, I'd expect to see this value in the text input:

> 06/30/2017

Instead, I get this

> 06https:http://6pk.l181calh181st/http://6pk.l181calh181st/6pk.l181calh181sthttp://6pk.l181calh181st/30https:http://6pk.l181calh181st/http://6pk.l181calh181st/6pk.l181calh181sthttp://6pk.l181calh181st/2017

Note: the URL of this site is mpk.localhost. In addition to jamming in the site URL instead of separators, some character replacement is happening which might provide a clue as to what's going on:

* "m" is replaced by "6"
* "o" is replaced by 181

I've tried looking for weird stuff in the date/localization settings, and I've tried switching the Drupal theme. There are no messages in the JavaScript console.

Any ideas?

# Answer
> 1 votes
I found (on the same instance) that the cause was a munged value for the Localization \> Date Formats \> Date Input Format. This string is used to search and replace in the Date Picker from jQuery UI.

Not at all clear how the bad value was saved, but saving an alternate selection and then changing it back cleared up the phenomenon.

---
Tags: dates
---


# Question
Title: Can I automatically add someone to a Civicrm group when the register as a WordPress subscriber?
When someone registers on our WP site I would like to automatically add them to a specific CiviCRM group. I don't think a smart group would work here (if I could figure out the right search) because we want to use the group for emails and folks need to be able to unsubscribe.

# Answer
> 1 votes
I would suggest creating a profile in CiviCRM to use for the Website registration form. Under Advanced Settings in the profile setup there are two things you want to do.

1. Add new contacts to a group. Here you can select the mailing list group. They will be added when they complete the profile.
2. Make WordPress account creation required.

After the form is complete they will have a WordPress account, be in your mailing group and have a contact record in CiviCRM. You can easily gather additional information about folks registering for your site.

Hope this helps!

---
Tags: wordpress, groups
---


# Question
Title: Query to get a list of contacts not tagged with a tag, but the user has multiple other tags
I'm building a View that lists contacts. The View needs to list all contacts that are not tagged with a certain tag. The problem is if a contact is tagged with another tag, it will still show in the list, because of the LEFT JOIN to the tag table...In this example I'm filtering the list to one contact for simplicity's sake. The contact in question has two tags. One of them is the one I want to filter out. Yet the contact still shows in the list because it has another tag....

I also want to include contacts in the list that have no tags at all, thus the

part of the query ( (civicrm\_tag.id IS NULL ) OR (civicrm\_tag.id NOT IN ('35')) )

```
SELECT civicrm_contact.id AS id, civicrm_contact.display_name AS civicrm_contact_display_name
FROM
{civicrm_contact} civicrm_contact
LEFT JOIN {civicrm_entity_tag} civicrm_entity_tag ON civicrm_contact.id = civicrm_entity_tag.entity_id AND civicrm_entity_tag.entity_table = 'civicrm_contact'
LEFT JOIN {civicrm_tag} civicrm_tag ON civicrm_entity_tag.tag_id = civicrm_tag.id
WHERE (( (civicrm_contact.id = '21033') )AND( (civicrm_tag.id IS NULL ) OR (civicrm_tag.id NOT IN  ('35')) ))
LIMIT 10 OFFSET 0

```

# Answer
I don't know how this would translate to Drupal Views, but here is the SQL to do it:

```
SELECT
  contact.id
FROM civicrm_contact contact
LEFT JOIN civicrm_entity_tag et ON
  et.entity_table = 'civicrm_contact' AND
  et.entity_id = contact.id AND
  et.tag_id = 1 /* ID of the tag you want to exclude */
WHERE et.id IS NULL;

```

Note that `et.tag_id = 1` must be in the `ON` clause and not in the `WHERE` clause.
> 1 votes

---
Tags: drupal-views, sql
---


# Question
Title: How can I fix the error message "Could not find contribution record" from PayPal?
We have a new recurring contribution that isn't being entered into Civi. In the ConfigAndLog log I see "Could not find contribution record 20874". In the nginx logs I see that that number is being passed from PayPal as contributionID.

```
POST /sites/all/modules/civicrm/extern/ipn.php?reset=1&contactID=10132&contributionID=20874&module=contribute&contributionRecurID=25&contributionPageID=2 HTTP/1.1

```

Of course, that id is not in the contribution table. After looking at ones that worked it looks like the contributionID sent from PayPal is that of the first contribution of the recurring contributions.

Unfortunately, this error wasn't noticed right away so I can't see if there were any other errors when it was first created.

So can I just manually create a record in contributions with that id and have it work? What is it looking for in that record? (Well, I'd enter a payment for that person and change the id and anything else it is looking for.)

We don't want to have the person cancel the recurring and do it again. It's bad form to ask a donor to redo their payments. They might just cancel and not redo it.

# Answer
You *can* create a fake initial payment on a recurring contribution and CiviCRM will handle the IPN properly. Unfortunately, this is a bit of a tedious process.

Fortunately, it's all documented on my PayPal and CiviCRM page. See the section called Modifying an IPN to reflect an updated CiviCRM contact ID. The scenario is a little different but the techniques are applicable here.
> 1 votes

---
Tags: paypal, recurring-contributions
---


# Question
Title: How to restore the colour button in Ckeditor
When I upgraded a site from 4.6 to 4.7 Ckeditor lost several buttons - Font, Size, Foreground Colour and Background Colour. I figured out how to restore Font and Size but cannot see how to get the 2 colour buttons back. I went to display preferences and set colorButtonbackStyle(Object) and colorButtonforeStyle(Object) to true, saved and cleared caches, but no buttons showed up. Am I wrong to use this GUI and so should I be updating a config file somewhere?

# Answer
If you go to civicrm/admin/ckeditor?reset=1 you should be able to activate the plugin "Colorbutton".
> 3 votes

---
Tags: civimail, 4.7, ckeditor
---


# Question
Title: Trigger a reminder if activity has not been recorded in x amount of time
Is there a way to have CiviCRM send me a scheduled reminder for any contact for whom I have not recorded an activity for in 3 weeks or more? So that if 3 weeks go by and I have not recorded an activity for Contact A, I would get an email notifying me of that. Or is there a way to build a report showing all the people who haven't had an activity recorded for in 3+ weeks?

# Answer
This isn't a current capability, though it's one I've thought about writing on multiple occasions. Unfortunately, my clients have never deemed it something worth the time it would take.

To handle this, I think it would be best to create a custom search that searched for the latest activity. For other use cases, searching only for activities of a particular type is helpful, but it sounds like you don't need that.

Once you have a custom search, you can create a smart group based on it. You can then run reports and/or generate scheduled reminders limited to this group.
> 2 votes

# Answer
I think CiviRules can help you here, although you would have to develop your own condition. Luckily that would be pretty straightforward, check the CiviRules developer documentation
> 2 votes

---
Tags: civireport, activities, scheduled-reminders
---


# Question
Title: Trying to Set Up CiviVolunteer and Getting Strange Results
Angular installed CiviVolunteer 4.6-2.2.1 Installed Civi Version 4.6

This is my first attempt at getting this to do anything and I'm failing miserably

1. I click on the New Volunteer Project -- I don't get the setup screen. I get a empty Drupal Page with the title CiviVolunteer (and this site is refusing to let me upload my screenshot) I also get an error "PI permission check failed for VolunteerUtil/getbeneficiaries call; insufficient permission: require edit own volunteer projects" when I try to create a new volunteer project (I have full administrator priviledges for both Drupal and CiviCRM, so this makes little sense)
2. I also tried setting up and event, and there was no check box to enable CiviVolunteer

# Answer
welcome to the civiverse!

Try clearing caches and setting your extension path and resource url. Those are the most common source of error regarding extensions.

If that doesn't work post back!
> 1 votes

# Answer
Check all the permissions that begin with "CiviVolunteer:". Make sure that as Admin you have permission granted for all of them.
> 1 votes

# Answer
I'm getting the same error on a plain, clean install of CIVICRM on Drupal. The error seems to be related to the Angular component shipped with CIVICRM.

Basically the extension fails to display content for New Volunteer Project, or Manage Volunteer Project. See image below.

I have cleared cache and verified extensions directory (\[civicrm.files\]/ext/). See image below.

The extensions are downloaded via the web interface on the proper, default directory. Not enough reputation to post image. But they are in: \- /var/www/vhosts/drupal7/sites/default/files/civicrm/ext/org.civicrm.angularprofiles \- /var/www/vhosts/drupal7/sites/default/files/civicrm/ext/org.civicrm.volunteer

My test server config details: \- Drupal core 7.56 \- civicrm 7.x-4.7.22 \- mysql 14.14 Distrib 5.7.18, for Linux (x86\_64) \- Ubuntu 16.04.2 LTS \- PHP 7.0.18-0ubuntu0.16.04.1 (cli) ( NTS ) (php-fpm7.0) \- Zend Engine v3.0.0, with Zend OPcache v7.0.18-0ubuntu0.16.04.1 \- Angular Profiles (org.civicrm.angularprofiles) v4.6-1.0.2 2016-06-20 \- CiviVolunteer (org.civicrm.volunteer) v4.6-2.2.1 2016-12-06

Can't post output of Javascript Debug Console because Stack Exchange swears it's spam. But the errors there refer to: Cannot read property 'crmAutosave' of undefined and angular.js:2133 Uncaught Error: \[$injector:nomod\] Module 'crmCxn' is not available! and /sites/all/modules/civicrm/bower\_components/angular/angular.js?ot59kn:68:12, etc.
> 0 votes

---
Tags: civivolunteer
---


title: Reassign Case Role Not Working in 4.7

text:
# Question
Title: Reassign Case Role Not Working in 4.7
I'm on Drupal with CiviCRM 4.7.21. I have a case with John Doe as the "Manager." When I try to reassign the individual, I can select a new individual and the form will submit. However, nothing changes after the page reloads. "Manager" is still John Doe.

Can anyone verify this? I don't see any of the CiviCRM demos have CiviCase activated for me to replicate this.

**Steps**

1. Create a custom relationship "Manager is"
2. Create a custom case "Supervision"
3. Add "Manager" case role to Supervision case under case type
4. Open a case
5. Reassign the case role from "Person A" to "Person B"
6. Page is reloaded with no change. Person A remains the case manager.

# Answer
> 2 votes
Ok I see your config is still on the demo. A key piece of information missing is that the new relationship type is defined for a different type of contact (Student) than the client. If I change the relationship type to be between Individuals it works fine.

The role is a relationship with the CLIENT. If the client is an Individual, the relationship type needs to be one that is also with an Individual.

You could argue it would be nice to have an error popup, but this just seems like a configuration issue - it needs to be the same type as the client.

---
Tags: civicase
---


# Question
Title: Can't extract latest civicrm-4.7.22-drupal.tar.gz to install
Trying to upgrade civicrm for drupal to 4.7.22 on a linux machine. I've tried downloading the file from both the civicrm.org site and sourcefourge. Get the following error when extracting:

tar -xzf civicrm-4.7.22-drupal.tar.gz

> tar: civicrm/vendor/pear/net\_smtp/README.rst: Cannot create symlink to \`docs/guide.txt': No such file or directory tar: Exiting with failure status due to previous errors

I then extracted using 7-zip on a windows 10 machine, hoping to ftp the folder up directly, but not all the folders are there.

The sourceforge extracted civicrm folder is different from the one I downloaded from the civicrm site (using beyond compare). I'm not confident installing either one.

# Answer
> 4 votes
I tested those two downloads, and found:

* The two tar.gz files are identical (MD5=`26e2db3c52d105659acc293cc2ffc74c` for civicrm-4.7.22-drupal.tar.gz)
* Yes, there's an invalid symlink in the file.

That "bad" symlink might offend some tools (and might trigger anti-virus warnings) but it's harmless and should not affect the CiviCRM files you've downloaded. It links a README in one of our packages from that package's docs dir to the package root, and we strip that docs folder out of the code we ship.

I have opened an issue (CRM-20884) & submitted a small fix (PR10676) to resolve that missing symlink in some upcoming release.

Thanks for raising this! You did the right thing to question what you were seeing. FWIW, I recommend downloading from https://civicrm.org/download in favour of SourceForge.

# Answer
> 1 votes
This file also causes an error in Drupal Backup and Migrate. Deleting the link solved the problem but it will likely recur if future upgrades include the link, I presume

---
Tags: drupal, upgrade, error
---


title: Cron Fail: Sessions

text:
# Question
Title: Cron Fail: Sessions
When running the cron by visiting or curling the URL:

A session is active. You cannot change the session module's ini settings at this time in drupal\_environment\_initialize()

Any advice? I'm suspicious of my permission settings.

I have a specially created cron user, who has admin permission.

Drupal 7.56 v.4.7.22

# Answer
this is not a direct answer to your question, but you should run the cron from the cli - eg. using drush on drupal -. it bypasses all the problems and limitations of a webserver, eg timeout or memory...

as for your message, i have the same configuration and i do not experience the problem. did you change something on how the session is managed on drupal?
> 1 votes

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


title: Integration with Campaign Monitor?

text:
# Question
Title: Integration with Campaign Monitor?
Is it possible to integrate CiviCRM with Campaign Monitor so as to combine the advantages of both platforms and share information between them?

Thank you!

# Answer
> 1 votes
it is certainly possible to export and import from another system, as long as campaign monitor has some kind of rest api, it should be fairly easy to develop.

however, and no matter the external service you want to integrate to, you would need to clarify better what needs to be pushed and pulled. what constituent details? only the email, the full name...

and then you have the problem of when to synchronise and who has the master data. eg. what happens if the first name changes in civi, what happen if the email changes in campaign monitor? what happen if the email changes in both...

lots of questions and potential conflicts you need to resolve to be able to clarify the behaviour of your system. these are hard problems, and bidirectional sync is potentially really complex. try to simplify as much as you can, eg all data in civi is the master one and considered the most up to date.

please clarify what you want to synchronise and how often, it will help giving a less generic answer

---
Tags: integration
---


# Question
Title: Opt out by email -- return address doesnt exist
I am testing our ability to include opt-out as well as unsubscribe by email options to a bulk email newsletter.

When I try to opt-out/unsubscribe from a test message (as recipient) using the provided email address (e.g., u.2679.86732.92da29cb61fe154d@my\_organization), I receive another email indicating the opt out address does not exist.

Can anyone help me understand why this error occurs and how I can correct it?

Thanks in Advance!

# Answer
> 1 votes
it means you haven't properly set up your bounce account - ie. beside not processing the opt-out, you do not process the bounces either -

check the documentation on how to set it up https://wiki.civicrm.org/confluence/display/CRMDOC/CiviMail+Installation#CiviMailInstallation-SettingUptheReturnChannel

---
Tags: email, opt-out
---


# Question
Title: Is there a way to integrate CiviCRM with Magento?
We're looking to replace MailChimp in our organisation as a number of people are questioning the cost. One area we're using heavily is integration with Magento - automatically emailing abandoned carts, sign up to mailing list as part of checkout process, that sort of thing. Is there a way to get this functionality in CiviCRM?

# Answer
> 1 votes
this is possible to integrate, but you would need to develop an extension to do some of it.

eg you can create automatically a mailing and add the recipients, you can add users into a newsletter group....

to my knowledge, there isn't an out of the box ready to use extension that already does it, so you would need to develop it or hire someone to write the needed

---
Tags: extension, mailing
---


title: Transfer event registration

text:
# Question
Title: Transfer event registration
How do you transfer an event registration from one person to another? I can't find an option that will allow me to put a new person's name in an existing registration so that the payment will follow the original registration.

# Answer
> 6 votes
Civi can't do this in the UI, but if you're comfortable using the api explorer you could. First you need to find the id of the participant record (not the contact id of the participant) and the contact id of the person you want to transfer it to. Then user the api explorer to do **Participant** \> **Create** with id (of the participant record) and contact\_id (of the new contact).

# Answer
> 4 votes
Participants with a login to your site can go to the event self-service page to transfer a registration. The CiviCRM blog has a post on this.

\[UPDATED FOR 2021\] As of CiviCRM 5.2, you can do this from the backend. On the contact's event tab, you'll have a "Transfer or Cancel" option like this:

# Answer
> 3 votes
What I've done is create a new participant status type of "Transferred" under Administer - CiviEvent - Participant Statuses. Make the Participant Status class "Negative" (so it's not in the participant count) and the Visibility "Admin" (so it can only be used via the back-end). Use the notes field to communicate what happened.

This allows event organizers to have an audit trail when you're figuring out who's paid and how (it's useful even for free events). You'd edit the first person's registration and make the status "Transferred," along with a note that Joe Smith is attending in Dave Jones's place. Then do a back-end registration for Dave Jones (or allow him to self-register with a discount code you create if you're using CiviDiscount). Also make a note on Dave Jones's participant record that he's attending in Joe Smith's place.

# Answer
> 2 votes
As far as I know, this isn't possible yet. You would need to just create a new event registration with a new payment from the admin side and delete the old ones. Might be more difficult if you are actually using civiCRM for financial reconciliation, which our organization is not.

---
Tags: civievent
---


# Question
Title: What exposure would my CiviCRM campaign receive?
I was preparing to create a GoFundMe page for an project at an orphanage my son runs in the Philippines, and someone suggested I use CiviCRM instead. I am not at all familiar with CiviCRM (or any CRM site), but I am familiar with GFM. Would CiviCRM be better in any way, and if so, how? I know I can get a lot of exposure on GFM and it has several similar pages to what I would create that have been very successful at fundraising. Can anyone sell me on using CiviCRM instead of GFM? Thanks!

# Answer
GoFundMe and CiviCRM are very different things. If you want to build your own fundraising platform like GFM you might start with CiviCRM but if your interest is just to raise funds for your son's orphanage then GFM or similar is a much easier route.
> 1 votes

# Answer
Aidan is correct - but to add to that, GoFundMe is better for an organization that has a one-time need for fundraising, and CiviCRM is built to track and sustain ongoing relationships. Most non-profits want to have an ongoing record of their interactions with donors, which GFM won't provide you.

However, a tool like CiviCRM is more aimed at professional fundraisers, and has a much higher learning curve than GFM. If your son's organization has a person whose permanent job description involves fundraising, then CiviCRM is a tool to consider. If not, GFM is probably a better choice.
> 1 votes

---
Tags: fundraising
---


# Question
Title: building an extension: how can I create a multiple-step form?
If I just had .php files I would do the following: `step1.php`'s submit button goes to `step2.php`. `step2.php`'s submit button goes to `step3.php`, etc.

The problem is that I need data that the user entered in step1 in order to display step2. For step3 I need data from step2, etc.

I tried creating multiple forms with `civix generate:form`, but how can I get data entered in previous steps?

# Answer
> 3 votes
There are a bunch of ways to handle this.

Before proceeding down this path, consider if Webform-CiviCRM integration (for Drupal) or Caldera Forms-CiviCRM integration (for WordPress) will work for you - it will save you a lot of work if so.

If that's NOT an option, consider a) storing the data in the database (using the `postProcess` hook), b) storing the data in the `$_SESSION` variable, or c) using jQuery to fake having a multi-page form on a single page.

# Answer
> 3 votes
If you're open to using AngularJS, I think you could use the crmUiWizard directive, which is how CiviMail seems to create a multi-step form for building mailings.

---
Tags: extension, php
---


# Question
Title: Setting default date value via civicrm_buildForm hook no longer displays date
I have a custom module that invokes the civicrm\_buildForm hook to set the default date for a given field to today's date.

It is working - in part. When I examine the code I see that the default value is set. However, it is set in the input that is hidden. Whereas there is a second input that is displayed using what appears to be a randomly generated id (dp1479931180679) which seems to be created by the date picker widget.

If you leave the field blank, the default date is picked up and works. But it's a usability issue since it doesn't appear to be filled out to the user.

Anyone have a work around?

Here is what the html code looks like:

```
<span class="crm-form-date-wrapper">
<input id="custom_17" class="crm-form-text required crm-hidden-date" data-crm-custom="Constituent_Info__Individuals:Date_Started" data-crm-datepicker="{"date":"mm\/dd\/yy","minDate":"1986-01-01","maxDate":null,"time":false}" name="custom_17" value="11/28/2016" style="display: none;" type="text">
<input id="dp1480365364891" class="crm-form-text required crm-form-date hasDatepicker" style="" type="text">
</span>

```

The first input (which properly shows the right value) is hidden. The second one, which is the one displayed, doesn't have a value set.

# Answer
You don't say your version, but I'm guessing 4.7 from the description. The trick is to use ISO date format. So this should work:

```
function civitest_civicrm_buildForm($formName, &$form) {
  $defaults['register_date'] = date("2017-04-15");
  $form->setDefaults($defaults);
}

```

FWIW, this is still an issue for setting defaults via URL query string parameters, as of 4.7.22; there's now an open ticket with PR here: https://issues.civicrm.org/jira/browse/CRM-20922

From https://issues.civicrm.org/jira/browse/CRM-18349:

> In 4.7 custom fields of type date do not use the jcalendar.tpl but have been upgraded to use the quickform binding of https://wiki.civicrm.org/confluence/display/CRMDOC/crmDatepicker
> 2 votes

# Answer
I think the date widget have its default value based on the format it is being set.

Eg - For `mm/dd/yyyy` input format set in `Administer -> Localization -> Date Formats`.

This works -

```
function civitest_civicrm_buildForm($formName, &$form) {
  $defaults['register_date'] = date("m/d/Y");
  $form->setDefaults($defaults);
}

```

This doesn't -

```
$defaults['register_date'] = date("m-d-Y");
$defaults['register_date'] = date("d/m/Y");

```
> 4 votes

# Answer
Try inspecting and changing the form element type to a text element and then hide it via css.
> 0 votes

---
Tags: hooks, dates
---


# Question
Title: CRON jobs stopped running after 4.7.19 upgrade, and cli.php is executable
Soon after upgrading from 4.7.17 to 4.7.19, my WordPress CiviCRM stopped running CRON jobs. No problem, I thought -- check the permissions on cli.php and sure enough, they'd been tightened. I changed them back to 0755, and assumed I was done. But even after initiating a manual run of scheduled jobs, the CRON jobs not running error came right back.

Any idea what's causing this?

18 July -- UPDATE:

While compulsively fiddling with my CRON command, the cron daemon sent me this:

```
<code><span style="color: #000000">
<span style="color: #0000BB"><?php<br /></span><span style="color: #FF8000">/*<br /> +--------------------------------------------------------------------+<br /> | CiviCRM version 4.7                                                |<br /> +--------------------------------------------------------------------+<br /> | Copyright Tech To The People http:tttp.eu (c) 2008                 |<br /> +--------------------------------------------------------------------+<br /> |                                                                    |<br /> | CiviCRM is free software; you can copy, modify, and distribute it  |<br /> | under the terms of the GNU Affero General Public License           |<br /> | Version 3, 19 November 2007 and the CiviCRM Licensing Exception.   |<br /> |                                                                    |<br /> | CiviCRM is distributed in the hope that it will be useful, but     |<br /> | WITHOUT ANY WARRANTY; without even the implied warranty of         |<br /> | MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.               |<br /> | See the GNU Affero General Public License for more details.        |<br /> |                                                                    |<br /> | You should have received a copy of the GNU Affero General Public   |<br /> | License and the CiviCRM Licensing Exception along                  |<br /> | with this program; if not, contact CiviCRM LLC                     |<br /> | at info[AT]civicrm[DOT]org. If you have questions about the        |<br /> | GNU Affero General Public License or the licensing of CiviCRM,     |<br /> | see the CiviCRM license FAQ at http://civicrm.org/licensing        |<br /> +--------------------------------------------------------------------+<br /> */<br /><br /><br /></span><span style="color: #007700">require_once </span><span style="color: #DD0000">'cli.class.php'</span><span style="color: #007700">;<br /></span><span style="color: #0000BB">$cli </span><span style="color: #007700">= new </span><span style="color: #0000BB">civicrm_Cli</span><span style="color: #007700">();<br /></span><span style="color: #0000BB">$cli</span><span style="color: #007700">-></span><span style="color: #0000BB">initialize</span><span style="color: #007700">() || die(</span><span style="color: #DD0000">'Died during initialization'</span><span style="color: #007700">);<br /></span><span style="color: #0000BB">$cli</span><span style="color: #007700">-></span><span style="color: #0000BB">callApi</span><span style="color: #007700">() || die(</span><span style="color: #DD0000">'Died during callApi'</span><span style="color: #007700">);<br /></span>
</span>
</code>

```

That's what it looked like in the email I received. Now here it is again when I don't add the code {} formatting in the wysiwyg:

`<?php
/*
+--------------------------------------------------------------------+
| CiviCRM version 4.7                                                |
+--------------------------------------------------------------------+
| Copyright Tech To The People http:tttp.eu (c) 2008                 |
+--------------------------------------------------------------------+
|                                                                    |
| CiviCRM is free software; you can copy, modify, and distribute it  |
| under the terms of the GNU Affero General Public License           |
| Version 3, 19 November 2007 and the CiviCRM Licensing Exception.   |
|                                                                    |
| CiviCRM is distributed in the hope that it will be useful, but     |
| WITHOUT ANY WARRANTY; without even the implied warranty of         |
| MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.               |
| See the GNU Affero General Public License for more details.        |
|                                                                    |
| You should have received a copy of the GNU Affero General Public   |
| License and the CiviCRM Licensing Exception along                  |
| with this program; if not, contact CiviCRM LLC                     |
| at info[AT]civicrm[DOT]org. If you have questions about the        |
| GNU Affero General Public License or the licensing of CiviCRM,     |
| see the CiviCRM license FAQ at http://civicrm.org/licensing        |
+--------------------------------------------------------------------+
*/
require_once 'cli.class.php';
$cli = new civicrm_Cli();
$cli->initialize() || die('Died during initialization');
$cli->callApi() || die('Died during callApi');`

# Answer
No idea why PHP cli stopped working. Purists can chastise me for copping out, but I never figured out the PHP cli problem. Instead, I toyed around with wp-cli and ultimately got that working. After testing command lines through SSH, the first glimmer of success came from `wp --user=[REDACTED] --url=https://[REDACTED] --path=/[REDACTED]/ civicrm api job.execute auth=0`

At this point, it was a (relatively) simple matter of discovering the specific path to wp-cli. When that specific path appeared in place of `wp` in the CRON job command line, I received the desired email from the cron daemon indicating the tasks had completed.

So while this may not technically answer my original question, Done is Good, and I'm not going to pursue it further unless and until my CRON jobs again cease running.
> 0 votes

# Answer
Mine works: Whack this in your crontab -e

00 * * * * cd /var/www/drupal && /usr/local/bin/drush --quiet civicrm-api -u 1 job.execute
> 0 votes

---
Tags: permissions, cron-job, cron
---


# Question
Title: List Parents of Children having certain values
Is there a way to query the Custom Fields on a Child and then show their Parent's detials? Scenario: email all parents whose children attend a certain class.

# Answer
> 7 votes
Yes, using Advanced Search (**Search menu » Advanced Search**). Set up the search the same way you would in order to find the children. Additionally, set the "Display Results As" at the top to "Related Contacts", and select the "Parent of" relationship.

# Answer
> 0 votes
You can explore Extended Reports extension that allows extend related Relationship Reports with details of both parts of the relationship.

# Answer
> 0 votes
If you just need a list (i.e. not to send mails), and are based upon Drupal, you can also use Drupal Views (\> advanced \> Relationships).

---
Tags: custom-fields, search
---


title: How do I get started using CiviCRM?

text:
# Question
Title: How do I get started using CiviCRM?
My boss wants to start using CiviCRM. We are a nonprofit organization for veterans. I am not familiar with Drupal and I am toying with a demo of CiviCRM and I am wondering how do I customize it to our needs. I am computer savy but do not like coding too much. Just wondering if any one can help once we download it and implement any changes we deem fit. Any advice or help will be greatly appreciated.

# Answer
Welcome to CiviCRM.

There are a lot of online resources which hopefully you have already discovered eg the User Guide and there is also a Dashlet that gives you helpful links

There are also training videos and webinars and meet ups available, which would be a cheaper (or free).

There are many providers/partners who provide paid support for Non Profits getting started with CiviCRM - which probably isn't the answer you want, but the list of Partners is here

If you make an interesting pitch you might find that someone around here might just offer to give you a one hour sprint through core features to give you a quick start. (PM me if you want, I can probably squeeze something in over the next few days - the weather is shitty here so not going far!)

Also worth getting on https://chat.civicrm.org/civicrm for free support in a chat environment.
> 5 votes

# Answer
You don't need to be an expert in Drupal (I was not when I started) : Drupal is just there as an infrastructure, mostly to manage identification, roles and permissions (extended to civicrm features), and generic web features.

The great advantage of Drupal is in Civicrm Webform Integration (to build forms), and Drupal Views (to build reports).
> 1 votes

---
Tags: civimail, drupal, installation
---


# Question
Title: CiviEvent automatically send survey after event
How can we automatically send a survey form to participants after an event?

# Answer
You can use the CiviRules extension to do that? There is a CiviRules Guide which should help you to understand what it does and how to use it.
> 1 votes

# Answer
It depends what you mean by 'survey form' but you can set a Scheduled Reminder to go out x hours, or y days, after an event.

Then that link can go to eg a Profile or if you are using Drupal, a webform so that the 'survey' gets recorded as an Activity AND you can mark off on the Participant record that they have responded.
> 1 votes

---
Tags: civievent
---


title: timezone in PHP is incorrect

text:
# Question
Title: timezone in PHP is incorrect
Facing this warning Timestamps reported by MySQL (eg "2017-07-20 13:48") and PHP (eg "2017-07-20 08:18" ) are mismatched.

While MySql time matches with my local time. PHP is running 5:30 hrs less. My timezone is UTC+5:30 hrs.

Tried below options,

1. changing the setting in UI ( WAMP -\> PHP settings) and also in PHP.ini.
2. Wordpress settings

Didnt seem to work. What else I need to try?

# Answer
Try setting your preferred timezone in `civicrm.settings.php` and/or `wp-config.php`?

```
ini_set('date.timezone', 'Asia/Calcutta');

```

You might want to adapt the timezone you set as appropriate to your MySQL server.

```
mysql -e 'SELECT @@system_time_zone;'

```

I believe India does not observe daylight savings? For that and similar reasons it's probably better to match the timezones in both systems. If MySQL is set to UTC offset, use that for PHP, and if MySQL is set to a regional timezone, follow suit.
> 3 votes

---
Tags: settings, civicrm.settings.php, timezone, default-settings, timestamp
---


# Question
Title: Tracking links that have been added via tokens
I have created a token using hook\_civicrm\_tokenValues that inserts content into a CiviMail. The content includes URLs that we want to track.

As I understand it (and I don't understand it very well) in CiviMail, token substitution happens after links have been converted to trackable urls, which means that any links that are inserted into tokens will not / cannot be tracked.

I'm wondering what the smartest way to get around this is?

Options I am considering are:

1) **run the relevant CRM\_Mailing\_BAO\_TrackableURL functions again once the tokens have been subsituted** and observing if there are any side effects (maybe some stuff coming from other tokens should not be tracked). FWIW, it looks like CRM\_Mailing\_BAO\_TrackableURL::getTrackerURL() already takes some steps to not track links in the format `civicrm/extern/` which would cover links like `civicrm/extern/url.php?u=129&qid=77`.

```
// hack for basic CRM-1014 and CRM-1151 and CRM-3492 compliance:
// let's not replace possible image URLs and CiviMail ones
if (preg_match('/\.(png|jpg|jpeg|gif|css)[\'"]?$/i', $url)
  or substr_count($url, 'civicrm/extern/')
  or substr_count($url, 'civicrm/mailing/')
) {
  // let's not cache these, so they don't get &qid= appended to them
  return $url;
}

```

2) **switch the order of execution so that token substitution happens before links have been converted to trackable urls** (but there may important reasons why it happens in that particular order).

3) **create trackable URLs as part of the token generation** though I wonder if I would be able to access the data I need for the appropriate CRM\_Mailing\_BAO\_TrackableURL function at this point and if the function is expecting to be called in a certain context.

# Answer
> 1 votes
@Andrei - thanks a lot for pointing me to the solution!

Based on your answer, I wrote this function that did the trick for me for finding and converting links in arbitrary `$html`:

```
function trackUrls($html, $contactId, $jobId){

    // Find all URLs
    preg_match_all('#\bhttps?://[^\s()<>]+(?:\([\w\d]+\)|([^[:punct:]\s]|/))#', $html, $matches);

    // We need to find the mailingId and the eventQueueId
    $mailingJob = civicrm_api3('MailingJob', 'getsingle', ['id' => $jobId]);
    $mailingEventQueue = civicrm_api3('MailingEventQueue', 'getsingle', [ 'job_id' => $jobId, 'contact_id' => $contactId]);

    foreach($matches[0] as $url){
        $replacements[$url] = CRM_Mailing_BAO_TrackableURL::getTrackerURL($url, $mailingJob['mailing_id'], $mailingEventQueue['id']);
    }

    $html = str_replace(array_keys($replacements), $replacements, $html);

    return $html;
}

```

---
Tags: civimail, tokens, tracked-links
---


# Question
Title: we are trying to set up Sparkpost in CiviCRM, but we are using G-Suite and cant use DNS?
we are trying to set up Sparkpost in CiviCRM, but we are using G-Suite and can't use DNS? So tried to use another method, but when trying to add either Postmaster or Abuse G-suite says those are reserved. What am I doing wrong?

# Answer
Your question does not say why you can't use DNS?

Google Apps will I think let you configure the abuse@ and postmaster@ addresses as aliases (Google refers to these as "groups"). Google will still process those addresses *as well*, but I think you can configure them so you can field the Sparkpost setup email.

Here is Sparkpost docs on that: https://www.sparkpost.com/docs/tech-resources/abuse-postmaster-google-apps/
> 2 votes

---
Tags: google, sparkpost, g-suite
---


# Question
Title: Aggregate of activity duration in Drupal Views
I am trying to build a view that displays each CiviCRM contact and the sum of the duration of all their recorded activities. I would also like to distinguish contacts in the view whom's duration sum is greater than x minute either with an icon or different color or font.

Any thoughts on how I can accomplish this?

# Answer
> 2 votes
So we managed to accomplish this. \- I used a module called views\_aggregator to display the sum total duration of all the activities for each contact \- I then created another view and did the same but filtered the results to only show contact with a total activity duration \> x and rewrote the results to only display a badge \- then used the module views\_field\_view to display the badge from view2 next to the corresponding name in view1

# Answer
> 2 votes
This is more of a Drupal question - you can do what you're looking for with the Views Conditional module.

---
Tags: drupal-views
---


title: Custom fields in the Report Templates

text:
# Question
Title: Custom fields in the Report Templates
I've managed to generate new fields but I can't add them into the report templates. How can I do that?

Thank you

# Answer
Make sure they are marked as searchable. On your: civicrm/admin/custom/group/field?reset=1&action=browse&gid=1

(assuming it's your first Custom Data set)

Check the Searchable? Column; If you toggle that to Yes - then reports that pull in custom fields will show yours at the bottom of Columns and Filters - e.g.:

The Searchable? = Yes field shows is select-able in the Report:
> 2 votes

---
Tags: custom-fields, reports
---


# Question
Title: Donor access to edit recurring donations
WP 4.8 Civi 4.7.21 iATS Payments 1.6.0

Our donors have very limited ability to edit recurring donations. Ie. if their card expires they cannot update the expiry date. Or if the card number is changed, they cannot update to a new card number.

As admin, I can see an update card info but the donor cannot.

I have looked at ACL but have not seen anything there that looks like would give/restrict that ability.

Is there something I am missing in the ACL or is this an iATS Payments setting?

# Answer
> 0 votes
Yes - check the iATS settings (1.6.x version) - this was work merged here: https://github.com/iATSPayments/com.iatspayments.civicrm/pull/175

and documented (a bit): https://github.com/iATSPayments/com.iatspayments.civicrm/wiki/Update-Recurring-Billing

I've not used it myself yet for any of our projects; So be careful and give it a good test drive;

# Answer
> 0 votes
A friend asked for the links that are used in case they can be put in to receipt template. this is what i dug out of contact dashboard

civicrm/contribute/updatebilling?reset=1&crid=XXXX&cid=YYYY

civicrm/contribute/updaterecur?reset=1&action=update&crid=XXXX&cid=YYYY

civicrm/contribute/unsubscribe?reset=1&crid=XXXX&cid=YYYY

not sure how useful this is but wanted to paste it somewhere other than skype ;-)

--

Evan's findings.

WordPress 4.7.3 | CiviCRM 4.7.22 | iATS Payments 1.6.0

Providing a link to update / cancel a recurring donation should be included in the receipt, and it is. Sort of. From the iATS Payments 1.6.0 release notes:

> *"Cancel/modify URL receipt links are wrong. This affects recurring contributions. You can manually edit the message template to fix this."*

https://github.com/iATSPayments/com.iatspayments.civicrm/blob/master/release-notes/1.6.0.md https://issues.civicrm.org/jira/browse/CRM-20401

While debugging using the Send Receipts workflow from a contribution search, it was discovered the URLs in these links are built correctly. When sent automatically from the creation of a contribution, the links point to iATS website, when sent from a contribution search they're. As such, I was able to get the URL scheme of how it should be built, see below.

civicrm/contribute/unsubscribe&reset=1&coid={contribution.contribution\_id}&cs={contact.checksum}

civicrm/contribute/updatebilling&reset=1&coid={contribution.contribution\_id}&cs={contact.checksum}

civicrm/contribute/updaterecur&reset=1&coid={contribution.contribution\_id}&cs={contact.checksum}

---
Tags: iats, user-dashboard
---


# Question
Title: Shortlisting contacts with complete address
How do I search in the contacts search / Advanced search that I get only contacts with complete postal address?

I have many contacts in civicrm. Some have only city and country names, which is not very useful in terms of sending postal mailings. So how do I get the results in which I get the contacts with complete address?

# Answer
You can use the search builder to search for empty fields, e.g. Steet-Address or ZIP Code. From the result, you could create a (smart) group and then exclude contacts in that group from the mailing.
> 4 votes

---
Tags: search-results, custom-search, addresses, search-builder
---


title: Tracking external contribution sources

text:
# Question
Title: Tracking external contribution sources
Is it possible in CiviContribute to track multiple **external (non-CiviCRM)** sources of contributions to a single form?

I've used other systems where I could create a source code for, say, a banner ad and apply that source code to the donation form URL. I could then create another source code for donation links within an email. Sometime later, I'd be able to pull up a donation report for that form and see that there were X number of donations that came in from the banner ad, and X number from the email.

# Answer
What we have done is to add 3 custom fields to the contribution (utm\_source, utm\_media and utm\_campaign) that store the tracking codes, the same way google analytics work.

To make it more automatic, we have an extension that does automatically adds these codes to all the links sent from civimail, so we have end to end tracking.

We haven't yet published this extension in civicrm.org, but you can fetch it from our github repository. https://github.com/WeMoveEU/utmaltor
> 1 votes

---
Tags: tracked-links
---


title: Debug PseudoConstant

text:
# Question
Title: Debug PseudoConstant
I noticed recently under my Drupal "recent logged messages", I've been getting errors logged with the message:

"Deprecated function, use CRM\_Core\_PseudoConstant::getKey Array ( \[civi.tag\] =\> deprecated )"

AND

Error: \[\] operator not supported for strings in CRM\_Utils\_Recent::del() (line 173 of C:\xampp\htdocs\sites\all\modules\civicrm\CRM\Utils\Recent.php).

What does this mean? I am on Drupal 7 and CiviCRM 4.7.22. I think this seems to appear when I'm trying to delete a case or delete any activities. I see the spinner keep running forever and just hangs.

# Answer
> 1 votes
In regards to the first one its a little bit misleading the actual thing is another function has been marked as deprecated and calls to that function should be refactored to use CRM\_Core\_PseudoConstant::getKey this is the related issue https://issues.civicrm.org/jira/browse/CRM-20424

In regards to the 2nd issue i have opened a ticket here https://issues.civicrm.org/jira/browse/CRM-20939 and submitted a pull request here https://github.com/civicrm/civicrm-core/pull/10721 to fix the issue.

If you can it would be helpful if you could add a ticket on the first issue in the JIRA and reference CRM-20424 in the ticket.

Seamus

---
Tags: civicase, activities, error, debugging
---


# Question
Title: how to make charts and graphs in CiviCRM
I was wondering if it is possible through in CiviCRM, WordPress to do charts or graphs. If so, how should I do it?

Thank you!

# Answer
> 1 votes
One approach would be to extend what CiviVisualise extension provides

---
Tags: reports, custom-reports
---


title: CiviCRM for NGO

text:
# Question
Title: CiviCRM for NGO
Life Project 4 Youth (LP4Y) is a federation of local international NGOs, and we are looking for a single CRM platform that could help us to manage collaboratively and efficiently different aspect of our work.

Several questions:

1. Does CiviCRM propose support membership and donation management, Members/contact database, emission of tax receipt (accordingly to each countries regulations), compatibility support, emailing and event management?
2. Is CiviCRM adaptable to the needs and specificities of NGOs of different countries (Europe, Asia and USA)?
3. How does the installation of the platform works, do you provide technical support? How can the configuration of new items/tools work? Are we capable of doing it on our own or do we have to contact CiviCRM team because of the complexity of the work?

Thanks a lot for your response,

Inès

# Answer
You may first like to read the CiviCRM User Guide here at https://docs.civicrm.org/user/en/latest/ which may answer many of your questions.

As regards technical support, CiviCRM is open-source and offers community contributed documentation.

Whether you are capable to install and administer CiviCRM on your own will depend on your own skill levels but you may be able to get help on this forum if you clearly set out any problems and requirements.
> 1 votes

# Answer
I think that basically CiviCRM could be a good platform for what you describe. CiviCRM is community developed and community supported. There are knowledgeable CiviCRM partners all over the globe who will be able to assist you on each location.

IMO it would be a good idea to work out how you would like to structure your support, what you would want to be able to do yourselves and what knowledge you would like to build up in your own organization and what you would like partners to do for you.

On the CiviCRM side I would recommend installing a version on one of your servers and do some prototyping of the kind of processes you want to be supported by your CRM.
> 1 votes

# Answer
And to add to Peter and Erik about the tax receipt: cividonate sends an email that contains the detail about the donation, that might or might not be good enough to act as a tax receipt based on the local regulation.

If you need something more specific, we do have extensions to generate the needed tax receipts for some countries (eg. in Canada or in France).

However, each country seems to have different requirements on what needs to be put on that tax receipt, so you would need to evaluate it on a country by country basis. It might as well be that based on the country of the donor and the one where your organisation is registered, you can't provide the document needed for the donor to be able to deduce the donation from their tax return.
> 1 votes

# Answer
The other thing to be aware of is that civicrm can provide multi-tiered permissions, so each country or region can use the same system but be limited to seeing only the contacts they should have access to.
> 1 votes

---
Tags: civicontribute, evaluating-civicrm
---


title: Appearance of Client Names

text:
# Question
Title: Appearance of Client Names
Why do some of the names entered show up as firstnamelastname and others as last name, first name on my reports?

Thanks!

# Answer
> 1 votes
Can you provide on which reports you getting them different? Normally the contacts sort name is used to display on all reports. The way it need to be stored is defined in Administer -\> Customize Data and Screens -\> Display Preference.

# Answer
> 1 votes
They will appear in your report in the way the data is stored in the database. You may need to clarify what you have to get a better answer. But I would expect that if in your report you have

* peterdavis and
* Jones, Mary

showing, then that suggests your data itself needs sorting, maybe someone did a strange import?

---
Tags: wordpress, civireport
---


title: Comptability support

text:
# Question
Title: Comptability support
New here, trying to know more about CiviCRM !

1. Is CiviCRM (and/or its extension)providing any support in terms of **accounting** for NGOs ?
2. If we already have a website on **wix**, is it possible to integrate some features (online donations, memberships forms, newsletter suscribers database etc..) ?
    3. Is there a technical assistance (phone, email..) in the CiviCore Team available to respond to urgent matters, bugs, etc if need be ?

Thanks a lot for your precious help and comment !

Inès

# Answer
Trying to provide some answers:

1. Depends on what you mean by support for accounting, can you define that in a little more detail? CiviCRM can store contributions, event fees and membership fees and will store them with a specific financial type, linked to a financial account. For each of those contributions, event fees and member dues it will also generate financial transactions. You can assign those transactions to an accounting batch, which you will be able to download in CSV format (or IIF out of the top of my head) which you can then import in your financial system.
2. It is certainly possible to communicate with CiviCRM from any type of website using the API. So it will also be possible to create online donations etc. If you want to use some of the standard generated pages, you can probably do some by including the page in your Wix website. But it will require some consideration about what you want exactly, what the alternatives are and what the pros and cons of each alternative are. Some of the NGO's I work with want their public website and CiviCRM on separate servers for security/privacy considerations (and it makes sense IMO). But the consequence is that some of the nice and easy-to-use form modules that allow easy access to CiviCRM data need some adaptation.
3. There is certainly technical assistance from a CiviCRM partner in your region. There is as far as I know no Core Team technical assistance because that does not fit into our community model. It would mean having a big Core Team, while we have a small one focusing on the core product and a large group of partners focusing on supporting partners. So check where your nearest partner is here. All of the contributors and partners you will find on this list are active in the community and know their stuff when it comes to CiviCRM. You can obviously also try to find another organization that is not on the list that says they know about CiviCRM, but you run a little more risk then with the listed contributors and partners.
> 2 votes

---
Tags: accounting
---


# Question
Title: Where can I get the code that creates the progress bar for Personal Campaign Pages?
When creating a Contribution Page, you can enable a widget and copy the code to create a progress bar wherever you want. I'd like to do that with some personal campaign pages, so that they are all on the same front-facing webpage to show who is winning a fundraising competition. I'm not finding an obvious way to do that, but I expect it is possible.

# Answer
I'm not sure there's an 'easy' way to do it (similar to the widget code for an entire Contribution page). In the past I've done something like it by writing a custom plugin (for Wordpress) that used mysql queries to pull data from active PCPs. I don’t believe there’s a fully operational API for PCPs yet - that would probably let you avoid writing queries yourself - there is however an unofficial API that you might find useful.

Incoporating PCPs in Wordpress
> 1 votes

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


# Question
Title: Get a 403 error when adding an image to the online registration page in event management
Using CiviCRM 4.6.6. on Drupal 7.56

Just moved this site to a new server following normal procedures.

When managing an event, I can add an image to the info and settings page, but when I try to add one to the Online Registration page, the registration page is returned incorrectly and I get a 403 error. The event ID is completely lost. This is intermittent. Sometimes the page saves the image.

Trying again on 4.7.22. Endless spinning triangle of death.

Any ideas? Thanks

# Answer
Turns out it's ModSecurity on the server interfering with things.
> 3 votes

---
Tags: civievent
---


# Question
Title: Still getting "ERROR: You need to send a valid key to execute this file" when running cronjob
With a Joomla 3.4.8 and CiviCRM 4.6.14 setup, I have been unable to run a simple cronjob. Upon suggestion from my host support team I generated a new site-key \[following instructions on https://wiki.civicrm.org/confluence/display/CRMDOC/Managing+Scheduled+Jobs\]. I replaced the old key with the new one in both civicrm.settings.php files and ran the following cronjob on Terminal - curl -s http://ashguild.ca/home/administrator/components/com\_civicrm/civicrm/bin/cron.php?name=username&pass=password&key=key but I am still getting the same error message. Any help would be appreciated.

# Answer
Check that the user in your cron-script has superuser access in Joomla.
> 1 votes

# Answer
I encountered this with a password (or key) that had special characters. Don't use special characters for the password/key you want to use. Keep it \[a-z\] \[A-Z\] \[0-9\] (alphanumeric).
> 1 votes

---
Tags: joomla, cron-job
---


# Question
Title: Multiple insances of a custum field for one entity
How do I implement a custom field where I can input multiple instances of that thing.

For example I want to add Hobby custom field to Contacts. But a person can have more than one hobby. Is there a way I click add another hobby, and then another etc.

Is there a way to add an arbitrary number instances of the same filed?

# Answer
It is not so much the field you set to multiple, it is the custom group! So for example, many contracts.

You can add multiple custom fields for contacts ONLY (including individuals, orgnaizations and households). You need to check the box **Does this Custom Field Set allow multiple records?** (see attached screen print) and then you can add multiple hobbies.
> 5 votes

---
Tags: civicrm-home
---


title: screen for composing a mail is blank

text:
# Question
Title: screen for composing a mail is blank
I am using CiviCRM 4.7.21, on Drupal 7.56. I am attempting to send a monthly mail-out. If I choose last month's mail-out and click the "re-use" button, I get a blank screen:

If I go to mailings-\>draft, my new mailing is listed there. If I then click "continue", it goes to the same blank screen. If I try using mailings-\>new mailing, again the same blank screen, and a new draft mailing that I can't edit. This problem seems to have come up since I updated from 4.7.20 to 4.7.21 (updated 2 weeks ago, but this is the first new mailing we're trying to create since then). If more information is needed in order to reply, please tell me how/where to find it.

thanks, CMD

# Answer
> 11 votes
This may be related to Status page angular load error. Make sure that the following two items point to the same place:

* **Image Upload URL** at Administer \> System Settings \> Resource URLS
* **Image Directory** at Administer \> System Settings \> Directories

If this doesn't work, try disabling **Asset Caching** at Administer \> System Settings \> Debugging and Error Handling until this bug is fixed.

---
Tags: civimail, upgrade, error, 4.7.21
---


# Question
Title: Can't create mailings if imageUploadDir and imageUploadURL don't match
I upgraded CiviCRM from 4.7.19 to 4.7.22. In the new version there is obviously a check implemented that compares imageUploadDir and imageUploadURL. Probably if they don't match after exchanging the cms.root (path and URL) it warns.

In our configuration we want to have different values here, because we provide the images from a different domain to save bandwidth to our CiviCRM server.

The problem is, that if we configure it like we want to (namely that imageUploadURL points to a different domain than CiviCRM is provided from) the form to create new bulk mails doesn't load anymore. The system status page behaves the same (it doesn't load as well as long as the two values don't match in the sense explained above).

Does anyone else observe this behaviour?

# Answer
This is a bug, related to Status page angular load error. Since your "Image Upload URL" and "Image Directory" are in different places, try disabling **Asset Caching** at Administer \> System Settings \> Debugging and Error Handling, at least until this bug is fixed.

Please also see civimail - screen for composing a mail is blank
> 1 votes

---
Tags: resource-urls
---


title: Climbing Gym Management

text:
# Question
Title: Climbing Gym Management
I would like to know if CiviCRM is the right choice to manage contacts and entrances of a climbing Gym. At present we manage subscrition manually with forms, and sell single entrance tickets and multiple prepaid entrance cards. I would like to store the contacts subscribed with expiry date, track every entrance and manage the balance of the 12 entrance pre paid card. Is this possible using native CiviCRM or extensions ?

Thank you very much !

# Answer
> 3 votes
civicrm doesn't have an out-of-the-box solution for the 'tracking every entrance and manage the balance of the 12 entrance pre paid card', but that said, there are ways you can work through this I expect. I know we did a solution once upon a time for a Museum which also offered a 'subscription' which we implemented as a 'membership'.

The difficulty as I see it with the 12 entry card, is that you don't have a timeframe - hence membership isn't appropriate - nor is it an Event.

You could make a special Contribution type that has a custom field with checkbox for 1 through 12, and have that come up on the system so you can add an extra tick on it, or use Activities and somehow track the count on them (perhaps even like a Case).

Maybe someone else can suggest an Extension that I am not aware of.

---
Tags: evaluating-civicrm, best-practice
---