Contribution Summary throws 500 error Uncaught Error: [] operator not supported for strings in
  /wp-content/plugins/civicrm/civicrm/CRM/Report/Form/Contribute/Summary.php:580

Don't know whether this started with Civi 4.7.19, WP 4.8, or something else -- but now I get this 500 error whenever I try to run a Contribution Summary (Reports / Contribution Reports).

Other Civi summary reports (e.g. Constituent Summary, Event Participants List) run as expected. Other Civi Contribution reports also run as expected. It seems Contribution Summary is our only misbehaving report.

I've disabled all plugins other than CiviCRM and activated Twenty Seventeen theme, but that doesn't stop the 500 error.

  Stack trace: [13-Jun-2017 08:57:17 America/New_York] PHP Fatal error:
  Uncaught Error: [] operator not supported for strings in
  /wp-content/plugins/civicrm/civicrm/CRM/Report/Form/Contribute/Summary.php:580
  Jun 13, 12:53:49 PHP Warning: Failed to send an email, wp_mail()
  returned FALSE in /wp-content/plugins/error-log-monitor/Elm/Plugin.php
  on line 200
  5 [REDACTED] in /wp-content/plugins/civicrm/civicrm/CRM/Report/Form/Contribute/Summary.php
  on line 580
  4 /wp-content/plugins/civicrm/civicrm/CRM/Core/QuickForm/Action/Submit.php(74):
  CRM_Core_Form->mainProcess()
  3 /wp-content/plugins/civicrm/civicrm/CRM/Core/Form.php(447): CRM_Report_Form_Contribute_Summary->postProcess()
  2 /wp-content/plugins/civicrm/civicrm/CRM/Report/Form/Contribute/Summary.php(756):
  CRM_Report_Form->postProcess()
  1 /wp-content/plugins/civicrm/civicrm/CRM/Report/Form.php(3249): CRM_Report_Form->buildQuery()
  0 /wp-content/plugins/civicrm/civicrm/CRM/Report/Form.php(2626): CRM_Report_Form_Contribute_Summary->groupBy()

It is possible we've had this problem since well before the current Civi and WordPress iterations were released/installed, but hadn't noticed it before because we're still somewhat new to Civi.

I activated debugging and backtracing, but no error info displayed when running Contribution Summary.

I assume Contribution Summary is working fine for everyone else. What should I try next?

This appears to be identical to CRM-20558.  Upgrading to 4.7.20 or applying the fix there should solve your problem.  Note that CiviCRM is not tested against PHP 7.1, so you may want to consider using PHP 7.0 instead.


I can send emails with Drupal 7 using the SMTP Module but not CiviCRM I host a server on Google Cloud with Protonmail Bridge running in the background. I am still new at working with CiviCRM 5.26.1 and PHP. I can successfully send emails via Drupal usinig the SMTP module but with CiviCRM I receive this error when I send a test email:

  authentication failure [SMTP: STARTTLS failed (code: 220, response: Ready to start TLS)]

In the Bridge Configuration Guide, an exception has to be set on Thunderbird.

Now, according to this solution that would seem to solve my problem : SMTP connection failing problem, I don't have the same structure when I open the /Net/SMTP.php file.

Note: This exception is needed for Protonmail Bridge.

Civicrm has changed how it's including the PEAR library - it was previously including a patched version - however this was updated in https://github.com/civicrm/civicrm-core/commit/a6a0ff13d2a155ad962529595dceaef728116f96# to improve maintainability

I believe if you want to apply the fix from SMTP connection failing problem

you will now find the required file in vendor/pear/net_smtp/Net/SMTP.php


Manage Emails Sent When Changing Participant Status When you change a participants status on the back end an email is sent.  Sometimes you may not want an email to be sent to the participant.  Is there a way to suppress these emails? Is there a setting I am missing to control when these emails are sent?

Thanks,
Steve

I'm afraid the answer to your question is: "No you're not missing a setting." CiviCRM will send out emails for bulk 'registration status' updates automatically with no way to stop it.

For some projects - we'll use a simple Drupal buildForm hook for other backend registrations/updates (below) - but this does not help with the bulk actions.

function mydrupalmodule_civicrm_buildForm( $formName, &$form ) {
  if ( $formName == 'CRM_Event_Form_Participant' ) {
     // please no - really - yes - no confirmation emails...
    $form->assign('email', '');
    $form->assign('batchEmail', '');
  }
}


Is there any way to add "Relationship Type" to a membership type that already has members? We've decided that the way we initially setup civimemberships for our organization does not meet our needs. We need to extend membership to employees of member organizations so that employees will receive email communications sent to member organizations.

CiviCRM does not allow this setting to be changed through the UI. It is something I can change through the database?

Yes, you would have to change the civicrm_membership_type table, in columns relationship_type_id and relationship_direction. Be careful though as these are multi-valued field, so if you inherit the membership based on multiple relationship types you will need to store CONCAT_WS(X'01', {type_1}, {type_2});


Self referential Smart Group - good idea? An organisation has local campaign groups. Some of these campaign groups belong to a set we call the "core activist network".
I want the core activist network group to contain:

all these groups that are manually added
all individuals that are related to a local campaign group which is part of the group.

I've set this up as follows:

Search for "name contains 'a'" - anything that will return at least one result.
Save the search as a Smart Group.
Add at least one local campaign group to this group manually (Add to Group).
Edit the smart group criteria, remove the silly 'a' criteria, then go to Relationships, choose "Target Contact(s) in group" and enter the name of this smart group!
Run the search and from there click Update Smart Group.

Amazingly, this appears to have worked! But is there a reason why this is likely to end up in knots, e.g. some infinite loop? Since calculating the smart group requires...calculating the smart group.
I realise that this is likely to fall foul of SE's "answers likely to be opinion based" but I think this is a valid case. I encourage anyone to upvote any answers that point out potential problems with this situation. Of course, if someone says "I've done this and it works beautifully" then I'll accept that answer as an expression of joy :-). I'm also interested in any answers that are along the lines of "that's daft, but you can do it like this instead:..."
Thanks in advance wonderful Civi community!

I've been reading the code, and I think this is pretty safe, at least on server with MySQL 5.7.5+ or MariaDB 10.0.2+ (if your database is older than this, it's pretty old).
The code that updates smart groups has various checks in place to make sure it only does each group once in a request.
All the contacts in a smart group are stored in a "cache" table. (A cache is a temporary store of data that can be recreated as needs be, e.g. when updating the smart group). The cache is entirely separate from the manually added/removed contacts; the cache contains and only contains all the contacts in the group, whether they were included manually or because they match the criteria.
The process is:

Delete all the cache records for this group. This is important in the example of this question, since it means the search for "contacts whose related contact is in the group" will only be looking at the related contacts that are manually included in the group

Creates a temporary table to store new cache entries.

Add to the temporary store by running the search, excluding any that are manually removed. In this question: this means we'll be adding the individuals that are related to the local campaign groups, unless they have been manually removed from the group for whatever reason.

Add to the temporary store a copy of all those manually added. Of course these contacts may already be in there (from step 2), but that's fine, it ensures every contact is only included once. By now, the temporary store has a copy of everyone that should be in the group. In our example, it means the temporary store now includes:

All the local campaign groups (and possibly other contacts) that were manually added to the smart group.
All the activists related to the local campaign groups, unless they had been manually removed.

But it goes on if this group has any child (sub) groups. This is not relevant to this question but I thought I'd include it for completeness' sake...

For each child group, it looks up the contacts in that, exclude any manually excluded from our group, and adds these to our temporary store (again, ignoring any duplicates).
It will also refresh the cache of any child smart groups, so if there was a smart group within the child groups that referenced our main smart group (!) it would not result in an infinite loop because it knows we've just updated [are updating] that, but I'm unclear what contacts it would see because:

if it goes on the cache table, that's empty at this point.
if it goes on (manually added + cache table) then it will see the manually added contacts only.

Finally, it empties our group's cache (again? I wonder why...) and copies all the entries from our temporary store into the cache table, and we're done!

So: I think, miraculously, this should actually work and be safe for the purpose stated in my original question!
Please comment, or post other answers though if you have any experience to share.


