CRM procurement: Presenting the case for CiviCRM I have a list of functionality requirements for a new CRM system. I have run through this spec with a number of alternative CRM providers, who have given answers regarding what their systems can/can't do. How can I run through this list to consider CiviCRM?

Take a look at the recent Idealware report comparing 'donor management systems' and CRMs. I do not believe it is totally accurate or fair to CiviCRM, but it is something like what you want.

CiviCRM members are working on a side-by-side comparison of CiviCRM to 'competitor' platforms, which we hope to publish soon at the CiviCRM.org website.


Error with photo fields I am crafting a view to produce a directory of contacts, with contact_image as one of the fields (rewritten to wrap [IMAGE_URL] in an img element).
My output is headed by an error for each call to the image fetcher:

Notice: Undefined index: photo in CRM_Contact_Page_ImageFile->run() (line 44 of /srv/www/htdocs/drupal/sites/all/modules/civicrm/CRM/Contact/Page/ImageFile.php).

I'm not certain if this refers to a database or array index.
Using CiviCRM version 4.6.10 on Drupal 7.44

It started working, the last action before it did so was me updating the views module.


Unable to parse returned JSON - CiViCRM I have setup CiViCRM in one Drupal site, and then from another Drupal site I'm fetching events from that first site. This entire thing is working fine in my local.

Now I have uploaded both sites on staging server. On one site, I have install CiViCRM from scratch (no relation with local CiViCRM) and new CiVi installation is completed successfully without any errors. But when I'm trying to fetch events using API, I'm getting this error:

Unable to parse returned JSON

All configuration is perfect e.i API key, site key and CiVi server.

Below is my code to fetch events using API.

$api = new civicrm_api3 (array ('server' => 'http://xxxxxxx.com', 'api_key'=> 'abc123456', 'key'=> 'd0d792e6cd3c824bb3e0b671992fdc2d'));

if ($api->Event->Get()) {
    print_r($api);
} else {
    echo $api->errorMsg();
}

PS: I don't think there can be any issue in code, as same code is working fine on local.

Any help would be appreciated.

I got the issue. It was due to .htaccess authentication on entire site.

In such access denied cases, CiViCRM API should give some proper response message like "Access denied" or "Authentication failure" instead of just Unable to parse returned JSON


Why am I getting "Column not found: 1054 Unknown column 'civicrm_activity.source_contact_id' in 'field list'" on Activity View after upgrade to 4.6.7? For the past few upgrades I've needed to apply a fix for activity views detailed here:
https://forum.civicrm.org/index.php?topic=33513.0

Today I upgraded to 4.6.7 and got the same error, but when I make the changes in the fix mentioned above, I still get the error.

Does anyone have any insight about this?

Have you applied this https://github.com/civicrm/civicrm-drupal/pull/298 ?. As error you have mention is recently resolved.


Has anyone had issues with multiple contact types showing as a result in Search Builder despite contact specification? I've been using Search Builder to specifically find Journalists with two types of Media Interests, however my results have Talent and Media Outlets that do not have those Media Interests (two contact types I have not chosen).

I'm trying to get only Journalists, not Media OUtlets or Talent members.

Has anyone had a similar issue with multiple contact types showing up?

Rebekah - from the list you posted MOST of them show both the categories selected. The only ones (7th one down) that I can see that don't have them have a lot of others and may simply be pushing the ones you want to see out of sight.

Perhaps I don't understand your question but from what I see the result looks mostly right.

AH - If you are wanting to find records that ONLY have those two categories then I suspect Search Builder may not be able to do that in one step.

You may need to create a group of those above, and then create Groups for each of the categories you don't want to find, and use the Include/Exclude Custom Search.

Or do this via an sql query


Membership Fixed period, early bird before membership year start i am doing fixed period.
membership start date is May 1, 2019 membership end date is April 30, 2020
early bird starts April 1st
I have set the Fixed Period Start Day to be May 01
I have set the Fixed Period Rollover Day to be April 01

Have i got this right?

rollover means if i join on April 2nd i get ~ 13 months in the first year. so if that is what you mean by early bird then yes you should be sorted


API to load Personal Campaign Pages I've explored the APIs for CiviCRM 4.7.

I can't seem to find an entity for PCP or Personal Campaigns. Tried using the campaigns API but personal campaigns don't come up with it.

Does anyone know of the PCP API and have some sample code?

I've tried

$result = civicrm_api3('Campaign', 'get', array(
            'sequential' => 1,
           // "created_id" => $contactId,
        ));

There is an "unofficial" api for pcp from Jon:
https://civicrm.stackexchange.com/a/3037/246

It would be super useful if you could contribute the needed tests and add it to the core. You know you want to ;)


How to change membership type parameters to effect a revised end date I'm working with an organisation which is changing their membership cycle. Originally the membership type was fixed and annual and we had a start date of April 1. Consequently the vast bulk of the members have a membership end date of March 31.

The organisation now wants to move to a calendar year cycle, still fixed, but with a start date of Jan 1.

I made the change to the membership type, and it appears to be working as expected for new membership sign-ups. Renewing members on the other hand still seem to be getting renewed through to March 31 of the following year, indicating that the renewal process is looking only at the duration and not the start date.

This is creating confusion, as although we are telling members of the change in the membership cycle, they are still getting receipts that show their new end date as March 31 as opposed to December 31.

I can't see how I could alter the membership type so that renewing members get renewed through to December 31.

What's the correct approach in this scenario?

Hmmm not too sure about this @Graham, memberships is not entirely my field of expertise. Is this a case of a change at one date (as I suspect) or does the data need to change over the year? If it is a one time change you might try in a test environment to change the data in the civicrm_membership table and see if that works?


Get Admin email notifications for system status changes Is there a way that I can be notified via email anytime the system status changes? (Or changes to something other than 'ok'.)

There is nothing such available at the moment as i am aware of which can be configured inside CiviCRM but can be developed by writing a small extension using hooks to implement schedule job.

But this can be implemented if you have nagios/icinga monitoring your server. You can install CIVICRM MONITORING FOR NAGIOS extension and configure nagios/icinga to send email.


problems with upgrade on multilingual site (in this case 4.7.31 to 5.3.1) When upgrading a multilingual site, after the database upgrade ran the site would not correctly load the status page (or any page that loads via javascript), for one example, the url used in the html calling the arrow image for the admin menu contains the string (for example) /en/civicrm/a/undefinedpackages/jquery/css/images/arrow.png or /es/civicrm/a/undefinedpackages/jquery/css/images/arrow.png

There is some issue in rebuilding schema for multilingual instance when upgraded to 5.x version. For the moment you will need to manually rebuild the schema using drush or civi api.

Details to rebuild schema can be found at Multilingual instances show 'no such field' errors after update

HTH

Pradeep


Detailed logging running continually On some but not all records, we see over 2K change log entries.

On this record, the change log started and ran continuously from 11-26-19 to 1-20-2020

Another instance I had imported to the preferred communication field and the import ran for ~20 minutes. The change log was continually getting written to for the entire import process.
For now, I have turned off detailed logging. We are using a separate db for it. Thoughts on what is going on here?

This PR resolved this https://github.com/progressivetech/net.ourpowerbase.sumfields/pull/62
with an Exclude Summary Fields from logging? feature.

When advanced logging is turned on, you can exclude Summary Fields
from being logged to increase performance and reduce clutter.


Best way to configure IDS? Civicrm has a built-in layer of intrusion detection using a library called PHPIDS.  Unfortunately, I often have to disable for webhooks and other things that get trapped.  For example, using the mandrill extension, the system flags the webhook as an intrusion.

I'm sure there is a way to hack/patch the code, but is an IDS configuration profile supported somehow?  I couldn't find any documentation.

