CiviCRM_API3_Exception: '3' is not a valid option for field contribution_page_id This error is really frustrating and annoying. It only happens on the live server but works fine on the local server. I have  drupal 7 site with civicrm installed. One of the key I am passing on the $params array is
$params['contribution_page_id'] = 3. The data type that this paramer expects is an integer and I have tried casting it as an integer but does not work.

I am trying to create a contribution record but it throws the error while

$contribution = civicrm_api3('Contribution', 'create', $params);

Here it throws the error and I don't  know why.
The full error goes like this
CiviCRM_API3_Exception: '3' is not a valid option for field contribution_page_id in civicrm_api3() (line 45 of /home/mysite/public_html/v2/sites/all/modules/civicrm/api/api.php).

So here is my full code

    $params['contact_id'] = $attendee;
    $params['event_id'] = $event_id;
    $params['register_date'] = date('YmdHis');
    $params['register_date_time'] =date('h:i A');
    $params['role_id'] =1;
    $params['status_id'] = 1;
    $params['status_id'] = 1;
    $params['fee_level'] = '';
    $params['is_pay_later'] = 1;
    $params['fee_amount'] = calculate_total();
    $params['fee_currency'] = 'GBP';
    $bao =  new CRM_Event_BAO_Participant();
    $participnt = $bao->create($params);

    //add Contribution
    $non_deductible_amount = round(calculate_total(),2);
    $total_amount = round(calculate_total(),2);
    $tax_amount = round(calculate_total_vat(),2);

    if($non_deductible_amount == 0) {
        $non_deductible_amount = 0;
    }
    if($total_amount == 0) {
        $total_amount = 0;
    }
    if($tax_amount == 0) {
        $tax_amount = 0;
    }

    $bao =  new CRM_Contribute_BAO_Contribution();
    $params = array();
    $params['contact_id'] = $attendee;
    $params['financial_type_id'] = 4;
    $params['contribution_page_id'] = 3;
    $params['currency'] = $params['currencyID'] = 'GBP'; /**/
    $params['non_deductible_amount'] = $non_deductible_amount; /**/
    $params['total_amount'] = $total_amount; /**/
    $params['Source'] = 'Event Registration';
    //$params['is_pay_later'] = 1;
    $params['tax_amount'] = $tax_amount;
    $params['contribution_status_id'] = 'Pending';
    $params['skipLineItem'] =1;
    //$contribution = $bao->create($params);

    $params['invoice_id'] = md5(uniqid(rand(), TRUE));

    $params['payment_processor'] = 1;

    $params['is_test'] = 0;

    $params['description'] = 'Event Registration payment';

    $params['qfKey'] =  md5(uniqid(rand(), TRUE));

    $params['email'] = 'sanjok@hotmail.com';

    //This is where it fails.
    $contribution = civicrm_api3('Contribution', 'create', $params);

That is where if fails and spits out the error.

The fact that this works on a local server but not a production server sounds fishy. My guess is that your local server is a different platform and/or php version.

You can likely fix the issue by setting the contribution_page_id to the string "3".

But I'd suggest you're probably going in the wrong direction for this project - that's a lot of custom code, most of it kind of funky (e.g. the unused bao object, and setting the qfKey), which suggests you've been trying to reverse engineer and/or copy paste stuff. If you simplify your code and only use the api as intended, you'll likely hit fewer oddities like this. I'd also question why you want to set the contribution_page_id anyway, since this isn't getting set via the contribution page, i.e. you're kind of tricking it into an unpredictable state. You'd likely do better categorizing your contributions using other mechanisms (or maybe you don't need to categorize this any further that you already have).


