Error using Drush and Civi API when adding data to a custom field with multi-select data I have been trying to create contacts data using Drush and the CiviAPI.  I get an error when I try to add data to a multi-select field despite using exactly the same syntax that the API explorer gives me.

I have a custom field (machine name: custom_10) that takes up to 5 options. As an example, If I use the API explorer to create the following output, I get this:

drush cvapi Contact.create contact_type="Individual" contact_sub_type="MySubType" custom_10=[1,2,3] first_name="John" last_name="Doe"

Executing this though the API explore works fine, but if I copy the drush line and execute it, the array data for custom_10 causes an error:

Array
(
    [error_field] => custom_10
    [error_code] => 2001
    [entity] => Contact
    [action] => create
    [is_error] => 1
    [error_message] => '1,2,3' is not a valid option for field custom_10
)

executing a single option with custom_10=1 will work fine.  I have tried various different syntax but cannot get it to take.  Has anyone else had this issue with the Drush approach for arrays in Custom fields?

I have no issues adding anything else Contact wise including chaining for additional emails.  It is just fields that have arrays of data.

I'm pretty sure you're running into the same problem I've documented on Gitlab as issue #298 - basically, API Explorer doesn't return correct code when you need to pass in an array.


DB error: No such field (Civi 4.7.15) I've gotten No such field errors for no apparent reason since my first Civi installation, but one that I haven't been able to shake is preventing creation of any payment processors. It looks like this:

On the Add Payment Processor form, I submit the completed form and this appears ...

CiviCRM_API3_Exception: "DB Error: no such field"
#0 /PATH-REDACTED/wp-content/plugins/civicrm/civicrm/CRM/Admin/Form/PaymentProcessor.php(430): civicrm_api3("PaymentProcessor", "create", (Array:28))
#1 /PATH-REDACTED/wp-content/plugins/civicrm/civicrm/CRM/Admin/Form/PaymentProcessor.php(383): CRM_Admin_Form_PaymentProcessor->updatePaymentProcessor((Array:20), 1, FALSE)
#2 /PATH-REDACTED/wp-content/plugins/civicrm/civicrm/CRM/Core/Form.php(435): CRM_Admin_Form_PaymentProcessor->postProcess()
#3 /PATH-REDACTED/wp-content/plugins/civicrm/civicrm/CRM/Core/StateMachine.php(160): CRM_Core_Form->mainProcess()
#4 /PATH-REDACTED/wp-content/plugins/civicrm/civicrm/CRM/Core/QuickForm/Action/Next.php(61): CRM_Core_StateMachine->perform(Object(CRM_Admin_Form_PaymentProcessor), "next", "Next")
#5 /PATH-REDACTED/wp-content/plugins/civicrm/civicrm/packages/HTML/QuickForm/Controller.php(203): CRM_Core_QuickForm_Action_Next->perform(Object(CRM_Admin_Form_PaymentProcessor), "next")
#6 /PATH-REDACTED/wp-content/plugins/civicrm/civicrm/packages/HTML/QuickForm/Page.php(103): HTML_QuickForm_Controller->handle(Object(CRM_Admin_Form_PaymentProcessor), "next")
#7 /PATH-REDACTED/wp-content/plugins/civicrm/civicrm/CRM/Core/Controller.php(351): HTML_QuickForm_Page->handle("next")
#8 /PATH-REDACTED/wp-content/plugins/civicrm/civicrm/CRM/Core/Page/Basic.php(384): CRM_Core_Controller->run()
#9 /PATH-REDACTED/wp-content/plugins/civicrm/civicrm/CRM/Core/Page/Basic.php(168): CRM_Core_Page_Basic->edit(1, NULL)
#10 /PATH-REDACTED/wp-content/plugins/civicrm/civicrm/CRM/Admin/Page/PaymentProcessor.php(117): CRM_Core_Page_Basic->run()
#11 /PATH-REDACTED/wp-content/plugins/civicrm/civicrm/CRM/Core/Invoke.php(310): CRM_Admin_Page_PaymentProcessor->run((Array:3), NULL)
#12 /PATH-REDACTED/wp-content/plugins/civicrm/civicrm/CRM/Core/Invoke.php(84): CRM_Core_Invoke::runItem((Array:13))
#13 /PATH-REDACTED/wp-content/plugins/civicrm/civicrm/CRM/Core/Invoke.php(52): CRM_Core_Invoke::_invoke((Array:3))
#14 /PATH-REDACTED/wp-content/plugins/civicrm/civicrm.php(1227): CRM_Core_Invoke::i

Where should I begin?

The solution was to upgrade the database following my CiviCRM version update. Detailed instructions for doing this are at https://wiki.civicrm.org/confluence/display/CRMDOC/Upgrading+CiviCRM+for+Wordpress#UpgradingCiviCRMforWordPress-4.RuntheUpgradescript

Once I had completed this relatively simple process, I was finally able to add payment processors without throwing errors. And just as exciting, the System Status in the Civi admin footer finally switched from "Critical" to "OK."


How can I create a membership number? Is there a way to automatically create membership numbers for members?

There is the CiviCRM ID but this applies to all contacts, not just members.  I'm looking for a way to create a number that only applies to members.

This question was asked a few years ago on the forums (Membership number/code) but I wonder if there have been any developments since then.

I'm not sure whether it would be any use to you but there is a CiviCRM Core  Extension called "Custom Membership ID" by Grant Traynor which is at the following link Custom Membership ID


How can people view which mailing lists they're subscribed to? We have a number of mailing lists for various topics, and sometimes people aren't sure which ones they've subscribed to. I would like to send a newsletter to our main mailing list (group) with an option to go to a form (profile) that lists ALL the mailing lists/groups the person is included in. Ideally the form would allow them to unsubscribe from any they don't want to be in as well.

Please help!

Have a look at the CiviCRM Tokens wiki page: http://wiki.civicrm.org/confluence/display/CRMDOC/Tokens

I think the one you'll be most interested in is {action.subscribeUrl} which provides a link to view and subscribe to any public mailing lists.

You could also build a profile with the groups field in it and sent it out via a checksum token. This will link the details to their record and allow them to update. This is useful if you want them to be able to update other information at the same time.

Full details on the checksum token at the bottom of the wiki page.


adding btcpay as a payment processor Is there a simple way to add btcpay as a payment processor? They have the same api structure as bitpay, and there is a plugin for that. But Is hardcoded to bitpay, and would need to be changed to work with btcpay.
I tried making this an issue on github, https://github.com/nickcalyx/Bitpay-for-Civicrm/issues but they just wanted me to pay them. understandable, but I dont have a budget for this project yet, thats why i'm trying to setup crowdfunding.

There is a new BTCPay extension for CiviCRM.  Source


cron.php error with joomla 3.4 uri.php I'm running civicrm 4.4.19 with Joomla 3.4.4. Sometime back in September my scheduled crons stopped running. Debugging shows that it is throwing an error of:

Fatal error: Class 'Joomla\Uri\Uri' not found in /home/XYZW/public_html/libraries/joomla/uri/uri.php on line 24

I've gotten the same error both by using the cron execution of the php file and by browsing to:

http://sitename.org/administrator/components/com_civicrm/civicrm/bin/cron.php?name=USER&pass=PASSWORD&key=SITEKEY

I get the same error if I type the wrong username or password, but not the key (then I get invalid key error).

It looks like the cron had stopped working when I updated from Joomla 2.5 to 3.4 back in September.

Ideas?

I had exactly this problem too and it seemed to me that the missing class should have been loaded earlier in the sequence. In Civi 4.6 there is an extra statement on line 646 of /home/[USERNAME]/public_html/info/administrator/components/com_civicrm/civicrm/CRM/Utils/System/Joomla.php so I made my 4.4.20 version look like this (with Joomla 3.4.5):

if( version_compare(JVERSION, '3.0', 'lt') ) {
  require $joomlaBase . '/libraries/joomla/environment/uri.php';
  require $joomlaBase . '/libraries/joomla/application/component/helper.php';
}
else {
  require $joomlaBase . '/libraries/cms.php';
  require $joomlaBase . '/libraries/joomla/uri/uri.php';
}

It is the require $joomlaBase . '/libraries/cms.php'; statement that I added.

I am not sending mail at the moment but at least the crons have stopped sending me error messages every 10 minutes. I could not upgrade to 4.6 so this will have to do for me for now.


Admin permissions are required to set 'limit to' or 'also add' participant role for scheduled reminders? We have noticed that if you don't have CiviCRM:Administer CiviCRM permissions, in scheduled reminders for an event if 'limit  to' (or 'also include') is set to 'participant role', the drop-down box for which participant role does not appear. So they can select 'limit to' (or 'also include') and 'participant role', but not then select a role.

We would like non-adminstrator level permissions (with all relevant event-level permissions) to be able to select which participant roles an event scheduled reminder is limited to (or adds on).

This feels like a bug to me? Any advice?

Two explanations come to mind:

Scheduled reminders are often set up by administrators so in many
cases the current arrangement is fine.
CiviCRM:Administer CiviCRM is a
default requirement so it is possible no-one has worked through what
permissions make sense if it is not an administrator configuring the
reminders.

I'd suggest you create an issue at https://lab.civicrm.org/dev/core/issues and describe how you think the permissions should work in that area.

However, unless you can contribute code or sponsor someone to do the change, it is unlikely to be implemented quickly - but you might get lucky: sometimes people getting started with Civi development are looking for small changes to work on.


How to make the SyntaxConformanceTest use sensible values when it calls the create action of my new API? I created a patch for CiviCRM that allows saved searches to be created using the API.

Now it turns out that this SavedSearch API does not pass certain syntax conformance unit tests.

One of the problem is that some of the tests try to create a new saved search, and they try to assign a string like form_values_273form_values_576 to the form_values field of the saved search entity.

The saved search BAO expect form_values to be a serialized array, and because form_values_273form_values_576 obviously is not, errors occur, causing some the unit tests to fail. (see e.g. line 239 of /CRM/Contact/BAO/SavedSearch.php)

Is there a way to make those unit tests use a sensible value for form_value? NULL should do as well, I guess.

For most of the tests, it was sufficient to provide an assignTestValue method in the SavedSearch BAO.

This did not solve the problem though for testCreateSingleValueAlter.