Assuming the webhook runs as a specific user, you can disable the IDS (it's one of the permission)

So if you create (on drupal) a role "trusted user", disable the IDS check permission for that role only and grant that role to the webhook user, you should be ok


Contributes (Total amount pending) It's possibile in report of contributes, check for single contact a total amount of contributes pending? Or have a difference between complete contributes and pending contributes? thank'you

Have you tried Reports > Contribution Reports > Contribution Summary Report? You can add a column to show the contribution status and you can modify the filter to show whatever status you would like on the report. By setting the grouping options to Contact and Contribution Status and nothing else, you will get a single row totaling contributions by status, and then a total row for the contact, but this will not give you a difference between the two.

Hope this helps!
Tamar


How to set default for 'Unsubscribe Group' in civimail Do a search using 'Find Contacts'
Select a few and choose task 'Email - schedule/send via CiviMail'
How do I set default value for Unsubscribe Group?

Any help is much appreciated.

There is no way through the UI that I am aware of.


Can't Install CiviCRM on Joomla! 3.9.23 mod_fcgid error CiviCRM 5.32.2
Joomla! 3.9.23
Mysql  5.7.23
PHP 7.3.24
PHP Extensions installed

PHP BCMath
PHP Curl
PHP DOM XML
PHP Multibyte
PHP Zip
PHP INTL
PHP SOAP

PHP Configuration
 - Set memory_limit to 512mb
 - safemode PHP directives are off.
 - MAMP XCache - This is off.
I kick off the install and after about 5 to 10 min the system kicks the following error:

[error] mod_fcgid: read data timeout in 360 seconds

Any ideas on how to fix this?

The timeout issue itself is caused by a new issue that is created in the latest joomla version itself (3.9.23). Joomla version 3.9.23 introduced an issue: unzipping an install file with several zips inside itself won't work. This causes the behavior you describe.
In the next version this issue will be solved. You can solve the issue now by manually installing a patch made by Yootheme, which can be found here:
https://yootheme.com/support/question/142357


Newsletter Signup CiviCRM Thinks Anonymous is Admin I'm using CiviCRM 4.4.20 with Drupal 7.43.

I created a profile to use for newsletter sign-up. Instead of a person signing up being set to "pending" and getting an email, the person is directly signed up and no email confirmation is being sent.

One clue to the problem is that it says "Added by Admin." I would have expected it to say "Pending (by email). Note that I am logged out when running this test.

How can I get CiviCRM to set the sign-up to "pending" and receive an email with a link to confirm?

Ideas?

Problem solved. What I had done was, in the "Advanced Settings" section of the profile's general settings, I had selected, "Add contact to Group" and then selected the mailing-list enabled Group I wanted to use on the form. This method totally circumvents the opt-in email.

What I have done since is leave that advanced section alone. Instead, I've added a field to the profile for "Group(s)." Now the opt-in email is sent.


How to create a directory of event participants with custom fields? I want to create something that would allow someone to enter an event id (ideally multiple event IDs), and generate a report that includes participant fields that I choose.

What I have in mind is something similar to a directory, that shows name/location/employer of all the participants of a chosen event.

Is this best done through creating a report, or by creating a standalone form?

Assuming the 'someone' that needs to access the information is an administrator then you could set up a report to do this using 'Reports > Event reports > Event participants list. In the 'Columns' you can select the fields (including standard and custom fields) to display. In the 'Filter's you can specify which events to display participants for - which is something that your admins can change.

The documentation for using the reports for CiviEvents can be found here:
https://docs.civicrm.org/user/en/stable/events/reports/

This is an approach that's built in to Civi. But there are of course other solutions, such as using Drupal's Views module to expose the information (as suggested in the comments). This could be useful if you wanted to expose the information to end users.


Report of multiple different memberships per contact in one line CiviCRM 4.6.8 and WP 4.3.1
Many of our members have two memberships, a main membership (ie. Professional or Student) and a State(or area) Chapter membership (ie. California or New England, etc.).   How can I report in a single line what memberships a member has?  Do I need to do this in SQL or can I do this in a native CiviReport.   If SQL could someone get me started.  THANKS.

Please use the below SQL to list all the membership related to single membership in an single row - I guess this helps

select
GROUP_CONCAT(b.name)
from civicrm_membership a,civicrm_membership_type b where b.id = a.membership_type_id
and a.contact_id in (select contact_id from civicrm_membership GROUP BY contact_id having COUNT(*) > 1)


Contact SubType check fail in Smarty TPL file Have  strange issue checking contact type in \templates\CRM\Contact\Form\Contact.tpl

This code prints  Organization / Society

{$contactType} / {$contactSubType}

This code prints Organization / Society

{if $contactType eq 'Organization'}
   {$contactType} / {$contactSubType}
{/if}

But this one prints nothing

{if $contactSubType eq 'Society'}
       {$contactType} / {$contactSubType}
{/if}

And this one prints nothing

{if $contactType eq 'Organization' && $contactSubType eq 'Society'}
       {$contactType} / {$contactSubType}
{/if}

Shouldn't it "just" work? Or it's another bit of CiciCRM magic?

(adding as an answer - see comment thread above)

In the DB, contact_sub_type uses a special character to split multiple contact types. If this is being carried through to smarty then 'eq' might not produce a match (but the non-HTML character wouldn't be printed to screen). Can smarty check whether the $contactSubType just contains 'Society'?


Q: Unable to upgrade past 4.7.13 Since 4.7.13 on Wordpress I am unable to upgrade my CiviCRM install. I enclose an image of the error message I get.

Clicking on the Retry or the Skip buttons has no effect.

I can't see what's going wrong, as I've not had any problems before. I am running WordPress 4.7.2, have no extensions, and cleared the cache and template_c folder as instructed on this page

https://wiki.civicrm.org/confluence/display/CRMDOC/Upgrading+CiviCRM+for+WordPress

This is due to a Javascript error. You should make sure again that the CiviCRM files are all in the correct place.

Then try to run the upgrade in Firefox with Firebug enabled and look for JS errors in Firebug and that will provide you the clue as to what the problem is.


Simple way to prevent one user seeing one contact My user would like a particular case worker to be prevented from accessing one specific client.  At present we're not using ACLs but I implemented one scheme that I could get to work on my test system but not on their system - I have almost given up trying to figure out why. I created a smart group with all clients except the excluded one, and a group with the case worker who could see only this group. Can anyone suggest another way this can be achieved?

You could do that with hook_civicrm_aclWhereClause:

remove 'view all contacts', 'edit all contacts' for the case worker
create an extension implementing hook_civicrm_aclWhereClause eg:

function everyoneexcept_civicrm_aclWhereClause($type, &$tables, $whereTables, &$contactID, &$where) {
      if ($contactID == 'your_case_worker_id') {
        $where .= ($where ? ' AND ' : '') . " contact_a.id != 'your_case_worker_relative_id'";
      }
    }

For a one-off case, just hardcode the contact id's for your case worker and their relative.

Caveat - not extensively tested!


Contribution page in a loop? I have a contribution page set up that I'm sending users to using a link from a webform, which includes the cid and checksum so that the contribution page is prefilled with the user's data.

when the user submits the page, having selected the relevant payment options, the page is simply re-presented to them rather than taking them off to the payment processor, Paypal standard in this instance.

If I use the page as a logged in user, it works without a problem.

Running D7 and Civi 4.6.10 currently, although about to update to current 4.6.x. Is this a known issue?

Looking at Firebug, I can see that in the case where the user is not logged in, I'm seeing a 404 on a JS file (/sites/default/files/js/jquery.min.map;) which I don't get when logged in.

I'm thinking this may be theme-related?

Any ideas on how to debug or workaround?

Turns out the problem was caused by the fact that there was no 'user 0' record in the Drupal database. Reinstating that, the problem was resolved.


Why should I use an ~/extensions directory rather than the default ~/ext for new extensions? It seems like not an uncommon practice - or at least, by two CiviCRM partner shops that I know of :)  - to use an ~/extensions directory for adding new extensions, rather than the default ~/ext directory.

Why is that?

I don't see that recommendation/practice in the docs anywhere, or at least not at https://docs.civicrm.org/sysadmin/en/latest/customize/extensions/

The ext dir that ships in the tarball is for extensions bundled directly with core like IATS. If you put other extensions in there they will get wiped when you upgrade, so it's common to put them somewhere outside the civicrm folder.

See also https://docs.civicrm.org/sysadmin/en/latest/customize/extensions/#enabling-extensions


Drupal Views Integration with Drupal + CiviCRM databases on different hosts A few weeks ago, we did a mainly successful migration of a Drupal/CiviCRM site from one hosting provicer to another one. Now, we realized, that some Drupal Views do not work anymore!

Configuring a Drupal Views CiviCRM Integration is well described in this document:
https://docs.civicrm.org/sysadmin/en/latest/integration/drupal/views/

And of course, we already put in the statements from civicrm/admin/setting/uf?reset=1

However, our new hosting provider puts the databases on different hosts (and is not able to move them to the same host)! However, the instruction in the above link says: "These instructions assume CiviCRM and Drupal are on separate databases located on the same physical host."

Any idea what I should put into the settings.php to get that to work?

(a workaround might be, migrating Drupal and CiviCRM into the same database - but that is something I would like to avoid...)

You could try CiviCRM Entity in combination with the EFQ Views module. The entity field query views module uses an alternative query backend. Since CiviCRM Entity uses the api to load entities, it doesn't depend on the SQL being in a particular place. Disclaimer, I haven't tried this for your particular use case, and the field and filter handlers will be rough around the edges, but it won't take long to experiment.


Sending email based on tag I was wondering whether it is possible to send mass email based on tag. Right now we can select group only. So is it possible to send email based on tag? Is there any extension for that?

You can always search for contacts (e.g. contacts with certain tags) and then send an email / mass mailing to all the contacts via CiviMail. Technically CiviCRM would then create a "hidden group" to do that.
However, it is usually preferable to use groups to manage your mailing recipients in order to ensure that contacts can properly unsubscribe from your lists.
Maybe you could change the tags you currently use to groups?


CiviCRM Log Viewer 1.2 not working after upgrade from CiviCRM 4.6 to 4.7 CiviCRM Log Viewer 1.2 not working after upgrade from CiviCRM 4.6 to 4.7, what do I need to change for it to work again?

Error message (I took out root dir info)
Unable to read entries from logfile at /wp-content/plugins/files/civicrm/ConfigAndLog/CiviCRM.d1b4fb7408ae18b71a1d53b3.log

There is no such file in the "files/..." directory

I figured it out. It was related to menus not being rebuilt.

The menus had to be rebuilt, but before that the row format on the civicrm_menu table had to be changed to dynamic.  Somehow during the database copy from production to test, the test table row format was changed to dynamic so didn't have the issue.

THE FIX:
ALTER TABLE civicrm_menu ROW_FORMAT=DYNAMIC
Then rebuild the menus ( I used CiviCRM Admin Utililties -> Rebuild Menu)

Error was:
    [debug_info] => TRUNCATE TABLE civicrm_menu [nativecode=1118 ** Row size too large (> 8126). Changing some columns to TEXT or BLOB or using ROW_FORMAT=DYNAMIC or ROW_FORMAT=COMPRESSED may help. In current row format, BLOB prefix of 768 bytes is stored inline.]
    [type] => DB_Error


Excluding blank or null values from report I'd like to create a report that includes a record if ANY value for a particular column is present, but excludes if there is no value.

For example, for gender of Male or Female, I'd like to filter if someone entered either value. Entries without a value would be excluded.

I did find this question/answer which suggests using multiple choice selection as a workaround.

This answer is not sufficient, since the columns that I want to choose do not have the option to multi select values.

Any suggestions would be appreciated.

I would use the Search Builder (Search menu » Search Builder) to select your field with an operator of "Not Empty" (see screenshot below).  It's not clear when you say "Report" if a search is sufficient - if it is, you're done.

If you DO need a report, add these users to a group (possibly a smart group, depending on whether you need this on an ongoing basis).  Then generate your report, filtering by members of the group.


Finding people with multiple activities We have a client who will be recording people who attend theatre productions. These attendances will be recorded as CRM activities (imported in bulk). The client would then like to search for people who have attended x activities (maybe over a set time period). Then group them and contact them.

CiviCRM would be very good at telling us who attended one or more theatre attendance activities. But not mutiple. Considered smart groups, custom searches, search builder, extended reports etc.

We think a custom extension may be needed for this. Any ideas would be appreciated.

Olly

Maybe the extension summary fields could be used as a base. Even though it probably does not do exactly what you want, it may be easier to build up on it insted of developing something completely new.

Or you could use the SQL-Task Extension.


Patch or workaround for search with checkbox or multiselect field I believe we have a bug when search criteria includes a checkbox or multi-select fields (it may include other fields).  I created a ticket: https://issues.civicrm.org/jira/browse/CRM-16947

Create a multiselect custom field (or checkbox text)
Search in advanced search and fails to pickup record
Search in "find grant" and fails pickup record
That's all I've tested but it fail be elsewhere too.
Works in API and search builder.

I reproduced on the wordpress demo site (Contact-"Omar Barkley" custom field-"test contact") I Couldn't find a specific issue on Jira.

If it were only for contacts, I could use the search builder (which works) but This is for a grant.  Need a select/checkbox for completing parts of a grant (status won't work.)

Has anyone else encountered this and/or resolved it?

I have fixed that under https://issues.civicrm.org/jira/browse/CRM-16927 and here's the PR https://github.com/civicrm/civicrm-core/pull/6342 (not merger yet). Can you please verify the patch if it works for ya ?


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.

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.


Generating hard copy mail merge letters in Civicrm I want to do a mail merge and post out a letter to members of a Civigroup. You can do this by generating a message template. When you insert a letterhead image into the template, the image resolution on the printed copy is poor. Is there a way to improve the resolution so that it looks professional. I presume this would be the same with invoices etc.

If the printed version looks poor it is probably due to the quality of the image you used in the editor. You could simply upload one with better quality / resolution.

In general you may have to fiddle a bit to get your html templates work well. I would advise to use an external editor and backup your templates once they work.


problem configuring mollie payment I recently updated the civicrm plugin to version 5.16, the latest.
I am trying to configure a event so that it can be paid with IDEAL (that is via interpay - mollie).
For this I use admin>system>payment means>add to find a screen where I can add a mollie payment (I have to translate the menu options to english here, maybe a little bit different)
In the new payment means, I select 'omnipay - mollie',

I select an account, add the API-keys, and then, when I change 'creditcard' to the first in the select, being 'IDEAL-omnipay-molly', I get an error screen saying:

Sorry, due to an error, we are unable to fulfill your request at the moment. You may want to contact your administrator or service provider with more details about what action you were performing when this occurred.
Deze financiële rekening kan geen '' relatie hebben.

Obviously there is something wrong with the selected account, maybe there is no account number configured, but how can I configure that? Have I missed some documentation on this? Any advise is welcome!

thanks in advance, Ruud

It looks like either 'Asset Account is' account relationship is deleted or disabled. You can check by navigation to CiviCRM >> Administer >> System Settings >> Option Groups. Find for 'Account Relationship' option, click 'edit option' link besides it. Find for 'Asset Account is' if its disabled or deleted.

Solution:

If disabled then enable it using api or through sql.
If deleted then Add a new one with Label and Name as 'Asset Account is'.

Cheers

Pradeep


Why is inbound email activity uneditable in case activity list? If I send an email to the configured inbound email address it correctly creates an activity. I can see the activity in the activities list on my own contact and on the contact connected with the inbound email address. I can open the activity using "view" and then I can click "edit" and make changes.

However if I then used "file on case" to add the activity to a case, and I open up the case and access the activity from there, there is no edit button.

I am an administrator will all permissions ticked.

Is this expected behaviour, a bug or a misconfiguration?

Edits: Added screenshots

Activities tab of contact
Activity open with edit button
After clicking edit button

This turned out to be an issue with the specfic version (4.7.29). In later versions, inbound emails are not editable at all through the GUI. Where an edit button exists, clicking it leads to "access denied", even for administrator with all permissions.

In my case I had a requirement to allow changing the status of the activity to record whether someone had looked at the email or not. Since this is not possible through the GUI, I ended up writing some custom code to do this, and customised the template to add a "Mark as read" button to fire said code.


Error: DateTimeZone::__construct: Unknown or bad timezone (7200) I'm getting error "Error: DateTimeZone::__construct: Unknown or bad timezone (7200)" when opening CiviCRM on my Drupal6 site. Refreshing the page clears the error. The error occurred after I upgraded to D6.38 and Civi4.7.11.
My timezone is Africa/Johannesburg. Any ideas?

I have a similar setup running Drupal 6 and CiviCRM 4.7.25. My system also showed System Status: Critical and no messages. The issue was is that it first attempts to set the time zone and if that fails it doesn't output any further messages for some reason.

In CiviCRM version 4.7.25 you can use the API console to run the System.check action by visiting http://sitename/civicrm/api#explorer and choosing Entity System and action check to repeat this test while you edit the files.

The fix is to fix the time zone problem which inherits from the Drupal 6 user and sets (in my case) an invalid time zone string which creates this issue.

For instances with Drupal 6, it uses the method CRM_Utils_System_Drupal6::getTimeZoneString() which retrieves the time zone from the user's timezone member in the database, which in my case is the offset in seconds, or a string -14400 for Eastern Time.

The problem is the DateTimeZone code which converts this into a database time zone string supports offsets in hours, not seconds, so I added this code to detect and adjust the values, use at your own risk:

--- Drupal6.php (revision 4843)
+++ Drupal6.php (working copy)
@@ -754,6 +754,9 @@
     // Note that 0 is a valid timezone (GMT) so we use strlen not empty to check.
     if (variable_get('configurable_timezones', 1) && $user->uid && isset($user->timezone) && strlen($user->timezone)) {
       $timezone = $user->timezone;
+     if (is_numeric($timezone) && $timezone % 3600 === 0 && abs($timezone) >= 3600) {
+         $timezone = intval($timezone / 3600);
+     }
     }
     else {
       $timezone = variable_get('date_default_timezone', NULL);

Once I patched this, the check step works correctly and I can review the further messages we're getting. Another trick here, by the way, is to update CRM_Utils_Check::CHECK_TIMER in sites/all/modules/civicrm/CRM/Utils/Check.php to a small number while you're debugging, otherwise the checks update only once a day.

As always, use best practices when working on production systems and back up all source files before modifying them.

The other possible place to look is in the Drupal variables table for the named value date_default_timezone which is used if the user does not have a time zone configured.


Administrator does not have sufficient permissions when running upgrade script I've run into an issue with Civi CRM and I'm hoping after an upgrade it may resolve itself. It's been a couple years since we starte using it on the site. I'm following the steps that are located here and have no problem up until I get to step 4, when I need to "Run the Upgrade Script". I've replaced your_wordpress_home with my home link but all I get is a "You do not have sufficient permissions to access this page" error. My folder permissions are correct, I downloaded and unzipped the correct wordpress zip file and I'm logged in as the Administrator so I can't see why I'm running into this error.

I've searched around and there may be something to do with a database permission for the administror account? Or is there something else I should be doing in this case?

I had run into this question/answer however I've checked my download at it is indeed correct civicrm-4.7.13-wordpress.zip.

Any help or guidance with this is greatly appreciated as I've been trying to re-upgrade and delete and go through the whole process again and agian but I run int othe same issues.

From the steps you've taken, it seems you are trying to do an install on Wordpress.

Have a look at the "Upgrade Troubleshooting" paragraph near the foot of the page at https://wiki.civicrm.org/confluence/display/CRMDOC/Upgrading+CiviCRM+for+Wordpress  The "You do not have sufficient permissions to access this page."  error when trying to run the upgrade script(step 4), probably means that you most likely deactivated CiviCRM plugin during the upgrade process. You just have to visit /wp-admin/plugins.php and activate the plugin, and then proceed with step 4 .

Hope this helps.


Custom field data - maintaining uniformity I want to add Educational information of individuals as custom field set. However I want the data to be entered to be uniform. In our organization, different people will enter data into civiCRM. Some may enter as "B.Tech" or "BTech" or "Btech" etc. How do I ensure same format is used in the database for all degrees?

There are two options:

Set your custom fields as a (multi) select if possible.
Develop an extension that validates the input using a validateForm hook (or in jQuery)


Webform layout box not working? Not sure if I'm missing a step here, I am trying to set up an event registration with webform. For previous set ups the layout box has worked to have two columns, but for this one it isn't. The setting doesn't seem to matter, it's showing the information as vertical instead of horizontal. I am using Drupal 7, CiviCRM 5.3.1, and webform version 7.x-4.17.

Ah that’s because your base theme is a bootstrap theme. Some CSS edits are required to mold the form into two columns.

Here's an example (if your node id=96:

@media only screen and (min-width : 767px) {
  #webform-client-form-96 fieldset {
    width: 46%;
  }
}


Translations missing I've checked many times on transifex in order not to forget important elements and, eg, all household occurrences are correctly translated to italian.
I'm using 4.7.19 on Joomla 3.6.5 (or 3.7.2), php 5.6.
I've also downloaded the .po files and combined to .mo with poedit.
But there are words that keep being in english, for example on the left sidebar, the dropdown menu for adding new items, still shows household, individual and organization in english. And there are other words everywhere that don't show italian translation.
Even trying to substitute words does not produce results, have a look here:
http://nimb.ws/rxIJQe
Does anyone know if there's a way to overcome this issue?

This is a tricky translation "issue" as far as I know. When you install CiviCRM in one language all the system strings are set with the string status of the translation at the moment of the installation. For this reason when you have an incomplete CiviCRM language translation is common to find some system strings untranslated and although you try to ammend it translating it later they will persist in English.

The only way that I've found to overcome this is to manually overwrite system strings. You can found many of them at civicrm/admin/options?reset=1. E.g. to change contact types names you have to to edit admin/options/subtype?reset=1 options.


When making an in memory of donation -> why does the deceased contact not get marked deceased? I noticed this with one of my clients who processes a lot of in memory of donations. I've reproduced this on https://dmaster.demo.civicrm.org :

1. enabled in Memory of profile on
https://dmaster.demo.civicrm.org/civicrm/admin/contribute/settings?action=update&reset=1&id=1

2. made a fake VISA Contribution on that Contribution page - selecting In Memory of radio button and filling in First and Last Name
https://dmaster.demo.civicrm.org/civicrm/contribute/transact?reset=1&id=1

3. Result: Contact is created but is -not- marked deceased. If we had also filled out the email for the deceased (standard field for the in memory of profile) then this could easily lead to some awkward moments allowing CiviCRM to email deceased people.

4. I can understand that one may want confirmation that someone is deceased - rather than letting an anonymous donor update that field in the database - but to treat 'in memory of' contacts as alive people is risky.

5. Anyone have any suggestions on how to handle processing 'in memory of' profile submission better?

Best response was by Andrew/AGH: "... it's way better to have a dead person look alive than to have a live person look dead."


Can't save profiles (any type) getting an error, this is CIVI Crm 5.x and drupal 7 on localhost Whenever I try to edit or save a profile, I get this error:

Sorry, due to an error, we are unable to fulfill your request at the moment. You may want to contact your administrator or service provider with more details about what action you were performing when this occurred.
DB Error: no such field

Error in D7 log messages is:

Type    page not found
Date    Sunday, September 30, 2018 - 11:39
User    1
Location    http://localhost/crm4/undefinedjs/jquery/jquery.crmAjaxTable.js
Referrer    http://localhost/crm4/civicrm
Message undefinedjs/jquery/jquery.crmAjaxTable.js
Severity    warning
Hostname    ::1
Operations

I found the problem, disabled the jQuery update module.

I could play around with Jquery versions as I am using Boostrap with different themes so I'll leave it off for now.

But no doubt, playing with Jquery versions on admin theme would solve this also ;)


Admin language does not change I try to change the language localisation of our site to dutch following the documentation at: http://wiki.civicrm.org/confluence/display/CRMDOC/i18n+Administrator%27s+Guide%3A+Using+CiviCRM+in+your+own+language

I uploaded our language files at sites/all/modules/civicrm/l10n/nl_NL
Now some of the backend interface (settings) shows in dutch.
But the admin menu and for instance event emails are still send in english.

When I change the language on the 4.6 sandbox the whole menu changes.
I already dropped civicrm_domain. What else can I do to get this working using civicrm 4.6.4 / drupal 7.38 ?

Unfortunately, if you change the language after the installation, the data that has been loaded during installation in the database will not be translated.

I am not aware of an easy way of fixing that but you could use as a start the sql files in civicrm-xxx-l10n.tar.gz and do updates instead of insert.

The issue is known and hopefully will be fixed in CiviCRM 4.7


Change or turn off the auto renew cancellation system email I've probably gone round the circle so many times I've missed it's obvious start! However, I can't find the origin of the system email that goes to people when they or the system cancels their auto-renew membership.

It contains the text, "Your auto renew membership sign-up has ended and your membership will not be automatically renewed."

As far as I can see, this is not the System message, 'Memberships - Auto-renew Cancellation Notification', which in our system has a very different text (when viewing the default message as well as our modified message.)

So... where should I look to find this text?

Sorry if this is a totally obvious answer that I've missed... :-)

This looks to me like text from the Recurring Start and End notification... did you check there perchance?


Create Case using API via REST - no "Open Case" activity created I'm using the REST interface and the create case API to create a new case. The case is created, but no activities. In particular, no "Open Case" activity is created as I would have expected. No entry is created in the civicrm_case_activity table. As a consequence (or maybe this is just a coincidence), the Case does not show up in search results. If I edit the case, then a Change Case entry is created in the civicrm_case_activity table and the case then appears in search reports.

Do I need to explicitly create an Open Case activity? For example by chaining api.Activity.create json on to the Case create json? Thanks.

CiviCRM 5.10.4
Joomla 3.9.2
PHP 7.0.33

Answer (thanks to @ErikH and @Demerit): the problem was that the case type did not have an Open Case activity in its standard timeline (presumably I had deleted it). Anyway, I added the Open Case activity to the standard timeline, and subsequently-created cases have been fine.


Importing Contacts from Access I understand I need to convert a table into a csv file, but the contact table in question has both an individual and their spouse in the same record.  Now I can build a query that would only show me the individual's information, but once I import that information into civicrm how would I then import a list of spouses and get them to setup relationships, or will I just have to manually enter those in after importing the primary contact information?

It is a bit complicated. You will need to do at least 2 different imports, with external IDs. The CSVs for imports would look at this
1st import
first_name, last_name, extID
Jane, Doe, 1

2nd import
first_name, last_name, extID, Spouse-extID
John, Doe, 2, 1

Take a look at CiviCRM 5.29.0 - import relationships


Adding And Removing Fields To CiviCRM Tables I had earlier added a new field to the civicrm_event table called "enable_tracking".
I achieved this by adding a new field to the xml/schema/Event/Event.xml file.
After this I ran the regen.sh script. Everything worked fine.

Now I wanted to remove this field from the civicrm_event table, so I removed the field from the Event.xml file and ran regen.sh again. However I am getting an error when running this script.

+ echo 'Populating database with dataset - civicrm_generated.mysql'
Populating database with dataset - civicrm_generated.mysql
+ mysql -udrupalclea_vpj3r -XXXXXXXXXXXXX -h 127.0.0.1 -P 3306 drupalclea_vpj3r
ERROR 1054 (42S22) at line 462: Unknown column 'enable_tracking' in 'field list'

One hack would be to manually edit the civicrm_generated.mysql file. Is there any other way?

I think the civi process works great for adding columns. Dropping columns is not done too often and hence the above error.

I suspect the easiest work-around might be to empty out the civicrm_generated file:

echo '' > civicrm_generated.mysql

and then run regen.sh (this basically makes setup.sh load an empty file, and hence avoid the error). Maybe this should be part of the regen.sh script


Should CiviMail report show bounces when using the Mandrill extension? Drupal 7.36 - CiviCRM 4.5.8 - Mandrill Transactional Emails 1.5

The system is correctly putting a hard bounce contact on hold, the soft bounce is not yet on hold. But I am not seeing the bounces reported by Mandrill on the report bounces.

Is this the expected behaviour?

The first thing to check is that both the MTE extension and Mandrill are properly configured. For instance, are soft bounces configured to be returned to CiviCRM?  See here for instructions on configuration:  https://github.com/JMAConsulting/biz.jmaconsulting.mte

I believe bounces are passed on to CiviCRM's standard bounce processing. You may need to check that the bounce reasons and soft bounce thresholds are correctly set (need to do a little mysql magic for that though).

Remember that contacts are not put on hold until the soft bounce threshold is met.


How to remove a financial type from profile is already created and data is submitted? By mistake I have included a financial type while creating a profile which should not have selected. Now if I go to settings of profile now its disabled. How can I get it enable again? or a way to remove irrelevant financial type Please?

I'm not 100% clear on your question but I think it is one of the following:

The [x]CiviContribute option in the screenshot above is automatically checked if you add a profile to a Contribution page. If you remove the profile from all Contribution pages, that option will disappear again.
If you want to remove a particular field from the Profile (e.g. if you added the "Financial Type" field to this profile), click on View or Edit Fields for this Profile in the screenshot above and look for that field to disable or remove it.


Converting My Data to CiviCRM data formats When importing data into CiviCRM, do I need to reformat my data in any way so that it is in conformance with CiviCRM data formats?

one thing I have found has helped me and many others is to do an export from CiviCRM of a sample set of the fields you are going to import, then you can see how civicrm expects fields, tags and other data structures.


Civi membership receipt emails - how to turn on/off per membership? We have many automated renew memberships with automated recurring contribution profiles. Civi has a great system of sending automated payment receipts for each of these automated contributions through its system workflow message, "Membership receipt (online)".

We can edit those messages, and with a bit of SMARTY decision making, we can change their content quite substantially from one membership type to another.

But is it possible to actually turn off auto receipts completely for one membership type and leave them on for others?

And if so, how?

Thanks for your thoughts.

Membership online receipts are delivered based on which Contribution Page someone completes. So if you used multiple such pages, you could turn off 'send receipt' for some of them.

If they all have to come in from the same page for some reason then alternatively you may be able to run a post-process hook and change the the civicrm_contribution.contribution_page_id value, or since this is memberships, it may relate to the value in civicrm_membership_block.entity_id value (guessing a bit here but the membership block is set to be on specific contribution pages by this value, and that may therefore link to the Contribution page ID and hence whether a receipt gets sent or not)


Where/how to save global variables? We want to store some global variables for token substitution in civicrm. Think of adding current members of board of managers to letters or other phrases to use in mailings or pdf letters.

Example: token

{board_members}

should be substitued by

Jane Doe

Jim Jones

Bud Foo

Frieda Bar

Any idea how to store (editable by our staff)? Or should I misuse message templates to store the content? Say I'll create a message template "Board members (don't use as template)". Or an inactive message template?

