missing config_backend in civicrm_domain table, templates_c directory and Config.IDS.ini after migration I didn't do the database dumps or file backups for this migration of CiviCRM on wordpress, so could it be a problem I can solve without going back to the old host?

What is the problem the site is having?
In later versions there is no config_backend field, and templates_c and config.ids.ini will recreate themselves if the folder permissions are correct.


Why is my Menu and dashboards not working on clean installation on Wordpress? I have installed Civicrm 5.4 on a new Wordpress installation, I ran through the setup with one issue of a dashboard contact ID and have gone through the Configuration Checklist, but after that my Civicrm Menu never shows.

I went through the fixes online and implemented everything from making sure the resource urls are correct everywhere, resetting the menu through another plugin, clearing the menu in the DB, changing settings in the civicrm.settings.php file but with no success.

I have manually added an entry in the dashboards table so I can atleast see the Resources on the front dashboard but I am unable to move it next to the News.

I am running wordpress 4.9.8 and php version 5.6.5 on a company server.

Please let me know if there is more information I can give and thank you in advance.

I had a similar situation on a new installation of CiviCRM on WordPress, but the hostname had changed from when it was first installed, and https had been enforced.

Updating wp-content/uploads/civicrm/civicrm.settings.php and changing all relevant URL's to the new https URL then reloading the page was enough to get the menus to show.


How to disable datepicker UI for a mobile device I like the datepicker UI, but many people don't.

We require date of birth on a few forms.  Each week I get at least one complaint that someone can't fill out the form on a mobile. Not sure if a bug or user error. I think the easiest thing is to disable it for mobiles.  Ideally, have an icon to trigger it.

I was wondering if there is a clever /safe way to use css for this so we can use @media queries to disable for mobile devices.

I was experimenting with

#ui-datepicker-div {
z-index: -9999;
display: none!important;
}

which seems to work, but disables validation.  Looking for any other keen ideas.

To use the native datepicker of the mobile device, the field needs to have type="date". So your code to disable the datepicker popup and use the native device's instead might look like:

(function($) {
  $.ui.datepicker.prototype.options.focus = "button";

  $(document).on('crmLoad', function($region) {
    $('input.dateplugin', $region).each(function() {
      this.type = 'date';
    });
  });
})(CRM.$);


How To Record & Display External ID In Contact Summary? We are (newly) using civi to track membership in our international martial arts organization.

We have an external ID for each member to date, which I need to preserve and display in the contact summary, so we don't need to re-issue new member IDs.

Once I have the civi DB current with all existing members, moving forward we will simply assign NEW members the civiCRM ID as their member ID.

We had considered a one time re-issue of existing members a new ID based on their civiCRM ID, but this is not feasible.

You could do this with a database trigger.  If you are using external id for the existing members you could put a trigger on civicrm_contacts after insert that would populate external_id with the internal_id.  (assuming after you import the internal_id will be higher than any existing members.  If not, than just add some number to get it higher).

External ID does show up on the main contact screen on the right side above phone number.  If this isn't prominent enough you could use the civicrm_contact_get_displayname hook to append the id to the end of their display name.

Here is some info on that.
http://wiki.civicrm.org/confluence/display/CRMDOC/hook_civicrm_contact_get_displayname

Also, you'll find a question or two on this in the old forum and in this stackexchange.

Note:  if you add a db trigger you'll need to add it through the trigger_info hook.
http://wiki.civicrm.org/confluence/display/CRMDOC/hook_civicrm_trigger_info


Get Custom CiviCRM Data by ContactID This is not a duplicate This is option group 110 in civicrm_option_value

I am trying to create a custom query for reporting that pulls the actual Custom Data LABELS ('Green Light','Red Light', etc)vs the custom data VALUES (1,2,3 etc) per the CIVI Terminology in Admin.

The following SQL:

SELECT
  civicrm_contact.id,
  civicrm_contact.display_name,
  civicrm_value_custom__safe_sport_co_9.usoc_sports_safe_complete_9,
  civicrm_value_custom__safe_sport_co_9.background_check_7,
  civicrm_value_custom__safe_sport_co_9.red_light_override_71,
  civicrm_value_custom__safe_sport_co_9.override_expiration_72,
  civicrm_value_custom__safe_sport_co_9.background_check_status_73
FROM
  civicrm_contact
  INNER JOIN civicrm_value_custom__safe_sport_co_9 ON
    civicrm_value_custom__safe_sport_co_9.entity_id =
    civicrm_contact.id
WHERE
  civicrm_contact.id = 1000

1000,Billy Jenkins,2/27/2018,3/16/2018,0,NULL,1

I actually WANT

1000,Billy Jenkins,2/27/2018,3/16/2018,0,NULL,Green Light

This is micro version of what I actually need which is many more custom data columns but its the same situation, I can't simply join the civicrm_option_value.value field because there are dozens of values of '1' I'm not sure how to segment the 110 group only to pull what I need.

What should I do?

I'll try to answer specifically for this question but this effectively is a duplicate of MySQL Query to return all custom values because it's the exact same technique.

First, look in civicrm_custom_field in the "name" column for the Background Check Status field. I'm going to assume it says "Background_Check_Status" there. If not you'll need to change it below to match.

SELECT civicrm_contact.id,
civicrm_contact.display_name,
civicrm_value_custom__safe_sport_co_9.usoc_sports_safe_complete_9,
civicrm_value_custom__safe_sport_co_9.background_check_7,
civicrm_value_custom__safe_sport_co_9.red_light_override_71,
civicrm_value_custom__safe_sport_co_9.override_expiration_72,
ov1.label AS 'Background Check Status'
FROM
civicrm_contact
INNER JOIN civicrm_value_custom__safe_sport_co_9 ON civicrm_value_custom__safe_sport_co_9.entity_id = civicrm_contact.id
LEFT JOIN civicrm_custom_field cf1 ON cf1.name = 'Background_Check_Status'
LEFT JOIN civicrm_option_group og1 ON cf1.option_group_id = og1.id
LEFT JOIN civicrm_option_value ov1 ON (ov1.option_group_id = og1.id AND ov1.value = civicrm_value_custom__safe_sport_co_9.background_check_status_73)
WHERE civicrm_contact.id = 1000

Since you already knew the option_group_id, you could use that like so, but I find the name is easier on the eyes.

SELECT civicrm_contact.id,
civicrm_contact.display_name,
civicrm_value_custom__safe_sport_co_9.usoc_sports_safe_complete_9,
civicrm_value_custom__safe_sport_co_9.background_check_7,
civicrm_value_custom__safe_sport_co_9.red_light_override_71,
civicrm_value_custom__safe_sport_co_9.override_expiration_72,
ov1.label AS 'Background Check Status'
FROM
civicrm_contact
INNER JOIN civicrm_value_custom__safe_sport_co_9 ON civicrm_value_custom__safe_sport_co_9.entity_id = civicrm_contact.id
LEFT JOIN civicrm_option_value ov1 ON (ov1.option_group_id = 110 AND ov1.value = civicrm_value_custom__safe_sport_co_9.background_check_status_73)
WHERE civicrm_contact.id = 1000


What is the best way to disable the jquery.crmEditable.js file in CiviCRM without modifying the core common.js file? We have a use case whereby certain users should not be able to edit certain rows of custom data.

CSS selectors can hide the "Edit" links for these rows, but the inline editing (i.e. clicking on the value in the table cell) is not easy to override.

We have commented out the function in civicrm/civicrm/js/common.js where the jquery.crmEditable.js file is loaded, however this introduces limitations to many of the administrator functions and is not ideal.

Is there a better way to disable the jquery.crmEditable.js functionality without modifying core code, e.g. with a custom template?

You can setup ACL to restrict custom group edit to certain group contacts. This will stop them to update the custom field data and only view it.


Where does the PID value come from in the event self-cancellation link? In event registration confirmation emails, there is a link to manage (cancel/transfer) your own registration, if that box is ticked in the event setup. This is great! I want to add this to the reminder emails as well, but I can't work out what the 'PID' refers to in the link:

https://example.org/civicrm/?page=CiviCRM&q=civicrm/event/selfsvcupdate&reset=1&pid=[number]&cs=[string]

...where [number] is a number and [string] is a long string.

So cs is obviously the user's checksum, but what is pid in this context? It's not the event ID. I'm hoping I can grab this from a smarty tag somehow.

I'm on WordPress 4.9.8 and CiviCRM 5.4

I believe PID is the participant ID registered of an event. This is the primary id from civicrm_participant table.

HTH

Pradeep


Content aggregator for delivering Drupal 8 and CiviMail There were at least two solutions for this in D7, Eileen's CiviToken extension and Pogstone's Content Token extension

Wondering if anyone has used or knows of something that will provide this for D8.

Goal is to be able to aggregate content (eg based on publish date and a tag) such that Mailings can be sent out with simply a token which then delivers the content in to the mailer.

You may want to have a look at this extenion: https://github.com/bjendres/de.systopia.newsstore

It can collect/aggregate content in CiviCRM, e.g. from a RSS feed. Those items can then be sent out with CiviMail. With some additional extensions you could even sent them out automatically.

I do not remember all the details and documentation is a bit sparse but probably artfulrobot could help you as he developed most of it.


Adding columns to Accounting batch (iif & csv) If you have code or an extension that can add columns to the accounting batch export file, please share.

Specifically, we want to add "campaign" and "external id" to every row.

Preferably, we'd like it to update the iif (quickbooks file)

thank you

I am not if anyone has done this before but you can use combination of hook_civicrm_batchItems and hook_civicrm_batchQuery to add columns in csv files. I don't think there is any easy solution to add column in iif export file.

HTH

Pradeep


Inbound SMS from Twilio not showing up in CiviCRM (getting 404 error on HTTP POST) I'm really enjoying CiviCRM (recently upgraded to 4.7.13) and was excited about its SMS capabilities. So far, I have been successful in using CiviSMS with Twilio to schedule/send bulk messages.

But, I cannot yet receive inbound SMS responses in CiviCRM with Twilio. For example, if someone responds to one of our messages, it does not show up as an Activity in CiviCRM.

I followed the instructions for setting up Twilio for inbound SMS, but no inbound SMS arrived in CiviCRM.

Here's my configuration of Twilio in CiviCRM:

In my Twilio logs, you can see my configuration as well as the report on how the HTTP POST is running into a 404 error. Here is the detailed error log from Twilio

I've done a number of things to try and fix this--I disabled security plugins, played around with case of the API info entered in CiviCRM.. and now I've started to look at the htaccess files and permissions. But this kind of tinkering is out of my league, so am stopping before I do any damage.

So, I could use any advice y'all could provide.

Thanks!
Chris

The callback path shown in your Twilio debug is