How can i check current user is administer in civicrm hook? I am using the hook_civicrm_tabset for rename the tab name. Tab rename code is working properly. But i want to add condition if user is admin then rename the tab name. How can i check user is admin in hook_civicrm_tabset hook.

You could use something like CRM_Core_Permission::check('administer CiviCRM') which returns true or false depending on if they have that permission.


Dedupe Rule not working My Dedupe rule is not working at all. I have it set to first name, last name, phone all with a weight of 10 and a weight threshold of 30. It appears like it is not working at all. I have many people that match on all 3 fields that are creating duplicates. This is happening on both contribution pages and event forms. Do I have the rule set up incorrectly or am I missing anything?

Perhaps the best free explanation of CiviCRM's deduplication is from the CiviCRM blog last year (July 31, 2014): Understanding CiviCRM Dedupe Rules
For the whole process, I will let the author speak for themselves as it really is an excellent write up and worth reading in its entirety to understand the deduplication system.
For this question, I suspect the issue comes down to the usage of the rule.
Quoting the author of the blog post (from point 2):

Unsupervised rules are rules that are automatically checked when a user enters contact info into a form on the front end of the site (for example, when registering for an event, making a contribution, etc.). If a match is found, CiviCRM automatically merges the new contact into the old one, without checking with the user....

Supervised rules, on the other hand, are rules that are automatically checked when an admin or staff member enters info into the back end of the site (i.e., the admin interface). They do not automatically merge the contacts — they just trigger a pop-up suggesting that the contact may be a duplicate....

General rules are not triggered automatically at all. They can be run manually from the "Find and Merge Duplicate Contacts" page, or selected to run during a data import, but they do not ever just run on their own....

Rachel, based on your question, it looks as though your rule is setup correctly, but it is most likely set as a general rule, not the unsupervised rule for individuals. If you change the usage, I think you will find the results you're looking for.
Side note: for perhaps the best paid explanation, Civiteacher.com has excellent videos about CiviCRM deduplication.


Drupal webform billing fails: State/Province field is required On Membership payment, using Drupal Webform, someone living in Singapore (for example) can not pay, as State/Province is required and Singapore has no State/Province defined. Gibraltar has the same.

This seems to be new.
Do others have the same problem ?
Is there a way around it ?

NB. State/province, where applicable, should indeed be required for Credit Card transactions. Just not for Singapore, Gibraltar, etc.

EDIT at the request of @Karing-semper-it , some screenshots

There is no difference in the gui before submitting:

However, after submitting, webform complains about a missing state/province, and civicrm does not

Singapore does not have States/Provinces but there are Regions. But these have not made the list. You can add the regions to the civicrm_state_province table via the API Explorer

In Civi go to Support > Developer > API Explorer

In Entity select StateProvince
In Action select Create
For Parameters:
     State = Central Region
     State Abbreviation = CR
     Country = Singapore

Scroll down and you will see an Execute button. Click that and confirm Write to Database

You can repeat this for each Region or you can do as Karin suggested and just create one state "Singapore"