Creating custom tokens is fairly easy in CiviCRM.

I would create a Group in CiviCRM containing the contacts of all the Board Members. By using a Group, as the Board Members change and are updated in the Group the token will automatically reflect the changes.

Then I would program a custom token that converts {board_members} to a list of the names of the contacts in the Group (separated with <br />).

The link in @Ramesh's answer should help.

You could probably kludge together a solution using templates or something similar, but it is probably more likely to break and more difficult to upkeep.


Clear custom multiple records fieldset occurences My goal is to free all contacts of a specific custom fields group. In other words I want to clear all occurrences of a multiple records custom field set. May I truncate the civicrm_value_<customfieldsetname><id> table, is there an api method or how can I safely achieve this?

Thanks in advance // nielo

Pretty sure you can truncate the civicrm_value_customname table. I've done that before with no ill effects (assuming you don't have custom code running off those values).


How to set Thank-You Letter template to start the next letter on a new page Drupal 7.69
CiviCRM 5.20

We use Thank-You letters for our Year-end receipts. We use line-items for our fund accounting. If a donor gives monthly to more than 2 funds, the search result for the letter is too long to fit on one page. So it starts the next letter on the partial page. If the results are short enough, it all works great.
How do I force it to start each letter on full pages?

Here is my message template code

        {contact.addressee}
        2019 Contribution Statement

        {contact.street_address}
        January 1, 2019 - December 31, 2019

        {contact.city}, {contact.state_province} {contact.postal_code}
        Federal Id # 27-4638772

        ____________________________________________