/civicrm/sms/callback?provider=org.civicrm.sms.twilio

For WordPress, this needs to be

/?page=CiviCRM&q=civicrm%2Fsms%2Fcallback&provider=org.civicrm.sms.twilio

The former is suitable for Drupal CMS, but won't work in WordPress CMS. WordPress paths for CiviCRM callbacks are generally /?page=CiviCRM&q=civicrm/callback/here

Per wiki: Setting up a SMS Provider for CiviSMS, the callback URL to use for Twilio/WordPress seems to be:

https://www.example.org/?page=CiviCRM&q=civicrm%2Fsms%2Fcallback&provider=org.civicrm.sms.twilio

Try adjusting the settings for callback over on Twilio and see if that fixes it?


Transfer/cancel booking gives error message We use the CiviCRM event-booking feature on our website. The self-service cancel/transfer option isn't enabled, so attendees who want to cancel their booking for an event will email or call us and we cancel their place manually by logging in as administrators. I haven't had to do this for a while, and it's not now working.
[![Find Participants screen for an event][1]][1]
[1]: https://i.stack.imgur.com/rPD6B.png
I tried to do this by logging in to our Wordpress site and going to: CiviCRM > Events > Manage Events > Find Participants > More > Transfer or Cancel, as hopefully shown in the image above.
The error I get is "Sorry. This event registration can not be transferred or cancelled. Contact the event organizer if you have questions."

When logged in as an admin, should this option work, regardless of whether self-service is enabled?
Thanks very much for any suggestions.

This is a new addition in core via https://github.com/civicrm/civicrm-core/pull/18067. You MUST have the below setting enabled in event -> online registration tab to transfer or cancel participants belonging to that event.


Does CiviCRM OG Sync support PHP 7 +? After updating PHP to 7.1 we are now unable to save new organic groups and receive a Civi error. No new group is created in CiviCRM.

backTrace
#0 /sites/all/modules/civicrm/CRM/Core/Error.php(377): CRM_Core_Error::backtrace()
#1 /sites/all/modules/civicrm/CRM/Bridge/OG/Utils.php(145): CRM_Core_Error::fatal()
#2 /sites/all/modules/civicrm/CRM/Bridge/OG/Drupal.php(228): CRM_Bridge_OG_Utils::groupID("OG Sync Group :12822:", NULL, TRUE)
#3 /sites/all/modules/civicrm/drupal/modules/civicrm_og_sync/civicrm_og_sync.module(241): CRM_Bridge_OG_Drupal::og((Array:4), "add")
#4 /sites/all/modules/civicrm/drupal/modules/civicrm_og_sync/civicrm_og_sync.module(68): _civicrm_og_sync_node_action(Object(stdClass))
#5 /includes/module.inc(965): civicrm_og_sync_node_update(Object(stdClass))
#6 /modules/node/node.module(1180): module_invoke_all("node_update", Object(stdClass))
#7 /modules/node/node.pages.inc(459): node_save(Object(stdClass))
#8 /includes/form.inc(1524): node_form_submit((Array:65), (Array:23))
#9 /includes/form.inc(906): form_execute_handlers("submit", (Array:65), (Array:23))
#10 /includes/form.inc(386): drupal_process_form("course_node_form", (Array:65), (Array:23))
#11 /includes/form.inc(131): drupal_build_form("course_node_form", (Array:23))
#12 /modules/node/node.pages.inc(14): drupal_get_formcourse_node_form", Object(stdClass))
#13 /includes/menu.inc(527): node_page_edit(Object(stdClass))
#14 /index.php(21): menu_execute_active_handler()

We solved our issue - it appears to be related to a separate bug. The OG name we created had some formatting that either OG or the extension (or Civi) did not like

"Course Name 19-20: More things about the course: Subtext"

We changed it to "Course Name 19-20" and then it saved the groups, etc. and worked properly in PHP 7.1


Membership PayPal Renewal Redirect Too Many Times CiviCRM 4.7.15 WordPress

Since January clients have been getting:

  The website.org page isn't working  website.org redirected you too many
  times

Seems it only happens to PayPal customers renewing their membership. Those signing up for conferences do not encounter this problem. The error appears instead of the confirmation page.

Any suggestions would be helpful.

It sounds like you've got a misconfiguration in your web server (Apache/nginx/etc.) configuration in your "rewrite rules".  You'll need to involve your web server administrator.

The easiest way to spot this is:

Go to the affected page.
Press "F12" to bring up Developer tools.
Select the "Network" tab.
Submit the form that causes the problem.

At this point, your Network tab should fill up with URLs it's trying to access.  My guess is it looks something like:

http://mysite.org/something/contribute
http://mysite.org/something/something/contribute
http://mysite.org/something/something/something/contribute
http://mysite.org/something/something/something/something/contribute

etc.

Compare that to your rewrite rules (if using Apache, be sure to check .htaccess files), looking for the "something" in your configuration.  That's the rule that's causing the issue.


View records by date added - not activity date/date received Adding a bunch of contribution records with a variety of dates manually - I would like to see all the records I added today - what would be an easy way to do that? Last modified would be fine too.

Since i found the answer - I might as well answer it.

Turn on Detailed Logging at Adminisiter - System Settings - Misc

When thats done - go to reports, contact logging report (now available when logging is turned on) and view results - you can filter for contributions, who entered the contibution (altered by), and other options. Customize to your liking and save as a copy so you can easily access the customized report.

After time - this report can get pretty resource heavy - but it may be worth it to you - like it is for me.  Note: this will not work for past activities - only activities since detailed logging was turned on.


Can CiviCRM do mass/bulk targeted e-mail "blasts" and "petitions" like Salsa, NationBuilder and other for-profit platforms? Can CiviCRM and CiviMail replace what an organization is doing now with Salsa, NationBuilder  or other for-profit platforms - like send targeted e-mail "blasts" to elected officials, and host "petitions"?

So for example, if an organization's goal is to generate 50 e-mails from CiviCRM contacts in each legislative district to each member of a legislature, with the message "please vote for Bill 1 and support public financing of election campaigns", can CiviCRM do that?

Or, if an organization wants to ask CiviCRM contacts in each district to sign an open petition to each legislator, can CiviCRM do that?

I asked a similar question at How does using CiviCRM compare to using NationBuilder? but I think an update is worthwhile.

It may help if you clarify the criteria around 'email blast to officials' but as I interpret it both 'send an email to an official' and 'sign up to a petition' can both be handled nicely using drupal webform and views.

Send an email to an official: will depend how automatically you want the target to be identified, but you could set up a View search, enter your postcode, get back a link to a webform that prefills cid2 to be the email for the designated official, and submission of the form triggers the email with or without the personal message.

Sign up to a petition: set up webform with a views block that will show eg 'number of petition signatures' and/or 'latest people to sign up' with a checkbox on the form that would allow users to indicate if they are happy for their name to show on the public roll.


Database Insertion and Deletion I am looking for a best practice approach. I am working on a module extension, which involves creation, retrieval and deletion of an entity(object).

I have created the DAO files for them, I am looking to the write place to write insertion and selection queries. Currently I am confused about writing them in a BAO file or the API functions.

Is writing this code directly in API functions a bad approach, and having a BAO is a necessity. Also, if we create a BAO is there a guide I should follow about what to do and what not to do.

The BAO is not required, but it is what we always used to do. So the standard approach is: the API uses the BAO/DAO functions to insert and select. You can find a pretty simple example here: https://github.com/CiviCooP/no.maf.oppgavexml/tree/master/CRM/Oppgavexml


How to get new or updated CiviCRM entities (Memberships) indexed by Drupal Search API? Based of the terrific guidance provided in this blog post we have built a faceted directory of our business members using CiviCRM Entity, Search API, and Facet API.

To accomplish this, we have created an index of the CiviCRM Membership entity which we connect to the member's contact info and some custom fields through Search API's "Related Fields" functionality. This approach is described in the comments to the aforementioned blog post.

The directory is functioning, but we have experienced a couple of issues

New CiviCRM Memberships aren't getting indexed; and
Updated CiviCRM Memberships aren't getting marked as requiring re-indexing.

If we manually re-index the entire index, the changes to the updated CiviCRM Memberships get picked up, but the new CiviCRM Memberships still don't get indexed. In order to get the new CiviCRM Memberships indexed, we have to disable the index and then re-enable it. In the short term, these workarounds work, but would like to figure out what the issue is.

Also, in attempting to set up Rules to re-index items when "related fields" are updated (as described in the Search API documentation), we've noticed that we're not able to access the CiviCRM Membership entity to apply Search API's re-indexing action.

So, would be grateful to hear if anyone has run into similar problems (and hopefully any solutions), or if anyone has thoughts on where to start looking for a solution.

The module Civicrm Entity Search API which comes with CiviCRM Entity now supports this, as of 2.0-beta10. Russ took my comment and contributed back to the project. Thanks Russ!


Schedule Jobs Page on Multisite I have a WordPress multisite with CiviCRM 4.7.24 also in multisite mode. The main site Scheduled Jobs page (civicrm/admin/job&reset=1) looks and works fine, but that page on other sites looks like this:

If I click "Add New Scheduled Job" I get this:

which is not what I want. :(

Can anyone clarify why the additional sites don't have the regular Scheduled Jobs interface?

This is actually the correct interface.  I believe you're trying to compare the "List Scheduled Jobs" interface with the "Edit a single Scheduled Job" interface.  If you press "Edit" next to any scheduled job on your "main" site, it should look more or less identical to what you've posted above.

Crucially - when configuring Scheduled Jobs for multi-site, most jobs do NOT need to be run twice.  E.g. "Update Membership Status" works once across all contacts.  You DO need to replicate the "Send Mailings" scheduled job on each multi-site instance; you can copy the settings from the main site's "Send Mailings" interface.  I think you may need to change the name to something unique.

In my experience, the only site-specific scheduled jobs I create are "Send Mailings" and "Process Incoming Mail" - the latter because newly-created contacts won't be created as belonging to the correct "master group" for the domain otherwise.  IIRC even bounce processing is just done once for everyone.


image directory path seems to be ignored in CiviMail editor G'day,

Using CiviCRM 5.7.2 with Drupal 7.61, when editing a newsletter in CiviMail, the image browser always points me to

$drupaldir/sites/all/modules/civicrm/persist/contribute/images/

no matter what I configure as the directory path for "Image Directory" at

civicrm/admin/setting/path?reset=1

I've tried relative path ([cms.root]/sites/default/files/uploads), absolute path, and absolute path via settings override in civicrm.settings.php; all to no avail.

[added to clarify in response to @Chris Burgess' comment]:
The setting does stick, as in it shows up as entered in the form after a reload; and when I tried settings override via civicrm.settings.php, that setting showed up instead and made the form field uneditable. Still, whatever shows up there does not seem to have any impact on where the image browser takes me.

I double- and triple-checked permissions and they are fine; we're also using the same directory with ckEditor and IMCE in Drupal with no problems.

Not sure if I'm missing something, but isn't that the correct setting for what I want to do?
Either way, is there a way to point the image browser to our general image path in the drupal files directory?

Many thanks in advance for any advice!

Update:
The image browser window shows the following URL:

<mywebsite>/sites/all/modules/civicrm/packages/kcfinder/browse.php?cms=civicrm&type=images&CKEditor=crmUild_1&CKEditorFuncNum=0&langCode=en-au

so I poked around a bit in the kcfinder directory. There's a config.php, but it appears that the settings in there are also ignored.

So I took more desperate measures:

cd $drupaldir/sites/all/modules/civicrm/persist/contribute
mv images images.HOLD; ln -s ../../../../../default/files/uploads images

Now it shows me the correct directory (though with the wrong name), but whatever I try to do, I get a "warning" dialog stating "unknown error".
Well, was worth a try.

Anything else I could try to get this to work?

Ok, I've worked it out.
And it turns out that there is a location where CKEditor settings can be configured, namely at civicrm/admin/ckeditor?preset=default.
(Through the GUI it's at "Administer" -> "System Settings" -> "Display Preferences", then click the "Configure CKEditor" button towards the bottom.)

There are a few hitches on the way and perhaps this comes in useful for someone else down the track:

the image directory must be called images for the CiviMail browser to work with it;
the image upload directory setting in CiviCRM needs to point to the parent directory of that images dir; in my case it is [cms.root]/sites/default/files/;
the setting to override in the CKEditor settings is ImageUploadURL, which also needs to point at the parent dir of images. A local path works - I used /sites/default/files.
turns out that that alone didn't do the trick (I could browse the correct directory, but the browser would then return the wrong URL string); I also needed to override the setting in civicrm.settings.php like so (look for $civicrm_setting to find the examples):

$civicrm_setting['URL Preferences']['imageUploadURL'] = '/sites/default/files';

And that's it!

Now for this naming requirement.

In my case, we have been keeping all our images organised in a directory called uploads, and the image browser clearly had a problem with symbolic links. So what I did is

mv uploads images
ln -s images uploads

Aka rename uploads to images, then create a symbolic link named uploads. Then reconfigure IMCE in Drupal to now use the images folder. (It seemed to keep working just fine with the symbolic link, but we want to keep things clean.)

NB: In my case, the site is hosted on a cPanel with no ssh access, so I did the renaming through the GUI and then created a cronjob to run the second command (here at 19:45h, and don't forget to delete it again) like so:

45  19  *   *   *   ln -s images /path/to/drupal/sites/default/files/uploads

As a result, all images now live in $drupaldir/sites/default/files/images and both, IMCE in Drupal, and kceditor/ckeditor/whateveritis in CiviMail, now work with it, referencing the same files. Yay!

Meanwhile, Apache seems happy to resolve across the symlink, hence all existing URLs keep working, though it'd be nice to clean them up over time.

(Not a straight-forward search/replace through the database, unfortunately, as the two strings have different lengths. If they were the same length, that'd be simple.)


Log / report for emails sent using Events > Find Participants? I sent a dozen or so emails using Events > Find Participants > Email - Send now. At least some of them arrived successfully (recipients are responding), but I can't find a log or report in CiviCRM that can confirm that they were all sent. Is there one?

This new Transaction Mail extension that Fuzion published won't help your specific problem but would help in the future in as much as it would report back on Bounces for those.


Civicrm registration form sending to Paypal but registration info not being sent back to Civicrm Using civicrm 4.7.3. We have an event registration form through our civicrm installation on Wordpress 4.4.2. Registrants using this form are sent to PayPal Standard and the payment is received by PayPal but the registrant's information is not being sent back to the Civicrm database. Absolutely no information is sent back from PayPal. This worked using the PayPal sandbox but not the live site. My payment processor is set to PayPal with the correct merchant account email and the url set to https://www.paypal.com (Test payments now set to same since site is live). IPN is enabled in PayPal. My civicrm_system_log table shows the sandbox notices but nothing since I took the site live.

Help! Does anyone have an idea why this would be the case?
Thank you.

They are working on it.  I have the same issue.  Waiting patiently for the fix: https://issues.civicrm.org/jira/browse/CRM-18107?filter=-4&jql=text%20~%20%22paypal%22%20ORDER%20BY%20createdDate%20DESC


How do I use CRM_Utils_Request::retrieve when the POSTed field is an array? In the snippet below, I build api calls by looping through each student, and then each event within that. However, the field data is coming straight from the request with no server-side validation. Is it possible to use the Request class for array variables? If so, how would I implement it in my code below? What's the proper syntax?

  foreach ($_POST['student_details'] AS $student_record){

    $student_details = array(
          'sequential'  => 1,
          'debug' => 1,
          'contact_type' => 'Individual',
          'contact_sub_type' => 'Student',
          'first_name'  =>  $student_record['student_first_name'],
          'last_name'   => $student_record['student_last_name'],
          'gender_id'   =>  $student_record['gender_id'],
          'birth_date'  => $student_record['birth_date'],
          'custom_8'   => $student_record['shirt_size'],
          'custom_9'   => $student_record['allergies'],
          'api.Relationship.create' => array (
                  'sequential' => 1,
                  'contact_id_a' => '$value.id',
                  'contact_id_b' => $parent_id,
                  'relationship_type_id' => 1,
                  'is_permission_a_b' => 0,
                  'is_permission_b_a' => 1,
                ),
          );

    $student_event_list = [];

    foreach($student_record['event_id'] AS $student_event) {
      $student_event_list[] = array(
                    'sequential' => 1,
                    'event_id' => $student_event,
                    'contact_id' => '$value.id',
                    'status_id' => "Pending from pay later",
                    'role_id' => "Attendee",
                    'register_date' => date("m/d/Y g:i a"),
                    'is_pay_later' => 1,
                    'fee_level' => "Single",
                    );
    }

    $student_details['api.Participant.create'] = $student_event_list;

    try {
        $student_api_result = civicrm_api3('Contact', 'create', $student_details);
    }
    catch (CiviCRM_API3_Exception $e) {
          $errorMessage = $e->getMessage();
          $errorCode = $e->getErrorCode();
          $errorData = $e->getExtraParams();
      return $errorMessage . ' (Code ' . $errorCode . ')';
        }

  }

I suspect u will need to use

CRM_Utils_Type::validate (which is what CRM_Utils_Request::retrieve actually calls for validation) directly

lobo


How do I examine the symfony event handlers that are active? The API kernel uses a symfony event system at it's heart.

How on earth do I find out where all those events are going?

This maybe not best practice but something like this will list all the events and their handlers:

 $kernel = \Civi::service('civi_api_kernel');
 $this->dispatcher = $kernel->getDispatcher();
 $listeners = $this->dispatcher->getListeners();
 foreach ($listeners as $event => $event_listeners) {
   echo "\n\n# $event\n";
   foreach ($event_listeners as $n => $listener) {
     echo "\n## Listener $n";
     $reflection = new \ReflectionClass($listener[0]);
     echo $reflection->getName() . "::" . ($listener[1]);
     echo "\nsource: " . $reflection->getFileName()
       . " lines: " . $reflection->getStartLine()
       . "-" . $reflection->getEndLine();
     // echo "\n Methods:" . json_encode(get_class_methods($listener[0]),JSON_PRETTY_PRINT);
   }
 }


How should a CiviCRM site that uses remote profiles be protected? When remote profiles are enabled for a CiviCRM site, it says the following:

Warning: External profile support (aka "HTML Snippet" support) is enabled in system settings. This setting may be prone to abuse. If you must retain it, consider HTTP throttling or other protections.

A page on civicrm.org says the following about "HTML Snippets" (remote profiles):

if your system has used the "HTML Snippet" technique, then you should evaluate measures such as:

Configure HTTP firewalling to prevent POSTs to CiviCRM from unrecognized referrers
Replace the "HTML Snippet" with a custom integration that uses a more secure data-flow based on APIv3 and REST.

Using the API for some of our related sites isn't a great option considering how easy it is to add a form to other domains.
What is HTTP firewalling? Does that require scanning referrers of POST requests, and ensuring that the originate from the CiviCRM instance or trusted sites? Is it possible to do this with a CiviCRM extension? Does such an extension already exist?
Thanks for your help. : )

There are a couple of other methods that would be worth checking

RemoteForms
CiviMRF


CiviRules prevents adding new contact I am having problems with CiviRules preventing a contact being added to a group.

I have a contact form where people request information, and the person is added to group "web contacts". This works nicely and the request is added as a note.

I then add a CiviRule that basically says
When a contact is added to a group and the group is "web contacts" then add an activity to a contact [Me] to mail the contact of the fact.

This totally prevents people being added to the group "web contacts" at all.

  Trigger: Contact is added to Group

  Linked Condition: Group is Webbkontakter

  Linked Action: Add activity to contact    Type: Email Status: Scheduled
  Assignee(s): Martin Skjöldebrand

"web contacts" == Webbkontakter above.

Am I having a brainfart or something? Shouldn't this work?

Martin, for the send email action you need the Email API extension: https://civicrm.org/extensions/e-mail-api.
Once you install that, the send email action should be available in CiviRules.

I have just added a rule to my local installation as shown in the screen print, and it works in my installation (CiviCRM 4.7.25, CiviRules 1.13).

I have created a group Web Contacts, and when I add a contact to that group the email is send out.

So it is kind of hard to see what is wrong on your installation? Perhaps a first step is to configure the rule as I have?


Change address location type for all contacts? I have a bunch of Organization contacts with "Work" addresses. I would like to change all of these to "Main" addresses. What is the most straightforward way to quickly get this done?

This is quite important, because when you have contacts with emails in different location types, you can't dedupe on import, see Import from CSV and dedupe using Email (match to contact) with PRIMARY email?

If I am wrong about this, please correct me!

I'd use SQL. Take a backup first, of course, and test on a non-production server.  Then run:

UPDATE civicrm_address ca JOIN civicrm_contact cc ON ca.contact_id = cc.id
SET location_type_id = 3
WHERE location_type_id = 2 AND cc.contact_type = 'Organization';


Transfer Database to new location raised MySQL Error function already exists I follow the instructions here https://wiki.civicrm.org/confluence/display/CRMDOC/Moving+the+database+using+phpMyAdmin

I want to import the so called Old_without_five_tables.sql with phpmyadmin in the civicrm database but I get the following error:

SQL query:

- Datenbank: `civicrm`
--

DELIMITER $$
--
-- Funktionen
--
CREATE DEFINER=`civicrm`@`localhost`
FUNCTION `civicrm_strip_non_numeric`(input VARCHAR(255) CHARACTER SET utf8) RETURNS varchar(255) CHARSET utf8
   NO SQL
   DETERMINISTIC
BEGIN
  DECLARE output   VARCHAR(255) CHARACTER SET utf8 DEFAULT '';
  DECLARE iterator INT          DEFAULT 1;
  WHILE iterator < (LENGTH(input) + 1) DO
    IF SUBSTRING(input, iterator, 1) IN ('0', '1', '2', '3', '4', '5', '6', '7', '8', '9') THEN
      SET output = CONCAT(output, SUBSTRING(input, iterator, 1));
    END IF;
    SET iterator = iterator + 1;
  END WHILE;
  RETURN output;
END$$

MySQL said:

  #1304 - FUNCTION civicrm_strip_non_numeric already exists

I am using:
civicrm 4.7.3
drupal 7.26

thanks so far

The error suggests that you did run the import for the second time. The function cannot be created because it is already there. You can remove it with

DROP FUNCTION `civicrm_strip_non_numeric`

An alternative is to use the checkbox in phpmyadmin that is labeled add DROP TABLE / VIEW / PROCEDURE / FUNCTION

(To be honest: I am not a phpmyadmin user, I got this suggestion from What does the “Add DROP TABLE / VIEW / PROCEDURE / FUNCTION” checkbox do in phpmyadmin ).


CiviCRM 4.7.4 breaks Ajax image upload On Drupal 7.43 (fresh install) / CiviCRM 4.7.8 (same issue on 4.7.4)

After enabling the CiviCRM module the ajax upload of a custom image field added to drupal user accounts stopped working.

Additionally the ajax call fails also when trying to remove previously uploaded images.

The debug URL shows the generic error:
"An unrecoverable error occurred. The uploaded file likely exceeded the maximum file size (80 MB) that this server supports"

Is this a known bug? Any way to resolve it?

Any help will be greatly appreciated.
Thanks.

List of enabled Drupal modules:

CiviCRM  CiviCRM (civicrm)                      7.x-4.7.8
 CiviCRM  CiviCRM Theme (civicrmtheme)           7.x-4.7.8
 Core     Block (block)                          7.43
 Core     Color (color)                          7.43
 Core     Comment (comment)                      7.43
 Core     Contextual links (contextual)          7.43
 Core     Dashboard (dashboard)                  7.43
 Core     Database logging (dblog)               7.43
 Core     Field (field)                          7.43
 Core     Field SQL storage (field_sql_storage)  7.43
 Core     Field UI (field_ui)                    7.43
 Core     File (file)                            7.43
 Core     Filter (filter)                        7.43
 Core     Help (help)                            7.43
 Core     Image (image)                          7.43
 Core     List (list)                            7.43
 Core     Menu (menu)                            7.43
 Core     Node (node)                            7.43
 Core     Number (number)                        7.43
 Core     Options (options)                      7.43
 Core     Path (path)                            7.43
 Core     RDF (rdf)                              7.43
 Core     Search (search)                        7.43
 Core     Shortcut (shortcut)                    7.43
 Core     System (system)                        7.43
 Core     Taxonomy (taxonomy)                    7.43
 Core     Text (text)                            7.43
 Core     Toolbar (toolbar)                      7.43
 Core     Update manager (update)                7.43
 Core     User (user)                            7.43

It looks like this was a regression caused by https://issues.civicrm.org/jira/browse/CRM-16513. Further information on the ticket.


Which Backdrop themes allow viewing CiviCRM inline fields without scrolling? By default, CiviCRM on Drupal's "Bartik" theme and Backdrop's "Basis" and "Seven" themes cause CiviCRM inline fields to display with horizontal scroll bars, which hurts usability (see screenshot 1).

In Drupal, the civi_bartik theme fixes this (see screenshot 2).  Is there an equivalent theme for Backdrop CMS?

I haven't seen one. Usually in cases like this I just make changes to the theme myself to account for things like this. Themes often times only take Drupal, its core modules, and some of the major add-ons into consideration for its theme. So when you use something else, like CiviCRM, you have to make changes yourself for usability.


How do I use Views with CiviCRM? Can someone tell me what I need to use Views with CiviCRM?  Is it the regular Drupal Views module with another module that provides integration?

Also, how would I use Views to display a count of how many people are registered for each of my events?

It is the regular Drupal Views module, but if you have Drupal and CiviCRM in separate databases, you have to edit your settings file to let Views know where to find the CiviCRM data. (Coleman notes in addition: "if your drupal sql user and civicrm sql user are different then you need to grant SELECT privileges to the drupal one for the civi db.") You can find the information you need to add to settings.php at Administer > System Settings > CMS Database Integration.

The wiki page has a pretty good tutorial on how to get Views working.

Then you can use default Views functionality on CiviCRM data -- for example:

set up a View for CiviCRM Participants,
turn on Views aggregation,
add the Event Title field (Aggregation settings: Group together)
add the Participant ID field (Aggregation settings: Count)


Where are the 'Contributions - Receipt (on-line) templates stored? I want to customise on line receipts, but am struggling to make a start. I can see the on line receipt in the Message Templates - 'Contributions - Receipt (on-line)' but can't find where the other files associated with this template are located. The documentation doesn't seem to explain this at all.  I want to make the receipt look very different from the default.  Also if any one has some customised receipt templates they can share, that would be great too.  Thanks!

Do you mean the code that uses the template?  If so, look at CRM/Contribute/BAO/ContributionPage.php and look for 'contribution_online_receipt' which is the template name for 'Contributions - Receipt (on-line)'.
Unless you want to pass different data to the template, you should just need to edit the template at Administer > Communications > Message Templates > System Workflow Messages
If you change the templates you might find this extension useful when you need to reconcile future core changes with your changes: https://lab.civicrm.org/extensions/msgtplhelper
And if you're making your templates look better, try this: https://lab.civicrm.org/extensions/prettyworkflowmessages


Label Format does not fit in database - PHP 7.1 json_encode() and serialize_precision I am encountering this error when attempting to define a new label format, "Sorry an error occurred", "Label Format does not fit in database.".

This is on CiviCRM 5.8.1 on Joomla 3.9.1. I can't reproduce it on dmaster.

Administer > Communications > Label Formats
Click Add Label Format
button
I used the format settings below:

But if I entered at least some of the measurements as integer numbers only, I am able to save the new label format.

Looking at the civicrm_option_value table in the database, value looks like:

{"paper-size":"a4","orientation":"portrait","font-name":"helvetica","font-size":9,"font-style":"","NX":3,"NY":11,"metric":"in","lMargin":0.25,"tMargin":0.5500000000000000444089209850062616169452667236328125,"SpaceX":0.1000000000000000055511151231257827021181583404541015625,"SpaceY":0,"width":2.520000000000000017763568394002504646778106689453125,"height":0.95999999999999996447286321199499070644378662109375,"lPadding":1,"tPadding":1}

The very long floating-point numbers look like the cause of the problem. The db column is a varchar(512).

To work around this I had to finish entering the last two values directly in the database table after editing the long numbers back to 1 or 2 decimal places.

Has anybody encountered this before?

UPDATE:
This has arisen since PHP 7.1. See this StackExchange question: "According to documentation, PHP 7.1.x started to use serialize_precision instead of precision when encoding double values."

In CRM_Core_BAO_LabelFormat::saveLabelFormat() this line uses json_encode:

$this->value = json_encode($v);

$v is OK, it will contain something like:

array(16) {
  ["paper-size"]=>
  string(2) "a4"
  ["orientation"]=>
  string(8) "portrait"
  ["font-name"]=>
  string(9) "helvetica"
  ["font-size"]=>
  int(10)
  ["font-style"]=>
  string(0) ""
  ["NX"]=>
  int(3)
  ["NY"]=>
  int(11)
  ["metric"]=>
  string(2) "in"
  ["lMargin"]=>
  float(0.25)
  ["tMargin"]=>
  float(0.55)
  ["SpaceX"]=>
  float(0.1)
  ["SpaceY"]=>
  float(0)
  ["width"]=>
  float(2.52)
  ["height"]=>
  float(0.96)
  ["lPadding"]=>
  float(0.12)
  ["tPadding"]=>
  float(0.1)
}

It is only after the json_encode() that the extra-long floats are present:

string(546) "{"paper-size":"a4","orientation":"portrait","font-name":"helvetica","font-size":10,"font-style":"","NX":3,"NY":11,"metric":"in","lMargin":0.25,"tMargin":0.5500000000000000444089209850062616169452667236328125,"SpaceX":0.1000000000000000055511151231257827021181583404541015625,"SpaceY":0,"width":2.520000000000000017763568394002504646778106689453125,"height":0.95999999999999996447286321199499070644378662109375,"lPadding":0.11999999999999999555910790149937383830547332763671875,"tPadding":0.1000000000000000055511151231257827021181583404541015625}"

Inserting ini_set('serialize_precision', -1 ); into CRM_Core_BAO_LabelFormat::saveLabelFormat() before the json_encode() makes it work for me, as does adding it to php.ini but I'm not sure what the proper solution is.

Does this affect CiviCRM elsewhere? Would this be considered a CiviCRM issue? Or something that should at least be documented (the need to set it in php.ini)?

I confirm that this is a bug in civicrm. I was able to replicate on my local running PHP 7.1.

I've created a Gitlab issue at https://lab.civicrm.org/dev/core/issues/612


civix permission denied errors in /usr/local/bin when generating a skeltal extension I've been following the instructions to create a new extension and get the following errors when I run the civix generate:module command:

  civix generate:module org.civicrm.searchbuilderlocation

License set to AGPL-3.0 (authored by Adam Zilkie )
If this is in error, please correct info.xml and LICENSE.txt
Initalize module org.civicrm.searchbuilderlocation
PHP Warning:  mkdir(): Permission denied in phar:///usr/local/bin/civix/src/CRM/CivixBundle/Builder/Dirs.php on line 34

Warning: mkdir(): Permission denied in phar:///usr/local/bin/civix/src/CRM/CivixBundle/Builder/Dirs.php on line 34
PHP Warning:  mkdir(): Permission denied in phar:///usr/local/bin/civix/src/CRM/CivixBundle/Builder/Dirs.php on line 34

Warning: mkdir(): Permission denied in phar:///usr/local/bin/civix/src/CRM/CivixBundle/Builder/Dirs.php on line 34
PHP Warning:  mkdir(): Permission denied in phar:///usr/local/bin/civix/src/CRM/CivixBundle/Builder/Dirs.php on line 34

Warning: mkdir(): Permission denied in phar:///usr/local/bin/civix/src/CRM/CivixBundle/Builder/Dirs.php on line 34
PHP Warning:  mkdir(): Permission denied in phar:///usr/local/bin/civix/src/CRM/CivixBundle/Builder/Dirs.php on line 34

Warning: mkdir(): Permission denied in phar:///usr/local/bin/civix/src/CRM/CivixBundle/Builder/Dirs.php on line 34
Write org.civicrm.searchbuilderlocation/info.xml
PHP Warning:  file_put_contents(org.civicrm.searchbuilderlocation/info.xml): failed to open stream: No such file or directory in phar:///usr/local/bin/civix/src/CRM/CivixBundle/Builder/XML.php on line 71

Warning: file_put_contents(org.civicrm.searchbuilderlocation/info.xml): failed to open stream: No such file or directory in phar:///usr/local/bin/civix/src/CRM/CivixBundle/Builder/XML.php on line 71
Write org.civicrm.searchbuilderlocation/searchbuilderlocation.php
PHP Warning:  file_put_contents(org.civicrm.searchbuilderlocation/searchbuilderlocation.php): failed to open stream: No such file or directory in phar:///usr/local/bin/civix/src/CRM/CivixBundle/Builder/Template.php on line 48

Warning: file_put_contents(org.civicrm.searchbuilderlocation/searchbuilderlocation.php): failed to open stream: No such file or directory in phar:///usr/local/bin/civix/src/CRM/CivixBundle/Builder/Template.php on line 48
Write org.civicrm.searchbuilderlocation/searchbuilderlocation.civix.php
PHP Warning:  file_put_contents(org.civicrm.searchbuilderlocation/searchbuilderlocation.civix.php): failed to open stream: No such file or directory in phar:///usr/local/bin/civix/src/CRM/CivixBundle/Builder/Template.php on line 48

Warning: file_put_contents(org.civicrm.searchbuilderlocation/searchbuilderlocation.civix.php): failed to open stream: No such file or directory in phar:///usr/local/bin/civix/src/CRM/CivixBundle/Builder/Template.php on line 48
Write org.civicrm.searchbuilderlocation/LICENSE.txt
PHP Warning:  file_put_contents(org.civicrm.searchbuilderlocation/LICENSE.txt): failed to open stream: No such file or directory in phar:///usr/local/bin/civix/src/CRM/CivixBundle/Builder/License.php on line 51

Warning: file_put_contents(org.civicrm.searchbuilderlocation/LICENSE.txt): failed to open stream: No such file or directory in phar:///usr/local/bin/civix/src/CRM/CivixBundle/Builder/License.php on line 51

mkdir(): Permission denied in phar:///usr/local/bin/civix/src/CRM/CivixBundle/Builder/Dirs.php on line 34

It looks like it is trying to install files in /usr/local/bin/civix which is the binary location. Do I need to set a PATH variable to tell where to install files?

Thanks

My read on this error doesn't suggest it's trying to write to /usr/local/bin/civix - just that the files that are calling mkdir() and file_put_contents() are located there.

If you call civix to generate a module, it will create it in the current working directory.  Check the permissions of the current directory.  If that's not conclusive, you can update the question.


Display menu and pages of a newly created extension I am working a new extension that i created throough civix. i have added some pages and some forms, how do i display the menu on the home page of the extension and navigate to the different pages and forms. when i install my extension and run it, i get this message:  Thank you for creating with WordPress.

Version 4.2.2

Whenever you modify a menu xml file you must clear CiviCRM's menu cache.

Go to Administer > System Settings > Cleanup Caches & Update Paths and click the Cleanup Caches button.


How to put 'Other Amount' field in price set radio choices? We want our Civicontribute page to do this, but don't want to use the Simple Donate extension. Is there any way to natively support this in CiviCRM? FYI - the 'Other' field is hidden until you select the option.

Is this another case where Webform CiviCRM comes to the rescue? :)

Even better than what is pictured below would be an 'Other' field that when selected, let you type the amount directly in that box.

Drupal 7 / CiviCRM 4.7

You will need to create an extension that would use JS and CSS to alter the screen as per your requirement.


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

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

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

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

Thoughts / Suggestions

Thanks

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

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

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

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

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


Why does CiviDiscount remove the url parameters after a discount code is applied? A typical event URL looks like this:

https://dmaster.demo.civicrm.org/civicrm/event/register?reset=1&id=3

But when you apply a discount code, the page is refreshed and the url parameters are removed:

https://dmaster.demo.civicrm.org/civicrm/event/register

This can lead to unexpected behavior when your url contains e.g. lcMessages, to force civi in a specific language.
Does anyone know why CiviDiscount removes these query parameters?

Form submissions will always remove the parameters because they are now in $_POST and for example keeping "reset=1" would mean the form would reset and wouldn't get processed fully. So not just cividiscount. Some forms redirect to a different url and might add some parameters but that's specific to the form.
lcMessages is a bit special and yes maybe it needs some extra handling.


Embed video in Profile field for directory Working on a public directory. The listings include a link to a YouTube video. It is working fine with a custom field of the type link. We would like to embed the videos in the search results. I created a custom field for this. When I add the embed code in the back end I get.

  Network Error
  Unable to reach the server. Please refresh this page in your browser and try again.

If I use a text area field with rich text editor and paste the code using the source view the video shows and can be played when you switch out of source but it will not save.

Using WordPress 4.9 & CiviCRM 4.7.27

I followed the same steps on wpmaster and i was able to add embeded video. Here is what i did:

Added 2 custom field of type Link and Note(RichTextEditor).
Added above 2 fields in a Profile search.
Updated custom field for individual

Added video link to link type custom field.
Added embed video code to Note type custom field.

On Profile search mode i did a search on contact #3

Can you check CiviCRM Log to see any error being recorded?


Can I send automatic, scheduled e-mails about expiring or just-expired memberships? Using CiviCRM 4.6.11, Drupal 7. We want to create a workflow for membership renewals, part of which will include automatic, scheduled e-mails to members with expiring or just-expired memberships. I can create a Smart Group based on membership expiration date, then create a (say) daily,weekly scheduled job to send an e-mail to Smart Group members.

Is this the best or only way?

I'm also checking out the CiviRules extension compatability with 4.6.11 and 4.7 then checking out using CiviRules to create such a workflow.

Multiple scheduled reminders are already possible out of the box using the "Scheduled Reminders" feature.
From the online book:

Creating and managing scheduled reminders
Scheduled reminders can be created from the administration page at Administer >
Communications > Schedule Reminders or during the creation of an
event.
From the administration page:

Click on Add Reminder.

Give your reminder a name that will help you identify it if you need to edit it in the future.

Select an entity for your scheduled reminder. This will bring up a further set of options relevant to that entity: activities have
activity types and statuses; membership gives membership types and
statuses, and so on. These secondary options are (usually)
multi-select fields, so you can choose to include more than one option
in each field.

Choose when to send the reminder. This can be a set date or an amount of time before or after the start or end of your chosen entity.

If you want to send more than one reminder, check the Repeat box. This gives you choices about the interval of repetition and when the
repetition should end.

Check Record activity for automated email if you want a record of the contacts who received this reminder.

Fill in From Name and/or From Email if you don't want this reminder to come from the default name and email address for your
site.

Refine or add to your recipient list. For more about your choices, see Limiting or adding to your recipient list in this chapter.

Choose to send your reminder as an email, an SMS or either depending on the preferred method(s) of communications for the
contact.

Compose your message. You can use Message Templates or write the message from scratch. Note that you cannot save your message as a new
template or modify an existing template from this screen, so if you
are writing a reminder for the first time and you think you will want
to re-use it, consider creating it as a Message Template instead.

Click Save when you are are done.

Reminders can be edited, disabled, or deleted from Administer >
Communications > Schedule Reminders.
IMPORTANT: Your system administrator will need to ensure that the
Send Scheduled Reminders scheduled job is enabled and runs at least once a day. Refer to the Scheduled Jobs chapter for configuration
details.


Finding contacts without relationships (API) How can I find contacts using the APIv4 that don't have any relationships of a specific type?
I want the first n contacts ordered by a date field meeting various conditions excluding those with a relationship of type X.
There are various ways it could be done with multiple calls or php looping but it would be nice to be able to do it in a single call.
In SQL one option using a subquery is:
SELECT * FROM Contacts
WHERE <various things>
AND contact_id NOT IN (SELECT contact_id_a FROM Relationships WHERE <conditions>)
ORDER BY <something>
LIMIT <n>

Can APIv4 produce something like that?

Yes you can! I fiddled with the APIv4 Explorer a bit and came up with this:

The trick is to join onto RelationshipCache with the relationship type(s) you are wanting to exclude (note that the double quotes around '"Parent of"' are needed because you are passing a string literal not the name of a field or other SQL expression). And then in the WHERE clause specify that you want the relationship_cache.id to be NULL.
The GroupBy is necessary because your join can potentially produce duplicate results if the contact has more than one relationship, although technically that's impossible with this query so, meh, you could try leaving it off.


Failed loading "ioncube_loader_lin_7.2.so" Cron Error after CiviCRM & WordPress Upgrades I very recently upgraded from CiviCRM 5.6.1 to 5.10.4 and WordPress 4.9.9 to 5.1.  Since then I get the following Cron error.

Failed loading /usr/local/ioncube/ioncube_loader_lin_7.2.so:  /usr/local/ioncube/ioncube_loader_lin_7.2.so: undefined symbol: zend_empty_string

In spite of the error, the CiviCRM scheduled jobs are executed successfully.  What is going on?  Should I be worried about this?  It's annoying to get emails every half-hour about this error.

** Added 3-11-19

Here's my cron code.  We use CiviHosting.

/usr/local/bin/php.cli /home/phoenix/www/www/wp-content/plugins/civicrm/civicrm/bin/cli.php -u username -p password -e Job -a execute

Were there any php changes as well? I've seen this when there's multiple versions of php installed and cron is using a different one than the web server. Give the full path to php in your cron task for the version you want it to use, and/or check the hosting control panel to make sure php is the one you want.


Is there a way to sell numbered tickets, e.g. for a raffle? We would like to sell numbered tickets for a raffle. According to the regulations we need to meet, we have to sell tickets that have unique numbers from a predetermined set (e.g. we have tickets numbered 1-500). How can we sell these tickets with email receipts that go to the buyer, including the ticket numbers?
Ideally, it would be possible to sell more than one ticket in a transaction and send a receipt to a buyer saying that they bought tickets x, y and z or failing that three emails listing the ticket numbers.
We've used a Drupal webform with the submission id as the ticket number in the past, but this only allows us to sell one ticket per transaction. It seems like we might be able use Civirules to send receipts with ticket numbers, but I'm not seeing a way to do that without custom code.

My solution to this isn't elegant, but it gets the job done. I simply added a little code with hook_webform_submission_insert that takes the original webform submission data and resubmits the essential details to a second webform as many times as the user bought tickets. That second webform serves as the official list of tickets sold and sends an email for each submission to the buyer (so the buyer gets three emails with different ticket numbers if they bought three tickets). This works fine as long as your ticket numbers are sequential and increasing. You can add more tickets in a higher range by adding higher tickets numbers by changing the next submission value for the webform, but you can't add tickets with a lower number.
function wildsight_raffle_tickets_webform_submission_insert($node, $submission) {
  if ($submission->nid == 210) {

  $node_out = node_load('211');
  global $user;

  $data = array(
    'first_name' => $submission->data[3][0],
    'last_name' => $submission->data[4][0],
    'email' => $submission->data[14][0],
  );

  module_load_include('inc', 'webform', 'webform.module');
  module_load_include('inc', 'webform', 'includes/webform.submissions');

  $number_of_tickets = $submission->data[24][0];

  // This methods will arrange $data in the right way
  $data_out = _webform_client_form_submit_flatten($node_out, $data);
  $data_out = webform_submission_data($node_out, $data_out);

  while ($number_of_tickets > 0) {

  $submission_out = (object) array(
    'nid' => '211',
    'uid' => $user->uid,
    'sid' => NULL,
    'submitted' => REQUEST_TIME,
    'completed' => REQUEST_TIME,
    'remote_addr' => ip_address(),
    'is_draft' => FALSE,
    'data' => $data_out,
  );

    webform_submission_insert($node_out, $submission_out);
    webform_submission_send_mail($node_out, $submission_out);
    $number_of_tickets -= 1;
  }
}
}


Fresh Installation, with all old data. Current online version CiviCRM 4.6.20. (WordPress) I am very glad with the nice CiviCRM! This is an perfect online CRM-system!

After a lot years now, i would like to upgrade to the current version. But i am very scared if it would work.. The Current version: CiviCRM 4.6.20. is upgraded from an earlier version, and that was also with a lot of errors..

Does someone know how to do this the best way. There is very much information in the system, if there is something going wrong, it is a very big problem...

What is the best way to install a new version, and get all the data from the old.

Thanks a lot.

With Kind Regards,
Mark

We have nursed about 50 sites through such an upgrade, many of which we inherited rather than built

Firstly read the docs: docs.civicrm.org/sysadmin/en/latest/upgrade

minimise risk by doing the upgrade on a copy of the site - that way you will be able to identify the problems and come back for more specific advice once you know what issues you have hit.
identify any customised files you have on your system and assume they will break - and consider if there are better ways to manage those customisations such as in Extensions
if you have budget consider getting a Partner who can step in to do this or at least be available on an 'as required basis' to help mentor, provide emergency support etc.


How to display CiviCRM status messages on CMS pages We have a web page which links users to CiviCRM profiles, to allow them to update their details. After saving, the profile redirects users to the original web page.

Since the original page is not in CiviCRM, the 'Thank you, your details have been updated' message does not appear on the page. However, the next time the user visits a CiviCRM page, that stored message does appear.

We are using Drupal, but I imagine the issue is the same for other CMSes.

TL;DR
How do we render the the status message on the non-Civi page?

One idea would be to create a custom block in a Drupal with some code along the lines of:

civicrm_initialize();
$session = CRM_Core_Session::singleton();
$messages = $session->getStatus(TRUE);
if (count($messages)){
  foreach ($messages as $message) {
    $ds = 'status';
    if ( !empty($message['type']) && $message['type'] == 'error') { $ds = 'error'; }
    drupal_set_message(t('<strong>@title</strong> @message', array('@title' => $message['title'], '@message' => $message['text'])), $ds);
  }
}

This accesses the session, gets the messages, and converts them to drupal_set_message messages. Is there a better way?

CRM_Utils_System::setUFMessage($message)

should do the trick. This is implemented for drupal only. I dont think we've figured out how to set messages in WP / Joomla as yet


Better Theme for CiviCRM I know this has been asked a few times, but I'm working with a group of folks in a new non-profit who tell me they want to move away from CiviCRM (recently installed) because it's not "beautiful" nor "intuitive", they claim people aren't using it. I think they really mean they want a bolder, more-updated style/theme than the standard Garland or Bartik I usually start with (because I care more about function than form). I think they are looking for something more in line with the Shoreditch extension effort (not sure if that is still in development), something bootstrap-feeling.

What would you all recommend to make Civi more pleasing to the eye, more readable? Is Shoreditch the way to go? If so, which base these should it be put on?

Or is there even a theme that doesn't use Shoreditch that I should be looking into?  I don't want to lose folks from the great functionality and customization ability of Civi just because of the theme (I happen to be a huge fan, using it for 9 years now, I think). I'm even open to moving to WordPress if that provides better themes for Civi.

Side note: unfortunately, I haven't been able to discuss more details to find out what exactly they mean by "intuitive design" and things like that, to understand what they feel is missing. But I'm thinking I can provide a couple of theming options early on and see if that alone will give them comfort while we talk specifics later on. Thanks for any suggestions!

Apart from Shoreditch there is also the Haystack theme which can be found here: https://github.com/mattwire/civicrm-haystacktheme. As @petednz suggested, try them both?


Upgrade to 4.6.16+ caused site to fail with error The upgrade from 4.6.10 to 4.6.16 ran and pronounced itself successful, but after re-enabling the modules The site reports an error which shows via Drush as:

WD menu: CRM_Core_Exception: Invalid Filter in CRM_Core_BAO_CustomGroup::validateSubTypeByEntity() (line [error]
647 of MYSITE/public_html/sites/all/modules/civicrm/CRM/Core/BAO/CustomGroup.php).

Running cron or clearing cache does nothing to help.

I did a compare of the backup files to those in the modules/civicrm direcotry and found one new file (Civi.php) and few other differences

diff /drupalbackups/civicrm4.6.pre16/civicrm-version.php /public_html/sites/all/modules/civicrm/civicrm-version.php
3c3

<   return array( 'version'  => '4.6.10',

  return array( 'version'  => '4.6.16',
  5c5

  <                 'revision' => '3a0725b2d0' );

            'revision' => 'dcf53fa10e' );

  Only in /public_html/sites/all/modules/civicrm: Civi.php
  diff /drupalbackups/civicrm4.6.pre16/composer.json /public_html/sites/all/modules/civicrm/composer.json
  4a5 .... QUITE A FEW CHANGES IN THIS FILE
  diff /drupalbackups/civicrm4.6.pre16/composer.lock /public_html/sites/all/modules/civicrm/composer.lock
  7c7,8  .... QUITE A FEW CHANGES IN THIS FILE

Only in /drupalbackups/civicrm4.6.pre16: .htaccess
(I placed that to control against timeouts)

This is a JIRA ticket here which references a patch that others have said has fixed things. I just tried cherrypicking the changes over and then run drush cc but still seeing same errors.

clearly relates in my case to a contact_sub_type that looks like it had its name changed (in contact_type I am seeing label = Funder. and name=Funder_ but in custom_group it is just referred to as Funder)

I did try changing the contact_type name from Funder_ to Funder but no joy

EDIT: actually i think renaming did succeed, as i then reversed the patch out, for the sake of something else to try, but same error on drush cc - and then on a whim visited civicrm/upgrade, and while that page told me "Your database has already been upgraded to CiviCRM 4.6.16.0" it did the job, and the resolved alerts flooded on to the phone etc.

Hope that gives you some clues.

Also, in case it has any relevance, the sub-type that caused the problem had "CiviEngage - Funder" in the description, so wondering if the misnamed type came as part of that? Maybe worth checking.


Household is missing from Dedupe rule page A week ago I was deleting some rules in the 'find and merge contacts' page, and it appears to have deleted the entire block of household rules, so that there is no way I can add new household rules, and adding new households does not work due to no rules existing. The individual and organisation blocks are both there, but not the household one. How can I get this back?

If you have access to your db you might need to check the table civicrm_dedupe_rule_group. If indeed you deleted the rows for Household, then you might be able to reinsert them there. I would suggest testing on a dev site if you have one.

These are the two rows I see

id  contact_type    threshold   used    name    title   is_reserved

3   Household   10  Supervised  HouseholdSupervised Name and Email  0

6   Household   10  Unsupervised    HouseholdUnsupervised   Name and Email  0


How to alert an admin that a credit card used for recurring payments is coming up to the Expiry Date I expect the answers to this will depend on the type of payment processor. In this case it is Authorize.net.

My research has found

this old forum thread
which led to this Extension
which may have been superceded by this fix to core
which seems to be part of a bigger task

all of which seem to be focussed on 'tokens' which means I don't think it helps this scenario.

One thought has been if we could at least copy the CC Expiry Date data in to another field that gets stored on the Contribution, though a much better solution would be to make that date the Scheduled Date of an Activity.

Any proven solutions out there?

One suggestions via 'chat' has been to see if auth.net are offering the 'account updater' service.

This seems the most recent discussion on this which implies there is no timeline for providing this.

In an earlier thread they talked about a new "ARBGetSubscriptionLIstRequest API method to get a list of subscriptions with cards expiring this month" but don't yet know if ARB is something that is available to civi users or not.

You could try using our Expired Credit Cards extension:
https://civicrm.org/extensions/expiredcreditcards
https://github.com/agileware/au.com.agileware.expiredcreditcards

This is a CiviCRM extension that automatically creates a new Activity,
Credit Card Expired based on the Credit Card Expiry Date for a stored
credit card token. The Activity Date for the Activity is set to the
1st day of the month after the Credit Card Expiry Date. The Credit
Card Expired, Activity can then be used to set up Scheduled Reminders
to notify the Contact that their credit card is about to expire or has
expired.


Cannot save civivolunteer project I have CiviVolunteer installed on WordPress and have been using it without any issues until this morning when each attempt to save a project led to the following error message:
'A technical problem has occurred
Your submission was not saved. Resubmitting the form is unlikely to resolve this problem. Please contact a system administrator.'

I had the same issue. After enabling debugging I saw that the civicrm_volunteer_project table was missing the title field.

There is an alter query in this file that did not run correctly for me as it failed on removing the foreign key.

extensions/org.civicrm.volunteer/sql/volunteer_upgrade_2.0.sql

Modified version (though you should run your own tests):

ALTER TABLEcivicrm_volunteer_project
ADDtitleVARCHAR(255) COLLATE utf8_unicode_ci NOT NULL
  COMMENT 'The title of the Volunteer Project'
  AFTERid,
ADDdescriptionTEXT COLLATE utf8_unicode_ci
  COMMENT 'Full description of the Volunteer Project. Text and HTML allowed. Displayed on sign-up screens.'
  AFTERtitle,
ADDloc_block_idINT(10) unsigned DEFAULT NULL
  COMMENT 'FK to Location Block ID'
  AFTERis_active,
ADD CONSTRAINTFK_civicrm_volunteer_project_loc_block_id
  FOREIGN KEY (loc_block_id)
  REFERENCEScivicrm_loc_block(id)
  ON DELETE SET NULL,
ADDcampaign_idINT(10) unsigned DEFAULT NULL
  COMMENT 'The campaign associated with this Volunteer Project.'
  AFTERloc_block_id,
ADD CONSTRAINTFK_civicrm_volunteer_project_campaign_id
  FOREIGN KEY (campaign_id)
  REFERENCEScivicrm_campaign(id)
  ON DELETE SET NULL,
MODIFYentity_tablevarchar(64) NULL,
MODIFYentity_idint(10) NULL;


The iATS payments "modify your payments" links fail in receipts to donors. Is there a workaround? Using CiviCRM 4.7.22 and iATS Payments 1.6.1. Auto receipts from Civi advise recurring donors that "You can cancel future contributions by visiting this web page" and "You can update recurring contribution amount or change the number of installments for this recurring contribution by visiting this web page" with links. The links fail to display in any browser we've tried. We get only code.

Help! Should we modify the default receipt to eliminate reference to the links or is something misconfigured somewhere?

I am on Civi 4.7.25 and iATS Payments 1.6.1
I just tested our receipt links and they work so it must be a settings issue.

I am just taking some guesses here at some possible settings

Administer > CiviContribute > iATS Payments Look for  Enable self updates to recurring ... Is this checked? If not check it and test.
I would check with iATS, Allen or Karin before changing this
Administer > CiviContribute > Payment Processors  Click edit to the left of your ACH or CC processor. Find the Site Url and Recurring Payments URL. What do you have there? I have https://www.iatspayments.com/NetGate/ProcessLink.asmx?WSDL There is another url https://www.iatspayments.com/NetGate/ProcessLinkv2.asmx?WSDL but again, I would check with iATS, Allen or Karin before changing this. You can change it and test it. If it works great, if not, just change it back.

But if both 1 & 2 match my settings, then we need to look for something else.


Relationship Type "name" as Drupal [Rules] Token in Civicrm Entity module Is it possible to retrieve Relationship Type Name in addition to an ID as Rules Token  in Drupal 7? It would add some value to "Create/Edit Relationship" Rules action: we could use it in emails, like "Hello mr. Dow, congrats, you're Organizaton Boss of The Company now" instead of "Mr. Dow, you are [Relationship ID] of The Company". I'd like to provide a patch for civicrm_entity but not sure where to start from. Any advise, please?

Cross-posted here: https://www.drupal.org/project/civicrm_entity/issues/2986112

It seems that Fetch CiviCRM entity by property action loads anything else but ID, so, in order to get a full Relationship Type, one may want to use  another action with almost the same name has been used ( Fetch entity by id) which loads Relationship Type by its ID from any Relationship.


CiviReport 'insufficient permission' error running financial report after update to 4.7.29 Only since upgrading CiviCRM to 4.7.29 from 4.7.11 (on Drupal), one of my users with 'editor' role is unable to run a financial report. The error she sees is:

"API permission check failed for FinancialAccount/get call;
insufficient permission: require administer CiviCRM"

I can't believe she should need full admin rights just to run this report. On 4.7.11 it wasn't necessary.

Is there a recommended way to investigate the error and see whether assigning a lesser permission to the 'editor' role would restore normal service? The upgrade process warned of a new permission 'manage tags' but nothing to do with Financial Accounts or CiviContribute.

This bug has been reported at Bookkeeping Transactions Report insufficient permissions and from CiviCRM 5.9 will be fixed. Here the affected code.


What is the mechanism for tailoring an Angular form? I want to modify the behaviour of an Angular form.

The answer to question 4700 tells me 'how' to do it (add some JavaScript), but I'm interested in 'where' to do it.

If it was a PHP form I could use a hook. Should I use an extension?

I usually do it in an extension. This allows me to enable/disable changes at will.

Create an extension with Civix (eg com.example.myextension).
Inside the extension folder create (eg [ext_dir]/com.example.myextension/js/) folder.
Create your JS file in there (eg [ext_dir]/com.example.myextension/js/mychanges.js)
In the main extension file (eg [ext_dir]/com.example.myextension/myextension.php) add this hook. I think its called on all pages and forms -- may have to use pageRun or alterContent.

function myextension_civicrm_alterTemplateFile($formName, &$form, $context, &$tplName) {

    $resource = CRM_Core_Resources::singleton();

    if ($formName=='theFormToEdit') {
        $resource->addScriptFile('com.example.myextension', 'js/mychanges.js');
    }
}

Install and enable your extension.


How do I get the External ID to appear in my contacts through Webform? On the CiviCRM Webform Integration, I setup the External ID to appear as a textfield. Once the form is submitted, the External ID is captured in Webform, but not in the CiviCRM contacts. Is this a bug or is my settings incorrect?

so your aim is to let the end user change the external id directly?

It has several constraints (eg. it has to be unique) that made me wonder if you wouldn't be safer to create a custom field to store whatever you intend to put into the external id.

External id is a fairly technical field that I would not expose directly to the user, both to avoid consistency problems and privacy leakage.

Eg. if you are using it to store the id from another system (say a membership id), it would be fairly easy to check if a specific member id is already registered in the database: try to create or update the webform with that id. If you have an error, it means the id is already registered in the database.

With a custom field, you wouldn't have that constraint of being unique.


One Database or two? Is there a reason to use two separate databases for CiviCRM and Drupal, or can I use the same for both? What would be affected if I used the same for both?

Should work fine. Best practice is definitely two databases.

IMHO it is easier to understand where data is stored and deal with update and rolling back changes when the databases are separate, but in some hosting environments you are forced to use a single database for both the Drupal and CiviCRM tables.

Using separate databases requires you to go to CiviCRM > Administer > System Settings > CMS Integration and copy the array generated to your Drupal settings.php file.


Early Bird Registration by Membership Type How can we give early access to registration forms to certain members, based on their membership status/role?

For instance,

Premium Members can access 2 weeks early and register.
Regular 1 weeks early.
Non-members on regular timing.

CiviCRM 4.7 / Drupal

There are two approaches you can take.

One is to use the Group-Based Pricing extension with price sets to enable members-only price sets.

You could also use a custom extension - about 10 lines of code should get you there. See Are private contribution pages a thing?


Best way to initiate a pay per month membership scheme I’d like to offer a membership scheme whereby you can pay a yearly payment or monthly recurring payments. Is it possible to do this via the membership options or will I have to set up a recurring contribution?

Try by doing this

Create a Membership type ABC with monthly rolling with auto renew required option ticked.

Create a price set with price field as select or radio with two options
2.a ABC membership type (monthly) - monthly amount - number of terms set to 1
2.b ABC membership type (yearly) - yearly amount - number of terms set to 12

Include the price set in membership signup form

Or

Create a Membership type ABC with monthly rolling with auto renew required option ticked.
Create a Membership type ABC-yearly with yearly rolling with auto renew required option ticked.
Include both the membership type in membership page

(Second method will work, but not sure about first method)


Thousands of new contact records created from CiviMail (Postfix/Gmail?) mis-configuration I have read documentation, but still am having a hard time understanding how I should change my configuration to fix this issue, esp. without causing other problems. Basically all seems to be working OK including CiviCRM tagging contact email addresses as non-deliverable (on hold). The issue I am having is CiviCRM is creating thousands of contacts each week with an email like civimail+b.4172.482888.045236909fb52f54@watershedmg.org. Each one is connected to a contact called (Mail Delivery System) through an activity. The activity type is "Inbound Email" and the subject is "Undelivered Mail Returned to Sender".

We are using Sendmail() to send bulk emails to our members and supporters, usually these number in the 1000s per week. We have a catchall@ email address that is seemingly working correctly to handle bounces. Here is our Mail Accounts setup.

Should I just delete the "default" email-to-activity entry since we don't use that feature? Is it needed for something other than "email-to-activity"? I seem to recall an email tech contractor telling us it was important for something that I don't recall.

All contact records that are created have civimail+b(...) and not catchall+b(...) even though the created contacts seems to be related to bounce emails coming to catchall@ email with "MAILER-DAEMON@watershedmg.org" as the sending email.

Any help is greatly appreciated.

As a side note is it bad to use Sendmail to send 1000s of emails vs mail()? That is how it has been set up for many years and I see now it says it's only kept around for older version of CiviCRM. It seems to be working OK.

(Drupal 7, CiviCRM 5.5.1, Debian 8, PHP 5.6, Postfix)

You say: Should I just delete the "default" email-to-activity entry

AFAIk there is no such default. Looking in dmaster.demo.civicrm.org i do not see one

https://dmaster.demo.civicrm.org/civicrm/admin/mailSettings?reset=1

I don't know that you need to delete it but changing the email address it uses should stop the problem.


Does the latest version of CiviCRM accommodate PayPal's changes to its dispute tracking? I received this message from PayPal and I am wondering if I need to do anything or if CiviCRM 4.6.4 on Drupal 7 already has it covered.

If not, what do I need to do?

Thanks.

  If you are currently using the Instant Payment Notification (IPN) process or the Case report in your current integration, we want to
  notify you of a change that may impact your business.

  To ensure you don’t experience a disruption of PayPal service, we
  encourage you to make any applicable changes by July 7, 2015.

  What is happening?

  We’re enhancing our dispute management system to ensure you receive
  more detailed and timely information.

  The first phase of this enhancement will encompass chargebacks and ACH
  bank returns. As part of this enhancement, we’ll be updating the
  format of the Case ID which is the unique identifier we assign to a
  dispute case.

  Why is this happening?

  Enhancing our dispute management system will provide more detailed,
  accurate, and timely information regarding disputes.

  What do I need to do?

  If you are directly integrating data from the IPN process and/or the
  Case report into your systems, you will need to ensure that your
  configuration will accept the format change for the unique dispute
  identifier as outlined here.

  Data passed contains a case_id value. This value will now be formatted
  in two ways:

  Existing format: PP-XXX-XXX-XXX-XXX New format: PP-D-XXXX For the new
  format, XXXX is an integer. The “D” indicates the case is a dispute.

  Effective July 15, cases will be identified using either ID format
  until the transition to the new dispute management system is complete.
  This is expected to take several years.

  As a best practice, merchants are encouraged to integrate flexibly so
  that any future changes to the unique case identifier can be made
  without integration changes.

  When is this happening?

  We will begin generating cases using the new format after July 15. To
  avoid any disruption to the way you process IPNs or the Case report,
  please update your integration by this date.

  Thanks for your patience as we continue to improve our services.

  Your Merchant Services Support Team

I received the same message (I'm using PayPal Standard with CiviCRM on Drupal). I don't believe we need to do anything about it, because CiviCRM doesn't interact with PayPal's dispute process. My experience has always been that if a payment is reversed in PayPal, the reversal is not automatically reflected in CiviCRM -- instead, I have to manually edit the CiviCRM contribution record to note that a reversal took place.

As I mentioned, I'm on PayPal Standard. I don't know whether PayPal Pro would be different in this regard, but I doubt it.


Where to find the path and the name of the tpl file in source code in 4.7.16 I'm using CiviCRM 4.7.16 with Drupal 7.

In the previous versions, the invoice tpl file can be found by viewing the page source html in the browser. It's in a comment line and it is something like

<!-- xxx.tpl file invoked ... -->

But I couldn't find these comment lines when viewing source in CiviCRM 4.7.16.

How do I find the invoked template in 4.7?

Thanks.

In current 4.7 you need to enable debugging for the tpl to be shown in the source.  Go to Administer > System Settings > Debugging and Error Handling then select Enable Debugging and save.  Remember to disable it when done.


Error Message when saving Content I have recently upgraded Civi to 5.4.0

When I want to save a content (Page, Webform, ...), I get the following error message :

Fatal error: Call to undefined function rules_action_drupal_goto() in /home/.../www/www/sites/all/modules/civicrm_entity/civicrm_entity.module on line 4021

Before upgrading Civi, I have already been using Drupal 7.59 for some months without having this problem.

Any help would be very welcome.

This sounds something wrong with the Drupal Rules module. Did you try to upgrade the Drupal Rules module as well


How to expose participant information to the event's trainer? Setup

We have a multisite CiviCRM (Version 4.4.13) and the latest Drupal. CiviEvent is used to create events and manage participants. CiviCRM contacts and Drupal users are connected.

Each event has a custom contact reference field "Trainer". Admin staff will select the appropriate event's trainer (CiviCRM contact) in this field. Participants register via Drupal Webforms.

Aim

The aim is for every trainer to be able to see the names and certain registration information of his/her own training's participants (and only those). It should be accesible once the trainer logs in with his/her Drupal credentials.

Thoughts so far

One could probably use CiviCRM ACL feature. However, this would probably require to set up one ACL group per event - which is not feasible/comfortable as there are too many events.

We were considering a relationship created by the webform that grants the trainer permissions to view participants but wasn't able to come up with something viable either...

IMHO, most promising seems to be a Drupal View that shows the partcipants in question. However it would need some kind of filter or access restriction so that only the registration information of the trainer's participants is shown.

So far, I wasn't able to find a good solution. Maybe a contextual filter would work?

Question

Does anyone know, how to solve that in a Drupal View? Or of yourse any other approach which does not require a lot of manual work per event?

Any ideas or hints would be highly appreciated.

From my limited knowledge of the module, this sounds like the perfect use case for CiviCRM Entity.

You should be able to add an entity reference field to the Event entity (that CiviCRM Entity would create), the Participants entity (I think that CiviCRM Entity would create) and one to the Trainer Content Type (that you'd create) and link them together.

From there, you should be able to create whatever View you want with logged on user as the contextual filter.


Not inserting a ACL Role using ACL Role API I was trying to assigning a new Users to CiviCRM ACL role through ACL Role API, but it is not showing me in database.

  Input json

     $result = civicrm_api3('AclRole', 'create', [
  'debug' => 1,
  'sequential' => 1,
  'acl_role_id' => 14,
  'entity_table' => "civicrm_group",
  'entity_id' => 54,
  'is_active' => 1,

]);

  Output json

"values": [
    {
        "id": "14",
        "acl_role_id": "",
        "entity_table": "civicrm_group",
        "entity_id": "54",
        "is_active": "1"
    }
]

I already providing a "acl_role_id", but in the output json object, it is showing a blank

Make sure the value 14 for acl_role_id is correct.

ACL role is an option value pair and should to be set as one of the existing value available from civicrm/admin/options/acl_role?reset=1.

UPDATE - just tried on my local and looks like a bug to me. Can you raise this as a new ticket at https://lab.civicrm.org/dev/core/issues/new?


SSL introduces warnings related to contact image I recently introduced SSL across my entire Drupal-Civicrm site. Now when I visit the contact summary page, I'm confronted with warning errors (below) that are clearly related to SSL interfering with accessing the contact's image dimensions.

Note that the image is visible in the summary page but its aspect ratio is wrong (the image is squeezed), confirming that getting the image's dimensions failed (without SSL, the image aspect was correct).

I am using a self-signed certificate as I'm still in the development stage. I tried to disable certificate verification in php.ini (setting the parameters verify_peer=false, allow_self_signed=true, verify_peer_name=false) but it did not solve the issue.

  Warning: getimagesize(): SSL operation failed with code 1. OpenSSL
  Error messages: error:14090086:SSL
  routines:SSL3_GET_SERVER_CERTIFICATE:certificate verify failed
  in CRM_Contact_Page_View->preProcess() (line 164 of /var/www/prod/sites/all/modules/civicrm/CRM/Contact/Page/View.php).

  Warning: getimagesize(): Failed to enable crypto
  in CRM_Contact_Page_View->preProcess() (line 164 of /var/www/prod/sites/all/modules/civicrm/CRM/Contact/Page/View.php).

  Warning:
  getimagesize(http://abdong.duckdns.org/index.php?q=civicrm/contact/imagefile&photo=500x500bb_3_a5ece8ea35cdb1947316bd7c98d5daf9.jpg):
  failed to open stream: operation failed
  in CRM_Contact_Page_View->preProcess() (line 164 of /var/www/prod/sites/all/modules/civicrm/CRM/Contact/Page/View.php).

Check that you have set "Verify SSL" to "No" at civicrm/admin/setting/url
Note that CiviCRM is storing absolute URLs in DB civicrm_contact.image_URL - even once your SSL config is fine, you may see images not appear on SSL due to CRM-14207: Contact's image URL is full & absolute path


Relationship Permissions as ACLs don't work I am working with CiviCRM 4.6.11 integrated in Drupal 7.4.1
I installed "Relationship Permissions as ACLs" 1.2 (compatible 4.6):
https://civicrm.org/extensions/relationship-permissions-acls
It is also necessary: "CiviCRM Entity Settings":
https://civicrm.org/extensions/civicrm-entity-settings
but this extensions is compatible ultil CiviCrm version 4.5 .
Can you help ?
Thank'you

When the above extensions are enabled, on any Relationship Type you should now see a new field saying Always Permission A to B (and vv). And at civicrm/admin/setting/misc?reset=1 you should see an option for 'Allow second-degree relationship permissions'.

I have added above to the extension page and will ask it be added to the readme if that helps.


How to grant permissions (ACL) when working with nested groups? I pushed a topic here that has not yet been solved in the forum and that affects our organizations:

http://forum.civicrm.org/index.php?topic=29381

Managing ACLs is really heavy and is very inefficient to have to grant and maintain permissions one to one to a set of groups that in fact hang from a parent group.

Has anyone encountered the same trouble?

I've encountered the same problem - and solved it by implementing a multi-site configuration and installing the Multisite Permissioning extension.

This may not be appropriate for your setting, it may create more trouble than it solves, but in our case it was very helpful.


Membership Details Report doubt about Grouping In the Membership Detail Report there is the tab 'Grouping'. Is this tab really necessary?

Every membership has an unique id so it doesn't seems logic to group by this field.

I did some test in my civicrm and in dmaster and in both sites the results were the same whether or not the grouping field was selected.

So, it is useful? Or I'm mistaking something?

I think it would only make a difference if you have multi-value custom fields attached to your contact & included in the report


Can an extension remove its custom fields on uninstall? As the developer of an extension that creates its own custom fields, what can I do to cause those custom fields to be removed when the extension is uninstalled?

Your extension needs to include an Upgrader class containing an uninstall function. In there you can use the api to delete the custom fields and custom group. Generate the Upgrader class in civix using the command:

civix generate:upgrader

Read more documentation on this at https://docs.civicrm.org/dev/en/master/extensions/civix/#add-a-database-upgrader-installer-and-uninstaller


group role sync and membership role sync - does one take priority over the other? I'm looking at a scenario where adding a contact to a group gives them a new Drupal role, but I also want to remove that role if a membership (which is part of a separate workflow) expires. Would that work using the two sync modules, or would the group/role sync simply re-apply the role when the user next logs in?

One solution would be to rejig your roles so that the outcome you need can be delivered by letting Members have one Role and people in the Group have another Role. It seems like a 'cumulative' approach to permissions and roles could work for you.


Webform Integration Error: cannot redeclare _webform_components_form_rows() I have recently enabled Drupal CiviCRM Webform Integration and it's working, however, when I view the webform components (Webform > From components) for a form that I have enabled CiviCRM processing, I get the following error. I can view other webform settings. If nothing else, I'm just trying either eliminate other webform elements and change the section name from "contact 1".

  Fatal error: Cannot redeclare _webform_components_form_rows()
  (previously declared in
  /var/www/html/example/docroot/sites/all/modules/contrib/webform/includes/webform.components.inc:223)
  in
  /var/www/html/example/docroot/sites/all/modules/contrib/webform_civicrm/webform_civicrm_admin.inc
  on line 1506

I am using Drupal 7.50 with CiviCRM 4.7.15 and Webform 7.x-4.14, CiviCRM Webform 7.x-3.5

I didn't upgrade webform_civicrm, the Webform CiviCRM integration module to the latest and compatible version. Once I updated the module, the problem went away.

https://www.drupal.org/project/webform_civicrm


"Sold out" error message when registering event with PayPal payment (event is not full though) I'd be grateful for any pointers regarding an issue with event registration, using PayPal Pro, when paying with a PayPal account (paying with a credit card, also using PayPal Pro processor works just fine).

The user experience: fill out event registration info, click the PayPal button, log into PayPal and submit the payment, back on the confirmation page click on Continue.

The result: user gets the following error messages (which are incorrect as the event is not sold out):

  Unfortunately some of your options have now sold out for one or more
  participants. You have been returned to the start of the registration
  process and any sold out events have been removed from your
  selections. You will not be able to continue until you review your
  booking and select different events if you wish. Sold out: Please note
  that the options which are marked or selected are sold out for
  participant being viewed.

System:
Joomla 3.4.1
CiviCRM 4.6.2

Any ideas on what I could check on? Thanks a million, P

The error is because the max participant limit is reached for the price option.

You probably need to check the Max Participant limit in your Price set/field