CSV file import problem with file from Mac MS Office I am trying to import contacts as .csv file, however when I try to upload it I get an error message saying that the input file must be in a CSV format - which it is!
I'm using a Mac and I've read that Mac Excel (which I've used to convert the initial xls file into csv) might cause some difficulties, if this is the problem, how can this be fixed?

I look forward to your suggestions.
Kindly,
Milla

Try using Libre Office. It is a Free and Open Source Office (MS Office compatible) application. Libreoffice.org - You can open the xls file with it and save as csv. I have used it numerous times, it comes pre-installed in ubuntu (which reminds me I should make a donation to the project)

Let us know how you get on.


How do you add activity types to scheduled reminder dropdown I would like to trigger scheduled reminders based on activities of type "contribution". Only 8 of many activity types show in the dropdown on the scheduled reminder create page - is there a way to expose more options here and trigger off more activity types?

All (most?) activity types are exposed as options in scheduled reminders in 4.5 and 4.6.  "Contribution" certainly is.

If you are still on 4.4 and don't want to upgrade yet then this forum topic may provide a way to do what you want.


Drupal Views using over ride feature with civicrm fields - token I am wonder whether someone can help explain how to use the Override feature for CiviCRM fields in views.  For example, I have a field in Civi which is a file field... when i add it to a view it shows the URL to the image... I assume I can select the field in question and then when it opens the configuration window for the field:

Select over ride and in the text area write something like

 <img src=['token for the field']>

for it to render the image is this correct and if it is how would i workout what needs to be placed in the ['token for the field'] portion of the string?

Ok have worked this one out... was very much a "DOH!" moment... there is a section called Replacement Patterns under the ReWrite section - which is collapsed by default and can be overlooked which had the taken information.


Receiving Lots of Spam Our online profile forms are receiving lots of spam, even though reCAPTCHA is enabled. Any suggestions? Example form is here: http://insideout180.org/donate/adult-allies-registration-form/

Please add required fields to your form, at the moment it's possible to submit form with no data and even a spam bot can bypass the CAPTCHA.

Protect also the publicly accessible form with SSL certificate


Can invoices be sent to and cc'd to multiple contacts? I am trying to replicate an existing workflow within CiviCRM. I need to be able to send membership invoices to multiple recipients. An example is:

Subject: Membership invoice
To: accounts_payable@member.com, finance_director@member.com
cc: budget_holder@member.com, person_that_cares@member.com, secretariat@civicrm_user.com

Ideally this should be a single mail so that each recipient can see the others and whether they are "To" or "cc".

The current "email invoice" in contributions only seems to email the primary billing contact. Is it possible to do what I want?

I wrote an extension to do this called altinvoice.  You can set relationship types to receive a copy of the invoice.  E.g. "When I invoice this organization, also send a copy to anyone with the relationship type of 'Billing Contact' or 'Site Coordinator'".


My Subscribe to mailing list only works with logged in users I've made a Profile that allows me to add someone to a mailing list from a html snippet.

But only users that are logged into civicrm can finish the form, when you attempt to submit i get this error: "Sorry but we are not able to provide this at the moment.
The requested Profile (gid=13) is disabled OR it is not configured to be used for 'Profile' listings in its Settings OR there is no Profile with that ID OR you do not have permission to access this profile. Please contact the site administrator if you need assistance."

The form asks for;
First name
Last name
Email
Mailing list to be added to.

I have set everything  i think i need to to public page.

There are some permissions with profiles and you have to set those permissions for the anonnymous user. Those permissions are calles profile listsing.

If you are using Drupal you could try to create a webform with the webform and civicrm integration.


Deduping within contact records I've noticed that some of our contact records have the same email duplicated (e.g. as 'home' and 'work' or 'main' and 'work' emails). I'm not seeing a simple way to find these records so we can clean them up - is there any way to 'dedupe' or check for this kind of duplication?

(Similarly, we have some records where the address is duplicated. In both cases, I think it's either from merging records or importing contacts with the fields mismatched)

2019 UPDATE:  A year later, I had to revisit this problem space, and I improved on my old answer; ignore earlier discussion threads on this answer.
When deleting duplicated emails/phone/addresses within a contact, you're inherently losing data.  E.g. if a phone number is both "Main" and "Work", and you delete one, you have to choose which location type you're losing.
The following SQL statements handle three strategies I identified:

Keep the record marked as "primary".  Delete the rest.
Keep the oldest record.  Delete the rest.
Keep the newest record.  Delete the rest.

My preferred strategy is to keep the primary, delete the rest.  This does NOT catch duplicates where none of the dupes are primary, so I follow that with a "keep the newest record" statement to catch the stragglers.
Protip: To see what records will be deleted before deleting, change DELETE to SELECT.
Delete duplicate emails, keeping the primary:
-- Delete all emails from Civi that are in the "duplicated" subselect but aren't primary.
DELETE e.*
FROM civicrm_email e JOIN (
  -- Select all duplicated emails
  SELECT contact_id, email
  FROM civicrm_email
  GROUP BY contact_id, email
  HAVING COUNT(*) > 1
) AS f ON f.email = e.email
AND f.contact_id = e.contact_id
WHERE is_primary = 0

Delete duplicate emails, keeping the oldest:
Change MIN to MAX to keep the newest.
-- Compare civicrm_email to the outer subselect.  If your email/contact_id matches but you don't have the minimum email ID, delete.
DELETE civicrm_email.*
FROM civicrm_email
LEFT JOIN(
  -- Select the lowest email id for each value in the inner subselect
  SELECT MIN(id) keep_id
  FROM civicrm_email e
  JOIN (
    -- Get a list of unique email/contact_id combos
    SELECT contact_id, email
    FROM civicrm_email
    GROUP BY contact_id, email
  ) AS f ON f.email = e.email
  AND f.contact_id = e.contact_id
  GROUP BY e.email, e.contact_id) ids ON civicrm_email.id = ids.keep_id
  WHERE ids.keep_id IS NULL AND civicrm_email.contact_id IS NOT NULL

Delete duplicate phones, keeping the primary:
-- Delete all numbers from Civi that are in the "duplicated" subselect but aren't primary.
DELETE e.*
FROM civicrm_phone e JOIN (
  -- Select all duplicated phone numbers
  SELECT contact_id, phone
  FROM civicrm_phone
  GROUP BY contact_id, phone
  HAVING COUNT(*) > 1
) AS f ON f.phone = e.phone
AND f.contact_id = e.contact_id
WHERE is_primary = 0

Delete duplicate phones, keeping the oldest:
Change MIN to MAX to keep the newest.
SELECT civicrm_phone.*
FROM civicrm_phone
LEFT JOIN(
  SELECT MIN(id) keep_id
  FROM civicrm_phone e JOIN (
    SELECT contact_id, phone
    FROM civicrm_phone
    GROUP BY contact_id, phone
  ) AS f ON f.phone = e.phone
  AND f.contact_id = e.contact_id
  GROUP BY e.phone, e.contact_id
) ids ON civicrm_phone.id = ids.keep_id
WHERE ids.keep_id IS NULL AND civicrm_phone.contact_id IS NOT NULL

Delete duplicate addresses, keeping the primary:
-- Delete all addresses from Civi that are in the "duplicated" subselect but aren't primary.
DELETE e.*
FROM civicrm_address e JOIN (
  -- Select all duplicated addresses
  SELECT contact_id, street_address
  FROM civicrm_address
  GROUP BY contact_id, street_address
  HAVING COUNT(*) > 1
) AS f ON f.street_address = e.street_address
AND f.contact_id = e.contact_id
WHERE is_primary = 0

Delete duplicate addresses, keeping the oldest:
Change MIN to MAX to keep the newest.
DELETE civicrm_address.*
FROM civicrm_address
LEFT JOIN(
  SELECT MIN(id) keep_id
  FROM civicrm_address e
  JOIN (
    SELECT contact_id, street_address
    FROM civicrm_address
    GROUP BY contact_id, street_address
  ) AS f ON f.street_address = e.street_address
  AND f.contact_id = e.contact_id
  GROUP BY e.street_address, e.contact_id
) ids ON civicrm_address.id = ids.keep_id
WHERE ids.keep_id IS NULL
AND civicrm_address.contact_id IS NOT NULL
AND civicrm_address.street_address <> ''


Integrating Moodle With CiviCRM We currently have a WordPress site. We currently use CiviCRM 4.7.15. We are using Moodle underneath the WP. So, we have http://iafst.com/ as the main containing CiviCRM and http://iafst.com/iafstuniv/ running the Moodle.

We would like to bring the students registering via the Moodle under the umbrella of CiviCRM.

Is there anything anyone is aware of to look at for a Best Practices of doing this? We have CPanel access.

Thanks for all you folks do!

It would appear to me that this question is a duplicate of:

Moodle Integration Sample Sites or the way to do it

and there is a good answer on that page.


Outgoing Mail Settings, CiviSMTP & PHP 5.6.x Problem After upgrading CiviCRM from 4.3.8 to 4.7.15 on Drupal 7, our outgoing mail is giving an error after sending a test email. I'm on a Debian server running PHP 5.6.x and we use CiviSMTP for our outgoing mail.

Error:

authentication failure [SMTP: STARTTLS failed (code: 220, response: Go ahead with TLS)]

Have we decided as a community what the recommended action is to address this issue? I.E. downgrade PHP to 5.5, or this CiviCRM core hack or apply this patch to packages/Net/SMTP.php (below), or something else?

CiviSMTP made an announcement to apply the following patch to disable TLS. There doesn't seem to be another option:

$this->_socket_options = $socket_options;

to

$this->_socket_options = array('ssl' => array('verify_peer'=>false,'verify_peer_name'=>false,'allow_self_signed'=>true));

I prefer not to downgrade PHP or hack core and to apply the least invasive fix possible.

Observations:

This problem is on CiviSMTP (not affiliated with the CiviCRM dev community) and seems to be specific to anyone using that SMTP service.

The recommended and least invasive fix is to resolve the underlying SSL issues.

It was intentional that PHP5.6 tightened security here. If your hosting environment doesn't validate the SSL certificate you're communicating with, one of these things is probably true -

The hosting environment has a misconfigured certificate chain. (Fix varies by hosting environment - for Debian, apt-get install ca-certificates - there's probably already a Stack Exchange answer for any other specific OS/environment a site is hosted on.)
The remote service requires that you install a custom CA chain before their certificate validates. (Perhaps your SMTP provider uses a self-signed SSL certificate, or a cert from a certificate authority not installed on your hosting environment.)
The remote service has a misconfigured/bad SSL certificate. (Ask remote service to fix SSL.)
The connection between the two is being interfered with. ( )

Identify whether it's your hosting environment or the remote site's SSL which is failing, by testing multiple remote sites from multiple client environments. This SE answer shows how to test with openssl command from CLI and has links to web services for same.

Then resolve the SSL issues at whichever end they are occurring, until SSL validates and your CiviCRM is able to connect again.

This assumes that you can resolve the underlying SSL issues! If the remote site offers SSL without a valid chain, or uses a certificate which your server can't make sense of (ex: this libressl bug - as opposed to a valid CA you just don't have installed), then you just can't have SSL validation.

Alternative solutions (not recommended)

Unless you're running CiviCRM for local development and with fake contact data,

Don't disable PHP5.6's SSL validation by default. This is best avoided.
Don't downgrade to PHP5.5. This combines disabling SSL validation with downgrading to an unsupported version of PHP, so it's worse!
As of early 2017, OSX / CiviCRM / Gmail may also be affected by this homebrew issue or this libressl issue. (That's an unlikely combination to find in production though.)


Mapping custom fields to CiviCRM's standard fields I have hired a freelancer to create CiviCRM Sign-Up form featuring Tell-A-Friend and validation email.

Using CiviCRM contact Caldera Processor, he created the form shown below but has an integration problem -  is not able to map created custom fields "Province" and "Municipality" into CiviCRM's standard fields "State/Province" and "City".

He is not able to use the standard fields as they do not allow him to have 2 pull-down menus (Province and Municipality – see picture below) and other features (Tell-A-Friend and verification email). Your comments and suggestions would be greatly appreciated.

[Note: Selecting a Province immediately populates the Municipality field.]

Environment: WordPress 5.2.2 and CiviCRM 5.15.1 hosted at AWS.

The freelancer wasn't familiar enough with CiviCRM to realize that the municipality field we were looking for was already an integrated part of the CiviCRM through the county field.


Implementing a support ticket/help desk system? I would like to implement a support ticket or help desk system through the CiviCRM. This way, all support requests and email responses are tracked in the CiviCRM as well as who handled it, or who it gets assigned to, whether it's open or closed, etc. I read that CiviCase could be modified to make this happen, but we also have several different types of support we need to provide and want to know what all my options are.

What would be the best way to make this happen?

Drupal 7.50 CiviCRM 4.7.15

You could involve CiviCase, but depending on your needs you may get away with just creating custom Activity Type(s) and custom Activity Statuses. And then given you are doing this in Drupal, I would spin it all together via Webform+CiviCRM which should then give you ability to have a single form and apply Conditionals based on the 'need' to specify which Activity Type, Priority (as a new custom field on Activities) and Target contact.

hth


How to store emergency contact phones related to a contact without creating new contacts? We need to store contact phones for a contact, to have a list of people to phone in case of emergency. For example, we have children contacts and we want to store the phones of their parents and grandparents without having to create a CiviCRM contact for each of these phones.

We expect to do this on phone section but seems it's not possible to do so without pervert the expected functionality of these fields.

There is a way to do this? If not, what would be the best way to make it possible? Through an extension? Adding it to core? I imagine a "Note" field on a phone row next to "Phone, ext. Phone location, Phone type" to allow attaching a comment like "mother's phone".

I can see a few options:

create phone types (or perhaps even location types if it is more than a phone for an emergency) like 'parents phone'. This is what I have done myself for a youth choir
create a custom data set 'emergency phones' for individuals. If you set it to allow multiple records you can have a group with a label field and a number field
you could indeed use notes but I would not recommend that as it is unstructured data
an extension seems like overkill to me in this case


How do I send to Multiple Email Addresses for a contact in CiviMail? Is there a way to configure CiviCRM so that it will send emails to all email addresses on a contact record?

If not, then how do you best utilize multiple email addresses on a contact (individual, organization or household)?

Yes! Go to /civicrm/admin/setting/preferences/mailing and check "Enable multiple bulk email addresses for a contact". Then check the boxes for all of a contact's addresses that should be included in a bulk mailing.

You can also reach this settings page from Administer menu > CiviMail > CiviMail Component Settings.

It's only available on relatively recent versions of CiviCRM (4.5+ if my memory serves me right)

Note that multiple email addresses for a single contact are still useful, even when the 'Enable multiple bulk email addresses for a contact' box is not checked. In this case, the flow is as follows:

CiviMail will attempt to email the primary email or if no email is set as primary, the first email it encounters. If CiviCRM receives a bounce report from this email, it may decide to put the mail on hold (depending on the type and quantity of bounce reports received). Next time CiviCRM sends an email to this contact, it will ignore the on hold email and attempt to send to the next email address for that contact (if any exists).

Multiple email addresses on one contact are also useful to avoid duplicate contacts, e.g. if a contact sometimes uses a home address and other times a work address.


CiviReports issue with boolean fields I recently noticed that boolean fields (Deceased, Do Not Email, Do Not SMS, etc) are all displayed as "Yes" on contact and membership reports, regardless of their actual values. The data itself is correct and is fine elsewhere, such as in search results and contact displays. The issue seems to be only on report display. The report filters work correctly on those fields, only the display is wrong. I checked my production system, my dev system, and the public demo system at wpmaster.demo.civicrm.org and I see the same thing.

My system is CiviCRM 5.2.2, WordPress 4.9.6, PHP 7.1.16, MySQL 5.7.21.

Already fixed! See: CiviReports issue with boolean fields


How can I fix this problem with duplicate index in 4.7.21? Upgraded from 4.7.17 to 4.7.21 and got the following message that I don't know how to fix. I don't have drush and the other answers to this problem don't include this index or don't fix this particular problem.  I tried "ALTER TABLE civicrm_financial_type DROP INDEX index_entity_id_entity_table_account_relationship" but MySQL can't do it and says 'check that column/key exists'.  Also tried 'ALTER TABLE civicrm_entity_financial_account  DROP INDEX index_entity_id_entity_table_account_relationship' with the same result

  Operation failed: Update Indices DB Error: already exists Debug information: CREATE UNIQUE INDEX
  index_entity_id_entity_table_account_relationship ON
  civicrm_entity_financial_account (entity_id, entity_table,
  account_relationship) [nativecode=1062 ** Duplicate entry
  '5-civicrm_financial_type-3' for key
  'index_entity_id_entity_table_account_relationship']

You can apply this PR - and reload System status page. This will let you know in advance which indices are already present in DB and would result in DB error on hitting Update Indices button. So what need to be done is -

Apply this PR.
Reload System status page.
Some duplicate indices would be shown above Update Indices button including a message of what needs to be done.
Delete indices manually from the DB (which are listed on above step).
Execute Update Indices button.

Update: just saw the error again - So the error say you have two rows which contain the same values for (entity_id, entity_table, account_relationship) as 5, civicrm_financial_type and 3 respectively. This should not be there as this group of fields are meant to be unique. To remove this error, you can -

Open civicrm_entity_financial_account table.
Search for rows that match entity_id = 5, entity_table = civicrm_financial_type and account_relationship = 3. You'll get two rows(This table should allow only one after indexing), delete one of them and re-execute Update Indices button. This is not provided by core as of now, so we have to do this manually.


How to make the callback URL from Mailchimp accessible from anonymous users in Wordpress? I'm trying to set up this Mailchimp extension for CiviCRM, but I got this error :

So I tried to create a new webhook in Mailchimp, but when I copy-paste the webhook URL that CiviCRM gave me ( https://www.mywebsite.org/civicrm?page=CiviCRM&q=civicrm/mailchimp/webhook&reset=1&key=xxxxxxxx ) I got this message in Mailchimp :

  We couldn't verify the URL is working. Please double check and try again. HTTP Code: 500

I tested this link in my browser and it seems to work when I am connected to my Wordpress site, and it displays an error 500 when I am not connected.

So I thought that this problem could be solved by changing the permission for anonymous users in WordPress Access Control ( civicrm/admin/access/wp-permissions ) but the only users displayed on the list are :

Editor
Author
Contributor
Subscriber
Civicrm editor
SEO Manager
SEO Editor

This "anonymous user" role doesn't exist and even if I check all permission boxes for all users in the "Mailchimp: allow webhook posts" line , the link always returns an error 500.

What can I do to make this URL working ?

Thanks for any help!

WordPress does not require that a role be given to users who only visit your site (e.g. to read posts) so long as it is public - roles are only required when logging in. However, for a WordPress client using the MailChimp sync, we found that we needed to create an Anonymous User role with the webhook permissions assigned - once you do this, pasting the webhook in MailChimp should no longer result in an error.

To clarify, no one has to be assigned the Anonymous User role for this to work.

Hope this helps!
Tamar


The field 'custom_39' has no associated option list This error comes up when I try to edit or create a group:

  Sorry but we are not able to provide this at the moment. The field
  'custom_39' has no associated option list.

It produces a 732K long error log that I will not paste here. Any hints how I would debug this one.

It sounds like you may have a smart group that relies on a custom field which you have since disabled or deleted. See if you can find the id of the smart group in that huge backtrace. Or else try re-enabling that field to see if the problem resolves itself.


Can all related contacts be notified about upcoming membership renewals? We have an uncommon relationship between association managers and my client's member organizations. Since there may be multiple contacts in an association management firm and there may be significant turnover, my client wants to send membership renewal information, including invoices to all the related contacts for each organization (all the members are organizational entities).

Is there a straightforward way to accomplish this? In most cases, the only contacts we have on file are the association managers, instead of a central email for the association.

There's a feature I wrote for Email API for use with CiviRules called "send email to a related contact".  I haven't looked at it recently to see if you can specify "any relationship" as opposed to a specific one, but it should get you most of the way to a solution.


How to export 'employee of' relationship that has multiple staff members? As a disclaimer, I've read up on this thread: How to export all children of a family?. However, that doesn't seem to solve my problem. Here's my dilemma.

I'm looking to export contacts from our installation that shows both the organization's employees as well as the staff member assigned to that organization (known as a field support coordinator). We have the relationships 'employee of' and 'field support coordinator is' to handle this.

If I pull up the organizational group 'current affiliates' and export those contacts, we are able to choose the aforementioned relationships. However, with the 'employee of' relationship, it only exports one staff member.

I've tried to alleviate this by using the advanced search to create a group called 'employees of current affiliates' which pulls everyone. I'm able to export this list with the 'employee of' relationship, but then I'm stuck with the inability to export the relationship 'field support coordinator is' since that's only attributed to organizational records.

I've gone to the reporting section and even tried pulling up this information there using the relationships template, but I run into the same issue where I'm not able to show the 'field support coordinator' is relationship, only the 'employee of' relationship.

Finally, I've tried creating a Drupal view which works fine, however the same issue occurs where it only shows one 'employee of' and not the multiple contact records attributed to it.

Is all of this a limitation of the system? Am I missing something or not understanding what needs to be done? Do we need to go to our developer to get this laid out in a different fashion?

Thank you in advance for your suggestions.

I put a quick example of a View together which you can download from our Treasure Trove.

It is based on 'contact' and assumes that the Org is at the B end of the relationship, and uses a single 'views' relationship starting from B to then connect to Contact A, and the 'which Civi relationship to use' has been set to include several - but these will need reselecting based on which civi Relationships you are trying to pull in.

Hope it makes sense. It may not be quite where you were headed but may gave you some ideas in how to put your View together.

I think an alternative could be to build the View based on CiviCRM Relationship, rather than CiviCRM Contact.


What is the purpose of Contact Link in the Caldera forms activity processor? I'm using the Activity Processor with Caldera forms.

At the bottom of the processor config page, there are three fields:

Target Contact ID
Source Contact ID
Assignee Contact ID

Which make sense to me as ways to connect the activity to the other contacts in the form (or other contacts in CiviCRM).

But what is the purpose, if any, of the Contact Link field at the top of the page?

My best guesses are that either it is redundant and hard to remove, or that it serves some subtle purpose I am not aware of.

The Contact Link at the top of the page serves as a form of labeling and as a way to connect/link other entities (processors) like an Activity to a Contact on the form.

It's purpose may become redundant in the future, but just to be replaced with Caldera Forms' magic tags (kinda like CiviMail tokens).

The link, and magic tags are a way to share and pass data/properties between processors or fields, they serve as a placeholder for later available data.

In Caldera Forms, the processors are processed/executed in the order they are added to the form (the order you see them in the Processor tab, from top to bottom).

A processor has three stages of processing:

pre_processor
processor
post_processor

Most processors in Caldera Forms CiviCRM do their tasks at pre_processor stage, and store their data in a transient object, the Contact processor would create a contact in CiviCRM and store it's result referenced by it's Contact Link so when the Activity processor is processed grabs it's necessary data from the Linked Contact.

Hope that gives a better picture on the Contact Link's purpose :)


CiviCRM profile search not working when integrated with Wordpress We're currently facing an issue. We are running Wordpress 4.9.8, and running CiviCRM. We're looking to publicly display a search widget on one of our wordpress pages, to search within a specific profile we have created. For background, this is how the process works:
Client fills out an application (Caldera Form), that form is processed and put in CiviCRM. We then go to each application and change each one to the contact type "Approved", which puts them into a Smart Group for only approved organizations. This approval system is so we can control which organizations are publicly displayed on the website. We then have made a profile with the specific contact information we want to display, and we have limited the profile listings to the specific "Approved" smart group.

Here's our issue: The search box appears publicly on our wordpress website, but any time someone attempts any search, the user is redirected to either a completely blank page (firefox) or a page with an HTTP 500 error (Chrome). The Url for this website follows this format, in case it's relevant: ....wordpress.org/..../?page=CiviCRM&q=civicrm/profile .

Here are some troubleshooting steps we've attempted and clarifying information to make help easier:

The Profile has "Standalone Form Or Directory", "Search Views", and "Is the CiviCRM profile active" all selected
The Profile's listings are limited to a specific Smart Group, in this case, the "Approved" Smart Group
This Smart Group has "Expose Publically" selected
Smart Group Visibility is set to "Public Pages"
Smart Group has "is active" selected
The Smart Group definitely has contacts in it, so it is not empty
The Search does not work in any situation, whether or not we put in search parameters or not
The error we get is "HTTP Error 500"

Any help you can provide would be greatly appreciated. Thanks in advance.

Check your Permissions. There is a specific permission for seeing Listings.

  CiviCRM: profile listings
  Warning: Give to trusted roles only; this permission has privacy implications. Access public searchable directories.


How do HTTPS settings interfere with CiviMail? I have CiviCRM sites (5.12 and 5.13 on Drupal 7 with Aegir 3) where the behaviour of CiviMail initialisation (and the admin status page) depends on particular HTTPS setup: finishes or loops infinitely.

How HTTPS setup influences this behaviour? How to configure HTTPS on Cloudflare to avoid interference with CiviMail?

When HTTPS managed by Aegir, the mailing initialisation works.
When HTTPS are managed by Cloudflare and Pound, but not Aegir, mailing initialising never ends. Workaround here to run on plain HTTP, which is hardly acceptable.

The status page for CRM administrators also behave differently, it point to some Angular issues.

(update) Error in console:

Blocked loading mixed active content “http://example.com/sites/example.com/files/civicrm/persist/contribute/dyn/angular-modules.87ce61fa6dc174d5e3e11f666ca386e5.json”[Learn More] a:1:778
Synchronous XMLHttpRequest on the main thread is deprecated because of its detrimental effects to the end user’s experience. For more help http://xhr.spec.whatwg.org/ jquery.min.js:4:26272
Using //@ to indicate sourceMappingURL pragmas is deprecated. Use //# instead jquery.min.js:2:21
WARNING: Tried to load angular more than once. jquery.min.js:320:189

Solved: this D7 patch has solved the issue. More info here.

It sounds like you have "http://" hard-coded into your URLs.  Check your BASE_URL in civicrm.settings.php (and search the whole file for "http://" while you're there), and check the Administer » System Settings » Resource URLs menu to ensure that your resource URL doesn't include "http://".

Finally, check if you have any extensions that have the text hook_civicrm_getAssetUrl, which suggests that they may be changing the Asset URL.


Webform: recommended permissions handling when using existing contact feature I'm wondering how other developers configure permissioning for webforms where related contacts are shown. Here's the setup:

webform is configured to display two contacts -- the logged in user and a related org
the "existing contact" element is used for both contacts. the issue arises for the related org contact
we are using the static widget and the option to use contact id from url

However, when cid2=# is passed in the URL, it doesn't load the organization contact unless the logged in user has the "edit all contacts" permission. I understand I could flag the relationship as permissioned and use the relationship ACL extension, but I don't really want to universally grant the user the ability to edit the related contact -- just grant access in this webform. And I definitely don't want to grant the edit all contacts permission.

Any suggestions on ways to handle this? Should I just modify permissions via hooks on this form? It seems like this would be a common use case so I'm wondering if there's something in the webform integration that I'm missing.

Not that I'm aware of. Permissions in CiviCRM typically follow the logic "you either have permission to access this contact, or you don't." There isn't really a concept of having permission to access a contact on one form but not in other contexts.

A different approach would be to disable permission checks for the org field on that form, but only allow trusted users to access the form (who are not likely to abuse it by hacking other cids into the url).


Any Known Incompatibilities with CiviVolunteer and Other Extensions? We are getting this error in CiviCRM:

Warning: Declaration of CRM_Volunteer_Permission::check($permissions) should be compatible with CRM_Core_Permission::check($permissions, $contactId = NULL) in /home/thefolks/public_html/wp-content/uploads/civicrm/ext/org.civicrm.volunteer/CRM/Volunteer/Permission.php on line 0

We are running CiviCRM on Wordpress:

Wordpress version 5.3.2
CiviCRM version 5.20.2
CiviVolunteer version 4.7.31-2.3.1

So everything is up to date. We have these extensions installed, which System Status says are all up to date:

iATS Payments (com.iatspayments.civicrm) version 1.7.0
Data Processor (dataprocessor) version 1.0.9
Summary Fields (net.ourpowerbase.sumfields) version 4.0.2
Angular Profiles (org.civicrm.angularprofiles) version 4.7.31-1.1.2
CiviTutorial (org.civicrm.tutorial) version 1.1

Seems weird that the error is occurring on line 0 of Permission.php. Surely CiviVolunteer isn't incompatible with CiviCRM Core, as the error seems to imply???

Thanks!

The answer and patch at Error with CiviVolunteer after upgrading to PHP 7.1 did have the answer after all. Thanks, Jon, for causing me to take a second look at that!

On our WordPress installation, the file is located here:

/public_html/wp-content/uploads/civicrm/ext/org.civicrm.volunteer/CRM/Volunteer/Permission.php

The patch required changing two lines: the class declaration at the top of the file and the return value of the check function.

I still don't know what it was reporting an error on line zero, but all's well. And I hope that CiviVolunteer gets an update soon that applies the patch! Kudos to Tim Otten for creating the patch.


I can't install CiviCRM on Wordpress I have two instances of WordPress (both running 4.7.4).

I have tried on one to install CiviCRM 4.6.27 and the other, CiviCRM 4.7.18. But, I get the same error: I try to install, I get all clear for the test to the DB and FileSystem, but after clicking on the « Check Requirements and Install CiviCRM » button, the browser just keep on loading the page with no success nor error messages.

I've install the plugin « Error Log Monitor » but I see nothing.
Also, the file civicrm.settings.php in the upload/civicrm folder doesn't exists.

I get this in my apache error log file:

2017-04-24 01:44:09.900 [INFO] [24.114.88.1:53124] Connection idle time: 91 while in state: 10 stream flag: 0,close!
2017-04-24 01:44:09.900 [NOTICE] [24.114.88.1:53124] Content len: 215, Request line: 'POST /wp-admin/options-general.php?page=civicrm-install HTTP/1.1'
2017-04-24 01:44:09.900 [INFO] [24.114.88.1:53124] Cookie len: 522, wordpress_efc9291620b9675fe124bc49dffdbee0=admin%7C1494220081%7Co5FUUWceWVXphjqDGUCDRikjuFvBeiZ9HSUbfxuKt7r%7Cf2762fb5071fa7a4a6f9dcc220b8402c3852569d55f33b951e942f84912bd462; _ga=GA1.2.118246024.1491536971; PHPSESSID=a81gmdbmehahoikdne82n1ehv2; wordpress_test_cookie=WP+Cookie+check; wordpress_logged_in_efc9291620b9675fe124bc49dffdbee0=admin%7C1494220081%7Co5FUUWceWVXphjqDGUCDRikjuFvBeiZ9HSUbfxuKt7r%7C1f32a1947ae120408e5bd791386098b6fd1d01e0c86ab85ca52f7b885b6c2a1b; wp-settings-time-1=1493012558;wp-settings-1=deleted
2017-04-24 01:44:09.900 [INFO] [24.114.88.1:53124] HttpExtConnector state: 8, request body sent: 215, response body size: -1, response body sent:4529, left in buffer: 0, attempts: 0.
2017-04-24 01:44:09.900 [INFO] [24.114.88.1:53124] Lsapi connection state: 3, watching event: 25, respState: 5, m_iTotalPending:0, m_iPacketLeft:0, m_iCurRespHeader:8, req sent for 91 seconds,Total processing time: 91.
2017-04-24 01:44:09.900 [INFO] [24.114.88.1:53124] Abort request processing by PID:410255, kill: 1, begin time: 91, sent time: 91, req processed: 0

I'm on a provider's machine, a CentOS 6.0 64 bit. WordPress seams to work fine.

Issue? Where to look?

Regards,
   Antoine

In your php.ini, what is your max_execution_time? I think the default may be 30 (sec) you may want to increase that.   Also I think at least with Civi 4.7 the install will try to install in the WP database, are you 1) selecting a different database (and user) or 2) using the WP one?  Are ANY tables ending up installed for Civi?


Limit file size for "image url" field We use the "image URL" field via profile to allow members to upload their organization logo. We would like to limit the file size a user can upload. Are there any options for us?
Thank you!

You should be able to implement a hook via PHP to validate the profile when it is submitted: https://docs.civicrm.org/dev/en/latest/hooks/hook_civicrm_processProfile/.

Someone else may want to chime in. I'm not sure if you can use form hooks with profiles. Otherwise you may check this: https://docs.civicrm.org/dev/en/latest/hooks/hook_civicrm_validateForm/

You can then use PHP to validate the file size:
Check this thread (https://stackoverflow.com/questions/9153224/how-to-limit-file-upload-type-file-size-in-php).


How can I make a Custom Search do an initial search? I have created a custom search, and it works nicely. What I would really like though is to pass default values to the custom search and it doing the initial search with those values.

The user can then change the search criteria if he/she wants another filter.

Is that possible and how can I do that?

Even i wanted an easy way of doing this as well but the current architecture of CiviCRM doesn't allow it automatically. I could achieve this by copying few functions(see below) from CRM_Core_Form_Search into my custom search file

  /**
   * @return array
   */
  public function getSearchFieldMetadata() {
    $searchFieldMetadata['contact'] = [
      'sort_name' => [
        'title' => ts('Sort Name'),
        'type' => CRM_Utils_Type::T_STRING,
      ]
    ];
    return $searchFieldMetadata;
  }

  /**
   * Get the validation rule to apply to a function.
   *
   * Alphanumeric is designed to always be safe & for now we just return
   * that but in future we can use tighter rules for types like int, bool etc.
   *
   * @param string $entity
   * @param string $fieldName
   *
   * @return string
   */
  protected function getValidationTypeForField($entity, $fieldName) {
    switch ($this->getSearchFieldMetadata()[$entity][$fieldName]['type']) {
      case CRM_Utils_Type::T_BOOLEAN:
        return 'Boolean';

      case CRM_Utils_Type::T_INT:
        return 'CommaSeparatedIntegers';

      case CRM_Utils_Type::T_DATE:
      case CRM_Utils_Type::T_DATE + CRM_Utils_Type::T_TIME:
        return 'Timestamp';

      default:
        return 'Alphanumeric';
    }
  }

  /**
   * Get the defaults for the entity for any fields described in metadata.
   *
   * @param string $entity
   *
   * @return array
   *
   * @throws \CRM_Core_Exception
   */
  protected function getEntityDefaults($entity) {
    $defaults = [];
    foreach (CRM_Utils_Array::value($entity, $this->getSearchFieldMetadata(), []) as $fieldName => $fieldSpec) {
      if (empty($_POST[$fieldName])) {
        $value = CRM_Utils_Request::retrieveValue($fieldName, $this->getValidationTypeForField($entity, $fieldName), NULL, NULL, 'GET');
        if ($value !== NULL) {
          $defaults[$fieldName] = $value;
        }
        if ($fieldSpec['type'] === CRM_Utils_Type::T_DATE || ($fieldSpec['type'] === CRM_Utils_Type::T_DATE + CRM_Utils_Type::T_TIME)) {
          $low = CRM_Utils_Request::retrieveValue($fieldName . '_low', 'Timestamp', NULL, NULL, 'GET');
          $high = CRM_Utils_Request::retrieveValue($fieldName . '_high', 'Timestamp', NULL, NULL, 'GET');
          if ($low !== NULL || $high !== NULL) {
            $defaults[$fieldName . '_relative'] = 0;
            $defaults[$fieldName . '_low'] = $low ? date('Y-m-d H:i:s', strtotime($low)) : NULL;
            $defaults[$fieldName . '_high'] = $high ? date('Y-m-d H:i:s', strtotime($high)) : NULL;
          }
          else {
            $relative = CRM_Utils_Request::retrieveValue($fieldName . '_relative', 'String', NULL, NULL, 'GET');
            if (!empty($relative) && isset(CRM_Core_OptionGroup::values('relative_date_filters')[$relative])) {
              $defaults[$fieldName . '_relative'] = $relative;
            }
          }
        }
      }
    }
    return $defaults;
  }

and added below snippet in my custom search file __construct() function(at the beginning)

    $this->_force = CRM_Utils_Request::retrieve('force', 'Boolean');
    if ($this->_force) {
      foreach (array_keys($this->getSearchFieldMetadata()) as $entity) {
        $formValues = array_merge($this->getEntityDefaults($entity), $formValues);
      }
    }

HTH

Pradeep


Drupal 6 -> Drupal 7 upgrade path I'm upgrading an installation from Drupal 6.37 to Drupal 7 and also the associated civicrm module(3.3.5).  My problem is I'm not sure of a reasonable upgrade path. I've looked through the version documentation, which I find quite confusing and at times contradictory.   I have full command line access to both the database and the ubuntu server via ssh.

I've found these instructions useful, although a little dated now.

If I were to use 4.2.8 a choice exists between a version for Drupal 6 and Drupal 7.
With the impending demise of Drupal 6 I suspect I won't be the only person facing such a decision.

Can anyone advise on a reasonable upgrade path?

The instructions you found I have used several times and I think they are still valid. So, in your case first upgrade CiviCRM to a version with both a drupal 6 and drupal 7 version, then upgrade drupal and use the same version of CiviCRM. Then I'd advise to further upgrade CiviCRM to the Long Term Support version 4.6.


How to fix Bookkeeping Transactions Report so it doesn't show redundant transactions (e.g., for changed Payment Method)? If you change the Payment Method on a contribution, e.g., from "Credit Card" to "Check" for a $10 contribution, CiviCRM will leave the existing transaction record in place, and add two more transactions, so the contribution now shows three transactions:

$10.00   Credit Card
-$10.00  Credit Card
$10.00   Check

(This started a few versions ago, I guess as a way to help leave an auditable record of financial changes.)

This works fine in the contributions tab because it just adds up all the amounts, and it's still an amount of $10.00.

But in the Bookkeeping Transactions Report, all of these 3 transactions appear in output, and there's no effective way to filter them out. In reality there's just one $10 transaction, but the report shows two for $10.00 and one for -$10.00.

I want to propose a fix so that only the most recent of those is displayed in the report. But "most recent" isn't enough. Sometimes there is more than one transaction on a contribution, e.g., in the case of multiple partial payments, in which case we do want to show all of those separate transactions.

Question:

Is there any way, strictly by looking at the data tables, to determine which transactions are "changes" and which are "multiple partial payments"?

So it would be an error in bookkeeping, not a fix, to omit some bookkeeping entries.

For code maintenance and simplicity the implementation creates these transactions whenever there may be required bookkeeping entries.

If an organisation happens to use the same financial account for credit cards and cheques the extra entries do not result in accounting errors so much as noise. By contrast, if an org does use different accounts it would result in accounting errors to filter as proposed.

Although an extension to change the SQL for your use case is likely possible, to carry through on your approach of simplifying the results by summarizing the bookkeeping entries into a tally for each account for each contribution may be done more easily by creating a new report. Or perhaps it could be a special sort of 'group by'.

As you may have noticed in the report code, the data is puled out in two ways depending on how the bookkeeping entries are stored in the database. Entries involving revenue and expense accounts have one side of the entry in the financial item table and the other in the financial trxn table using its to financial account. Entries that only involve asset accounts, like a payment on a pay later transaction, use the from and to account fields in the financial transaction table. (I don't want to rehash the troubled history that led to this schema design, I'm just explaining it.)

Assuming you don't want to see these entries, you could simplistically filter for the most recent entry for each line item for a contribution. If all of your contribution data is simple and there are not edits on other fields this will work. Note that if there are taxes you will need to get the latest of those entries separately for each line item as well.

An alternative to just pulling up the latest entry that would also handle edits to the amount to produce the amounts for the revenue account and tax accounts for each contribution would be to use a group by contrib id, line item id, financial item financial account id and then sum the financial item total field. You'll need to do this separately for the other side of the accounting entries, ie the asset account for the deposit or pay later: group by contrib id, financial trxn to financial account id. And as some bookkeeping entries do not involve a revenue account, you'd need to handle that as well.

Sorry this is not so simple. It would likely take me an hour or two to work up the sql.

An alternative that might be interesting is to check if the financial accounts and amount are the same for a 'change' entry. If so, an extension could avoid writing new bookkeeping entries into the database when, for example, the payment method changed but the same financial account was used for both payment methods. It would have to be an extension, I think, as we found that some people needed the extra entries for other reporting purposes.

Payments can be identified in the database by checking if civicrm_financial_trxn.is_payment is true. There can be single or multiple payments. Note that there can be changes to payments, either single or multiple partial ones, and the above discussion also applies to all of them.


CiviCase: Migrate historical logs Since installing the new CiviCase extension (very nicely done, btw!), we see the following warning in our System Status:

This database includes ~10 historical activity revisions based on the
legacy format. This may not work correctly with some filters or
reports. Consider migrating or archiving this data.

Anyone know what this means and how we can migrate/archive the data? I can't seem to find information on this topic.
Also, we set up this extension via git clone (which is what the instructions say), but that method doesn't seem to alert us when the extension is updated in the System Settings / Extensions page. Any way to get an extension notify on new releases? For now, I'm just re-pulling via git every so often.

At administer - civicase - civicase settings there's a setting for Enable Embedded Activity Revisions. The civicase extension suggests turning that off and instead using administer - system settings - misc - logging.
Migrating 10 log records probably isn't worth it, and the revisions setting hasn't worked properly in the UI for a few years now anyway so you probably don't have a complete set of revisions unless your case activities are mostly created by customizations/api, but if you want to test out the migrator there's one at https://lab.civicrm.org/extensions/caseactivityrevisionmigrator


Contact Print Summary - can fields be added? I would like to add Employer and Job Title to the Print Summary.  Is this possible?  If so, how?

It's hard to tell, but I think this is unintentional.  There's a line in the code that says to hide the first section of the contact when in print summary mode, but I suspect the "first section" used to be something else.  I can't see any reason why this should be removed.

I can tell you the quick fix, but I'll also submit this for consideration to others.

For now, you need to know how to find where CiviCRM is installed on your folder.

Inside that folder, find the file located at <civiroot>CRM/Contact/Page/View/Print.tpl.  This controls the print view.
Open the file and find the line (about 4 lines from the bottom) that says:

cj('#contact-summary' ).children(':first').remove();

Delete that line and save the file.

That should fix your problem!

UPDATE: Submitted a bug report here: https://lab.civicrm.org/dev/core/issues/477


Displaying Transaction Id in Thank you letter I am trying to create thank you letters grouping the transactions by contact.
I am creating a table to display the contribution information but I am running into a problem with Transaction ID. since not every contribution has one, it doesn't align properly in the table. I tried using the 'line break' and 'verticle table cell' but the  or  is not printing for when the token is empty.

I tried to work around it by printing N/A when if the token is empty but I can't seem to get this working either
{capture assign=temp}{contribution.trxn_id}{/capture}{if $temp ne ""}{$temp}{else}N/A{/if}

UPDATE: I tried @RayWright's suggestion and it worked for individual thank you letters perfectly. However, when grouping the contribution records by contact, the same code will only print the transaction ID when there is one and will not print NA when there isn't one...

This is a known bug and is documented and fixed at CRM-21690.  You will need to apply the patch to fix the problem or will need to wait for 4.7.30 release.


How do I perform a security update When logging on today, I got the following alert:

"Jmanage Security Update Required
New security release 4.7.11 is available. The site is currently running 4.7.9."

What steps do I need to perform to achieve this goal?

Depends on your CMS - Here is the link https://wiki.civicrm.org/confluence/display/CRMDOC/Installation+and+Upgrades
Always backup first -
It is kind of like doing an instal except you do not need to do the configuration after :-)


Adding custom roles to Case "Add role" function I've tried this on a couple of instances, but if I have a Case I want to add role to, the list is restricted to the core roles that come with CiviCRM and none of my custom roles based on custom relationships show up in the list.

How can I set it up so my users can add more roles than offered?

In CiviCRM versions 4.5 and above, you can add case roles by navigating to Administer -> CiviCase -> Case Types and clicking "Add Role"

Note that roles and relationships are not precisely the same. A case client can have any relationships, but within the case, only the roles you have defined will be available.


Setting up Stripe payment gateway Which url do you use: api.stripe.com or api.stripe.com/v3?
I'm wondering why - even though it works fine - I have this url because I can't find any reference to /v3 in the Stripe documentation.

Its just an example used to set the url to avoid validation error. The stripe extensions uses correct api version and url while handshaking or communicating with Stripe gateway.


Multiple First Names for a Contact - implementing AKA (also known as) We continue to generate duplicate contacts in situations where an individual uses different variants of their first name. E.G. (Robert, Rob, Bob, Bobby) or (William, Bill, Billy) or (Rick, Rich, Richard, Dick). We have to dedupe and merge these redundant duplicates again and again.
The problem arises frequently as our contacts typically are not users in the CMS so aren't logged in.
Is there a way to have a dedupe rule that requires a match of first, last, and email, but is able to look at multiple alternative first names for a match. Then if we find that a person uses both Bill and William, we could add William as an AKA and not continue to generate the duplicates.
I could imagine having a custom field of AKA, and I could set up a weighted rule where we award e.g. 5 points to a match of Newfirst and first, OR Newfirst and AKA.
I've searched for this topic and couldn't find anything, but if there's an answer out there, please point me to it.
Thanks,
Rick

OK,
I believe Eileen's "Deduper" extension is just about the answer I needed - I haven't completely grokked the user interface, but I'm confident that those of us who really want to successfully deal with nick names and AKAs will find the answer here.
https://civicrm.org/extensions/deduper
https://civicrm.org/blog/eileen/deduper-extension-release-14
Deduper extension release 1.4
Release 1.4 of the deduper extension is now released. This contains a number of additional resolvers that the Wikimedia Foundations uses to enable more duplicate contacts to be merged without manual intervention.
CiviCRM provides a UI and a script for merging contacts individually or in batches. In addition the deduper provides it’s own UI. In all these place a ‘safe’ merge will attempt to merge 2 contacts and refuse to merge them if they are in conflict. The resolvers attempt to resolve the conflict to [sic] (so?) the merge can be completed. New resolvers include (laundry list of resolvers follows..)
The diacritics resolver - chooses José over Jose
......
Nick name resolver - saves and uses known nicknames.
.......
Going further, Eileen's blog post provides an interface for defining, editing and extending the nick name rules, e.g. I can indicate that Ted is a nick name for Edward, etc.
Take a look at this post and you will see the screenshots for how this works..
https://civicrm.org/blog/eileen/leveraging-search-kit-deduper
(Having posted all this, I need to say I haven't completely figured out how it all works, but I'm confident that Eileen's solution will take most of the pain out of nick names and since I believe a number of people are following this, I wanted to get the word out for those who weren't aware of Deduper extension and the search kit ehnancements)


Can't make an account on civicrm.org to use with gitlab I want to log an issue on gitlab and it says to create an account. So I go to https://civicrm.org/user/register and fill in various details but there is nowhere to create a password. The form submits without error but when I go to "forgot password" tells me the account does not exist. If I try to create the same account again however, it tells me that the name and email address are already registered.

Ah, turns out it just took a long time to get a confirmation email. Once I got that and clicked the link it allowed me to set a password.


What else is needed to create new tab for content in extension? I am new to writing an extension.

I add a tab in my contact with this example

function civitest_civicrm_tabs( &$tabs, $contactID ) {

  // unset the contribition tab, i.e. remove it from the page
  unset( $tabs[1] );

  // let's add a new "contribution" tab with a different name and put it last
  // this is just a demo, in the real world, you would create a url which would
  // return an html snippet etc.
  $url = CRM_Utils_System::url( 'civicrm/contact/view/contribution', "reset=1&snippet=1&force=1&cid=$contactID" );
  $tabs[] = array( 'id' => 'mySupercoolTab', 'url' => $url, 'title' => 'Contribution Tab Renamed', 'weight' => 300 );
}

What should be the next step to add a content in the tab?

how I have to use the extension and add where I have to create a new file to show all the content.

Please can you provide me an example

Thank You

As the example says, "you would create a url which would return an html snippet".

Since this is in the context of a CiviCRM extension, please see the Civix documentation for how to create a basic page.

The url of your tab should be whatever you decide the url of that page should be.


Non renewable memberships I want to create a membership type that is non-renewable. Let's say a membership that lasts for 6 months and is free.

If someone is already a member and clicks Join again (which is effectively a renewal) then I do not want them to be able to extend their membership (in other words an extra 6 months free). Is this possible?

I don't think non-renewable memberships are possible at the moment. Your options are to play with CiviDiscount and/or CiviRules.

You could offer a discount to get the first period free, or as petednz suggested look at negative discounts. I think the negative discount (fixed amount not %age) will need to be applied to existing members.

You could also have people add them selves to a group (say Trial), which gives the same privileges that the membership would provide, then perhaps CiviRules could be used to change the group to another say Trial expired, after 6 months.


Can't create custom field I can't seem to create any custom fields.  I'm on the /civicrm/admin/custom/group page and I choose the "Add Set of Custom Fields" button.  After filling out the form (setting "Used For" = Contribution) and hitting the Save button, I'm taken back to the /civicrm/admin/custom/group page, but my new Custom Data group isn't visible.

There are no error messages in the browser, nor in Watchdog.  What could be going wrong here?  I'm logged in as user_id=1.

I'm using CiviCRM 4.6.10 on Drupal 7.41.

Is there an error in the log file in sites/default/files/civicrm/ConfigAndLog/ ?


CPanel Cron stopped working after upgrade to Joomla 3.8.0 I run a cron in Cpanel for Civicrm to send a newsletter once a month.  After the upgrade to Joomla 3.8.0 the cron has stopped working. This issue seems to be a big issue with this Joomla upgrade.  I tried to have my web host install a backup, but they only keep backups for 24 hours and they were unable to restore the previous Joomla version.   I have very little cron knowledge and need help figuring out how to get a cron working for this new version of Joomla so I can send out emails to my groups in Civicrm.

My current cron is the following:
wget 'http://www.divingrebels.org/administrator/components/com_civicrm/civicrm/bin/cron.php?name=login&pass=password&key=c121f216120e4362040e110a1f92db58' >/dev/null 2>&1

Thanks in advance
Danny

The patch found here:
https://issues.civicrm.org/jira/browse/CRM-21203
worked for me on CiviCRM 4.7.25 & J! 3.8.1


How can I alter DataTable defaults / attributes without overriding core files? Example use case:

When viewing a Contact, on the Relationships tab we'd like the DataTables to default to showing 50 records.

You can alter any DataTable table through it's API as long as you are in Civi's jQuery context (CRM.$)

You could use hook_civicrm_alterTemplateFile or hook_civicrm_buildForm for example to load your script:

Civi::resources()->addScriptFile( 'my-extension', 'js/alterDataTables.js' );

Then in your js:

// alterDataTables.js file
CRM.$( function( $ ) {
  // get and itarate over all dataTables
  $( '.dataTable' ).map( function( index, table ) {
    // get dataTable instance
    $( table ).DataTable()
      // set page length
      .page.len( 2 )
      // draw table
      .draw()
  } );
} );

The above example was given to me so may have worked in some places e.g. when the dataTable is available on page load. For my use-case I needed to work with the 'Relationships' tab tables when viewing a Contact. In this case, $('.dataTable') would select nothing unless I responded to the ajax event, in which case I also needed to add once() to avoid an infinite loop of redrawing tables:

CRM.$(function($) {
  $(document).ajaxComplete(function() {
    var dt = $('.dataTable');
    if (dt.length) {
      $('.dataTable').once().map(function(index, table) {
        // get dataTable instance
        $(table).once().DataTable()
          // set page length
          .page.len(50)
          // draw table
          .draw()
      });
    }
  });
});


Recurring Contributions Stopped in 2016 I have several recurring contributions for a CiviCRM 4.6.10 site.  These contributions were made through CiviCRM and into Authorize.net.  They worked multiple times in 2015 but none of the transactions have been recorded in CiviCRM in 2016. We have verified our record with Authorize.net and all of these transactions have been successful.

Thanks in advance.

I found the problem.  The permissions were not set correctly for recurring contributions on authorizeIPN.php. So when the silent post was running it was getting a 404. I did not see this in the log. For others out there make sure authorizeIPN.php is retrievable.


CiviCRM Database Upgrade from 4.7.16 to 4.7.28 is hanging I am trying to upgrade my Joomla civiCRM database from 4.7.16 to 4.7.28. The component upgraded fine but when I try to upgrade the database after following all of the preparation steps, it hangs and makes not progress. I've looked at all of the similar problems, but nothing helps me with my error. I have two questions, how do I know what's going on? And my second question is what is going on and how to I get it to complete the upgrade?

Can you check apache error and CiviCRM log? If you have database access can you paste the result of below query

SELECT id, version FROM civicrm_domain;


dupe_check parameter only works for contacts? I would like to disable the dupe check on relationships. Is it true that the API parameter parameter 'dupe_check' works only for contacts or can it be also used in relationship api calls? Here under 4.6.33 'dupe_check'=> 0 does not seem to work?

The dedupe_check works only for contacts.


How NOT to send email to "Activity Assignee" when assigned an activity Usually we create different type of activities and assigned to one of our volunteer. Now when "Create separate activity for each contact" is selected, assignee volunteer receive multiple emails for each contact.

Alternative option is not to check that option, but then it creates only one activity for multiple contacts, and when changed the status of activity of 1 contact, it changes status of all contacts.

I know emails can be redirected to database, I guess by doing that all offline contribution email receipt wouldn't be sent right?

So Is there a option or a way NOT to send a email notification to a assignee without compromising any other outbound email service?

In CiviCRM Administration > Display Preferences you can turn off emails to activity assignees globally

civicrm/admin/setting/preferences/display?reset=1


Fuzion tokens for membership start and end date I want to use Fuzion tokens in an attachment letter (an insurance certificate) and I need to show up start and end date for this certificate.

It's easy for name and everything related to contact or custom fields but I don't find for the start and end dates.

Is it something like {contact.membership_start_date} & {contact.membership_end_date}?

Will these customs fields work?
Is there a way to find them (documentation, ...)?

EDIT : 18/06/2019

I tried the Fuzion tokens found with Jon's help but unfortunately the {membership._} fields didn't work in my document. Others worked well. I thought at first, it didn't work out because the test user used had no contribution date, but actually even with one I can't get the token working.

Has anybody already succeeded in using those fields ?

The issue is that a contact can have multiple memberships, so you can't use membership tokens unless you display your search results as memberships.

In Advanced Search, do your search again, but change Display Results As from Contacts to Memberships.  If your contacts only have one membership each, this is all you need to do; if they can have multiple memberships, you probably need to filter by date, membership type, or status to get the correct ones.

From the search action selector, you'll now have the option Print/merge document for membership.  When you select that, the list of tokens will include membership start and end dates.

UPDATE: I've posted a video here demonstrating what I believe is the answer to the question: https://www.youtube.com/watch?v=5D2aLoW9ovU&feature=youtu.be


Is there a way to disable a contact? I am using CiviCRM 5.7.3.

Is it possible to disable a contact? For background, we receive a list of organizations and their program ID's so those applying for grant applications can choose those they are employed by. We have to keep the data in the system if the organization closes down, but I don't want people to be able to search for it in our forms. Is it possible to disable a contact so it cannot be searched? If not, does anyone have any recommendations on what I could do?

When you delete contacts, by default  they go into trash and don't completely disappear so you can still keep them. More info here https://docs.civicrm.org/user/en/latest/organising-your-data/contacts/#deleting-contacts


How to make the contact autocomplete in Webform Civicrm to search for contacts that contain a search term, not start with When you add an existing contact field to Webform Civicrm the autocomplete searches for contacts that start with the search term. How do you change the autocomplete function to search for contacts that contain the search term in any part of the name, not just the beginning?

In search preferences /civicrm/admin/setting/search?reset=1: Automatic Wildcard should be "yes" to search for contacts that contain the search term in any part of the name.


Disable certain address location types depending on Contact type? I would like to disallow certain address location types on Organization contacts—for example I don't want to allow "Home" addresses on an Organization.

I would also like to disallow "Main" address type on the Individual contact  types.

Anybody try this before?

The cheapest solution would be to combine "Home" and "Main" into one option that can be used for both individuals and organizations. Just have to come up with a word that has both meanings...


CiviEvent - Search by custom field The situation

I added a custom field to CiviEvents called regio (means region in English) and I want to be able to fetch CiviEvents by this field.

I'm on CiviCRM 4.6.6 and Wordpress 4.2.2

The problem

When I build the query using the API Explorer provided by CiviCRM, it always returns all CiviEvents, instead of only those to the selected region. This is the code the API Explorer generates:

$result = civicrm_api3('Event', 'get', array(
  'debug' => 1,
  'sequential' => 1,
  'custom_10' => 1,
));

This gives the following results:

{
    "is_error": 0,
    "undefined_fields": [
        "custom_10",
        "page",
        "noheader"
    ],
    "version": 3,
    "count": 25,
    "values": [{...}, {...}]
}

As you can see, it says that custom_10 apparently is an undefined field, although it is generated by the API Explorer. And by the way, there actually are CiviEvents of which the region is set to Rotterdam.

I have spend days trying to debug this, going through the full backtrace of this function, but couldn't find anything. Does anyone have any idea why this presumably standard Civi-feature isn't working?

This screenshot gives the full settings I made in the API Explorer.

As artfulrobot suggested, this is not implemented, but will be in V4.7


Add contact info in contribution page In the contribution form, as the user select the donor, I would like to show some contact info, including both demographic information (eg. email) and custom fields.
How can I do it?
Thanks

I'm not entirely clear on the meaning of "as the user select the donor", but it sounds like you're trying to add some additional fields to a contribution form. This can be done with Profiles, which in CiviCRM amount to a collection of fields, which can be used in a number of ways, including adding them to Contribution page or Event registration form.

A summary of steps for your use case would be something like this (more information is available in the CiviCRM User and Administrator Guide -- from which I've borrowed heavily -- here: https://book.civicrm.org/user/current/organising-your-data/profiles/):

1. Create a profile:

Go to: Administer > Customize Data and Screens > Profiles and click on Add  Profile.
Profile Name: Give the profile a meaningful name.
Used For: Check the "CiviContribute" check box.
Order: Leave blank; this setting will be populated automatically and is not relevant for this use case.
Pre-form Help and Post-form Help: These fields allow you to write text that appears either before or after your Profile to guide people in filling out forms.
Is this CiviCRM Profile Active?: This box is checked automatically and should be left as such; later on, if you want to take a Profile out of use in your organization, you can edit the Profile and un-check the box.
Click "Save" to create the profile.  This will save your settings and open up a form to add a field to the profile.

2. Add fields to the profile:

Now that you have a profile, it needs fields.

(If you're not already on the "New Profile Field" form) Go to: Go to: Administer > Customize Data and Screens > Profiles, and find the profile you've created; click its "Fields" link, which will open the "CiviCRM Profile Fields" page for this profile; click the "Add Field" button on this page, which will open the "New Profile Field" form.
Set field options as you wish:
Field Name: Choose the record type where your desired field appears from the - select - dropdown menu. This will bring up a secondary dropdown menu listing all available fields for that record type. Choose the field you want to add to your Profile.
Field Label: This is the field label that will display on all uses of your Profile. It is prefilled with the default field label. However, the default field labels are often confusing for users of your forms, so you can rewrite them here. For example, the Postal Code field can be renamed Zip Code if your audience is more familiar with that term.
Required?: Check this box to make this required anytime the Profile is used. This is most useful when you want to make sure that certain information (e.g., First Name, Last Name, Email) is always included in a form submission.
View Only?: Check this box to allow users to view but not edit this field.
Visibility: Set to "User and User Admin only". This ensures that other visitors to the form can't view any data from the database.
Field Pre Help and Field Post Help: These fields allow you to write text that appears in the user interface to guide people in filling out forms. Field pre help appears inline. Field post help will create a small help bubble which when clicked appear in a help overlay.
Order: You can use this field to control the order in which fields display in the Profile. Lower numbers are displayed ahead of higher numbers. I recommend leaving this as-is, and adjusting field order on the "CiviCRM Profile Fields" page for this profile.
Active?: Leave this box checks to ensure that the field appears when the Profile is used; you can un-check it later if you wish to prevent a specific field from appearing in the profile.
Click Save and New to add more fields to the Profile, or Save if you have no more fields to add.

3. Add the profile to the Contribution page:

In the Contribution page configuration, navigate to the "Include Profiles" tab.
Here you'll find two settings: "Include Profile (top of page)" and "Include Profile (bottom of page)".  Select your new profile in either one of these, to have your profile displayed at top or bottom of the contribution page.
Click "Save" to save the configuration.

After this, you can modify the profile configuration as needed; changes to profile settings, changes to field settings, or addition, removal or disabling of fields, will all be reflected in the contribution page.  You can also add one profile to as many contribution pages or event registration forms as you wish.


What does the membership automatic renewal interface look like? Where do I get the option to choose whether to renew a membership automatically? Secondly, how does it only apply to the initial membership?

I have

installed a recurring payments processor (agileware eway)
in the membership type configurations page I've made auto-renew optional
I've tried the page, both logged in and not logged in.

Where should I see this choice?

After you've made the membership type as optional, you should set an additional setting on the contribution page, i.e,

visit Contributions -> Manage Contribution Pages
Go to the Membership tab of the required contribution page.
You will see an additional column of Auto-Renew on the Membership type field.

Select Give Option on the membership type that you want to enable this option for.
Save and Navigate to the live contribution link civicrm/contribute/transact?reset=1&id=<page_id>. This should display an option to renew the membership.


Mosaico not displaying images in editor When using Mosaico to build an email, I'm never seeing images in the editor - they display when sending tests or real emails, and when previewing the email, but in the editor they appear as a small blue square with a question mark. Has anyone encountered similar, and found a solution?
We're running CiviCRM 5.27.2 in Wordpress.
Update: some more info was requested in the comments. We're running Mosaico 2.4.1592820024 and this is all a recent install. When I check the "network" tab in developers there are indeed two 403 errors which come up when I launch the Mosaico editor, one I think for the image I'm trying to include, and one to wss://public-api.wordpress.com - I can't obviously identify any problems with the Resource URL settings, but guessing that's where the problem/solution lies! Any help is much appreciated :)
Thanks.

If you're getting a 403 error on the image, that's not a Resource URL error but a file permission error.

Right-click the line with the image that isn't loading and select "Open in New Tab".  Reloading this new tab will make it quicker to test changes.
Check the following (report back here if necessary):
The user that your web server runs under;
The user PHP runs as (if it's different);
The owner of the file that's not loading;
The file permissions of the file that's not loading.
Also check for any .htaccess files in the image folder or any parent folders, and your web server logs.

Between these, you should find your problem.  Be mindful that there's both the immediate problem to fix, and also the root cause that led to this situation.
The file owner is going to be your PHP user, but the web server user is the one accessing it.  So either a) they're different users (which is OK, but makes the other variables above relevant) or b) there's a .htaccess file in place.


Issue upgrading from 4.34 - Fatal Error (value: is not of the type integer Have the following error trying to upgrade the DB, any help would be appreciated:

$ drush civicrm-upgrade-db
Exception: "A fatal error was triggered: One of parameters  (value: ) is not of the type Integer"
#0 C:\xampp\htdocs\ma\html\sites\all\modules\civicrm\CRM\Utils\Type.php(362): CRM_Core_Error::fatal("One of parameters
(value: ) is not of the type Integer")
#1 C:\xampp\htdocs\ma\html\sites\all\modules\civicrm\CRM\Core\DAO.php(1247): CRM_Utils_Type::validate(NULL, "Integer")
#2 C:\xampp\htdocs\ma\html\sites\all\modules\civicrm\CRM\Core\DAO.php(1166): CRM_Core_DAO::composeQuery("UPDATE civicrm_
option_value\n        SET value = '{\"paper-size\":\"a4\",\"or...", (Array:1), TRUE)
#3 C:\xampp\htdocs\ma\html\sites\all\modules\civicrm\CRM\Upgrade\Incremental\php\FourFour.php(176): CRM_Core_DAO::execut
eQuery("UPDATE civicrm_option_value\n        SET value = '{\"paper-size\":\"a4\",\"or...", (Array:1))
#4 C:\xampp\htdocs\ma\html\sites\all\modules\civicrm\CRM\Upgrade\Form.php(683): CRM_Upgrade_Incremental_php_FourFour->up
grade_4_4_1("4.4.1", "4.3.4", "4.6.5")
#5 [internal function](): CRM_Upgrade_Form::doIncrementalUpgradeStep(Object(CRM_Queue_TaskContext), "4.4.1", "4.3.4", "4
.6.5", "C:\Users\Miles\AppData\Local\Temp\civA92E.tmp")
#6 C:\xampp\htdocs\ma\html\sites\all\modules\civicrm\CRM\Queue\Task.php(88): call_user_func_array((Array:2), (Array:5))
#7 C:\xampp\htdocs\ma\html\sites\all\modules\civicrm\CRM\Queue\Runner.php(213): CRM_Queue_Task->run(Object(CRM_Queue_Tas
kContext))
#8 C:\xampp\htdocs\ma\html\sites\all\modules\civicrm\CRM\Queue\Runner.php(168): CRM_Queue_Runner->runNext()
#9 C:\xampp\htdocs\ma\html\sites\all\modules\civicrm\CRM\Upgrade\Headless.php(67): CRM_Queue_Runner->runAll()
#10 C:\xampp\htdocs\ma\html\sites\all\modules\civicrm\drupal\drush\civicrm.drush.inc(689): CRM_Upgrade_Headless->run()
#11 [internal function](): drush_civicrm_upgrade_db()
#12 C:\ProgramData\Drush\includes\command.inc(362): call_user_func_array("drush_civicrm_upgrade_db", (Array:0))
#13 C:\ProgramData\Drush\includes\command.inc(214): _drush_invoke_hooks((Array:29), (Array:0))
#14 [internal function](): drush_command()
#15 C:\ProgramData\Drush\includes\command.inc(182): call_user_func_array("drush_command", (Array:0))
#16 C:\ProgramData\Drush\drush.php(92): drush_dispatch((Array:29))
#17 C:\ProgramData\Drush\drush.php(61): _drush_bootstrap_and_dispatch()
#18 C:\ProgramData\Drush\drush.php(16): drush_main()
#19 {main}
WD php: Exception: A fatal error was triggered: One of parameters  (value: ) is not of the type Integer in       [error]

CRM_Core_Error::fatal() (line 328 of C:\xampp\htdocs\ma\html\sites\all\modules\civicrm\CRM\Core\Error.php).
Exception: A fatal error was triggered: One of parameters  (value: ) is not of the type Integer in CRM_Core_Error::fatal
() (line 328 of C:\xampp\htdocs\ma\html\sites\all\modules\civicrm\CRM\Core\Error.php).
Drush command terminated abnormally due to an unrecoverable error.                                               [error]

The code that is failing is trying to update a name_badge format.  It looks like 3 new types of labels were added at some point but one of them had an issue and this code is updating that one.

It looks for the id of name_badge in the civicrm_option_group table. It uses that in this sql

 UPDATE civicrm_option_value
 SET value = '{$dimension}'
 WHERE option_group_id = %1 AND name = 'Fattorini Name Badge 100x65'

I'm guessing for some reason the array that feeds %1 is not an integer.

So what to do?  You can, as link in the comment suggest, comment out the update.  In this case in civicrm/CRM/Upgrade/Incremental/php/FourFour.php around line 176 comment out this code:

CRM_Core_DAO::executeQuery($query, array(1 => array($ogID, 'Integer')));

You might get the problem again with another upgrade.

You might check to see if the following sql comes back with anything

SELECT * FROM `civicrm_option_group` WHERE name = 'name_badge'

I think it will.  If so, use the id in the following query.

SELECT name FROM civicrm_option_value WHERE option_group_id =

I think you should get back four rows

Avery 5395
A6 Badge Portrait 150x106
Fattorini Name Badge 100x65
Hanging Badge 3-3/4" x 4-3"/4

If you don't get anything back from the civicrm_option_group` WHERE name = 'name_badge' query check to see if the civicrm_option_value exists

SELECT option_group_id,
       name
FROM   civicrm_option_value
WHERE  name in ('Avery 5395',
                'A6 Badge Portrait 150x106',
                'Fattorini Name Badge 100x65',
                'Hanging Badge 3-3/4" x 4-3"/4')

I'm not sure how recommended this is but you can just add the missing name badge row to the civicrm_option_group table.

INSERT INTO `civicrm_option_group` (`name`, `title`, `is_reserved`, `is_active`, `is_locked`)
                        VALUES ('name_badge','Name Badge Format',true, true, false)

Now if you got any of the four option values back you'll need to change their option_group_id to match the id of the row you added with the insert.


Multilingual Email Greeting CiviCRM for WordPress 4.7.15

Problem: Fix the Email Greeting, so it takes advantage of the preferred language and gender fields. I took a look at:

https://wiki.civicrm.org/confluence/display/CRMDOC/Recipe+for+German+Name+and+Greetings+Handling

The page to edit the Email Greeting is hidden under Administration/System Settings/Option Groups - Email Type Greeting Options

I came up with the following which works nicely when used in a Smarty Message Template.

{capture assign=l}{contact.preferred_language}{/capture}
{capture assign=g}{contact.gender}{/capture}
{if $l="en_CA"}Dear{else}{if $g="Male"}Cher{else}Chère{/if}{/if} {contact.first_name} {contact.last_name}

To test it, one selects the new Email Greeting from the drop down on the Contacts Summary page in the Communication Preferences section. Then clicks Save. At this point, the CiviCRM says.

Any suggestions? I'm considering adding 3 Greetings and updating all 2697 records via SQL.

I am a bit of a hurry at the moment - we use a greeting based on the prefix - maybe it helps:

  {capture assign=c}{contact.communication_style}{/capture}{capture assign=p}{contact.individual_prefix}{/capture}{if $p=="Frau"}Liebe{else}Lieber{/if}{ }{if $c=="Familiar"}{ }{contact.first_name}{else}{$p}{ }{contact.formal_title}{contact.last_name}{/if}


Issue to install civicrm 4.6.10 on Drupal 7.41 I'm trying to install civicrm 4.6.10 with Drupal 7.41 on Ubuntu server 14.04 through Virtualbox.
I installed successfully Drupal 7.41 and after that tried to follow the installation guide of civicrm.
My first attempt was to use the "Install New module" though URL but it was not working. I have a "HTML-1" error. Related to posts I see on civicrm forum it could be due to redirection of sourceforge website that is maybe not well managed by Drupal.
So I tried the alternative way, described in installation guide : manual installation. I download civicrm-4.6.10-drupal.tar.gz file from official repository and copy it in my drupal repository in /sites/all/modules folder and uncompress it.
A civicrm folder has been correctly created.
Coming back to Drupal administrator interface, going in Modules part, I see nothing related to civicrm.
I tried to continue to follow the installation guide and tried to access to the installation script here : http://your_drupal_home/sites/all/modules/civicrm/install/index.php but file was not reachable.

What am I doing wrong ?

Thanks in advance for all help and advices you can provide to me.

It looks like something is wrong with your Drupal installation. Does any other module work in Drupal? And also when the module is stored in the directory sites/all/modules


Email greeting settings for contacts without names Contacts have an 'email greeting' field which can be customised on a per-contact basis, and takes its default from a pattern like Dear {contact.first_name}  docs link

Is it possible to enter a pattern that will show "Supporter" if there is no first name?

You can use Smarty conditionals in greetings in CiviCRM 4.5+.

So the correct pattern would be:

{capture assign=first_name}{contact.first_name}{/capture}Dear {$first_name|default:Supporter},


Is there a way to allow partial payments for events? An enormous benefit to many organisations would be a way to allow partial payments for events. Does CiviCRM provide the ability to book on for an event and pay a €50 deposit, and then the balance would be paid on the night of the event itself?

It seems that this is very standard practice for events I've come across in Ireland, at least, and I would love to see it as part of the core.

I've found various pages on the subject of partial payments, but none with anything recent. e.g.
http://wiki.civicrm.org/confluence/display/CRM/Partial+Payments+for+Event+Registrations+and+Memberships
http://wiki.civicrm.org/confluence/display/CRM/Partial+Payments+use-cases

but nothing seems of late. Sadly, I'm not in a position to make a big financial donation and I am not a techie. I just wanted to see if this can be done in any reasonable way.

Partial payment for event registrations is not available for front-office public users as of 4.6. 4.5 provided this functionality for back-office staff users. I'm expecting a contract shortly that will support new APIs for orders and payments in 4.7 that will make it easier to develop functionality like this in extensions or the front-end.


Option Values with problematic Values I'm getting this status message:

  The Following Option Values contain value fields that do not match the Data Type of the Option Group

It references an Option Group and a option value of "No". The actual option value is 0 (zero) and the label is "No". The table looks ok. The field is defined as an int(11) and all of the records have values of 0, 1, 2, or Null. This option group is shared by another custom field, but no warning about that one. I haven't had any issues entering or displaying data.

I believe we solved this. The option group in question is a multiple choice integer (radio buttons) with values 0, 1, and 2 representing "No", "Yes",and "Retest". Nulls are allowed. All values in the table matched. Other than the warning, we never experienced any issues.

We noticed that standard Yes/No option groups used 0 and 1 values, but other multiple choice integer option groups used non-zero positive  integers. We reset all of our "No" records to value 3 and changed the Option Group to match. The warning immediately stopped.


Quicksearch "name/email not found. Did you mean to search by name/email instead ?" After a Civi update from 4.x to 5.8.1, quicksearch stopped searching on email addresses when using the name/email option (the first and default option in the dropdown). It returns no results, and comes with the message "name/email not found. Did you mean to search by name/email instead ?"

If we use the 'email' option from the dropdown list, it works as expected.

The search preferences look like before. The first quicksearch option, "Name/email" can not be unchecked there.

Under the hood, the option is called "sort_name", both in the preferences screen and in the quicksearch widget itself (however, as soon as you start to type, you are typing in another widget, without a name, but that could be voodoo)

After clicking enter, which takes you to the advanced search, it shows the results as expected, including matching emails (Results for "Name or Email LIKE - 'pike-foo'")

Is the sort_name perhaps cached somewhere in 5.x , and do I need to build/rebuild it ?

Have also experienced this after upgrading to 5.8.0. Bug has been reported and hopefully should have a fix very soon –

https://lab.civicrm.org/dev/core/issues/593


Dedupe contact subtype field? All volunteer detained migrant visitation and advocacy organization running Civi 5.10.4. under Wordpress 5.1.1. ICE uses an A# to identify people and we'd like to use this number to track folks as well. I set up a detained persons individual contact subtype and placed the A# field under this contact type.

We're trying to use caldera forms for our volunteers to enter data about letters, phone calls, visits for detained persons. When entering data based on name and A# I'm getting duplicate records from identical information. I tried to create a dedupe rule, but don't find fields associated with detained persons individual contact subtype. Is there a way I can dedupe based on A# which is a detained person specific field?

I made the A# field part of Individual rather than the Detained Persons an Individual sub-type. Many non-detained persons have A#'s so its appropriate. Now that A# is at the Individual level, it was possible to add it to an unsupervised dedupe rule like email. This seems to be working.


Delay automated email like receipts Is there a way I can delay when a automated E-Mail is sent.
For Example - I would like the receipt email when one submits a contribution to be delayed by a few hours.
Thank you

Check out this extension by CiviCoop: CiviRules. You can do exactly that -> delayed Actions: https://civicrm.org/extensions/civirules


Why am I getting problems with username & password for WP cron? I'm trying to set up cron in Wordpress (& I'm only familiar with Drupal). I have the following set up in cron which doesn't work, and when I paste the url into a browser I get 'ERROR: invalid username and/or password'. Yet the user (Cronjob) is in WP and I can logon to WP using the password, and has the required permissions set for CiviCRM.

usr/bin/wget -O - -q -t 1 'http://example.org.uk/wp-content/plugins/civicrm/civicrm/bin/cron.php?name=Cronjob&pass=xxxxxxxx&key=2c3b60639d70ba87f61e819cb2cd0e67'

The problem was the single quotes around the path to cron.php, once I removed them it worked.  Also usr/bin/wget was incorrect, just needs wget. Here's the working crontab entry with output redirected for debugging.

wget -O - -q -t 1 http://example.org.uk/wp-content/plugins/civicrm/civicrm/bin/cron.php?name=Cronjob\&pass=xxxxx\&key=2c3b60639d70ba87f61e819cb2cd0e67 > /home/example/www/wp-content/uploads/civicrm/ConfigAndLog/cronerrors.txt 2>&1


Is there a hook that will be called before each database read? I'm trying to get a little more familiar with writing extensions. I am still struggling with finding the correct / most specific hook function for my patches regularly.
As a specific example, I am altering an SQL call in sites/all/modules/civicrm/CRM/Case/BAO/Case.php::getCaseActivity().
So if I want to create an extension for that, I would need a hook function that will be called whenever sth is read from a database table. I checked all the hooks in https://docs.civicrm.org/dev/en/latest/hooks/ but couldn't find a suitable one.
Is there a hook function like that? Is there a more specific alternative to save resources (checking the hook extension each time a database table is called would happen lots of times)?
Can I create custom hook "call points" to determine at which line of code a hook is called?

There is no hook for reading data from the database. There are hooks however for rendering forms and pages.
There is also a hook for api v3 which is called before and after each api call. That hook is called apiWrapper


FAX. Is it difficult to hook up Twilio programmable faxing to CiviCRM? I would like to be able to use Twilio programmable faxing directly from within CiviCRM. Many of my contacts only have fax numbers (no email addresses).

I tried to put FAX in the tag section below, but, apparently my account isn't mature enough to use the "F" word.

Has anyone successfully hooked up Twilio programmable fax to CiviCRM. The Internet is silent on the subject.

I'm guessing Twilio is one of the cheapest and you're already set up with them, but if you'd consider RingCentral at about 1.7c/page which is reasonable then you can still keep Twilio for other things and just use RingCentral's email-to-fax plan.

So you'd add an email address on your contact records something like 1234567890@rcfax.com, and then use it the same way you'd use any other email address, attaching the pdf or whatever.

https://www.ringcentral.com/plansandpricing/ringcentralfax.html

https://support.ringcentral.com/s/article/6643?language=en_US

There are others besides ringcentral, but that's one I'm familiar with.

UPDATE: One workaround for tracking successful transmissions using the above is to use a dedicated sending address like 'fax-notifications@myorg.org', and then set up the email processor for inbound email processing on this address (see https://docs.civicrm.org/sysadmin/en/latest/setup/civimail/inbound/#autofiling-email-activities-via-emailprocessor). Then when ringcentral (or whatever) sends the transmission receipt it will get automatically filed into CiviCRM. It won't get filed on the specific contact without some extra programming, but it would at least get filed in CiviCRM.


Add custom field and populated with array/data from a non-civicrm table newby here with a quick question about custom fields.
Is it possible to set up a custom field that queries a non-civicrm table?
Hoping to create an autocomplete dropdown menu that does a SELECT on a legacy table we have.
Am I looking in the right direction when I browse this page:
https://wiki.civicrm.org/confluence/display/CRMDOC/hook_civicrm_custom
?

Thank you so much!
johnnyeng

You can do this in a few ways:

If the legacy table is static, just move the data across into a custom field select option. You'll be happier when it's done. You can do this with a SQL command if there are a lot of options.

If the data in the legacy system is changing, there are two few ways:
A) Create MySQL triggers to update the values,
B) Create a batch script to update the options in Civi from the table,


How to notify CEO of large contributions? How can you make an automatical notification to your CEO every time a contact donates more than 10 000?

You could install the extensions CiviRules and Email API.

Then you could set up a rule, which triggers on contribution added.
The condition should be contribution total amount larger then 10 000.
And then the action should be "send mail".
There you have the possibility to select a template. If you have created a template containing tokens of contribution details (you can easily use the extension Summary Fields to have the appropriate contribution tokens), then you can use that specifically for this purpose.
And then  finally you can tick off a box to send the email to someone else than the contact itself. There you can write the email adress of your CEO.

Then your CEO will receive an automatical email containing the details (tokens) of the contact contributing more than 10.000


How do I request an issue to be moved to the paid issue queue when I did not create the issue? I'm wanting to move this issue to the paid issue queue from gitlab.
I'm not exactly sure what the steps are since I have not started the issue.
https://lab.civicrm.org/dev/core/-/issues/1400
Are only users who have created an issue allowed to move it to the paid issue queue?
Do I need to recreate this as a new issue?

At this link it says send an email to info@civicrm.org: https://civicrm.org/about/core-team
It also says you can hire any of the experts.
On the particular civicase issue there are a couple tangled up issues with closed cases (https://lab.civicrm.org/dev/core/-/issues/1401) but maybe this one (which is listed in there) could be dealt with without getting too tangled. I have it on my own todo list to someday look closer at the proposal referenced in there about the more general issue, which may or may not intersect with this one.