Thank you for your support of Radius International in 2019

No goods or services were received for these Tax Deductible contributions

            Date
            Cont ID
            Contribution Designation
            Amount

            {$date}
            {$contribution.id}
            {$lineitem.label}
            $ {$lineitem.line_total}

            2019 Total Contributions
            $ {$contribution_aggregate}

I cannot tell you how to do a page break and it probably also depends on your pdf library (e.g. dompdf or wkhtmltopdf).

You could however consider using one of the existing extensions for donation receipts to create the Year-end receipts. There are several around, one we created quite a while ago can be found here: https://github.com/systopia/de.systopia.donrec

The documentation can be found here: https://wiki.civicrm.org/confluence/display/CRM/DonationReceipts+Extension


Event with team registration How do I create a fee for a team event without each team member being charged? ie one team costs $100 not $100 per person.

If you are OK with it being on the honor system (you can always check to be sure each team has a paying member), then create 2 Fee Labels 1) Team $100 2)Team Member $0. The teams will have to be sure that one member checks the Team Fee and the rest check Team Member.

It might make it easier if you check the box "Register Multiple Participants" It is under the Online Registration tab of the Event Setup. Then one team member can register the entire team and be sure that they pay the $100 only/at least once.

Note: This is on the honor system since all team members can select the $0 option. But you can check to be sure that they have paid before the event.