Does Using CiviMail for mailing lists on AWS violate the AWS Terms of Service? I noticed on a blog on the site (https://civicrm.org/blog/andrewhunt/alternatives-to-mandrill) a suggestion to use Amazon SES as an alternative to Mandrill for emails, and I also noticed an old CiviCRM/Drupal image on Amazon Marketplace. We've customized CiviCRM for a customer who is already using the software for their email campaigns and wanted to deploy on AWS but we're concerned about terms of service preventing the facilitation of mass unsolicited emails. Does anyone have experience with this?

Specifically the Amazon terms state:

You will not distribute, publish, send, or facilitate the sending of unsolicited mass e-mail or other messages, promotions, advertising, or solicitations (like “spam”), including commercial advertising and informational announcements. You will not alter or obscure mail headers or assume a sender’s identity without the sender’s explicit permission. You will not collect replies to messages sent from another internet service provider if those messages violate this Policy or the acceptable use policy of that provider.

"Probably, no."

This seems to be a legal question, and CiviCRM is a tool. CiviCRM provides a lot of support for not violating those terms ... but someone could still contrive ways to break the agreement, so as with any tool it's how you use it that really matters.

If a large number of spammers used a specific tool, you might see bans targeted against the tool itself. I don't think this is the case for CiviCRM.

  You will not distribute, publish, send, or facilitate the sending of unsolicited mass e-mail or other messages, promotions, advertising, or solicitations (like “spam”), including commercial advertising and informational announcements.

If your emails are solicited (opt-in) you should be OK here.

  You will not alter or obscure mail headers or assume a sender’s identity without the sender’s explicit permission.

CiviCRM should be OK here, provided you aren't pretending to be someone else.

  You will not collect replies to messages sent from another internet service provider if those messages violate this Policy or the acceptable use policy of that provider.

This applies the policy to inbound/return email also.


Credit Card swiping from mobile devices for event registrations and contributions Is there a solution to allow credit card swiping from mobile devices for event and contribution pages?

Yes there is! iATS Payments has an encrypted USB card reader that works with its CiviCRM iATS extension as well as a mobile phone card reader that works with their App.

For the mobile option: we're actively working on code required to be pushing them into your CiviCRM as well.

Organizations use it during checkout at fundraising events and in the office to swipe card / walk-ins.


Bug in CiviContribute - PayPal Express not working for recurring contributions I have set up a test PayPay Express payment processor and created a contribution page that allows the user to create a recurring donation.

When I use this page, I get the "PayPal Checkout" button appears and takes me to PayPal.  Everything proceeds as expected with the PayPal screens and I get taken back to my site, where I am told I need to click the "Make Contribution" button.  I do that and get back a page that says:

Notice: Undefined index: returnURL in CRM_Core_Payment_PayPalImpl->createRecurringPayments() (line 372 of /var/www/html/SOTS/sites/all/modules/civicrm/CRM/Core/Payment/PayPalImpl.php).
Notice: Undefined index: cancelURL in CRM_Core_Payment_PayPalImpl->createRecurringPayments() (line 373 of /var/www/html/SOTS/sites/all/modules/civicrm/CRM/Core/Payment/PayPalImpl.php).
Notice: Undefined index: installments in CRM_Core_Payment_PayPalImpl->createRecurringPayments() (line 380 of /var/www/html/SOTS/sites/all/modules/civicrm/CRM/Core/Payment/PayPalImpl.php).
Notice: Undefined index: transactionid in CRM_Core_Payment_PayPalImpl->createRecurringPayments() (line 399 of /var/www/html/SOTS/sites/all/modules/civicrm/CRM/Core/Payment/PayPalImpl.php).
Notice: Undefined index: amt in CRM_Core_Payment_PayPalImpl->createRecurringPayments() (line 400 of /var/www/html/SOTS/sites/all/modules/civicrm/CRM/Core/Payment/PayPalImpl.php).
Notice: Undefined index: feeamt in CRM_Core_Payment_PayPalImpl->createRecurringPayments() (line 401 of /var/www/html/SOTS/sites/all/modules/civicrm/CRM/Core/Payment/PayPalImpl.php).
Notice: Undefined index: settleamt in CRM_Core_Payment_PayPalImpl->createRecurringPayments() (line 402 of /var/www/html/SOTS/sites/all/modules/civicrm/CRM/Core/Payment/PayPalImpl.php).
Notice: Undefined index: paymentstatus in CRM_Core_Payment_PayPalImpl->createRecurringPayments() (line 406 of /var/www/html/SOTS/sites/all/modules/civicrm/CRM/Core/Payment/PayPalImpl.php).
Notice: Undefined index: pendingreason in CRM_Core_Payment_PayPalImpl->createRecurringPayments() (line 407 of /var/www/html/SOTS/sites/all/modules/civicrm/CRM/Core/Payment/PayPalImpl.php).
Notice: Undefined index: payment_status_id in CRM_Contribute_BAO_Contribution_Utils::processConfirm() (line 198 of /var/www/html/SOTS/sites/all/modules/civicrm/CRM/Contribute/BAO/Contribution/Utils.php).

It also says that the payment was successful, but when I look at it in CiviCRM, it has a status of "Pending" and my PayPal account shows no notification was sent.

I have done some digging.  After the "Make Contribution" button is pressed, the application ends up in PayPalImpl.php, createRecurringPayments(...).  This never sets the $param['payment_status_id'].  Later on, the application gets to Confirm.php, completeTransaction(), which looks for $result['payment_status_id'] of 1.  Only if this is true does the transaction get marked as completed.

So, the question is, should createRecurringPayments() set the payment_status_id, and to what?

Note that if I try with a single donation, it works ok (i.e. the transaction is marked as complete).

Thanks

Ok, I think I have finally got to the bottom of this.

Firstly, one of the problems was that I had not got the payment notifications set up in PayPal (mea culpa).

However, even with this fixed, the notifications were not being processed.  I narrowed this down to the handlePaymentExpress() method in PayPalProIPN.php.  There are two errors here, both related to the "is test" status.  At line 578, it attempts to get the Contribution record.  However the call:

   $result = civicrm_api3('contribution', 'getsingle', array('invoice_id' => $input['invoice']));

only works for live contributions, it doesn't find test contributions.

The other error is at line 597:

    $paymentProcessorID = self::getPayPalPaymentProcessorID();

Again, this only works for live, not test.

I'd love to log the issue on the CiviCRM website, but two requests for an account have been ignored.  Oh well.


Why am I unable to set organization name? CiviCRM 4.4

I am trying to set the organization name and address details but the form is not displaying correctly. There are no input fields, only a white screen.

I added some debug stuff to wp-config.php. I then got: Fatal error: Smarty error: [in CRM/common/formButtons.tpl line 38]: [plugin] unknown tag - 'crmGetAttribute' (core.load_plugins.php, line 118) in /home/vietfeir/public_html/wp-content/plugins/civicrm/civicrm/packages/Smarty/Smarty.class.php on line 1094 Where do I go from here? I searched for this error in forums.civicrm.org but could not find any reference to this error.

crmGetAttribute is not in 4.4, that only exists in later versions of CiviCRM. So either:

You are using an extension that is not compatible with 4.4, or
You have copied a template file from a later version of CiviCRM onto your install, or
You have somehow managed to get your 4.4 files mixed up with code from a later version

The best solution for any of these situations would be for you to upgrade to the latest version of CiviCRM. If you follow the upgrade procedure correctly, this will ensure you have a clean copy of the latest source code.


How to disconnect civi contact record from Drupal user I created a contact record for some testing using the site admin email address which is associated to the corresponding Drupal user account (user 1).

However it's now causing some problems with certain emails that go out, so I want to delete the contact record but I get an error message that I can't delete myself.

Can I / how do I break the connection between the two so I can safely delete the contact record?

The answer is in the civicrm_uf_match table in your Civicrm database.  Each Drupal user is connected to its corresponding Civi contact record there.

The uf_id column is the Drupal user ID.
The uf_name column is the email address associated with the Drupal user and Civi contact record.
The contact_id column is the Civi contact record ID.

I don't know the ramifications of deleting the row which contains Drupal user 1, but you could certainly create a new Civi contact record (not yourself), and put that new contact ID in the row with uf_id 1 (replacing whatever value is in the contact_id column currently).  Once that is done, you could delete your test contact record safely.

Our Drupal user 1 is associated with a contact record named [myorg] Tech and the email address is tech@[myorg].org.  Thus our default address for mailings come from that address with no problems.

Hope that helps!


can't search by first name last name; WordPress dashboard I would like to enable the basic intuitive functionality to search by first and last name in all search tools.

Currently on our new install, with no other plugins enabled, I get "no matches found" if I search for firstname space lastname.

Here is what I'm finding when I do these searches for a contact that does exist and does have a case associated with him.

Search for joe, good results
Search for johnston, good results
Search for joe johnston, "no matches found"
Search for Joe Johnston, "no matches found"
Search for johnston joe, good results
Search for Johnston Joe, good results

I've found the same results using all of the below search locations which makes sense.
search > find contact
advanced search
cases > find cases
cases > open a case

The quick search does display my contact as an option when I enter "joe".

I would greatly appreciate any suggestions to get this working. It's a basic functionality that I assume can be enabled??

I also tested this on the demo site for Lou Adams and got the same results. It seems to be the default functionality.

Thanks so much for your help.

First check that you have Automatic Wildcards enabled, navigate to Administer -> Customize Data and Screens -> Search Preferences, is the first option.

  If enabled, wildcards are automatically added to the beginning AND end
  of the search term when users search for contacts by Name. EXAMPLE:
  Searching for 'ada' will return any contact whose name includes those
  letters - e.g. 'Adams, Janet', 'Nadal, Jorge', etc. If disabled, a
  wildcard is added to the end of the search term only. EXAMPLE:
  Searching for 'ada' will return any contact whose last name begins
  with those letters - e.g. 'Adams, Janet' but NOT 'Nadal, Jorge'.
  Disabling this feature will speed up search significantly for larger
  databases, but users must manually enter wildcards ('%' or '_') to the
  beginning of the search term if they want to find all records which
  contain those letters. EXAMPLE: '%ada' will return 'Nadal, Jorge'.

Check your display and sort name, navigate to Administer->Customize Data and Screens->Display Preferences at the bottom you have two fields, which by default should look something like this:

Individual Display name format: {contact.last_name}{, }{contact.first_name}

Individual sort name format: {contact.last_name}{, }{contact.first_name}

If you want to search always by first name you can change the sort name format to {contact.first_name}{ }{contact.last_name}, now this will only apply for new contacts and not for the existing ones, you will have to update the sort_name for the existing contacts, there was a discussion in the forum about this.

If you search for "Adams," in the demo site you'll see that the result will be "Adams, Lou", as far as I'm concerned, this is expected behaviour.

Edit

Forgot to mention that you can use wildcards like: %joe%, that should include Joe Johnston and Johnston Joe if there is a existing contact by that name.


DB Error: IP address hard-wired with MySQL user? I have a local windows "mirror" using XAMPP of my live Wordpress 4.7.2 + CiviCRM 4.7.14 setup. I wanted to use the windows version to test exactly how deduping worked using Contacts > "Find and Merge Duplicate Contacts". I tried a supervised merge of just one contact (name and address dedupe rule) to see exactly how it would work. I got a DB error when I pressed "Merge and View Results." Complete error shown in ConfigAndLog is:

Feb 03 12:56:20  [info] $Fatal Error Details = Array

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

[code] => -1
[message] => DB Error: unknown error
[mode] => 16
[debug_info] => UPDATE IGNORE civicrm_value_community_planning_area_5 SET entity_id = 1702 WHERE entity_id = 3238 [nativecode=1449 ** The user specified as a definer ('sdcbc'@'173.236.128.0/255.255.128.0') does not exist]
[type] => DB_Error
[user_info] => UPDATE IGNORE civicrm_value_community_planning_area_5 SET entity_id = 1702 WHERE entity_id = 3238 [nativecode=1449 ** The user specified as a definer ('sdcbc'@'173.236.128.0/255.255.128.0') does not exist]
[to_string] => [db_error: message="DB Error: unknown error" code=-1 mode=callback callback=CRM_Core_Error::handle prefix="" info="UPDATE IGNORE civicrm_value_community_planning_area_5 SET entity_id = 1702 WHERE entity_id = 3238 [nativecode=1449 ** The user specified as a definer ('sdcbc'@'173.236.128.0/255.255.128.0') does not exist]"]

)