CiviMobileAPI / CiviCRM WP REST API error, and possibly related: WordPress - Site Health reporting REST API errors Issue started when getting an error when trying to authenticate with CiviMobile - via phone. I msged the CiviMobile folk and they replied, copying me with this note:
When we use any CIviCRM API (For example: https://chasethemusic.org/wp-json/civicrm/v3/rest?entity=Contact&action=get&api_key=(*KEY1*)&key=(*KEY2)&json={"sequential":1}) we have the next error:
{
"code": "rest_not_logged_in",
"message": "You are not currently logged in.",
"data": {
"status": 401
}
} .
But we still think the problem related with WordPress code (plugins, maybe Core code). You can also address issue about this error to developers of "CiviCRM WP REST API" plugin(https://github.com/mecachisenros/civicrm-wp-rest).
At this point, I noticed a Word Press Site Health error -
The REST API request failed due to an error.
Error: [] cURL error 28: Operation timed out after 10001 milliseconds with 0 bytes received
and also a loopback error -
The loopback request to your site failed, this means features relying on them are not currently working as expected.
Error encountered: (0) cURL error 28: Operation timed out after 10001 milliseconds with 0 bytes received_
I disabled all WordPress plugins. Then, added them back. Turns out re-activating CiviCRM brings back these errors (which may be the cause of the problem with CiviMobile?).
WordPress Site Health contains critical errors unless CiviCRM is disabled
makes it seem like the problem/error isn't real. So, maybe it's not related to the CiviMobile API / CiviCRM WP REST API situation? But???
I don't know if you have any other hints on where I should look.
CiviCRM 5.28.2
WP 5.5.1
PHP 7.4.9
CiviMobileAPI 5.3.0
CiviCRM WP REST API 0.1
THANKS!
..clark

I was under the assumption that you do not require CiviCRM WP REST API plugin anymore if you are on 5.28.x
To ignore the Site Health error you install a small plugin that i have created.


Has anyone compared the two Sparkpost extension? Two Sparkpost extensions for Civimail have been released/updated in the last couple of days.

https://github.com/cividesk/com.cividesk.email.sparkpost

https://github.com/proexchange/com.pesc.sparkpost
Has anyone compared them to see which works best?

I've used them both. CiviDesk's version wins hands down on ease of installation as you just install and plug in your API from SparkPost. Also if I understand it, sending via the API is preferred.

PESC's version requires installation, update SMTP settings with those provided by SparkPost, and then configuring a Scheduled Job with API and other configuration settings.

One issue I am noticing on a site with CiviDesk's module is a high bounce rate reported in CiviCRM (bounces of type "Syntax") which are not actual bounces in SparkPost - but I may not have had the latest version. Testing now.


Is it easy to upgrade CiviCRM using drush? The standard upgrade process for CiviCRM is quite a complex process according to the instructions in the wiki.

Is it easier to use drush to upgrade CiviCRM?  If so, how do you do this?  I couldn't find any up to date documentation on this, so if you are able to point me in the right direction that would be greatly appreciated.

Thanks for your help.

To answer my own question, it is possible to update CiviCRM with drush but this isn't completely straightforward either.  For the benefit of others I post the steps I took below.
These steps must be executed in the root directory of Drupal:

put the site into maintenance mode: drush vset maintenance_mode 1
clear all caches: drush cc all
take a full backup of site and test that this works on a development server
upgrade CiviCRM: drush cvup --tarfile=<path to tarfile> --backup-dir=<path to backup dir>
upload the latest version of the localisation files and extract to sites/all/modules/civicrm/l10n
delete contents of sites/default/files/civicrm/templates_c/
take the site out of maintenance mode:drush vset maintenance_mode 0
clear all caches: drush cc all

Notes:

I was upgrading from CiviCRM 4.6.6 to 4.6.7.  If you are upgrading from an older version you may find that there are more steps.
The first time I tried to upgrade at step 4 this resulted in an error 'Your database has already been upgraded to CiviCRM 4.6.6' (note that I was trying to upgrade to 4.6.7). Repeating this step resulted in success. This bug appears to have been fixed.
It may be easier to manually delete and replace the civicrm folder as Laryn suggests.
I'm not sure if step 6 is really necessary.


civicCRM hangs. Crashes site php5.5/Mysql5.6

latest wordpress

civiCRM 4.6

host: ganfi.net

Install but then hangs, and hangs & eventually crashes site

FIX??

Look for error message in civicrm error log

.../wp-content/plugins/files/civicrm/ConfigAndLog

where you will get more details of the error

If you don't have any error message in civicrm logs look for PHP error logs where you will find it

refer: https://wiki.civicrm.org/confluence/display/CRMDOC/Debugging+for+developers

I guess this helps!!!


Why are duplicate activities being created? I have a client who has noticed that some activities that they create are being duplicated. I can see solid evidence of exact duplicates - apart from the id in the activity record.  In the activity table the 2 ids are consecutive, in the activity_contact table they are almost consecutive. The contents of the activity records are exactly the same - the created_date and modified_date are the same time to the second.  The client creates a lot of activities - there are about 220K activity rows and they do have quite a few users working simultaneously updating Civi.  This seems like a bug to me - any suggestions as to what else the problem might be?  This installation is running 5.13.5 with Drupal 7.67

Not sure if it's the same problem but it could be the submitOnce problem which has a temporary fix in 5.14.1 and a fuller fix pending but is an easy change you can make:

See https://github.com/civicrm/civicrm-core/pull/14545/files

i.e. remove the "submitOnce" line.

Briefly the popup version of activities conflicts with the extra javascript that submitOnce adds. The problem was reproduced on firefox - just create an activity using the popup version of e.g. a meeting, from the contact's record.


Dedupe rules for profiles in civicrm Is there any way possible to have dedupe rules specific to particular profiles instead of for whole contact feature?

Example:-

Profile 1:-

Name
Email
Dob
Gender

Profile 2:-

Name
Dob
Gender

Dedupe Rule 1:- Name AND Dob AND Gender

Above rule is defined which applies to both profiles

how make it specific to Profile 2?

There is no inbuilt way for doing this directly for Profiles with CiviCRM.

Event management is the only feature in CiviCRM that I know can do this since you can specify the Profile and the matching rule - not suggesting you have folk sign up to an event purely to achieve this but hey, you could ;-)

For Drupal users, you can build a webform_civicrm form and specify the fields and matching rules to apply and hence get very close to what you are asking for.


Change multi select custom field to single select? We need to convert a multi select box to single select, and the option for doing this in the Change Field Form window looks scary.

  Warning: This functionality is currently in beta stage. Consider backing up your database before using it. Click "Cancel" to return to the "edit custom field" form without making changes.

The option most suitable appears to be "Radio (not safe)". What does "not safe" mean? This field is a crucial element of our membership system and can't be at risk.

I am not sure what would happen if the field contains multiple values.

What I would do if I where you is the following:

Create a new field, exactly as you want.
Export your contacts with only 2 fields: internal id, and the multi-select field
Check the export and fix the records with multiple values
Import again, but then use the new field via import mapping
Check your data
Disable old field (disabling means you can enable again when needed)
After a few months and no need to see the old field -> Delete old field


Wordpress Starter Kit I'm familiar with Drupal / Drush / Civicrm Starter Kit but is there a Starter Kit or sample theme for Wordpress?  I've used WP-CLI and stumbled on civicrm wp-cli but basically looking for a quick start to customize...

Try just using the regular installation process--it should be simple enough.  You won't find or want to work with a different theme for the backend of CiviCRM, and on the front, you should find that CiviCRM works well in most cases.

Now in 4.6, CiviCRM will set up a base page for you, so it's one step easier, too.


Changing default text on Thank You Screen My company uses thank you screens for event registrations. The screen has this text on a green background: "Your registration has been submitted. Once your registration has been reviewed, you will receive an email with a link to a web page where you can complete the registration process."

We don't use the built-in 'web page where you can complete the registration process' and really want to replace this text, but I can't see where to do that. Can anyone help?

Related to this, the 'introductory text' field on the thank you screen never seems to work.

Thanks!

Try Word replacement (more like sentence replacement) in your case. Here is a how to:

https://www.cividesk.com/blog/did-you-know-any-word-or-phrase-civicrm-can-be-replaced-another-one


Is there a limit to how many activity types we should create? We use Schedule Reminders to set up email series for a very wide range of interest groups. With conditional funnels using smart groups, like Mailchimp conditional campaigns.

The easiest way to initiate these Schedule Reminders is from activity types, but we've hesitated to make an activity type for every new event or campaign since we'd soon have many hundreds. Instead we make activity types that cover generic topics and then use groups to limit which people will receive schedule reminders. It's a bit of a dangerous method - if you forget to limit a schedule reminder to a group you could send out emails to many people who haven't asked for them!

So... would there actually be any impact in terms of performance if we were to have many hundreds - perhaps eventually a thousand or more - activity types?

Thanks for your thoughts!

Although I am not sure what the exact impact on performance would be, it does not sound as a good idea. An activity can already be linked to a campaign, to make specific types for each campaign or event sounds like a bit of a nightmare.

Have you considered using the CiviRules extension (https://civicrm.org/extensions/civirules and documentation on https://docs.civicrm.org/civirules/en/latest/) for sending these emails? I reckon that might make life a little easier than creating hundreds of activity types, specific for each campaing or event.


CiviCRM Extension not grabbing latest release Submitted a new release and matched the info.xml file to the release number but Civi Extensions directory still hasn't picked up the new release yet. Any ideas why?

https://civicrm.org/extensions/authorizenet-echecknet

You have to turn on the automated-discovery of new releases by including the git url when you edit your extension node, or you can manually tell Civicrm.org about your new release by clicking on the 'Add CiviCRM-native release' link when viewing your extension page while logged in.


GDPR Communication Preferences Compulsory I am using Civirm 5.1 on Joomla and using the GDPR extension to update Communication preferences. The org has only 1 public facing group with just 1 Mailing list - and the entire purpose of the communication is to ask people if they wish to sign up. If they do not repond they will be removed from Group and if they do respond it is ONLY for the purpose of asking to receive newsletter. Therefore, we need to make the Mailing Group compulsory to sign (as opposed to optional). We do not want form used if you do not want newsletter.

see form here

https://peoples-press.com/index.php?option=com_civicrm&task=civicrm/gdpr/comms-prefs/update

1 tick box option to MS Newsletter - any ideas how to make compulsory in settings?

One route is to do the following:

Modify the section

  Communication Preferences
  We want to ensure we are only sending you information that is of interest to you, in a way you are happy to receive.

to make it clear that by signing up they are signing up to the Newsletter

then in Comms Pref settings page, untick the "Allow users to opt-in to mailing groups"

then on your MS Newsletter profile - use the Adv Settings to 'add them to group'

i think that makes it really clear what folk are signing up for
and removes the extra tickbox for the newsletter from the form


How can Stripe extension create contact sub-type? We implemented the Stripe extension for online payments and are delighted with it. Using a standard contribution page (not a webform) new contacts are created as the basic contact type of 'Individual'. But... we have sub-typed contact types and would like the contact type created here to be a contact sub-type of 'Individual contact'.  This doesn't appear possible using the UI but maybe I missed something.    I don't want to use a webform because recurring contributions don't work with Stripe but they do with the standard contribution page. Any ideas on how to select a contact sub-type ?

Depending on your configuration, you can do this with CiviRules.

Your trigger will be Contribution is added, and your action will be Set subtype for contact.

The question is the "condition".  If Stripe is your only payment processor, then you're golden!  The condition should be Contribution is (not) paid by, and set credit card/debit card as the values.


How should one pronounce CiviCRM? How do you pronounce civicrm when speaking to others? Is it "civi" or "civik-c-r-m?

CiviCRM: Sih-Vee See Ar Em

Civi (for short): Sih-Vee


Membership directory I created a public list (directory) of members based on a relationship.  I was able to set-up a smart group with a profile and can see the list. But I want to customize the list by country, without creating a profile for each country. I read that you can append the url like this:  civicrm/profile&reset=1&force=1&gid=N&city=London

But it is not working.  What is the field name for countries?  Are country names stored as an integer or a text value such as France?  How do I get a list of fields and values for CiviCRM? Thanks for your help.

I resolved this.  I was using the wrong field name.  The field name is "country-3" and I was using "country".


How do I make one hyperlink which shows its target page as a modal dialog when clicked? There are lots of links in CiviCRM which will: (a) open an overlaid modal dialog when clicked, and (b) open the same content in a new page when Ctrl+clicked or middle-clicked. This is cool and I want to make one link which does this.

I see here that pages can enable this behavior for all links within the page by extending CRM_Core_Page and setting public $useLivePageJS = FALSE;. Neat, but not quite what I want.

I'm building an extension where I want to achieve the same result, but for one link which would live at the top level of the CiviCRM menu. Is there a class I can add somewhere, or a javascript function I can call somehow that will enable this "modal" functionality for one link?

It's quite simple actually. Add the css class crm-popup to the link and you're done :)


Formatting profile forms I'm looking for advice on formatting how my profile and event registration forms are displayed. In particular the positions of labels, pre/post form help etc. Is there a general guide to changing how these are displayed?

Cheers.

These can be controlled by CSS.  CSS is a generic skill for positioning elements on web pages, and CSS-specific questions are out of scope for this Stack Exchange, but there are many CSS tutorials on the Internet.  To add custom CSS to CiviCRM, you can upload a file and designate it via Administer menu > System Settings > Resource URLs and fill in the Custom CSS URL.  Your CMS should also have a way to include custom CSS, which is also an option.


Automatic updates of timeline activity dates I am finding that timelines in civicase assign dates for activities based on when the case is opened, which means timeline dates are rarely accurate to when they should occur.

Let's assume that "Open Case" is the first activity, "Course Start Date" is the next one, and all later activities are offset from "Course Start Date". Is there a way for the dates associated with all later activities to be adjusted when "Course Start Date" is modified after opening the new case?

The default timeline that is specified in the Case Types configuration allows you to specify the reference activity (i.e. which activity should provide the reference point for any time offset) and the amount of the offset (i.e. how many days before/after) for any given activity that is going to be in the default timeline. So, in your example, you want 'Course Start Date' to be the reference for all subsequent activities.

Having said that, when you create the case, I think that all the offset calculations are done at that point in time, so even if you then subsequently set a date for the 'Course Start Date' activity, I don't think subsequent activity dates will automagically adjust as we might like them to.


CiviCRM not recognizing csv file when uploading CiviCRM is suddenly not recognizing upload file as a csv file.  It's now giving an error message that csv file not recognized. What is the problem and how can I overcome it?

I'd look at the size of the csv, how big is it.
The number of records in the csv, if it is very big I'd break it up.
Look for extra blank lines that should not be there, i.e. clean it up.
Then what kind of csv are you using, open and save again as csv.
I've had these kind of issues, hopefully this helps, good luck!


Rotate SMS providers to get around 200 messages per day limit? According to this twilio page (https://twilio.radicalskills.com/projects/messaging-in-production/1.html#long-or-short-code) - if you send more than 200 SMS messages per day while using a "long code" you can have your account suspended or filtered.

Has anyone worked on an extension to rotate between multiple accounts to avoid hitting this 200 contact limit?

That is a total hack, and is therefore the wrong solution to the problem.

If they have these limits it's for a reason. Ultimately Twilio may be the wrong provider for you, or you're on the wrong plan with them.

Suggestion: research other providers.


CiviEvent URL Aliases being munged in Drupal 7 When I set up a url path alias in Drupal for a civievent (eg. pubquiz rather than civicrm/event/info&reset=1&id=33) and try to access the alias I get the message 'Access denied You are not authorized to access this page' when I try to access it. This only affects the alias, not the raw civevent path offered by Civi and used in the alias setup.

This approach has worked perfectly in the past, but hasn't been used for six months or so. Other aliases for native drupal paths work perfectly.

When I look at the list of url links in Drupal, I see that for Civievents the 'alias' link looks fine but the 'system' link is munged. It displays as 'civicrm/event/info&reset=1&id=33' but the actual link is https://XXXX.org/?q=civicrm/event/info%26reset%3D1%26id%3D33

A recent change in Drupal 7 ?

I can work a round this in Webforms, but this way was easier for simple events.

Drupal 7.7.1/Civi 5.24.3

This is still working for me using redirects

admin/config/search/redirect

sends

/join

to

/civicrm/contribute/transact?reset=1&id=3


Unable to add or edit profiles on contribution pages I am unable to add, edit or delete profiles from my contribution pages.  I am not sure what is happening.  I decided to not modify reserved profiles and create a custom profiles and trying to change that is no longer possible.  Am I doing something wrong?  On one of my pages there is a text box, though it does nothing, on the other, there is nothing.

Also occurs when I try and make a new contribution page.  Using Wordpress 4.7.5, CiviCRM 4.7.16 - Occurs in Chrome, Firefox, even in incognito mode.

Turns out that Jetpack conflicts with CiviCRM - Fix for now is to disable Jetpack when using CiviCRM Profiles on contribution pages and then reactivate when done. Also note:  Jetpack also impacts the ability to edit a calendar date in CiviEvents.

Update:
In speaking with Jetpack, the Jetpack Notifications module relies on Backbone.js and is in conflict with CiviCRM.  There is already a ticket discussing conflict with backbone.js and a multitude of wordpress plugins with CiviCRM.  Instead of deactivating Jetpack everytime you need to access a profile or edit a date, simply disable the Notifications Module at http://yoursite.com/wp-admin/admin.php?page=jetpack_modules

They are working on making the feature easier to access and enable when it’s disabled. https://github.com/Automattic/jetpack/issues/6788

Now I am able to use Jetpack sans the Notifications module which I don't care about and CiviCRM without any issues.


Is automatic new Drupal user to existing CiviCRM contact linking a possible security vulnterability? According to this CiviCRM wiki page, when a new Drupal user is created, its e-mail address is checked against the CiviCRM contacts list and, if a match is found, the new user is associated with the existing contact. While this helps to prevent contact duplication, it seems like it could also represent a potential security problem.

A simple scenario: a membership organization has migrated their existing CRM data to CiviCRM. They would like new members to be able to sign up online, so they allow anonymous Drupal user account creation. Existing members are encouraged to create Drupal users (which get automatically associated with their CiviCRM contact information) so that they can renew their memberships online.

In this scenario, what prevents a malicious person from using an existing contact's e-mail address during Drupal user registration? Using an existing contact's e-mail address (which can be assumed to be fairly public information) would potentially give the malicious person access to all of that contact's personal information, and (if Rules synchronization is implemented) access to other parts of the website they shouldn't have access to.

This appears to me to be a security hole with the potential to expose personal information; am I missing something? How can this be mitigated?

It is but isn't specific to civicrm - the problem in that scenario is allowing anonymous signup without either administrator approval or email verification. Set at least the setting in drupal user settings that sends an email to the email on file and then the owner would have to click a link to verify it.


Siteground Email - How to configure? I am on Siteground hosting services.  Everything is great except for civiMail.  The issue is their outbound service drops the majority of my bulk emails because I'm feeding their servers too fast.
Their restrictions are:

A single email should not have more than 80 recipients under the GoGeek plan.
You can send up to 800 emails per hour.
A single connection to the mail service should not trigger no more than 9 messages to be sent, trying to sent 10 or more will hit the limit.

I tried the throttling of email with a setting of 120000 msec, which I found somewhere but the wording is "single connection".  So this means I need to disconnect and reconnect to the mail server, send 9 more, disconnect... etc...  Is this even configurable in CiviMail?

There few CiviCRM extension that use third party to send bulk emails or transactional emails.

FlexMailer
Sparkpost
Mandrill

Alternatively there are many SMTP providers that provides good bulk mailing service like Sendgrid, CiviSMTP etc. Here is the list of SMTP providers that CiviCRM bulk mailings are supported.

HTH

Pradeep


How can i show a Drupal block on a specific civi path that contains a question mark Title says it all really. Drupal Blocks don't work with paths that contain question marks

The Drupal module Block Query pretty well nails it, and there is an explanation about using it with civicrm here


Tokens in civicrm webform - not showing contact Webform has a browser for 'available tokens'. civicrm-contact appears in it, but none of the tokens seem to work. Is there anything I have to do to enable them ?

If I put this in the confirmation message of a testform

current-user:civicrm-contact:display-name
[current-user:civicrm-contact:display-name]
current-user:name
[current-user:name]
submission:user:civicrm-contact:display-name
[submission:user:civicrm-contact:display-name]
submission:user:name
[submission:user:name]
current-user:civicrm-contact:id
[current-user:civicrm-contact:id]

The result, when filled out by a valid civi contact, is

current-user:civicrm-contact:display-name
current-user:name
pike
submission:user:civicrm-contact:display-name
submission:user:name
pike
current-user:civicrm-contact:id

I suspect those tokens are coming from another module (possibly CiviCRM itself). I never added any token support to webform_civicrm. That said, the best way to achieve your goal is probably to use the token from the contact_1:existing_contact field. This has the upshot of working correctly even when the user is anonymous. It's something like

[submission:values:civicrm_1_contact_1_contact_existing]

(but would need to be adjusted if it is inside a fieldset)


Why do Activities entered via a webform *not* marked as Completed get entered into Civi as completed? We're on Civi 4.6.17 and Drupal 7.

I've created a webform with a 'script' for callers with multiple Activities. Activity 1 is to record the results of a phone call asking for an in-person meeting (call is Completed, Left Message, etc) with the 'target' contact. Activity 2 is to record the date, time, subject, status  of a successful request for an in-person meeting made on the phone call. Activity 3 is to create a reminder to the caller to send a reminder of the in-person meeting to the 'target' contact by postal mail, e-mail or text messsage.

When callers can (or cannot) reach the target on the phone, then Activity 1 date, time, subject, status is recorded. If the target cannot be reached, the call ends of course. However, even though a date, time, status are not recorded for Activity 2 and Activity 3, both activities are entered as completed in the caller's Activity record, and an e-mail gets sent to the caller (who is Assigned To: the activity)

I have a default subject for Activity 2 and Activity 3. I'll try removing the default subject text, leaving it blank, and see if that is the cause of Activity 2 and Activity 3 being recorded.

My desired outcome is simply for Activity 1 status to be saved and Activity 2 and Activity 3 to not be saved on form submittal if the caller does not talk with the 'target'.

I'm also getting this error message on form submittal which seems to be related:
Notice: Undefined index: act in wf_crm_webform_postprocess->processActivities() (line 1368 of /var/www/citizenactionny/my.citizenactionny.org/sites/all/modules/webform_civicrm/includes/wf_crm_webform_postprocess.inc).

If you use a webform condition (part of Drupal webform 4.x), with a question like 'Did you speak with the target?', you could hide the fields for Activities 2 and 3 if the caller enters 'No'. If the fields are hidden based on the condition, they will not process to CiviCRM.


Implementing Duplicate Membership With Different Membership Form Information i have a scenario in which Organizations through their staff apply for permit to build Cell Sites. Now i treat the application as a membership because there is annual renewal fee. Now the challenge is this:

Organizations can apply for fresh permit to build another cell site leading to a scenario where you have one Organization multiple membership/Permits for cell sites. I want a situation where each application/permit can be added to the organization without causing any conflict.

What is the best way to implement this scenario of multiple membership to same organzation.

Also, because each application/permit has different information captured inn the form fields, is there a way to add automatic numbering to each membership form so that specific permit/membership form can be called up and viewed individually?

Currently using Wordpress with Latest Civicrm.

I thought there was an extension out there which permitted this but didn't find it in my quick trawl. The answer will partly depend on what the maximum number of such towers might be.

The original workaround for this was to create multiple membership each 'owned' by a different Organisation (ie when you create the Membership Type, you set up the first type to belong to Org-A, next one to belong to Org-B etc)

You can see a discussion about that here: https://forum.civicrm.org/index.php%3Ftopic=31251.0.html

But as I said i thought there was a way to specify in civi that each 'new' membership be treated as a separate membership and not a renewal (ie avoiding the 'upsell' concept') but the only thread i found about this was https://civicrm.org/blog/eileen/price-sets-memberships-multiple-memberships


Non admins cannot access event info page Wierd problem: anonymous user can view event register page, but not event info page (it is completely blank). Have checked permissions, all ok (if I remove View Event Info, there is an access denied message, but if that permission is present, it is the white screen). Have checked custom fields and profiles. No PHP errors logged, nor any errors in Civi's log. Any other ideas what could be the problem?

Thanks @Fabian and @Aidan. I finally discovered my error. I had stupidly given 'Access CiviEvent' permission (Drupal) to anon users. Removing that cleared the problem.
https://civicrm.stackexchange.com/a/25326/7190


Webform and multiple memberships with same Member Organisation When we create several membership types, with the same "Membership Organisation", it looks as if the previous membership has been replaced by the latest one. Assume we have two, MEM1 with 1 year membership at £30 and MEM2 with 2 year membership at £70.

1)Contact signs up for MEM1 fist, membership period is 1 year (June 2015 to May 2016 ), gets charged £30
2)Then signs up for MEM2, the membership period gets extended to 2 years (June 2015 to May 2017), gets charged £70

So what actually happens is, it does not track the memberships separately, and the contact seems to have lost the MEM1 membership.

Even if we were to consider "renewal with upsell" for this scenario, the contact should be charged only the difference in price and not the full price of MEM2, since the duration only gets extended.

Previously webform handled the membership types separately, so what will happen if we were to upgrade to the new version?

Also in civicrm we are still able to add more than one membership type for the same organisation.

Thank You!

Currently you cannot use Webform-CiviCRM to sign members up for two membership types of the same organization concurrently, and this is true for the current release (4.10) and is unchanged in the upcoming v4.11.

What you described in your testing is working as designed. If a user signs up for type MEM1 and pays the fee, then comes back a year later and signs up for MEM2, it will change their membership type to MEM2, charge them the price for MEM2, and extend their expiration by a year. The only thing in your testing that made it look weird is that you did both of those things on the same day. Just wait a year between signups and it will make sense :)