How long does sourceforge keep older versions / Where can I download an old version? I tried a couple of the older links at sourceforge, e.g. 4.0.x, 4.1.x, 4.2.x, and I get "file not found" for all of them. How long are older versions archived at sourceforge? If they are really gone, where can I get an older version? I could probably do a subversion checkout from svn.civicrm.org, but then I need to be able to assemble it etc. Web search didn't come up with anything other than sourceforge, or maybe I'm just not seeing it.

Thanks.

P.S. What I really want to do is upgrade a 3.1 site to the latest, but after a couple days effort it just seems like that's going to take forever to track down the errors/dependencies and manually deal with them, so I was hoping to upgrade through intermediate versions incrementally.

EDIT: as Coleman pointed out on the forum, SourceForge downloads seem to work sometimes. I just retried 4.1.6 and it worked.

In theory, the upgrade documentation says that we can upgrade from CiviCRM 2.2 to 4.7. I have doubts on that, however upgrading from 4.0 to 4.7 should work. A few years ago, I managed to run upgrades from CiviCRM 1.7 to 2.0, then 2.0 to 2.1, 2.1 to 4.0. So in your case, I would recommend 3.1 to 4.0 (or even 4.1?), then to 4.7.

The are archives available up to CiviCRM 4.1 if you use the following URL:

CiviCRM 4.1:

https://download.civicrm.org/civicrm-4.1.6-drupal.tar.gz
https://download.civicrm.org/civicrm-4.1.6-drupal6.tar.gz
https://download.civicrm.org/civicrm-4.1.6-joomla.tar.gz  (etc)

CiviCRM 4.2:

https://download.civicrm.org/civicrm-4.2.19-drupal.tar.gz
https://download.civicrm.org/civicrm-4.2.19-drupal6.tar.gz
https://download.civicrm.org/civicrm-4.2.19-joomla.tar.gz
https://download.civicrm.org/civicrm-4.2.19-wordpress.tar.gz

For CiviCRM 3.0 to 3.3, you will have to use SVN. It's not that bad, although I don't know if it will run on a current version of PHP 5.6. It might work on PHP 5.3.

svn checkout http://svn.civicrm.org/civicrm/branches/v3.4 civicrm-3.4
cd civicrm
cd xml
php GenCode.php

As you have probably noticed the version number in the above URL (v3.4), you can repeat the same process for versions v3.3, v3.2 and so on.

It doesn't help that the SVN virtual-machine of CiviCRM has been having issues lately (full disk). I cleared up some space, but the issue will only be resolved for good next week (another service needs to be moved off that VM).

Reference: Installing CiviCRM from subversion

Reminder: CiviCRM 3.4 is the same as CiviCRM 4.0, but 3.4 is for Drupal 6 and 4.0 is for Drupal 7.


any ideas why my emails are not being recieved, but are not bouncing? I have been trying CiviMail to send emails with CiviCRM 4.6.9. and drupal 7.
When I send mails using the mail system not many of them reach the destination mailbox. They are marked as delivered by the mail reports, but only a few are marked as opened.
When I check with the individual users they are not getting my emails, I am also not receiving bounces.
I have checked and our domain has not been blacklisted.
If I send emails from my own email program they generally all get through.

Any suggestions as to why my emails are not getting through when sent from Civimail?

There's two questions here - "Why am I not showing any bounces?" and "why isn't my email arriving?".  I'll try to answer the first one here.

The nature of SMTP (the Internet email protocol) is that a message will be relayed from server to server many times before it reaches its destination.  The first 90 seconds of this video demonstrates this.
CiviMail can only know if it successfully delivered to the FIRST server.  In many situations, that first e-mail will accept ALL emails, and rely on later servers to bounce the message.  However, since the later servers don't connect directly to CiviMail, they can't report a bounce directly.  Instead, they send a "bounce message" via e-mail to the sender.  You've probably seen a bounce message yourself if you've mis-typed an email address and tried sending to an address that doesn't exist.
To address this, most configurations of CiviMail require that you set up an email account specifically to catch bounce messages.  See this documentation on setting up bounce processing.  There are also some gory details here.
If you have NOT successfully configured a bounce processing address, or you haven't enabled the "Fetch Bounces" scheduled job (Administer menu > System Settings > Scheduled Jobs), your mailing reports will always show zero bounces (excepting advanced configurations like a SOAP Return Channel).


Search ajax script "not a valid JavaScript MIME type" When a WordPress page editor plugin is activated (WP Bakery) I get the console errors on a page using the shortcode [civicrm component="profile" gid="14" mode="create" hijack="0"].

  The script from
  “https://example.org/civicrm/?page=CiviCRM&q=civicrm/ajax/l10n-js/en_US&cid=13243&r=nPFxX”
  was loaded even though its MIME type (“text/html”) is not a valid
  JavaScript MIME type.

  SyntaxError: expected expression, got '<' on line one of the dcocument

The page uses the Classic editor, not WPBakery. I've tried various plugins to disable the WP Bakery plugin on that one page, with no luck.

Disabling WP Bakery for the whole site allows the shortcodes to work; but it can't be deactivated due to client usage. I'm also trying to work with WP Bakery support.

As a result of the errors, no CiviCRM search results are returned.

Any ideas?

No errors in any WP or CiviCRM error logs.

Going directly to the URL of the Javascipt doesn't load the script, but loads the entire page.

Is it possible to enqueue the CiviCRM script in the footer or change its load order to help troubleshoot?

The problem was WP Bakery and how it hijacks the page; getting rid of WP Bakery for a simpler page editor was the solution.


How do I show in a Contribution report (if I can) the other particpants payment sttaus if they were paid for by another attendee My finance person wants a contribution report that doesn't just show the contributions for the initial person signing up, but lists individuals that were paid for as additional attendees signed up for and paid for as well. Is that possible?

I expect the data you want lives in pricesets, so perhaps this extension will expose it: https://civicrm.org/extensions/extended-reports


Select alias with dot is not returned from CRM_Core_DAO::executeQuery() I've been playing around with the idea of using the custom group and field name as an alias when fetching data using the API. Because of this I've ended up with a situation where an alias can have a dot in it.

This causes the aliased field to be returned as empty, whereas an alias without a dot in it will be fine.

\CRM_Core_DAO::executeQuery('SELECT first_name as "Foo.Bar" FROM civicrm_contact;')->fetchAll()

Will return an array of contacts, but with Foo.Bar => "".

I've also tried using backticks around the alias, but with the same result.

I've found the cause of it, but am just posting this here for anyone else who might run into it.

Depending on the version you're using you may have a different version of the pear DB_DataObject, but they all seem to have something similar to this line:

$kk = str_replace($replace, '_', $k);

https://github.com/pear/DB_DataObject/blob/trunk/DB/DataObject.php#L653

Which replaces dots and spaces in the keys of the results.

It seems like the steps it follows are:

Call fetchAll() which loops through the results
Call fetch() on each result. This will change the original keys, replacing any dots with underscores and store the value as a property using the changed key.
Call toArray() to get the output for each result. toArray() will loop through the original keys and return an associative array, mapping the original keys to their value. However since the key used to store the value has changed the value will be empty.

I'm not sure why they do this, but if you want to avoid it you can either do some sort of hacky substitution on the select aliases before and after running the query.

Another alternative is to bypass any call to DB_DataObject::fetch()

  $results = array();
  $dbResult = \CRM_Core_DAO::executeQuery($sql)->getDatabaseResult();
  while ($row = mysqli_fetch_assoc($dbResult->result)) {
    $results[] = $row;
  }

Edit:

Normal usage of SelectQuery::run() gets around this by doing a string replace of . => _ on the aliases and checking if a property existing in the BAO result.

https://github.com/civicrm/civicrm-core/blob/4c6cc3647eb7b19a05529bd40b02e26623e8effe/Civi/API/SelectQuery.php#L153

This should fix the problem, although in the later version of DB_DataObject they're also replacing spaces, which would cause problems even if using run().


Webform Event Registration skips payment processing Following the tutorial at Civiteacher.com on "How to: Register for Multiple Events With Webform," registering for an event works, but it skips the payment procession section.

Logs report this error:

The CiviCRM "participant getoptions" API function returned the error: "The field 'fee_amount' has no associated option list." when called by line 1459 of utils.inc with the following parameters: "Array ( [field] => fee_amount [context] => create [event_id] => Array ( [259-9] => 259-9 ) [role_id] => 1 [options] => Array ( [limit] => 9999 ) [check_permissions] => [version] => 3 ) "

This occurs whether I am logged-in or not as well as with the "CiviContribute: access CiviContribute" given to everyone (just for testing purposes!).

Additional information:

I set-up the Participant Fee by checking the box by "Webform>Civicrm>Event Registration>Registration>Participant Fee"; it is using the "Select options" widget
The Webform Element is of type "Radio buttons (static)"
Running Civicrm 4.6.3, Webform 7.x-4.9 and Webform Civicrm integration 7.x-4.10

Additional information - 2:

Using PayPal Standard as the payment processor.

By "skips" I mean submitting the form results in a confirmation page – no chance to enter payment information:

Above goes directly to this:

Here's how I've set up the webform participant fee:

I was able to get this working by recreating the form using 7.x-4.12 version of the Webform CiviCRM Integration module. (Simply upgrading the module and using the existing form would not work.)

