You might be able to do it with css but I might use jquery instead:

{literal}
<script type="text/javascript">
CRM.$(function($) {
  $('#s2id_groups').hide();
});
</script>
{/literal}

The problem with css might also be that you don't have a <style type="text/css"> tag around your css?


I don't think so, but there is some support for bookmarking a url for certain types of searches:
https://docs.civicrm.org/user/en/latest/the-user-interface/searching-url-support/


At Administer > CiviContribute > Financial Types create a financial type of 'Scholarship grant revenue' to record the check. This will also create a revenue financial account with the same name that should be edited to have the correct account code etc.
Create a financial account of 'Scholarships disbursed' to record the scholarship payments sent out at Administer > CiviContribute Financial Accounts, make it an Expense account, and make other relevant changes such as entering the Account Code.

Ensure the existing Accounts Payable account or another new one is correctly configured with the appropriate account code and other details. Also optionally ensure the bank account from which checks to the scholarship winners will be drawn is correctly configured with its account code, etc.

Go to Financial Types and create a Financial Type also with the name of Scholarships disbursed. Assign the similarly named Financial Account to it as an Expense Account, and the Accounts Payable and optionally the Checking Account as the asset account.

Use CiviGrant to create Grants for the Scholarship recipients.

If desired, install and use the Grant Applicaton Pages extension to accept applications from students.

If desired, install and use the Grant Programs extension to assist in evaluating applications and communicating with applicants, and optionally printing checks.

Export all financial transactions associated with recieving the original check, allocating the grants, and paying the grants at Contributions > Financial Batches.


API v3 get multiple results for one field

Contact API sends one result per contact. In case if you want to retrieve all custom field value(multiple) of a contact than you need to use CustomValue api. Snippet for reference

REST:

http://localhost/drupal7/sites/all/modules/civicrm/extern/rest.php?entity=CustomValue&action=get&api_key=userkey&key=sitekey&json={"sequential":1,"return":"custom_81,custom_80","entity_id":296,"entityType":"contact"}

PHP

$result = civicrm_api3('CustomValue', 'get', [
  'sequential' => 1,
  'return' => ["custom_81", "custom_80"],
  'entity_id' => 296,
  'entityType' => "contact",
]);

entity_id = contact id

return = custom fields

HTH

Pradeep


"Empty needle" error when exporting from Advanced Search results

It's likely an issue with the code. The fastest "fix" is to hide that armless message by changing the setting. you add in your civicrm.setting.php that line:

ini_set("error_reporting", 0);

and it should avoid to show that message.

Beware that it means that you might have other errors (eg. from other modules) that will be hidden too.


I did this by using CiviCRM hooks (BuildForm).

($form == CRM_Core_Action::ADD) {
        $currentDate = date('d/m/Y');
        for ($i = 1; $i < 10000; $i++) {
            $defaults['custom_197_-' . $i] = $currentDate;
            $form->updateElementAttr('custom_197_-'. $i,array('readonly'));
        }
        $form->setDefaults($defaults);
       }

This is working


Not sure what to do with these errors on User Dashboard

This line:

 https:// wrapper is disabled in the server configuration by allow_url_fopen=0

suggests to change allow_url_fopen = 1  in php.ini file on your hosting server.


Error in WordPress affecting site editing