If you do want to use a webform to sign members up for 2 different membership types, simply set them up in CiviCRM as belonging to different member organizations, and then the webform will understand it as a separate signup and not a renewal.


Civisualize - How does it work and what are the charts showing? I need your help. I am trying to figure how CiviVisualse works. We would like to improve its current styling etc. To do this, I need to fully understand how the dynamic filter works agains graph lines and what are the measurements for those charts. I have attached some print screens as points of reference for my questions.

What does the line chart represent? It says participant: is this "registrations by date?” for selected events or by event type?
What are the different lines on the line graph for Participant Overview chart? Is this event types or individual events based on the dynamic filter?
The filter and text at the top get out of sync, and also sometimes the line for event registrations goes out of sync (or there is a bug of some form, in which case how much would it cost to fix it?).
Is there any way to hide events that are “not selected” appear in a list at the bottom rather than making the number of their participants 0? Or at least do this if there is an event without any participants.

PART 2: Event detail report - When you want to see summary for specific event:

Chart Line: Is this the number of  participant registrations at a particular date or something else? Is it the cumulative number of participants over the time so in the end of the line you can see for example a total 9 registered participants (cumulative -Trend of Participants for this event over the time based on registration date)?

We've decided to close the question as overbroad.


Why are my Actions drop downs not working post civicrm security update? After the CiviCRM security updates - some of our D8 sites are throwing blanks when selecting an Action -> on e.g. the Search -> Contacts Results screen.
Select Contacts -> Select Action -> Nothing happens

