Recaptcha: Update Language How do you update language for recaptcha.

I've tried with this options (like in the example) : lang : 'fr'

But it's not working.

Thanks.

The library in use in civicrm is not language aware. Here's a patch that is working for me on 5.27:
diff --git a/packages/recaptcha/recaptchalib.php b/packages/recaptcha/recaptchalib.php
index 78d2b14..c869a09 100644
--- a/packages/recaptcha/recaptchalib.php
+++ b/packages/recaptcha/recaptchalib.php
@@ -114,7 +114,8 @@ function recaptcha_get_html ($pubkey, $error = null, $use_ssl = false)
         } else {
                 $server = RECAPTCHA_API_SERVER;
         }
-
+        $locale = CRM_Core_I18n::getLocale();
+        $server = $server .'?hl='.$locale;
         $errorpart = "";
         if ($error) {
            $errorpart = "&amp;error=" . $error;


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

What I would like:

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

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

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

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

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

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


Participant to my events cannot download the calendar on their Outlook This is my trouble:

Participants to my event have completed the registration form, created with CiviCRM 4.4.7.

When they receive the confirmation email, they can also download clicking on Download iCalendar File. And it does not work. I tested it myself, trying to download it on Outlook and the link (this one http://events.esn-eu.org/civicrm/event/ical?reset=1&id=61) takes me to a page telling me the following message:

Access denied
 You are not authorized to access this page.

What can I do to solve the issue?
Thank you

You need to grant anonymous users the permission "view event info", could you check if it's done on your site?


How do you create a new custom table tied to case type? Drupal 7.39
CiviCRM 4.6.8
Webform Civi Integration version 7.x-4.11.

None of our case managers see any of the Civi back-end.  All of their interaction is through Drupal, Views and Webforms.  This enables us to set very specific permissions for what they can and can't see or do.

For the most part, it works great.  Thanks Coleman!

In the past, having user's select a case type to tie an activity to has resulted in bad data (choosing the wrong case type), we are trying to limit that by using webforms that add an activity to a specific case type.

The integration for CiviCase is not to the level of CiviEvent so it makes linking to specific webforms (that are tied to one case type) challenging on views that aren't of one case type.

The only way we've found to successfully link to the correct webform is to create views of one case type with a link to Add an Activity that opens the related webform.

We would like to tie urls to case types so that we could generate views for specific webforms in any view.

For example, we could create a view like this:

I think that if I could create urls associated with specific case types, I could expose those fields to Views and have views of different case types that render the correct url to the specific webform.

Essentially, my idea was to add a table like this:

I could join this table to the civicrm_case_type table in the views configuration and expose the appropriate fields.

Then in the view, I could rewrite that url to be node/1?[id] which would open the appropriate webfom with the appropriate client prefilled.

As you can see, I can add multiple urls to a case type.  So the links could be pretty flexible.

Am I nuts?
Is there an easier way to go about doing this that is already in place?

I found a work around for this issue.

For each case type description field, I entered the node id to the corresponding case activity Webform.  For example, for Case Type A there is a separate Add Activity Webform (node id 1).  So for the view I added the case type description field and rewrote it to Add New Activity and made it a link to http://example.com/node/[description]?cid2=[id1].


How will I maintain a hierarchical structure in civicrm? I want to maintain a following hierarchical structure for different user.How can I do that?
If any extension is available then let me know.

CiviCRM is pretty egalitarian - they are all just Individuals.

There are various ways you could model this which depends to some extent on what you want to do based on that data.

One option is Relationships - eg create a Manager/Managee relationship and create relationships for all the places where you have lines.  If you want to record a level in the hierarchy you could use a custom field.

If you want to use those relationships to control access (so that eg Line Manager1 can see only P1, P2, P3) then have a look at the Relationship Permissions ACL extension


"Send Test" buttons greyed out inactive When "SEND TEST" buttons are greyed out there is no notification as to what is missing from required fields to be NOT NULL. By default if "Opt-Out" token is not included in the message the "Opt-Out" response is left NULL but is still a required field that cannot be left empty. Choosing the only default brings all the buttons active. Please advise?

There shouldn't be any connection between the "Opt-Out"/"Unsubscribe" token and the field "Responses: Opt-Out Message". Both are required.
If the "Opt-Out" token (or "Unsubscribe" token) is missing, then you should get a very loud error message. (The token is generally provided as part of a header, footer, or message template, so that you don't have to put it in explicitly.)
The field "Responses: Opt-Out Message" should be filled in by default. If it's not, then perhaps someone removed the default. Try navigating to "Mailings => Headers, Footers, and Automated Messages". Edit one of the "OptOut" messages and set it as default.


Total amount not populating for online form I am building out my first front end form and the total amount field is not populating. We are running on Joomla 3.8.12 and CiviCRM 5.5.1.

http://dev.victoryliving.org/index.php/donate

Please help, thank you!

From what I can see, it looks like you're not using a price set - so it's actually a mystery why "Total Amount" appears in the first place.  You don't have anything to total!  I just confirmed on a test site that I don't normally see "Total Amount" on a contribution page that doesn't require it.

If you could edit your question to display a screenshot of the price configuration for this contribution page, perhaps someone will notice something amiss.


How do you save generated content not tokens in emails & print/merge? This seems to be standard that the literal token {contact.display_name} is saved not the generated result "John Doe".

To my mind this is useless - the data changes - so how can I view the actual letter emailed or printed?

And what is the point of saving the template if it only contains the tokens - you could up saving thousands of identical templates none of which contain any useful information.

Is there a way I can save the generated content inside civiCRM?

The feature seems to be available just it seems very few components use it. For example if you do a contribution search and then choose to send thank you letters from the actions dropdown, it DOES convert the tokens in the filed activity on the contact.

In the code if the caller of this function includes the $perContactHtml parameter, then the activities get filed with the tokens converted:
https://github.com/civicrm/civicrm-core/blob/5.18.4/CRM/Contact/Form/Task/PDFLetterCommon.php#L278

The contribution one does do that, e.g.
https://github.com/civicrm/civicrm-core/blob/5.18.4/CRM/Contribute/Form/Task/PDFLetterCommon.php#L127

and here is where it resolves the tokens:
https://github.com/civicrm/civicrm-core/blob/5.18.4/CRM/Contribute/Form/Task/PDFLetterCommon.php#L431

But it seems most of them don't and so it uses the default which is just the verbatim text.


Error (One of parameters is not of the type Integer) while clicking the 'mailing.viewUrl' in a sent mailing In sent Mailings, the 'mailing.viewUrl' is rendered into:
https://terranova.tamera.org/civicrm/mailing/view?reset=1&id=95c21fb7cc1b7aac

and clicking it gives me this error:

  $Fatal Error Details = Array ( [message] => One of parameters (value: e05fa931f15dedbb) is not of the type Integer [code] => )

With the following stack trace:

  $backTrace = #0 /home/tamera/www/www/sites/all/modules/civicrm/CRM/Core/Error.php(343): CRM_Core_Error::backtrace("backTrace", TRUE) #1 /home/tamera/www/www/sites/all/modules/civicrm/CRM/Utils/Type.php(535): CRM_Core_Error::fatal("One of parameters (value: e05fa931f15dedbb) is not of the type Integer") #2 /home/tamera/www/www/sites/all/modules/civicrm/CRM/Core/DAO.php(1519): CRM_Utils_Type::validate("e05fa931f15dedbb", "Integer") #3 /home/tamera/www/www/sites/all/modules/civicrm/CRM/Core/DAO.php(1397): CRM_Core_DAO::composeQuery("\nSELECT CF.id as cfID,\n CF.uri as uri,\n CF.mime_typ...", (Array:2), TRUE) #4 /home/tamera/www/www/sites/all/modules/civicrm/CRM/Core/BAO/File.php(332): CRM_Core_DAO::executeQuery("\nSELECT CF.id as cfID,\n CF.uri as uri,\n CF.mime_typ...", (Array:2)) #5 /home/tamera/www/www/sites/all/modules/civicrm/api/v3/Mailing.php(571): CRM_Core_BAO_File::getEntityFile("civicrm_mailing", "e05fa931f15dedbb") #6 /home/tamera/www/www/sites/all/modules/civicrm/Civi/API/Provider/MagicFunctionProvider.php(101): civicrm_api3_mailing_preview((Array:3)) #7 /home/tamera/www/www/sites/all/modules/civicrm/Civi/API/Kernel.php(168): Civi\API\Provider\MagicFunctionProvider->invoke((Array:9)) #8 /home/tamera/www/www/sites/all/modules/civicrm/Civi/API/Kernel.php(99): Civi\API\Kernel->runRequest((Array:9)) #9 /home/tamera/www/www/sites/all/modules/civicrm/api/api.php(43): Civi\API\Kernel->runSafe("Mailing", "preview", (Array:3)) #10 /home/tamera/www/www/sites/all/modules/civicrm/CRM/Mailing/Page/View.php(145): civicrm_api3("Mailing", "preview", (Array:3)) #11 /home/tamera/www/www/sites/all/modules/civicrm/CRM/Core/Invoke.php(311): CRM_Mailing_Page_View->run((Array:3), NULL) #12 /home/tamera/www/www/sites/all/modules/civicrm/CRM/Core/Invoke.php(85): CRM_Core_Invoke::runItem((Array:15)) #13 /home/tamera/www/www/sites/all/modules/civicrm/CRM/Core/Invoke.php(52): CRM_Core_Invoke::_invoke((Array:3)) #14 /home/tamera/www/www/sites/all/modules/civicrm/drupal/civicrm.module(444): CRM_Core_Invoke::invoke((Array:3)) #15 /home/tamera/www/www/includes/menu.inc(527): civicrm_invoke("mailing", "view") #16 /home/tamera/www/www/index.php(21): menu_execute_active_handler() #17 {main}

Looks to be this issue: https://lab.civicrm.org/dev/core/issues/1037

You could try applying the PR linked there - or wait since it has been merged so will be in a release soon.


Has anyone run into scheduled jobs drifting on Centos7? We're only seeing this for projects on one specific server (running Centos7; using chrony; PHP 5.6.21). We are NOT seeing this for projects on our other server (running Centos6; using ntpd); Working theory is that we should go to ntpd on Centos7. Has anyone else run into this?

The problem: a Scheduled Job configured to run daily - runs exactly every 25h:

2016-05-21 15:04:51
2016-05-20 14:04:17
2016-05-19 13:04:41

EDIT: system crons (Drupal and CiviCRM) run hourly - on 03 and 04, respectively - and I've confirmed those jobs that are scheduled to run 'always' indeed execute every hour.

I don't know if this is the case here, and it seems more regular than my experience, but my coworkers and I have seen cron jobs walk fairly regularly.  (We're more commonly using Ubuntu 14.04 or 12.04, however.)

The usual issue I see is the following with a daily scheduled job:

cron run starts at 1:00:00
there are a bunch of things to do, so it gets to the daily job at 1:00:20
the next day at 1:00:00, cron runs again
there's less to do, so it gets to the daily scheduled job at 1:00:10
being "daily", the scheduled job checks to make sure its previous run was more than one day ago, and that check fails since it was 23 hours, 59 minutes, 50 seconds ago
the scheduled job executes the next time cron runs

In my experience, that would normally make the scheduled job walk one cron interval (usually 5, 6, 10, or 15 minutes) rather than an entire hour.  However, if you only have the cron job running hourly, that would explain your phenomenon exactly.

Unfortunately, there's no way to guarantee that a scheduled job will get run at a precise time each day unless you have a separate cron job to run the single scheduled job.  However, reducing the cron interval will mean that when the schedule job does walk, it'll take smaller steps.

(Side note: this situation is why I always have the scheduled reminders job run hourly rather than daily.  Otherwise, the scheduled job might walk all the way to 11:00 pm, potentially reminding people about the next day's event after the recipients have gone to bed.)

UPDATE: As Karin describes below, this was addressed in 4.6.3, so the later 4.6.x releases all fix this.  However, some changes introduced in 4.7 had the result of undoing this.  The relevant issue is CRM-18671 for describing what's going on.


Can Attendees Modify their Registration? Can attendees access their registration and make changes after they've submitted a completed registration?

This is not out-of-the box functionality. Have a look at these threads:

Recommended process for credit card additions/'edits' to event registrations?

Can I allow users to update their registration?


Drupal 8.4 & CiviCRM Issue Last evening I tried to follow along with the amazing work @david-snopek posted but I've been running into some issues with the module finding the civicrm "library".

I'm trying to get this working with a BLT generated project and feel like I'm getting pretty close but don't know enough about CiviCRM to know where to look next.

I created a more in depth question here:
https://drupal.stackexchange.com/questions/247897/error-installing-civicrm-drupal-8-4-blt-composer-civicrm-must-be-downloa

Resources:

https://drupal.stackexchange.com/questions/241716/how-to-install-a-module-which-includes-a-different-version-of-symfony/241738
https://www.mydropwizard.com/blog/how-install-civicrm-drupal-8-and-why-choose-it-over-pure-drupal-crm
https://github.com/civicrm/civicrm-core/pull/10694

Just looping back - I did get Drupal 8.4.x and CiviCRM 4.7.x up and running - here's my live play by play steps: https://d8webform.semper-it.com/node/4


ExtendedReport extension throws fatal error on WordPress Access Control save settings With the extension enabled (nz.co.fuzion.extendedreport) the settings in WordPress Access Control cannot be saved.
Disabling this extension allows the settings to be saved.
The error displayed is "API error: is not of type String". This is displayed when enabling the extension or saving WordPress Access Control settings.
This is on Wordpress 5.5.1, with CiviCRM 5.28.1.
This is the trace:
Exception: "API error: is not of type String"

#0 /Users/cfrost/vhosts/mysite.dev/httpdocs/wp-content/plugins/civicrm/civicrm/CRM/Core/ManagedEntities.php(287): CRM_Core_ManagedEntities->onApiError("ReportTemplate", "create", (Array:8), (Array:3))
#1 /Users/cfrost/vhosts/mysite.dev/httpdocs/wp-content/plugins/civicrm/civicrm/CRM/Core/ManagedEntities.php(173): CRM_Core_ManagedEntities->updateExistingEntity(Object(CRM_Core_DAO_Managed), (Array:4))
#2 /Users/cfrost/vhosts/mysite.dev/httpdocs/wp-content/plugins/civicrm/civicrm/CRM/Core/ManagedEntities.php(146): CRM_Core_ManagedEntities->reconcileEnabledModule(Object(CRM_Core_Module), (Array:34))
#3 /Users/cfrost/vhosts/mysite.dev/httpdocs/wp-content/plugins/civicrm/civicrm/CRM/Core/ManagedEntities.php(127): CRM_Core_ManagedEntities->reconcileEnabledModules()
#4 /Users/cfrost/vhosts/mysite.dev/httpdocs/wp-content/plugins/civicrm/civicrm/CRM/Core/Invoke.php(398): CRM_Core_ManagedEntities->reconcile()
#5 /Users/cfrost/vhosts/mysite.dev/httpdocs/wp-content/plugins/civicrm/civicrm/CRM/ACL/Form/WordPress/Permissions.php(179): CRM_Core_Invoke::rebuildMenuAndCaches()
#6 /Users/cfrost/vhosts/mysite.dev/httpdocs/wp-content/plugins/civicrm/civicrm/CRM/Core/Form.php(504): CRM_ACL_Form_WordPress_Permissions->postProcess()
#7 /Users/cfrost/vhosts/mysite.dev/httpdocs/wp-content/plugins/civicrm/civicrm/CRM/Core/StateMachine.php(144): CRM_Core_Form->mainProcess()
#8 /Users/cfrost/vhosts/mysite.dev/httpdocs/wp-content/plugins/civicrm/civicrm/CRM/Core/QuickForm/Action/Next.php(45): CRM_Core_StateMachine->perform(Object(CRM_ACL_Form_WordPress_Permissions), "next", "Next")
#9 /Users/cfrost/vhosts/mysite.dev/httpdocs/wp-content/plugins/civicrm/civicrm/packages/HTML/QuickForm/Controller.php(203): CRM_Core_QuickForm_Action_Next->perform(Object(CRM_ACL_Form_WordPress_Permissions), "next")
#10 /Users/cfrost/vhosts/mysite.dev/httpdocs/wp-content/plugins/civicrm/civicrm/packages/HTML/QuickForm/Page.php(103): HTML_QuickForm_Controller->handle(Object(CRM_ACL_Form_WordPress_Permissions), "next")
#11 /Users/cfrost/vhosts/mysite.dev/httpdocs/wp-content/plugins/civicrm/civicrm/CRM/Core/Controller.php(347): HTML_QuickForm_Page->handle("next")
#12 /Users/cfrost/vhosts/mysite.dev/httpdocs/wp-content/plugins/civicrm/civicrm/CRM/Utils/Wrapper.php(98): CRM_Core_Controller->run()
#13 /Users/cfrost/vhosts/mysite.dev/httpdocs/wp-content/plugins/civicrm/civicrm/CRM/Core/Invoke.php(285): CRM_Utils_Wrapper->run("CRM_ACL_Form_WordPress_Permissions", "WordPress Access Control", (Array:0))
#14 /Users/cfrost/vhosts/mysite.dev/httpdocs/wp-content/plugins/civicrm/civicrm/CRM/Core/Invoke.php(68): CRM_Core_Invoke::runItem((Array:14))
#15 /Users/cfrost/vhosts/mysite.dev/httpdocs/wp-content/plugins/civicrm/civicrm/CRM/Core/Invoke.php(36): CRM_Core_Invoke::_invoke((Array:4))
#16 /Users/cfrost/vhosts/mysite.dev/httpdocs/wp-content/plugins/civicrm/civicrm.php(1601): CRM_Core_Invoke::invoke((Array:4))
#17 /Users/cfrost/vhosts/mysite.dev/httpdocs/wp-includes/class-wp-hook.php(287): CiviCRM_For_WordPress->invoke("")
#18 /Users/cfrost/vhosts/mysite.dev/httpdocs/wp-includes/class-wp-hook.php(311): WP_Hook->apply_filters("", (Array:1))
#19 /Users/cfrost/vhosts/mysite.dev/httpdocs/wp-includes/plugin.php(478): WP_Hook->do_action((Array:1))
#20 /Users/cfrost/vhosts/mysite.dev/httpdocs/wp-admin/admin.php(259): do_action("toplevel_page_CiviCRM")
#21 {main}

Uninstalling and reinstalling the extension fixed an issue with a report template, causing the error.


Are contents of ConfigAndLog directory safe to delete? I am looking at our CiviCRM install on disk and I notice that  files/civicrm/ConfigAndLog is taking up nearly 9GB with all files from 2014-2015.

Looking at them they are just plain text files which sort of look like query results.  Most are in the format CiviCRM.<32character_string>.log.YYYYMMDDhhmm  some are just CiviCRM.<32character_string>.log

Is it safe to rm these files or do they serve a purpose?

The main use of those logs files is to help diagnose problems in CiviCRM.  You're unlikely to want to review problems from a few years ago so you can delete them.  The one without the datestamp is the current one and that should have the most recent timestamp.

However 9GB is a lot of log output!  It would be worth looking at the recent ones to see if there are current issues that need attention.


Detail instructions on manually updating message templates (5.9.0 to 5.10.4) We just updated our CiviCRM (Wordpress) from 5.9.0 to 5.10.4. Prior to the associated database upgrade, I got this message about having to upgrade our customized message templates. I screen copied the text but don't have the link to the "detailed instructions."

Any idea on where I would find those instructions?

It links to an old wiki page that redirects to https://docs.civicrm.org/user/en/latest/email/message-templates

Note it doesn't tell you what your customizations were before. You would need to know that separately or look at a backup.


CiviMobile won't login: "Server API Error" Drupal Using CiviCRM 5.13.5 and Drupal 7.67.

I'm trying to install CiviMobile but am getting an error that says "Server API Error" when trying to login on my mobile phone.

The steps I followed are as follows:

Downloaded "CiviMobile API" from https://civicrm.org/extensions/civimobileapi
Installed "CiviMobile API" (4.0.2) through CPanel in the same way that I've installed other extensions in the past (/default/files/civicrm/ext)
Installed the extension on civicrm/admin/extensions?reset=1
Had a message pop up on that page saying that my CiviCRM now supports the CiviMobile extension and a prompt to head to the app store to download the CiviMobile app
Downloaded the CiviMobile app (iPhone, IOS 11.2.1) and filled in my credentials on the login screen
Put in my correct username and password that I use to access CiviCRM on the computer, and filled in the URL (with https://) through which I access CiviCRM'
Received the "Server API Error" message. I get the same error message when I use the following variations of the URL: https://URL.com/loginpage and https://www.URL.com/loginpage (However the URL we use is https://URL.com/loginpage)
When I type in the URL as http://URL.com/loginpage or www.URL.com/loginpage I get the error message "Please install CiviMobile extension in your CiviCRM" however I don't think this is important since we use https

Not sure what else to try here, does any one have any insights? I'm sure I've put in my correct credentials.

Thanks in advance

A. The url should be https://www.URL.com
Do not include loginpage.
B. Not sure how you installed it, but make sure the directory of your extension is com.agiliway.civimobileapi (of there is a -master or a version number at the end remove it).


Renewal link mangled by webmail client with ISP We have been successfully using the contact.checksum link in renewal reminder emails for our Wordpress site. The link in the received email typically looks like:

https://sdbikecoalition.org/?page=CiviCRM&q=civicrm/contribute/transact&reset=1&id=2&cs=yyyyyy&cid=xxx

However, one user has different behavior when opening the email on a webmail client (it will be OK when reading the email in another client). The webmail client is with a local ISP, cox.net. The link has an extra path in the URL, e.g.

https://webmail.west.cox.net/do/mail/message/sdbikecoalition.org/?page=CiviCRM&q=civicrm/contribute/transact&reset=1&id=2&cs=yyyyyy&cid=xxx

This seems to be CLEARLY the fault of the ISP. The SAME email, when forwarded to another mail provider is correct. The user with this problem has talked to their ISP (cox.net) and they cannot provide an answer.

I'm just posting to see if anyone has encountered something like this with either cox.net or any other ISP.

Here is an answer that explains the prefix  https://webmail.west.cox.net/do/mail/message/ that was added to the front of our primary domain. Looking at the CiviMail source for this message (and a number of other similar messages, propagated by copy/paste) the mail source did not specifically set the protocol prefix to "https://". Instead, the source had the default "other". Evidently, most of the ISPs we tested tack just http:// on the front and since we redirect that to https://, everything works. However, the ISP cox.net adds a bit more when the link isn't fully specified. We can't really blame them and there may be different prefixes added by other ISPs. LESSON LEARNED: make sure you add https or http protocol when inserting the contact checksum link (hopefully noone is non-SSL, so it really should be https ;))


Why has entering a date changed in 4.7.16? Can it be reverted? Entering a date has changed in 4.7.16 so the user can no longer drop down the year in order to select a year in the past.  Now they have to scroll through months to go backwards!  Imagine entering a date of birth of (say) 1967 - you have to go back 600 months!!  I'm assuming this is a bug, but rather a serious one from a user's point of view.  Does anyone know how this can be easily reverted to what it was before?  In the meantime I'm avoiding my users....

I have raised problem CRM-20209

There was an issue due to some refactoring around the handling of date fields to try to standardise them. This lead to a problem most notably in birth date fields in 4.7.16 but i'm guessing can be found elsewhere. This issue was raised CRM-19982

I suspect the same fix will most likely work for you. If you have a test site or would like to give a test a shot. I would recommend you look at the changes made to the files in the DAO directories here in the Pull Request and make the same changes on your server.

That pull has been merged into 4.7.17 which will be released i think in the next week or so


Problem with Aggregating Households Extension after upgrade to 5.3.1 I had this problem after another upgrade and can't figure out how I solved it! (Posted as an issue at github as well.)

Extension installed, Enabled | ver 1.2 and at /home/MYSITEDIR/public_html/sites/all/civiextensions/me.twomice.civicrm.aggregatehouseholdcontributions

All existing reports error out with:

Fatal error: require_once(): Failed opening required 'CRM/Aggregatehouseholdcontributions/Report/Form/Contribute/AggregatedHouseholds.php' (include_path='/home/MYSITEDIR/public_html/sites/all/civiextensions/com.iatspayments.civicrm/:/home/MYSITEDIR/public_html/sites/all/civiextensions/de.systopia.householdmerge-1.1.beta/:/home/MYSITEDIR/public_html/sites/all/civiextensions/com.pogstone.fancytokens/:/home/MYSITEDIR/public_html/sites/all/civiextensions/nz.co.fuzion.cssinline/:.:/home/MYSITEDIR/public_html/sites/all/modules/civicrm:/home/MYSITEDIR/public_html/sites/all/modules/civicrm/packages:.:/home/MYSITEDIR/public_html/sites/all/modules/civicrm:/home/MYSITEDIR/public_html/sites/all/modules/civicrm/packages:/home/MYSITEDIR/public_html/sites/all/modules/civicrm/vendor/tecnickcom:/home/MYSITEDIR/public_html/sites/all/modules/civicrm/vendor/phpseclib/phpseclib/phpseclib:/home/MYSITEDIR/public_html/sites/all/modules/civicrm/vendor/pear/pear_exception:/home/MYSITEDIR/public_html/ in /home/MYSITEDIR/public_html/sites/all/modules/civicrm/CRM/Core/Controller.php on line 451

A file by that name is at:
/home/MYSITEDIR/public_html/sites/default/files/civicrm/custom/customphp/CRM/Report/Form/Contribute/AggregatedHouseholds.php

Copying it to:
/home/MYSITEDIR/public_html/sites/default/files/civicrm/custom/customphp/CRM/Aggregatehouseholdcontributions/Report/Form/Contribute/AggregatedHouseholds.php
does NOT fix it.

The code referenced is
require_once str_replace('', DIRECTORY_SEPARATOR, $className) . '.php';
in the snippet below

$ext = CRM_Extension_System::singleton()->getMapper();
      if ($ext->isExtensionClass($className)) {
        require_once $ext->classToPath($className);
      }
      else {
               require_once str_replace('_', DIRECTORY_SEPARATOR, $className) . '.php';
      }

Its not a good idea to add manually in CiviCRM module folder. The system should pick the file from custom php or extension. Looking initially at the debug you provided looks like the custom php path or extension path is not included. Here are few things i would try before making it work in a unusual way

Check directory path is set correctly.
Clean up CiviCRM caches
Uninstall/disbale and install/enable extension. (Note: If the extension is responsible to store data and uninstall would cause data loss than try disabling-enabling extension)
Check if existing extensions is conflicting any problem by disabling the extension and trying.


hook_civicrm_permission in a drupal module How should custom permissions created by hook_civicrm_permission be properly  checked?

Have defined custom permission like this:

function mymodulename_civicrm_permission(&$permissions) {
    $prefix = ts('SpecialPermissions') . ': '; // name of extension or module
    $permissions['SpecialPermissions'] = $prefix . ts('SpecialPermissions');
}

and checking it later on, same module, hook_civicrm_buildForm,  have tried every option listed below:

* if (CRM_Core_Permission::check('SpecialPermissions')) {
* if (CRM_Core_Permission::check('Drupal: SpecialPermissions')) {
* if (CRM_Core_Permission::check('CiviCRM: SpecialPermissions')) {
* if (CRM_Core_Permission::check('cms: SpecialPermissions')) {

Code looks like exactly according to specs from:
 * http://wiki.civicrm.org/confluence/display/CRMDOC/hook_civicrm_permission
 * http://wiki.civicrm.org/confluence/display/CRMDOC/Permission+Reference

However, both test user with a corresponded permission AND Drupal user 1 (UID=1) are being affected, even when Drupal User 1 doesn't have role with custom permissions attached. Not sure if it is by design or something wrong with my implementation of this? Please advice.

I may be misreading this, but it sounds like you're saying that you've got a new permission, and the user with the role that has the permission granted is working just fine.  However, you're saying that Drupal user ID 1 is being treated as if it has the permission, even though it doesn't have any role with that permission.

If so, this is totally normal.  Drupal user ID 1 gets all permissions, even when using CRM_Core_Permission::check('SpecialPermissions').  You should be able to confirm by creating another user without that permission and seeing that CRM_Core_Permission::check('SpecialPermissions') returns false.


Relationship shows up on contact page but is undefined in reports, searches, and exports I have a database in which I have recorded relationships and they are not showing up on the relationship report, in searches, etc. In other cases the same type of relationship does show up. After investigating in the database directly I've found that the relationships which don't show up are not in the database either.  But they do show up on the contact page under the relationships tab.  How do I get those relationships to integrate into the database?

I realized what the issue was.  You must be very careful in defining the relationships - A to B vs B to A.  I had different relationships defined for B to A when the A to B and B to A were the same.  For example: if you have Employer and Employee defined, you don't need to define a separate relationship for Employee to Employer -- the system handles which one is A and which one is B.


Who gets scheduled reminder emails? When scheduled email reminders go out for membership for an organization, which of the related individuals does the email go to?

I have searched but cannot find the answer.

I finally got the right combination of words to google and found an answer here: https://forum.civicrm.org/index.php?topic=34203.0


CiviCRM and Webform Confirmation Page Drupal 7 and CiviCRM 4.6

Using the Webform extension, which is amazing of course.  Is there a way to get the confirmation page to look like the page would be if somebody was using a native CiviCRM form.  For example for a new membership, it would show name, membership expiration date etc?  This does get emailed but sometimes our members don't get our emails, so it is nice to have a confirmation page they can print with these fields like you can in a CiviCRM form?

Might be obvious thing I am missing.

I think the answer will be primarily a drupal answer ie you need to get the tokens for the submission values on the confirmation page. The best recipe (untested by me) that I can see that doesn't involve a custom module is here

Please report back how it goes.


How to load the definition of a case type with the CaseType API I am trying to use the CaseType API to create a case_type but I can not find any documentation on how to set the definition parameter. Any hints or should I just dive into the code?

It's probably actually easiest to look at the code. CRM_Case_BAO_CaseType::convertDefinitionToXML() gives the list of array elements to set, e.g.

$definition = array(
  'activityTypes' => array(
    'key1' => 'value1',
    'key2' => 'value2',
  ),

  'statuses' => array(
    'blah1',
    'blah2',
  ),
// etc...
);


When does a Scheduled Reminder send If I create a Scheduled Reminder based on an Activity with a specific status and set it to trigger 0 hours after Activity Date Time will it fire immediately when the activity is created or when the next Scheduled Reminder cron job runs?

The reminder will be sent when the next background Scheduled Reminder task is executed.  I have the exact same situation and the reminder was sent by the Scheduled Reminder task 9 minutes later than the trigger because there was a large number of emails being sent. So you can't bank on it being sent immediately.


Include dates in a membership sign up form I have a contribution page set up to allow people to sign up for a new membership or renew a membership. The membership is a fixed period type. The user must either create an account or log in. I would like the Membership price option to show the dates (or year) that they are signing up for. Thus if they are a new member, it would should the current period (e.g. "2019 Membership") and if they log in as a current renewing member, it would show that future Membership dates they are choosing (e.g. "2020 Membership"). This is on a Wordpress site.

I would recommend you to create a wordpress page

For logged in member you should be able to find his contact ID and membership ID

Using some PHP code you can select civicrm_membership table from civicrm database. Which will provide you with membership End date and you can use that to display to the member before renewing

I guess this helps !!!

If you need more help please let me know

Thanks


Double opt-in mailing list signup with Caldera Forms CiviCRM I'm wondering if it's possible to create a "double opt-in" to a mailing list group workflow using Caldera Forms CiviCRM integration. Where the user would enter an email address into a field, then gets sent an email with a link they need to click to confirm they want to be added to the mailing list, and on doing so they're added to the appropriate group in CiviCRM. Essentially the same workflow as using a profile to sign up for a mailing list with the "Enable Double Opt-in for Profile..." settings checked.

Yes, one could just use a profile for this (and have in the past) but would prefer not to deal with the added security risk of enabling external form submissions. The mailing list signup form is in a sidebar widget, not a page, so using a shortcode isn't an option that I'm aware of. Even shorcode widget plugins don't seems to work for this purpose.

So, how would we set up a workflow to use Caldera forms to do this? We have it set up now in such a way that the user inputs their email address, and we use the Contact processor to process their email address and add them to a specific group. This works a treat, just want to explore options for the confirmation email step.

Thoughts? Suggestions?

You can use Jaap Jansmas integration of CiviCRM with the Form Processor for that: Just create a form processor using the action "Mailing Event: Subscribe to mailing list". You can even create simple deduplicating rules using conditions on the actions "Contact: Get Individual by name and email" and "Contact: Create or update Individual". The form processor will then appear as a Caldera Forms processor and you just add your slugs. Never forget to clear the CiviMcRestFace Log in Settings CiviCRM McRestFace Call Log when adding/changing form processors.
Update: Now Jaaps plugin can also be installed from the official Wordpress plugin repo:
https://wordpress.org/plugins/cf-civicrm-formprocessor/


How can I show contacts that DO NOT have an activity of type X in last Y months? I'd like to be able to track which contacts details have been confirmed every so often. Every so often, we'll go through our contacts and confirm that their address, email address, phone numbers, etc are still accurate.

I'm thinking about using an activity type to accomplish this. I'd call it "Confirm contact details" or something and when I confirm that a contact's information is correct, I could create an activity on that contact. This would have let me know when the contact's information was last checked, and by who.

This would be ideal, except that I can't figure out how to generate a report showing only those contacts whose information hasn't been confirmed in so many months.

Is there a way to find contacts that do not have an activity of type "Confirm contact details" in the last Y months?

The process is slightly roundabout:

Create a smart group that captures all contacts called "All Contacts".
Create a second smart group consisting of people who have the activity type "Confirm Contact Details".
Use the "Include/Exclude Search" (Search menu > Custom Searches) to include the first smart group and exclude the second smart group.

Once you've done this, you can save it as a smart group for one-step searches moving forward.


How do I use CiviDiscount for an event? I want to apply a CiviDiscount to an event that uses a Price Set, but it doesn't seem to work the way I want.

The Administer CiviDiscount / New Discount Code form includes 2 fields ...

'Events'
'Price Field options'

The on-screen help for the Price Field options says 'If your form uses a price set, the discount will be applied to all options in the set by default. However, if you want the discount to be applied only to specific price options - select those options here.'

The implication is that I can just specify the Events for which I want the code to be valid.

But that's not how it works. I can only get the Discount Code to work if I specify both the Event and the Price Field. Am I missing something here?

Interesting. What version of Civi and the discount extension are you running? In an older version of the discount extension (2.1) you could specify each price set that you want the discount to be applicable to. But it seems the newest, 3.0, is much simpler and you only pick event.


What are all these missing CiviCRM CSS and jQuery files? I am not sure how to ask this question or what I did to cause it, but I'll give it a shot. There seem to be several CSS files and jquery plugins that are trying to load on my Drupal 7.50 site that are broken links. I can't figure out what they are and why they are trying to load. I have recently upgraded from CiviCRM 4.3.8 to 4.7.15 and wonder if they are left-over remnants of the old version or what. All I know is that they do not exist.

Can I get rid of the safely and if so, how? Thanks!

https://www.example.com/sites/all/modules/civicrm/css/deprecate.css
https://www.example.com/sites/all/modules/civicrm/css/extras.css
https://www.example.com/sites/all/modules/civicrm/css/extras.css?r=nMgDb
https://www.example.com/sites/all/modules/civicrm/js/jquery/jquery.crmasmselect.js?r=nMgDb
https://www.example.com/sites/all/modules/civicrm/js/rest.js?r=nMgDb
https://www.example.com/sites/all/modules/civicrm/packages/jquery/css/jquery.autocomplete.css?r=nMgDb
https://www.example.com/sites/all/modules/civicrm/packages/jquery/css/menu.css?r=nMgDb
https://www.example.com/sites/all/modules/civicrm/packages/jquery/css/token-input-facebook.css?r=nMgDb
https://www.example.com/sites/all/modules/civicrm/packages/jquery/jquery-1.8.3.min.js?r=nMgDb
https://www.example.com/sites/all/modules/civicrm/packages/jquery/jquery-ui-1.9.0/css/smoothness/jquery-ui-1.9.0.custom.min.css?r=nMgDb
https://www.example.com/sites/all/modules/civicrm/packages/jquery/jquery-ui-1.9.0/js/jquery-ui-1.9.0.custom.min.js?r=nMgDb
https://www.example.com/sites/all/modules/civicrm/packages/jquery/plugins/DataTables/media/css/demo_table_jui.css?r=nMgDb
https://www.example.com/sites/all/modules/civicrm/packages/jquery/plugins/jquery.FormNavigate.js?r=nMgDb
https://www.example.com/sites/all/modules/civicrm/packages/jquery/plugins/jquery.autocomplete.js?r=nMgDb
https://www.example.com/sites/all/modules/civicrm/packages/jquery/plugins/jquery.chainedSelects.js?r=nMgDb
https://www.example.com/sites/all/modules/civicrm/packages/jquery/plugins/jquery.jeditable.mini.js?r=nMgDb
https://www.example.com/sites/all/modules/civicrm/packages/jquery/plugins/jquery.menu.pack.js?r=nMgDb
https://www.example.com/sites/all/modules/civicrm/packages/jquery/plugins/jquery.mousewheel.pack.js?r=nMgDb
https://www.example.com/sites/all/modules/civicrm/packages/jquery/plugins/jquery.textarearesizer.js?r=nMgDb
https://www.example.com/sites/all/modules/civicrm/packages/jquery/plugins/jquery.timeentry.pack.js?r=nMgDb
https://www.example.com/sites/all/modules/civicrm/packages/jquery/plugins/jquery.ui.datepicker.validation.pack.js?r=nMgDb
https://www.example.com/sites/all/modules/civicrm/packages/jquery/plugins/jquery.validate.min.js?r=nMgDb

Here's what happens if I visit one of the jquery plugin links directly:

Edit: I compared the css and jquery files from this list with the ones in the master code and they are not part of CiviCRM 4.7.15.

Some of those files should exist in the 4.7.15 filesystem; others shouldn't.  The question is why those files are being called at all.

Most likely, you have an "HTML Snippet" somewhere in Drupal - perhaps a "sign up for our website" block or similar.  HTML snippets really should be removed if possible - but if that's not doable, you should generate a new HTML snippet and replace the older one.  That should cause MOST of these to go away.

The other thing I'm noting is that the jQuery plugins SHOULD load, not 404.  I'd check to see what happens when you visit those links directly.  It could be an HTTPS redirection issue.


How to import check box field data? How do I successfully import contact's check box field data?
I am using civicrm 4.6.19 and importing from csv.

I want to import the "is deceased" field
and the communication preferences...

Thanks

Create a deceased column. If a person is deceased give the value 1, otherwise give the value 0.

Generally, 1 is checked 0 is unchecked for the check boxes.


Webform CiviCRM Paypal Button not Working Using CiviCRM 4.4.4, Webform 7.x-4.11, Webform CiviCRM Integration 7.x-4.12, Paypal Website Payments Pro, Drupal 7.39

When I set up a payment through CiviCRM, credit card payment and Paypal payment work as expected. However, when I set up Payment through Webform CiviCRM integration, the credit card payment works as expected, but clicking on the Paypal button produces an error about email as shown in the attached screenshot. This happens with all my webform civicrm integrations. In other words when I use Webform CiviCRM integration, I have to give up paying with Paypal and since the Paypal button is automatically put on the screen the result is very unprofessional. The email that it shows which is supposed to be an error is my user name in Processor Details for Live Payments dialog.

Any help would be much appreciated, since I find the Webform CiviCRM integration module a great tool.

Paypal support hasn't been much help.

[Edit]
It turns out that when I am using CiviCRM Webform integration and select the Paypal button the word "express" briefly  appears in the credit card number field on the form. I think this is causing the problem because I don't see it when choosing Paypal from a standard CiviCRM payment page. I have tried different payment buttons from this page but the behavior stays the same.

Bill Dika

You may have found a bug in the webform_civicrm module. I don't have a great way of testing paypal right now, but I've just made a few tweaks which I think will help - can you try it out?

Download the patched version here: https://github.com/colemanw/webform_civicrm/archive/ipn.zip


CiviCRM Individual Contact Inherits fields from Organisation I am wondering is it possible to Copy fields  from a Organisation Contact  depending on relationship?

For e.g. If there is a relationship between Contact A and Contact B can Contact B inherit fields from Contact A.

Contact A - Organisation
Contact B - Individual

E.g. If there is a relationship, Contact B Field "Address" will be inherited from Contact A.

Thanks

CiviCRM offers the option of having a Shared Address but there is no way out of the box to trigger that automatically (that I am aware of).

Depending on how you are adding Contacts if you were using Drupal Webforms or WordPress Caldera forms it would be possible to do this (not certain with WP but def. with Drupal)


Create array in Smarty template I want to modify the  Smarty template sites/all/modules/civicrm/templates/CRM/Case/Audit/Report.tpl. I want to complement an existing foreach expression with comparing the incoming variable $group.title to an array of titles, and execute the following code only if the current $group.title is found in that array.

{assign var=visible-fields value=['value1, value2']}

 Visible fields var: {$visible-fields}

{if $group.title|in_array:$visible-fields}

{$group.title}

  {foreach from=$group.values item=row}

      {$row.label}
      {$row.value}

  {/foreach}

{/if}

Now, I'm getting stuck on a rather simple task: The array visible-fields is not created. I have found some forum threads from the 2000s suggesting some expressions. I have tried the following, none of which seems to work:

{assign var=visible-fields value=['value1, value2']}
{assign var=visible-fields value=['value1', 'value2']}
{assign var='visible-fields' value=['value1, value2']}
and the same with "" instead of ''
{assign var="visible-fields" value=","|explode:['value1, value2']}

Printing the variable with
 Visible fields var: {$visible-fields}
  results in a 0.
I also tried solving the problem with a {php}...{/php} block, but then the web app throws an error. Maybe I have to enable the support for these inline php blocks somewhere, but before trying that, I want to try solving it with the Smarty expression, because creating an array shouldn't be so difficult, right?
Can somebody tell me how to do it, or post a link?

This method works for me:
{assign var=visible_fields value=','|explode:'value1,value2'}

Visible fields var:
  {foreach from=$visible_fields item=foo}

Element is {$foo}

  {/foreach}


What are the Attributes for the Reserved DeDupe Rules The reserved dedupe rules don't tell us what they are doing behind the seens. The name and email (reserved) rule says:

  This reserved rule is pre-configured with matching fields to optimize
  dedupe scanning performance. It matches on:

  Email
  First Name
  Last Name

But it doesn't reveal the length, weight or threshold?

I'm kind of assuming that all three have to match exactly for civi to not create a duplicate record (unservised) or for it to not pop-up a duplicate warning (supervised).

Am I correct?

Thanks

Pete's answer should be correct, but reserved dedupe rules don't work like normal rules.  The original assumption: First name, last name and email must all be identical - is correct.

Dedupe rules with multiple criteria work by running a separate query for each criterion, filling a temp table with the weights.  This is flexible but inefficient, so the "reserved" queries are done using a single handwritten SQL query.  This particular query is found in CRM_Dedupe_BAO_QueryBuilder_IndividualSupervised::internal and overrides the stored query in the database (which is the old query from before reserved queries existed).  Here's the query that runs.

        SELECT contact1.id as id1, contact2.id as id2, {$rg->threshold} as weight
        FROM civicrm_contact as contact1
          JOIN civicrm_email as email1 ON email1.contact_id=contact1.id
          JOIN civicrm_contact as contact2 ON
            contact1.first_name = contact2.first_name AND
            contact1.last_name = contact2.last_name
          JOIN civicrm_email as email2 ON
            email2.contact_id=contact2.id AND
            email1.email=email2.email
        WHERE contact1.contact_type = 'Individual'");


Error when adding a contribution: When manually adding a contribution - I get the following error:

Warning: A non-numeric value encountered in CRM_Contribute_BAO_Contribution::calculateMissingAmountParams() (line 383 of /home/sitename/www/www/sites/all/modules/civicrm/CRM/Contribute/BAO/Contribution.php).

Line 383 is:
$params['net_amount'] = $params['total_amount'] - $params['fee_amount'];

The contribution is processed without issue - but that error persists. When I add fee amount as 0 - the error does not display. Do we always have to provide a fee amount for manual contribution entries?

It’s a warning (not an error) - so it should let you save the Contribution but nevertheless it should be logged as an issue.

On a production site you will always want display Errors/Warnings -> to none;

In Drupal 7 the setting for that lives:
/admin/config/development/logging


Search cases - find case by case role I'm looking for a simple solution to allow staff to search for a case by Case Role in addition to client name.

currently the search cases screen  (civicrm/case/search?reset=1)  has only the client name / email or casetype , case status, start/end date.

Allowing to search for contact with a role on the case would have a number of uses.  e.g. find all cases supervised by a manager or referred by an external contact (where case supervisor and referrer are case roles)

Any thoughts on the best way to go about this.

thnx

civicrm 4.6.8
drupal 7.39

Try the below steps-

1) Navigate to Search -> Advanced Search.

2) In Basic Criteria Tab, you can find a dropdown with the label Display Results as -> Select Cases in the dropdown input.

3) In Relationship Tab select the relationship type as the role. For eg.- Case coordinator is.

4) Optionally type the name in the Target contact textbox.

Hit Search -> Result shows the case list supervised by the contact.

Change the Display Results as to Contacts etc as per your requirement for the returned result.


CiviEvent: prevent registered users from changing their data I'm running a CivicCRM installation od Drupal 7. I'm launching our first Event page with online registration - everything seems clear, except one thing: I'd like to prevent registered users from changing their data in the registration form. The form profile consists of Name, Surname and e-mail from Individual/Contact type, so registered users have these fields 'connected' with their crm record. Any change goes straight to the database and I'd like only anonymous users to edit these fields.
Can it be done just by configuration (ACLs maybe?) or does it require a custom plugin?

Take a look at the No Overwrite extension which prevents name changes on event registration forms.


How to integrate with Drupal migrate to create a periodic import into CiviCRM? We have a requirement to periodically update a set of contacts in the CRM from an external source. Our preferred base technology is Drupal migrate. This is so that we can automate some transforms and the user can trigger the imports as well as review the results. It's also so that we don't run into the performance limits that we typically do with the CiviCRM import procedure.

Which module is the best option for creating the CiviCRM integration?

civicrm_migrate
civimigrate
civicrm_entity

I would expect 2/ ie https://github.com/eileenmcnaughton/civimigrate which we have made lots of use off for migrating legacy data. From memory we have one situation where client can 'click a switch' to run a migration to pull in latest data. I will flick a note to eileen to see if she can expand


Does Stripe and CiviCRM work on Drupal 8 and Webform? I have installed: Stripe 6.5.5;  CiviCRM 5.32.2;  Drupal 8.9.11;  Webform 6.0.0;  Webform_civicrm 8.x-5.0-beta4.
When I try to make a (test) Donation payment I get the error:
Error
Unable to complete payment! Missing paymentIntentID.

Is this a configuration problem or does D8 not work yet?

Stripe 6.5.6 has a Fix for this.  (I haven't tested it personally, but it looks good.)


uploading new contacts with relationships We are using civi to help us fundraise for our school. Each year we upload the new parents to the database from a csv from schoolbase. We need to add a relationship for each parent to their child(ren). This is important, because the communications we send vary based on the children's D.O.B (this enables us to tell which school year they are in without updating it every year). Is there a way to import these relationships at the same time as importing the contacts? Is this just a question of using correct field mapping? If they have more than one child would you need to have all the children in the same field? I'm assuming you'd need to import the children separately first, is that right?

Welcome to SE!  Yes, you can import the relationship at the same time.  The documentation describes your situation here.
This is based on one row per child with parent details in the columns.  You import once for child, mother, relationship and once for child, father, relationship.
Check that your default dedupe rules work for the parent fields you are importing to avoid duplicates being created.
You don't need to do anything special where more than one child has the same parents other than check the dedupe rules.  Each child is a separate line.
I'd suggest trying this on a test system first to become familiar with the process and check your dedupe rules are working as desired.
Try following the steps in the documentation and let us know if you have further questions.


Multiple Types of Contributions using CiviContributions Drupal Integration I am trying to use one webform to collect multiple types of contributions from one contact. Specifically, we are trying to collect a sponsorship and in-kind donation for one event from one contact type on the same webform. While I don't need to access two different contribution pages, I do want the webforms to population two different contribution records one for the monetary sponsorship, and another with the value of the in-kind donation. Does anyone know how to set this up?

Thanks,
Neena

Create a Price Set with multiple fields and set the contribution type for each field.  The use that price set on your page.  It will show up as one contribution, but when you click on it and click view you'll see the 2 different contributions and the amount for each type.  You can setup a report to view the info separately for each type if you want.


Disable opt-in e-mails for joining groups I use a custom Drupal Webform for contacts to join groups. This happens within a restricted environment, the user is logged in and managing his/her own profile behind a password. I don't want any e-mail to be sent.

When a group is marked as 'mailing list', CiviCRM sends out a confirmation mail. If a group is marked both 'mailing list' and 'access control', no e-mail is sent.

I've unchecked 'Enable Double Opt-in for Profile Group(s) field ' in the CiviMail component. Doesn't seem to make a difference (this is not a 'profile groups checkbox' as per the description there i think - its a webform).

So I'm about to check the 'access control' for a dozen of groups, only to disable the e-mail confirmation. What am I doing wrong ? :-)

You probably saw this but there is a second setting that deals with Double Opt-In - but since you only referred to one, the other one is

  Enable Double Opt-in for Profiles which use the "Add to Group" setting
  When CiviMail is enabled and a profile uses the "Add to Group" setting, users who complete the profile form will receive a confirmation email. They must respond (opt-in) before they are added to the group.

Also at this path - civicrm/admin/setting/preferences/mailing?reset=1


Credit Card Receipt after 4.7 update Prior to updating to CiviCRM 4.7 our customers received receipts that included:

Membership fees with each item listed separately with a description
and price.
The Transaction number
The Billing Name and Address
The Credit Card Information (only last four of credit card)

After we installed 4.7 this information stopped displaying on the receipt.

I have reviewed the receipt template. I did not see anything that should change this.

Is there a new setting that I am missing to display the transaction details?

This fix in JIRA is meant to have fixed this problem


Expanding the Relationship Notes field Is there a way to increase the size of the Relationship Notes field?

In 4.6, it appears to be stored in the varchar(255) "description" column of the civicrm_relationship table. Nevertheless, Webform-CiviCRM integration let us use a textarea as a widget for this field, and now that the client has become accustomed to the idea of using this field for longer content.

I tried simply increasing the column size in the database and flushing caches, but it does not seem to make any difference by itself; submitting the webform to create the relationship results in the same error:

  The CiviCRM "relationship create" API returned the error: "Value for description is 884 characters - This field has a maxlength of 255 characters." when called by function "preSave" on line 187 of wf_crm_webform_postprocess.inc with parameters: "Array ( [relationship_type_id] => 17 [is_active] => 1 [start_date] => now [description] => 884-character description went here [contact_id_a] => 26305 [contact_id_b] => 13475 [is_permission_b_a] => 1 [is_permission_a_b] => 0 [check_permissions] => [version] => 3 ) "

The site is a Drupal 7.44 / CiviCRM 4.6.19 site, with Webform 7.x-4.x-dev and Webform-CiviCRM Integration 7.x-4.15. The ability to add case relationships was added back in 7.x-3.x.

Modifying field types in CiviCRM is bound to create problems later on (e.g. with upgrades), so I wouldn't do that.

The straightforward approach would be to create a custom fieldset for relationships and add in a new custom field that is large enough for your data. I suspect there might be a few gotchas in terms of accessing this field, but if you're in Drupal, then the entity support in Drupal might solve this.

Apropos of this, here's an article about Drupal that points to how important this kind of fieldable relationship entity can be:
http://atendesigngroup.com/blog/drupals-weak-link


Why does nesting Civi shortcodes in Wordpress pages prevent Javascript files from loading? If I create a new page and include this shortcode, the Civi User Dashboard displays correctly.
[civicrm component="user-dashboard"]

If I create a new page but nest the same short code inside of an outer shortcode, several JS files do not get loaded. A section titled "<!-- CiviCRM html header -->" (present in non-nested output) does not output.
[members_logged_in]
[civicrm component="user-dashboard"]
[/members_logged_in]

https://developer.wordpress.org/reference/functions/get_shortcode_regex/
"get_shortcode_regex" doesn't seem to work when nesting CiviCRM shortcodes. I found 2 hacky workarounds.


CiviCRM Joomla Demo Site How do we volunteer to help maintain CiviCRM demo sites, such as the one for Joomla? I noticed that an extensions directory hasn't been created and set yet and it would be cool to be able to test out extensions. How are the demo sites maintained and who is in involved? Is there a secret handshake to get involved?

http://joomla.demo.civicrm.org/administrator/

You can ask to help out in the "infrastructure" channel on https://chat.civicrm.org!

The demo sites are automatically regenerated nightly via a script based on civicrm-buildkit - so it's not really sufficient to change the setting.  Folks in that channel can help get others up to speed though.


Why isn't CiviMail tracking my opens? It happened after a recent upgrade to 5.27+, using Drupal 8.

I notice this: https://github.com/civicrm/civicrm-core/pull/17312 added some nice new callbacks, but since it didn't actually remove the old ones, I suspect this is only affecting Drupal 8 installs that don't have the extern/ directory working.
The key is that these emails are going out with the following at the end of the html:
<img src="https://blackflysolutions.ca/libraries/civicrm/core/extern/open.php?q=12345" width='1' height='1' alt='' border='0'>

In other words - the new callback is not being used when generating the civimail.
After more digging, I found this:
https://github.com/civicrm/org.civicrm.flexmailer/issues/65
Conclusion: update your flexmailer to "master" until there's a new release.
Also: upgrading civicrm to 5.29.1 also fixes it - that release pulls in a new flexmailer.


How do I create recurring events in 4.6? I am using CiviCRM 4.6.8 and I don't find the new (supposedly since 4.6) recurring events feature. What am I doing wrong?

Combining the question's comments into an answer:

The Repeat tab isn't available until the event has been saved. Create the event and save it, and you'll see the tab.


Event Max Participant Option Not Respected the max particapent functionality works via the front-end but if someone is registered manually (say if they pay by cash at the shop) then the shop uses the back-end CiviCRM menu option "register event participent" under Events.

But the problem here is that if I have a priceset option to have a max participent of 1 (a time booking has a max of one person per slot) and that slot is taken, this will not be reflected in the back-end booking under "register event participent". And they will be able to choose any slot option regardless if that slot has already been taken. And thus creating double bookings.

Does anyone know if I am doing something wrong or is this an oversight?

Cheers

As I understand it, the max registrants is for the front-end, not the back-end. Often times when someone is manually registering someone in the back-end, they may need to override settings like the max registrations. So it doesn't take that into consideration. If you need it to be one only, then the person who is doing the registering should book it via the front-end like as if they were a customer (make sure you're not logged in when you do it). That will set them as pending since they didn't pay via your online method. Then you'd edit the record to reflect that they paid.


How can I automate printing address labels? Is there an API call available which could automatically create address labels?

This could be very handy with CiviRules, to have an automatic API-action to create address labels overnight.

It depends what you mean by "API". If it's a script you're going to run overnight you could do something like this and put it in a file, let's say labels.php:
<?php
$form = new CRM_Contact_Form_Task_Label();
// Array of contact ids - could get this from wherever.
$form->_contactIds = array(2,3,4);
$params = array(
  'label_name' => 3475,
  'location_type_id' => NULL,
  'do_not_mail' => 1,
);
$form->postProcess($params);

Then run the script with cv, e.g. cv scr --user=admin labels.php > output.pdf
Or some variation of that. There's some trickiness to capturing the output within the script if you didn't want to redirect to a file - you'd either have to duplicate a lot of code or rely on something that is internally used for unit tests and could disappear.


How can I programmatically authenticate a contact (via checksum or other method)? Reposted/rephrased from http://forum.civicrm.org/index.php/topic,36059.30.html.

  I am currently working on an extension to log in a user in CiviCRM using Facebook.

  The user is sent to facebook for auth request/permissions, and if successful redirected to a callback page where it receives a code which is valid for one login. Now the server gets all the details to this page and create a contact and save it.

  I am thinking of now sending back the user to the earlier page with the contact id and the checksum. Something which is described in the following link: https://aghstrategies.com/content/how-create-one-click-personalized-links-civicrm-emails

  Now I need to keep track of if someone is logged in, is there anything I can store this constraint into or I need something, or should I directly use SESSION and store it there?

CRM_Contact_BAO_Contact_Utils::generateChecksum($contactId) is the function used to generate checksums.

Ideally your extension would call this via a corresponding API method, but I don't think one exists yet?

There's corresponding code (see validChecksum etc below that) which is used in some CiviCRM pages to identify a request with a checksum parameter.

Simple code to identify a checksum and persist against the contact is the following -

if ($cs = CRM_Utils_Request::retrieve('cs', 'String' , $this, false)) {
  if ($id = CRM_Utils_Request::retrieve('cid', 'Positive', $this, false, $userID)) {
    if (CRM_Contact_BAO_Contact_Utils::validChecksum($id, $cs)) {
      $session->set('userID', $id) ;
    }
  }
}

If they are landing on your callback already, then you can just dispense with using the checksum parameter and set the session directly before redirecting them to the page they authenticated to use.


DB Error: constraint violation on anonymous user event registration after 5.8.2 -> 5.9.0 update After updating from 5.8.2 to 5.9.0, anonymous users suddenly get the above error when trying to register for an event.

Anyone a good hint how to resolve that? Thanks

Debug log shows

Datenbank-Errorcode: Cannot add or update a child row: a foreign key constraint fails (db_local.civicrm_acl_contact_cache, CONSTRAINT FK_civicrm_acl_contact_cache_user_id FOREIGN KEY (user_id) REFERENCES civicrm_contact (id) ON DELETE CASCADE), 1452
Zusätzliche Details:

Array
(
    [callback] => Array
        (
            [0] => CRM_Core_Error
            [1] => handle
        )

[code] => -3
[message] => DB Error: constraint violation
[mode] => 16
[debug_info] => INSERT INTO civicrm_acl_contact_cache ( user_id, contact_id, operation ) VALUES(0, 0, 'View') [nativecode=1452 ** Cannot add or update a child row: a foreign key constraint fails (`db_local`.`civicrm_acl_contact_cache`, CONSTRAINT `FK_civicrm_acl_contact_cache_user_id` FOREIGN KEY (`user_id`) REFERENCES `civicrm_contact` (`id`) ON DELETE CASCADE)]
[type] => DB_Error
[user_info] => INSERT INTO civicrm_acl_contact_cache ( user_id, contact_id, operation ) VALUES(0, 0, 'View') [nativecode=1452 ** Cannot add or update a child row: a foreign key constraint fails (`db_local`.`civicrm_acl_contact_cache`, CONSTRAINT `FK_civicrm_acl_contact_cache_user_id` FOREIGN KEY (`user_id`) REFERENCES `civicrm_contact` (`id`) ON DELETE CASCADE)]
[to_string] => [db_error: message="DB Error: constraint violation" code=-3 mode=callback callback=CRM_Core_Error::handle prefix="" info="INSERT INTO civicrm_acl_contact_cache ( user_id, contact_id, operation ) VALUES(0, 0, 'View') [nativecode=1452 ** Cannot add or update a child row: a foreign key constraint fails (`db_local`.`civicrm_acl_contact_cache`, CONSTRAINT `FK_civicrm_acl_contact_cache_user_id` FOREIGN KEY (`user_id`) REFERENCES `civicrm_contact` (`id`) ON DELETE CASCADE)]"]

)

I could solve the problem... I had disabled the Mail module of CiviCRM as I do yet not use it. After reenabling it, the error was gone. Looks like that even disabled modules leave remnants in the database causing possible trouble.


Custom emails automatically generated based on participants filling in drupal forms Hi to all and thanks in advance.

I'm on Drupal 7 and Civi 5.20.2. I have the CiviRules and EmailAPI (CiviCoOp) extensions as well as Mosaico.
We have participants to our events that apply for funding (either travel, accomodation or both) through a Drupal (Civi Powered) form.
I need to be able to send automated user tailored emails when they submit the form.

Like

Dear {user},
Thank you for aply for funding for {event title}. We are considering your {type_of_funding} application and we will get back to you sortly.
Kind regards...

I can get the event to triger through CiviRules and EmailAPI, but I cannot (or more correctly do not know) how to create an email template that can feed of the {xxx info xxx} when the specific rule runs, so the email is user specific and friendly.

Kind regards
Aris

The list of tokens you see when editing a template changes depending on where you're editing from.  Unfortunately, CiviRules doesn't expose event/participant/contribution tokens in the drop-down - but if you use them in the email, they WILL work.

To see the tokens you may want to use, create a new Scheduled Reminder (**Administer menu » Communications » Scheduled Reminders), and create a new reminder based on an event.  You should be able to see event etc. tokens (see screenshot below).  Then either save as a new template, or simply copy the tokens into an existing one.


How do I add fonts to CiviCRM My organisation uses a few fairly standard fonts that aren't available in Civi, for mailing labels and letters and auto-response emails etc. - how can they be added?

They are several places where you can use fonts (by order of complexity):

1) web pages (eg contributions)
This one is simple, it's a matter of changing the css and possibly loading an extra bit of code (if you use google font for instance)
It's easier to do it from the theme of the CMS around your civicrm

2) mails
you can request to use a specific font (but you will need to inline the font, as most mail clients ignore stylesheets). If that font is already installed into the computer of the recipient, it will work, if not, you're out of luck

3) pdf
you will need to register these fonts (as new files) and so probably have to code
My experience with pdf is that it has several limitations (eg it isn't always unicode and you might lost some accentuated characters)

The last one I haven't tried, but can point you to were you might need to change the code:
CRM/Utils/PDF/Utils.php
CRM/Utils/PDF/Label.php

CiviCRM uses http://www.tcpdf.org as the library to convert to pdf, check there first

If you have full control on your server, you can as well configure civicrm to use wkhtmltopdf, it should be as simple as the case 1 to add custom fonts to your pdf


Batch Update Relationships Is there a way to batch update relationships, specifically the type of relationship along with the start and end date?

I don't see the fields to add to a profile to do a batch update. I also don't see a way on import to add a start and end date to the relationship mapping.

This is possible in one of two ways:

Use the API CSV Import GUI extension.  This will allow you to import relationships with start/end dates.  As a matter of workflow, you'll probably end up exporting existing relationships and reimporting via the extension.
Make the changes directly in SQL, in the civicrm_relationship table.

There's actions to add relationships between contacts and a household/organization in the search action menu, but what you're describing doesn't exist out of the box.  I certainly think it's a good candidate for a sponsored improvement though.


Dedupe rule ignores the location type for Email/Phone but does not ignore for Addresses. Should we make this consistent per the title, what do others think is the better behaviour

a/ ignore Location Type for Email, Phone, but use Location Type for Address (status quo)

b/ change so Location Type is never taken in to consideration (ie Address would be treated same as Email, Phone)

c/ change so Email/Phone also have Location Type taken in to consideration when applying matching rules.

Reason for asking is we got caught out using a rule with postcode. We expected the postcode to be location agnostic. Seems it isn't.

B please. This has been a point of frustration when importing. Make the location type simply a label without deduping consideration.

I thought it always takes into account location type.


Exclusive Relationship to organisation I'm trying to find a best way to setup relationships to the Club that would only "allow" one person to be ex. "Secretary", "Coach" etc. Can this be done via Rules (either CiviRules or Drupal) or database trigger or, hopefully not, a custom module?
So basically, when a person gets assign a role, whoever had that role previously has the relationship removed or ended or de-activated.

I can answer for CiviRules: at the moment there is no such combination of condition and action available in CiviRules.

But there is no stopping you to develop (or have someone develop) such a combination for you. It does not sound too complicated for someone familiar with CiviRules.

Do you have the ability to develop this yourself? The condition would be 'relationship is of the type(s)' (that one already exists) and the action 'de-activate previous relationship' would have to be developed.

There is documentation on CiviRules here: https://docs.civicrm.org/civirules/en/latest/.

Documentation on how to develop your own action is here: https://docs.civicrm.org/civirules/en/latest/create-your-own-action/


Joomla installation error: Please enter a package folder. Unable to find install package When I tried installing by uploading the package file, nothing happened. Then I tried exactly as the installation guide says for Joomla and I get this error:
Please enter a package folder.
Unable to find install package

This is a new Joomla installation 3.8.5, I am trying to install CiviCRM 4.7.31. I have PHP 5.6. I'm hosted on a shared server so not sure how to check the PHP extensions and configuration or the MySQL version with my cPanel.

I have never used CiviCRM before but I have been using Joomla for years and never got that error with any installation packages.

I would love some help and am looking forward to your support.

First of all, my apologizes for my english, it is not very fluent.
Now, my answer:
Have you checked if this version of CiviCRM is compatible with your host PHP version?
CiviCRM package is not an Autoinstaller Package as many other extensions: components or plugins.
I think the process to install is:
-Upload the compressed CIVICRM package (Check than is a Joomla version) to the 'tmp' folder of your Joomnla installation. Uncompress-Expand it.

-Now, in your tmp folder there must contains a folder 'com_civicrm/
In administrator/extensions/install-uninstall/install from directory add the /com_civicrm/ subfolder at the end and click install.
If everything goes right you will get a 'component successfully installed'.

The link to Civicrm help : https://docs.civicrm.org/sysadmin/en/latest/install/joomla/

Good Luck!
Francesc


Email from case - subject line change to Case ID I'm looking to swap out the hashed ID for the case ID in Case emails (now that email processing works for this and you can search by case id.)

I've looked through the two related posts here on stack and the issue on JIRA but can't find specifics.

I can adjust the Cases - Send Copy of an Activity template but that only affects copies of any activity sent, NOT emails that are sent. (In case it's helpful to anyone finding this post - the token is {$caseID}.)

In this post answer Demerit says "we removed the hash and just use the actual case id by editing the civimail template" but I've not had any luck yet with the one case template there is.

(Civi 5.5.3)

For Emails sent from Manage Case to case roles, there is hook_civicrm_alterMailParams that can be used to alter the subject. Here's some (maybe-not-the-greatest) code I have from an earlier customization. Note that the logic here will remove the hash whether it actually finds the case or not, which was desirable at the time but in those weird scenarios you might prefer it to leave the hash, in which case just move that part down inside the if ($case_id) block.

function myextension_civicrm_alterMailParams( &$params )
{
    if (preg_match('/\[case #([0-9a-h]{7})\]/', $params['subject'], $matches)) {
        $key = CRM_Core_DAO::escapeString(CIVICRM_SITE_KEY);
        $hash = $matches[1];
        $sqlParams = array(1 => array($hash, 'String'));
        $case_id = null;
        $dao = CRM_Core_DAO::executeQuery("SELECT id FROM civicrm_case WHERE SUBSTR(SHA1(CONCAT('$key', id)), 1, 7) = %1", $sqlParams);
        if ($dao->fetch()) {
            $case_id = $dao->id;
        }
        $dao->free();

        // remove the case # part - can't do it through message templates since hardcoded in Contact/Form/Task/EmailCommon.php. Note also Activity/BAO/Activity.php removes it before saving on the case but that's after it sends it.
        $pos = strpos( $params['subject'] , '] ' );
        if ( $pos !== FALSE ) {
            $params['subject'] = substr( $params['subject'], $pos + 2 );
        }

        // Now add the real case id if found
        if ($case_id) {
            $params['subject'] .= " [case #{$case_id}]";
        }
    }
}


civi case API unable to create case Using CiviCRM API v3 Explorer, i can create case without any problem. I can see the new case on case dash board, but using the  php script, there are an error exception happen

  Fatal error: Uncaught CiviCRM_API3_Exception: [unknown error: DB
  Constraint Violation - case_type_id should possibly be marked as
  mandatory for Case,create API. If so, please raise a bug report.
  thrown in
   /idev/joom/administrator/components/com_civicrm/civicrm/api/api.php
  on line 45

Here is the snippet code

http://prntscr.com/n17bng

this is the output

http://prntscr.com/n17c6f

Changing code to

http://prntscr.com/n17cky

get this error

http://prntscr.com/n17cqv

Using the explorer code, all is running well

http://prntscr.com/n17d48

Anyone know why this happen ?

Thank you

It looks like you've found a quirk with the explorer where it's smart enough to convert your string to a number, but when run outside the explorer it's expecting a number for case_type_id.

Use case_type_id = 1, which corresponds to housing_support, which you can see by doing a ('CaseType', 'get') call.

Note that if your script is standalone, i.e. not running within an extension or something where you are already logged in, your bootstrapping needs to include something that logs you in, e.g. cv api --user=CMSUser, where CMSUser is the login name for some user with permission to create cases in your CMS.


What do these iATS - SOAP errors mean? We are a new iATS client and have hit a bit of a roadblock.

I followed the iATS extension instructions here for setting up the payment processor.  On my local dev environment, things went great and I was able to process a contribution using the TEST88 information without a problem.

When I tried to set up the iATS payment processor on our live production server and tried a contribution in the same manner, I received a white screen with the following error:

  Fatal error: Call to a member function __getLastResponseHeaders() on a
  non-object in
  /~oursite.org~/sites/default/files/civicrm/extensions/com.iatspayments.civicrm/CRM/iATS/iATSService.php
  on line 202

Following the debug advice from the iATS instructions (I turned on Drupal/CiviCRM logging) and tried again.  I received the same white screen and error.  I checked the Drupal logs and received the following error, notice and warnings:

  Type: civicrm_iatspayment_com SoapFault: SoapFault Object (
      [message:protected] => SOAP-ERROR: Parsing WSDL: Couldn't load from 'https://www.iatspayments.com/NetGate/ProcessLinkv2.asmx?WSDL' :
  failed to load external entity
  "https://www.iatspayments.com/NetGate/ProcessLinkv2.asmx?WSDL"
  [the error in the logs is rather long and shows sensitive information, so I've truncated it]

  Type: php --  Notice: Undefined variable: soapClient in iATS_Service_Request->request() (line 202 of
  /~oursite.org~/sites/default/files/civicrm/extensions/com.iatspayments.civicrm/CRM/iATS/iATSService.php).

  Type: php --  Warning: SoapClient::SoapClient(https://www.iatspayments.com/NetGate/ProcessLinkv2.asmx?WSDL):
  failed to open stream: operation failed in
  iATS_Service_Request->request() (line 161 of
  /~oursite.org~/sites/default/files/civicrm/extensions/com.iatspayments.civicrm/CRM/iATS/iATSService.php).

  Type: php -- Warning: SoapClient::SoapClient(): Failed to enable crypto in iATS_Service_Request->request() (line 161 of
  /~oursite.org~/sites/default/files/civicrm/extensions/com.iatspayments.civicrm/CRM/iATS/iATSService.php).

  Type: php -- Warning: SoapClient::SoapClient(): SSL operation failed with code 1. OpenSSL Error messages: error:14077410:SSL
  routines:SSL23_GET_SERVER_HELLO:sslv3 alert handshake failure in
  iATS_Service_Request->request() (line 161 of
  /~oursite.org~/sites/default/files/civicrm/extensions/com.iatspayments.civicrm/CRM/iATS/iATSService.php).

Searching Google for "SOAP-ERROR: Parsing WSDL" related to iATS and CiviCRM, I found this comment and this GitHub issue by Joe Murray indicating that the issue could be related to inadequate SSL Protocols.  This announcement from iATS also seemed to indicate that.

I've taken the last two days to upgrade our OpenSSL to 1.0.2g and adjusted our SSL Protocols to only accept TLSv1.2.  The SSL Labs SSL Server Test had initially rated us at a C, but after upgrading OpenSSL and the SSL Protocols, we now rate at an A-.

Having updated our security settings, I cleared caches in both CiviCRM and Drupal and attempted our test contribution again, using the TEST88 information.  We still receive the same white screen error in the browser and the above error, notice and warnings in the Drupal logs.  I also tried using our actual account information with iATS.  Same result.

Any ideas on what to try next?

iATS extension 1.5, CiviCRM 4.6.14, Drupal 7, Apache 2.2.24, OpenSSL 1.0.2g

Turns out the issue was our server's operating system. We were on CentOS 5.5, and it doesn't support OpenSSL higher than 0.9.8. We had to upgrade to a new server. We decided on a CentOS 7 server and are in the process of migrating. The CentOS 7 server came with OpenSSL 1.0.2 installed. I setup and tested our connection with iATS today and had it working in no time at all. Hooray!

While I had manually updated OpenSSL, I neglected to update it with our server's package manager (and our website would only recognize what the package manager was using). But it turns out with CentOS 5.5, the yum package manager only goes up to 0.9.8e. There was no way around it.

There are so many benefits to CentOS 7 over 5.5, even with all the migration work, I'm glad we made the change.


CIVIEVENT shopping cart status I'm considering testing the shopping cart functionality in CiviCRM's CiviEvent module (installed here with Drupal 7) and was wondering if anything has changed in the description page on the CiviCRM site that includes bug reports. I saw it was last updated in 2013 - thought I'd check.

Thanks!

There have been no significant changes or modifications to the shopping cart functionality in CiviEvent. You might want to give it a shot and see if it does work for you and/or meets your needs.

I suspect that code needs some love and care and might require some developer skills to fix and improve. There is no maintainer for that part of the civievent code base


Mass upload of file to records I have a bunch of certificates which are scanned as images that needs to be uploaded into the correct record to be attached in the Certificate file field.  Can this be 'imported' like how you can import data into CIVICRM contacts ?  Thanks.

Clement

This should be fairly simple to script using the Attachment api.  For docs, go to https://dmaster.demo.civicrm.org/civicrm/api#docs and select Attachment as the entity which has an example of using create with a custom field.


How can I see which contacts have been assigned which roles and permissions? How can i find out which contacts have been assigned which roles? I am looking to ensure that only a few key staff can access and edit our database...
I can see we have two roles set up but I don't know how to find out who has been assigned which role...

Welcome to SE! The place to start is in the documentation about roles and permissions at https://docs.civicrm.org/user/en/latest/initial-set-up/permissions-and-access-control/

It does depend on the CMS as Jaap says, but they are all covered here. You will see who is assigned to which role in the CMS (Its under Users in WordPress) but then you need to allocate permisssions to these rolls to control which CiviCRM features each role has. There are some more complex option too, with roles and permissions specific to CiviCRM, but you probably don't need these.


Dead links on events, donations, pretty much anything I create I'm in the middle of an install and stuck on a couple issues.
I've been all over this StackExchange yet I can't seem to make basic CivicCRM links work in a couple of sections in the site I'm trying to deploy.

CiviCRM 5.27.0 running on Wordpress 5.4.2 on top of Ubuntu
Yes, my WP permalinks is set to "post name"
yes, I have an .htaccess and it looks like this:

<IfModule mod_rewrite.c>
RewriteEngine On
RewriteBase /
RewriteRule ^index\.php$ - [L]
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule . /index.php [L]
</IfModule>

yes, Apache is set up to obey that .htaccess for this site

yes, my Administer -> System Settings -> CMS Database Integration is set, and it's set to https://crm.[siteiamdeploying].org/civicrm/

yes https://crm.[siteiamdeploying].org/civicrm/ is a page that exists and loads

... yet when I do things like:
a) Create an event, flesh out its details and see links like
TEST: https://crm.[siteiamdeploying].org/event/register/?reset=1&action=preview&id=98
LIVE: https://crm.[siteiamdeploying].org/civicrm/event/register/?reset=1&id=98
Or, for example, set up a DONATE page and then attempt to load that page by doing
Civicrm-> manage contribution pages -> set up a contribution page ->
... then use that pages "links -> Live page" or "links -> Test page" links to try and load those pages, i.e.
https://crm.[siteiamdeploying].org/civicrm/contribute/transact/?reset=1&id=4
... all I get on those links is the default WordPress "not found" page, i.e.
"Oops! That page can’t be found.
It looks like nothing was found at this location. Maybe try a search?"
And I can see these  404'ing/ erroring out in the Apache access logs like this
67.160.XX.XX - - [06/Oct/2020:02:15:54 +0000] "GET /civicrm/contribute/transact/?reset=1&id=4 HTTP/1.1" 404 60939 "-" "Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:81.0) Gecko/20100101 Firefox/81.0"
Can somebody point me in the right direction and/or towards sensible debug logs or processes before I start throwing heavy things at my monitor?

Do you have CMS integration set in your system? You need to have default page or post in WordPress and have it set in CMS integration


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

Thanks!

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


Contribution Tab not visible after upgrade to 5.2.1 after upgrading CiviCRM 5.2.1 in contacts I contribution tab disappeared.

And "Contribution" is checked in Display preferences.

I discovered that it depends that when I save admin/setting/preferences/display there is not saved the value 7 for CiviContribute in table civicrm_setting. I have executed this query update:

UPDATE `civicrm_setting` SET `value` = 's:27:\"123457910111314\";' WHERE `id` = 1

I do not know what it depends...

I have another strange thing: the field civicrm_option_value.label is missing (there are label_it_IT and label_en_US instead).

I updated CiviCRM from version 4.7.27 and my database has a lot of views. I notice recent CiviCRM database does not have views instead.

What do you suggest me?
Thanks

Switch in English language. In "display preferences" you will find the un-flaged contribution field. Flag it and return in Italian language. You will see that it works. I do not know what the reason is, but it works.

"...a buon rendere!"    ;)


Bugreport: Impossible to create more than 25 events I tried to create events. For the first 25 events it worked fine, after 25 events, I got an access denied error instead of the event configuration page:

  "Entschuldigung, eine Bereitstellung ist uns gerade nicht möglich. Sie
  haben nicht die notwendigen Berechtigungen, um diese Seite
  aufzurufen."

The event is created in the database table civicrm_event but not shown in the event overview in civicrm. If I delete some rows in the sql database civicrm_event, I can create events again up to 25.

I turned on the debug mode. I think, this query is the problem:

  CRM_Core_DAO: CONNECT: Checking for database specific ini ('') :
  database_ in options CRM_Core_DAO: QUERY: SELECT a.id as id, a.title
  as title FROM civicrm_event a LIMIT 25 OFFSET 0

  CRM_Core_DAO: query: QUERY DONE IN 0.000273 seconds. Result is 25 rows
  by 2 columns.

So the resultset has only the first 25 rows and the created event isn't in the resultset.

I use civicrm 4.7.19 with drupal 7.54

I would recommend you apply the patch here https://github.com/civicrm/civicrm-core/pull/10325 There is a default limit on API calls to 25 records which is what your probably hitting here

Seamus


CIVICRM export des formulaires Bonjour,
je souhaites utiliser civicrm mais j'aimerais savoir si des extensions / plugins existent qui me permettent d'utiliser les formulaires (paiement, evenement, don, adhesion...) sur des sites sous wordpress, drupal, ou autre cms type spip par exemple.
Merci pour votre aide !

Hello, I want to use civicrm but I would like to know if extensions / plugins exist which allow me to use the forms (payment, event, donation, membership ...) on sites under wordpress, drupal, or other cms type spip for example. Thanks for your help !

Bienvenue sur Stack Exchange. Il existe de nombreuses extensions qui peuvent être ajoutées à CiviCRM qui étendent / ajoutent à la fonctionnalité. Vous pouvez voir une liste des extensions publiées / révisées sur CiviCRM.org et de nombreuses extensions non publiées sur GitLab

Si vous utilisez WordPress, il existe également des plugins spécifiquement liés à CiviCRM qui permettent l'intégration, comme avec les formulaires Caldera.

Welcome to Stack Exchange. There are many extensions that can be added to CiviCRM which extend/add to the functionality. You can see a list of published / reviewed extensions on CiviCRM.org and many unpublished extensions on GitLab

If you use WordPress, there are also plugins specifically related to CiviCRM which allow integration such as with Caldera forms.


Scheduled reminders working for some but not all Drupal 7.41, Civi 4.6.9

The scheduled reminders are working except for 1 or 2 per day might not be sent.  It appears random which ones don't get the reminder sent.  The 1 or 2 a day is based on a rather small sample size.  This client doesn't have all that many memberships so it's usually 5 or less reminders for any given day.  Sometimes none are sent.

I have looked at the members/memberships that don't get reminders and I have not been able to find a reason those members didn't get a reminder while others have on that same day.  If anyone has experience with this I would sure appreciate any help you might have.

I believe this is a bug and I have submitted an issue: https://issues.civicrm.org/jira/browse/CRM-17880.

Basically, if there is a previous entry in the civicrm_action_log (like from last year) with the same action_schedule_id (same reminder) no new reminder is sent.


4.7.29 not installing on test site Trying a test install of CivicCRM 4.7.29 for Wordpress before purchasing. Not going well.
As we attempt to install as a plugin, we get the following error msg:

Warning: POST Content-Length of 26644350 bytes exceeds the limit of 8388608 bytes in Unknown on line 0

Are you sure you want to do this?

When we try again, same result.

This install is on a WP test site on an XAMPP install on a local machine.  I'm assuming the length limit is controlled by a setting in some conf file, but the error msg is not at all intuitive as to which file it is addressing.
Can't purchase if we can't install it.....

First, CiviCRM is always available freely, and never for sale. You shouldn't be purchasing CiviCRM from anyone (CiviCRM installations are different). It's free to download, use, and install yourself, without limitations. If anyone is trying to charge you for a CiviCRM license, please take them to court for fraud by misrepresentation.

At which stage are you getting this? Which tables have been created in the DB?


Does Authorize.net's MD5 Hash End-of-Life affect CiviCRM? Regarding:
https://support.authorize.net/s/article/MD5-Hash-End-of-Life-Signature-Key-Replacement

  Authorize.Net is phasing out the MD5 based hash use for transaction response
  verification in favor of the SHA-512 based hash utilizing a Signature
  Key. The end of life for MD5 Hash will be done in two phases: Phase 1
  - Starting later this month to early February 2019, we will remove ability to configure or update MD5 Hash setting in the Merchant
  Interface. There are no changes to the existing API response.

  Phase 2 - Stop sending the MD5 Hash data element in the API response.
  This change will require that applications support the SHA-512 hash
  via signature key.  Dates for phase 2 will be announced later but is
  expected in the next 2-3 months.

  When you receive a transaction response from Authorize.Net, it
  includes the a SHA2 hash element the name and position depend on the
  API integration method used. The SHA2 has field contains HMAC-SHA512
  hash that Authorize.Net generated for the transaction.

Is CiviCRM's Authorize.net implementation affected?

There is a PR from Monish to remove md5 hash support from Authorize.net payment processor in CiviCRM. Its now merged in master branch and should be part of 5.11 release.

Cheers

Pradeep


How to fetch perticular column data of table? Currently I am using API for fetch the data.
I am creating an extension.
I want to fetch the particular column's data from the table. How will I get the data?

//getting id and name
public static function getName(){
 $data = ($id,$name);
  $result = civicrm_api3('Emp', 'get', [
      'sequential' => 1,
      'return' => ["id", "name"],
  ]);

  foreach ($result['values'] as $value) {
      $data[$id] += $value['id'];
      $data[$name] += $value['name'];

  }
  return $data;
}

  Select option using BuildQuickForm

$this->add('select',
      'name',         //field type
      'name', //field label
      $this->getName() //list (id, name)
      );

For every table CiviCRM has api, you can use following method to retrieve data by specifying return in api params.

1 - Get -  Returns one or more results and with N number of columns

$result = civicrm_api3('Contact', 'get', [
  'return' => ["id", "display_name"],
  'contact_sub_type' => "Parent",
]);

2 - GetValue - Returns only single result and with single column (make sure to use id in filer or limit =1 else the api will throw error if the api returns more than one results)

$result = civicrm_api3('Contact', 'getvalue', [
  'return' => "display_name",
  'id' => 1,
]);

3 - GetSingle - Returns only single result and with N number of columns (make sure to use id in filer or limit =1 else the api will throw error if the api returns more than one results)

$result = civicrm_api3('Contact', 'getsingle', [
  'return' => ["display_name", "email"],
  'id' => 1,
]);

Incase if you want to retrieve from custom table created using extension then you will need to make sure you have

New entity defined -
DAO for the table
api with create, delete and get action

You can use Civix to create new entity which will create above 3 points automatically for you.

Then you can use below snippet to build your select field

    $this->add('select',
      'name',         //field type
      ts('Name'), //field label
      CRM_Utils_Array::collect('name', civicrm_api3('Emp', 'get', [
        'return' => ["id", "name"],
      ])['values']) //list (id, name)
    );

HTH

Pradeep


How can I make it easier for users to generate the reports they need? I am working with an organisation that uses CiviCRM to record information about their clients.  They need to generate reports on a quarterly basis that summarise their work with clients.  The reports need to segment the data by factors such as age range, gender, ethnicity, postcode etc.

None of the standard reports generate the information that they need so they use advanced search to obtain the figures for the reports.  This gives them the information they need however it can be quite tricky to set up the appropriate searches. They also need to run the search several times for each age/gender/ethnicity etc.

Some examples of the types of reports they need (all figures are for the last quarter):

number of clients referred - split by ward
number of clients supported - split by ethnicity and gender
number of clients supported - split by age range (e.g. 16-17, 18-19, 20-25, etc.)
number of hours of support provided
number of sessions delivered per ward

How could reporting be made easier for them?

We have had great success using Jasper Reporting with CiviCRM.

It does require knowledge of the underlying CiviCRM database, and writing SQL against it, but the formatting capabilities are powerful and fairly easy to use.

Once a report is created, it can easily be added to the CiviCRM menu.

More details here: https://civicrm.org/blogs/lcarter/civicrm-and-jasper-reports