CiviCRM 4.2.4 is a very old version - it's from 2012.  It's not compatible with newer versions of PHP - I'd be surprised if it worked with PHP 5.6, let alone 7+.  You can downgrade PHP or upgrade CiviCRM - but since you're upgrading from such an old version, be sure to a) take a backup of the database before beginning, b) upgrade a few versions at a time (I'd go to the last version of 4.4, 4.5, 4.6, 4.7 before going to 5.18), c) if you DO have to restore the database, be sure to delete the existing database before restoring the backup.


Since upgrade to 5.34, Drupal accounts are not being created when a member signs up

We figured out a fix for this yesterday (it was reported yesterday as a wordpress issue)
There is a patch here
https://github.com/civicrm/civicrm-core/pull/19696
It will be part of 5.35.0 which will be released on Wednesday
If you are not comfortable patching and can't wait 2 days the other option is to upgrade to the rc version of 5.35.0
https://download.civicrm.org/latest/
(it won't change that much over the next 2 days but you can update the code base with the released version when it does drop)


Can't create new mailing. Gets stuck on "Initializing..."

Sounds like a basic javascript problem. Wordpress plugins are sometimes to blame. See troubleshooting javascript in CiviCRM.


500 server error for live contribution page

Check your civicrm config log file. You are getting donate page working because of cache file. To get the proper error message, you need to remove the civicrm temporary (templates_c) folder and enable the debugging. Also check for common folder in civicrm ( in version 4.6.10 it's missing for drupal release).


Is there a limit to the number of fields that can be included in a profile?

While I have not run into a limit of 20 that I can remember you can add additional profiles to a registration page. This could be a workaround for you. I generally will use additional profiles to group fields under profile titles (i.e. special requests & Special needs).

Hope this helps.


How can I help review/test a Webform CiviCRM PR

You will need ssh access to the code base (on your server):

First: when working on latest code edits you may need to pull in the latest edits (that may not have been released yet) -> for example:

karins-macbook-pro-2:webform_civicrm sysadmin$ git pull origin 8.x-5.x
remote: Enumerating objects: 9, done.
remote: Counting objects: 100% (9/9), done.
remote: Compressing objects: 100% (2/2), done.
remote: Total 9 (delta 7), reused 9 (delta 7), pack-reused 0
Unpacking objects: 100% (9/9), done.
From https://github.com/colemanw/webform_civicrm
 * branch            8.x-5.x    -> FETCH_HEAD
Updating 823e673..3f7294a
Fast-forward
 includes/wf_crm_webform_preprocess.inc |    5 +----
 js/webform_civicrm_forms.js            |    6 +++---
 js/webform_civicrm_payment.js          |    2 +-
 webform_civicrm.libraries.yml          |    8 +++++++-
 4 files changed, 12 insertions(+), 9 deletions(-)

Here are the PR specific steps:

navigate to your modules/webfrom_civicrm directory and pull in the PR you would like to review/test - for example:

[karin@louise webform_civicrm]$ wget https://patch-diff.githubusercontent.com/raw/colemanw/webform_civicrm/pull/128.diff

patch it. Use a dry-run first - so see if there are any conflicts - the output will look something like this:

[karin@louise webform_civicrm]$ cat 128.diff |patch -p1 --dry-run

patching file includes/wf_crm_webform_postprocess.inc
Hunk #2 succeeded at 1772 (offset 9 lines).
Hunk #3 succeeded at 1793 (offset 9 lines).
Hunk #4 succeeded at 1810 (offset 9 lines).
Hunk #5 succeeded at 1835 (offset 9 lines).
Hunk #6 succeeded at 1862 (offset 9 lines).

If no issues - then for real:

[karin@louise webform_civicrm]$ cat 128.diff |patch -p1

patching file includes/wf_crm_webform_postprocess.inc
Hunk #2 succeeded at 1772 (offset 9 lines).
Hunk #3 succeeded at 1793 (offset 9 lines).
Hunk #4 succeeded at 1810 (offset 9 lines).
Hunk #5 succeeded at 1835 (offset 9 lines).
Hunk #6 succeeded at 1862 (offset 9 lines).

Check if there are any database updates to be executed (if you miss this step - you could get white screens of death). I use drush - and here's an example output:

[karin@louise bin]$ drush updatedb

Webform_civicrm  7403  Add field to create new relationship for duplicate records(expiredinactive).
Do you wish to run all pending updates? (y/n): y

Ok all done -> navigate to a webform on your website and check out the new functionality! Take screenshots and note in the PR what exact steps you took - and what you compared/evaluated;
Bonus points for doing this on 4.7.x as well as 4.6.x

Thank you!


Contact SubType check fail in Smarty TPL file

(adding as an answer - see comment thread above)

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


Unintentional removed CiviCRM compnents in Joomla, Re-Installation fails

Have you deleted /media/civicrm/templates_c? That's where Civi caches pages and can be a cause of white screen of doom. You could maybe try deleting/moving the entire media/civicrm directory (saving any files or extensions you've uploaded there) before installing. If that still doesn't help maybe try emptying the dbse tables:

civicrm_acl_cache
civicrm_acl_contact_cache
civicrm_cache
civicrm_group_contact_cache

If none of that works - then maybe you could try creating a new install of CiviCRM to a new database (making sure it's the same version as the one you deleted) and then change the dbse settings in

/components/com_civicrm/civicrm.settings.php
/administrator/components/com_civicrm/civicrm.settings.php

to point to your old dbse (and then deleting the templates_c directory again)


Content aggregator for delivering Drupal 8 and CiviMail

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

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

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


Include organization name in employee's postal address

1/ to get Organisation name you should be able to use the token {contact.current_employer} at /civicrm/admin/setting/preferences/address?reset=1 (assuming you have them set up with the employee/employer relationship)

2/ if multiple individuals have same Employer address then use the 'share address' feature if you don't already know about that (so


After creating/saving an activity, re-opening it to edit won't allow links and drop-downs to be changed

I'm happy to report that the original issue was resolved with an update to 5.5.1. With this update made, the errors illustrated in my original post are no longer occurring.

Because we've long used CiviCRM without this error and first noticed it with 4.7.31 (and consistently with subsequent upgrades), we believe that this new upgrade has returned the functionality enabling us to again edit activities from a popup window opened from search results.

@RayWright, thank you for suggesting the java review and screenshots which helped us see that the issue was limited to "pop up" edit windows (i.e., activities opened from searches) rather than full-screen edits (i.e.,activities opened from reports). The latter may especially be helpful as a workaround if future users see this issue.


Drupal Webform Autocomplete Existing Contact Limit

The autocomplete works and does not have a limitation (we have 900k contacts and no problems).  My mistake was in the selection of the Contact Display Field for the Existing Contact on the Drupal WebForm.  I was using the "Display Name" as the structure but I was entering search as if it was the "Sort Name"  I was getting unexpected results.  Once I started entering the search with the correct format the results were as expected and all the contacts are included.


membership tokens not showing for mail in CiviMail

some tokens are only available when sending from 'that context'. Fuzion made an extension some time ago to get around this and hopefully you will find it provides what you need.

You can check it out here


When using PayPal, we DON'T want to collect credit card info!

I've not tried all these options out, but looking at the documentation for Payment Processors (user guide and system administrators guide there is more than one PayPal payment processor. With PayPal Standard all the credit card details are collected on the PayPal site and with PayPal Pro they are collected on your site and transferred by SSL but not kept. There is also PayPal express. I suspect that you maybe using different Payment Processors for your two cases. Certainly worth checking what you have and adding that to the question. I'm not sure what the relevance of Pay Later is having never used that, but I think that's for offline collection of the payment.


Attachment URLs incomplete on remote server only

Can you check

Check if base url in civicrm.settings.php file is set 'http://remotedomain.com/'.
Try setting home and siteurl in wp_options table to 'http://remotedomain.com/' (not needed for normal install).

Cheers

Pradeep


Managing multiple CiviCRM relationships in a Drupal View: A case study for A->C plus B->C relationships

Here's my solution for achieving the three goals outlined in the question.  I may edit this a bit as I find errors and where commenters declare confusion.

First, the caveats.  Second, some info about relationships in CiviCRM.  Third, building the view.

Caveats

I am writing this as a tutorial as if you are following along.
Obviously you won't have the same data to work with, but this will
work for any arrangement where you have multiple contacts who are
related by the same relationship type to a single organisation and
where that organisation is related to a third contact, e.g. a CEO, a
secretary, a captain, a fundraiser, via a second relationship type,
e.g. a sports team with players and a captain or a committee with
members and a chairman or a company with employees and a CEO.
We will use a contextual filter in the view, but I am not explaining
the guts of filters.
I'm sure there are modules other than Views required to make this
work, CiviCRM integration modules at the very least, but I can't
remember what they might be.  If someone wants to track down all the
modules that are being used here and edit this post, that would be
brilliant.
I am also not going to get into formatting, but can later if people
are interested.
I am showing you how to rewrite the results of a field to create
your own custom link, but will not be going into detail.  The
rewriting feature is how you would create links to the organisation
pages themselves from, say, a page where all the organisations are
listed in a table, but I am not going to take you through how that
would work.

The CiviCRM relationship alphabet

CiviCRM tracks relationships from two sides, Side A and Side B.

I am an 'Employee of' The University of New South Wales, Side A -> Side B.

The University of New South Wales is the 'Employer of' me, Side B -> Side A.

When you create a new relationship type in CiviCRM, you have the choice as to which side of the relationship is going to be A and which side B.  For the relationship types that 'ship' with CiviCRM, the A side is the individual and the B side is the organisation or household, that is, the group.

You can see how it works at Administer->Customize Data and Screens->Relationship Types.  Here's a snapshot of my set up.  For the sake of the rest of this tutorial, note lines 2 and 5, 'Campus contact at' and 'Employee of'.

Individual (A) is 'Campus contact at' organisation (B), so this is a relationship starting from Contact A.

Organisation (B) 'has Campus contact' individual (A), so this is a relationship starting from Contact B.

While tedious in its repetition, this is the most important information to have firmly fixed in your head as you create your view.

Create whatever relationship types you need for your data structure and add relationships to contacts as required.  I've created a few dummy contacts and will use a university where my mob don't have contacts in order to keep this anonymous.

Create your view

Create a new view - Show 'CiviCRM Contacts', 'Display format' doesn't really matter, but you want a list of 'Fields' of some description.
After saving the new view, open up the 'Advanced' column on the right hand side of the view display.
You will be adding several relationships and the order matters because context is king in views, i.e. one relationship creates a new context for the next, and knowing which B is related to which A is essential.
Click to 'Add' your first relationship.  Check the box for 'CiviCRM Contacts: CiviCRM Relationship (starting from contact A)' and click Apply.  That takes you to the field settings window.

In the 'Identifier' box, you'll see the name of the relationship you just selected.  Click in the drop down for 'Choose a specific relationship type' and select the required relationship type.  This defines the first two types of contacts that your view will be handling.  For me, I will select 'Employee of|Employer of'.  This gets me access to all employee data and all employer organisation data in my database, and allows me to accomplish the first two goals, display organisation fields and display a list of members (employees) of those organisations.

Now add some fields to the view.  Let's add the employer display name and the display names of employees of that organisation.  Click to Add a field.  Type 'display' in the search box and select 'CiviCRM Contacts: Display Name'.  Click Apply.  You can leave the Configure Field box alone, so click Apply again.
If you look at the auto-preview at the bottom of the views interface, you are likely to see both individuals and organisations listed.  Remember when you added the display name field, there was no way to indicate which side of the relationship you meant to display.  We need to add another relationship.
Add relationship.  Type 'id b' in the search box and select the 'CiviCRM Relationships: Contact ID B' relationship.  You may think we should now also add the data from Contact A; however, this is where the alphabet soup breaks down, but we'll explain that when we get to adding other fields later.
Click Apply to bring up the Configure field window.  There is a new 'Relationship' option.  Click the drop down and look at the options: 'Do not use a relationship' and 'CiviCRM Contacts: CiviCRM Relationship (starting from contact A)', which is the relationship you added earlier.  Select that option in order to tell views that the Contact B data you want is from that particular relationship type, that is, employer organisations.  Click Apply.

Now go back to Fields and click on the field you already added, display name.  You will now see the same Relationship option in this window as in the previous configure relationship window a minute ago.  Click the box and look at the options.  You should see 'Do not use a relationship' and 'CiviCRM Contact B'.  Select 'CiviCRM Contact B'.  Click Apply.
Now look at the auto preview.  You should see a list of employers only because you have told views that the display name you want to display is that of Contact B from the relationship starting from Contact A defined as an Employee/Employer relationship.
Add another field.  Add display name again, but this time select the 'Do not use a relationship' option for Relationship. Click Apply.  You might expect we should be choosing the display name of Contact A of the relationship we set up earlier, but views takes Contact A of the first relationship you create to be the default Contact for the view, so when you want to display fields from that contact, views says you are not using a relationship.  That is, that data is treated as the data views would display, if you had never set up a relationship in the first place.  From now on, displaying employee data will mean choosing 'Do not use a relationship'.
Check the preview.  Things will likely look rather messy because views is displaying all employer names and all employee names in no particular order or grouping.  Don't fret.  We need to add a Contextual Filter to help views make sense of what we want.  Remember, I am creating a landing page for an organisation, so I want to see data from one org per page, but with all the employees listed for that org.
Add a Contextual Filter.  These filters will be arguments in the url for the page.  In this case, we need to tell the view which org page we want to see, so the url might be http://example.com/employers/9728, where employers is the path to the view and 9728 is the Contact ID of a particular employer.  The filter interprets the number it finds in the url as a field of one of your contacts.  When the url is parsed, we want that number to be understood as the Contact ID of a CiviCRM employer organisation.
In the 'Add contextual filters' window, select the 'CiviCRM Contacts: Contact ID' option and click Apply.
In the configure field window, select 'CiviCRM Contact B' for Relationship.  Click Apply.  That will mean the argument in the url is now interpreted as the Contact ID of an employer organisation.

Before checking the results in the preview, go into Civi and find a Contact ID number of one of your employer organisations to use for the filter.  Then enter that number in the box 'Preview with contextual filters' and click Update preview.  I am using Bond University which has Contact ID 9728.

The preview should now have org names alternating with employee names (I've changed the labels to make it easy to see).  The org names should all be the org with contact id you entered into the filter and the employees should all be from that org.  Obviously, this isn't the way you would display the page, but we are just trying to make the data available, not format anything.

We've accomplished goals 1 and 2 and tidied up the output with a filter to display data from only one organisation per page.  All the concepts are in place and we just need to get the third contact involved, the Campus contact.  Campus contact is related to our existing Contact B in the same kind of relationship as employee to employer and you could imagine we would create another A->B relationship where A is defined as the Campus contact.  Here's where I plead ignorance!  It doesn't work and I'm not 100% sure why, but it may be some kind of confusion with the fact that it already has an A and B related in the same way and can't make sense of the query.  Don't know about that, but I do know how to make it work in an equally intuitive fashion.
Add relationship.  Select 'CiviCRM Contacts: CiviCRM Relationship (starting from Contact B)' and click Apply.
Select relationship 'CiviCRM Contact B' to ensure views knows you want to use the existing Contact B as the basis for the new relationship.
Choose the 'Campus contact at|has Campus contact' relationship type.  Click Apply.
We know from the previous work that in order to be able to access data from the Campus contact, we will need to add a relationship to that contact, which is now defined as Contact A in our new relationship.
Add relationship.  Check 'CiviCRM Relationships: Contact ID A'.  Click Apply.
In the configure relationship window select 'CiviCRM Contacts: CiviCRM Relationship (starting from Contact B)' as the relationship, so that Contact A will now be the Campus contact.  That should be the end of adding relationships for my purposes.

Add a field.  Add display name a third time, but select CiviCRM Contact A as the relationship.  Check out your preview.  You should see three lines for each employee: org name, employee name, and campus contact, and the org name and campus contact should be the same for each different employee.

We now have access to data from three different contacts in the one view.  Congratulations!  The last item is to link my campus contact field to the Drupal contact form for that user.  Child's play compared to what you've just been through!
Add a field. Add the 'CiviCRM Contacts: Drupal ID' field and click apply.
I want the Drupal ID of CiviCRM Contact A, so select that relationship and click Apply.
Learning moment.  Back in the Views control panel click to edit the display name field for Campus contact.
We need to rewrite the output of that field to make it a link to the contact form.  For that we need access to the Drupal token [drupal_id], so that we can create the url user/[drupal_id]/contact.
Scroll down and expand the 'Rewrite results' section.  Scroll down again to 'Replacement patterns' and expand that section.  You will see several tokens for display name, but no Drupal ID.  What those tokens have in common is that they are for fields above the Campus contact field in the field list.
Context is king in views.  We need to move the Drupal ID field up in the list until it is above where we want to use it, so anywhere above the Campus contact field.
Click the arrow next to the Add field button and move the Drupal ID above the Campus contact field.  Apply.
We don't need to display the Drupal ID either, so I would edit that field and check the Exclude from display box.
Edit the Campus contact field again.  Look at the replacement patterns under rewrite results and you should see [drupal_id] as an available token.
Scroll back up and check the 'Rewrite the output of this field' box and the 'Output this field as a link' box.
In the link path input, type user/[drupal_id]/contact.  Apply those changes.
Now gaze in wonder at your preview.  The Campus contact field is now a link.

Click the link and, if you have the contact module turned on, it should take you somewhere like this.  We've achieved all three goals!  Well done.

If you would like me to add some more about how to do some quick and dirty formatting for this kind of view/page, just ask, but I can't do it now.
I hope this has been helpful.


DB error in 'civicrm_group_roles' module

Drupal 7.76 was only current for about a day, because of this bug (which affects other integrations, but hits CiviCRM especially hard). Upgrade to Drupal 7.77.


There is a drupal theme Civi Bartik Public: https://github.com/CiviCooP/civi_bartik_public

You can configure the colors in the drupal admin. Unfortunately I dont have screenshot.


Is there a way to put CiviCRM in read-only mode or deactivate forms programmatically?

For the CiviContribute forms, you can choose Disable for each form from the Manage Contribution Pages screen (civicrm/admin/contribute?reset=1 on 4.6 LTS).  The Disable option is under the More link. When maintenance is done, you can Enable each one in the same way.

For something from the command line:

There is an entity in the API called ContributionPage with a parameter called "Is Page Active?" (is_active). I just executed the Create action thru the API Explorer and it seems to have worked. I would test it out and see what works best for you. The API Explorer lists the drush command as: drush cvapi ContributionPage.create sequential=1 id=15 is_active=0 (0 being disabled and 1 being enabled)


Multiple participants - multiple event registrations

I would take a look at the API csv Import. https://civicrm.org/extensions/api-csv-import-gui
I could not tell you right off what fields you would need to have in your csv file to accomplish this, but I think you should be able to do it. You might have to have each child on the list 5 times to add them to 5 events (but not a big deal because you could still do it as one import). You could save some csv "templates" for each club so you do not need to recreate them every week/month.


The Issue list for the extension is at https://github.com/eileenmcnaughton/nz.co.fuzion.civixero/issues and is the logical place for 1) bug reports, 2) feature requests, 3) bug reports re: performance, 4) feature requests/bug reports re membership purchases. You can probably also use that issue queue to ask 5) about how it is implemented, or even better, offer to update the documentation if provided with that answer.


Event Registration - Confirmation Page Not Shown - Returns to Blank Registration Entry page First Time in a session?

this could be a situation where you are jumping from www to without www or http to https or reverse. confirm that the urls are consistent throughout your settings eg civicrm.settings.php


Direct Debit ACH/EFT Contribution: Asking for Banking Info Twice

Exactly - the broken image for the cheque display tells us that the template/js from the iATS Extension are not loading properly

First thing to do is to check your Resource Settings URL:
civicrm/admin/setting/url?reset=1
specifically the Extension Resource URL

Second thing to do is to start up a browser inspector tools - and check the console -> for javascript errors when you load the page;


CiviCRM menu not displaying properly or useably in wordpress

For WordPress 5.5.1 the minimum CiviCRM version is 5.26.2.  I'd recommend 5.28.4 as that is the security release.
Due to changes in WP you may also have to update your settings.
For reference: https://civicrm.org/blog/kcristiano/civicrm-526-and-wordpress-important-notice
Even though the changes discussed come into effect in 5.29 this doc: https://docs.civicrm.org/sysadmin/en/latest/upgrade/version-specific/#civicrm-529  is a good explanation of paths for CiviCRM and WP


CiviCRM + Drupal + Office 365 Integration

The usual way of email integration is a bit different.

CiviCRM can read a POP/IMAP account, this can be the full account or a subfolder in it.

Then you have your own mailreader, be it outlook, thunderbird, gmail, office 365 mail or any other system.

What I often do for customers is the subfolder option.
When any email is worthy to be stored in the CRM it can be copied to the subfolder. CiviCRM then stores it as an activity. The activity is connected to both the sender and the recievers of the email.

If email address exists in the CRM then activity is connected to that contact. If email address does not exist a new contact is created.

Much more information can be found http://wiki.civicrm.org/confluence/display/CRMDOC/Autofiling+email+activities+via+EmailProcessor

When you see a much better solution with a different kind of integration with Office 365 mail, you can consider helping the whole community with an extension for it.


Allowing multiple fianancial types for same price set single contribution page

You can have multiple Financial Types in one Price Set and all on the same contribution page. The simple way to do it is to set the Price of the Price Field at $1.00 and just have one Price Field for each Fund. You can give each Price Field in a Price Set different Financial Types. Then donors would enter the amount they want to give. But, you could set it up as you describe above. The first Price Field for General Fund, you would use Pre-Field Help to Display your Section Title "General Fund". Then you would set this one up as General Fund $100 with the Price at $100, Financial Type "General Fund". Create another General Fund $500 with a Price of $500, Financial Type "General Fund". Etc. Repeat this pattern for "Scholarship" but give these a Financial Type "Scholarship". Then the donors would enter a 1 (or any number 2x$100) for the amount they want to give. Just make sure that the Default Financial Type for the Price Set is NOT any you are using in the Price Fields within it. Otherwise it will get confusing when you are pulling reports and you likely will get mixed data. Use Contribution or something for the Price Set Default Financial Type

Here is a quick rundown of how Civi handles Financial Types. When you create a Price Set and enter a value in the  Default Financial Type. It is stored in table civicrm_contribution.financial_type_id. This is the Financial Type that is used in CiviReports.

The Price Field Financial Type is actually called Line Items in the background. You can have each Price Field have a different Financial Type. You have to use Extended Reports Extension to be able to pull reports based on Line Item. These Financial Types are stored in table civicrm_line_item.financial_type_id.

When creating a Message Template use tokens for the civicrm_line_item table Ie.{$lineitem.label} {$lineitem.financial_type_id}

Below is a screenshot of our contribution page. Donors have the option to give to the Fund(s) of their choice and each one is a different Financial Type (Line Item) in the backend.


Looking for CiviSMS extension. New version?

Did you have a look at the extensions directory on:

https://civicrm.org/extensions
filter for SMS
Select one and you'll find the download link

Note that both Clickatell and Twilio don't have a 4.7.x stable version listed yet - best to contact their authors to see where things are at.


Civi adds whitespace into contact images

After much digging, I found the reason why contact images were not appearing.

It was due to a module that had a PHP file with two new lines before the opening PHP tag <?php.

To figure this out, I created a local copy of the website and went through the modules list, enabling them one by one to see at what point the image broke.

Once I'd found which one broke the image, it wasn't hard to go through the files, searching for the whitespace.

Removed the two new lines before the tag and the image instantly worked.

Hopefully this will come to some use if anyone has a dodgy contact image!

On a side note, this also fixed the Mosaico problem I was having - Failed to locate Mosaico graphics driver


This is only possible if you have "detailed logging" enabled.  If not, you'll need to restore a backup copy of your database (to a test server!) and do a comparison.

You can check to see if you have detailed logging enabled at Administer menu » System Settings » Misc, under Logging (see screenshot).  If you do NOT have this enabled, please read the logging documentation before enabling it.  If you have shared hosting, you may not be allowed to turn this on; if you run CiviCRM on your own server or VPS, then you should have no problem.

If you DO have detailed logging enabled:

Go to the contact record with the changed address.
Click the Change Log tab.
Find the change that corresponds to the date that the address was changed and click Update next to it.
You should see before-and-after results.


Civicrm and wordpress user registration after admin approval

It looks like you would need to create a custom plugin which would play role to interconnect the two features, ultimate member plugin account verification method and automatic wordpress user creation through profile.

In that custom plugin, you would need to use 'hook_civicrm_post' hook which will get called every time a DB write is done, make sure to put an if condition right after the hook function definition to make plugin run only when account gets created and in that if condition make call to the function that performs account verification process in 'Ultimate Member' plugins, more detail on how to call a function of wordpress plugin from another wordpress plugin can be found here.

Hope this solution will help you.


Why does the profile field contact subtype only display individual subtypes but not organisation subtypes?

I just tested this & it seems like as soon as you add a field like 'organisation name' to the profile it switches to an org. Civi doesn't really like you doing 2 different contact types off one form - because it doesn't know what to save them as


Webform Contributions Error Since Last Update

Install contribution transaction api extension...


How do I find the web root in civicrm.settings.php?

The easiest way to set those is using Civi::settings()->set('......').

In the UI it is Administer/System Settings/Directories.

Is that what you are looking for?


Rule to create a Linked Drupal user account for a specific CiviCRM Contact Subtype

I'm assuming you are also using the CiviCRM Entity module?

For it to work on membership create, you need to load the contact entity from the membership->contact_id property.

Use the "Fetch entity by id" action.

Because of this, you may need the Rules Conditional module, which let's you put conditionals in the "actions" portion of the Rule.

There you can add an "If" conditional action, and the "CiviCRM Contact is of subtype" condition provided by CiviCRM Entity should work for you there.


Error importing contacts Wordpress Multisite

It turns out it was errors in the data.  I picked apart the spreadsheet and went from the ground up and it finally gave me a report of what the errors were instead of this vague error message.

The errors were:

Country name USA instead of US
Some of the date formats were wrong

I believe there might have also been some strange formatting in the original spreadsheet that affected the upload.


How to remove an activity from a case or file an activity on several cases

You USED to be able to do this but the system was changed a little over a year ago so that it now removes the original from the non-case side - see Items not showing up on activity log.

There is the copy-to-case action for most activities on a case but it's not available for Emails/Inbound Emails. The reason might be that historically the "spirit" of CiviCase was to prevent something that might be challenged legally, i.e. if someone sends you an email it shouldn't be altered, to preserve the record, and that got applied broadly since internally it's similar code to other actions. You could try temporarily removing this line in CRM/Case/BAO/Case.php and see what breaks: https://github.com/civicrm/civicrm-core/blob/5.18.3/CRM/Case/BAO/Case.php#L2621. You might also need to grant the "edit inbound email basic information" permission in your CMS's permissions to see the action link if you aren't the admin user, but I don't think it's needed.

If you're comfortable with editing the database directly, find the internal activity id (hover over the view link on manage case and it's the number after the aid=), and then you can do DELETE FROM civicrm_case_activity WHERE case_id=1 AND activity_id=2, where you replace 1 and 2 with the actual case_id and activity_id. That should unfile it.


CiviMail not delivering to certain mail servers eg. wp.pl

Demerit is correct, but I'll add a bit more detail and how you can fix it.

Your CiviCRM sends emails as bounces.stp@gmail.com from 212.77.101.4. The SPF records looked up are those for the sender's domain, gmail.com, which does not include your webserver's IP.

Gmail treats this as a softfail, but nazwa.pl seems configured to treat failed SPF more strictly. Both are SPF fails.

Unless you control @gmail.com, you can't fix this via SPF for that originating email. What you can do is send messages from your own domain, with working SPF configuration.

To address this, change the originating email address (CiviCRM Menu > Administer > CiviMail > From Email Addresses) to eg bounces@stpuk-org.pl.

This mailbox can in turn forward to your Gmail address, so CiviCRM can continue monitoring that mailbox for bounces.


Multilingual instances show 'no such field' errors after update

In the latest version, you can also rebuild the multilingual schema yourself by navigating to API Explorer http://www.site-name/civicrm/api#explorer

Select Entity = System, Action = rebuildmultilingualschema and click on Execute button.

If you aren't able to access the API explorer UI, try using the cv command from the terminal.

cv api System.rebuildmultilingualschema

Or using drush -

drush cvapi System.rebuildmultilingualschema


What is "Error: Could not find valid value for u"

What should this URL do?

This URL is used to track the number of clicks done on the URL included in mailings.
When the URL is included in mailing, it is in the format of civicrm/mailing/url?qid=<mailing_queue_id>&u=<url_id>
If there is no URL id (u parameter), use of the above link is invalid, hence the error.
So i think you should never have this URL without u query string in it. How do you get this URL from?


How would I expose weight for a custom select field to Drupal Views for sorting?

You can use the Views CiviCRM Expose Tables module to join to CiviCRM tables and columns that aren't otherwise exposed.


How long should a CiviCRM / Drupal upgrade take?

Based only what you have said so far 40 hours is excessive and 4 hours is more reasonable. But some further discovery or prior knowledge of the kind of customizations you have in your site might make 40 hours a reasonable quote. For example, needing to upgrade a few extensions so they are available for 4.6 and do some advanced theming might require 40 hours.

Our upgrade process involves:

Reviewing the standard native CiviCRM extensions and CMS modules/plugins used and ensuring they are available for the new CiviCRM version,
Finding and analyzing the native CiviCRM extension built just for the site as well as the custom CMS modules/plugins developed just for the site - they may need adjustment, perhaps significant,
Reviewing whether there is custom code and / or templates overriding CiviCRM or even using jQuery to adjust the DOM - this is often where some developer time is required during an upgrade,
Reviewing the theme for CiviCRM customizations and noting they will need to be checked post-upgrade - the more extensive the more risk of breakage during the upgrade,
On Drupal sites, checking for tweaks and customizations within the views using CiviCRM, or any non-views blocks etc that pull in CiviCRM data,
On multilingual or non-English sites, checking for the availability of translations for CiviCRM, native extensions, and CMs modules/plugins,
On a complex upgrade this is where we would provide the scope and estimate to the client.

In terms of the actual upgrade process, it involves:

Backing up the site and restoring it locally,
Running the upgrade process,
Addressing issues identified in 1 to 6 above,
QA of result,
Usually deploying site to staging for signoff by other JMA staff and client (skipped for simple upgrades)
After signoff, upgrading production site, usually by taking it offline during night in primary site timezones, doing the upgrade, deploying the changes from 9 to 11 above, and putting it back online.

To summarize the factors affecting the cost of upgrades:

In browser CiviCRM configuration changes like creating custom fields and profiles don't require extra work to upgrade.
More references to pages in CiviCRM from the CMS don't create extra work on upgrades.
The use of each additional native extension from the CiviCRM extensions directory and standard downloaded CMS module/plugin that interacts with CiviCRM slightly increases the risk of extra work.
The more code in extensions, modules/plugins, themes and especially custom PHP and Smarty template override files developed just for this site the more likely that developer time will be needed, and that more of it will be needed.


How to use Views to send a Mailing to a Selection of Recipients?

I'm assuming what you have is a bunch of Drupal users that you are segmenting using Drupal field values.

Step 1 Go here civicrm/admin/synchUser?reset=1 and make sure all your Drupal users are in CiviCRM.

Step 2. Create a custom field for an individual. Make it Yes/No. Call it My Group or whatever. Make it searchable.

Step 3. Make sure that you have the custom field group added to the database config in settings.php /civicrm/admin/setting/uf?reset=1 so you can use it in Drupal Views.

Step 4. Create a view of CiviCRM contacts. Use a Drupal UID relationship so you can filter them into the group you want. Add the custom field you created in Step 2 to the view. Add a VBO filed. Modify the Entity value of the custom field. Bulk edit the custom field and set it to 1.

Step 5. Go to CiviCRM and search for contacts with the custom field set to yes. Add them to a new Mailing Group.

So you could have this as a smart group. You users just have to use VBO to add in the custom field value to update the smart group.


Webform: Only Open Case if Condition is True

You can achieve this by:

Ensure you are using the latest version of webform_civicrm
(CiviCRM tab) Set the Case Type field to "user select"
(Webform tab) Edit the Case Type webform component, and change the widget type to "hidden". Set it's value to the case type of your choosing.
(Webform tab - Conditionals) Add a conditional rule to show/hide the Case Type element based on the value of another field of your choosing (it's a hidden field already, you say, what's the point of hiding it? Either way it won't appear to the user, but this conditional rule will prevent the case from being created if your condition is not met).


Exclude contacts from report based on membership they have

One solution could be to make a Smart Group (A) of those with Membership X or Y or Z, then have another Smart Group with the larger target group eg All Individuals (B), then use the Custom 'Include / Exclude' Search to do B not A.

This may not help you if your need an sql query but could be useful to others (if it works as I expect it would)


You may want to try using Smarty debugging.

Turn on debugging at Administer menu > System Settings > Debugging
and Error Handling.
Load the same URL, but add "&SmartyDebug=1" to the end.
You may need to enable pop-ups in your browser to see the window that appears.

Hopefully access to the Smarty debugging will make it clear what the value of $row.component is.

Alternatively, you could just add "$row.component" to the template inside the "if" statement.  I'd guess it's not showing either "event" or "contribute", but something else altogether.


I guess you dont have write permission on Extension folder

What you need to do is try to find if you have Extension folder already

Administer -> system setting -> Directories -
look for CiviCRM Extensions Directory

you should find a path in Civicrm 4.7.x ext folder will be created against the below location -

.../sites/default/files/civicrm/ext

If folder exist then try to navicate to the location in Command prompt or Winscp and provide write permission to the folder - this should fix the issue

refer to the below link - additional reading

Are there recommended directory ownership and permission settings for CiviCRM files?

https://forum.civicrm.org/index.php?topic=10545.0

I guess this helps!!!


Price Set fields with Quantity per Option

This can be done if you set the Input field type to Text/Numeric Quantity when you create a price field.

You will need to create one price field per option.  There are two slight variations for this field type. Based on your question I think the following will work for you:

If A costs $5, set the "Price" field to 5.00 and make the field's label something like "Number of $5 Widgets"

and so on for B, C and D.

The other option, mostly used for donations, can be found in our book in the section on  membership pricesets. You will need to scroll down to the section on Non-membership price fields.


Can one show participantID on event reminder?

Unless writing an extension implementing token processor its not possible to fetch the participant id in reminders.
If you familiar with smarty and the contact will have only one participant for a event than you can try below snippet in your reminder message template
{capture assign=eventID}{event.event_id}{/capture}
{capture assign=contactId}{contact.contact_id}{/capture}

{crmAPI var='result' entity='Participant' action='getvalue' sequential=0 return="id" event_id=$eventID contact_id=$contactId}
{foreach from=$result.values item=participant}
 Participant Id - {$participant.id}
{/foreach}


Can CiviRules add a contact to an event?

Not at present - I've investigated this myself in the past.  You can find a complete list of actions in their repository (though of course other extensions add actions).

I considered writing the action but it turned out to be complex.  A rule that adds everyone to a pre-determined event is easy enough - but creating a UI that could handle actions like "Add contact to the next workshop" proved trickier and not worth the effort (for me, YMMV).


Petition Email Error When Creating New Petition

This is a known issue - see CRM-19286.  To fix, upgrade to CiviCRM 4.7.12 or higher.


Find Participants - pulling up too many names not related to the class

I think you are on very old version of CiviCRM, Similar issue was reported 10 months ago and was fixed in 5.14.1

You can either upgrade CiviCRM to latest or apply patch


As of CiviCRM Entity 2.0-beta8 the Views relationships to Country and World Region have been made available. You must install the CiviCRM Entity Views Extras submodule.

CiviCRM Entity can be downloaded here:
https://www.drupal.org/project/civicrm_entity


CiviCRM has very specific hosting requirements, so it is always best to select a hosting provider that advertises compatibility with CiviCRM. The CiviCRM hosting providers directory (https://civicrm.org/hosting-providers) is your best place to find such hosts.


Linking events participants and contributions

you have a create participant record in civicrm_participant table which will have the Event Id in the table, participant and contribution should be linked using civicrm_participant_payment which will have contribution_id and participant_id. This is how you have to do

One more suggestion: before doing anything data import install a fresh copy of civicrm and delete all the relevant table records and make a test process by creating Event and registering the event for an member and look which are the tables been affect and please update the values based on the test


Welcome to CiviCRM.

There are a lot of online resources which hopefully you have already discovered eg the User Guide and there is also a Dashlet that gives you helpful links

There are also training videos and webinars and meet ups available, which would be a cheaper (or free).

There are many providers/partners who provide paid support for Non Profits getting started with CiviCRM - which probably isn't the answer you want, but the list of Partners is here

If you make an interesting pitch you might find that someone around here might just offer to give you a one hour sprint through core features to give you a quick start. (PM me if you want, I can probably squeeze something in over the next few days - the weather is shitty here so not going far!)

Also worth getting on https://chat.civicrm.org/civicrm for free support in a chat environment.


The current Authnet extension supports e-checks and doesn't override core files, and hasn't since April 2019 (version 1.3).


push notification for the registerd participants for an event

If you want to send notifications to event participants, the best way to do that is with CiviCRM Scheduled Reminders (https://book.civicrm.org/user/email/scheduled-reminders/)
or with the extension CiviRules (https://civicrm.org/extensions/civirules).

Did you look at those?

If you, after looking at them, prefer a drupal module, you can get the CiviCRM information via the CiviCRM API or maybe even via drupal views.


The emoji part sounds familiar. If the db tables are not utf8mb4 then emojis get cut off (or fatal error depending on mysql/mariadb/version).
You can convert your db tables to utf8mb4.
In addition you may also want to apply this patch https://patch-diff.githubusercontent.com/raw/civicrm/civicrm-core/pull/17716.patch


If you say the file record is correctly present in civicrm_file and civicrm_entity_file table, then only thing which is missing seems to be the entry for it in custom value table. To verify this yourself -

Check the custom value table name mentioned in civicrm_entity_file (entity_table column).
Open the above custom table and make sure it contains the mapping of civicrm_file id and entity_id(contact id)


CiviCRM translations on staging server not working

If you are still busy with this you can better download the latest version of the translation from the download-page CiviCRM: the localization files. The directory sql is only used for new installments, so the l10n-part will do.
You can switch the language first to English to force the system to re-translate the menu and set then the language back.
I have a working extension (standalone) to update the translation using the sql-file for single language systems, you can then use the latest translations for upgraded CiviCRM installments because great parts of CiviCRM are only translated during the installation and the translation in Transifex is always behind the new versions of CiviCRM. Let me know if you want to try my extension on your development system.


Not sure what you mean by "custom" relative date filter, but if you're looking for filtering the results just like we have on the "Find Participant" form, then yes, looks like it is possible.

Eg - To find all participants registered in this fiscal year can be retrieved via -

i.e, select Other in the Parameter dropdown and enter participant_register_date_relative in the textbox as shown above.

The API that will be formed is -

$result = civicrm_api3('Participant', 'get', [
  'sequential' => 1,
  'participant_register_date_relative' => "this.fiscal_year",
]);

Similarly, for Previous Fiscal Year, enter previous.fiscal_year in the value field.


Current members in expired membership search results

You don't say how many membership types you have, so I will assume that you only have one.

You could create one smart group (SG1) with criteria Membership status = expired and another (SG2) with membership status of new or current. (And perhaps Grace depending on whether you want those people excluded from your final smart group or not.)

Then you can use the custom search  Include / Exclude Search including SG1 and excluding SG2 to define a third smart group that you clearly label as the group to be used when ex-members are required.


What are best practices for deploying changes?

In larger projects we tend to put configuration stuff (like setting up contact_sub_types, activity_type, case_types, groups, tags etc.) in a specific config extension that can then be deployed in each environment.

When doing so we tend to put the configuration into json files. But there is nothing like features as far as I know.


You are experiencing CRM-16035 - Dashlet refresh can crash server.

The default dashboard config is pretty close to maxing out the default Debian config for either Apache or PHP-FPM.

Depending on your server setup (question says just Apache which typically suggests via mod_php) you probably need to increase either the number of  connections Apache permits.

You could also remove some dashboard widgets for the affected contact - if the dashboard is currently inaccessible so not editable for you, you could do this by directly editing entries in civicrm_dashboard_contact in the DB.

If you are using Apache + php-fpm or fcgi, you might need to increase the max_children setting in your php-fpm config instead. For non-Apache users, other StackExchange will explain how to increase server limits for your php/webserver configuration.


In what part of the world are you located? If it is in Europe you might need the CiviSEPA extension as well :-)


CIVI Crm Wordpress with Xampp crashes my SQL

It looks like you may have attempted to install this more than once, or maybe run out of diskspace?  The error message above shows:

nativecode=1813 ** Tablespace for table '`wpcivi`.`civicrm_participant_status_type`' exists. Please DISCARD the tablespace before IMPORT.

https://dev.mysql.com/doc/refman/5.6/en/server-error-reference.html#error_er_tablespace_exists

This looks like it might have some answers for you: https://stackoverflow.com/questions/15694168/error-tablespace-for-table-xxx-exists-please-discard-the-tablespace-before-imp


Getting Apache 500 error when using CiviProxy

The key to this would be the actual error message. HTTP Error 500 usually means that PHP encountered a fatal error, which should end up in the webserver's error log. Could you have a look? It could be in /var/log/apache2/error.log, but it depends on your configuration.

Also two remarks (you probably already know this):

The de.systopia.civiproxy extension is only required if you want to send out mailings; it changes the contained URLs to the proxy
Installing the proxy scripts on the same environment is not what we had in mind, the ideal place would be a separate environment in the DMZ.

Cheers
Björn


How do use upload function for mail merge with Word

There's two different things:

Mail Merge, which is a native feature of word.
Print/Merge document, with output as a word document, which is a feature of CiviCRM. (I'm not sure it has the ability to "upload" a word document. If it does I'm not familiar with it, but see below.)

For the first one, you would want to do a contact export in csv format, and then from within MS Word do your mail merge as you would with any excel data source.

For the second one, inside CiviCRM:

Go to Administer - CiviMail - Message Templates and create a new template.
In the HTML section, copy/paste from MS Word into the box using the Paste-From-Word icon.
Then you will need to replace your tokens with the civicrm versions of the tokens, using the dropdown.

Then when you do a contact search you can choose Print/Merge document from the actions dropdown on the search results page and choose your template and MS Word as the output format.


How to a create custom field that is multi-line text or text area?

Use the 'Note' type of custom field to get a text area


How to get all active states & provinces from one api call?

CRM.api3('StateProvince', 'get', {
  "sequential": 1,
  "return": ["name","country_id.name"],
  "options": {"limit":0}
})

UPDATE: I haven't tried this but Lodash v3 is loaded on most civi pages so you might be able to use filter or forEach to combine the results of the above with the countryLimit array to remove inactive ones.


new event From Template does not copy custom fields

According to https://lab.civicrm.org/dev/core/issues/766 this looks like it has now been fixed.


Need help in getting quote for security upgrades

It can be time consuming and thus expensive to do security upgrades, especially on a site that has custom code. Monitoring requires some setup and sometimes an ability to respond quickly when something goes wrong.

Some providers bundle these services with hosting. Others provide them without the hosting.

I would compare the full cost of migration + hosting + security upgrades + monitoring between providers. You might also find that your site doesn't need every security upgrade - ask about options here since some providers want to upgrade all sites on every security release, while others will evaluate if the security vulnerability applies to your site given its configuration. And you might be willing to risk your site having troubles or being offline for a while before you notice in order to save some money on monitoring.

Migrating a site to a new server can be fairly simple, or sometimes not, depending alot on the server setups and the age of the site. Moving from an old server with an old CMS to a new one might cause issues with version of PHP for some custom or old Drupal 6 modules, etc. However, some hosting providers are willing to do the migration for free on the expectation that the costs can be amortized over the length of your time hosting with them.


Fatal Error on manually executing Report Sender (daily)

It's Ok I was not removing the square brackets in the example, I found a working example here - civiCRM Cron only run one mail_report scheduled jobs?

All working now :)


Contribution updating the wrong members record

It seems this problem has been reported as a bug at https://issues.civicrm.org/jira/browse/CRM-19594 "Wrong membership Updated"


Error Running Contributions Summary Report

It seems like you have some invalid data in your database.  I don't think this is related to file permissions or caches.  Is it possible that you imported data via a SQL command rather than the UI or API?

Try turning on the backtrace function in Administer menu > CiviCRM > Debugging and Error Handling, and hopefully you'll get a better sense of which field this is supposed to be.  Alternatively, look at the fields that are likely to be called in your instance of the report - checking columns, filters, etc. - and then run SQL commands to find a datetime field with a value of "201401".

Since this is likely to be in civicrm_contribution, I looked up the datetime fields in that table.  There are four.  Try running these commands, then see how this data get entered?

SELECT id, contact_id, receive_date FROM civicrm_contribution WHERE receive_date = '201401';
SELECT id, contact_id, receipt_date FROM civicrm_contribution WHERE receipt_date = '201401';
SELECT id, contact_id, cancel_date FROM civicrm_contribution WHERE cancel_date = '201401';
SELECT id, contact_id, thankyou_date FROM civicrm_contribution WHERE thankyou_date = '201401';

UPDATE: That backtrace is super-helpful!  I looked at the code in CRM/Form/Contribute/Summary.php and I see better what's happening here. The issue is still invalid data - just not in the format I expected.

This part of the code is the part that creates the links on the Summary Report to drill-down links.  See the links in the screenshot:

So Civi is converting the start dates of each of those months into a different format.  One of your contributions still seems to be happening in a different month.

You can try commenting out lines 737-786 of the file I mentioned - you'll lose the drill-down links, but hopefully the invalid data doesn't affect anything else.
This bug shouldn't trigger unless you're grouping by receive date.
You can try tracking down that bad data.  Try this SQL:

SELECT id, contact_id, receive_date FROM civicrm_contribution ORDER BY receive_date;
SELECT id, contact_id, receive_date FROM civicrm_contribution ORDER BY receive_date DESC;

Check the bottom of both those lists for odd-looking receive_dates, my guess is you'll find one!


Custom data: Can the Input Type Field be None?

Yes, you can use custom data for this. When creating/editing your custom field, enable the "View Only" option:


How to export website field for a contact where website is specific website type?

I have a website type called Twitter Website, for storing Twitter "handles". Each website/handle contains 'twitter.com' (i.e., like www.twitter.com/joemcl )

So using Search -> Search Builder, I search for Contacts Website Like %twitter% , then select all search results, select Actions, then Add Contacts to a Group (or better perhaps, choose New Smart Group) to create a new Group of every contact who is a Twitter user.

The same can work for Facebook as a website type.

Obviously this won't work for type 'Work' or 'Home', which won't be in the website name, which is what I think you actually want.


There are multiple things called dashboard, but if I understand right I think the one you're looking for is the "Case" dashboard, which is not the default dashboard unless you change the frontpage under /admin/config/system/site-information. The case dashboard is under the Cases menu.


How can I send "Birthday wish" email to contact?

I would not use a smart group, but use the "Individual has birthday" trigger that is included in CiviRules?


From email addresses with 4 character domain names or non-normal domains

The most likely cause of this error is that the email was entered in the format myname@example.org rather than a name and email in the format My Name <myname@example.org>.

While the field label at civicrm/admin/options/from_email_address?reset=1 says From Email Address, the field actually requires you to enter a sender name and email address.

The field help says,

  Include double-quotes (") around the name and angle-brackets (< >) around the email address.
  EXAMPLE: "Client Services"


Moneris Payment Processor - use CIviCRM Invoice ID as Order ID in Moneris

Sounds like a good idea, most payment processors don't really like those 'random hash' things. But that random hash is the "invoice_id", and it's just how civicrm generates it (for good reasons, actually). The "Invoice ID" you describe is an optional piece of 4.6, so not always available. Also, I'm not sure if it's available to the payment processor plugin. Anyone else have an idea?


Edit Multi-Value / Multi-Record Fields in Profiles

Seems the only workaround is to use the "Edit" mode for the profile, rather than "Create" mode.

The limitation being this will only work for logged in users.


Trying to remove old version and install new

It looks like your civicrm.settings.php file may still be looking in the com_civicrm directory for your Civi files.  You will also need to make sure that your "CiviCRM Resource URL" directory on the Settings-Resources URL screen has been updated (Top black menu > Administer > System settings > Resource URLs).


CiviContribute: show contributions without other contact details

This answer is applicable for WordPress. If you are using a different CMS you will have to state which you are looking for.

Create a Page titled "Dashboard"
Insert this shortcode [civicrm component="user-dashboard" hijack="0"] & whatever else you want the donors to see.
Add plugin WP Redirect After Login Plugin. It is in the WP Plugin Library. https://wordpress.org/plugins/redirect-after-login/ I just change the Subscriber Role (or whatever Role your Members are defaulted to) to go to the dashboard url you just made in step 1. If you do not do this, they will land on the WP-admin dashboard.
Add a donor login link where you need it (yousiteurl/wp-admin/ or yoursiteurl/login/)

ps. I also use a plugin ABD Dashboard Widget Manager https://wordpress.org/plugins/abd-dashboard-widget-manager/ This allows you to edit what the donors see when they are in the WP Dashboard. Add widgets that redirect them back to their donation history, give them information, etc.


Where can I see a contributors phone number and email?

If you click on the contact name ie. 'From' on the form shown on your screen shot it will take you to the contact summary page of the contact where you will get to see all the details of the contact stored for it. If you still can't see the details than your user might not have required permission to view contact details


If you are on Linux, I found this explanation (https://www.drupal.org/node/2477693) :

  The Root CA used to sign *.api.mailchimp.com was removed from Mozilla NSS CA > Certificates bundle in February 2015, and was removed from Debian 8's
  ca-certificates package in January 2016.

I used this method to solve the problem :

Download cacert.pem file from here: https://curl.haxx.se/ca/cacert.pem
Add this Mailchimp CA cert at the end of cacert.pem :

GTE_CyberTrust_Global_Root
==========================
-----BEGIN CERTIFICATE-----
MIICWjCCAcMCAgGlMA0GCSqGSIb3DQEBBAUAMHUxCzAJBgNVBAYTAlVTMRgwFgYD
VQQKEw9HVEUgQ29ycG9yYXRpb24xJzAlBgNVBAsTHkdURSBDeWJlclRydXN0IFNv
bHV0aW9ucywgSW5jLjEjMCEGA1UEAxMaR1RFIEN5YmVyVHJ1c3QgR2xvYmFsIFJv
b3QwHhcNOTgwODEzMDAyOTAwWhcNMTgwODEzMjM1OTAwWjB1MQswCQYDVQQGEwJV
UzEYMBYGA1UEChMPR1RFIENvcnBvcmF0aW9uMScwJQYDVQQLEx5HVEUgQ3liZXJU
cnVzdCBTb2x1dGlvbnMsIEluYy4xIzAhBgNVBAMTGkdURSBDeWJlclRydXN0IEds
b2JhbCBSb290MIGfMA0GCSqGSIb3DQEBAQUAA4GNADCBiQKBgQCVD6C28FCc6HrH
iM3dFw4usJTQGz0O9pTAipTHBsiQl8i4ZBp6fmw8U+E3KHNgf7KXUwefU/ltWJTS
r41tiGeA5u2ylc9yMcqlHHK6XALnZELn+aks1joNrI1CqiQBOeacPwGFVw1Yh0X4
04Wqk2kmhXBIgD8SFcd5tB8FLztimQIDAQABMA0GCSqGSIb3DQEBBAUAA4GBAG3r
GwnpXtlR22ciYaQqPEh346B8pt5zohQDhT37qw4wxYMWM4ETCJ57NE7fQMh017l9
3PR2VX2bY1QY6fDq81yx2YtCHrnAlU66+tXifPVoYb+O7AWXX1uw16OFNMQkpw0P
lZPvy5TYnh+dXIVtx6quTx8itc2VrbqnzPmrC3p/
-----END CERTIFICATE-----

Save the file in your PHP configuration folder.
Open your /etc/php5/apache2/php.ini file and add this line:

curl.cainfo="/etc/php5/apache2/cacert.pem"
Restart your Apache server and that should fix it.


Mailchimp extension not pushing new Civi group members to the Mailchimp list

The instructions page you linked to is for an old version, which you must be on if you have 1.8.7.

I wrote version 2 of this extension and it's fairly a complete rewrite, so while I can't promise it solves your problem, I can say that no further development is going to happen on 1.8.x.

You need to update to v.2 before the end of 2016 as Mailchimp are apparently pulling their old API, so your integration will probably stop working. Veda have most of my code "merged in master" (means they've accepted it) but have not published a release.

I have published a release, though, at https://github.com/artfulrobot/uk.co.vedaconsulting.mailchimp/releases

It's flagged with a red beta tag at the mo because it brings in an experimental webhook thing for WordPress users, but I'm guessing you're on Drupal, so you can ignore the beta bit - I have been running this version in production for a few months now. But you should see the README as the new Mailchimp API changes a lot. I'd definitely recommend a backup of your Mailchimp lists ("exports" from Mailchimp) and your CiviCRM set up before you go upgrading. Of course you would anyway :-)


Here's an example of moving #mycustomfields ahead of a .core-class:

function Refresh() {
  cj(function ($) {
    'use strict';
      /* move my custom fields up where they belong */
      $('.core-class').prepend($('#mycustomfields'));
  });
}

Open up an inspector tool for your browser to find the # or the . you'd like to move around using JavaScript. In Firefox I like Firebug: http://getfirebug.com/

In the example above I'm moving an entire div with id=mycustomfields.

@Josh ended up using:
'cj('#editrow-custom_25').insertBefore('.editrow_prefix_id-section');'

Many ways to re-order change things up in jQuery!


CiviCRM Rules - Condition for contacts created X days ago

You may be able to achieve this already out of the box.

Create a rule like this:

Trigger: Contact added to group.
Condition: Contact is in group "the one you want"
Action: the desired action, with 14 days delay. Then check the box for rechecking of conditions. (You may also want to have an action of removing contact from the original group, so that the condition is no longer met, somewhere down the line...)


Each custom field is part of a group, that is itself attached to a "normal" civicrm entity (that can be a contact, an activity, a participant...), so the first thing you need to do is to find to what the custom group is attached.

the second thing it to be sure it's searchable. You can find both of them in the admin custom fields.

once you know where it is and that it's searchable, you can use the advance search, and you will have that field

As a side note: if your question provides a list of groups (all the sections or committees) it's probably going to be easier for you to ignore the custom field and directly show the list of groups


Coming from a different angle, perhaps you could use CiviRules (along with the added extension Email API to enable CiviRules to send emails) so that any time a contribution is added, you could send an email to your bookkeeping address.  (And thus you wouldn't need the CC or BCC for the contribution pages).

Out of the box, you can set conditions for different financial types.  Another option: if you didn't want to go to use CiviRules for every contribution, just the off line ones, you could create a custom field for contributions indicating off line, and then use a CiviRules condition of Field Comparison for your new custom field, so emails get sent via CiviRules only when the back office is filling it out.


How can I find the CiviCRM Admin API key from Wordpress CiviCRM plugin

you can find API key against each contact record in the Database

select api_key from civicrm_contact where id = <>

Also please read the below link for more reference
https://civicrm.org/extensions/api-key

I guess this helps !!!


CiviCrm will not install on Joomla 3.5.0

I'm currently running J 3.5.0 with CiviCRM v 4.7.4. Have you tried upgrading J 3.4.8 install to J 3.5.0? If not, I would give that a try.


PHP is being updated from version 5.5 to 5.6

CiviCRM runs great on PHP 5.6 - better than it does on PHP 5.5!  I make that upgrade regularly without thinking - assuming CiviCRM is up-to-date, which in your case it is.

Note that upgrading to PHP 7 is not yet supported, though it will be imminently.


How to setup email verification for newsletter signup using webforms?

If you're looking for technical validation try this:

Create a webform field type Email
Install Webform validation module (if you don't already have it) and implement rule "Equal Values".
Apply validation rule to emails for webform and CiviCRM by using the checkbox.


How do I get Retrospective feedback for an event using a Webform (participant Custom Data)?

OK - I have it,
for this I've set up a Scheduled Job that fires off to "attended" participants a few days after the event. I set up a smart group of "participants whos participatory date was after [a month ago]" so i didn't spam older participants, and used the group as an "include" filter.
Set up an event, of the right type, so that it would get fired.
Added contacts to the event (and gave them the "Attended" status.
Created the webform and including (from the CiviCRM tab):

existing contact
firstname
lastname
contact ID
checksum

then in the "Event Registration" section

show past events: all
Registration Options > Disable unregistering participants: yes
Registration Options > Allow events populated from URL: yes
under Contact1
no of event sets for contact1: 1
event(s): User Select
& any needed participant custom fields

and build the checksummed url:

http://example.com/node/xxx?event1={event.event_id}&cid={contact.contact_id}&checksum={contact.checksum}

think that's it.
let me know if I missed a bit (or did anything stupid!) and I'll correct it.


Reporting on contribution amounts when added to a membership page

i would do the following. use a single price set based on Memberships. add the donation line item in to it with its own financial type.
then the Extended Report extension should solve your last issue of how much is donation v member fee


Database name on Wordpress can't include hyphen, but our host has mandatory prefix-hyphen-name format

Found how to resolve this one, but bit concerned that this fudge might break something further on down the line.

The CiviCRM installer page is driven by the file: wp-content/plugins/civicrm/civicrm/install/index.php.

This runs various checks and the db name check is on line 464 showing a call to CRM_Core_DAO to function requireValidDBName.

This function is in php file: wp-content/plugins/civicrm/civicrm/CRM/Core/DAO.php.  Editing the preg_match string to include hyphens after the underscore allows these in the file name.

public static function requireValidDBName($database) {
  $matches = array();
  preg_match(
    "/^[0-9]*[a-zA-Z_-]+[a-zA-Z0-9_-]*$/",
    $database,
    $matches
  );
  if (empty($matches)) {
    return FALSE;
  }
  return TRUE;
}


Quickform: Set the "Selected" value in a select element

This is how you do it:

CRM_Financial_BAO_FinancialType::getAvailableFinancialTypes($financialTypes, 3);
    $this->add('select', 'financial_type', ts('Financial Type'),
            $financialTypes,
            'TRUE'
            );
    $this->_elements[4]->setSelected(9);

You need to inspect $this and determine which of the elements is the select you want to modify. In my case it was the 4th one.

You then need to inspect the select (from the browser) and find out the value for the option that you want selected by default.


How do I search for Activity Attachments?

This might be an answer to a slightly different question, but... in the past, I've used a mix of add-ons to perform a full-text search on activities and their attachments:

https://github.com/civicrm/apachesolr_civiAttachments

When you run a search with "Search => Full Text" and filter on activities, it will include any matches in PDFs/DOCs/etc that are attached to activities.

That module may be a significant undertaking (e.g. it requires an extra server, Solr, and the documentation is pretty rudimentary), but if you really need it, it might be a piece in the puzzle.


You can use Search Builder (under the Search menu).  On the first Search line, search for

  Contacts > Email > Primary > Is Empty

On the next search line(s), set your criteria for the members piece.

EDIT: And then you can save as a Smart Group which you can use as your List


create webform that allows user to create either 1, 2 or 3 activities depending on user selection

You can accomplish this by:

For each activity, make the Activity Type field "user select".
Edit those 3 Activity Type fields on the webform. For each one:

Deselect "list box"
Deselect all activity types except the one you want.
Rename that option to something like "Create activity"

Add a conditional rule on the form showing/hiding other activity fields depending on the Activity Type field being checked.

This will present a checkbox on the form allowing users to select whether or not they will create each activity.

Note: This works in the current version of webform_civicrm but logs an error saying "could not create activity." I've fixed that superfluous error report in -dev (as well as fixing a bug where it could not save activity details) so you may want to upgrade to the -dev version until the next release.


How can I set up an incoming email account on GMail with OAuth?

This assumes you've already created a G Suite user and can successfully log into their e-mail manually.
On CiviCRM

Enable the OAuth extension.
Go to Administer menu » System Settings » OAuth.
Click on Google Mail.

On Google.com
You need to complete the "Prerequisites" section of the "Using OAuth 2.0 for Web Server Applications documentation.

Open the API Library in the Google API Console.
Select GMail API from the list of APIs.
Click the Enable button.
Visit the Credentials Overview page.
Click OAuth consent screen.
Select External user type and click Create. Note: Apps with external consent screens can require review from Google.  However, "test mode" allows up to 100 users.  Since you'll only have one user, you can keep your app in "test mode" indefinitely.

Fill in the following information - App Name (whatever you like), User support email and Developer Contact Information (your email address), and the Authorized domains.  This should be your site's domain.  Note that you want only the "second level domain".  E.g. if your site is "database.mysite.org", just enter "mysite.org".

Press Save and Continue.
On the Scopes screen, select Add or Remove Scopes.
Add the openid and https://mail.google.com scopes.

Click Save and Continue.
For Test users, click Add Users and add the email address(es) of the incoming email accounts you created.
Click Save and Continue.

Click Credentials in the left navigation menu.
Click Create Credentials » OAuth Client ID.

Set Application Type to Web Application.
Set Name to whatever you'd like.
Click *Add URI under Authorized Redirect URIs.  Add the Redirect URL from the CiviCRM OAuth screen (see "On CiviCRM" above).
Click Create.
You should get a screen that says OAuth client created, with a Client ID and Client Secret.

To retrieve these values at a later date, click the Edit icon next to the credentials you've just created.

On CiviCRM

On The Google Mail OAuth screen you should already have open, paste in the Client ID and client secret you just retrieved from Google.
DO NOT click "Add". OAuth logins are only good for an hour, but they refresh automatically.  However, due to a quirk in Google's implementation, only the first login will refresh.  If you did by accident, remove all your login clients in Civi and in Google.
Go to CiviCRM's Administer menu » CiviMail » Mail Accounts.
Add Mail Account is no longer a button, but a select box.  Select Google Mail.
You should see a Google login screen.  Log in with the incoming email account's credentials.
CiviCRM should correctly autodetect all the correct values.  Review and press Save.
If you haven't already, don't forget to go to Administer menu » System Settings » Scheduled Jobs and enable the Process Inbound Email job.


You have requested a non-existent service "mosaico_graphics"

As it turns out, adding FlexMailer did the trick.
Administer: System Settings: Extensions
Add New
FlexMailer


Extension for hierarchical custom fields?

Yes, I have such an extension - and so do many others!  I think mine is the most functionally advanced, but lacks a UI, or, uh, documentation (oops), and so is unsuitable in most use cases.
If you're interested, I can ask one of my staff members to write some documentation on this today, but broadly:

This creates two new entities (with full APIs): FieldLookupGroup and FieldLookup.

There is one FieldLookupGroup for every "lookup" set.  FieldLookup contains the actual corresponding values.

Here are some SQL tables of FieldLookupGroup from two different clients:

+----+----------------+--------------------+----------------+--------------+-------------+-----------------+
| id | field_1_entity | field_1_name       | field_2_entity | field_2_name | lookup_type | lookup_operator |
+----+----------------+--------------------+----------------+--------------+-------------+-----------------+
|  1 | Event          | start_date         | Event          | custom_302   | reverse     | BETWEEN         |
|  2 | Event          | start_date         | Event          | custom_303   | reverse     | BETWEEN         |
|  3 | Activity       | activity_date_time | Activity       | custom_305   | reverse     | BETWEEN         |
|  4 | Activity       | activity_date_time | Activity       | custom_306   | reverse     | BETWEEN         |
|  5 | Participant    | custom_265         | Participant    | custom_307   | reverse     | =               |
|  6 | Participant    | custom_265         | Participant    | custom_308   | reverse     | =               |
+----+----------------+--------------------+----------------+--------------+-------------+-----------------+

+----+----------------+--------------+----------------+--------------+--------------+-----------------+
| id | field_1_entity | field_1_name | field_2_entity | field_2_name | lookup_type  | lookup_operator |
+----+----------------+--------------+----------------+--------------+--------------+-----------------+
|  1 | Contact        | custom_50    | Contact        | custom_52    | chain-select | =               |
|  2 | Contact        | custom_54    | Contact        | custom_56    | chain-select | =               |
|  3 | Contact        | custom_58    | Contact        | custom_60    | chain-select | =               |
|  4 | Contact        | custom_62    | Contact        | custom_64    | chain-select | =               |
|  5 | Contact        | custom_63    | Contact        | custom_62    | chain-select | =               |
+----+----------------+--------------+----------------+--------------+--------------+-----------------+

The first set handles a "reverse" hierarchical lookup - e.g. "given a county, simply fill in the state and country on save".  The second set is a "chain-select" and more closely matches what you're looking for.
Here's is a small sample of values from FieldLookup for the second client:
+----+-----------------------+---------------+-----------------+---------------+
| id | field_lookup_group_id | field_1_value | field_1_value_2 | field_2_value |
+----+-----------------------+---------------+-----------------+---------------+
|  1 |                     1 | 4             | NULL            | 3             |
|  2 |                     1 | 4             | NULL            | 19            |
|  3 |                     1 | 4             | NULL            | 20            |
+----+-----------------------+---------------+-----------------+---------------+

Taken together with the table above, this reads: "If a user selects a value of 4 in custom_50, then custom_52 should be limited to the options with values 3, 19, or 20".
field_1_value_2 is if you use the BETWEEN operator - e.g. "if the start_date is between 2020-01-01 and 2020-12-31`, limit the value of the second field to the following options".


Multi-value fields can only be created on the Contact entity, which may be what's confusing.  Here are the steps (with screenshots):

Administer menu » Customize Data and Screens » Custom Fields.
Click Add Set of Custom Fields.
Set Used For to "Contacts".
Check the box Does this Custom Field Set allow multiple records?


Can we export from membership search and include fields for groups?

I've run into an almost identical problem, which I solved with a custom extension.  I've hardcoded which groups correspond to chapters, and whenever someone is added to a group, I check if it's a "chapter" group.  If so, I update a custom field with their chapter name, so I can export it.
I could upload the entire extension to Github if you like, but the relevant code is here.

function membershipcards_civicrm_post($op, $objectName, $objectId, &$objectRef) {
  //set the chapter name for membership cards
  if(($op == 'create' || $op == 'edit') && $objectName == 'GroupContact'){
    $params = array(
      'version' => 3,
      'sequential' => 1,
      'contact_id' => $objectRef[0],
    );
    $result = civicrm_api('GroupContact', 'get', $params);
    //cycle through the groups.  If you find one that's a chapter
    //(currently hardcoded as gid <= 83), return its title.
    foreach($result['values'] as $key => $value){
      if($value['group_id'] <= 83) {
        $chapter = $value['title'];
        break;
      }
    }
    $params = array(
      'version' => 3,
      'sequential' => 1,
      'custom_98' => $chapter,
      'id' => $objectRef[0],
    );
    $result = civicrm_api('Contact', 'create', $params);
  }
}


I have installed and unzipped Civi in WordPress plugins directory, CiviCRM installer page is blank?

If you haven't already done so, login to your WordPress site with Administrator level permissions.

In Admin, Go to plugins section and activate the CiviCRM plug-in.
After that, open a new browser window and enter and run the following URL "http:///wp-admin/options-general.php?page=civicrm-install

You should then see the Installer screen where you can follow the given instructions.
Hope that helps.


https://civicrm.org/extensions/front-end-page-options is a likely solution and yes it works on 4.7 according to my list of which of our clients sites is using which extension ;-)


Why external ID removed in membership import in update mode?

The reason it doesn't work is that in CiviCRM, a contact may have more than one membership, so handling just external ID (or contact ID, at that rate) in update mode could be ambiguous.

I agree that it would be nice to take either of those, simply spitting out errors if it's actually a question of which membership to pick, but that hasn't been implemented.

To update memberships, do an export of existing memberships and get the membership ID, not the contact ID, for the ones you want to update.


Why is Joomla demo site showing it is using 4.6.0?

For background: The demo, training, test, and many local-dev systems for Drupal+CiviCRM and WordPress+CiviCRM are based on a common set of scripts, and they all install clean copies of Civi from git (using branches or version-tags). The demo sites are automatically rebuilt every night using the scripts. This keeps the sites up-to-date.

For Joomla: Installing a good, clean system for Joomla+CiviCRM from git is very difficult -- I and others have tried to automate it a few times and always given up. (Somewhere in my email history, there's a note-to-self about how hard this is. Alas, the language is too strong for publication.)

IMHO, there are two ways one can proceed with automating Joomla installation:

Don't use git. Develop a different set of scripts based on zip files. (The nightlies might be good for this.)
Rewrite the installer

At any rate... Without an automated installer, the Joomla demo site grows out-of-date periodically.


We have been using CiviCRM shoreditch theme for quite a long time until we switched to Kindly Theme by artfulrobot for some of our clients recently. Both are good in their own aspects. Around 2.4k sites in this universe are using CiviCRM shoreditch theme. We also have custom theme inheriting Drupal bootstrap3 theme for some clients to match their screens.


save contact with non numeric phone number gives access denied civicm_strip_non_numeric

I checked a site that is currently being test-upgraded from 4.4.14 to 4.6.4, so we have both the 4.4.14 and 4.6.4 versions.

In 4.4.14:
GRANT EXECUTE, ALTER ROUTINE ON FUNCTION mycividb.civicrm_strip_non_numeric TO 'myuser'@'localhost'

In 4.6.4:
GRANT EXECUTE, ALTER ROUTINE ON FUNCTION mycividb.civicrm_strip_non_numeric TO 'myuser'@'localhost'

I.e. the same. This permission normally gets automatically granted for this function, when the function is created, which happens when triggers are set up. This is done automatically by MySQL:

  The EXECUTE privilege is required to execute stored routines. However,
  this privilege is granted automatically to the creator of a routine if
  necessary

https://dev.mysql.com/doc/refman/5.5/en/stored-routines-privileges.html

From the MariaDB docs:

  To run a stored routine, the EXECUTE privilege is needed. This is also
  temporarily granted to the creator if they attempt to run their
  routine unless the automatic_sp_privileges variable is set to 0.

https://mariadb.com/kb/en/mariadb/stored-routine-privileges/

Worth checking the automatic_sp_privileges variable.

Does a trigger rebuild (/civicrm/menu/rebuild?reset=1&triggerRebuild=1) fix the problem?

You say you solved the problem by adding the "execute" privilege to your drupal-db user. Did you mean your civicrm-db user? If you post the results of SHOW GRANTS for the relevant users, that might help to diagnose what's happening.


Does anyone have recent experience with CiviCRM for RSForm?

I purchased the extension, and can confirm that it work with latest release of civiCRM.


This appears to have been fixed for version 4.7. After deleting an activity you remain on the 'Activities' tab for the contact. I tested this on http://dmaster.demo.civicrm.org/


Has integration been done for Textify Mobile?

My name is Mitch Cannon, and I'm the VP of Technology for Textify Mobile. We currently only offer a private API for specific integrations and partnerships. With that said, we are actively developing a RESTful, JSON-based API for our general user base. I would love to talk with anyone interested in an integration about their needs and what we can currently accommodate.

http://www.textifymobile.com/contact-us


Displaying Custom Contact Fields In Contact Dashboard

If you are using Drupal, one option is to create a View as a Block and then set the Block to show at the Contact Dashboard page.

WP may have a similar solution based on using a CiviCRM Profile and having that set up (via some WP approach I do not know) to show at the Contact Dashboard path


How to use Gsuite Relay as SMTP for CiviCRM bulk mailing?

It seems there is a difference between sending via Gsuite and Gsuite SMTP Relay ...

For sending via Gsuite, and comparing the connection details in the post you linked to with a site using this, the difference is that it uses SMTP host ssl://smtp.gmail.com

The main practical limitations are the limits and that all mails get sent out with the sender of the Gsuite account, not the address you configure in Civi.

I haven't tried Gsuite SMTP Relay


We did enounter the same issue earlier. I created an issue for it and proposed a patch: https://issues.civicrm.org/jira/browse/CRM-20228


Has version 4.7 introduced an Activity Date filter problem with activity reports?

This seems to be a bug with the update report, preview report works as expected. See guideline on bug reporting https://civicrm.org/bug-reporting


Can Drupal Webform Integration update matching contacts

By default the Webform-CiviCRM module uses the default "Unsupervised" rule from CiviCRM to determine if an unknown contact is already in your database. If this is not happening for you, check your rule's criteria.

And as of v4.11 you can now specify the matching rule per contact.

You'll find this new option just under the "Contact Fields":

The help text says:

  This determines how an unknown contact will be handled when the
  webform is submitted.

  Select the "Default Unsupervised" rule for the
  same duplicate matching used by CiviCRM event registration &
  contribution forms.
  Select a specific rule to customize how matching
  is performed.
  Or select "- None -" to always create a new contact.

  Note: Matching rules are only used if the contact is not already
  selected via "Existing Contact" field.


Presently CiviVolunteer does not have a direct integration with Drupal Views. I have worked with the CiviCRM/Views integration before, but it's been quite a while now, so I'm not sure what's changed... that said, my work was integrating CiviCRM core fields with Drupal Views. I'm not sure what it would take -- or even if it would be all that different -- to integrate Drupal Views with entities defined by a CiviCRM extension.

As of version 2.0, CiviVolunteer does provide a filterable list of available volunteer opportunities. Here's an example. Perhaps this obviates the need for a Views integration?


Tax not applied when performing backend membership renewal

Nevermind - I was able to track it down - it was reported in version 4.6.5 and there appears to be a fix.

https://issues.civicrm.org/jira/browse/CRM-16950?jql=text%20~%20%22renewal%20taxes%22


Stripe/GoCardless Payment Processor payouts - Accounts reconciliation

The most common approach to reconciliation is to update contributions within the CRM with the identifier from the payment processor. For Stripe we have a few approaches, our most recent is the payout reference from Stripe is automatically pulled back into CiviCRM. This allows the finance departments to run a payout report from both systems and reconcile. This has proved to be a very reliable and streamlined process. With GoCardless it's not possible to do an automated process unless you have the pro version with access to their APIs. You can perform a similar function by updating contributions in CiviCRM using the GoCardless data.

The key to a streamlined process is finance being able to easily find all the transaction which make up the transaction into their bank account, which involves some flow of information back from the payment processor into the CRM. The unfortunate part of this is all of the payment processors have varying levels of APIs and data to access.


How Do I Fix Mail Send Stopping at 500 Sends?

Check Administer menu > CiviMail > Mailer Settings, and see if the "Mailer Batch Limit" is set to 500.


Is there a way of automatic discounting renewals based on referrals?

I think you'd need to write a custom extension to handle this.

I would create a custom field of type "contact reference" on your membership form so people could indicate their referring contact.  Of course, this exposes some (or all) of your contact names to the public, but it's better than manually connecting the records.

Then you could write a simple extension that queries for the number of contacts that are referenced by this field on other contacts to calculate a discount.  Optionally, you could also clear the fields after that to prevent the discount from being applied to a future renewal.


I feel your pain. Using wysiwyg editors to write emails is like using salt to heal a bleeding wound. It might have a purpose, but probably not in this context. and in this context, it hurts. A lot.

Anyway, back to your question: are you having the replacement in the href or "only" when you leave the link as part of the text you send?

The latest version of civi should behave correctly, otherwise, you can disable the replacement of the & into & (I've done it, it's not 100% html strict compatible, but seems to work fine with 100% of the real mail clients): here's an explanation on how to do it:
Escaping quotes in ckeditor breaks smarty-syntax

and a more generic question about how to disable the wysiwyg editor:
How to disable or fix the wysiwyg editor on civimail


I think you're right - good catch. See https://github.com/civicrm/civicrm-core/pull/19802
FYI in my database there isn't a restriction for uniqueness for the abbreviation field - the unique constraint is defined here: https://github.com/civicrm/civicrm-core/blob/da28128b812d4ae53c52abd8073656c61bbc4cc7/xml/schema/Core/StateProvince.xml#L70-L74 and it's name and country_id.


Does CiviCRM work with Drupal 8 and how can I help?

UPDATE: Please head to this Q+A for documentation information / links or head direct to the installation documentation
There is a channel on Chat here


Nothing happens when selecting any "Actions" dropdown options

The problem was a conflict with the CiviCRM Bootstrap Theme. Disabling the extension resolved the problem.


Do you happen to know how it was deleted? Because there's actually two kinds of deleting - one is permanent, one is not.

Try the advanced search and turn on the option to search in the trash.

If they have been permanently deleted, then you won't be able to bring them back in the software - you'll need to find as much of the information elsewhere (backup of your database, emails you got from the system, etc) and manually recreate as much as you can.


This is typically handled by adding a webhook endpoint to your extension.  The Mailchimp extension does this - see Webhook.php.

If you've already written your API action, it shouldn't be too tough to use a webhook to grab the data and push to API.

It sounds like maybe you're past this point, but https://lab.civicrm.org/dev/financial/issues/55 is an issue I raised to deal with handling POST data stored as JSON.


Another tool that folk who are moving to CiviCRM and Drupal may find interesting is the Drupal module CiviMigrate. There is a fairly historic write up of it here


Here is how to pass an array to drush

echo '{"retrieval_parameters":{"jobId":97727336,"filePath":"Raw Recipient Data Export May 15 2017 22-07-43 PM 674.zip"}}'
| drush cvapi Omnirecipients.get --in=json


unexpected extensions listed in system status

A couple versions ago the concept of "hidden" extensions was introduced. The theory was it would allow for moving bits of code out of core and into extensions without anyone noticing any difference at first, and then at some point make them visible/optional. You'll find them in the civicrm_extensions database table and also in the ext folder in the root of your civicrm folder.
So technically those are all still officially part of core right now, just the code has been rearranged.