In addition, I had to make sure that Webform>Payment Processor had both "Pay Later" and "Credit Card or PayPal" selected. (You'll notice on the screenshot above that only "Pay Later" displays.)


Can't get Pretty Workflow Messages to work I'm trying to use Pretty Workflow Messages to prettify system messages, in particular the subscription messages.
I'm running CiviCRM 5.36.1 with PWM 1.2. I've created a special message template and selected this in the PWM settings but the subscription system message is still as plain as could be.
I've tried with just selecting other templates too, but no difference.
Using Joomla and Swedish, if that might make any difference...

Group subscription messages are not part of 'System Workflow Messages'. Hence it is not supported for them.
Here is the list of default CiviCRM 'System Workflow Messages'.

Hope this helps!


Issue getting Email for Bounce Processing I'm getting the following error when running the "Fetch Bounces" scheduled job:

Details

Parameters parsed (and passed to API method):
a:1:{s:7:"version";i:3;}

Full message:
Finished execution of Fetch Bounces with result: Failure, Error message: A fatal error was triggered: Could not connect to MailStore for ebounce@domain.com@imap.gmail.com
Error message:

An error occured while sending or receiving mail. Failed to connect to the server: imap.gmail.com:993.

The mailbox is a G Suite account, IMAP is configured, and I can connect to the mailbox via IMAP from an Outlook email client. The error appears in the job log immediately after running the job (there's no 30 second or longer delay that I would expect if it were timing out trying to connect to the mailbox).

Where can I look (or how can I get) some more detailed information on why this job might be failing so quickly?

As per the recommendation, we're running Wordpress 4.8 and CiviCRM 4.7.19

Thanks!

The issue is likely at the server networking level.  If you have access to that server (via SSH or similar), I would try installing the swaks utility to troubleshoot.

swaks might even be premature though.  I would start by ensuring that your server's firewall isn't blocking outgoing access on port 993 and that imap.gmail.com is resolving in DNS.


How can I get webforms to show household and household members? I tried to follow the instructions here http://wiki.civicrm.org/confluence/display/CRMDOC/Webform+CiviCRM+Integration but I must be doing something wrong.

I created a webform that has household as contact 1 and individual as contact 2.  In contact 2, I enabled relationship fields and selected is part of.

In the webform, if I select an existing household, it pulls up the info on the hh but does not populate the individual info.

If I create a new household and a new individual, it creates the household and the individual and a relationship but the relationship doesn't have a type, which isn't possible through the standard interface.

This is on civicrm 4.6.7

Prefilling a webform value depends on other values already being there. If the individual is not selected at the time the webform loads, then there's no way for it to populate the household. So you are correct, selecting a different contact 1 on the form will not cause contact 2 to be changed.

One workaround would be to create 2 webforms - the fist one being an incredibly simple form that allows you to autocomplete the individual's name and a submit button that redirects you to form 2 with cid in the url. Not perfect but it would work.


How to load custom css into admin popup boxes? Many admin functions in Civi send the user to Ajax popup boxes. Eg on the Contact screen, Membership > Add membership, Events > Add Event... and many many more through the system.

What is the best way to load custom css into these?

We are using a custom css file for the rest of Civicrm - but it's not being loaded in these ajax popups. From a load-time point of view, that's possibly a good thing! Some of our admin users are in poor internet areas, and those popups can be very very temperamental when the net is slow. So it would be great if we could just add some minor css tweaks to these popups rather than load the whole of our custom css into them.

Thanks for your ideas.  Drupal 7.54, Civicrm 4.6.25.

The custom css file do load on every page of civicrm, even the pop ups. Note that the elements in the ajax contains different ids and classes(mostly starts from ui-**) compare to page view.

So you need to redefine the css for them on your custom file.


Example: Recommended way to hide entry fields in new contact view I just got CiviCRM installed and I also did some customizing, but now I am not sure how to proceed.
AFAICS using extensions and hooks is the recommended way of customizing civicrm, but there no examples for hiding/removing fields, although many people seem to need that.
Could someone post an example of hiding unwanted fields like nickname/pseudonym or something from the new contact entry page?
Let me explain: I want to set up Civicrm for a non profit club and they are quite conservative. Nicknames and messenger entries are not wanted, so I want to hide them in a way that survives Security Updates.

Thanks

One way to simplify data entry is to consider using a Profile as the way for your users to add new contacts. This means you add fields that you want, rather then removing fields you don't want. Once you have created a Profile you can then use the 'create' version link such as

http://d46.demo.civicrm.org/civicrm/profile/create?gid=1&reset=1

but you don't get the same warnings in terms of potential matches, and there are no doubt other downsides (such as the unwanted fields still showing on the Summary screen), but it may be worth a thought as a temporary fix if you hadn't already considered it.


CiviCRM (on WordPress) runs too slow to be useful Just installed WordPress and then CiviCRM on my Hostmonster.com hosted website.  CiviCRM runs too slow to be useful.  Is there w way to make it run without 1-2 minutes for each option selected, with timeout errors (504).  Is there a fix?

The problem isn't WordPress, but Hostmonster.  Shared hosting makes its money on sites that don't need any CPU or memory - simple WordPress sites, for instance.

CiviCRM is a much more resource-intensive program than your typical CMS (like WordPress).  If you have good shared hosting - which is hard to come by! - then you can sometimes run a very small CiviCRM instance.  Say, 500 contacts.

Consider a VPS instead.  Hostmonster offers a VPS service, but there are cheaper VPS vendors available.  If you're committed to shared hosting, there's a list of hosting providers available - but if you have the resources to support a VPS, you'll be much happier.


Create a Group using a CSV of existing contacts with an ID Sorry for the potentially elementary question here, bur I have seen this done by a former coworker. I can't for the life of me remember how to use a CSV or comma delimited string of CiviCRM IDs to create a new mailing group through the CiviCRM user interface. I have a list of existing contacts from our database that has been filtered inside Excel and now I need to create a new group off the remaining contact IDs.

Can anyone remind me how to take the CSV list to create the search and then generate the new group? Or do I have to run the list through the "Import Contacts" process and add them to a group that way?

Thank you in advance.

You can use the import contacts wizard with a file of the contact IDs that you want to add to a group - in the field mapping screen, just map to contact ID, and in the import verification screen you have the option of adding contacts to a new or existing group.

Hope this helps!
Tamar


Submission of a form on wordpress OK with chrome but not valid with Firefox, Safary We are in an emergency situation with Covid-19. We prepared a form on wordpress CRM here : https://international-impact.com/covid-19-ecuasol/
The link is ok on Chrome but not on Safari, Firefox, etc.
What mistake have we done ?

Its down to permission, make sure anonymous user can access the profile. It is possible that on chrome you are logged and safari you accessing the profile as anonymous user.

Navigate to CiviCRM >> Administer >> Users and Permissions >> Permissions (Access Control). Click on 'Wordpress Access Control' link.
Look for 'CiviCRM: profile create' and check the box under anonymous or authenticated role column and save the form.


Does anyone know why I have two "Summary" tabs on each contact when I use a custom template? I use a custom template for the "Summary" tab. In recent versions of CiviCRM, this has created two identical "Summary" tabs at the top of each contact. Both of these tabs work correctly and bring up identical fields from the custom template - see image.

Has anyone else had this happen with a custom template? It looks like a bug to raise.

I am using Drupal with CiviCRM 4.7.10

I've now checked for any changes to the template since v4.7.0 and there are changes. I've now incorporated these into my custom template and this has fixed the problem. Please ignore the question!


Donations Made with False Name and Address using Paypal WPP A Membership payment was made successfully using our Contribute form with a new contact created such as:

name: fffff fffff

address:
asdadad 4
davie, FL 33328
United States

email:

jdchjffdjhf@gmail.com

Contribution says paid by Credit Card, and there is also a transaction/invoice ID.

Why is CiviCRM Paypal WPP processor allowing this contribution which obviously appears to be fraudulent? Is this due to our set up

Thank you.

Drupal 7 / CiviCRM 4.6.x

I am not certain what can be done to stop people 'testing' if stolen credit card details if that is what is happening. There is a blog about it and an old forum topic you might glean something from

And this SE question is where the conversation moved to.


**Network Error - Unable to reach the server I am the manager of our organizations Drupal/CiviCRM site. Since we are an all-volunteer organization, I have other managing certain aspects of the system.

One of our board members is responsible for ensuring that membership records are up-to-date. For those who elect to pay by check, this means that he has to enter the site and manually enter the fact that the member has paid.

The process he uses for doing this is:

Go to CiviCRM
Type in the name of a contact in the search box, i.e. Smith
Select John Smith from the drop down box
Go to John's Membership Tab where his Pending membership is shown
Click on more, Renew

When he does this, he gets Network Error - Unable to reach the server.

I tried to duplicate this situation by giving my personal account (not the admin account) the same level of privilege as his account (note that I have the CiviGroup Roles Sync module installed, so this simply entails giving my account the same Role as his), logging into the system using a different browser (after deleting history, cookies, etc.), and following the same sequence outlined above. When I did this, the error did not occur.

Details:

Drupal 7.37
CiviCRM 4.6.3
Permissions enabled: access administration menu; CivCRM: add contacts, view all contacts, edit all contacts, view my contact, edit my contact, delete contacts, access deleted contacts, import contacts, skip IDS check, profile listings and forms, profile listings, profile create profile edit, access CiviCRM, access contact dashboard, administer reserved groups, merge duplicate contacts, view all notes, access contact reference fields, access CiviContribute, edit contributions, access CiviMember, edit memberships, delete in CiviMember, access CiviMail, access CiviReport, access Report Criteria; use the administration pages and help; administer users; view user profiles

Can you please suggest why my colleague is getting this error and I am not? If not this, can you suggest some tests that can be run on his computer to try to get to the root cause of the problem?

If you're not having this trouble but your colleague is, a very common issue is sessions on www/no-www or HTTP/HTTPS URLs.  CiviCRM's base URL is hard-coded in the settings file, and while you can follow relative links around the site for a while, some links will be generated from that URL.

Let's say you have a site that's accessible at http://www.example.org and http://example.org.  civicrm.settings.php has http://example.org as the base URL.  If your colleague logs into Drupal at http://www.example.org/user and follows links from there, everything may be fine until he hits a URL that CiviCRM generates from the base URL.  It'll be http://example.org/whatever, and Drupal will deny access, since there's no session at example.org--just at www.example.org.

I don't think it's necessarily precisely this, but I think it may be something similar.  Maybe your colleague logs in at http://www.example.org instead of https://www.example.org.  Maybe you have SSL enabled only for www.example.org, or maybe there's a redirect that's cached funny.

The way to avoid this is to make sure three of the following four URL variations all redirect to the fourth:
 - http://www.example.org
 - http://example.org
 - https://www.example.org
 - https://example.org

It doesn't matter whether you pick https://www.example.org or https://example.org as your official URL, but have everything redirect there and set that as the base URL in civicrm.settings.php.

Although I think something like this is probably the issue, Jon's answer is a good general process for debugging this sort of thing.


Are General Deduping rules working? I am having a problem with custom general rules for deduping.  Very inconsistent results that cause me to suspect that there may be significant issues.   One strange observation is that at times a general clearing of caches makes a difference.  But even that is not consistent and problematic if a rule is being used by a webform, for example.

Are users have success with general rules? Failures? My test case is using First Name, Last Name and birth date. Is this a case where a general rewrite is needed and perhaps a Make It Happen campaign?

Any insights would be appreciated.

I just used a general rule for org contact type import yesterday and it worked.

Import Contacts creating dupes despite dedupe rules


SMTP error 501 when extension Transactional Mail - Bounce and Tracking Handler is enabled I use CiviCRM (v5.20.0 on PHP 7.3.11 in Joomla) to send scheduled reminders for membership expiration. The mails are sent via SMTP. This works okay when i send a reminder to my own account so i expect it to work for all other accounts. Though I would like to see if mails are indeed sent but I don't see any logging where i could find if, when and to whom an e-mail has been sent.

Now I found an extension called Transactional Mail - Bounce and Tracking Handler and i installed it.
When i try to send mail via the Job Send Scheduled Reminders, I see following error (only when the extension is enabled):

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

Any help would be appreciated.

The invalid sender address in the messages suggests that you have not set up your CiviMail -> Mail Accounts bounce account with a proper domain - that sender would normally have that domain after the @ sign.


how to search for contacts selected in contact reference fields Civi 5.15.1, WordPress 5.4.1

Some of our contacts ask us to send our communications to someone else, a "designated contact" or DC. To accommodate them, we created custom Contact Reference fields for email and phone/text, and for mail we use Civi's built-in "Use another contact's address" feature. To mark someone as a DC, we created a Contact Subtype and a Smart Group based on that subtype. However, new DCs don't come around that often, so our back-end data entry staff haven't consistently remembered to use the subtype. Also, we wouldn't otherwise need the subtype because there are no custom contact fields associated with it. We just need the Smart Group.

So I was hoping to get rid of the unnecessary subtype step, and modify the Smart Group to be comprised of contacts who are the selected values for either of our custom Contact Reference fields or Civi's surrogate address field. I've looked at Advance Search, Search Builder, and the Custom Searches, to no avail. Is such a thing possible? Thanks.

Lack of searchability is one of the downsides to using Contact References.

1) One option is to use Relationships instead of Contact Refs.  You can create a smart group based on those - but you would need to convert your existing Contact Refs and associated processes.

2) Jaap's DataProcessor extension can help.

