A week after upgrade whole site is erroring Upgrading to the latest CiviCRM on a drupal based site didn't seem to be an issue.  About a week later, perhaps a change in PHP version, I noticed that my entire site gives this message now and nothing really works:
Fatal error: Class 'CRM_Extension_System' not found in .../public_html/sites/all/modules/civicrm/CRM/Core/PseudoConstant.php on line 1837

Any ideas as to what I may have done to cause this?  Thank you for all your help!

Regards,
Yasir

I had the same issue and the same solution - the antivirus renamed the

  httpdocs > sites > all > modules > civicrm > CRM > Extension > System.php.suspect

Not sure how to make the server leave that file alone, or what triggered it.


Why is my MySql DB Connect failing on New Joomla install When trying to install Civicrm 4.6.5 onto Joomla 3.4.3 I am getting the following error once the install is started from the install for directory option "Cannot open mysql://root:'rootpassword'@localhost/joomla_db?new_link=true: DB Error: connect failed.". This error is display on a white page with nothing else on it. It is using the correct password for root. Any assistance is welcomed.

Try removing the apostrophes around the password, they are not required.


crm.ckeditor.js not found Inside /sites/all/modules/civicrm/CRM/Core/Resources.php
Line 738 and for civicrm version 5.3.1

 $editor = Civi::settings()->get('editor_id');
    if ($editor == "CKEditor") {
      CRM_Admin_Page_CKEditorConfig::setConfigDefault();
      $items[] = array(
        'config' => array(
          'wysisygScriptLocation' => Civi::paths()->getUrl("[civicrm.root]/js/wysiwyg/crm.ckeditor.js"),
          'CKEditorCustomConfig' => CRM_Admin_Page_CKEditorConfig::getConfigUrl(),
        ),
      );
    }

I get error event configuration page which is as follows:
Failed to load resource: net::ERR_NAME_NOT_RESOLVED and url which is not loaded is as shown below
https://newspace/prestige/public_html/sites/all/modules/civicrm/js/wysiwyg/crm.ckeditor.js
So link is incorrect which seems to be due to incorrect [civicrm.root],

Can I set $civicrm_root in civicrm.settings.php and can that help fix it?
When I place directly the url it works but it is in the code below which is Core part of civicrm

You can write the below code in civicrm.settings.php file to override the current value of [civicrm.root] token.

global $civicrm_paths;
$civicrm_paths['civicrm.root'] = array(
  'url' => 'https://website_url.com/.../civicrm',
  'path' => '/path/to/civicrm/folder/',
);

Similarly, it can be used to set [civicrm.files] and [cms.root].


CiviCRM Slow Bulk Emails to Sparkpost via Rest Hopefully someone can help..
First the particulars:

CiviCRM 5.1.2 / Wordpress
Sparkpost Extension: 1.1
Mailer Batch: 0
Mailer throttle: 0
Mailer job: 1000
Mailer Cron: 8

It appears that when sending out bulk emails, Civi is generating them one at a time (we turned off Smarty), which is impacting email performance.

How was I able to determine this ?
- Doing "tail -f" on the civi log, I saw a copy of every email being recorded, one at a time.
- A constant stream of activity on the database, with queries (civicrm_relationship) and recording of the email activity in the database. When the mails were finished, the database activity ceased.
- And the clincher... a continuous stream of sockets being opened and timing out. Running "netstat -an" and grep-ing the ip, I saw a few hundred connections to the same ip (though we are only running a batch of 8), and only the ports changing. The connections would time out, and new ports would come in..this was a pattern observed throughout the life of the email process.

Can someone please confirm that this is the expected behavior of Civi and if so, is there a way to batch emails. Also, is there a way to keep connections open ?

How many emails are you trying to send? mailer cron=8 is really if you want to send a lot (I would not consider putting something else than 1 if less than 100k emails sent).

As for the job size at 1000. you are on the lower side, and would probably put at least an order of magnitude higher.

With more "normal" settings, you should get a better behaviour.

This being said:
1) yes, sending a mailing means a lot of traffic around your db, it's normal, nothing to worry about, it's big queries to record which emails have been sent

2) yes, each email is sent a separate email, here again, it's normal and works as intended

What is less normal is the number of connections. If you use smtp, it will create one connection and push all the emails of the batch in this connection. Obvioulsy the more cron jobs running you have, the more connection, hence my recommendation to lower it to 1 to see how it goes

I'm not familiar with the sparkpost extension, it might use a http rest api, and depending how it's designed, make more requests, you should check the code or look directly with the authors of the extension.


hook civicrm_post not triggering as expected (Joomla) I have set up a hook to assign a group to new contacts when they are created. I have set it up the old-fashioned way, ie with a function called joomla_civicrm_post in a file called civicrmHooks.php in the php override directory. But the function is called every time the master cron job fires, whereas I expected/wanted it to be called when a new contact is created. Have I missed something obvious? Should this work? Or do I have to implement the hook as a Joomla plugin in order to get it to trigger correctly? Thanks.

Joomla 3.6.5, CiviCRM 4.7.16, php 5.6.30

OK, it was my stupid fault. The function isn't only called when a contact is created - it's called when any event happens (eg cron job). So the important line is the conditional statement (which should be the first line of the function) which decides whether the function should continue. In my case, this conditional line was:

IF ( ($objectName != 'Individual' && $objectName != 'Organization') || $op != 'create') { return; }


Status override bulk update Is there anyway of turning off status override for all memberships rather than individually going into each one.

Thanks,

If you have access to the civicrm database and, using PHPMyAdmin, find the table "civicrm_membership" and the column "is_overide", you could carefully change the relevant values to "NULL".  You would be advised to first take a backup of the database in case anything goes wrong.


Is there a reason CiviMail won't send a draft if no recipients are selected? Often, CiviMail users will want to send a draft email to someone for approval before they know the exact list of recipients.  However, you can't "Send Test" unless you meet all the requirements for sending the email itself - most notably, the list of recipients.

Is there a reason for this I can't think of?  I wanted to put it out here before I considered writing a patch for this.

I would think this is just that the entire form is being validated. It would make sense that there is different validation for the preview than their is for sending.

-Steve


What do civicrm extension "current usage" statistics indicate? For example, Mosaico CiviCRM Integration shows "Current Usage: 3749". What does this number represent?
I imagine this is the number of live sites reporting that this extension has been in a certain state within a certain number of recent days, but what state (ever been installed / currently enabled / currently installed but disabled), and how many days (365 / 7 / 1)? Or is this number based on something more / less / else ?

What a site sends back to civicrm.org is just this: https://github.com/civicrm/civicrm-core/blob/506fffd478a7d322fbea786c35787c95a6dbe290/CRM/Utils/VersionCheck.php#L238-L240
name, enabled, version
One thing to note at https://github.com/civicrm/civicrm-core/blob/506fffd478a7d322fbea786c35787c95a6dbe290/CRM/Utils/VersionCheck.php#L139 is that it's only sent back for beta and stable installs. Alpha dev sites do not send those stats back, but release candidate testing sites do.
Also note that it does this when its cache expires (3 days, or when cleared). It also up to a point depends on site cron.
Whether civicrm.org further scours the internet for more data to match it up to your birthdate, friends, and latest purchases I don't know - if you can find where the code for stable.php is at https://latest.civicrm.org/stable.php it will say what it does with it. It probably just stores it.
When it's displayed on an extension node, I believe it comes from the update() function at https://lab.civicrm.org/marketing/civicrm-website/-/blob/1f421835b1bc0ad2ce45a919215a6794955aa208/civiext/org.civicrm.civicrmorgstats/CRM/Civicrmorgstats/Utils/Extensions.php#L31-41, which in turn gets it from https://stats.civicrm.org/json/ext/{extension name}.
I believe that is somewhere at https://lab.civicrm.org/infra/stats-collection, but I would think just pulls it from whereever stable.php stored it.
So without seeing what is actually installed on civicrm.org, or knowing how often that update() function runs, half of this is guessing, but it's clear what a site sends back.


CiviCRM Webform Integration - User registered for event before they've made payment When you set up a webform in drupal for event registration in civi the last page of the form is "submit" which submits the form and registers the user and then takes them to the payment processor.

In the instance that someone doesn't complete the payment they are still being registered for the event.

Is there anyway to only submit the form once they've been redirected back from the payment processor?

Thanks

Registered for the Event but Contribution Pending Incomplete is the correct behavior in the case of an offsite payment processor.

It’s essentially a pay later (though the pay later time is shorter than mailing in a chq).

PS - on the second part of yorur question - if you use an onsite payment processor then you will have Payment fields before the Submit button


User to view/change own membership as well as address details etc I want users to be able to login and see/change their address etc as well as at least see their membership type (one of four available) and preferably change the membership. I got the login sorted, I got the profile I want but when one meets the other this message: "Profile search, view and edit are not supported for Profiles which include fields for more than one record type."

How do I get around this? Or is it not possible for members to see/edit their membership type on CiviCRM?

On Wordpress btw.

Thanks

Create a profile with all the information you want the user to edit. (I would not let a user change membership type, but as you wish.)
Create a new page on Wordpress - call it View Profile - or whatever you want.  Then embed the CiviCRM shortcode by clicking the insert civicrm content button, choose profile, choose the profile, choose view, and don't over ride.
Create a new page on Wordpress - call it Edit Profile - or whatever you want.  Then embed the CiviCRM shortcode by clicking the insert civicrm content button, choose profile, choose the profile, choose edit, and don't over ride.
Create links to those pages for users to access.

Optionally use the members plugin and restrict the content of those pages to only members or whatever configuration you want.


Is it possible to use CiviCRM tokens in external services? Maybe this is a dumb question, but I'm quite new to CiviCRM.

Is it possible to use CiviCRM tokens in external services?

Let's say for example that I would like to use another mailing service instead of CiviMail to send an email to some of my contacts.

In the email, I would like to insert a link with which the recipients could update their profile, using:

http://www.myorganization.org/mybasepage?page=CiviCRM&q=civicrm/profile/edit&reset=1&gid=2&id={contact.contact_id}&{contact.checksum}

Is there any chance that {contact.contact_id} and {contact.checksum} are going to work?

Simple answer: No. Those tokens are expanded into text strings by CiviMail for each recipient and your third party service is not going to know what values to substitute for those.

Complex answer: Maybe.  If your third party service has a way to allow you to provide tokens for substitution, and you can generate the correct data and format out of Civi then you might be able to make it work.

But it's much easier just to use CiviMail!

If you are comparing CiviMail with another mailing service, do make sure you are using the Mosaico extension - it's way better than the old interface.


Settings values not showing I am experiencing a strange issue with my CiviCRM (4.7.3) installation on Joomla (3.4.8).

If I change some of the settings in one of the administration pages, they are correctly updated on the database, but if I get back to that page I don't see the setting anymore.