The error seems to be that the MySQL user 'sdcbc' does not exist. The odd thing is the IP address associated to the MySQL user 'sdcbc'. In my local setup, this should be 'sdcbc'@'localhost' or at least it should show 127.0.0.1 instead of 173.236.128.0 with a mask. Not coincidentally, I suppose, the IP address for our live MySQL server is 173.236.135.189. How is that hard-coded address getting into my local version? All the mysql pointers in my local civicrm.settings.php point to sdcbc@localhost. Whenever I update my mirror (live .> local), I'm also careful to clear cache (delete templates_c/ folder ConfigAndLog/Config.IDS.ini) and  and update paths, etc via i.    http://sdbikecoalition.localhost:8080/wp-admin/admin.php?page=CiviCRM&q=civicrm/admin/setting/updateConfigBackend&reset=1 and iii.  http://sdbikecoalition.localhost:8080/wp-admin/admin.php?page=CiviCRM&q=civicrm/menu/rebuild&reset=1. Note also, that the table that is generating an error is a custom field, 'civicrm_value_community_planning_area_5', if that is also a clue.

As a postscript, I ran the merge on this one contact on our LIVE instance and it worked just fine. Somehow, some setting or file is retaining the 173.236 from our live MySQL database. I completely searched our MySQL database for the string '173.236' and could not find it anywhere. This seems to be an issue with trying to mirror one site to another.

Try SHOW TRIGGERS; Also when you say you searched the database, are you searching a mysqldump? Triggers would be in a dump by default so you should see them there. How are you are mirroring the database?


Custom search settings I'm trying to set up a new custom search but when I try to run it I get told the search does not exist and " Please verify your custom search settings in CiviCRM administrative panel." I can't seem to find said settings though, where are they?

You didn't mention how you were making the Custom Search! Assuming it's in an extension:

1) Look in Joomla's and CiviCRM's logs for more information.

2) Try clearing CiviCRM's cache.

3) Check the extension's file permissions.

4) Did you rename some parts of your extension, i.e. files, object names, after creation? If so, there may be a piece missing... try regenerating the extension from scratch and copying the functionality over.


Upgraded CiviCRM 4.4.6 to 4.5.4; Case is adding but its not showing? Upgraded civicrm 4.4.6 to 4.5.4. Case is adding but its not showing?
I am using drupal-7.22.

Check your permissions, they may have changed and you'll need to give the relevant role the permissions. You should also clarify which CMS your using to make it easier to support you!


cannot select profile for online event registration after upgrading civi on Joomla I've just upgraded CIVI on Joomla 3.4.1 from CiviCRM 4.5.3 to CiviCRM 4.6.9 and find that I can no longer select profiles to use for online event registrations when setting up an event.

I also find that when exporting participant records only the FIRST row of the exported csv file contains correct details for yes/no questions asked in existing custom data profiles. All following rows display numeric 1 or stay empty whereas first row correctly displays text "yes" or "no".

I could not replicate this issue on the demo joomla site, which is also Joomla 3.4.1 but running CiviCRM 4.6.0. I suspect the issue would appear on the demo site as well if it had a later version of civi.

I restored my website to pre-upgrade backup, then upgraded to CiviCRM 4.6.0. - This worked fine.

Then I did incremental upgrades of CIVI and all OK up to version 4.6.5 but when going from 4.6.5 to 4.6.6, the ability to select profiles and the odd behaviour with exporting participant data re-occurred.

I therefore suspect that code changes in civi 4.6.6 and onward cause this issue in Joomla installations.

I have found a similar issue that may or may not be relevant (but its too technical for me to be sure) https://issues.civicrm.org/jira/browse/CRM-15427

Is this a bug? if so how to progress it?

I also had a similar issue where I could not select Profiles in Civi.  I am on a Wordpress site.  I found that Civi had a conflict with my theme (it was not a problem if I changed back to the default theme).  In my theme's functions.php file it had the following include which was causing the problem:

include_once('mkdinc/plugins/visual-composer.php');

I changed it to this:

if(isset($_GET['page']) && $_GET['page'] == 'CiviCRM')
 ;//dont include it breaks civi
else
 include_once('mkdinc/plugins/visual-composer.php');

and the profiles were useable again.  Hope that helps.


Event with multiple days - multiple choices I can't seem to find exactly what I need. So here it goes. We are having our annual meeting, but this year there are essentially 3 events that people can choose to go to and I will need name tags for each of the events.

Event 1 Tour is at a distillery and can only have 20 people cost is $10.
Event 2 Dinner is at a Farm and can only have 40 people cost is $30.
Event 3 is the next day and can have 125 to 150 people and costs $35.

I would like the person registering for the annual meeting to be able to sign:

person A up for all the events
person B up for just the annual meeting
person C only for the distillery tour.

I've tried setting up event costs but it doesn't give me the place to add people's name for a name tag.

How can I set up Attendee 1 First Name - Last Name Event 1 Event 2 Event 3 - total cost.
Attendee 2 First Name - Last Name Event 2 total cost

FINAL COST - $x.xx to paypal..
Right now it is multiple logins with multiple payments to  paypal

The feature you're looking for is called price sets - in combination with the "multiple register participants" feature.

Set up the price set with Events menu » New Price Set.  See screenshot 1 below.
Once you save the price set, you'll new to create a price field.  Configure it similarly to screenshot 2 below.
If the annual meeting also has a cost, or there are other optional items, add those as additional price fields.
When configuring the event, on the Fees tab, change Price Set to the price set you just configured.  Note that this will replace your existing pricing, so make sure it's added to the price set.
On the event's Online Registration tab, check the Register multiple participants? checkbox.

That's it!  When someone registers for an event, they'll select how many people (see screenshot 3) and fill in the info for themselves (including payment info).  Then when they continue, they'll get a page for each of the next registrants where they can select individually (screenshot 4).  Screenshot 5 is my confirmation page, where you can see I've signed up three people with different options and collected all their names.


CiviDiscount compatibility with CiviCRM 5.9 Is CiviDiscount compatible with CiviCRM 5.9?
We can't make it work with a 5.9 install on Joomla 3.9.1.
Thank you

Edit:
The issue is when trying to access the CiviDiscount GUI (e.g. Administer >> CiviDiscount), the user is taken to CiviCRM dashboard/home instead of the CiviDiscount UI.

I'm using a user in the Super Admin user group so it's not permissions related.

Discounts in the front end (both autodiscounts and entering a discount code), e.g. in event registration, work fine, but we can't administer the discounts.

Our work-around is to do this in the d/b.

Yes, CiviDiscount is compatible with CiviCRM 5.9.

I have a 5.9 environment with Drupal and is working as expected.

Your issue could possibly be permission related.
CiviDiscount recently introduced a permission - administer CiviDiscount

Joomla permission documentation -

https://docs.civicrm.org/user/en/latest/initial-set-up/permissions-and-access-control/#permissions-in-joomla

Would also advise to clear CiviCRM caches –

/administrator/?option=com_civicrm&task=civicrm/clearcache

/administrator/?option=com_civicrm&task=civicrm/admin/setting/updateConfigBackend&reset=1


How can I set "Assigned To" for an Activity to default to the logged-in user name? Our users are creating many new Activities which are Assigned To the user creating the Activity. I want to save them time and keystrokes by having Assigned To: default to that logged-in user's name. How can I do this? Thanks.

Create a simple extension implementing hook_civicrm_buildForm like so:

function myextension_civicrm_buildForm($formName, &$form) {
  if ($formName == 'CRM_Activity_Form_Activity' && $form->getAction() == CRM_Core_Action::ADD) {
    $form->setDefaults(array('assignee_contact_id' => $form->_currentUserId));
  }
}


How do I add new tab to the Contact Summary Page? I create a new plugin and I try to use hook for adding extra tab in the contents, my question is how to get $contactID?

add_action('civicrm_tabs', ' civitest_civicrm_tabs');