Another clue: the CiviCRM -> Status page /civicrm/a#/status was completely blank
This helped [it's a cache clear of sorts]
Administer -> System Settings -> Asset Caching -> Disable
brought both Actions as well as the Status page back. Then was able to toggle it back to -> Auto
For one project I also had to re-run composer civicrm:publish (some bower assets - only some - most were there) - were just not there post upgrade.
Most sites upgraded just fine. Not sure what was/is different about the three sites I ran into this issue with. I wonder if it's redis... [I usually blame caching ]


Reverting CiviCRM on Drupal 7 to last backed up state? What is the best procedure for reverting the CiviCRM, powered by Drupal 7, back to a previous backed up state, in case of database corruption, failed upgrades or other undesirable changes?

How to revert the CiviCRM to previous state:

Put Drupal into maintenance mode
Disable integration modules
Replace civicrm.settings.php with backed up copy and check permissions
Remove everything in <drupal_home>/sites/all/modules/civicrm and
replace with backed up version and check permissions
Drop civicrm database and import backup database
Clear caches and empty <drupal_home>sites/default/files/civicrm/templates_c and check permissions
Re-enable integration modules
Log in, test and debug

Command Line Cheatsheet for Drush and MySQL, Regarding These Steps:

Maintenance mode: drush vset maintenance_mode 1

Disabling and Enabling CiviCRM Integration Modules:

drush pm-disable [integration_module] or
drush pm-enable [integration_module]

Dropping, re-creating and importing a database in MySQL:

mysql -u [username] -p
use [database name];
DROP DATABASE [database];
CREATE DATABASE [database];
source path/to/backup.sql;

Clear caches: drush cc all

Dealing with templates_c: rm <drupal_home>sites/default/files/civicrm/templates_c/*


Running CiviCRM unit tests with an extension installed (Please note - I am not asking how to create unit tests for an extension.)

If I want to see how an extension - or combination of extensions - impacts CiviCRM's functionality, I think it'd be really neat to run the standard UTs (thanks buildkit & vagrant :) with an extension installed.

My understanding at the moment is that Civi Unit Tests initialise a new copy of the DB when they're run, and mess about with it a lot.

Please can anyone tell me where/when I should hook in enabling extension functionality?

John

Agree that the typical configuration is to have a separate, headless database for running tests.

Your problem sounds similar to (but slightly different from) the problem of running unit-tests provided by extensions. In both cases, one wants to activate the extension on the headless database, so we may borrow some techniques from extension testing.

If I were you, I'd try preparing a DB snapshot with the extension preinstalled, e.g.:

cd ~/buildkit/build/mybuild

# Put the extension source code somewhere under `civicrm`, e.g
git clone https://mygit.example.com/myextension sites/all/modules/civicrm/tools/extensions

# Activate the extension in your main DB, e.g.
drush cvapi extension.install key=com.example.myextension

# Update the DB snapshot for your build
civibuild snapshot mybuild

cd sites/all/modules/civicrm/tools/extensions

# Restore DB & run tests at the same time
civibuild restore mybuild && ./scripts/phpunit CRM_AllTests

Each time you restore the DB, it resets both the main DBs (Civi+CMS) as well as the headless test DB using the latest snapshot.

You can repeat the last command whenever you want to run the tests. This ensures that the extension is active (even if some test went mucking around with extension data).

You can change CRM_AllTests to api_v3_AllTests, api_v3_SyntaxConformanceTest, CRM_Myextension_MyTest, or any other test class.


VERP is visible in CiviMail sender address When sending out CiviMail mailings, the unique VERP address is listed as the sender address.  As I understand, VERP should be invisible and should instead show the FROM address set in both Administer>CiviMail>From Email Addresses and in Administer>System Settings>Outbound Email.

We have bluehost, and I know that it doesn't support VERP, so instead we have a catch-all bounce email address (via google app using our domain name), and the bounces seem to work just fine, except that the VERP sender address is visible.

Bluehost appears to restrict outbound emails to the list of email addresses configured on your Bluehost account.

Since dynamically generated VERP address format emails won't exist in this list, Bluehost is unlikely to correctly handle outbound dynamic VERP addresses.

You might get more informed and informative responses if you include a bit more debug information to better describe the issue you're experiencing?


Why settings.default.json file is neglected during install? Since CiviCRM 5.23, one can set a custom L10n/I18n resource directory. Using this feature with Aegir and Drupal 7 profiles, this setting almost works: CiviCRM sites install with selected language, using the Drupal and CiviCRM language files (.po/.mo) located now at profiles/myprofile/translations/.

Missing piece is that the settings.default.json file of CiviCRM l10n settings is not picked up during install, so its settings are neglected. The file is at civicrm/l10n/hu_HU, next to the .po files.

Is it a bug or am I missing something in my Aegir settings?

The solution was:

Add a define('CIVICRM_L10N_BASEDIR', '/var/aegir/platforms/YOUR-PATH'); statement to platform.settings.php file of Aegir (see: Altering Aegir's Behaviours), to set an environmental variable for CiviCRM, to locate the exact place of its l10n files. More info on CIVICRM_L10N_BASEDIR here and here.
Correct the line breaks of the example settings.default.json, otherwise it's not being read as JSON file. The address_format and mailing_format should be one line, and \n have to be added when line break is required. See MR.


Case Status at a Specific Time I'm on Drupal 7 and CiviCRM 5.10 (yes, I'll update to 5.12 this weekend). I have a case with multiple case status: Active, Maintenance, Closed. When case activities are entered in the system, it doesn't seem to save the case status at the time the case activity is entered. For example:

4/26/19 Case Opened
4/26/19 Client meeting
4/28/19 Case status changed from active to maintainence
4/30/19 Housing visit
4/31/19 Housing visit

If I were to create a Views report of the case activities, I see that the case status for 4/26/19 is labeled "Maintenance" but it should "Active" (which is the case status at the time it was entered).

Does anyone know how I could create a report and pull the case status AT the time of the activities entry?

You need to base it on the entire history of activity subjects which is a bit tricky. I'm not sure how to do it in a drupal view.

In pseudocode it would be something like SELECT ChangeCaseStatus activity with MAX(date) earlier than activity date currently being output. If null then Active.


Unsupervised dedupe rules in the background? It is my understanding that unsupervised dedupe rules take effect when one attempts to create a new contact, and they can also be run manually like any other rule. Can unsupervised deduplication be made to happen to existing contacts in the background (eg from cron)?

Edit: Or indeed, in the foreground but still basically automatic in terms of 'start it and wait for it to finish'?

See the third post here by Deepak.

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

I havn't tried it but it looks like scheduled mass merges are possible

Process batch merge (Daily)
API Entity: Job
API Action: process_batch_merge


two identically configured users see different list of contacts I'm using smart groups with access controls so that when I add contacts to a particular group they get access to some contacts. I have two identically configured wordpress users with two identically configured contacts records, but one user sees the correct list of contacts, and the other user only sees himself. Any idea what I might have misconfigured?

Before trying anything else, clear your caches.  Find it under  Administer menu » System Settings » Cleanup Caches and Update Paths.

After that, make sure you're setting both the user roles AND the ACLs correctly - but assuming you've done that, the best advice is at https://shouldiblamecaching.com.


Mailing only works when executed manually, not scheduled I am trying to executed a job to send out a mailing via CiviMail. This works when I do this manually, but fails when scheduled:

permission check failed for Group/get call; insufficient permission: require access CiviCRM

What permission should I add to which user?
I am using Drupal 7 cron.

Solution:

create a new user, add permissions:

View all contacts
Access CiviCRM
Access CiviMail

go to admin/config/civicrm/civicrm-cron

See also: https://docs.civicrm.org/sysadmin/en/latest/setup/jobs/#choosing-a-cms-user


Users with 'view own cases' permission can't access resolved cases I have noticed that users with the 'view own cases' Drupal permission are getting an access denied error when they try to access their own resolved cases. They can access open cases no problem.

Users with 'view all cases' can access resolved cases as normal.

Is this intentional? I've tried to replicate on the demo site, but wasn't able to create a user with that set of permissions. Unfortunately, while I've tried to make sense of the code referenced in the backtrace, it's beyond me.

Running CiviCRM 5.19.1 and latest Drupal.

Nov 16 00:39:28  [error] $Fatal Error Details = Array
(
    [message] => You are not authorized to access this page.
    [code] =>
)

Nov 16 00:39:28  [debug] $backTrace = #0 .../public/sites/all/modules/civicrm/CRM/Core/Error.php(385): CRM_Core_Error::backtrace("backTrace", TRUE)
#1 .../public/sites/all/modules/civicrm/CRM/Case/Page/Tab.php(72): CRM_Core_Error::fatal("You are not authorized to access this page.")
#2 .../public/sites/all/modules/civicrm/CRM/Case/Page/Tab.php(188): CRM_Case_Page_Tab->preProcess()
#3 .../public/sites/all/modules/civicrm/CRM/Core/Invoke.php(290): CRM_Case_Page_Tab->run((Array:4), NULL)
#4 .../public/sites/all/modules/civicrm/CRM/Core/Invoke.php(84): CRM_Core_Invoke::runItem((Array:13))
#5 .../public/sites/all/modules/civicrm/CRM/Core/Invoke.php(52): CRM_Core_Invoke::_invoke((Array:4))
#6 .../public/sites/all/modules/civicrm/drupal/civicrm.module(444): CRM_Core_Invoke::invoke((Array:4))
#7 .../public/includes/menu.inc(527): civicrm_invoke("contact", "view", "case")
#8 .../public/index.php(21): menu_execute_active_handler()
#9 {main}

UPDATE: Will be fixed in 5.36.0

https://lab.civicrm.org/dev/core/issues/1400
You can work around it by changing this line: https://github.com/civicrm/civicrm-core/blob/5.19.1/CRM/Case/BAO/Case.php#L541
from
if (empty($params['status_id']) && ($type == 'upcoming' || $type == 'any')) {
to
if (empty($params['status_id']) && ($type == 'upcoming')) {
but that might cause closed cases to start appearing or being counted differently than now.


How are CiviCRM form names defined (civicrm_validateForm)? I am attempting to perform form validation on various CiviCRM forms (profile forms and forms within contribution pages) by hooking into hook_civicrm_validateForm.

In my php code, I would like to differentiate between the different forms so that I can execute appropriate validation functions. According to the CiviCRM documentation, this can be done by checking against the $formName parameter.

While debugging, I found out that a contribution page I am using has a $formName of CRM_Contribute_Form_Contribution_Main. For a profile form its $formName is CRM_Profile_Form_Edit.

Is there a way of finding out how the names of form are defined? If so, does CiviCRM supporting assigning forms with custom form names?

In principle the names are based on the files, so the form which is CRM/Contact/Form/Contact.php will be CRM_Contact_Form_Contact.

AFAIK the name of the form will always be commented if you inspect the form with Firebug, Firefox or Chrome.

In some cases forms will be called from pages (like the contribution page). This is kinda hard to find out, I always do a post hook in my extensions to log the $formName parameter to find out what forms are called during the process.

AFAIK you will need to include a call to the form hook to make sure your customized form is also usable in a validateForm hook (see below). But I would certainly try first if the parent CRM_Core_Form does not handle that and you can indeed already check for your customized form name.

    CRM_Utils_Hook::validateForm(
  get_class($this),
  $this->_submitValues,
  $this->_submitFiles,
  $this,
  $hookErrors
);


Is there an out of the box way to put mailto: links on the emails in the contact search results? I customized the contact search result view by using a profile (without the state, but with phone and email) and made this profile the default view.
I am looking for a way to make the emails clickable (mailto) so my coworkers can just click this and use their mailclient to do a straight forward mail. (either that or a mail button, any solution would be appreciated.
tia

Yes, its possible using hook_civicrm_searchColumns to rewrite the email row to include mailto


Can I status override an auto renewing membership? A client wants to status override a recurring membership but cannot do so.

Here are a couple of membership edit screens:

The first is for a membership that is auto renew and has an associated recurring contribution:

The second is for a membership that is not auto renew and does not have an associated recurring contribution:

It seems that for some reason, we don't allow people to status override recurring memberships.

Can anyone shed any light on why this is not possible?

Is there a business case for it being set up in this way.

I did have a look at the code but nothing obvious jumped out at me. I'm guessing someone out there knows the thinking behhind this.

This appears to have been implemented as a deliberate 'feature' to prevent users from making changes to memberships linked to recurring payments. See this related question for details:

How can you edit the end date for an auto-renew membership?

A fix has been merged into CiviCRM core (PR #15540) that fixes this issue for the end date field. This fix should be included in CiviCRM 5.20.


When using search builder to find contacts that are in multiple specific groups (AND, not OR), 0 results returned Let's say you have Group A & Group B, and two contacts, Contact A and Contact B. We want our search to find those contacts who are in both Group A AND Group B.

For example, if Contact A is in Group A only, but Contact B is in both groups, then the result of this search should be 'Contact B'.

Search builder looks like:
Contacts, Group(s) = Group A
Contacts, Group(s) = Group B

Result: no results.

No errors are logged.

We had several groups built on searches of this type, but after updating from 5.6.1 to 5.10.3 these all broke and began returning no results.

I have tested this on the Demo site but could not reproduce - however the demo site is running 5.13.alpha1, so it's not a fair test.

The release notes for 5.11.0 indicate some search fixes, but not anything that would make me assume this would also be resolved. I wasn't able to find anything in  Gitlab about this either. I'd rather not wait for 5.13 to be released so if someone could possibly point me to a specific patch that I could test in the meantime, that would be fantastic.

There was a bug that got introduced in the 5.10 series which broke these types of searches, i believe there was a patch release maybe 5.10.4 that fixed it but this is the specific fix https://github.com/civicrm/civicrm-core/pull/13667/commits/8966cd19d7897bdadc0588cab2c81df140759efc


CiviEvent menu listing not finding active event I'm using CiviCRM 5.1.2 on Joomla 3.8.10. I'm trying to create a menu item for an event info page, and the drop-down in the Joomla menu manager is only displaying past events. The drop-down for the Event Registration Page shows the currently active and upcoming events - there are only 2 of them. But the most recent events in the drop-down for the Event Info page are from 2015. We've been using CiviCRM since 2010, so there are a lot of old events.

I'm assuming there's an issue with where the menu item drop-down is pulling the events from. I've turned on debugging and emptied caches, but otherwise I'm at a loss for what to try next. Any assistance is appreciated.

The drop-down shows 100 active events but does not filter by 'upcoming'.

As a quick-fix, edit the file administrator/components/com_civicrm/civicrm/joomla/site/elements/civievents.php
Look for the line that reads 'rowCount' => 100, (line 62) and add a new line after that reads:

      'start_date' => array('>' => 'today'),

Save that and try again.

Issue: https://lab.civicrm.org/dev/joomla/issues/1
PR: https://github.com/civicrm/civicrm-joomla/pull/46


What is 'listing mode' for Profiles? Wordpress and civicrm 5.4

I've created a profile to allow our members to update some of their contact info.

It displays nicely in edit mode and if a member updates a field all is good and I get a nice success message.

If the user chooses not to update and presses the cancel button the page (I think)  attempts to display the form in listings mode and I get an error message;

No fields in this Profile have been configured as searchable. Ask the site administrator to check the Profile setup.

The same error message is displayed if a field is changed and the "Back to Listing" button which appears at the bottom of the confirmation page is used.

a few questions:
1.  What exactly is 'listing mode'? Do i understand correctly that is a publicly available / searchable page?
2.  I'm guessing to avoid above error I need to configure at least some fields as searchable in the Profile set up?  But I have tried making some fields searchable and the error perists.  Have I misunderstood?
3.  If I do succeed in making feilds searchable and thus presumably removing the error - who are the fields visible to exactly?

Listing mode in profile enables the user to do a follow up search for other records which also have that same field value.

For example, you might set City to Public Pages and Listings. After the user conducts a search and views the details for a record they can search on the city value and look for other field values present in the record.

FWIW, If you don't want to navigate the user to listing page on hitting the cancel button, you can add a custom URL for this button in profile settings. It also provides a flexibility to simply remove the cancel button from profile.

The above config is present in Advanced Settings pane in the profile settings form.


Scheduled Jobs no longer running Up until recently, the cron job I had set up was running correctly and the Scheduled Jobs were being run. However, since I upgraded (currently running 4.7.21) I am now getting an error message that the cron job isn't running. I made no changes to the cron job. BUT when I check the log, it says the job has been run although it doesn't appear that the task was done. I have Joomla 3.7.4.

The Error message is
System Status: Warning
    Performance warning: Missing indices
    Cron Not Running
    Remote Profiles Enabled

The log says
Entity: Job Action: process_membership
Summary
Finished execution of Update Membership Statuses with result: Success (Processed 159 membership records. Updated 0 records.)

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

Full message:
Finished execution of Update Membership Statuses with result: Success (Processed 159 membership records. Updated 0 records.)

The cron is -

curl -s 'https://ashguild.ca/home/administrator/components/com_civicrm/civicrm/bin/cron.php?name=weaverfran&pass=#####&key=#####’

Based on your comments, I was able to use https://www.epochconverter.com/ and see that cron was last run at 5am (GMT) on August 30th.  You submitted that comment around 10:30pm GMT.  That strongly suggests your cron is a) working correctly, but b) isn't running at least hourly.  This causes the "Cron not running" warning.  It's possibly also the cause of the scheduled job not working correctly, though not definitively.

Please update your cron settings to run at least hourly (I recommend every 15 minutes if you use CiviMail).  Once that's done, either a) please let us know if it solved your problem, or b) edit your question to reflect the updated situation.


Wordpress profile permissions to select contact reference field We are in WordPress, which is new to me. We have a registration profile that includes a custom field which is a contact reference field filtered to include only a specific group of contacts. When I'm logged in, this shows up and works great on the profile, but an anonymous user can't even see the custom field on the registration profile. The custom data set is set to public, don't know if that matters.

What permissions do I need to give an anonymous user so that they can make a selection from the filtered contact reference field?

I've installed the User Role Editor plugin to hopefully give me the flexibility to do this- also please let me know if a different plugin is needed. Thanks!

The permission you're looking for is CiviCRM: access contact reference fields. You can view the list of permissions from civicrm menu too via Administer => Users and permissions => Permissions

and then click on WordPress Access Control link displayed on the page.


Where is the civicrm database? I recently took over a website and I have missing tables in the civicrm database (under wordpress). I want look at the civicrm database but I don't know where the database is stored. How can I find the physical civicrm database file so I can download it and run some queries to see what's there?  When I go to phpMyAdmin on the server, it only lists the wordpress database.

Below is what I see when I look at phpMyAdmin and this is the only db. I have looked at all of the table names in this db and there are no civicrm tables.

Thanks

You can find the civicrm database listed in the civicrm.settings.php

 <wordpress>/wp-content/uploads/civicrm/civicrm.settings.php

Apart from that , you have two possibilities

1)Wordpress and Civicrm both use same database

2) Civicrm has    separate database

If wordpress and civicrm has same database , you can search in wordpress database tables which have prefix civicrm_*


How do I prevent the cursor going up instead of down when I press enter in an e-mail while using an iMac Our organisation is using CiviCrm 4.4.8. And we use Civicases a lot. Our users that login to our CiviCrm system using an iMac have trouble typing their e-mail (on a case) as each time when they press enter the cursor goes up instead of down.
Can any one help us solving this issue, I am sure we are not the only one who has bumped into this issue.

Looking forward to your response.

Under Administer - Customize Data and Screens - Display Preferences, there's a choice for WYSIWYG editor. Try changing it to something else and see if the problem goes away.


How do i export all the data in civicrm? I need to export all data in the database, activities, relationships, contacts everything. Is there a way to export all data? There is more room for human error if i have to do it individually by section on civi as how will i know if it downloaded all the fields?

The way to export the complete data is a full database dump, eg via mysqldump.

Much of the data will be exported if you do it piece by piece, but it will not be complete and as you suggest there is risk of missing some fields doing so manually.

It's possible your hosting environment will offer some interface to make a db dump - they should have documentation, or you can ask their support staff.

If possible, I'd recommend talking to a technical advisor to ensure you get a complete copy. One you have this, make sure you verify it's complete somehow (ie by loading it into a new system); an untested backup shouldn't be trusted on faith alone.


Civicrm Custom Profile Wordpress I have a wordpress site with CiviCRM. I use this to provide a 'members area' for contacts with a civicrm membership.

When contacts first log on
I would like to get each member to fill out a survey, and once they have provided the information - they will no longer need to see it.

I believe the best way to present them with this survey is by using custom fields in a profile and embed it in a wordpress page using shortcodes. But is there a way to hide, or disable the custom profile from the users view once it has been completed?

Not as a built-in CiviCRM feature.

Perhaps you don't want to use profiles for this, but could instead use a Wordpress specific form builder? You need some integration with Wordpress because using a state related to whether or not they've filled in a form would be handled within the CMS (which handles user authentications, sessions, etc.).

I believe Wordpress provides a couple of form builder options that integrate with CiviCRM.
https://docs.civicrm.org/sysadmin/en/latest/integration/wordpress/forms/

Alternatively, you could replace the permissioning with workflow (in a limited way) and use the profile but only link to it at specific times, e.g. via the membership thank you message.


Start new CiviCRM site in Drupal 7 or wait for Drupal 8? We are interested in a fresh start for our organization with a new website using CiviCRM and Drupal. However, we're not sure if we should wait for the CiviCRM integration with Drupal 8 since it's the most recent version of Drupal, or start our full build in Drupal 7.  Any feedback is welcome.

The short answer is easy, which you can take away from Does CiviCRM work with Drupal 8 and how can I help? — CiviCRM is not yet fully functional with Drupal 8. You can see issues tagged for Drupal 8 in JIRA, and even better, help test and develop the Drupal 8 branch code.

The long answer is more complicated, and depends on your organization's development timetable, technology cycle, technical resources, use of Drupal for other purposes than hosting CiviCRM, first-adopter culture or lack thereof, and like factors.

First of all, Drupal 7 is not going away any time soon. It will continue to be supported until three months after the release of Drupal 9, which is not anticipated until 2020 or 2021 at the earliest. The large installed base of Drupal 6 prompted vendors to develop a long-term support mechanism. Considering that Drupal 8 is by any account a much bigger change from 7 than 7 was from 6, and that 7 has an even wider installed base than 6 did, one may reasonably expect that there will be demand for a Drupal 7 LTS version as well.

Now, if your organization already has plans in motion to end your own use of Drupal 7, getting support to launch a new D7 project may be hard. In that case, you might be better-off waiting for CiviCRM 5 and full Drupal 8 support later in the year. On the other hand, if your organization will support D7 for the forseeable future, launching on D7 with an eye to updating to D8 in a few years may make sense. Or, if you are new to Drupal altogether, and you have technical expertise in Symfony, Twig, and other D8 technologies, you may be better off skipping D7 for now, and having to re-learn all that's changed for D8 in the near future.

Most of my clients on CiviCRM do not have dedicated IT resources, and rely on our company to handle maintenance and updates. These clients we are keeping on D7 for now, and will probably not migrate them to D8 for at least another year, until the future of modules like Webform are more certain. We are also keeping an eye on the Backdrop CMS project, a fork of Drupal 7. There is a request for Backdrop support in JIRA, but as there is not much demand for the product (yet?), movement is slow.

And finally, if your organization does not or will not use Drupal for any other purposes other than to house CiviCRM, you might weigh whether WordPress should be considered.


How to choose which related contact gets the membership by relationship We are on the latest CiviCRM 5.4.1 and Drupal 7.59. We have setup a membership type for a parent organisation (multi-site) to a child organisation. The relationship gets generated and membership gets associated by relationship which is great. What we are trying to figure out is how does CiviCRM let you choose which organisations receive the membership by relationship?

For example the parent organisation has 5 child organisations but has only paid for 3 related memberships. We can add the max related to 3 which is fine. How can we decide which 3 of the 5 child organisations will get the relationship. When it is organisation to individual membership the primary org membership has a create or delete option.

For parent organisation membership to child org membership it does not show.

Has anyone experienced this issue?

The only way i know that you could do this would be to use a different relationship type

So base the inherited membership off eg "is child org member of"

So a child org that is not a member could have relationship of 'is child org of'

while the 3 that you are talking about could instead/also have 'is child org member of' relationship

if you were happy doing a customisation then you could change the inherited relationship feature and set it to only trigger if a custom field on the relationship is set to 'yes' for example


Using contacts as event locations Is there any extension or any other way to use regular contacts as event locations? This has been asked on several occasions in the forum, and the response has been "well, at least you can re-use event locations."

We have a membership organization of local businesses, and a monthly meeting that rotates among the board members' offices. So, being able to look up a member's office and select it as the venue would be far easier than re-entering the data. Moreover, the event location fields are limited— email address but no website?— whereas the contact records have custom fields for things like parking, security, and public transit information associated with the location.

By tying an eveny to a venue rather than a location, I wonder if it might be easier to record hosting an event as an activity for the organization as well.

Since event locations are stored in the civicrm.address table already (though they are inaccessible from any other part of the system), I wonder how difficult it would be to refactor events to use contact addresses. But leaving that aside, is there at least a workaround? I suppose we could use a contact reference custom field, but that would require a good deal of customization to display more than the contact name, I would think.

It would require a change to the core function CRM_Event_BAO_Event::getLocationEvent().  Right now, it only pulls addresses that are tied to existing events.  Theoretically, the schema supports addresses that are tied to contacts also being tied to events, but there's no way to set the contact ID on an event address or vice-versa.

In one sense, it would be nice to have an extension or core feature that is an address manager for merging addresses.  (In civicrm.org, there got to be two locations for the trainings we have at AGH Strategies: one on Colorado Avenue and one on Colorado Ave. NW.  There's no way to merge them with each other, let alone with the record for the actual company.)  Alternatively, it would be nice to have a third option besides "Create new location" and "Use existing location"--a "use contact's location" option would be basically what you need.

However, it does introduce one potential question: what if the contact moves?  If the AGH Strategies office moves to 14th Street, let's say, we'd edit our contact record at civicrm.org and the same address ID would now read 14th St. NW.  If those event records were tied to our address rather than a separate one, they'd suddenly say that trainings from last year were held on 14th Street rather than Colorado Avenue.  Now, the location of past events isn't usually a concern, but it might be one for some folks, maybe to demonstrate all the places they've had events or to research areas that are underserved.  Tying event locations to contacts would, at the very least, introduce this problem.


Unable to add membership types I'm very new to this but I can't seem to find an answer to our problem on any of the help pages.

I am trying to simply add a new membership type. There were three membership types already setup with the initial installation, which I was able to modify to our specifications. But when I try to add a new membership type, I am unable to select anything in for Membership Organization, financial type, or membership type plan (pull-downs). There is nothing there.

Any help would be appreciated. We have 5 membership types and need to be able to add two more to the existing three.

Attaching screen shot here. Thank you.

Normally membership type organization dropdown will be empty. so, please type a space and wait for the search - which will list you all contact in the list

For more reference please read the below documentation

Create new membership type:
https://wiki.civicrm.org/confluence/display/CRMDOC21/Membership+Types

Create new organization:
https://wiki.civicrm.org/confluence/display/CRMDOC42/Create+New+Organization+Contact

Create new financial type:
https://wiki.civicrm.org/confluence/display/CRMDOC/Configure+Financial+Types

Create financial account:
https://wiki.civicrm.org/confluence/display/CRMDOC/Configure+Financial+Accounts

These above document should help you in creating new membership type - if you need more help please let me know so i will give a screen shot of all the above

I guess this helps!!!


How Do You Copy Live To Sandbox? Turning the normal progression of development on it's head, what I am looking to do is take a copy of a production site and put it on a sandbox.

I am currently using D 7.36 and Civi 4.4.14

My intention is to take a copy of the working site from the live server and place on a local XAMPP so that I can experiment with ideas and test things such as how to implement Eileen's Permissions as ACLs 1.2 branch - specifically I am not sure how to install Entity Settings as it talks about registrations and PHP ... I would rather not do that on a live server.

I am not too fussed about taking the live contact and organisation data because I would create a large number of test contacts to do all that.

The problem is that our developer also included a custom member management module, so I want to ensure that all the right things are copied across so that it will work.

I did search through the usual sources, but I can to the conclusion that lots of them require disabling CiviCRM, I was of the opinion that I am likely to break it by doing that!

Theoretically, CiviCRM can easily be migrated.  In my experience though, following the recommended instructions often runs into hiccups.  For this reason, I'll share my alternate method for local testing.

Since it's not hard to mirror server setups for local testing, it's usually good enough and easy to do just that.  For example, if the website is at http://example.com and the base path is at /var/www/example.com/htdocs, just setup your virtual hosting and hosts file to handle that url and base path.

I won't give instructions on how to setup virtual hosting, because those are very OS dependent.  So if you'd like to know how to setup virtual hosting, good article are easily found in google searches.


Why are custom tabs not displayed correctly in contact summary? My users have reported seeing custom tabs not displaying correctly in the contact summary screen. Instead of wrapping, the tabs display as below. I can't reproduce the problem, although I have seen it in the past.  This is Civi 4.7.19  running with Drupal. Theme is 'Seven'

Tried replicating the issue, but couldn't. Its working fine with Civi 4.7.19 on drupal 7.56 and theme 'Seven'. It maybe because of some conflicting css class.


Phantom contact record I have a view that displays civiCRM contact records according to Contact Type. The displays needs to change every Fall, and the way we do this is by changing the contact type (but keeping the record).  There is a particular contact record, however, that displays on the view but is missing from our civicrm records. I have looked under his name, email, and contact id, but nothing comes up. This should not be possible: the view displays the contact record's name, bio, university, and image. So how is this person's record displaying if I cannot find him in a search?

Most likely, the contact is deleted, but your view isn't filtering out deleted users.  You may want to check that in your view.

You can search for deleted contacts from Search menu » Advanced Search by checking the "Search in Trash" checkbox.


Trying to migrate data from Drupal 7 to new install on Drupal 9 Isn't it possible to just copy tables of contacts, groups, mailings and their related data into the new install? I'm trying to figure out which tables contain essential data on contacts, activities, donations, etc. vs the ones that contain information on the site setup (like the civicrm_menu table, which I definitely want to leave behind, as somewhere over the years it got corrupted during an upgrade and has double entries and lacks a few entries as well).
Would this at all be a valid approach?

This sounds a bit dicey, but fortunately I think there's a simpler solution.
My answer on migrating CiviCRM to WordPress is generic for moving CiviCRM to ANY new CMS - even the same CMS on a different site.
I would fix the civicrm_menu issue separately.  You should be able to restore a copy from a fresh install, then disable/re-enable any extension, which will re-add any "managed entity" entries - in practical terms, those added by extensions.


Changing Membership defaults to extending membership Our club has different membership types, but all are on the same fixed membership period. If a member upgrades from one membership type to another, we use the "Renew" function to change the membership type and record the payment for the difference. By default, however changing the membership type also extends the membership by 1 term, so we have to manually adjust that.

Is there another way to change membership types, instead of using the renew function to avoid this default behavior?

Perhaps you have overlooked the highlighted statement that appears on the renewal screens. (I did for almost 2 years.)

Click on change and you can set the renewal period to 0 terms which should do what you want.  You will need to manually enter the extra amount, but I imagine you are doing that anyway.


Civihr and time tracking? I want to use CiviCRM to track volunteer hours and allocate rewards. My question is, how do I use CiviCRM to automatically report on volunteer hours?

Time tracking is used for these reasons:

12+ hours: full time staff member.
24+ hours:eligible for going to
the staff after-party.

I work with a Japanese Art and Culture Society. Fancy name for anime convention. We have a major event once a year and a couple of smaller ones.

It would be nice if whatever system we end up, we can use it to:

Track contact information for our volunteers across all events.
Track volunteer hours per event.

We have been getting hitting a snag when it comes to the time keeping.  I was reading up on civihr. I haven't seen anything about time keeping, but it does look to be able to handle volunteer info for departments, managers, admins, staff, etc. That may be one part of the solution.

I hear CiviVolunteer may be the time tracking part of the solution.

For the time tracking:
Can anyone think of a way where we could either have a staff member self punch in and out when they work a shift, or an easy way where we could maybe use the QR codes or ID numbers on our staff badges where supervisors could ideally use their phone to scan a staff members badge to start or end someone's shift?

I know in the past with some version of a check in an out system, we had issues if for some reason someone happened to miss checking out, though this shouldn't really be an issue if we could use phones instead of having to type in data.

To recap, we are looking to create a system that, ideally, would be able to:

Store a volunteer's info(Personal Data, Department, Contact Info)
Track different staffers' hours.
Make reports that show the total hours of each staff member in each department.
Have different access levels (Volunteer, Department Head, HR Overlord, etc.).
Make reports with goals.

To expand on that last point, it seems like if there is a way to track time, it should be very easy for our organization's HR Overlord to be able to log in and, with a couple of clicks, be able to pull up a list of all people who qualify for the staff dinner (in this case, they worked 24+ hours between 2017-04-07 08:00:00 and 2017-04-09 17:00:00).

At this point, I'm guessing I would use:

CiviHR to track Volunteer information, departments, and access permissions.
CiviVolunteer to track Volunteer hours and to be able to make quick reports.

Can CiviHR and CiviVolunteer even work together in this way?

CiviVolunteer might be a better fit for your requirements than CiviHR.  See also Volunteer Timesheet


database upgrade script failing: Call to undefined method CRM_Upgrade_Incremental_php_FourOne::getMajorMinor() I'm trying to upgrade CiviCRM in a Joomla 3.9.26 environment from 5.25.0 to 5.37.0.
I ran the file installation, cleared the media/template_c folder, then tried to run the database upgrade script.  I get this error:
An error has occurred.
0 Call to undefined method CRM_Upgrade_Incremental_php_FourOne::getMajorMinor()

The ConfigLog file and the PHP error logs don't show this error, and the ConfigLog files don't seem to show anything related to any database upgrade script.  Also, the civicrm_domain table still shows 5.25.0 in the version column, so I don't think the update script has run at all.
I have no idea why this upgrade would be calling a 4.1 incremental upgrade script?  And I'm not sure what steps to take next to recover -- or if I just roll back to my backup. However, I will eventually need to get this upgraded!
Suggestions appreciated!
UPDATE: call stack as requested...
0 Call to undefined method CRM_Upgrade_Incremental_php_FourOne::getMajorMinor()  JROOT/administrator/components/com_civicrm/civicrm/CRM/Upgrade/Form.php:125
1   ()  JROOT/administrator/components/com_civicrm/civicrm/CRM/Upgrade/Form.php:125
2   CRM_Upgrade_Form::incrementalPhpObjectVersions()    JROOT/administrator/components/com_civicrm/civicrm/CRM/Upgrade/Form.php:324
3   CRM_Upgrade_Form->getRevisionSequence()     JROOT/administrator/components/com_civicrm/civicrm/CRM/Upgrade/Form.php:845
4   CRM_Upgrade_Form->setPreUpgradeMessage()    JROOT/administrator/components/com_civicrm/civicrm/CRM/Upgrade/Page/Upgrade.php:108
5   CRM_Upgrade_Page_Upgrade->runIntro()    JROOT/administrator/components/com_civicrm/civicrm/CRM/Upgrade/Page/Upgrade.php:57
6   CRM_Upgrade_Page_Upgrade->run()     JROOT/administrator/components/com_civicrm/civicrm/CRM/Core/Invoke.php:313
7   CRM_Core_Invoke::runItem()  JROOT/administrator/components/com_civicrm/civicrm/CRM/Core/Invoke.php:69
8   CRM_Core_Invoke::_invoke()  JROOT/administrator/components/com_civicrm/civicrm/CRM/Core/Invoke.php:36
9   CRM_Core_Invoke::invoke()   JROOT/administrator/components/com_civicrm/civicrm.php:121
10  civicrm_invoke()    JROOT/administrator/components/com_civicrm/civicrm.php:40
11  require_once()  JROOT/libraries/src/Component/ComponentHelper.php:402
12  Joomla\CMS\Component\ComponentHelper::executeComponent()    JROOT/libraries/src/Component/ComponentHelper.php:377
13  Joomla\CMS\Component\ComponentHelper::renderComponent()     JROOT/libraries/src/Application/AdministratorApplication.php:101
14  Joomla\CMS\Application\AdministratorApplication->dispatch()     JROOT/libraries/src/Application/AdministratorApplication.php:159
15  Joomla\CMS\Application\AdministratorApplication->doExecute()    JROOT/libraries/src/Application/CMSApplication.php:203
16  Joomla\CMS\Application\CMSApplication->execute()    JROOT/administrator/index.php:51

After some chat on MM we identified that the installation had a file CRM/Upgrade/Incremental/FourOne.php   That file has been removed from the current release but the usual Joomla upgrade process extracts the CiviCRM zip file into the existing code directories rather than removing them first.  This is fine for new and changed files but does not delete files no longer in the released code.
The Joomla upgrade documentation notes that sometimes it is necessary to uninstall and reinstall.  This removes all the old files before installing the new ones.  This should not affect the database but note @minbori's comment above that permissions needed to be reset afterwards. (It would be useful if someone could verify what happens to permissions and add a note to the documentation accordingly.)
Alternatively for those with filesystem access the administrator/components/com_civicrm/civicrm can be deleted and the installation zip file manually extracted to put the new files in place. (See @demerit's comment above.)


Alternatives to editing civicrm.settings.php The drupal hosting system that we are currently using prevents us from making any changes to civicrm.settings.php which I find is sometimes necessary or at least the most sensible solution in certain situations. (One example is to set domain IDs when using Domain Access.) I believe the file is regenerated regularly so changes wouldn't last long anyway.
I am hoping that someone who knows what they're doing can suggest an elegant way that I could put any code meant for civicrm.settings.php in another file elsewhere, preferably on the site level for multisite situations.

Thanks!

I'm assuming you're talking about DEFINE statements since you mention domain id? Are you able to edit drupal's settings.php? If so you can just put those DEFINEs in there since it loads first and most of the DEFINE settings in civicrm.settings.php check for if (defined(SETTING_NAME)).

If you can't edit drupal's settings.php, I haven't tested this but can you write a little drupal module that sets those defines, and in the system table set that module's weight to something lower than the weight for civicrm so that it runs first.

If you're talking about various $civicrm_setting['xxxxx'] entries, then again I haven't tested but the module method might also work but you would set the weight higher than civicrm's weight, so that it loads after.


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

Please help if you know a method to disable this.

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


Is it possible to customise report export file names? Is it possible to automatically name Report downloads (PDFs or .csv files) to reflect the report title?

(This strikes me as being an obvious thing to do, so apologies if I've missed some equally obvious solution)

The code currently puts all pdf's under CiviReport.pdf (and similar for csv)

Would be good to use the report title as the file name. The code to make the change is here:

CRM/Report/Form.php

search for CiviReport.pdf

If you can make the change, please file an issue and submit a PR against master so it can be included in the next release.


Multiple author for an extension module Is it possible to have multiple author for a module extension? I'm extending last year's GSoC project. So, I need to have two author names for the module.

You can have several maintainers, as for the authorship, it's a single one indeed (top of my head) and it's customary to keep the initial one and explain the documentation (eg. README.md) that you are taking over.

Does it solve your problem?


How to find all activities generated by one schedule reminder? As the question says - How to find all activities generated by one schedule reminder ?

You can find all activities of type 'scheduled reminder'. This shows a few fields, but not which instance of the scheduled reminder created this activity. You can filter the search by activity 'subject' and 'details', but I don't think the instance of the scheduled reminder is in there (?).

Using the api (explorer) you can get a lot of relationships to activities, like 'medium' and 'parent', but I'm not sure what these mean. Is that information (which scheduled reminder created this activity) lost ?

The easy answer is to search by the email's subject line - but I'm assuming you have multiple scheduled reminders with the same subject line.

You can find details in the civicrm_action_log table.  The action_schedule_id is the ID of the scheduled reminder.  That said, I can't 100% recall how this handles sending the same reminder multiple times - either because repetition is enabled, or because the same membership comes up for renewal multiple times.  Hopefully neither of those apply to you, but if they do, you may need to compare that data against the activity log to see how it's represented.


Webform conditional from Civicrm checksum I use drupal 7 and latest civicrm.

I direct people to my form using the checksum. I would like to not display email field and GDPR opt in field if they arrive at the form via checksum. If they arrive at the form without checksum I would like email/opt in to be visible.

I know how to use conditionals within the form (eg if email address is present then display field X) but I can’t work out how to do it from the initial check sum - I feel it ought to be possible. Can anyone help?!

Thanks!

I think this is possible with the below adjustments on the webform.

Add a disabled textfield on your webform and set its default value to a token or checksum value from the URL.
Now, add the condition on this element to hide email when it's value is not blank.

Update after Karing's comment - If you need to hide the field from the webform, maybe use a little css like display:none for the same.