It seems like values for the settings pages are not retrieved correctly from the database.

Any ideas?

Could be that the setting is being cached - I've seen this happen on previous versions. Do you have memcached set up? You can normally wait for memcached to refresh, or manually restart it via the command line - 'service memcached restart', on ours.


Moving contribution from individual to organization I have a contact in CiviCRM that is of contact-type Individual in CiviCRM. In real life, this is an organization.
I want to convert this contact from an Individual to an Organization. How do I do that?
(I could just delete the contact, and create a new contact, but I really want to keep the contribution history. So then I would need to move that from one contact to another. Using merge contacts only works within same contact-type. So this solution doesn’t seem to work either)

Run below query in mysql
UPDATE civicrm_contact
SET contact_type = 'Organization',
organization_name = sort_name
WHERE id = 123;

123 is a contact id


How can I extract email addresses from a Group? I've created a Group of individuals and I would now like to extract all of their email addresses.  Is there a way to do this? When I view the list of individuals in the Group I can partially view the email addresses but not the full addresses. I've set the Group up so we have a list of our current donors and I want to email them but not via CiviCRM.

After you perform a search or show the contacts in a group, you can select all contacts and go to Actions > Export Contacts.

On the next screen, choose which fields you want to export with the contacts or just select "Export PRIMARY fields." Then hit "Continue" and a save dialog box will pop up and save it as a .csv which you can import into a spreadsheet.


Upgrade from 5.9 to 5.16 in Drupal - upgrade script won't run I have Drupal 7 on Krystal Hosting, with CiviCRM v5.9 and trying to upgrade to v5.16. I've followed the upgrade steps on the docs.civicrm.org site and got to the step where it says,

"Or, point your web browser to the following URL and follow the on-screen instructions.

http://example.org/civicrm/upgrade?reset=1"

I've tried replacing "example.org" with my site address but just getting page not found.

I've checked I'm logged into Drupal as an admin. Only difference in address bar is text after site is ?=civicrm/upgrade?reset=1 instead of just /civicrm/upgrade?reset=1. When I click to go into Civicrm after extracting/installing 5.16, I get "Website encountered unexpected error" so I can't get to CiviCRM >> Admin >> System Status. Are there error logs anywhere with anything more helpful than "unexpected error" ?

Any help would be appreciated.

If you go to CiviCRM's Administer menu » Administration Console » System Status you should see an error "Database Upgrade Needed".  There should be a link you can press that should bring you to the upgrade page.  This link should account for issues like those mentioned by @Demerit.  Please edit your question if this doesn't resolve the issue.


CiviCRM_API3_Exception: "DB Error: no such field" When Editing CiviMail When I try to continue editing a CiviMail email we get the following error after upgrading to 4.6.4 from 4.5.5.

CiviCRM_API3_Exception: "DB Error: no such field"
#0 /home/sitename/public_html/sites/all/modules/civicrm/CRM/Mailing/Info.php(111): civicrm_api3("Mailing", "get", (Array:5))
#1 /home/sitename/public_html/sites/all/modules/civicrm/Civi/Angular/Manager.php(130): CRM_Mailing_Info->getAngularModules()
#2 /home/sitename/public_html/sites/all/modules/civicrm/Civi/Angular/Page/Main.php(66): Civi\Angular\Manager->getModules()
#3 /home/sitename/public_html/sites/all/modules/civicrm/Civi/Angular/Page/Main.php(58): Civi\Angular\Page\Main->registerResources()
#4 /home/ccsdfoundation/public_html/sites/all/modules/civicrm/CRM/Core/Invoke.php(312): Civi\Angular\Page\Main->run((Array:2), NULL)
#5 /home/sitename/public_html/sites/all/modules/civicrm/CRM/Core/Invoke.php(86): CRM_Core_Invoke::runItem((Array:12))
#6 /home/sitename/public_html/sites/all/modules/civicrm/CRM/Core/Invoke.php(54): CRM_Core_Invoke::_invoke((Array:2))
#7 /home/sitename/public_html/sites/all/modules/civicrm/drupal/civicrm.module(489): CRM_Core_Invoke::invoke((Array:2))
#8 [internal function](): civicrm_invoke("a")
#9 /home/sitename/public_html/includes/menu.inc(519): call_user_func_array("civicrm_invoke", (Array:1))
#10 /home/sitename/public_html/index.php(21): menu_execute_active_handler()
#11 {main}

No such field errors after an upgrade are most commonly caused by not having run the DB upgrader.

For Drupal, visit ?q=civicrm/upgrade&reset=1 or civicrm/upgrade?reset=1
For WordPress, visit wp-admin/admin.php?page=CiviCRM&q=civicrm/upgrade&reset=1
For Joomla, visit /administrator/index.php?option=com_civicrm&task=civicrm/upgrade&reset=1

For full upgrade advice and various troubleshooting tips, refer to the upgrade documentation page for your CMS.


not of type Boolean error message when testing Stripe in Test Mode I am getting the following error message when testing Stripe recurring membership dues in test mode:

  Sorry, due to an error, we are unable to fulfill your request at the
  moment. You may want to contact your administrator or service provider
  with more details about what action you were performing when this
  occurred.

  One of parameters (value: ) is not of the type Boolean

any help with how to fix this would be greatly appreciated,
best regards,
David

This issue has a ticket in Gitlab so you can follow updates there:
https://lab.civicrm.org/extensions/stripe/issues/53


Recurring contributions on paypal pro - undefined index We have a contribution page with the option to mark the donation as recurring with the ability to specify the term (how many months). This was working well, until recently, we are receiving a big red notice at the top of the page, even though the contribution appears to have registered correctly with CiviCRM as well as with Paypal. Here's the error:

Notice: Undefined index: installments in CRM_Core_Payment_PayPalImpl->doDirectPayment() (line 371 of /[PATH_TO_CIVI]/crm/sites/all/modules/civicrm/CRM/Core/Payment/PayPalImpl.php).

Any ideas as to what I need to do to make this error/notice go away?

EDIT: I checked line 371 in the file specified and this is the line:

 $args['totalbillingcycles'] = $params['installments'];

Which exists in the middle of the following If statement starting on line 356:

if (CRM_Utils_Array::value('is_recur', $params) == 1) {
      $start_time = strtotime(date('m/d/Y'));
      $start_date = date('Y-m-d\T00:00:00\Z', $start_time);

      $args['PaymentAction'] = 'Sale';
      $args['billingperiod'] = ucwords($params['frequency_unit']);
      $args['billingfrequency'] = $params['frequency_interval'];
      $args['method'] = "CreateRecurringPaymentsProfile";
      $args['profilestartdate'] = $start_date;
      $args['desc'] = "" .
        $params['description'] . ": " .
        $params['amount'] . " Per " .
        $params['frequency_interval'] . " " .
        $params['frequency_unit'];
      $args['amt'] = $params['amount'];
      $args['totalbillingcycles'] = $params['installments'];
      $args['version'] = 56.0;
      $args['PROFILEREFERENCE'] = "" .
        "i=" . $params['invoiceID'] . "&m=" . $component .
        "&c=" . $params['contactID'] . "&r=" . $params['contributionRecurID'] .
        "&b=" . $params['contributionID'] . "&p=" . $params['contributionPageID'];
    }

Any thoughts?

I'm guessing you aren't using the most recent version of CiviCRM (4.7.27). In the current version of this file, that line has been replaced with:

$args['totalbillingcycles'] = CRM_Utils_Array::value('installments', $params);

The CRM_Utils_Array function is meant to prevent missing indices or variables that aren't even arrays from throwing warnings. (https://issues.civicrm.org/jira/browse/CRM-13288).

I have no idea when the change in the code happened (what version/date).

I suggest you upgrade your CiviCRM. It looks like it would be relatively harmless to update the code manually, in this case.


how to add a field in tags I would like to ask how to add more fields to the tags for each individual.  We have a lot of individuals who are parents but we do not know where to define them as parents since we don't know the name of their children, can't use the "Parent of" in the Relationship category.  So we would like to add more fields in the tags so that we can put more details to each individual in order to help us organizing the data and easier to retrieve the data we need.  Actually we would also like to enter the event each parent attends but we couldn't find anywhere to do so.  Please advice.  Thanks.

I would suggest you create a contact sub-type called "Parent" (sub-type of Individial). This allows you to create a custom field group just for parents, and you can collect whatever additional information you wish.


Event registration form loses 'id' url param and then throws an exception I am running CiviCRM 5.10.0 on Drupal, and I see the following scenario happening, very consistently:

go to one of my event registration forms: https://www.terranova.tamera.org/de/civicrm/event/register?reset=1&id=1994
submit the form although many required fields are still missing.
Form refreshes with all validation errors. Notice that the url has changed and lost its 'id' param, for the current event.
complete the registration form correctly and try to submit again.
Receive an error saying:
Sorry, due to an error, we are unable to fulfill...
Could not find valid value for id

I solved it in a very unusual way - I added this rewrite on .htaccess file:

RewriteEngine on
RewriteCond %{HTTP_HOST} ^www\.terranova.tamera\.org [NC]
RewriteRule ^(.*)$ https://terranova.tamera.org/$1 [L,R=301]

To unify all accesses to use the non-www url.
For a reason I cannot yet explain, this completely resolved the issue.


How can I set default active dashlets for all users globally? Can I create a default dashboard setup (active dashlets and arrangement) for all users?

This would greatly improve the usability of the Dashboard, since the dashlets relevant to the use-case of the organization could be configured by an admin and users would see relevant data on their home screen instead of "CiviCRM News" or just this:

  Welcome to your Home Dashboard
  Your dashboard provides a one-screen view of the data that's most
  important to you. Graphical or tabular data is pulled from the reports
  you select, and is displayed in 'dashlets' (sections of the
  dashboard).

The DefaultDashlets CiviCRM extension creates a settings page that allows administrators to define the active dashlets for new users based on group membership.

Keep in mind it was born some hours ago as part of a CiviCRM developer training exercise. You rock David Hayes!


What does the 'profile_listings_and_forms' permission allow? I'm currently reviewing the permissions for a CiviCRM/WordPress site and want to make sure that I understand the permissions correctly before changing them.

I've found the documentation on the profile_listings_and_forms permission to be a bit unclear so I just wanted to check. Am I right in thinking that this permission is just a shorthand for allowing all four of the other profile permissions?

i.e. profile_listings_and_forms = profile_create + profile_edit + profile_view + profile_listings

Yes, the profile_listings_and_forms permission is just a shorthand for allowing all four profile permissions.

profile_listings_and_forms = profile_create + profile_edit + profile_view + profile_listings

The documentation is being updated to clarify this.

Thanks to MikeMJCO for confirming this.


Is there a way to update a partial refund for an event registration and associated contribution? On 4.7.15