function civitest_civicrm_tabs( &$tabs, $contactID ) {

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

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

Thank you

Nilda

hook_civicrm_tabs is now deprecated and you should use https://docs.civicrm.org/dev/en/latest/hooks/hook_civicrm_tabset.
Also note:
// $url should return in 4.4 and prior an HTML snippet e.g. '<div><p>....';
// in 4.5 and higher this needs to be encoded in json. E.g. json_encode(array('content' => <html form snippet as previously provided>));
// or CRM_Core_Page_AJAX::returnJsonResponse($content) where $content is the html code
// in the first cases you need to echo the return and then exit, if you use CRM_Core_Page method you do not need to worry about this.

Some example code:
function koba_civicrm_tabset($tabsetName, &$tabs, $context) {
  //check if the tab set is Event manage
  if ($tabsetName == 'civicrm/event/manage') {
    // Remove "Mond aan mond reclame" tab
    unset($tabs['friend']);
    // Remove "Location" tab: we use a contact subtype for location because it has better integration
    unset($tabs['location']);
    // Remove "Personal campaign pages": we don't use this
    unset($tabs['pcp']);

    // Add a Beheer Bijscholingen tab, a tab that shows a Drupal view
    if (!empty($context)) {
      $eventID = $context['event_id'];
      $url = CRM_Utils_System::url('admin/sitename/bijscholingen/json');
      $result = views_get_view_result('beheer_sitename_bijscholingen', 'page', $eventID);
      $count = count($result);
      $tabs['beheer'] = array(
          'weight' => 300,
          'count' => $count,
          'title' => ts('Beheer'),
          'link' => $url,
          'valid' => 1,
          'active' => 1,
          'current' => false,
      );
    }
  }
}


What is the Process to have an Extension Enhanced? I use some Extensions (e.g. Twilio : org.civicrm.sms.twilio).

I would like some enhancements (e.g. : have a specific associated permission or connexion to an existing permission)

What is the best process to get that ?

(I am not a developer, nor familiar with development environment)

You don't need to be a developer to contribute to enhancements -> you could sponsor the work and let an experienced developer do it for you. For org.civicrm.sms.twilio -> go through the Paid Issue Queue: https://civicrm.org/paid-issue-queue The CiviCRM Core team will either be able to work on it - or they will find a CiviCRM partner for you to work with.


How can I suppress the presentation of discount codes in receipts? We use discount codes widely for our events, including the use of what I'd call 'admin-only' codes so that we can apply discounts to registrations that we make on behalf of people like speakers, representatives of event sponsors, etc.

Whilst it is helpful to to clearly show in the receipt/confirmation email that the event fee has been discounted, we don't really want the code itself to be included, as this is an internal code and not for wider use.

Is there a way to suppress the inclusion of the code in the receipt, perhaps still allowing the description text for the code to be included?

I've edited the message template and used a truncate filter on the $line.label to hide the discount code. Something like this is what I've done:

<td {$tdfirstStyle}>
{* Truncate $line.label to hide a discount code if present for certain event types *}
{if $event.event_type_id == 12}
  {if $line.html_type eq'Text'}
    {$line.label|truncate:7:"":false:false}
  {else}
    {$line.field_title} - {$line.label|truncate:7:"":false:false}
  {/if}
{else}
  {if $line.html_type eq 'Text'}
    {$line.label}
  {else}
    {$line.field_title} - {$line.label}
  {/if}
{/if}
{if $line.description}
  <div>{$line.description|truncate:30:"..."}</div>
{/if}
</td>

I think for this to work cleanly you might need to have Fee Levels with names of similar character count. There might be some other output filter that would work better than truncate... I recall trying to use some sort of RegEx filter that didn't work.


Notification of address change (for external accounting software) Our office manager uses an older external software program for all our accounting and issues tax receipts from that program.  At present, we are not using CiviCRM for contributions.  We have the external program's Giving ID as a Contact custom field in CiviCRM (called 'Envelope #').

The rest of our staff use CiviCRM for all contact management in their departments, and our website users can update their own CiviCRM contact information directly from their Drupal user account.  Lots of addresses could be updated, and our office manager would never know about them.

How can our office manager be notified of any mailing address changes for only people with Envelope #'s? That way, she can change the address(es) in the external software and send the receipts to the correct address.

Use a combination of smart groups, tags, CiviRules, and CiviReports.

A. Create a Smart Group

Use Search Builder to search for Contact :: Envelope # :: Not Empty OR Not Null OR > 0
From search results, create new smart group (called "Has Envelope #")

B. Create a tag called "Update External Address"

C. Setup a CiviRule

Create a Rule with the Linked Event as "Address Changed"
Linked Condition is "Contact (not) in group", "In one of selected groups", "Has Envelope #"
Linked Action is "Add tag to contact", "Update external address"

D. Create a Report

Create a report off of Constituent Report.
Filter the report to look for contacts tagged "Update External Address".
Setup report for email delivery (if needed).

E. Office manager runs the report at her discretion (or gets emailed the report) and updates the addresses in the external program.

F. Once the address is updated in the external program, untag the relevant contact.


Problem : Adding not existing contacts to organisations When i open the sheet of organisation in civicrm then i want to add relationship with another contact civi propose only existing contact.
is there way to add new contact in this relationship using the same screen 'add relationship' without using "add new person" in navigation bar?

You do get a option when selecting a contact on add relationship form, 'New individual', 'New Organization' etc. That should allow you to create new contact from the same form


Error When Editing Membership Types Running CiviCRM 4.7.31 on WordPress 4.9.5. When attempting to edit an existing membership type, I am receiving an error "Network Error: Unable to reach the server. Please refresh this page in your browser and try again." I refresh and get the same result. All other parts of CiviCRM are working fine. Any help is appreciated.

With such issues it is worth trying a 'right click' on the link to open the Edit screen as you may get to see an error message that you don't see with the pop up. If you find one, the repost in your Q


What might cause contribution amounts to multiply by 100 instead of recording values with a decimal place I'm working on a site where whenever a contribution is entered into civi with a decimal, it's multipled by 100. It's a lot like this old issue, except the site has not to my knowledge ever been localized and has always used USD.

In the localization settings if I change the decimal value to a comma and the thousands separator to a period and enter a contribution of $5,00 the contribution amount is 5. When I swap it back to the U.S. dollar defaults, entering 5.00 is a contribution amount of 500.  I can't replicate on any other site, but I can replicate when loading the civicrm database into a clean codebase and clean wordpress site. I've tested replacing the civicrm_setting table as this seemed like it may have been the culprit but that didn't help. Any clues to where else I could look for something problematic in the database?

Site is on 5.10.3 currently, it's an older install and no one remembers when this problem started.

I managed to solve this.

I looked at what adding a contribution touches in the database. I ruled out differences in the settings table, but then when I looked at civicrm_currency I found that in this database, some characters were not present, even though the encoding would support them. so for instance the civicrm_currency record (6,'INR','₨','356','Indian Rupee') in another database was (6,'INR','','356','Indian Rupee') in this one.

It's not quite clicking with me why the U.S. dollar amounts were being translated -- that record was not different at all. But swapping out the currency table with one from a different site resolved my issue.


Multiple branch/chapter management with various access level of information I am newbie to CiviCRM.

I an searching for a solution to manage a multiple branches of an organisation with CiviCRM. Multiple branches will be spread across the glob. All the branches should have different types of users.(i.e. Branch Admin,operator etc..).

These branches required to manage their contacts info, membership details, donation details , subscription details.

All the branches data should be visible to admin of head office and all the branch admin/operator should have permission to access their corresponding branch data only.

I have try to implement a this type of structure in CiviCRM with word press. I found a various post to implement this with CiviCRM ACL but it didn't work for me.

If anyone have idea that how should we implement it. Please share with me.
It will be a great if you mention about a steps to achieve it.
Thanks in advance.

You should use the CiviCRM Multisite with the Multisite Permissioning extension for this, and give each organization their own domain.  Within the domain, you can use WordPress roles and/or ACLs to get the various intra-domain roles.

Note that this is NOT a newbie task - multisite CiviCRM is an advanced topic.  Consider hiring outside assistance!


Is there a report that I can pull to show me all donors, members and never givers? Looking to pull a report that includes all contacts with what they have contributed and not contributed.

Most contribution reports only report on folks who HAVE contributed, so normally one would pull a donor and non-donor report.

You don't specify exactly what you mean by "what they have contributed", but assuming you're just looking for a "lifetime total donations" amount, the easiest approach would be to install the Summary Fields extension and enable the "Total Contributed" field.  Then you can use any report (e.g. Contact Summary report) and include the total given as a column.


'invalid key sent' while cron script is executed in civicrm.settings.php I have
if (!defined('CIVICRM_SITE_KEY')) {
  define( 'CIVICRM_SITE_KEY', '2e554f49c9fc5c47548da5C24da64681b77dca08');

When I use the following URL to start manually all cron jobs, I see that jobs get executed, so the URL seems ok to me.
http://xxxxxx.yyy/sites/all/modules/civicrm/bin/cron.php?name=civimail&pass=xxxxxxxx&key=2e554f49c9fc5c47548da5C24da64681b77dca08

The script to start all cron jobs is defined as follows:

!/bin/sh

GET
'http://xxxxx.yyy/sites/all/modules/civicrm/bin/cron.php?name=civimail&pass=xxxxxxxx&key=2e554f49c9fc5c47548da5C24da64681b77dca08'

However, when this script is run, I got this message through mail:

ERROR: Invalid key value sent.

So to me the key seems correct, but even after changing the key to something else both in civicrm.settings.php and in the script, I continue to get this error message. I'm using the latest 4.7.2 civicrm version on drupal 7.
For now I'm using easycron, but I'd like to find out if there is an error in this configuration, or if it's a bug.

Any suggestions for further testing ?

thanks
Wim

problem found... it was a confusion between 2 scripts

/home/sitename/www/www/private/civicron.sh
/home/sitename/private/civicron.sh

After adapting the correct script it seems okay.


How can I safely revert to earlier version of CiviCRM without reverting the database? I am using Drupal 7.64. Everything was working fine on my site with CiviCRM 5.10.2.

I upgraded to 5.10.3 and two days later discovered that it broke an event registration page that relies on the extension Group-Based Pricing. Yes, I know that extension is not cleared for takeoff with this version of CiviCRM, but I had tested it carefully before deploying it live, and it has worked for a month. And now I absolutely need to keep using it for the next few months until the event is over.

I then upgraded to 5.10.4 thinking that might fix things. It didn't.

In the meantime, members have made other kinds of contributions, altered their profiles, etc. The database has been changed under 5.10.3 and 4.

So, while I can go back to the 5.10.2 CiviCRM code easily enough, I can't revert the database without losing the changes that were made in the past three days.

What should I do? Can I safely proceed with the upgraded and altered database as is? Is there something I can do to make it safe to use under 5.10.2?

Thanks.

There are no database changes between the 5.10 versions so you can switch the code back & forth without issue - however you will lose the security patches, making your site vulnerable - which is not great since the SAs have been published - it might be you do that temporarily but prioritise getting the extension fixed. If you tighten the permission on accessing uploaded files it will mitigate the security issue - does the extension use uploaded files & images?


Trying to install CiviCRM 4.7.6 under Wordpress get you do not have sufficient permissions to access this site This is a re-install. I was unable to upgrade a previous version but it had not been used so I deleted all the CiviCRM tables.

I then deleted the civicrm directory under plugins and in the wp root so theoretically, there should be no remnants of civicrm.

I then unzip the .zip file into the plugins directory.

After that, I activate CiviCRM in Wordpress. The first clue that something is wrong is that I get an Initialization Error with messages that say that the table civicrm_settings does not exist. Of course, it shouldn't exist because this is a new installation.

I then tried to run http:///wp-admin/options-general.php?page=civicrm-install with my site and got the error You do not have sufficient permissions to access this site.

The CiviCRM plugin is activated, as I said above.

Is there something else I must clean up before I can install it?

For a clean CiviCRM reinstall under Ubuntu / LAMP / Wordpress to work, the initial clearing of all CiviCRM related files is essential.  If there are any vestiges of a prior installation left, the reinstall will certainly fail (either with an Initialization error, or the "You do not have sufficient permissions..." error).

Here are the necessary steps to reinstall (not upgrade) CiviCRM, using the desired / most recent version.

1. Review the directory structure to be sure it is as specified.  OK.
    1. Get to the proper directory:
       (for my configuration:  var/www/wordpress/wp-content/plugins/).
    2. Remove all civicrm files and folders:

sudo rm -R ./civicrm

    3. Remove civicrm log and cache files and folders:

cd ./files
sudo rm -R ./civicrm

    4. Remove the civicrm.settings.php file, if present from prior work.

cd ../civicrm
rm civicrm.settings.php

    5. Check the wp-content/uploads directory for a civicrm subdirectory and files;
       remove if found:

cd /var/www/wordpress/wp-content/uploads/
ls -al
(check for civicrm directory and files and remove if they exist)
sudo rm -R ./civicrm

2. Use wget to pull down the desire / most recent zip file.  OK.

3. Unzip the file.  OK.

4. Use sudo chown to set file ownership as appropriate.  OK.

5. In your favorite browser, login to Wordpress and check the Wordpress plugins list to see if the CiviCRM plugin shows up (you may have to refresh the window).  OK.

6. It does, click the Activate button.  OK.

7. Activated.  OK.

8. Navigate to:  https://yourwebsite.org/wp-admin/options-general.php?page=civicrm-settings

9. If success, you can now see the installation page.

10. Click the configure CiviCRM button and get the green bar screen! OK.

You have now reinstalled CiviCRM.  From here, follow the CiviCRM how-to for configuration details.


How can I edit how CiviEvent pricing is displayed? I have a strange issue when creating a CiviEvent; which did not appear in a pre-launch test event I created but does now. As you will see below, the first fee in the list appears off-set to the rest.

I have checked on the dmaster site and it does not react this way. Of course it may be something that is happening on the Drupal side. I am using D7.38 and Civi4.4.14

You may be able to fix this with custom CSS. The following class is what you would need to adjust. Try setting the margin-left rule until the options line up. I have seen this when I am adjusting column widths on front end forms.

.crm-container .crm-section .content {
    margin-left: 17%;
}

Note: my edits are usually in WordPress. There may be interactions with your Drupal theme that override this.


Importing membership custom field keeps failing I'm having problems importing memberships with a custom field. I'm able to import a alphanumeric text field without an error, but a second custom field, set up as a checkbox, keeps being rejected.

The import CSV file originally had the option label in that field, but after changing this to the option value, the import is still rejected as invalid. What might I be missing here?

The original import error reads 'Invalid value for field(s) : Income; Income'

When I change the relevant fields to the correct value 'LowIncome' (having double checked that it's the value stored in the database), the import error reads:

'1' is not a valid option for field custom_33

Which is technically correct, but none of the fields in the imported file contain '1', so I don't know where it's getting this from!

Because there's only the one option, I'm pretty sure I can swap this out for a Yes/No field and try it again, but I'd rather pin down why this is happening - I also have some activities to import with multi-option checkboxes, and I'd rather know they'll work...

ETA: I've tried adding in another field, where the option label, value and name are all the same ('Test'), and importing it - It gets flagged in the same way - '1' is not a valid option for field custom_34

I also tried adding a yes/no field, and that imports okay, so I'm probably going to switch this particular field to a yes/no, but as I say, I'm concerned that it's going to reject other multichoice fields, and I'd still like to pin down the problem. I will try importing some of the activities, and update this when I know how it's behaving.

ETA2: This seems to be happening for any checkbox field, regardless of what the custom data set is used for, and isn't limited to fields with single checkboxes. I'm able to reproduce the problem in the master demo site, and importing from my new installation to the older version of CiviCRM also comes up with this error.

I've found a issue on the old bug tracker site that seems very similar in 4.7/4.7 - https://issues.civicrm.org/jira/browse/CRM-17493 - and although it's marked as fixed, it looks a little as though the fix was never implemented in 4.7 - the last git pull request is marked as closed with the note 'Unclear if a fix is required or not': https://issues.civicrm.org/jira/browse/CRM-17493 (but it's also not entirely equivalent to the problem I've been having)

Failing any further ideas as to what I might be doing wrong, I'll raise it as a bug.

Try using the machine name instead of Label or Value. I believe for some cases it uses machine names rather value or label. You can find the machine name either using sql stmt or through api explorer.

Here is an example of some cases where value or label didn't work during import.


Allowing multiple fianancial types for same price set single contribution page Price sets and Contribution pages allow for donations to a "Financial Type" (and corresponding Financial Account)  This is great for managing different types of donations.

It is possible to generate contribution page and profile for that maps to a single financial type.  It is also possible within a single price set to specify an associate price set that maps to a financial type (I assume this will override the contribution page financial type.  But there is no way to dynamically select a price set. (btw - this would be a great feature!)

This means replicating the same values for multiple price sets and writing some code to show on a single page.  I'm looking at 10 different "Funds / Financial Types"

For example: Select from ($100, $500 and $1000 donation) to either the General fund or the Scholarship fund on a single page

I'm looking for something in wordpress, but webform-civicrm doesn't seem to allow this either.

Some approaches I've considered:

Create a massive price set with all potential Financial Types and use
some javascript to dynamically show/hide.  This seems really ugly and
hard to maintain.
Create a parent page with some javascript to dynamically load and
select from several contribution page URLS.  A bit cleaner, but IMO
hackish.
Set to a dummy financial type and then write a script to re-assign to the correct one based on a value in a profile.  I have not looked at the API to do this yet, but assume it would make fewer assumptions than javascript ....

BTW - I'm posting here as I think a common use case is a single page that dynamically sets the financial type based on a donor selection. Please comment if I'm right/wrong.

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.


Cannot install CiviCRM 4.7.21 on WordPress/Drupal Wanting to do a clean install of CiviCRM, I thought I should use version 4.7.21. I am using a clean install of WordPress 4.8 with no other plugins.
I get the error message below when I go to the configure screen (....<civicrm directory>/civicrm/install/index.php) and all the database checks appear red (edit: attempted installation with Drupal 7.56 with the exact same problem):

Warning: mysqli_real_escape_string() expects parameter 1 to be mysqli, null given in /home/fotgm080/public_html/temp2/wp-content/plugins/civicrm/civicrm/install/index.php on line 1282
Your database settings don't appear to be correct.

Does the server exist?  OK (localhost)

Are the access credentials correct? That username/password doesn't work:

Can I access/create the database?   I can't create new databases and the database 'fotgm080_wp685' doesn't exist. (user 'fotgm080_wp685' doesn't have CREATE DATABASE permissions.)

Can I access/create InnoDB tables in the database?  Unable to create InnoDB tables. MySQL InnoDB support is required for CiviCRM but is either not available or not enabled in this MySQL database server. Could not determine if MySQL has InnoDB support. Assuming no.

Can I create temporary tables in the database?  Could not login to the database.

Can I create lock tables in the database?   Could not connect to the database server.

Can I create triggers in the database?  Could not login to the database.

If I do a clean install of WordPress/Drupal again and try CiviCRM 4.7.20 then everything is fine.

This issue is corrected in the 4.7.22 release. I was able to do a clen install on a WordPress site.


After CiviCRM 4.7 upgrade, CRM.$ Not A Function Errors After upgrading to CiviCRM 4.7, several CiviCRM related pages/functions on my site are not working and reporting errors related to CRM.$ not being defined as a function, but I can't find where it should be originally defined. Jquery appears to be loading and working okay. Also, when I access the 'CiviCRM » Administer CiviCRM » System Settings » Directories' page, only the core menu is displayed without any css formatting. None of the directories options are displayed so I can't verify/change them. Three, ReferenceError: CRM is not defined errors are reported for the page.

Try enclosing your jquery code in:

CRM.$(function($) {
$(document).ready(function () {

});
});


Display CiviCRM Admin Menu in Drupal Is there any way we can display CiviCRM Admin Menu in Drupal context ? like on any view page we want both drupal and civicrm menus.

Yes. You can do this by enabling the CiviMenu drupal module:

CiviMenu allows you to display the CiviCRM menubar on non-civicrm pages of your website.
This module provides an invisible Drupal Block which loads the CiviCRM menubar. By default the block will display the menubar on every non-civicrm page of your website. Simply edit the block to refine exactly which pages the menubar appears on and which users have permission to see it.
Note that nothing displays in the block (the menubar will always be at the top of the screen), so it doesn't matter which region of the page you add it to.


What this bot/IP trying to do on my civicrm site? I find 100s of these types of entries in my drupal log. It tries URLs like this below. It happens when there's very less traffic on our site. What is it trying to do? Is it a security threat? Can it cause any harm to our site & data? Can they be stopped?

https://example.com/civicrm/contribute/transact?reset=1%27%20AND%206876%20IN%20%28SELECT%20%28CHAR%28113%29%2BCHAR%28106%29%2BCHAR%2898%29%2BCHAR%28122%29%2BCHAR%28113%29%2B%28SELECT%20%28CASE%20WHEN%20%286876%3D6876%29%20THEN%20CHAR%2849%29%20ELSE%20CHAR%2848%29%20END%29%29%2BCHAR%28113%29%2BCHAR%28118%29%2BCHAR%28106%29%2BCHAR%28112%29%2BCHAR%28113%29%29%29%20AND%20%27KFmQ%27%3D%27KFmQ&id=10

It's a SQL injection attempt, where it's looking to see if it gets used in a query and alters it. Depending on the query where it gets used, it could do nothing or it could do something, but at the very least tells the attacker if it's vulnerable. Simple example, where it does nothing:

If civi had code like this, where it doesn't escape the value:

$reset = $_GET['reset'];
$dao = CRM_Core_DAO::executeQuery("SELECT * FROM table WHERE something='$reset'");

That particular url would translate to:

$reset = $_GET['reset'];
$dao = CRM_Core_DAO::executeQuery("SELECT * FROM table WHERE something='1' AND 6876 IN (SELECT (1)) AND 'KFmQ'='KFmQ'");

which is valid SQL and does something different than intended. In my example all it does is tell the attacker it's vulnerable, but there's lots of variations.

Since IDS is catching it, you get the log errors.

If it's always the same IP, you can block the IP.


CiviEvent Listing module in Joomla not finding database table We are working on a long-needed update of our website. I thought I would take the opportunity to also follow what many say is best practice and move our Civi db out of a db shared with our Joomla CMS. I have done this on our development site, and so far so good. Except, that when trying to create a new CiviEvent Listing Joomla module, I get this error: "Table '[organization]_dev.civicrm_event' doesn't exist"

It is true that doesn't exist, because it should be looking for [organization]_dev_civi.civicrm_event. The db [organization]_dev is the CMS only. I've reconfirmed that my database settings are correct in civicrm.settings.php in both Administrator and component. I've cleared the Joomla cache.

Any ideas what's going on? Where else can I look?

UPDATE:

In searching for possible fixes, I have made the following changes, to no avail:

Added this line in CMS config file (www/dev/configuration.php) under class JConfig:

public $cividb = 'username_dev_civi';

in www/dev/administrator/components/com_civicrm/configure.php

     'dbName' => $jConfig->db,

changed to

    'dbName' => $jConfig->cividb,

In CiviEvent Listing module file (www/dev/modules/mod_civievent/helper.php)

    $db = JFactory::getDBO();

Changed to

    $db = 'username_dev_civi';

Sounds like you also need to update the settings inside your file that points to your Joomla database. I don't know exactly where that is, as I use Drupal. But mine is at /home/username/public_html/sites/default/settings.php. That is where I tell Drupal how to connect to its database. Every CMS I've ever worked with has something similar. Inside that file is a listing of CiviCRM database tables so that your CMS can connect. If you haven't changed it there, then Joomla is still looking for the old database.

Edit:

The lines you're editing in your CMS's settings file would look similar to this below. Unfortunately it doesn't get formatted right when pasting in here, so I've only included the first dozen lines or so.

$databases['default']['default']['prefix']= array(
  'default' => '',
  'civicrm_acl'                              => '`username_civicrm`.',
  'civicrm_acl_cache'                        => '`username_civicrm`.',
  'civicrm_acl_contact_cache'                => '`username_civicrm`.',
  'civicrm_acl_entity_role'                  => '`username_civicrm`.',
  'civicrm_action_log'                       => '`username_civicrm`.',
  'civicrm_action_mapping'                   => '`username_civicrm`.',
  'civicrm_action_schedule'                  => '`username_civicrm`.',
  'civicrm_activity'                         => '`username_civicrm`.',
  'civicrm_activity_contact'                 => '`username_civicrm`.',
  'civicrm_address'                          => '`username_civicrm`.',
  'civicrm_address_format'                   => '`username_civicrm`.',


KC Finder - Uploading/browsing the images not working in CiviCRM 5.9.1 I am using CiviCRM 5.9.1 and Drupal 7.6

I am creating a new event. adding the image to it by using CKEditor. when I tried to browse images/ upload the image. The error is coming.  Please refer to the screenshot for the error.

I followed the previous question regarding this KCFinder. I applied the available patch that is for civi 4.6. That one also didn't work.

I checked file permission and drupal uploading file permission. It is fine.

Please give suggestion how to solve this issue.

It looks like you have two civicrm.settings.php files - or at least that CIVICRM_DSN is already defined.  If you remove the extra civicrm.settings.php this problem should resolve itself.


Combine or report on individual and household donations So I have two issues that I am trying to overcome.
Like others, I have a need to aggregate donations up to the Household level in a quick and easy way.  Ultimately, it would be great if we could transfer donations already made to the household level but not sure that it is possible (I couldn't find a way to move donations entered to another account).
I have read the posts of Soft Credit and about the extension titled "AGGREGATE HOUSEHOLD CONTRIBUTIONS REPORT".
We are currently on version 5.25.0 so I am not clear of the extension mentioned will work for us or not.
Anyone with advice on this subject - please reply.
Thanks,
E

hi and excuse the slight whinge but... providing links to things like the extension, makes it quicker for other busy folk (we all are) to help. And explaining 'why' you think it might not work also saves folk time looking stuff up.
AGGREGATE HOUSEHOLD CONTRIBUTIONS REPORT has its last release as 4.6. Best I can suggest is give it a spin and report back. That way if it works the maintainer of it may update the details
it can also be worth checking the git page and checking the Issues to see if anyone else is commenting about it working on more recent.
NOTE: if an extension says it is good for 4.7 then in theory it is good for 5.x
And Bingo! there is an issue about 4.7 compatability
and

so chances are good to very good. and if you report back on that issue (it is easy to do so) then every chance Allen (twomice) will take the hint and update.
Better still if you are keen (and welcome to this diy community) submit a PR on the info.xml and you will have made Allen's life at least one-click easier :-)


Where should I place PayPal auto-return parameters? Is there a suggested place or method by which to insert PayPal auto-return parameters, so as to guide PayPay to return users to a thank-you page following a transaction?

I have created a pretty standard CiviCRM contribution page to handle membership signups for a small non-profit. The sign-up process works great, but once users are done clicking the "Agree and Pay" button on PayPal, they now have to click a "Return to ..." button (still on PayPal) before being redirected back to the CiviCRM thank-you page.

As I understand it, one can use a return parameter to tell PayPal where to send users once their transaction is done, but I'm not quite sure how to implement it. Any advice?

For context, if it matters, this PayPal Business account is used both for CiviCRM and a separate web store.

A couple references that have guided me so far (but not far enough :-) are...

Paypal IPN eCommerce Payment Transaction Integration Notes
Multiple Auto Return Urls

The auto-return can be setup in your Paypal account.

Login and click on your Profile (upper right), click on Profile and Settings.
In the box on the left, click My Selling Tools.
Under the Selling Online section, update your Website Preferences.
On that page, make sure to turn on Auto Return and then set your return URL per the instructions.


Civievents - warning when user registers for event (CiviCRM 4.7.23) My CiviCRM version is: 4.7.23, Drupal: 7.56, PHP: 7.0
I have trouble with CiviEVENT. When participant fill and sendregistration form for event (when he doesnt exist in database) in CiviCRM i see this error:

  Notice: Undefined index: contact_sub_type w CRM_Contact_BAO_Contact::formatProfileContactParams() (linia 2010 z /home/sol/domains/staroflife.hekko24.pl/public_html/dev/sites/all/modules/civicrm/CRM/Contact/BAO/Contact.php).

    Warning: in_array() expects parameter 2 to be array, null given w CRM_Contact_BAO_Contact::formatProfileContactParams() (linia 2011 z /home/sol/domains/staroflife.hekko24.pl/public_html/dev/sites/all/modules/civicrm/CRM/Contact/BAO/Contact.php).

      Notice: Undefined index: contact_sub_type w CRM_Contact_BAO_Contact::formatProfileContactParams() (linia 2013 z /home/sol/domains/staroflife.hekko24.pl/public_html/dev/sites/all/modules/civicrm/CRM/Contact/BAO/Contact.php).

CiviCRM did not show this error before updating CiviCRM. I will add that the participant registered to the event is automatically entered as a "Uczestnik (eng. participant)" contact subtype, configured as a contact.

The contact created in the database has a properly assigned contact type, but this annoying error appears.

You can reproduce the error trying to subscribe to the event at: dev.staroflife.hekko24.pl (developer and testing environment)
1. Select one of the events at the bottom of the page and click "register now"
2. Enter your data in the form
3. As a payment option select "płacę z dotpay"
4. In the payment test environment, select any method, accept, and click the payment solution as Accept.
5. When you return to CiviCRM you should see this error.

This same error i see in production version :(.

You mention that you see this error on the production version as well.  This indicates that your production site is displaying errors, which is a PHP misconfiguration.  There are many similar questions on Stack Overflow on setting PHP error reporting, but the best reference is the error reporting page of the PHP manual.

This doesn't solve the underlying issue, but it will hide the messages in production.


error when opening Word attachment to email from view activity I've sent an email with an MS Word document as an attachment. When I look at the email on the activity log and open the attachment with Word then I get a warning message saying there is unreadable content in the document. It allows me to open the document anyway and doing a comparison with the original it says its the same. If I open the document from the email that is sent then its fine.

Not a big deal for me, but could be worrying for another user. I'm using CiviCRM 5.15.1 (and WordPress, but doubt that is relevant).

I've tried again just now and all seems OK, so I think the answer is the same as JPG files uploaded as notes can't be viewed and that it was caused by a blank line in the functions.php in the theme


Installing Wordpress and drupal on same machine I am trying to install wordpress and drupal on same server. Using WAMP.  I have installed both WP and Drupal under wwww directory.

In Wordpress CiviCRM works fine.
Drupal installation went through.

issue 1 :

Installing civiCRM module through URL option or by choosing tar.gz file is not working. I didn't even get an error message. Just I am again seeing the "Install module" page again.

issue 2:

Did the alternate option given in step 2 in this link https://wiki.civicrm.org/confluence/display/CRMDOC/Installing+CiviCRM+for+Drupal+7

when I go to step 4, http:///sites/all/modules/civicrm/install/index.php
I am getting the error shown in the screenshot. It identifies as wordpress installation instead of drupal.

Ok... got what the issue. I downloaded latest drupal. that is drupal 8.x.x ... CiviCRM version exists only for drupal 7... Now I am facing different issue. but this is solved.


CiviCRM training courses for beginners I'm a new user of CiviCRM and I would like to ask for specific training courses for beginner users. Where could I find them? Thanks a lot!

There are a good set of answers on this post but since you are asking specifically about training, and that was about 'tutorials' these questions may be subtly different. Perhaps you could clarify in your question if you mean videos, online training, or direct/custom training


Billing Name and Address I understand that on contribution pages the "Billing Name and Address" block pops up in default - for most payment types.
Where can I set what fields I want to have displayed -> I don't want the "middle name" and I certainly don't want a "State/Province" field when it's mandatory to start with.
I can CSS them out -> but is there a back office way to choose what is shown?
Cheers.

This is Wordpress.

To my Knowledge:-

For some reason billing address field selection is hard coded in core files

getBillingAddressFields()

so you are forced to list all the listed fields details - if you dont want to display specific details then:

you need to overriding the core files
Or
A JAVA script to hide the fields and unset the fields in formbuild

I guess this helps !!!


Changing position of pre-form help text I'm customising the CSS on my profile page - I've learned a lot doing this! I've got it almost how I want it. The last thing I'd like to change is the position of the pre-form help text on some custom fields - they currently float above the text box and label, and I would like them to appear immediately below the field label, to the left of the text box. I've googled and searched StackExchange and not found an answer - any ideas?

Thanks,
Andrew

Moving html can be done using javascript. You can embed javascript code to move the pre help field just below the label or text field. Here are the references for it
https://docs.civicrm.org/dev/en/latest/framework/resources/

https://docs.civicrm.org/dev/en/latest/framework/region/


customize search field in Contact Reference Field In "New Membership" I need to search the contacts by External ID instead of default "name or email". Is there any smart solution for this?

First, it can't be done without coding and it may not be an easy task.

I can think of 2 possibilities :

Change search api

When you do a search, the api that should be called is Contact.getlist, so the first step is to see if the api is able to do what you want. It seems to be possible to change the search from "name or email" to "external_identifier" but i can't find a way to do "name or email or external_identifier".

$result = civicrm_api3('Contact', 'getlist', array(
  'sequential' => 1,
  'input' => 4398,   // the text searched
  'search_field' => "external_identifier",
));

The problem i see is, if you change the default api behavior, it will be changed everywhere. I don't think you have the context here.

If you find your way, you will then have to implement the hook_civicrm_apiWrappers to change the api call as needed.

Change the ui

Replace the default CiviCRM search by a custom one that will call a custom api


How do I upload files in a custom form? civix generate:form creates a basic form with a buildQuickForm() and postProcess() demonstrating a select option.

I want the form to upload a file and save it to a custom field.

If I add: $this->add('file', 'file_id', "My document") then I get a normal file upload element on the form, but the problem is what to do with it in the postProcess.

$this->controller->exportValues() does not include my file_id although it is listed in $this->getSubmitValues(TRUE) with the the original file name and tmp_name.

I understand QuickForm does some filtering of submitted values but how do I stop the file details being filtered out and get it saved as a custom field?

I just created a custom extension that uploads a  CSV file and reads it into a table.

I added the file element in buildQuickForm as follows

  $this->add('File', 'uploadFile', ts('Import Data File'), 'size=30 maxlength=255', TRUE);

And the processing of the file was is done  with

public function preProcess()
{
    if (isset($this->_submitFiles['uploadFile'])) {
        $uploadFile = $this->_submitFiles['uploadFile'];
        $importer = new CRM_Importer();
        $importer ->truncate();
        $importer -> importCVStoTable($uploadFile['tmp_name']);
    }
}

I think the key element is $this->_submitFiles and you already found about the tmp_name


Event registration without online payment What is the configuration for an paid event that has no online payment option?

I have a Drupal/CiviCRM website running since quite some time for courses I provide. People register online, and only when there are enough people the course takes place. I then send people an invoice (per mail) that they have to pay.

I'm now stuck with a bug where I receive a "SQLSTATE[23000]: Integrity constraint violation: 1048 Column 'tid' cannot be null" error message, which I have the impression is linked to an error in my event configuration.

You can configure this with the Pay Later option.

Navigate to the Fees tab.
Enable Paid Event
Check the Pay Later Option


Event registration: adding guest names later The use case is that we need to allow people to buy tables of ten at a lunch event, but not have to submit the guest names until much closer to the event. I can get some of the way by having a price set with an option to increment the participant count by 10. But I can't then see how to input the 9 actual guest names at a later date, and keeping the total participant count at 10, and the contribution amount unchanged. Does anyone know of a solution?

We're in the process of building an extension to do exactly this, will share it when complete (it relies on some drupal specific functions at the moment but could probably be made CMS agnostic without too much effort).


What is required to run CiviCRM on Amazon RDS? Amazon have scalable MySQL/MariaDB offerings in Amazon RDS for MySQL (and Amazon RDS for MariaDB). CiviCRM uses MySQL functionality extensively, so it would be interesting to see if the two work well together.

What experiences do people have of running CiviCRM on Amazon RDS?
Were there any special considerations or steps to get it running?
Were there any limitations to CiviCRM you ran into?

We haven't tried running CiviCRM on RDS yet but we have been shifting a Drupal installation across to AWS. A few things we've noted so far that are relevant:

It helps if the RDS instance is in the same AZ as the web service
The various RDS instances have differing network throughput. It's poorly documented and can catch you out
Default settings for MySQL/MariaDB RDS from memory don't have caching enabled. You should be mindful of checking the paramater group for every RDS instance
Read replicas can be your friend!


How can I allow non-admin users to manage tags? I have a Drupal role which I have given the permission CiviCRM: administer Tagsets and CiviCRM: administer reserved tags but not CiviCRM: administer CiviCRM.

They still get access denied when visiting /civicrm/admin/tag?reset=1.

I do not want to give them CiviCRM: administer CiviCRM.

What can I do?

This is a bug already reported at  https://issues.civicrm.org/jira/browse/CRM-15371.

Managing tags needs its own permission rather than requiring "administer CiviCRM" permission. Anyone interested in getting started on core programming will likely find this a good one to begin with.


Is it possible to set cash contribution status to 'complete' automatically? The use case is this: People come with their children to attend a creche facility. To do this they need to be members. They make a cash payment on the spot. Their details are all entered using a Webform that redirects to the contribution page. All good. But the contribution record is always set to Pending as the only way to deal with cash payments on a contribution page is to set the Pay Later option which always sets a Pending status.
So the contribution record always has to be manually edited to change the status to complete even though the transaction was completed on the spot as it were.
Any way around this? Thanks

I think you should be able to do this with CiviRules: when there is a webform submission of the right type, find the contribution, check it is cash and then change the status to Completed.  You will need the CiviRules webform Drupal module in addition to the CiviRules extension.


contribution page PayPal error "The link you have used to enter the PayPal system contains an incorrectly formatted item amount" Strange problem.  I've just added a new price field to the price set on my membership renewal form, and whenever that price field is used, the link to PayPal fails with this error on the PayPal side:

"The link you have used to enter the PayPal system contains an incorrectly formatted item amount."

Any submissions made where there is no data entered for this field work correctly.

I've tried recreating the price field, changing the price, and changing the order of the fields. But the result is the same:  the confirmation pages show correct totals, but if that one line item is included, PayPal throws this error.

Any ideas?

Well, asking the question seems to have helped me find the answer on my own :-)

Turns out that a custom extension for adding a percentage surcharge was not rounding the result of its calculations to two decimal places. Therefore, the total value calculated and sent to PayPal had more than two decimal places in the cents -- which PayPal doesn't accept. However, the DISPLAYED total amount value on the confirmation page DOES round to two decimal places, so it's hard without looking at the actual PayPal data to see the problem.

The form worked fine as long as all the prices were in whole dollars, but the new price item included cents.  Pure percentage calculations with cents were almost always producing surcharge values with hundredths and thousandths of cents.

Putting in a round() function on the offending calculation solved the problem.

Hope this helps someone else!


Using the 12 hour time display option, how can I schedule a mailing to go out at 1 minute past midnight? I like to use the 12 hour time display option to set and present times. In most cases it is simply more easily understood.

On a number of occasions it's been important to carefully schedule the timing of a mailing, for example to coincide with the lifting on an embargo on a press release issued by a third party. These can commonly be embargoed until 00:01 on a given date. Id like to set the timing for a mailing to go out at 00:01, but as far as I can tell the field won't accept '00' as the hour value. What time should I set in this field to represent 1 minute past midnight?

When you schedule the time you should set to 12:01AM. Initially the time display doesn't display AM/PM but once you begin to enter a time it should show and be editable.


Mailchimp Integration pushing but not pulling I have the "Mailchimp & CiviCRM" integration (v2.0) installed, and have created a Smart Group containing current mailable members which I've linked with a test MailChimp group.  I've activated the Push job, but not the Pull job, as from what I understand I want CiviCRM to be the source of truth and push to MailChimp.  The push seems to work, but the description of the module here: https://vedaconsulting.co.uk/civicrm-mailchimp seems to indicate that it will also pull back to CiviCRM when a user or admin unsubscribes.

This has not been the case in my testing -- when I unsubscribe my own user through the admin screen on MC, the Smart Group never gets updated.  On the next scheduled push, the user shows up in MC as Subscribed again.  I've double checked the Webhook settings, and they are set as shown in the above link.  What am I doing wrong -- am I misunderstanding the push/pull, and I need to activate both jobs?  Will this work correctly, so that individual unsubscribes are pulled from MC immediately, but everything else comes from Civi?

To clarify, the following activity on MailChimp is communicated immediately (within several seconds) via WebHook (this does not happen during the push sync):

Any users that unsubscribe themselves in MailChimp will have the Do not email flag set in their CiviCRM Communication Preferences
If a contact is removed from a group in MailChimp, then the contact is also removed from the corresponding group in CiviCRM
A new contact who subscribes directly via MailChimp will be added to CiviCRM as a contact within the corresponding mailing list group(s) that they subscribed to
Changes to contact names in MailChimp will be updated in the corresponding contact record in CiviCRM

If you have completed webhook the steps listed in the documentation, make sure you resubscribe yourself directly on MailChimp first, then:

Verify whether the "Mailchimp: Allow Webhook Posts" permission has been toggled for the Anonymous User role:

  Navigate to Administer > Users and Permissions > Permissions (Access Control)
  Click on the "[CMS Name] Access Control" hyperlink (e.g. "Drupal Access Control")
  Use CTRL+F to find "Webhook" > toggle the permission for the Anonymous user role if it is not toggled
  Click the Save button

Confirm MailChimp Group Settings:

  If using the Membership Sync, toggle the option to "Ensure list's webhook settings are correct at MailChimp when saved"
  If using the Interest Sync, toggle the option of "Subscribers are able to update this grouping using MailChimp"

If you made any changes to the above settings, test again by removing yourself from a group and/or unsubscribe yourself directly from MailChimp, then navigate to your contact record in CiviCRM (or refresh after a couple of seconds if you are already there):

If you removed yourself from a group, then click on your Groups tab to see that you were removed by API from the corresponding group in Civi
If you unsubscribed yourself entirely, then the DO NOT EMAIL flag should be toggled on your contact record

Hope this helps!


Understanding unique vs multiple membership(s) (using Webform) I am extensively testing CiviMember because I have several Organizations which have different membership types with different duration types.

Memberships will be managed from the Organizations (not from Individuals)

I intend to create memberships via Webforms (Contact1 = Organization ; Contact2 = Individual ; One membership for Contact2)

When I use the same Webform again for the same Organization, Individual pair, in certain cases it creates a new (duplicate) membership, in others, it modifies the existing one.

I'd like to understand why and when each case happens (I may be interrested by each, but need to control when)

Thanks in advance

The Webform integration determines whether to add or update a membership based on the "Membership Organization" of the membership type. Say you have the following membership types defined:

Organization: Soccer Club

Membership Types:

Youth soccer
Teen soccer
Adult soccer

Organization: Tennis Club

Membership Types:

Youth tennis
Teen tennis
Adult tennis

Now say you have signed up a person for a "Youth soccer" membership. If you subsequently sign them up for a "Teen soccer" membership, Webform will detect that you are upgrading membership within the same organization and it will bump their existing membership from youth to teen. If however you sign them up for a "Teen tennis", it will leave their soccer membership alone, and add the tennis additionally.


I need an online registration that contains multiple venues for an event We are a not for profit organisation that runs masterclasses & Seminars across Australia. I need an event online registration page that the member selects the venue they want to attend from a list that states Venue, Day, Date, Time

Making a lot of assumptions here ... you could have a single event configured without enabling the location.  Then use a priceset with each item in the priceset matching a location - set it to required.

e.g.
"Select a Location"
Canberra - $75
Melbourne - $75
Darwin - $75

You'll end up with a master list of all registrants, getting a list of registrants by location requires a price set report, either custom or in the Extended Reports extension.


Is it possible to use Windows & Cygwin to run Selenium tests or does Selenium require a VM? I know documentation suggests using a virtual machine w/Windows, but I don't know anything (yet) about Selenium /limitations so am asking

Selenium testing can refer to a couple different situations:

A. If you focus on implementing custom sites for clients, then you might create a custom Selenium test-suite which encompasses the configurations/customizations/addons. Basically everything in the tool-chain is at your discretion. Use Selenium (or something else!). Use Civi tarballs (or zipballs or git!). Use Windows (or not!).
B. If you focus on developing changes for civicrm-core, then you're looking at the WebTest suite which is used for canonical QA of official releases. This comes with more rules/constraints, e.g. you need to install Civi from git.

In situation A, the testing methodology has little to do with Civi. Any tool or method for testing general webapps should work the same with Civi. So I'm assuming that you're interested in situation B -- the WebTest suite in civicrm-core.

The basic process of running the WebTest suite is the same on any platform:

Install Apache/MySQL/PHP/Composer/Java/Git/NodeJS/Bower/Drupal.
Install the desired version of Civi (from git).
Setup various config files for the test suite -- most notably civicrm.settings.local.php and CiviSeleniumSettings.php.

I've done #1 and #2 many ways on many platforms (OSX + Ubuntu + Debian + WinXP + Win7, in bare metal and VMs and containers), and I've done step #3 most places (albeit not Windows). Steps #1 and #2 on Windows are PITA -- mostly because they're not standardized (which makes them hard to document/automate/maintain).

Or to give it an upbeat spin: If you can get through step #1 and #2 to a produce a working git-based installation on Windows/Cygwin, then the Selenium bits in #3 will be easy by comparison.


Emailing : no open rate available I have a problem with one of my emailing campaign. The volume of tracked opening is equal to zero. But I see 203 clicks for this campaign, so I know the emailing was opened.
I checked the parameters, the tracking for opening was on.

What can generate this problem ? Do we have a possibility to retrive the data ?

Thanks a lot :)
Aude

Note that for all the popular web email clients (gmail, ymail) and probably desktop clients too, image loading is disabled by default and the user explicitly has to enable image loading for an email address or globally.

At the best the open rate should be treated just as an approximation. The wikipedia article has a good summary of this:

http://en.wikipedia.org/wiki/Open_rate


Drupal 8 CiviCRM Entity and Views activities We have been working on Views, with Civi Entity, on Drupal 8.
We are having an issue a list of Activities and filters.
We only want to load Activities where the source contact is a particular Contextual filter (contact ID). But adding a Contextual Filter of 'CiviCRM Activity (CiviCRM Entity): Activity Source Contact' leads to an error.
SQLSTATE[42S22]: Column not found: 1054 Unknown column 'civicrm_activity.source_contact_id' in 'where clause': SELECT civicrm_activity.id AS id FROM {civicrm_activity} civicrm_activity LEFT JOIN {civicrm_value_volunteering__9} civicrm_value_volunteering__9 ON civicrm_activity.id = civicrm_value_volunteering__9.entity_id WHERE (((civicrm_activity.activity_type_id = :civicrm_activity_activity_type_id)) AND ((civicrm_activity.source_contact_id = :civicrm_activity_source_contact_id))) AND ((civicrm_activity.is_deleted = :db_condition_placeholder_0) AND (civicrm_value_volunteering__9.validated__200 = :db_condition_placeholder_1)) LIMIT 11 OFFSET 0; Array ( [:civicrm_activity_activity_type_id] => 66 [:civicrm_activity_source_contact_id] => 20 [:db_condition_placeholder_0] => 0 [:db_condition_placeholder_1] => 1 )
Is that the right method for adding a contextual filter to that type of View.
Or is there another way?
Olly

Here's a working example of "My Activities"
Olly: you should just be able to change Assignee to Source for your use case (in Configure Relationship Contact)
Code: git repo -> last commit ->
commit bb1f503bd67d1537a16b28022a4f2444883ef231
Author: Rob Ellis <>
Date:   Sun Oct 11 23:21:17 2020 +0000

    Changed views contact subtype default arg to return "<none>" for users without a subtype


Shoreditch looks different in wordpress The contact screen in shoreditch on wordpress looks like this;
Different from the screens i find on the extension page. Is there a reason, or am I doing something wrong?

The documentation in Shoreditch states:

  Requirements

  Drupal 7
  CiviCRM, v5.0+ recommended
  "CiviCRM Theme" module enabled
  "Seven" theme set as CiviCRM Administration theme

My understanding is that the layout part is then heavily depending on the Seven theme, which is why it appears so differently in WordPress. Please correct if this is a misunderstanding.

If you use the CiviCRM Admin Utilites plugin, you can enable WP Admin Styles, published blog post with an overview.


Time estimate for setting up CiviCRM? I volunteer with a small non-profit and we recently decided to create a new CRM using CiviCRM. I am a complete novice with this and am learning it all from scratch - really appreciating the community and all the help on offer.
As we are planning out the work I am struggling to come up with a rough estimate for how long it will take and was hoping someone could advise. I realise this is a bit 'how long is a piece of string' but it would be good to hear from peoples' experiences how long similar-ish projects can take, either in hours or days for different stages.
We currently have around 300 members and we are planning to start off with a fairly simple CRM focussing on membership management. The key features/aims are:

Integrated with our Wordpress website (currently using shared hosting but may move to cloud).
Securely hold very basic member data; provisionally names, email, region, membership subscription amount, and have some basic tags.
Contact groups, with some groups having access to specific pages on our website (e.g. 'members' have more access than 'supporters').
Automated updating of the database when members join, leave etc.
Connected with a payment processor.
Automated emails following certain triggers e.g. lapsed payments.
Ability to set up events, invite different contact groups, and record attendees.
Email and event templates.

If I have said anything that doesn't make sense please let me know! Here to learn.
Many thanks,
Nick Sharma

Nicky welcome to CiviCRM SE. Your requirement seems to be very simple and straight forward and can achieved using CiviCRM without any writing any custom code(Can say less than a day for someone who is well versed with CiviCRM or a week or more for a newbie).
You can contact experts based on your country you living or the organization is setup for cost. Or if you want to do it by your self there are ample of tutorials available online which I believe is sufficient for your requirement.
https://docs.civicrm.org/
https://civicrm.org/videos
https://www.youtube.com/watch?v=XxexhDSzSME
https://www.youtube.com/watch?v=d40gJqV7qp0
https://www.youtube.com/watch?v=rEtclUjxBwA
Good resource for learning civicrm and drupal
CiviCRM training courses for beginners


Scheduled reminder linked to deleted event is not deleted: bug or feature? Create an event with a scheduled reminder (e.g. to send a confirmation 1 day before the start).
Then delete the event.
==> the scheduled reminder is not deleted (see Administer > Communication > Scheduled reminders)
I would expect the scheduled reminder would be deleted as well.
Is this a bug or a feature?
What would be your expectation?

I wouldn't say its a bug, rather missing feature. The schedule reminder UI also allows to update the reminder to include more events(for reminder which was configured from events tab) so it is additional discussion to delete the reminder if its only used for deleted event or disable it so that we maintain the log history if incase any reminder was sent for the reminder.
Would appreciate if you can send a PR to core to delete the reminder.


How to obtain user input from an API call This may be a stupid question - sorry if so. I am writing an API function to create a new case, and I want it to pre-fill the New Case form with field contents based the case source contact and two or three parameters obtained from the user. Of course I could create a new form in order to collect the user input before displaying the New Case form, but I wondered if there is a way that the API function can interrogate the user in real time to obtain the input parameters? Thanks.

I'm assuming you're on Joomla otherwise I'd say try civicrm webform. One option is define custom fields for cases and then use them during hook_civicrm_postProcess. Another is to add some javascript/jquery to the form via hook_civicrm_buildForm or .extra.tpl to pop up a dialog box to get the input, but that seems awkward - your original idea of having another form that comes before seems better.


CiviEvent Confirmation Email causes Time-Out I'm using wordpress 5.11 and CiviCRM 5.8.2.
I am trying to get a CiviEvent to send confirmation emails but when I select the confirmation emails, the session times-out for the user (error 504).  The registration does go through, but no email is sent.

Some observations, turning off the confirmation email works.  Registration completes and it goes to the completion page.

I can go into Find Participants, Edit their payment and send a confirmation email from there and it works.

I'm configured to use CiviSMTP as my email host.  I have no issues sending out bulk emails or day to day processing emails like renewal notices.

I have checked the logs and there is nothing reported.

I found a similar post here that suggested modifying/adding session.saved_path=/my/temp/dir which I put in as displayed here.  I'm not certain that is the correct format.  As displayed it made no difference.  The 504 Timeout is consistent and happens every time.

Any help would be greatly appreciated - this is a big event and it opens on Friday so I would really like to have this working by then.  I don't really want to have to do manual confirmation emails!

Thanks
Norm

Although not a perfect solution, it turns out to be the PDF processing that is causing it to time out (known issue apparently).
I disabled the PDF generation for emails and everything works fine now.

Thanks!
Norm