Add a Data Source of type Individual - call it Person
Add a second Data Source of type Individual - call it DC.

Join type as 'Select fields to join on'
Join on Field: Contact ID = Person::custom group::DC contact ref

Add fields for the fields you want to display for Person and/or DC using 'Raw field value' - include the DC contact id.
Add an Output of Contact Search

That will search for contacts who are DC's and show the fields you configure.

Although Contact Search has an action to create a smart group, I have not got that to work with DataProcessor (yet) - so it does not completely solve your problem.  You could though run it and add the found contacts to a static group.

I guess Jaap would welcome any PR's or sponsorship to make smart groups work as a dataprocessor output.


How to create a modern looking contribution page? I have just came across this webpage where they seem to using CiviCRM. But would have an idea how did they created the layout of this contribution pages? Wordpress drupal or something else? https://action.aclu.org/give/now
I like the layout of it and wondering if can be implemented on our site using drupal?
Thanks

You can use the Civi Bartik Public Theme for Drupal/CiviCrm.

The theme has some configuration as to change colors, logo etc...


Difference using primary vs main email address What is the different between the main and primary email address? How are these two used by CiviCRM?

A contact can have several emails. To distinguish them, each has a category: is this her professional email, her private one...?

And no matter how many emails a contact has, civi needs to know which one to use when I want to mail the contact: it is the primary one. I might prefer I receive emails on my private address, but you might prefer your professional one.

Now it's becoming more confusing:

The categories of emails are shared with the categories (Locations) of physical addresses, so you have a "home" email address and an "work" one. I use them as private and professional emails respectively... and an extra category "main" (meant to be for the main office location) that is indeed confusing (I tend to hide this category)... and an extra "billing" email address that will be automatically created if the contact makes a donation

Even more confusing?

civimail can use a different "primary" address than the "primary" one (the one flagged "bulk email"), so you could receive the event registration confirmation on your primary email, but the newsletter on your "bulk" email.

Even more confusing?

A contact can have several bulk emails, so you could receive the newsletter to both your private and professional email

Civi is super flexible and can deal with a lot of different workflows from a lot of different organisations, but sometimes, the defaults are a bit confusing indeed.

I'd suggest you to look at what email (actually Location) categories you need, and disable the ones you don't need (eg. the "main" one), it's under /civicrm/admin/locationType?reset=1

Keep in mind that that list is shared between the physical addresses and the email ones.


Can't proceed a simple search Hi after a migration on Drupal 7.69 / CiviCRM 5.33.2 everything went fine except that now we can't perform a simple search https://domain.net/civicrm/contact/search?reset=1 when there should be contacts.
If there is no contact (i.e searching inside a specific tag that is empty), it quickly returns the right information saying 'no results'. But if there are some contact (in type, group or tag), it keeps searching and after a while comes to an internal error (500).
The quick search top-left works fine but the advanced search also fails.
We guess that CiviCRM tries to write the search query in the civicrm_cache table in the database but fails, maybe this hypothesis is not relevant.
How could we improve this point? Any advice?

I had the same issue.  After updating to 5.34.0, this issue was fixed for me.


CiviVolunteer 2.0 fails to enable volunteer management for events I'm running CiviVolunteer 2.0 beta 2 with CiviCRM 4.6.8 on Drupal 7. After installing the extension, I create a test even and attempt to enable volunteer management. Here's the resultant error and stack:

Sorry but we are not able to provide this at the moment.
Not enough data to create volunteer project object.

and...

#0 /var/www/drupal/cfsc/sites/all/modules/civicrm/CRM/Core/Error.php(360): CRM_Core_Error::backtrace()
#1 /var/www/drupal/cfsc/sites/default/files/civicrm/extensions/org.civicrm.volunteer-4.6-2.0.beta2/CRM/Volunteer/BAO/Project.php(221): CRM_Core_Error::fatal("Not enough data to create volunteer project object.")
#2 /var/www/drupal/cfsc/sites/default/files/civicrm/extensions/org.civicrm.volunteer-4.6-2.0.beta2/CRM/Volunteer/Form/Volunteer.php(89): CRM_Volunteer_BAO_Project::create((Array:4))
#3 /var/www/drupal/cfsc/sites/default/files/civicrm/extensions/org.civicrm.volunteer-4.6-2.0.beta2/CRM/Volunteer/Form/Volunteer.php(285): CRM_Volunteer_Form_Volunteer->saveProject((Array:2))
#4 /var/www/drupal/cfsc/sites/all/modules/civicrm/CRM/Core/Form.php(345): CRM_Volunteer_Form_Volunteer->postProcess()
#5 /var/www/drupal/cfsc/sites/all/modules/civicrm/CRM/Core/QuickForm/Action/Upload.php(166): CRM_Core_Form->mainProcess()
#6 /var/www/drupal/cfsc/sites/all/modules/civicrm/CRM/Core/QuickForm/Action/Upload.php(133): CRM_Core_QuickForm_Action_Upload->realPerform(Object(CRM_Volunteer_Form_Volunteer), "upload")
#7 /var/www/drupal/cfsc/sites/all/modules/civicrm/packages/HTML/QuickForm/Controller.php(203): CRM_Core_QuickForm_Action_Upload->perform(Object(CRM_Volunteer_Form_Volunteer), "upload")
#8 /var/www/drupal/cfsc/sites/all/modules/civicrm/packages/HTML/QuickForm/Page.php(103): HTML_QuickForm_Controller->handle(Object(CRM_Volunteer_Form_Volunteer), "upload")
#9 /var/www/drupal/cfsc/sites/all/modules/civicrm/CRM/Core/Controller.php(353): HTML_QuickForm_Page->handle("upload")
#10 /var/www/drupal/cfsc/sites/all/modules/civicrm/CRM/Utils/Wrapper.php(115): CRM_Core_Controller->run()
#11 /var/www/drupal/cfsc/sites/all/modules/civicrm/CRM/Core/Invoke.php(286): CRM_Utils_Wrapper->run("CRM_Volunteer_Form_Volunteer", "Manage Volunteer", NULL)
#12 /var/www/drupal/cfsc/sites/all/modules/civicrm/CRM/Core/Invoke.php(86): CRM_Core_Invoke::runItem((Array:14))
#13 /var/www/drupal/cfsc/sites/all/modules/civicrm/CRM/Core/Invoke.php(54): CRM_Core_Invoke::_invoke((Array:4))
#14 /var/www/drupal/cfsc/sites/all/modules/civicrm/drupal/civicrm.module(489): CRM_Core_Invoke::invoke((Array:4))
#15 [internal function](): civicrm_invoke("event", "manage", "volunteer")
#16 /var/www/drupal/cfsc/includes/menu.inc(527): call_user_func_array("civicrm_invoke", (Array:3))
#17 /var/www/drupal/cfsc/index.php(21): menu_execute_active_handler()
#18 {main}

What am I doing incorrectly? Thanks!