Tried to update a contribution record from Pending Refund to Completed (not integrated with accounting software)

Got "Cannot change contribution status from Pending refund to Completed" message

Customer registered on-line (we use Drupal) but made a selection error that requires a small refund.  I was able to change selections from within Civi, and prices updated correctly. Now that the refund has been processed through Authorize.net, I want to update the Contribution record.

Try installing the Line Item Edit extension, then edit the line item.


What causes this error on importing email addresses? I'm getting some (maybe 5%) email address imports rejected with the message "Matching this contact based on the de-dupe rule would cause an external ID conflict" The email addresses in question can be updated in the UI without a problem, and I can't see that adding these rejected email addresses could cause any conflict. The supervised dedupe rule is 'Name and email'. What's the cause of this error? (Changing the dedupe rule to bypass the problem doesn't work so I'm thinking this might be a bug) Civi is at 5.11.0.

I had the same outcome when I imported external ID, first, last name and a physical address update. My dedupe rule only contained 'external ID'. When I removed the first and last name the import worked.


Problems with first test site using Civicrm buildkit hope there is someone who can help? It's taken me a couple of days, but I've finally got the buildkit successfully installed, however when I try to create my first instance I'm getting permissions errors, is this because I've installed it in the wrong place? I've checked the Apache version and the restart command.

This is a fresh install on gc ubuntu16.04 with up to date dependencies

Errors:

seankenny@instance-2:~$ ./buildkit/bin/amp test
Create test application
Create data directory: /home/seankenny/.amp/canary/data/F2Dn7Skcr6zJM61SvzEB72IjOuoUMHwi
AMP_URL='http://localhost:7979'
AMP_ROOT='/home/seankenny/.amp/canary'
AMP_DB_DSN='mysql://canary_wfa83:n29ZlTuwvd9UxLuI@127.0.0.1:3306/canary_wfa83?new_link=true'
AMP_DB_USER='canary_wfa83'
AMP_DB_PASS='n29ZlTuwvd9UxLuI'
AMP_DB_HOST='127.0.0.1'
AMP_DB_PORT='3306'
AMP_DB_NAME='canary_wfa83'
AMP_DB_ARGS='--defaults-file='\''/home/seankenny/.amp/my.cnf.d/my.cnf-e7cb970bf21e2d4b82d944711b5fc15b'\'' canary_wfa83'
Connect to test application
Expect response: "response-code-wgnXWegrsL"
PHP Warning:  file_get_contents(http://localhost:7979/index.php): failed to open stream: Connection refused in phar:///home/seankenny/buildkit/bin/amp/src/Amp/Command/TestCommand.php on line 163
Warning: file_get_contents(http://localhost:7979/index.php): failed to open stream: Connection refused in phar:///home/seankenny/buildkit/bin/amp/src/Amp/Command/TestCommand.php on line 163
Received incorrect response: ""
Tips for common issues:
 - (Re)run "amp config"
 - Double-check the httpd_type (apache24) along with any displayed instructions.
 - Double-check the httpd_restart_command.
 - (Re)run "amp test"

Accessing URL http://localhost:7979 requires at least these things:

Your client is able to resolve host localhost to the local IP address
You have a server which is listening to port 7979
Your server on port 7979 is able to listen to that port (not firewalled / filtered)

Check DNS for localhost

If the command host localhost does not resolve to 127.0.0.1, you should check your /etc/hosts file has an entry which defines the correct IP for localhost.

Expected output is something like:

chris@strike:~$ host localhost
localhost has address 127.0.0.1
localhost has IPv6 address ::1

Check server is listening on expected port

From the debug output above, we can see your server expects to bind to port 7979. So we can use lsof to confirm that the expected process is listening on this port.

chris@strike:~ $ sudo lsof -i :7979
COMMAND   PID  USER   FD   TYPE             DEVICE SIZE/OFF NODE NAME
nginx     432 chris    6u  IPv4 0x74beb77a214bedc1      0t0  TCP *:micromuse-ncps (LISTEN)
nginx   12446 chris    6u  IPv4 0x74beb77a214bedc1      0t0  TCP *:micromuse-ncps (LISTEN)
nginx   12447 chris    6u  IPv4 0x74beb77a214bedc1      0t0  TCP *:micromuse-ncps (LISTEN)

This output tells us that port 7979 "belongs" to a service named "micromuse-ncps", but we'll ignore that; we're using that port for your AMP hosts. Just read "micromuse-ncps" as saying "7979".

Your output should show that -

The expected program has this port bound. (I'm using nginx, you'll see apache there.)
The expected user account is running this program. (If I saw "alice" instead of "chris" as the username, that might be telling me that Alice's buildkit had already claimed port 7979, so I couldn't have it.)
If no results show up, this might indicate that your webserver didn't know to bind that port, which might happen if the AMP include was not added to the webserver's config file.

Firewalls

If the port is bound but you can't connect to it, that might indicate the presence of a firewall or other system preventing AMP's test connecting.

Documenting firewall configuration isn't in scope here, sorry! Should your buildkit host have a firewall, you'll have to be responsible for making sure that firewall doesn't interfere with buildkit, by ensuring the buildkit/amp ports are available to the expected client IPs.


Mandrill - webhooks for two different sites? We have a client who has two webhooks defined in Mandrillapp - both of them reacting to the same events (click, open, etc). These webhooks have a post url of two different sites(dev and live). Eg.

  Post url of dev = http://devsite.com/civicrm/ajax/mte/callback?mandrillSecret=devkey

  Post URL of live - http://livesite.com/civicrm/ajax/mte/callback?mandrillSecret=livekey

My guess is that - when an email is sent from the live site, these both urls are triggered(on open or click event) and dev site also gets the response which creates a mandrill activity on dev site.

This is what is happening for us - when a bulk email is sent from the live site, dev also creates a mandrill activity.

Can we conclude that we need to use two different mandrill accounts for two different sites OR there is a way to avoid this (rules, etc)?

UPDATE after Chris Answer -

The posted answer seems to be something which is already present in Mandrill extension?

Readme file asks user to save the secret key as a value of an option group which we've done for dev and live sites.

Problem arises when DEV webhook is triggered by an event(open/click) of LIVE mails(note both above URLs react on the same event). As dev secret key is same(url param and option grp value) matches the option value stored on the dev site, this checking of key match doesn't help us.

In short, a dev Post URL need to be avoided to be triggered after an event has occurred for emails sent from live site. Maybe this could to be done on the MandrillApp side?

If you must use the same account on both environments, Drupal/CiviCRM hooks could potentially support this? (All of this answer is likely more work than just using the provider's supported test mode, though!)

You can pick any hook that fires before Mte.callback gets fired, and trigger rejection / invalidation based on any of the incoming data including the secret key or contact details in the request.

CMS boot hooks (eg Drupal hook_init) or CRM config hook (hook_civicrm_config) happen early but on many requests so will add overhead; if possible I'd do this as late and specifically as possible - hook_civicrm_apiWrappers could be just the ticket if it works for this usage? Alternatively you could just throw some interception in settings.php / civicrm.settings.php / environment-specific settings.development.php.

If the secret keys aren't suitable, you could look for test-specific properties of the submitted contact data.

That might look like,

// Lives in settings.php so it's not in your committed code.
$mandrill_secrets = [
  'development' => 'devkey',
  'production' => 'livekey'
];

Boot time: obtain current environment, put in $environment:

Drupal environment module
strpos($_SERVER['SERVER_NAME'], '.demo.example')
Whatever you want to use ...

Before CiviCRM has a chance to respond to civicrm/ajax/mte/callback: If the supplied secret doesn't match the current environment, unset it or make it invalid.

if (isset($_GET['mandrillSecret']) && $_GET['mandrillSecret'] != $mandrill_secrets[$environment]) {
  $_GET['mandrillSecret'] = 'invalid';
}


Create an event without country and state Can I create an event without a country and state? I always get this error: State / Province does not match selected country.

Its a core bug. You need to first empty the selection for state/province save the form and than empty country selection and save the form.
HTH
Pradeep


No Google Groups showing up after setting up Googlegroups Sync extension I think I have the connection with Google established. At least, Mailings/Googlegroup Settings confirms that I am connected. When I go to Manage Groups and select a group so I can set the Google Group to sync with, the Google Group box is blank. No groups to select.

Would appreciate it if anyone had any ideas for solving this.

Thanks!

Drupal 7.4
CiviCRM 4.6.11

I am on Wordpress, but I had the same problem. I saw the group, but could not see the field. The reason was that my connection to Google API was not properly setup.

If you use Google Apps, pay attention, that on the Google Dev Console you create the Keys with a user which is a Google Domain Admin.
You also need to enable the Advanced API for Admin SDK. Search in Googles Developer Console for the Admin SDK and click on enable API.

When that was done, it took me a couple of hours of searching/debugging, the dropdown to select the groups appeared.

regards,
Alain


Error with CRON after updating to 4.7.6 I am getting the following error after updating to 4.7.6:

  Warning: Missing argument 1 for
  CRM_Utils_System_Joomla::getDefaultSiteSettings(), called in
  /home/mysite/public_html/administrator/components/com_civicrm/civicrm/CRM/Utils/System/Joomla.php
  on line 687 and defined in
  /home/mysite/public_html/administrator/components/com_civicrm/civicrm/CRM/Utils/System/Joomla.php
  on line 698 Error displaying the error page: Application Instantiation
  Error: Failed to start the session because headers have already been
  sent by
  "/home/mysite/public_html/administrator/components/com_civicrm/civicrm/CRM/Utils/System/Joomla.php"
  at line 698.

I did not have this error in 4.7.4, skipped 4.7.5 update.
Running Joomla 3.5.1 and Php 5.5

I discovered I had an issue with Joomla's database.  Here is the answer I found:
The fix is easy:

Enter your Joomla site's backend
Select from the admin menu: Extensions -> Manage -> Database
Click on the FIX button. You may find that some other updates need to be done to bring the database up to 3.5.
Head to Global Configuration, and turn the site 'off' before this next step to discourage any users for a while.
Then, as mentioned above, head to phpMyAdmin and delete all the entries in the xxxxx_sessions table.
Head to the backend and turn the site back on.

http://forum.joomla.org/viewtopic.php?f=710&t=913838


Relationships not visible after migrating from Wordpress to Drupal I have migrated a CIVICRm installation from Wordpress to Drupal. Everything is working except the relationship tab under contacts.
The tab heading has the number of relationships but no relationships are visible.

Also I can see the relationship in the relationship report.

How do I fix this as there no error being logged

Thanks

I had the same issue recently and the resolution was to ensure that the URL you use to access Drupal and CiviCRM must be consistent with what's entered in the CIVICRM_UF_BASEURL in civicrm.settings.php and the Resource URL in Administer CiviCRM >> Global Settings >> Resource URLs.


I want to hire a CiviCRM (Joomla) expert to fix a problem I have an immediate need (Contribution Form fails; bounces to Home Page or timeout error) and ongoing needs as well, for multiple client sites. This is urgent. Thanks!

The best source for finding partners is https://civicrm.org/partners-contributors

There you can search on country and the services they provide.


CiviCRM upgrade can't find core module in Drupal I'm trying to run a civicrm core module upgrade on a drupal 7 site. I follow all of the posted instructions, but when I run the civicrm/upgrade I get a white screen. When I return to the drupal modules the main civicrm core module is no longer listed. If I run the drupal upgrade script I get an error message that civicrm module is missing ... but I can see the module loaded on the server, with all it's files, in the correct location.

I shouldn't have to uninstall the module because I'm upgrading. I disabled all of the civi helper modules, but made sure to leave the main civicrm module enabled, but I still get the missing module message.

Any help would be greatly appreciated.

Since it's no longer listed and it says it can't be found, it's usually one of these two things:

your files are uploaded into the wrong spot
your files have the wrong permissions and/or user attached


Picture selection for CiviEvent name badge - KCFinder not useable I am trying to configure name badges for CiviEvent events.

When trying to configure the pictures, for upper left/right corner, an unformatted page opens and clicking on links like upload returns an error.

Any hint how to fix this? I checked civicrm.settings.php to ensure that the correct path is used and that the permissions for the upload folder are correct.

Any other way to get the pictures up and placed on the right place?

CiviCRM 5.8.1
Wordpress 5.0.2

Thanks,

The problem was caused by the CiviMobile extension which injected script code before the original page content and before the OnLoad event for loading the JQuery library. After removing this plugin, the upload page comes up properly.


How do I change the default URLs to contribution or event registration pages? Is there a way to customize the default URLs on public-facing contribution pages or event info/registration pages to make them match the site URL schema better?

For example, a default event page URL could be something like this:

https://example.org/civicrm/event/info?reset=1&id=3

But it would be wonderful to be able to set that page to be something like this:

https://example.org/event/fundraiser

In some CMS setups, this would also allow better control over sidebar content that should show up only on certain contribution pages or event pages.

CiviCRM itself provides no mechanism for customizing any URL aliases, or for generating them automatically. This is handled in the CMS or at the webserver level through URL Rewrite on IIS, mod_rewrite on Apache, ModRewrite in Lighttpd, and so on.
By the book, manual aliases or redirects for contribution pages or any other CiviCRM pages are to be handled at the CMS or webserver levels.
Drupal
The recommended route is to use the Redirect module, which allows you to manually set up 3xx redirects.
The core Path module in Drupal does not support query strings, unfortunately (this is a frequently requested feature). Aliases are designed to work with internal Drupal system paths, which CiviCRM paths are not. If you want to use aliases instead of redirects, you'll need to use a workaround, some of which are suggested in the referenced thread:

Use the Query Parameters To URL module to rewrite query parameters into Clean URL components
Try inserting an extra slash in the path, e.g. http://example.com/civicrm/event/register/?id=1&reset=1
Encode the path, then prevent Drupal from decoding it

Instead of using the CiviCRM-generated contributon or registration forms, you could use also Webform CiviCRM Integration to create a webform for it. Since the webform is a Drupal node, it will work with pathauto and should work with all other Drupal modules and APIs related to path aliasing.
On one of my sites, we don't display the contribution page directly, but use Drupal Views to provide a more custom layout. This neatly solves the issue because you aren't using a CiviCRM path at all, and only need to send, for instance, the event ID: https://example.net/myview/3 . Since this is a valid system path, it can not only be aliased but used in menus, and thus become https://example.net/fundraiser easily.
For example, we might set up two views: one listing upcoming events, and one to display details of an individual event. In the first view, we retrieve the event ID but hide it from display, outputting in the path to the second view. Thus, /myview/[event_id] gets populated as /myview/3. In the second view, the event_id is set up as a Contextual Filter (known in D6 as Arguments), and then we can pick and choose what fields or event information to display.
There isn't any mechanism to set up the redirects or aliases automatically. CiviCRM does not implement the Pathauto api, and exposes no Rules Events related to contribution pages or event creation to Rules.
Joomla
In Joomla, the suggested solution is to create a menu link for the contribution page and define the "pretty" URL in the alias field; naturally, Search Engine Friendly URLs must be enabled in GlobalSettings.


How to make one CiviCRM work with Wordpress multisite My organisation is using CiviCRM on Wordpress. We recently changed the Wordpress installation to be a multi-site network. CiviCRM, the plugin, is now only activiated for the subsite that was the original one. If we were to create new sites that shall also interact with the same CiviCRM database, would we just have to activate the plugin network-wide, or is this precisely what we have to do?

In the end, we want to have forms on each of the different sites and have people enter their details and sign for things, which are then stored in the (same) CiviCRM database.

I know this is a dumb question, but I am just not sure about any of these things and don't want to break anything.

For the multisite integration across websites to work, yes you do need to do what is outlined here. That with some a few enhancement that https://wordpress.org/plugins/civicrm-admin-utilities/, which Christian noted above, allows you to connect multiple websites on a WordPress multisite to the same CiviCRM instance.


Why does Stripe 5.2 extension hang on payment? After completing the payment screen and clicking 'Confirm Contribution' the screen hangs. The button is greyed out but nothing happens.  But...if I just hit enter on the screen without first completing anything at all I get an error message about incomplete fields, and then I can complete the screen & proceed normally.  But if I first complete all the details and then hit the 'Confirm Contribution' it hangs.  I've tried this on Chrome, Firefox and on my Android 8.1 phone - all the same. I am using 5.2 of the Stripe extension, CiviCRM 5.7.3 running under Drupal.  Using the second technique described above I've made a couple of payments so there's nothing wrong with the setup, it seems.
Update: I have found some errors in the Stripe dashboard, here are screenshots and this

The answer is that I had pasted one of the Stripe API keys with a trailing blank, so when I looked at Firefox's web developer console there was a message 'Your key is invalid as it contains whitespace'  Working consistently now, but how I previous managed to make a couple of contributions successfully I don't understand!


How to change the encoding in pdf documents? How to change the encoding in pdf documents?
Cyrillic characters are not displayed in my pdf documents.
To display them, you need to change the encoding. Please tell me which file can this be done?
I tried to find the answer in other questions, but unfortunately I could not.

css

Report pdf

Report html

I don't think it's the encoding it seems that none of the included fonts in dompdf support it. See also https://stackoverflow.com/questions/16384517/dompdf-character-encoding-utf-8. If you look in the vendor/dompdf/dompdf/lib/fonts folder there's a readme about DejaVu, and it says you can get the font from http://code.google.com/p/dompdf and copy it into your dompdf/lib/fonts folder. Then as the first link describes you need to change the font used by the Civi message template you're using, e.g. in the template under Administer - CiviMail - Message Templates if you edit the template you'll see either <font> tags or something like style="font-family: Arial", and you can change the font there. If you're pdf'ing reports you can edit css/print.css.

Note that clicking the .ttf files at the link above seem to be redirects to another page where you can actually download the real file. If you just save the .ttf files directly they aren't really ttf files.

Also in order to get it to recognize the .ttf I had to add this to the print.css file:

@font-face {
  font-family: 'DejaVu Sans';
  font-style: normal;
  font-weight: normal;
  src: url(https://mysite.org/path/to/civicrm/vendor/dompdf/dompdf/lib/fonts/DejaVuSans.ttf) format('truetype');
}
@font-face {
  font-family: 'DejaVu Sans';
  font-style: italic;
  font-weight: normal;
  src: url(https://mysite.org/path/to/civicrm/vendor/dompdf/dompdf/lib/fonts/DejaVuSans-Oblique.ttf) format('truetype');
}
@font-face {
  font-family: 'DejaVu Sans';
  font-style: normal;
  font-weight: bold;
  src: url(https://mysite.org/path/to/civicrm/vendor/dompdf/dompdf/lib/fonts/DejaVuSans-Bold.ttf) format('truetype');
}
@font-face {
  font-family: 'DejaVu Sans';
  font-style: italic;
  font-weight: bold;
  src: url(https://mysite.org/path/to/civicrm/vendor/dompdf/dompdf/lib/fonts/DejaVuSans-BoldOblique.ttf) format('truetype');
}


Error when upgrading to vs 4.6.8 My work partner and I were trying to upgrade Civi from vs 4.5 to 4.6.8 and got an error that we couldn't figure out. We are using Wordpress. Here's a screen shot of the error message we got: https://docs.google.com/document/d/1XEd5SqrbFbgwzHFBRG1oW3UMZLX_YtuizroLPLjvViI/edit
Can anyone help me with this? We are not even sure what it means (I have to note here that I'm not very knowledgable about code). Even though we got this error I was still able to login to Civi and see all my data, but I'm nervous that something might be wrong that I can't see yet. Any help is much appreciated!
Thanks,
Lauren

That table is involved in reminders, and was introduced in CiviCRM 3.4, so there is a serious issue with your database. I recommend restoring a backup of your site and database (you have those, right?) and trying the upgrade again. Please note the first errors you get, as those are often most useful in diagnosing what is going wrong, rather than later more serious messages.

It would likely be a good idea to verify that the table is in your backup before starting the upgrade.


Use Drupal Views to select Organisation and display contacts with a particular relationship to Organisation I have been trying to work out how to create a Drupal View to allow end users to select an Organisation and then it displays Contacts given a specific relationship type.
eg Select Employer Name (Organisation) - display Employees of Employer
Relationship is the built-in Employer of / Employee Of

So far I have created a view with CiviCRM:Contact type and added a few fields, but the only 'relationship' details i can retrieve that is close for the 'employees' side of things is "CiviCRM Relationships: Contact ID B (Contact ID B)".  I dont see to have or can find a method to display Contact B's Display Name

Example - Selected organisation is Contact 'A' ID 203 'K&N Brass' and has a relationship to Contact 'B' who's ID=202

Contact ID  Display Name    Relationship Type A-to-B    Contact ID B
203         K&N Brass       Band includes member        202

Drupal 7.43
CiviCrm 4.7.7
Views: 7.x-3.13

To create a Drupal relationship in a View for contacts A - B or B - A you need to add 2x Drupal relationship.

In the case of starting with the Org assuming it as at the B end of the relationship, first you choose the option that says

CiviCRM Contacts: CiviCRM Relationship (starting from Contact B)

and configure that with the relevant Relationship Type

Then you choose

CiviCRM Relationships: Contact ID A

and use the relationship you created above to Join contact A via the relationship to contact B.

Then as Laryn says, select a field for DisplayName and tell it to use the second of these relationships (probably only one that shows in that context) and bingo!


How to list search results in edit mode like a spreadsheet for easy data entry on WordPress platform? I have custom profiles I would like our team to be able to edit directly in the search results display so they don't have to click into each record individually... much like a spreadsheet... to ease data entry.

Can only think of finding the contacts and doing batch update via profile, this will allow you to update the contact like spreadsheet. But its only limited to few contacts at a time


Assign all contacts created by a user to one group automatically? Just what it says in the title. I have an issue with ACL where the user that has access to only one group creates a New Individual (through civicrm) winch then they do not have the access to.

My thinking was to create a rule where upon adding a Contact it gets added to a group of my choosing, with the condition that the contact was created by a specific user. That condition doesn't exist in CiviRules, as far as I can tell.

EDIT
To make it clear. A user, when creating a contact, can assign the contact to the group they have access to, but this isn't user friendly and feels burdensome. Isn't there an automated way to do this?

As per Erik's suggestion I created a new condition.
It will be included in the next version of civirules (2.12).
If you would like to get it before the official release of the new version you can always get it from the civirules repo https://lab.civicrm.org/extensions/civirules .

The new condition is called "Contact added by Contact (not) in Group(s)" and it lets you ask if the contact was made by someone in the specified group. My original question was about the specific contact, but the group implementation makes more sense and works better for the ACL functionality which was missing.


What's the purpose of adding a campaign when enrolling a membership When you enrol a contact into a membership, you can add a campaign for them so that there's a link between their membership and a campaign. But that seems to be it - any donations they make not automatically linked to the campaign and the same goes for member dues.  So what's the point of this link? My use case would have been a good fit for this linking of membership to a campaign, where people have one membership type but are linked to different campaigns depending on how much they give.

I don't have this use case and am not sure how you want to engage your constituents with this information linkage, but one possible use is in reporting. You can filter on campaigns, so if you want a list of members that have a differentiator not based on amount or date of membership, then you might assign them to specific campaigns. Similarly, "campaign" can be selected in Advanced search and used to create a smart group that can be used for mailings.


How to put your CiviCRM Contacts on a Leafleft Map in 5min? To summarize: someone asked me to post this here - so that he can give it a try!

put a PIN based on latitude/longitude of the CiviCRM Contact
put CiviCRM Contact data in the bubble pop-up
color the PIN based on value of a CiviCRM Custom field

Leaftlet is an open-source JavaScript Library for interactive mobile friendly maps. It only takes a few minutes to put your CiviCRM Contacts on a Leaflet Map if you're using Drupal.
Here are some of my slides from my CiviCON 2016 lightning talk:
EDIT: Some additional notes based on comments below and some questions emailed to me:

To get started with CiviCRM - Drupal integration make sure you have
CMS integration set up Administer: civicrm/admin/setting/uf?reset=1
add a filter to not bother w/ non-geocoded addresses:  Filter
Criteria: CiviCRM Address: Latitude (not empty)

EDIT: for this example I used: drush pm-list --type=Module --no core --status=enabled
(and relevant...)
CiviCRM CiviCRM (civicrm) 4.6.18
Other IP Geolocation Views & Maps (ip_geoloc) 7.x-1.28
Other Leaflet (leaflet) 7.x-1.3
Other Leaflet Markercluster (leaflet_markercluster) 7.x-1.2
Other Libraries (libraries) 7.x-2.2
Views Views (views) 7.x-3.14
Don't forget Leaflet module requires you to install leaflet library in /libraries (either your sites/all/libraries or your specific site's /libraries).

UPDATE: now requires this patch for ip_geolocate module -> https://www.drupal.org/files/issues/ip_geoloc_plugin_style.inc_.patch


Changing the CiviCRM Theme in Drupal Currently running CiviCRM 4.6.8 and Drupal 7.

I want my Civi theme to be different than the one I'm using for the Drupal front end. I'm all but certain I used to be able to do this through Drupal's "Appearance" tab. In fact, I've read a couple of things after Googling it that suggest that there's an option to change Civi's theme in admin/appearance, but I don't see that option.

I also saw some articles mentioning an extension or a module that will do exactly what I'm looking for. I'll use it if I have to, but I'd rather use whatever features are included if I can.

Thanks for any advice!

you need to enable the civicrm theme module, that allows you to to set specific themes for backend and frontend pages. You don't need to download it, it's already there, you just need to enable it.

By default, it's the same theme that the other "normal" drupal pages and you need to have enabled the themes you want to assign to civi


After duplicating event, creating a new location updates the parent event location I duplicated an event, and then, on that new event, clicked "Create New Location." The location saved successfully, but the old event and all events created from it had their locations updated as well. Why?

It looks like a fix will be included in 5.5.0

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


Custom CRM/Mailing/Info.php causes WSOD when installing extensions I'm using the custom PHP feature of CiviCRM to apply patches etc I can't do with a hook.

I have a custom version of CRM/Mailing/Info.php which causes problems when installing an extension. I get the (redacted) error ...

PHP Fatal error:  Cannot redeclare class CRM_Mailing_Info in /custom-code-area/CRM/Mailing/Info.php on line 0, referer: https://example.org/civicrm/admin/extensions?action=add&id=nz.co.fuzion.accountsync&key=nz.co.fuzion.accountsync

When I remove that PHP file, all is well.

Potential culprit

I see that civicrm_rules_civicrm_postProcess() in drupal/modules/civicrm_rules/civicrm_rules.module on line 132 has ...

  require_once 'CRM/Mailing/Info.php';

Could that be the cause? Assuming this is called before the custom code is included.

There are a few files across the system that cannot be over-ridden via the custom php directory. This is primarily because these files are included during the bootstrap process.

I dont think anyone has documented which files or tried to minimize the number of files that can be overridden. I suspect all component Info.php files fall in  this bucket and hence you get the above error

Curious as to what custom code you are adding to the Info.php file


IMAP authentication error with Smartermail So, I've spent the last few days running this issue down, and I actually have a solution (or a workaround?), but I just wanted to ask if it's really the best way to handle the situation.

I'm running CiviCRM 5.21.0 on Joomla 3.9.15 and was looking at bounce processing and the Fuzion Transactional Email extension. I was setting up an IMAP account to handle the bounces, but every time I ran the fetch_bounces scheduled job, it would come back with "The IMAP server did not accept the username and/or password". Well, I know the username and password are correct.

Long story short(er), my mail server (I host in-house), Smartermail 14.7, does the same thing that GMail does - instead of an immediate "OK LOGIN completed" response, it gives the "* CAPABILITY" line first.

I couldn't find anywhere in the code where it might dynamically figure out that the server is a gmail server, so I just changed the $serverType on line 331 of /administrator/components/com_civicrm/vendor/zetacomponents/mail/src/transports/imap/imap_transport.php from null to self::SERVER_GIMAP, and now the authentication error is gone.

Is this the best way to do this, or is there a better way? I'm guessing that any time I update CiviCRM, I'm going to have to re-do this change.

I think the best approach would be to file an issue at https://github.com/zetacomponents/Mail/issues. It should be addressed in the mail library. There's a comment in the code near that line you changed where they have foreseen that there's this possible todo for other servers.

CiviCRM does support patching the library and does currently do that for something else, so it could be done on the CiviCRM side, but this one seems more appropriate to do in the library itself.


Can an expired checksum provide any warning to the user when they get to the site? If a user clicks on a checksum link that has expired, I don't think they get any notification to that effect. This can mean, for example, that when renewing a membership, they might create a duplicate record if they use a different email etc.

Could civicrm provide a warning to the user?

I think this idea may be too specific for general use, but an extension that offers a 'self service' checksum option, ie 'please enter your email address and check your emails for a new link' might be useful.

Thoughts?


Send Schedule Mailings job succeeds but scheduled mailing not completely sent On Civi 4.7.27 send first large mailing to 12733 emails through SparkPost, only some were delivered (about 900), and the job says it has not completed. Unfortunately, it is 16h later and the Send Schedule Mailings (Entity: job Action: process_mailing) keeps succeeding every 5 minutes.

The settings were default, so the job attempted to send all 13k emails at once, which I confirmed by finding one child job still in state of 'Running' in the civicrm_mailing_job table with 0 offset and all mailings included.

My suspicion is that the job timed out.

How can I invoke a job that will complete the sending? Can I determine from one of the tables which emails have been sent to, and can I restart from there?

We found that applying this line's change from this PR to the mosaico extension solved our problem: https://github.com/veda-consulting/uk.co.vedaconsulting.mosaico/pull/182/files#diff-d8205fe762b98a885815f3d4bb175886R294


Not be able to set up Membership Type and Payment Type We want to build similar form as described here :https://glos.us/civicrm/profile/create?gid=15&reset=1 , into our new site here: http://manningmedia.net/glos/test/, We are not be able to show Membership Type and Payment Type fields on our new website, from where can we setup that ? to show it above the form.

The links to the forms you've provided look like stand-alone CiviCRM Profiles.

To allow for membership registration with online payment, you need to set up a Contribution Page, which allows you to configure payment options and the types of memberships that can be selected, as well as on screen messages and email receipts. You'll include the profile you want completed in the set up as well.

The CiviCRM book explains in full detail how you can set up a Contribution page: http://book.civicrm.org/user/contributions/setup/


What's the purpose of the hash added to filenames in custom folder? I have a ton of image files to add to Civi (far too many to do manually) and have figured out what tables to update & make it all work.  But I notice that files uploaded via the Civi UI have a hash string added to the filename that's stored.  So xyz.pdf becomes xyz$$$.pdf where $$$ is the hash. What's the purpose of this hash string?  Is it to make a unique URI?  Should I do this as well for my files? It all works without this.  (I don't want to use the API by the way, and we're on 4.6.8)

Two reasons I can think of:

what happens if you upload twice a file with the same name for different contacts? the hash allow to avoid overwriting
probably increase a bit the protection and privacy too, eg. by guessing and trying to download warren_buffet.jpg or bill_gates.jpg, we could know if you have some wealthy donors in your db

This being said, it's been there since forever and I never quite questioned it.

If it's for mass uploading contact images, you can probably just set the field into civicrm_contact and put the image at the right place, I remember having done something like that a while ago, it probably still works

as andy detailled, you need to touch a few more tables if you want to upload the file in a custom field

add a row to civicrm_file with the file name
add a row to civicrm_entity_file to link to the contact id, civicrm_file table & your custom table
update your custom table with the numeric id from the civicrm_file
upload the file into the right folder


How do I make tag sets searchable in Find Contacts? I'm pretty new to civiCRM and it feels like I'm missing something obvious. The tags that are in tag sets don't show up in the Find Contacts search. They show up in Advanced Search just fine. Is this just how tag sets work or is there a way to make them show up in both search options?
I'm using Civi 4.6.10 in Wordpress.

Matthew, welcome to the CiviCRM community.

Have a look at http://book.civicrm.org/user/organising-your-data/groups-and-tags/ - there's a section on using Tag Sets.

It does say "adding them creates an additional search field in the Basic Criteria section of the Advanced Search" indicating that they are not available in the Find Contacts search.


Why are public files in Joomla admin directory? I was attempting to lock down our Joomla admin folder with an additional Apache-level password, and discovered that there are some Civi resources under the admin folder that need public access (css, js, etc.). On the face of it, it seems to me this would be a bad practice (other public joomla resources do not seem to be under admin), but there are vast oceans of information that I don't know! Could someone explain (as briefly and simply as possible!) why these files are under www/administrator/components/com_civicrm/civicrm/ rather than under www/components/com_civicrm/ or such?

I suppose I should also say that I haven't knowingly put these resources under admin, so I am assuming they were placed there as standard Civi installation. If I've improperly configured Civi, then my question becomes: What did I do/not do to cause this?

I have found the same thing. I think there is a misalignment in the configuration, as the components settings file:

 * CIVICRM_UF_BASEURL - home URL for your site:
 * Administration site:
 *      define( 'CIVICRM_UF_BASEURL' , 'http://www.example.com/joomla/administrator/');
 * Front-end site:
 *      define( 'CIVICRM_UF_BASEURL' , 'http://www.example.com/joomla/');
 *
 */
if (!defined('CIVICRM_UF_BASEURL')) {
  define( 'CIVICRM_UF_BASEURL'      , 'http://www.xyc.com');

For the front end forms to work, it needs to be /administrator to load the resources, however the form then posts to this URL, which is not correct for unauthenticated users.

I am going to copy the relevant resources for now.


creating scheduled api using civix I am using civix to create a scheduled task with

civix generate:api --schedule Daily chiroContact assignAnimatorCourseResponsibleLabel

The files get created correctly, and the new api possibility is shown in the api explorer, however when I try and test it the result is

    {

"error_code": "not-found",
"entity": "ChiroContact",
"action": "assignanimatorcourseresponsiblelabel",
"is_error": 1,
"error_message": "API (ChiroContact, assignanimatorcourseresponsiblelabel) does not exist (join the API team and implement it!)"

}

The sheduled task also doesn appear in the list of sheduled tasks in the system settings. Am I doing something wrong in creating this task?

I think your action is way too long and possibly separated into a few words in your function name? Can you check?


User account picking up incorrect user name CiviCRM 4.6.2 / Wordpress

On the civi change log we have spotted a edits of contact records entered by one user are being recorded as edits by another user.  Any ideas on how this might happen, what can be done to stop it happening?

There are two main causes that I can think of.

The person doing the editing was doing it whilst logged in as the other person. Possible scenarios and suggested 'solutions' are:

shared computers where the other person didn't log out when they had finished and the editor didn't bother to sign in as themselves. Solution: Remind all concerned of the importance of logging out when finished and of using their own log in.
The editor is able to masquerade as the other person and was doing so when making the changes
Solution: Remind editor that they should not make changes whilst masquerading as someone else OR revoke their masquerade priviledges.
The editor knows the password of the other person and deliberately logged in as that user. Solution: Get the other person to change their password and keep it private.

The table that links wordpress user to civicrm contact record has become (or was for a while) corrupted so that the wordpress login for the editor is/was linked to the civicrm record for the other person.  (This could happen for a drupal-based site if the uf_match table was corrupted. I presume there is something similar in wordpress, but I don't really know.)


exporting custom data structure I'm looking for some recommendations.  I've inherited a CiviCRM instance with a quite complicated custom data structure, and I want to review and update it.  I was wondering if there were any tools or APIs that would help me export or visualize the data schema/fields for different object types?
The best option I can find is exporting all the fields for each type using the Export to CSV function, but that will require manually selecting hundreds of custom fields for each contact type in the field mapping GUI. UUUUggghhh! :-)
I've found the Data Explorer extension (https://civicrm.org/extensions/data-explorer) and am checking if that's a possibility, but that seems to have the same issues as the Exporter -- lots of manual selection.
Can anyone suggest a better way? Thanks!

You could start with API Explorer v4:

Set the Entity to CustomGroup and Action to get.
In the Chain section, set Entity to CustomField and Action to get.  The next box should autopopulate to {where: [[custom_group_id, =, $id]]}

Basic example
From there, you can limit the fields returned both for the CustomGroup and the CustomFields and maybe sort them.  Once that shows what you want, remove the Limit so see all the data.
Example with selected fields
From there, you can copy/paste the generated code to a php file and do what you like with the output.


After upgrading to 4.6.18, cannot enter credit card details in event registration We just upgraded our site at www.fremantlechamber.com.au to the latest version of Drupal and CiviCRM 4.6.18

Now when we try to register for an event, the credit card details are not appearing and noone can pay for registration.

Please help

Thanks

I had a look and can you entire billing block is indeed MIA.

Two thoughts:

1) get into the Event Registration Config and try re-adding the Payment Processor - re-save

2) check for errors in your ConfigAndLog/ when you load this form

EDIT - more thoughts:

3) check the Payment Processors their config - and create a (Test) Contribution page where you run a transaction with a fake credit card

4) (in general) check the Manage Extensions screen and look if there are any upgrades for your Payment Processor (of course this only applies to those which are not baked in core)


Importing contributions: "Expected one Contribution but found 25" I am getting an error when I import contributions.
I have successfully imported contributions before from other data sets.
This dataset is a little more rich and I have now added a 3 custom fields to contain the messaging options that the user can complete.
The initial mapping and basic checks pass. However at the step of the actual import, every record fails with the error "Expected one Contribution but found 25"
I have reviewed the mapping and can't see any obvious issues. I have searched stackexchange and the web with no result that seems to relate to my situation.
I would love to hear any ideas. I don't see any records in the CiviCRM log, though maybe there is some further switch I should be enabling to get more information.
In response to a comment, I enabled debugging and backtrace. I ran a test import, but no errors of any kind were thrown into the CiviCRM log in the ConfigAndLog directory. It does log other errors there, so I can only assume that it doesn't see this as an error of that kind. I continue to receive the "Expect one ... found 25" error in the front end output.
The problem occurs as I say in my "Answer" below when I try to use one of the existing fields to set "Contribution status". I assume and accept that the data is probably incorrect for the column in the db (though I can't find it), but the resulting error makes no sense. I'm fine with that but thought I'd share back into this space since asked and it might be helpful in clarifying the error that is thrown.
I am running 5.19.3 on WordPress 5.3

In the absence of clear error information, I went into trial and error mode.

I disabled each mapping in turn. In the end, I found it was the attempt to import "contribution status" that triggered the failure. It is likely that the contents didn't match required values in the database. Though, in this case, the error message seemed to have nothing to do with that. My previous experiences with similar problems generated more clear errors that the content of the field was invalid.


Is it possible to run CiviCRM on HHVM We use HHVM rather than PHP-FPM on Nginx because it is way faster and creates far less load per visitor. HHVM is incompatible with certain PHP that PHP-FPM (PHP 5.x) doesn't have a problem with, so apps sometimes need edits to make them work.

In our case, we use Civi inside WordPress. WordPress seems to work fine in HHVM, as does our testing with Drupal so far.

I can't find any references to CiviCRM's compatibility with HHVM.

Has anyone tried it? Gotten it working? Should we give up?

I have tested this and have duplicated the WSOD error.  The error I get in the hhvm log is Fatal error: Cannot access private property Civi\\Core\\Transaction\\Frame::$state  As I am not that familar with HHVM I cannot take it much further.

Jeremy, do you get the same issue with Drupal and CiviCRM?

I have been satisfied with PHP-FPM performance, so while I hate to give things up, that may be the quickest path to getting this to work.


Is my upgrade failing if the screen appears to hang We're on 4.7.3 on Drupal 7, and are being affected by some bugs that affect contributions made on behalf of an organisation and paid for by paypal.

When I attempt the upgrade to 4.7.5, the upgrade script says it has updated to 4.7.4 without problems, but then hangs on Begin upgrade to 4.7.5 message

See:

I left it for 5 minutes (the php max runtime was set to 3 minutes) and then hit refresh, it emptied - no text or progress.  Re-opening the upgrade script then says it failed the integrity check. I've rolled back to a backup for now.

There is no error in the HTTP error log, nothing seems to have run out of memory.

I'd be grateful for any help in how to set about diagnosing this issue!

Answer was patience - upgrade took 45 minutes.


Moving contribution page to a new campaign - consequences? quick question: Having a contribution page under campaign A.. We're creating a new campaign ("B") now but wish to use the same old contribution page.

How are the past records (donations+pcps) affected?

The contributions hold the campaign at the time they were made so not affected. PCPs created also keep the old campaign against them (using my memory here!). Any new PCPs or contributions will use the current campaign against the contribution page that initiated them.


Why is 4.7.7 CiviMail failing trying to insert a row into civicrm_mailing_recipient? To reproduce ...

Create a mailing that includes contact X as a recipient
Delete the email address of X
Send mailing

The job fails trying to send an email to X. Each time the job runs it queues emails to send to the same set of contacts (those 'before' X). Job never completes.

I suspect it's a side-effect of https://issues.civicrm.org/jira/browse/CRM-18345

See issue CRM-18543 and PR 8355.

CRM-18345 changed the behaviour of the foreign keys on civicrm_mailing_recipient when deleting civicrm_email or civicrm_phone. The email_id and phone_id columns are made NULL rather than the row being cascade deleted.

This means there can exist rows in civicrm_mailing_recipient where both these fields are NULL.

So the Mailing Job software needs to handle rows where BOTH email_id and phone_id are NULL.

I've supplied a patch that handles this case by ignoring such rows.


Flush system cache does not work during installation of Drupal Profile I am creating a distribution Drupal profile which is bundling CiviCRM and CiviCRM extensions.

Background

Currently, I am having an issue with extensions that CiviCRM settings, for example, Mosaico Extension is using CiviCRM settings for configuration templates, graphic engine etc so after Mosaico extension is completely installed, the Mosaico settings have not been set and you need to flush the system cache.

According to CiviCRM| document https://docs.civicrm.org/dev/en/latest/framework/setting/

  Your setting will not be active until you run flush all caches (e.g cv
  flush or drush cvapi System.flush)

The current version of CiviCRM, Drupal and the extension that are being used.

CiviCRM version 5.19.4
Drupal version 7.69
Mosaico version 2.3

Issue

When I am trying to flush the system cache via CiviCRM API, flush Cache directly via CRM_Extension_System class or calling cleanupCaches on the CRM_Core_config class. None of these is working.

civicrm_api3('System', 'flush');

\CRM_Extension_System::singleton()->getCache()->flush();

$config = \CRM_Core_Config::singleton();
$config->clearModuleList();
$config->cleanupCaches();

Is there a way to flush a system cache and load the configuration during Profile installation?

I have also tried to create settings after the extension is installed and got the error so I understand that the settings are not activated yet.

Haven't done that, but if the focus is on manipulating the content of the settings, then one of these might help:

Try adding calls to Civi::reset() and/or  CRM_Core_Config::singleton(TRUE,TRUE) to clear out any statics/singletons/thread-local caches.

Civi's headless unit-tests do this (via CiviTestListener). Note that one should only do it while Civi logic is _not_ active in the same thread -- e.g. it's OK to run when PHPUnit is doing setup/teardown because the statics/singletons/caches are essentially inert; but if one did this while running hook_civicrm_config or a Civi page-controller, then some active function on the call-stack may implicitly rely on them, so the behavior would be ill-defined.

Proactively initialize the settings (Civi::setting()->set($key, $value)) before activating the extension. Don't rely on the default values for the settings.
Try working with the SettingsManager (Civi::service('settings_manager')). This has its own flush() operation.

Since this is included in System.flush, I don't have high expectations... but it is imaginable that your use-case requires flushing with a different _sequence_ of operations.


Why is CiviCRM Upgrade so Complex? Upgrading CiviCRM is a painful process (18 steps) :

Of course, I admit the necessity to previously backup, put the site offline, disable some Modules, ...

But deleting all previous civicrm code files is very long, and downloading then unpacking, then transfering the new code files is very time consuming.
... and we do this twice : one for test, and one for good.

So, why :
- not to include l10n and sql inside the upgrade ?
- not to upgrade CiviCRM just like any other Drupal Module, or, at least, reinstall CiviCRM like any Drupal Module (copy-paste the tar.gz URL) ?

I have been dealing with upgrades a lot lately, and I have the process "down" so that it is very fast.  I am impressed with how fast I can do an upgrade.  The key is shell access - or something that mimics it - because using sftp is very slow.  That might be your problem.  Once I have the data backed up it basically goes like this:

ssh into the server and tar/gz (archive) the existing civicrm directory.  One command, 15 seconds or so.
upload the new version tar/gz.  This of course will vary greatly by internet connection speed, but generally only a couple of minutes or less.
delete the existing directory.  This is what's horrendously slow via most sftp programs I've used.  They usually do a recursive delete on each individual file and directory, and since there's a ton of them in CiviCRM it takes forever.  It takes 1 second in the shell.
Unarchive the new version.  Usually less than a minute.
run the upgrade script.

Very, very fast.

If you aren't a command line person - I'm not, actually - there are some ways around it.  Our systems all have Webmin installed as a helpful control panel, and it's Filemin file manager deletes directories as quickly as the shell commands do.  I also regularly use Cyberduck for SFTP work, and it has a built in tar function, so I can archive/unarchive just as quickly as from the command line.  So, even though I don't really use the command line I am getting the benefits.

I would add that if you are concerned about security the very LAST thing you would want to do is have excessive writable directories on your server, and most built in upgrade systems require these.  Don't give in.  You can reduce writable directories by not using those systems and save you many troubles down the road.


Is CiviCRM compatible with OU Campus (OmniUpdate) CMS I have a client currently using civiCRM and Drupal. They are interested in migrating their site content into OU Campus while still maintaining use of CiviCRM. Has anyone had any success with getting these two working. Is it possible?

Thank you,
-n

They can still run CiviCRM on a subdomain separate from the site, likely under Drupal since they already have that installed. See another answer to a recent question that asked something similar about a different system.


Does ModSecurity and CiviCRM play well together? I am thinking to add ModSecurity to the server (Wordpress 5.x/Apache2/Ubuntu 18) that is running CiviCRM to further augment the security.  Thought I thought I check on this forum on the experience of doing so and whether it is a good idea.  Thanks for your insights!

I've often run into trouble with shared hosts' use of ModSecurity, but those that are willing to tweak the rules have always managed to make it work.  Expect to do some testing!


How to set input mask for a custom field I want to record an identification number (only integer number) and it should only have 14 digits. I am thinking of something like this:
'--- --- --- -----'

Is it possible and how?
regards,
Guillaume

Not in the UI afaik. I would use the validateForm hook in an extension to validate the number of digits? Documentation on the hook is here: https://docs.civicrm.org/dev/en/latest/hooks/hook_civicrm_validateForm/


CKEditor Issue with 4.7.11 install Run a couple sites using Joomla 3.6.2 and Civi 4.7.10 - Did the upgrade tonight - all went well.
One site is having problems with CKEditor and the link tool.  Edit link or adding a new link just simply doesn't work. - it shows all options (Link,Anchor and Mailto) It is fine in my other site.
I can work around it by using the TinyMCE extension and changing editors.
Image is a picture of trying to edit an existing link - which shows up blank.  Choosing OK just copies any text you have in the link info box - does not make the link ..

Thoughts
Thanks

This resolved itself - could be a clear cache issue - not sure - but it is now closed


What does 'Enable global server wide lock for CiviMail' do? At Administer > CiviMail > CiviMail Component Settings, there is a setting called 'Enable global server wide lock for CiviMail'. What does it do? When it is a good idea for a site to have it and when it is a good idea for a site to have it on?

From the comments in CRM/Core/Lock.php:

   * @param bool $serverWideLock
   *   Should this lock be applicable across your entire mysql server.
   *   this is useful if you have multiple sites running on the same
   *   mysql server and you want to limit the number of parallel cron
   *   jobs - CRM-91XX

So basically if you are running multiple civicrm instances on one box and want to limit the number of mailing jobs happening across all instances. This was funded by NYSS and was applicable to their installation.


SYBUNT (some year but not this year) showing 2011 as this year When doing this option in civireport or LYBUNT (last year but not this year) Its showing this year as 2011.

everything else is showing the correct years...
why is this not?

The sample report instance has the filter saved at 2011. If you do a new create report from template it defaults to current year.

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


API permission check failed: CiviEvents Fails after update to 4.7.19 and 4.7.20 After updating to 4.7.20, when the Event Info Page is accessed, it generates the following error, "API permission check failed for Event/get call; insufficient permission: require access CiviCRM and access CiviEvent and view event info". If I roll the system back to 4.7.18 it works. Any suggestions on a fix or work-around are much appreciated.

I ran in to this on an inherited site. It fixed itself once I removed the permission for "access CiviEvent" (which i assume had been erroneously given by previous developers)

Once removed the other permissions worked fine.

Maybe this counts as a bug. Will raise up a level.


width of email field on contribution form Using a WordPress installation. Initially the contribution form shows an amount field and an email field. Is there a way to make the email field wider. Currently both are the same width. Inspecting the page it appears that both fields use the same style attribute. I would like the email field to be about twice the width of the contribution field.

Any suggestions would be appreciated.

One way to customize styling is by putting your custom CSS inside the css/extras.css file. But I'm not sure which page you mean. The front-end contribution page has different sizes (https://wpmaster.demo.civicrm.org/contribution-page/) and the back-end New Contribution form doesn't have email on it.


Where and how do I 'check Drupal permissions' or 'set Drupal permissions'? I find that I am often asked to 'check Drupal permissions' or 'set Drupal permissions' when, for example, I have added a new Component, like Civi Campaigns, Civi Cases, Civi Grants, or, have installed and enabled a new Extension.

But, if I am just getting started with Civi and Drupal, or have not changed my settings in awhile, I may not be sure what that means.

So, where and how do I check Drupal permissions or set Drupal permissions?

In CiviCRM , go to Administer -> Users and Permissions -> Permissions (Access Control) . Then , select Drupal Access Control .

You will see a long list of various options, and check boxes to enable permissions for Components, Extensions, etc for various Roles.

Scroll down the list until you see the Component, Extension etc that you have installed and enabled in the list. Then, select the checkbox to add a permission to a Role.

In the screenshot below, I've added permissions for the Administrator role for the ReportPlus extension I just added.

Save your changes, et voila! You should now see the new permissions for the Administrator role or for whichever role to which you have added new permissions.


Custom Top Donors (Contributions) report with the name of Relationship Managers Followed the instructions on civix and built an extension, copied the Top Donors report and set up the new template. Now I see the original report. Need to modify the php so that I can pull in the name of the Relationship Managers from Relationships. Any pointers on this? Thanks much.

Ok here's what I do when faced with situtations like this: check how Eileen does it:

https://github.com/eileenmcnaughton/nz.co.fuzion.extendedreport

At times I'll extend one of her extended reports; it's a very well written extension.


Error With CiviCRM Volunteer I am getting the following error in CiviCRM:

M_Volunteer_Permission::check($permissions) should be compatible with CRM_Core_Permission::check($permissions, $contactId = NULL) in /home/xxxxx/public_html/wp-content/uploads/civicrm/ext/org.civicrm.volunteer/CRM/Volunteer/Permission.php on line 151

No idea why.

CiviCRM Version:  5.13.4
WP Version:  5.2.1
PHP Version:  7.2

This has been fixed now but the new version is still not available. You can either apply the patch from here or replace the extension by downloading from here.

Thanks

Pradeep


Is this Wordpress Critical Error after Upgrade to 5.24.1 serious? Upgrading from 5.23.3 to 5.24.1 - I got a critical error after the upgrade. this is what I can find from the wordpress log around the time I ran the upgrade. (wordpress 5.3) The upgrade was successful - not sure if I need to respond to these errors.

[06-Apr-2020 18:42:36 America/New_York] PHP Notice:  Undefined index: CRM_Upgrade in /home/tarabnyc/www/www/wp-content/plugins/civicrm/civicrm/CRM/Queue/Service.php on line 120
[06-Apr-2020 18:43:33 America/New_York] PHP Fatal error:  Uncaught Error: Class 'CRM_Civirules_Utils_Upgrader' not found in /home/tarabnyc/www/www/wp-content/uploads/civicrm/ext/org.civicoop.civirules/civirules.php:106
Stack trace:
#0 /home/tarabnyc/www/www/wp-content/plugins/civicrm/civicrm/CRM/Utils/Hook.php(286): civirules_civicrm_managed(Array)
#1 /home/tarabnyc/www/www/wp-content/plugins/civicrm/civicrm/CRM/Utils/Hook/WordPress.php(139): CRM_Utils_Hook->runHooks(Array, 'civicrm_managed', 1, Array, NULL, NULL, NULL, NULL, NULL)
#2 /home/tarabnyc/www/www/wp-content/plugins/civicrm/civicrm/Civi/Core/CiviEventDispatcher.php(86): CRM_Utils_Hook_WordPress->invokeViaUF(1, Array, NULL, NULL, NULL, NULL, NULL, 'civicrm_managed')
#3 /home/tarabnyc/www/www/wp-content/plugins/civicrm/civicrm/vendor/symfony/event-dispatcher/EventDispatcher.php(184): Civi\Core\CiviEventDispatcher::delegateToUF(Object(Civi\Core\Event\GenericHookEvent), 'hook_civicrm_ma...', Object(Civi\Core\CiviEventDispatcher))
#4 /home/tarabnyc/www/www/wp-content/plugins/civicrm/civicrm/vendor/symfony/event in /home/tarabnyc/www/www/wp-content/uploads/civicrm/ext/org.civicoop.civirules/civirules.php on line 106

This is a regression bug since 5.22.1. Just submitted PR to core, can you please try upgrading after applying patch? If the patch works it would be helpful to add your QA results on PR to help the PR to get merged in next release.

Thanks

Pradeep


Contribution Summary can't be filtered by payment method I wonder why Contribution Summaries can be filtered on pretty much everything but not on the payment method, even though payment method (check, bank, cash...) is a mandatory input...
Do I miss something and there is a way to do it?

I suggest you use the Contribution Details Report rather than the Summary Report.  In the "Columns" tab, choose "Payment Type".  In the "Sorting Tab" select "Choose a Payment Method" as the sorting method, plus any other columns you wish to sort by.

Hope this helps.


My mail_report: Finished execution of Mail Reports with result: Failure, Error message: is not of type String I'm running civiCRM 5.30.0 on Drupal 7.
I've designed a report to be sent weekly. To test it, I manually ran mail_report and got the detail below. Where is type STRING required?

Parameters raw (from db settings):
instanceId=[ID of report instance] required
format=[csv or print] optional-output CSV or print-friendly HTML, else PDF
Parameters parsed (and passed to API method):
a:3:{s:7:"version";i:3;s:10:"instanceId";s:32:"[ID of report instance] required";s:6:"format";s:67:"[csv or print] optional-output CSV or print-friendly HTML, else PDF";}
Full message:
Finished execution of Mail Reports with result: Failure, Error message:  is not of type String

If you run it manually from the scheduled jobs screen you need to edit the mail report entry there and set those parameters. Normally you would set them in the specific command you use for cron for a specific report.
See https://docs.civicrm.org/user/en/latest/initial-set-up/scheduled-jobs/#job_mail_report. For getting the instance id that's a good point. There's a couple ways but one is to go to Reports -> All Reports and then hover over the View Results link and in the url that appears in the browser status bar it's the number after the word "instance", e.g. if it says civicrm/report/instance/5?force=1&reset=1 then the id is 5.


Adding Notes to Profile Summary I'm new to CiviCRM and am trying to make it very streamlined for my team. They mentioned that having the Notes (adding ability and listng previous notes) on the Contact Profile's Summary tab would be best for quick access. I'm wondering if this is possible?

You could look at this extension which lets you modify the layout of the Contact screen, and in doing so lets you pull in Dashlets from Reports
The problem i can see though it that there is no obvious report builder for Notes.
Depending on your CMS you could potentially do this via a CMS tool such as Views in Drupal, and then add the Block as a Dashlet on that Summary Layout tool.
I have not tested the above but it is one concept to rule in/out. Otherwise a small extension that modifies the templates involved may give you what you need but would require someone with developer skills. Good luck.


Upgraded to 5.4, Donor Report fails with bad sql. Status_id is missing Upgraded from 4.6.38 to 5.4.0 in a test env.  The Donor Report (Summary) and (Detail) both fail on this piece of sql

 SELECT id, title
 FROM civicrm_batch
 WHERE item_count >= 1
 AND status_id !=
 ORDER BY title

Clearly the status_id is missing.

I then upgraded to 5.5.0 hoping maybe that would fix it, nope.

civicrm_batch has no rows so I'm guessing it queries it for some batch id gets back null and sticks that into the query.

I tried to create some batches both open and closed for all the possibilities I think there are.  That didn't help.

This error will occur if you have missing/inactive Batch Status. To check navigate to CiviCRM >> Administer >> System Settings >> Option Groups. Search for Batch Status and then click on options link besides it.

You should see 'Data Entry' if not then you will need to add it as it is required by CiviCRM or enable it if its disabled.

  Note from Paul:  It existed and was enabled; however, it had a value of 0 as did Reopen and Export. I looked at a demo and saw they
  have other values. Just hitting the Edit in order Data Entry, Reopen,
  Export and saving caused them automatically have the right value. That
  fixed the issue. Add this info to your answer and I'll check it and up
  vote it.

HTH

Pradeep


Individual Custom Fields in Participant List (WordPress) I have a general participant list for a set of events.

I need to add an Individual Custom Field, but this field is not accessible in the Event report column selection.

Are there any plugins or workarounds to access these fields in the Participant Report?

Install ExtendedReport by Eileen, It provides additional reports with lots of options.
Or make sure you have 'Is this Field Searchable?' option checked for the custom field that you want on the report. If not then edit the custom field and check the option 'Is this Field Searchable?'.
Thanks
Pradeep


Fatal error: Call to undefined function ctype_space() Has anybody else seen this fatal error after upgrading to CiviCRM 5.3.2? It appears when trying to manage groups or create a new group in "Contacts" and I don't think we had this under 5.3.0.

The full error is:

Fatal error: Call to undefined function ctype_space() in /usr/local/www/wordpress/wp-content/plugins/civicrm/civicrm/packages/IDS/vendors/htmlpurifier/HTMLPurifier/Token/Text.php on line 26

We are running Wordpress 4.9.7 and PHP 5.6.37.

Any ideas and help is highly appreciated! Thank you!

EDIT1:

Thanks to @Demerit I have run a couple of tests, and here are the results:

# pkg info php56-ctype
php56-ctype-5.6.37
Name           : php56-ctype
Version        : 5.6.37
Installed on   : Fri Jul 27 16:42:39 2018 UTC
Origin         : textproc/php56-ctype
Architecture   : FreeBSD:11:amd64
(...)

So the ctype extension is installed.

# php --ini
Configuration File (php.ini) Path: /usr/local/etc
Loaded Configuration File:         /usr/local/etc/php.ini
Scan for additional .ini files in: /usr/local/etc/php
Additional .ini files parsed:      /usr/local/etc/php/ext-18-session.ini,
/usr/local/etc/php/ext-20-ctype.ini,
/usr/local/etc/php/ext-20-curl.ini,
/usr/local/etc/php/ext-20-filter.ini,
(...)

So the ctype extension seems to be activated. But now: when I use print_r(get_loaded_extensions()); I get

Array ( [0] => Core [1] => date [2] => ereg [3] => libxml [4] => pcre [5] => Reflection [6] => SPL [7] => hash [8] => session [9] => cgi-fcgi [10] => standard [11] => curl [12] => filter [13] => ftp [14] => gd [15] => mysqlnd [16] => json [17] => mbstring [18] => mysql [19] => mysqli [20] => openssl [21] => PDO [22] => SimpleXML [23] => tokenizer [24] => xml [25] => zip [26] => zlib [27] => pdo_mysql [28] => mhash )

So here it doesn't seem activated at all. And when I do phpinfo(); ext-20-ctype.ini doesn't appear in the list of parsed .ini files either. So again, it doesn't seem activated.

How is it possible that PHP provides contradictory info on the command line and via web browser? May this be linked to the fact that my CiviCRM and PHP is running in a FreeBSD jail?

Thank you for any ideas you might have!

I solved this thanks to the friendly help above. There were indeed php.ini's inside and outside of the jail, but they weren't really the problem (ctype was activated there). Instead, I had to restart php-fpm to make PHP notice them. Not sure why but it did the trick.


Why can't I have CiviEvents without dates? Incremental and iterative planning and development is the modern way. In CiviEvent I can't create events that have no date. To me that would be a first step in a planning process, creating the event with a brief description, then later add a date and more information.

I could even see uses of having public events without dates. That creates visibility into what might be coming.

It makes sense to me that you might want to do it that way, unfortunately CiviEvent does not allow it as it is now. Can you add your enhancement request on the CiviCRM issue tracker? (https://issues.civicrm.org/)


How do I search for the exact string match using CiviCRM API How do I perform Contact GET for the contact with the exact display name which will return only contacts with that exact display name?

Say I create two users xyz and xyzA

$result = civicrm_api3('Contact', 'create', array(
  'sequential' => 1,
  'contact_type' => "Individual",
  'display_name' => "xyz",
));

$result = civicrm_api3('Contact', 'create', array(
  'sequential' => 1,
  'contact_type' => "Individual",
  'display_name' => "xyzA",
));

The flowing get request always returns both contacts (xyz and xyzA)

$result = civicrm_api3('Contact', 'get', array(
  'sequential' => 1,
  'display_name' => "xyz",
));

I want my API call to return only users with a display name xyz.
How would I do this?

There is an option to turn off Automatic Wildcard, but that would affect the entire website and all the users. Is there a way around this?

The Contact API is non-standard in APIv3; a major goal of APIv4 is to remove these quirks.  The behavior you're seeing on Display Name is non-standard.  It also seems that a lot of the other operators (e.g. "LIKE") don't work on Display Name.

If you can, you can search on First Name and/or Last Name, neither of which display the problem described here.


Query to get a list of contacts not tagged with a tag, but the user has multiple other tags I'm building a View that lists contacts.  The View needs to list all contacts that are not tagged with a certain tag.  The problem is if a contact is tagged with another tag, it will still show in the list, because of the LEFT JOIN to the tag table...In this example I'm filtering the list to one contact for simplicity's sake.
The contact in question has two tags.  One of them is the one I want to filter out.  Yet the contact still shows in the list because it has another tag....

I also want to include contacts in the list that have no tags at all, thus the

part of the query ( (civicrm_tag.id IS NULL ) OR (civicrm_tag.id NOT IN  ('35')) )

SELECT civicrm_contact.id AS id, civicrm_contact.display_name AS civicrm_contact_display_name
FROM
{civicrm_contact} civicrm_contact
LEFT JOIN {civicrm_entity_tag} civicrm_entity_tag ON civicrm_contact.id = civicrm_entity_tag.entity_id AND civicrm_entity_tag.entity_table = 'civicrm_contact'
LEFT JOIN {civicrm_tag} civicrm_tag ON civicrm_entity_tag.tag_id = civicrm_tag.id
WHERE (( (civicrm_contact.id = '21033') )AND( (civicrm_tag.id IS NULL ) OR (civicrm_tag.id NOT IN  ('35')) ))
LIMIT 10 OFFSET 0

I don't know how this would translate to Drupal Views, but here is the SQL to do it:

SELECT
  contact.id
FROM civicrm_contact contact
LEFT JOIN civicrm_entity_tag et ON
  et.entity_table = 'civicrm_contact' AND
  et.entity_id = contact.id AND
  et.tag_id = 1 /* ID of the tag you want to exclude */
WHERE et.id IS NULL;

Note that et.tag_id = 1 must be in the ON clause and not in the WHERE clause.