I know this is a late answer, but I believe the blog post announcing the beta 2 release acknowledged this error. At that stage, the standalone volunteer project functionality was prioritized over the event integration. The bugs introduced in the volunteer/event integration were addressed before the final 2.0 release, and these features are working together nicely now.


Accessing sent emails I would like to keep track of emails that I have sent on Civicrm?  Is there a way to do this or do I have to print them to keep a record of sent emails?

Thanks

There are a number of options depending on exactly what you are trying to do.

Do you want to view mass mailings sent through CiviMail? If so Robin's answer should help.

Or do you want to view emails that you have sent to an individual contact in CiviCRM? If so, you can view these in that contact's activity tab.

Or do you want to record emails that you have sent outside of CiviCRM against a contact in CiviCRM?  If so, you can find more details here: Configuring inbound email processing


How to define a Custom Membership Status? Our membership is monthly rolling.
Now We would like to give a member to be in Grace period of 12 months if they have paid at least for 12 months.

Although I have changed the membership rules to following...

I have also ran the scheduled job after changing the settings, but nothing seems to be changed in terms of status of existing members. Can anyone help please?

EDIT: I have changed the Expired rules to 12 months too, but for example for the person who paid in August 2015 it shows EXPIRED, where it should have been GRACE

If I understand you, there may be a problem that you are using 'monthly' rolling (i take it you mean 1 month rolling). Does that mean someone needs to have paid for 12 membership cycles? If so there is no way that civicrm currently handles setting Grace to be 12 months based on them having purchased 12 membership cycles. But perhaps that isn't the point.

A more common approach would be as follows, in case this provides some hints to you:

set a rolling 12 month (1 year) membership
set Grace to be 12 months starting from End Date and count is as 'current'
set Expired to start 12 months after End Date
make sure Grace is above Expired in your order of Member Status.


Trying to create a custom field that works similar to "Contact is Deceased" function One of the organizations we work with is defunct now and I'm trying to create a field to capture this info.  It would be great to have similar functions as the Contact is Deceased button (ie, "Deceased" in red by name, taken out of mailings, etc).

Is that even possible?  What are other ways folks have captured this info?

Thanks.

Some thoughts.

Since 'is_deceased' is a field on the contact table i wondered what would be the effect of assigning a '1' to an Org.

The record does now show with DECEASED in red after the Display Name

The contact does show up if i search for is_deceased via Adv Search

I then also set an Individual to Deceased.

Neither of them showed email as On Hold nor Comm Pref as Do Not Mail.

When I went to print a PDF records for the Deceased (both Org and Ind) were printed

I got a whitescreen when I tried to do an export using " Exclude contacts with "do not mail" privacy, no street address, or who are deceased."

Some of the above does not gel with my Answer at What is effect of marking contact as deceased? but I haven't compared with dmaster.

I suspect an extension could make the is_deceased field show for an Organisation and based on above I sense that it would then operate similarly for both Ind and Org (though clearly my testing above didn't give me the outcome i expected for Ind in some cases)

Above was all done on 5.10.3 (ish)


Clean reinstall of CiviCRM Extension GDPR on Wordpress I've been trying to evaluate the GDPR extension before adopting it fully.  I entered some dummy information about Privacy files, which I now wish to delete and start afresh.  There doesn't seem to be any easy way of deleting that information.  I've tried disabling the extension, uninstalling it and then re-installing it but the information that I originally entered keeps coming back which suggests to me that the information has been stored in the CiviCRM database.

The documentation shows:
Removing¶

If you no longer wish to use GDPR, you may disable it, or uninstall it.

    Disable - will turn off GDPR’s features, but preserve any data that you have created with it. If you re-enable GDPR later, you'll be back where you left off.
    Uninstall - can be done after disabling, and will completely remove all traces of GDRP, including the data created with it. If you re-install GDPR later, you'll be back to square one, before you ever installed it.

The "removal of all traces" hasn't worked for me and as I've said, I want to do a completely fresh install.
Has anyone else tried to do this and if so, with what results?

Taken from a comment by @ParvezSaleh

The extension does not remove the custom data or activity types when uninstalled. This is a deliberate feature as it's assumed that any data collected to date is important and would be required if an audit takes place.

It would therefore be necessary to manually remove the information from the database.

The extension's settings are stored in the civicrm_settings database table as a record with name set to gdpr_settings.

Other information (activities, custom field data) are stored in various database locations including civicrm_activity and civicrm_value_sla_acceptance_N (there may be other locations.)


Is there a function that will execute multiple SQL statements? I'm writing an extension that needs to make a bunch of temporary tables and copy data around. I think CRM_Core_DAO::executeQuery() only executes one semicolon-delimited statement at a time. Is there a function somewhere that'll let me run them all in one go?

Yes, there is such a function; but you shouldn't use it.

Make each query separately and check the result.

Avoid functions which make multiple SQL queries in one action, as they make it harder for your application logic to handle unexpected cases.

CRM_Core_DAO::executeQuery() executes a single query against the DB - use this.
CRM_Utils_File::sourceSQLFile() does what your question asks - but don't use this.

Why not CRM_Utils_File::sourceSQLFile()?

The pattern of loading a .sql file in as a single set of queries via CRM_Utils_File::sourceSQLFile(); has issues IMO. It's one of the brittle points where I've most commonly seen sites (especially customised ones) fail on upgrades.

The cause for this is that it's a context switch in your code - when you load multiple queries in via sourceSQLFile(), you lose the ability to respond to a failure in any given one. Whether it's the first query which fails, or the second to last, sourceSQLFile is going to do no more than echo back a failure message OR die() - it doesn't return a result or throw an exception.

Code using this approach has to do extra work to handle failures - or assume they never happen, which is what this function IMO encourages. Looks like there are other things to be wary of there (eg no warning if $fileName doesn't exist).

Why is calling each query separately, eg via CRM_Core_DAO::executeQuery(), better?

In contrast, calling each query via CRM_Core_DAO::executeQuery() (or its future replacement) means your code can check the result of each query, and based on that information proceed with further queries OR handle the case of a failure in that executed query.

I think you'll be better served by taking a more diligent approach and calling each SQL query with context to handle the result each time.


Importing relationships I have a set of custom relationships I need to import against, but the import mapping dropdowns are only showing the three default relationships:

Employee of..
Family member is..
Household member is..

Any ideas?  I cannot see any options on the custom relationship settings i need to change. We are using CiviCRM 4.6.2 (recently upgraded)

Thanks Paul - it turned out that relationships needed to be set up at contact type level, not as a contact sub type in order for the relationships options to be displayed in the import screens.

So where contact sub types had been set up on earlier versions of civi, the relationship had to be changed to conctact type leve i.e

individual to individual
not Individual (parent) to Indiviudal (child)

The relationship names can stay the same just not the level.


Dropdowns in the admin area appear underneath the modal window Dropdowns in the admin area appear underneath the modal window making it impossible to select a required dropdown, example: When I add new membership type I can't select Membership Organisation or Financial Type, see the screenshot:

It was a conflict with css coming from another plugin (Slider Revolution). Its global.css has defined the following css property .ui-dialog { z-index: 1000102 !important; } which caused the behaviour described above.


Newsletters only display plain text, not HTML I'm having a strange problem here: basically, whenever we send a newsletter, only the plain-text part appears. I have checked with the SMTP gateway and the emails it is sending out are the same as the ones CiviCRM is sending. Additionally, when I click the "Preview as HTML" button, a new window appears which is blank except for the text "(null)".

Nothing really has changed except I think a routine upgrade (to 4.7.29). We also emptied the templates_c directory a few weeks ago because it was over 8GB+ in size. In any case I've tried refreshing caches (using URL, dashboard button and drush methods), and loading, modifying and re-saving the newsletter template.

Additionally, I can no longer see contributions on a contact's dashboard (though the number of contributions is correctly displayed). I don't suppose that's related..?

We believe it was a problem with file permissions in sites/default/files/civicrm/templates_c applied after the last security update.


CiviMail recipient count stuck on Estimating I'm unable to send and/or produce test emails for large mailings. This seems to be a result of CiviMail not completing the recipient estimation process. Attempting a test email while it's stuck on "estimating" gives this error:

Error in call to Mailing_send_test : Error in call to MailingJob_create : DB Constraint Violation - possibly mailing_id should possibly be marked as mandatory for this API. If so, please raise a bug report

This appears to happen in the neighborhood of 4500 recipients and above.

[I have seen reports that similar issues were resolved in version 4.6.3, but this error occurred in 4.6.9]

I was able to 'fix' the issue by simply deleting all the groups (I didn't have any previous mailings in here) from the Recipients field and then re-adding them. Make no other edits before the estimated number of recipients finishes, and the draft is saved. I was able to send a test email successfully after that. The mailing list this happened with to me is ~585 contacts.

NOTE: I just had this error pop up and found this Stack Exchange question from a Google search of the error message.


"Please go back and complete the CAPTCHA" appearing when registering multiple participants for an Event We're on CiviCRM 4.7.25 and Drupal. We have the CAPTCHA and ReCAPTCHA modules enabled, and ReCAPTCHA is enabled on a profile we use for event registration.

We're seeing a new error (which never used to happen!) when registering multiple participants.

Behaviour is:

User is not logged in to Drupal
User enters details for Participant 1, and completes Captcha
User enters details for Participant 2. No captcha appears (good!).  User tries to proceed to next step and encounters alert "Please go back and complete the CAPTCHA at the bottom of this form"
User can't progress any further with event registration

The only problem being, there is no captcha!

For now, we have disabled Captcha on this profile, having drawn a blank on other fixes.  Any suggestions gratefully received!

Looks like a bug- see comments
2 possible workrounds

1) Limit to single participant registration

2) Create new profile w/o captcha and use this as profile for additional participants

Or as you suggest disable captcha for profile entirely


How can I display that an event is full on a Drupal View? Currently a user needs to click through to an Event info page before they know if it is full or not.

Is there a way to take this information:

  "This event is currently full."

and display it in a Drupal View/ Pane?

One approach would be to use the views_php module to embed a civicrm_api3 call to find out if the event is full, then print the result into the view. E.g.

$event = civicrm_api3('Event', 'getsingle', array('return' => 'is_full', 'id' => $row->id));
if (!empty($event['is_full']) {
  print "Event is full";
}