You can get an HTML snippet for a Profile and include as an iframe. This option should show under 'more' to the right of the profile listings.

  HTML Form Snippet - If you want more control over form layout, or want to add Profile input forms to non-CiviCRM blocks, pages and/or sites...click the HTML Form Snippet action link for a Profile below - and copy and paste the HTML form code into any web page.

NOTE: there is now a setting in Administer => System Settings => Misc to enable this.


CIVICRM Create API for event participate

Md Maidul Islam,

Bit difficult to understand from your question what you want to achieve.

1 - Do you mean to add participant for an event? Then you can use Entity = Participant and Action = Create api

$result = civicrm_api3('Participant', 'create', [
  'event_id' => 3,
  'contact_id' => 51,
]);

2 - Do you mean to add participant for an event with all contact details in one call ? Then you can use Entity = Contact and Action = Create chain api

$params = [
    'display_name' => 'batman',
    'contact_type' => 'Individual',
    'api.address.create' => [
      'contact_id' => '$value.id',
      'location_type_id' => 6,
      'street_name' => 'Ambachtstraat',
      'street_number' => '23',
      'street_address' => 'Ambachtstraat 23',
      'postal_code' => '6971 BN',
      'country_id' => '1152',
      'city' => 'Brummen',
      'is_primary' => 1,
    ],
    'api.email.create' => [
      'contact_id' => '$value.id',
      'location_type_id' => 'Main',
      'email' => 'api@a-team.com',
      'is_primary' => 1,
    ],
    'api.phone.create' => [
      'contact_id' => '$value.id',
      'location_type_id' => 6,
      'phone' => '(123) 456-7890',
      'is_primary' => 1,
      'phone_type_id' => 1,
    ],
    'api.participant.create' => [
      'contact_id' => '$value.id',
      'event_id' => 2,
      'status_id' => 1,
      'role_id' => 1,
      'register_date' => '2007-07-21 00:00:00',
      'source' => 'Online Event Registration: API Testing',
      'custom_1' => 'custom string',
    ],
  ];
$result = civicrm_api3('Contact', 'create', $params);

3 - Do you mean to get participant of an event with all contact details in one call ?

   $params = array(
    'contact_id' => 2,
    'event_id' => 3,
    'api.contact.get' => 1,
    'api.email.get' => ['contact_id' => '$value.contact_id'],
    'api.address.get' => ['contact_id' => '$value.contact_id'],
    'api.phone.get' => ['contact_id' => '$value.contact_id'],
  );

HTH

Pradeep

Note: The params build above are not tested, but its the syntax on how one can build params when using chain api.

HTH

Pradeep


Honoree Information - notify another person

You can't do it without doing some custom work.  The profile is going to create one contact for the honoree, and unfortunately, that's that.  One approach is to have a custom field for the information of who to notify, and then have a report of folks where that's set.  A staff member (who would presumably need to mail things anyway) could check that report and set up a new contact manually.

We have a client who wanted something like this, including automatically sending an email to the other person.  We built a custom extension to do it, and it might be a good starting point for abstracting it into an extension for others.


Unfortunately, my last post affirming that the problem is real and still present in the current version was deleted because the moderator thought it would be better as a 'comment' without realizing that commenting is disabled for most users. I'm not yet certain of the cause but there are a few fields in the civicrm_mailing table. In particular, the reply_id field (and a few other suspects) look like they may not be getting updated properly.
Nicholai, I'd have been happy to post this as a comment if you would be kind enough to enable commenting for individual's with a reputation of less than 50.


Look into CiviCase for planning and tracking each animal's adoption appointments, vet visits, groomings, etc.

CiviEvent has integrated location/venue components that might be useful in organizing your fostering and other volunteer activities.

CiviContribute would be my first choice in setting up adoption applications, complete with payment tracking and reporting.

Short answer, yes: it can be done with CiviCRM on a WordPress site. Might even find the BuddyPress plugin useful in tandem with Civi to energize social communication and networking among volunteers and related animal advocates.

Good luck Mark!


Problems installing CiviCRM under Drupal 7 on Windows?

In windows to change the folder permissions use attrib -r path\to\sites\default (can be a relative or absolute path).


Date picker not appearing in 4.7.23 and Joomla 3.7.5

The problem appears to be a misconfiguration on your site which results in javascript files failing to load.
Inspecting the source of http://www.cahpi.ca/demodate shows a list of scripts which should be loading. For example, <script type="text/javascript" src="/components/com_civicrm/civicrm/bower_components/jquery-ui/jquery-ui.min.js?r=YiBsO"> but trying to open that url, http://www.cahpi.ca/components/com_civicrm/civicrm/bower_components/jquery-ui/jquery-ui.min.js?r=YiBsO results in a redirect to the homepage.
That's what you need to fix.


Leaflet map + Drupal Views + 400 CiviCRM contacts data = performance?

We think the answer is that the performance issues are (very likely) in the custom code/tpls - that get invoked as well. We've determined that the Views query itself was not the issue.

https://stackoverflow.com/questions/535020/tracking-the-script-execution-time-in-php


Adding URL path to webform stops contact prefill - why?

Let's take out CiviMail from the equation -> are you able to do this:


Existing organizations getting updated when new person signs up with the same org name

I am wondering if you really want the membership form to be "on behalf of" an organization.

That feature is designed to be used when the organization is to be the member, (eg for a trade association) but, because organizations can't fill in forms, a person has to sign up "on behalf of" the organization. The organization can only have one membership, so when someone else comes along to sign up 'on behalf of' the organization they are effectively renewing that membership and will be added to that organization.

It sounds like you want the individual to have the membership, but you want to know that they belong to a particular organization.  If that is the case then your memberships should be for individuals, you should not let contacts sign up "on behalf of organizations" and you should include the "employee of" field in the profile on your membership form so that you have a relationship created between the organization record and the individual's record.


Update smart group counts errors with syntax error (AND instead of WHERE in sql)

I know this is old but it seems if there is a Smart Group that has no contacts it will throw up an error, at least, it does in my instance. I just disabled that Smart Group and the Update link doesn't throw a syntax error any more.


In this case you'd normally add various activity types to that case. I.e. create an activity type Expenses Claim and add that.


Dashlets not available to be added to Dashboard

If I recall correctly, this is down to some peculiarity of the dashlet permissions.  If you go to the Access tab of the report in question, you'll see two ways to set the permissions (see screenshot below).  However, I believe only the "permission" setting will control access to the dashlet.  Try setting both the Role ("Board Member") and the permission (to any permission the board members have) and you should be good to go.


How to link to the CiviEvent registration page from a node field using entity reference

A more elegant approach would be to use field formatters, in a module, e.g. as below. The advantage with this would be that it works with multiple values and automatically disappears once the registration is closed. You could make it do other things when the registration closes also.

/**
 * Implements hook_field_formatter_info().
 */
function mymodule_field_formatter_info() {
  return array(
    'mymodule_civievent_id_register' => array(
      'label' => t('CiviEvent Registration Button'),
      'field types' => array('entityreference'),
    ),
  );
}

function mymodule_field_formatter_view($entity_type, $entity, $field, $instance, $langcode, $items, $display) {
  $element = array();

  switch ($display['type']) {
    case 'mymodule_civievent_id_register':
      civicrm_initialize( );
      foreach ($items as $delta => $item) {
        try{
          $event = civicrm_api3('Event', 'getsingle', array('id' => $item['target_id']));
        }
        catch (CiviCRM_API3_Exception $e) {
          // break;
        }
        if ( time() <= strtotime($event['registration_end_date']) ) {
          $element[$delta] = array(
            '#markup' => l('Register','civicrm/event/register',array(
              'attributes' => array('class' => array('button-like')),
              'query' => array('id' => $item['target_id'],'reset' => 1)
            )),
          );
        }
      }
      break;
  }

  return $element;
}


How to change or add a header to the "Print PDF Report" action

If you go to the "Title and Format" tab on the report, you can edit the html for the Header and Footer. The default footer has an image in the footer. Its in the documentation at https://docs.civicrm.org/user/en/latest/reporting/set-up/


Include PDF welcome package attachment with email receipt

You can set up Scheduled Reminders to fire x hours after Membership Start/Join Date - and specify which membership types these relate to.

You should therefore either be able to attach the PDF to these, or, better in many cases, provide a link to the PDF so the attachment isn't part of the email.


Another way of accessing Merge is from any Search function (based on Contacts eg Find, Adv Search, Quick Search). Eg click in QuickSearch, hit Enter (gives you all Contacts), select any 2 Individuals, in Actions chose Merge, this gives you a url like this (but without the cool arrows Chris had)

civicrm/contact/merge?reset=1&cid=2&oid=3

As a further answer, if you have the paired IDs in an external spreadsheet, then use the CONCATENATE function to join together all the bits as a hyperlink, then you should be able to just click through to the merge url for each pair.


How can I set a custom field based on membership in a smart group?

In your own cron job you could reload the cache for groups by calling civicrm_api3_job_group_rebuild() (https://github.com/civicrm/civicrm-core/blob/master/api/v3/Job.php#L629), then cycle through the group to fill your custom field.


I take it the video training is not what they are logging in to, but rather the CiviCRM system. There is no 'limit' but there will be server constraints. Depending on your server config, if you have 50 users and they all click on a complex query (such as an Include/Exclude Smart Group) then you may see smoke coming out of the screen ;-)

But fundamentally there is no limit to logged in users (which is a CMS issue rather than a CiviCRM issue anyway)


SQL to unlink contacts and drupal accounts

The table you are looking for is civicrm_uf_match with the following structure

CREATE TABLE `civicrm_uf_match` (
  `id` int(10) unsigned NOT NULL AUTO_INCREMENT COMMENT 'System generated ID.',
  `domain_id` int(10) unsigned NOT NULL COMMENT 'Which Domain is this match entry for',
  `uf_id` int(10) unsigned NOT NULL COMMENT 'UF ID',
  `uf_name` varchar(128) COLLATE utf8_unicode_ci DEFAULT NULL COMMENT 'UF Name',
  `contact_id` int(10) unsigned DEFAULT NULL COMMENT 'FK to Contact ID',
  `language` varchar(5) COLLATE utf8_unicode_ci DEFAULT NULL COMMENT 'UI language preferred by the given user/contact',
  PRIMARY KEY (`id`),
  UNIQUE KEY `UI_uf_name_domain_id` (`uf_name`,`domain_id`),
  UNIQUE KEY `UI_contact_domain_id` (`contact_id`,`domain_id`),
  KEY `I_civicrm_uf_match_uf_id` (`uf_id`),
  KEY `FK_civicrm_uf_match_domain_id` (`domain_id`),
  CONSTRAINT `FK_civicrm_uf_match_contact_id` FOREIGN KEY (`contact_id`) REFERENCES `civicrm_contact` (`id`) ON DELETE CASCADE,
  CONSTRAINT `FK_civicrm_uf_match_domain_id` FOREIGN KEY (`domain_id`)  REFERENCES `civicrm_domain` (`id`)
 )

So the SQL statement to delete every link except the admin user is:

delete from civicrm_uf_match
where uf_id !=1

The batch found at Administer -> Users and Permissions -> Synchronize Users to Contacts brings them back. But better try this first on a test instance.


I notice this: https://github.com/civicrm/civicrm-core/pull/17312 added some nice new callbacks, but since it didn't actually remove the old ones, I suspect this is only affecting Drupal 8 installs that don't have the extern/ directory working.
The key is that these emails are going out with the following at the end of the html:
<img src="https://blackflysolutions.ca/libraries/civicrm/core/extern/open.php?q=12345" width='1' height='1' alt='' border='0'>

In other words - the new callback is not being used when generating the civimail.
After more digging, I found this:
https://github.com/civicrm/org.civicrm.flexmailer/issues/65
Conclusion: update your flexmailer to "master" until there's a new release.
Also: upgrading civicrm to 5.29.1 also fixes it - that release pulls in a new flexmailer.


Turns out this was caused by some server settings by my hosting provider (apparently they did some changes to the firewall). They managed to fix it and it seems to be working fine.


Change civicrm combobox value from the code

The widget is select2 3.5. But you don't need to interact with it directly. Find a selector for the underlying <select> element in the dom, set it's value, and then fire the change event. E.g.

CRM.$(function($) {
  $("#country-1").val(val).change()
});

Note that you should use CiviCRM's copy of jQuery and not the WP copy. So the above code uses CRM.$ instead of jQuery. Using the wrong copy of jQuery would make things weird as change events would appear to have no effect, etc.


Recommended way to deal with delete action in a page?

The way I did it

In my most recent extension with a fair amount of CRUD happening via the UI, I used a different form at a specific URL (civicrm/sms/conversation/confirmdelete) for deleting. This gave the  user the chance to see what they were deleting and confirm it.

I then set the context in preProcess of that form, deleted the entity in postProcess, and let the controller handle redirection.

$this->context = CRM_Utils_System::url('civicrm/sms/conversation/view', "id={$this->conversationId}");
$this->controller->_destination = $this->context;
$session->pushUserContext($this->context);

IIRC, it was setting $this->controller->_destination = $this->context; that enabled the magic to happen in postProcess, and mean that I didn't have to add any calls to CRM_Utils_System::redirect().

FWIW I generalised this form to allow it to delete any of the entities that my extension was creating.

See the form here:
https://github.com/3sd/civicrm-sms-conversation/blob/master/CRM/SmsConversation/Form/ConfirmDelete.php

Is this the CiviCRM way?

Since I wasn't sure how 'CiviCRM' this method was, I just had a quick look at how we handle deleting contacts and membership types.

Contacts

For contacts, the URLs look as follows:
civicrm/contact/view/delete?&reset=1&delete=1&cid=2 which maps to CRM_Contact_Form_Task_Delete, i.e. a special form, just for deleting contacts, which (although I haven't looked in details) seems to be a bit like what I did.

Membership types

civicrm/admin/member/membershipType/add?action=delete&id=1 maps to CRM_Member_Form_MembershipType. Looking at the class and its associated template

preProcess sets an appropriate context (this is where you would put your URL to your 'page listing stuff', I think).

$url = CRM_Utils_System::url('civicrm/admin/member/membershipType', 'reset=1');
$session->pushUserContext($url);

It also assigns the action to the template

$this->assign('action', $this->_action);

buildForm checks to see if this is a delete action, and if so, just returns, since it doesn't need to add any form elements

if ($this->_action & CRM_Core_Action::DELETE) {
  return;
}

postProcess does a similar check

public function postProcess() {
  if ($this->_action & CRM_Core_Action::DELETE) {
    try {
      CRM_Member_BAO_MembershipType::del($this->_id);
    }
...

And the template has a similar if else

{if $action eq 8}

    {ts}WARNING: Deleting this option will result in the loss of all membership records of this type.{/ts} {ts}This may mean the loss of a substantial amount of data, and the action cannot be undone.{/ts} {ts}Do you want to continue?{/ts}

 {include file="CRM/common/formButtons.tpl"}

{else}

So what is the right way?

No comment :) You decide.


Using an External (custom) Table in a Custom Report

Check out an example here - this is a report that joins tables the extension creates/maintains with other civicrm core tables to produce this report:

https://github.com/jake-mw/CDNTaxReceipts/blob/master/CRM/Cdntaxreceipts/Form/Report/ReceiptsIssued.php


Is there a simple way to import recurring SEPA mandates that have been processed outside CiviCRM previously and should now be managed using CiviSEPA?

Indeed there is not a standard importer for SEPA mandates. I have migrated SEPA mandates a few times and I use the SepaMandate createfull API. That will create the mandate and the recurring contribution.

If you then want to import actual payments you should fill the column contribution_recur_id to ensure they are linked to the mandate.


How to remove contacts without affecting events attendance data

First of all: there is NO way in which you can delete contacts without affecting events attendance data.

I would try in a test environment to trash CiviCRM contacts that have attended events and check if you still see what you want to see.
(And also it will help if you explain what you mean by attendance data)


How do I create multiple records fieldsets for contacts?

When you create the custom field group, you select Contact, and then click anywhere and you should see a field pop in to view re 'multiple

See

And once you have added the Fields too, then you should see something like  on a contact record. (Grabbed before demo gets flushed)


Assuming you're using Views - [noticed the tag]! You're definitively on the right track! Drupal Views integration is an extremely powerful way to get more out of your CiviCRM (literally!).

So to handle this add a Filter in Views to not display such NULL results. Here's an example where I want to make sure that addresses without a Latitude or Longitude do NOT get plotted on a Map:


How to build a Real Size Drupal+Civi Test Configuration?

Your error doesn't indicate a problem with your database - and it does sound like you've copied them correctly.  This error indicates that you have a missing file in your file system.  Is the webform module missing on your test site?  Or perhaps the test site's webform module isn't the same version?

You should also clear your Drupal cache on the test site.


how to configure outbound email as gmail

Configuring CiviCRM SMTP for using Google Mail's SMTP services:

SMTP Server:     ssl://smtp.gmail.com
SMTP Port:       465
Authentication:  Yes
SMTP Username:   <your valid Google mail username>
SMTP Password:   <your valid Google mail password>

Finally, you likely need to tell Google that you wish to allow this level of access. See here: support.google.com/accounts/answer/6010255?hl=en


How can I alter next value of membership id (which would be auto incremented)?

This is more of mysql than CiviCRM. You will need to reset the AUTO_INCREMENT value for that table.

ALTER TABLE civicrm_membership AUTO_INCREMENT= 10001

Thanks
Pradeep


How can I include pay-later contributions in a widget thermometer?

This is actually easy, but totally hidden...

At the very end of the code for your widget, find the last <script> tag, which looks something like this:

<script type="text/javascript" src=""></script>

where  is a very long URL.
Modify this URL by adding &includePending=1 to the end.
Paste your modified widget code over the old widget code wherever you are using the widget.
Observe that pending contributions now affect the thermometer total, even contributions which have already been made.


CiviPoints - Basics on how to configure and use this extension

Response from the developers:

If you want to create a new category of points, this is in the option group "Points Type". Editing option groups can be found somewhere in your admin menus.

A separate points tab will show for each type of points- but only if that contact has previously been granted some points of that type. That can initially be done with the "Grant Points" item in the Actions menu. The points tabs, when visible, also have a "Grant Points" button.

Various permissions are currently required to do stuff with points. The tabs I think require "view all contacts" and granting or deleting require "edit all contacts". With this permission, "Grant Points" appears in the Actions menu. This isn't ideal, perhaps it should check ACLs too but I can't remember how to do this.


What is recommended using Drupal web services or CiviCRM APIs

I think that you should call the CiviCRM API directly. This allows you direct access to the CiviCRM system.

If you use Drupal Web Services you still would need to wrap the services around CiviCRM API calls (or direct calls if needed).

So Drupal Web Services just adds additional complexity to something that the CiviCRM API does an excellent job of all ready.  Just use the CiviCRM API services.


Mass Deleting Scheduled and Sent Mailings, Drafts, etc

This does not exist in the UI currently. However, it does seem like a good idea to have a script that deletes OR archives mailings that are greater than N months / years old. So i'd recommend writing a api job that does the needful.

Approx steps would be:

a. Create a new delete/archive mailing job taking parameters like list of ids or mailing delivered before date XXX

b. Check and ensure that the mailing delete api deletes all the right tables. Most of the deletion is done by mysql via cascaded relationships. At a quick glance, the api delete does not seem to handle file attachments

c. Use the API from item b to implement the scheduled job

Please do share your extension so others can benefit


what type of protocol and api connection is used for authorize.net

CiviCRM will communicate with AuthorizeNet using whatever versions of TLS are enabled on your server.

To see if your server is using TLS 1.2, go to https://www.ssllabs.com/ssltest and put in your url

in the Configuration section of the report it will list the TLS versions supported.


Is a contribution always a donation or could it be a receipt from other(s) to one Member or contact?

Hard to be sure I quite get the question but you can apply a Soft Credit to imply that a payment came in from one contact  but should be recorded for another.

Also, you can have one Contact purchase a membership "on behalf of" an organisation.

Best that you clarify what you are trying to do by editing your question of neither of my points are helpful.


Sounds like you're hitting CRM-21764.  A patch has been submitted upstream; you can apply it now or wait for the Wednesday release, which contains it.


Hopefully you have already found the developer documentation at https://docs.civicrm.org/dev/en/latest/ alongside the other documentation at https://docs.civicrm.org/

The chapter on civix is at https://docs.civicrm.org/dev/en/latest/extensions/civix/

If you have specific questions after reading the documentation then ask here.


How can I add additional clients to a case?

From a comment by Coleman on June 18, 2015 regarding a question at civicrm.stackexchange.com/.../module-or-extension-to-use-for-tracking-agreements

> You can setup CiviCase to enable multiple clients per case, by editing
> your xml/configuration/Settings.xml file. Set
> <AllowMultipleCaseClients>1</AllowMultipleCaseClients>


Are there potential problems with per-subdomain installs?

I have done 1 CiviCRM per subdomain in a big project. About 20 separate subdomains with their own CiviCRM.

If settings are all correct then there is no side effect. They all just work.
With copying a CiviCRM to another Drupal instance (subdomain or not), you need to think about

the connection between Drupal users and CiviCRM contacts
the CiviCRM table settings in settings.php
the user uploaded files, you probably want to copy all to 2nd CRM

Those subdomain Civis all handle their own SMTP. No issue there either.

I don't know CiviSMTP, maybe you need an account per subdomain, maybe they can share the account.


Hook to change the Success message after CiviCRM submits a form?

Xavier's answer is generally right but because you are in the context of a form I advise don't use the function CRM_Utils_System::redirect because that is a rather blunt instrument, and breaks pop-ups and other ajax-based forms (which don't follow the normal round-trip webpage lifecycle). Instead from your hook you can call CRM_Core_Session::singleton()->pushUserContext($urlYouWant); and the form controller will take care of doing the actual redirect or other appropriate action.

So from your hook you'd do:

$url = CRM_Utils_System::url('civicrm/my/path', 'argumet=1');
CRM_Core_Session::singleton()->pushUserContext($url);
CRM_Core_Session::setStatus(ts('Your foo has been barred'), ts('Saved'), 'success');


"Membership status cannot be calculated for " Renewal Error!

Using the CiviCRM menu, if you navigate to Administer > CiviMember > Membership Status Rules (civicrm/admin/member/membershipStatus) you should see a list of membership status rules. These dictate the "workflow" of a membership, and they need to chain together correctly. For example, on the sample site I have handy the rules are:

New - ends +3 months from "member since" start date (configuration pictured below).
Current (rest of membership - doesn't have start/end config in my sample site, but is the "default" state)
Grace - starts end of membership, ends +1 month from that date
Expired - starts +1 month from end of membership
Pending, Cancelled, Deceased - not part of the automatic process.

Here's what "New" looks like.

I suggest you inspect the dates those members are trying to renew and work out where in this workflow they would fall given the rules on your site (expired or grace presumably, since you seem to have a fixed year membership and it's now May in the next year). It may be that a membership state has been removed from the workflow and this leaves a gap, or that the timeline has been adjusted for one but not another.

Just a guess, that's where I'd look first!


Is there an extension to manage Keycloak users?

daveawe12323, identity and access are managed at the Drupal level and there is connection between the Drupal "user" and the CiviCRM "contact". It looks like the only Keycloak Drupal module is for Drupal 8 but there is documentation on using Keycloak as OAUTH or OpenID.
I hope this helps.


That's really two operations: splitting the combined db to separate WP and Civi ones, and migrating.  For the migration part see the manual.

To split the db, you could make a duplicate of the original as the Civi db (dump and load), then in the Civi one delete all the non-civi tables and in the original/WP one, delete all the civi tables.  In your civicrm.settings.php file find the setting for CIVICRM_DSN and change it to use the new database name.

Make sure you keep a backup of your original combined db just in case!


Double opt-in mailing list signup with Caldera Forms CiviCRM

You can use Jaap Jansmas integration of CiviCRM with the Form Processor for that: Just create a form processor using the action "Mailing Event: Subscribe to mailing list". You can even create simple deduplicating rules using conditions on the actions "Contact: Get Individual by name and email" and "Contact: Create or update Individual". The form processor will then appear as a Caldera Forms processor and you just add your slugs. Never forget to clear the CiviMcRestFace Log in Settings CiviCRM McRestFace Call Log when adding/changing form processors.
Update: Now Jaaps plugin can also be installed from the official Wordpress plugin repo:
https://wordpress.org/plugins/cf-civicrm-formprocessor/


CiviMobileAPI - "The extension is too old" Error

The CiviMobileAPI page is mentioning that you need a Patch for Wordpress - maybe that's the reason?


Can numeric version naming conventions for CiviCRM extensions use the Drupal module naming conventions?

It's hard to apply the Drupal model to CiviCRM because the release cycles are so very different. Drupal releases a complete overhaul every 3-5 years, with nothing but bugfixes in-between. Civi's release cycle is more frequent and incremental, with some big changes in each major release but a lot of stability too. Drupal intentionally breaks compatibility with all modules with every new major version, whereas it's not uncommon for a single copy of a CiviCRM extension to work equally well with 4.4, 4.5, 4.6 & 4.7. For this sort of thing, the Drupal versioning convention would be too rigid.

Currently each release of an extension explicitly declares which version(s) of Civi it is compatible with in its info.xml. You can see this at a glance by looking at the extension's page on CiviCRM.org - each release has one or more compatible versions listed.

The only downside I've seen is that often times extensions continue to work fine with a new version of Civi but their info.xml hasn't been updated to show it. E.g. once 4.7 is released, the majority of 4.6-branded extensions will probably work fine, but you won't be able to automatically download them until someone manually tests, verifies, and bugs the maintainer to update their info.


Website payments pro wasn't active on the account and thus always returned the above error.


Any happy IE8 users with civicrm image display issues?

Not exactly a fix, but rather a workaround: https://www.drupal.org/project/imagecache_external module has been used for an additional image pre-processing. Images processed by drupal imagecache module work just fine in IE8.


Complex multiple Selects in Custom Coded Reports

In the CRM/Report folder: grep -r -i "TEMPORARY" *

This gives you some existing reports that use temp tables which you can look at to get some ideas.

Form/Activity.php
Form/Contribute/Detail.php
etc...


Is there a way to allow partial payments for events?

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


CiviMail: Can only write new mailing in debug mode (SOLVED)

Cross-origin refers to accessing resources on a different domain. It's curious that URLs you reference are actually different domains -- www.netzwerk-n.org vs netzwerk-n.org. You might want to check which of those appear in (a) the URL bar (b) the Resource URLs (esp under "?" help button) and (c) the outputted HTML documents.
As an alternative to "Debug" mode, you might try toggling disabling the "Asset Cache" mode. It's on the same screen: Administer => System Settings => Debugging, but it has fewer side-effects.


Can a webform list who has already signed up for an event?

You can list the people using CiviCRM Views and add the View to the same page as the webform.  Easiest is to put the View into a block, but you can also do this with the Paragraphs module or Panels.


CiviMail is a mailing feature that interacts with your mail server much like the 'Email' action you mentioned. The main difference is design ability and ability to handle mass mailing campaigns to large groups of people.

Basically, if you are sending to more than 50 contacts at a time or you need to track email opens or clickthroughs - you should use CiviMail rather than the 'Email' action.

CiviCRM has good written documentation on CiviMail here: http://docs.civicrm.org/user/en/4.6/email/what-you-need-to-know/

(be sure to check out the other CiviMail sections around the linked section as well).

Edit: Bounce processing is another function that CiviMail is capable of. Processing bounces from your mailings is important to keep your sending reputation high in the eyes of other mail serves, to be sure your emails get through to people. This is especially important if you send using your own mail server and manage this yourself.

More info here: https://book.civicrm.org/user/current/advanced-configuration/email-system-configuration/

and here: https://wiki.civicrm.org/confluence/display/CRMDOC/Bounce+Handling


Workflow for new constituents. How to add a doc verification step?

One part of your flow that isn't clear is: what happens if someone registers with a cc and then is rejected? You probably don't want to have to refund a cc, right?
For a similar setup, what I did was to limit the payment method to pay later and set the instructions as "sit tight until you hear from us", and then after the validation/approval process, they were sent an invoice that they could pay by cheque or using a credit card (you can pay an invoice via cc using a direct link in the invoice if you set it properly).
The only wiring necessary was the notifications, which can be done in various ways.


Has anyone used Emojis in CiviMail subject/body?

@laryn the short answer is that for this to work your database needs to be changed. CiviCRM by standard sets things to be utf8_unicode_ci. You will need to convert database to utf8mb4_unicode_ci to allow for Emojis and you would need to change the setNames call in CiviCRM to be utf8mb4 as per https://stackoverflow.com/questions/7814293/how-to-insert-utf-8-mb4-characteremoji-in-ios5-in-mysql


Personal Campaign Pages only visible on front end when logged into back end

Have you checked the permissions and roles? If not you may find useful the following documentation Default Permissions and Roles


You would need to contact your host to check that php 5.6 is available.  It very likely is in which case there is probably a facility in your cpanel or equivalent to activate this.  I recently upgraded my setup to php7 on wordpress without any problems and in fact things are working quite a bit faster.

Hope this helps.


Capture country field selection with JS/jQuery

The select2 is indeed complicated but you don't need to go there. The underlying select element is still there (just hidden) and still fires regular "change" events and you can still get it's value using the ordinary $(element).val() jQuery.


process_mailing processing addresses when called in UI but not CRON

Had the same problem, on Ubuntu change the system time zone with "sudo dpkg-reconfigure tzdata". Restart the mysql service with "sudo service mysql restart".

Can confirm that this gets the cron running and processing the mailing.


Upgrade from 5.9 to 5.16 in Drupal - upgrade script won't run

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.


I am fairly confident that your issue is that the WordPress redirect_canonical function is rewriting your unescaped CiviCRM URLs and redirecting to properly escaped URLs during the registration process. This would cause your session to be cleared during the redirect.

I recently fixed the as much of the code as I could find where CiviCRM generates URLs and updated it to produce valid URLs that wouldn't be caught by redirect_canonical. The latest CiviCRM has the fixes (so upgrading is as always recommended) but here are the relevant PRs in case you want to back-port them to your version:

https://github.com/civicrm/civicrm-core/pull/13043
https://github.com/civicrm/civicrm-core/pull/12969
https://github.com/civicrm/civicrm-core/pull/12968

As the question is also Paypal-related, you should also be aware of:

https://civicrm.stackexchange.com/a/27958/520

I haven't verified that jgillmanjr's fix works, but the logic looks right to me.


How does WP BuddyPress integrate with CiviCRM Members?

I believe it's related to this post: https://civicrm.org/blogs/haystack/working-civicrm-46-wordpress that also notes the BuddyPress Groups Sync:
https://wordpress.org/plugins/bp-groups-civicrm-sync/


Rebuild Drupal Civi from scratch in WordPress

Importing contact and its details involves more efforts unless you don't want historical data of the contact like contribution, event registration, activity etc. Would suggest to use the same database for your wordpress and clear CiviCRM cache.

The menu items position may differ based on how old is your CiviCRM compared to newly fresh installed CiviCRM but you can update the position through UI if you want to move to some where else or hide it.

There is a good post that may help you to migrate from drupal to wp.
Moving from Drupal to Wordpress


You can't use Smarty and Mosaico together.  Tim Otten presents a long answer why if you want details!


Webform- Existing contact- Contact ID option not returning results

It’s not an autocomplete; it’s a lookup. So enter the contactid and then click elsewhere to leave the field.

When I implemented this I did so for Individuals and though theoretically it should probably mostly work for Households - I’ve never tested it as we don’t use Households with any of our clients.


How can I see the quota (number of participants which can still register) under the manage events section?

There is a BAO function in CiviCRM which returns the available slots for registration

CRM_Event_BAO_Participant::pendingToConfirmSpaces($eventId);

You can use api to get the max number of participant for an event

$result = civicrm_api3('Event', 'getvalue', [
  'return' => "max_participants",
  'id' => 1,
]);

To answer your question in detail, you canuse pagerun hook on event page and then get the variable assigned in smarty using $rows = $page->get_template_vars('rows'); override the variable to add or remove values and then assign it back to smarty using $page->assign('rows' $rows);

HTH

Pradeep


"DB Error: Syntax error" - after using false "find and merge duplicate" rule

Since you marked it as Reserved you cannot modify or delete it.  (It can be gotten rid of by directly modifying the database, but I think that is the only way.)

Your best bet is to ignore it, and create a new rule that you can use.  Just don't mark it as Reserved until you are sure that it is defined as you wish.

Note that you can edit the name and usage type, so you could rename it "DO NOT USE" and make it a General rule.


Re-install Buildkit on Ubuntu for Windows

If you've run amp, you should also delete the hidden folder $HOME/.amp.  Leaving --full out of the install command will skip installing apps.  Hoewver, There is no side effect to reinstalling the apps, and it includes ancillary programs like zip and curl, so you're most likely best off running with --full.  It will also restart Apache for you, which might be necessary.


Contribution Reports and disabled Financial Types

I'll go with "Yes" and "Often".  This is a long-standing issue that extends beyond financial types and reports.  It's also searches, and almost anything that can be disabled.

An elegant solution might require some thinking through.  My suspicion is that we'll need a new database field to distinguish these two use cases.  You definitely DO want some disabled option values not to be searchable.  I'm not sure if you want to ever not have them appear though.


From the manual:
1. If you have different database users for your CiviCRM and Drupal databases, then you need to grant SELECT access for the Drupal user to all the CiviCRM tables.


Blocking Registration of other participant

To do the same, I use 2 Webforms :

one public (authenticated users) which is limited to their own registration (existing contact hidden)
one, almost identical, reserved to an administrative role which enables different persons registration.

You may need the permission per webform Module (https://www.drupal.org/project/permissions_per_webform)


Where in the DB are CiviCase timelines and sequences stored?

Generally, civicrm_case_type.definition

If the definition is NULL, then it will fallback and search for an XML file.

The loading logic is in CRM_Case_XMLRepository.


CSS problems on Contact Notes View modal dialog

Turns out it was a CSS conflict with the Woocommerce Event Manager plugin in WordPress. In fact it was affecting the formatting of many different modal dialog windows in CiviCRM, not just the Contact Notes dialog.
In case anyone's interested, I tracked it down by opening the misbehaving dialog in CiviCRM, then used Chrome -> Developer Tools -> Elements to identify the div with the right-shift problem. The CSS hierarchy for this element showed (in the 'Styles' pane) that the CSS heirarchy was interrupted (Jquery UI classes were struckthrough), and it gave the CSS filename, which gave a clue to the identity of the naughty WP plugin.
Of course, I could have just deactivated each WP plugin in turn...


I want to display the date on reports as mm/dd/yyyy

Go to Administer, Localization, Date Formats at civicrm/admin/setting/date?reset=1 and change the Complete Date to the format you'd like.

I think %m/%E/%Y is what you're looking for.


How do I use CRM_Utils_Request::retrieve when the POSTed field is an array?

I suspect u will need to use

CRM_Utils_Type::validate (which is what CRM_Utils_Request::retrieve actually calls for validation) directly

lobo


How to create a custom filter in CiviCRM manage event page?

I would create replica of Manage event using Drupal views with same columns and filters as of Manage event screen.

If you still want to use the same screen then use pageRun hook to manipulate results by generating query and creating results and assigning to template

$page->assign('rows', $manageEvent);

Cheers

Pradeep


External URL for CIVIMail on localhost installation

This is only a partial answer, but the main challenge will be getting files to save to the remote server. Retrieving them will mainly involve adjustments on Administer > System Settings > Resource URLs.

If you can get a local folder to sync to a remote file host, that might work well.  Long run, a nice feature would be to have an option to save files directly to S3 or something.


Multiple First Names for a Contact - implementing AKA (also known as)

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


Permission 'See CiviCRM is installed' keeps being removed on Joomla

There is a paid Joomla component PWT ACL that helps a lot with these kind of problems.
For instance: the 'See CiviCRM is installed' permission could be the right to view the component with all contacts etc. This view of the component is only possible from the admin area of the website. To view it you need the right to login, you need to login at website.ext/administrator, and only then you can see the component as such.
If your registered user does not have the right of access to the admin area this right to See CiviCRM is not permitted, even if you explicitly set it like that: because the system does not allow access to the admin area, it cannot give access to the CiviCRM component when this requires access to the admin area first.
PWT ACL helps solve conundrums that can exist with 'clashing rights settings'.


Trying to send my first e-newsletter with the Mosaico system

Sending of CiviMail requires both the domain.address token and the action.optOutUrl or action.unsubscribeUrl tokens

You can add these in to the bottom of your mailing. Add a text block, add the above tokens, then edit it by clicking on < > (source code) and put a link on to the optOutUrl token with the destination also being the token so it ends up like

{domain.address}

{action.optOutUrl}

There are some longer instructions here I wrote up yesterday. They may help


You will need to check the resource URL and directory settings. If the resource url for CiviCRM is not set properly then the url build while mailing is send will be wrong.

When you have mailing with track url enabled than CiviCRM rewrites the url to 'url.php?u=60&qid=1389' so that it can track the click. But when you click on the url from email it gets in CiviCRM and then based on url params it redirects to correct url.

Thanks

Pradeep


strange issue(permission error with 'civicrm_contact') while installing civicrm

Mehta,

You will need to grant mysql user permission to create table and other necessary permission. Also can you check if username and ip are matching.

HTH

Pradeep


After upgrading to 4.6 CiviMail HTML version is uneditable

There's an issue+patch filed for 4.6.1 at https://issues.civicrm.org/jira/browse/CRM-16246. You can try disabling Drupal's aggregation as a work-around (by visiting "admin/config/development/performance"). If that work-around doesn't resolve it, let us know (since that would mean it's a different problem).


Clean reinstall of CiviCRM Extension GDPR on Wordpress

Taken from a comment by @ParvezSaleh

The extension does not remove the custom data or activity types when uninstalled. This is a deliberate feature as it's assumed that any data collected to date is important and would be required if an audit takes place.

It would therefore be necessary to manually remove the information from the database.

The extension's settings are stored in the civicrm_settings database table as a record with name set to gdpr_settings.

Other information (activities, custom field data) are stored in various database locations including civicrm_activity and civicrm_value_sla_acceptance_N (there may be other locations.)


How do I display user statistics/analytics on their dashboard?

If you aren't using the campaign report (which can be made into a dashlet by checking the Available For Dashboard checkbox when you save - see https://docs.civicrm.org/user/en/latest/the-user-interface/menu-dashboard-and-dashlets/#dashlets), then you could either use https://docs.civicrm.org/dev/en/latest/hooks/hook_civicrm_dashboard/ to put something custom into the /civicrm/user page, or make your own dashlet to be available at /civicrm/dashboard (see e.g. https://civicrm.stackexchange.com/a/28877/181)


Find contacts that have been moved out of a group

There IS a way to search for contacts removed from a group - but it's well-hidden.

Go to Contacts menu » Manage Groups.
Click the Contacts link next to the group you'd like to see deleted contacts for.
Under Group Status, uncheck Added and check Removed before pressing Search.


In CiviCRM, custom fields have the ability to re-use options from another custom field, but not from a core field like Preferred Language. So this is not currently possible via the UI.

2 Solutions come to mind, both using small amounts of custom code:

Write a short script that uses the api to fetch all languages and then copy them into the options of one of your custom fields. Then re-use those same options in 3rd, 4th language fields.
Write a tiny extension that implements hook_civicrm_customFieldOptions and populates those options dynamically by outputting the languages in the system.


Send certain welcome message after subscription to certain mailing list

I've tried using CiviRules, but Civirules is not respecting double opt -in. It sends e-mail even if user won't confirm subscription.

Try adding a Linked Condition of Field Value Comparison:

Entity: GroupContact
Field: Group Contact Status
Operator: Is equal to
Compare Value: Added


Another approach worth considering is the use of custom fields on the Relationship. You can add a Custom Field for Proxy Shopper, on to the Household Member relationship, and if Willow lets you know that Jerry is 'safe' to be a Proxy Shopper then you have that information without need for potential code and complexity


How to Mark CiviCRM checkbox field not required programmatically?

You can use validateForm hook to empty the errors on the input field. Eg

function hook_civicrm_validateForm($formName, &$fields, &$files, &$form, &$errors) {
  if (your_condition_statement) {
    $form->setElementError('field_id', NULL);
  }
}

Also note that as this looks like a custom field, civi also provides a UI setting to disable the required attribute. Screenshot from Add/Edit custom field form.


How do i access the list of email addresses that bounced

Go to CiviMail -> Scheduled and Sent Mailings -> under Action, in the far right column of the Mailing Name line, select Report -> Select Report to the right of Bounces


Drupal Views Integration with Drupal + CiviCRM databases on different hosts

You could try CiviCRM Entity in combination with the EFQ Views module. The entity field query views module uses an alternative query backend. Since CiviCRM Entity uses the api to load entities, it doesn't depend on the SQL being in a particular place. Disclaimer, I haven't tried this for your particular use case, and the field and filter handlers will be rough around the edges, but it won't take long to experiment.


Can't extract latest civicrm-4.7.22-drupal.tar.gz to install

I tested those two downloads, and found:

The two tar.gz files are identical (MD5=26e2db3c52d105659acc293cc2ffc74c for civicrm-4.7.22-drupal.tar.gz)
Yes, there's an invalid symlink in the file.

That "bad" symlink might offend some tools (and might trigger anti-virus warnings) but it's harmless and should not affect the CiviCRM files you've downloaded. It links a README in one of our packages from that package's docs dir to the package root, and we strip that docs folder out of the code we ship.

I have opened an issue (CRM-20884) & submitted a small fix (PR10676) to resolve that missing symlink in some upcoming release.

Thanks for raising this! You did the right thing to question what you were seeing. FWIW, I recommend downloading from https://civicrm.org/download in favour of SourceForge.


What is the best approach for displaying / modifying behavior of Activity Subject & Custom Field?

If you need to adjust Subject to be a select field for use directly in Civicrm then would need to change the field type in the db and customise so it uses a set of Option Values

If the data is mostly being added via a Webform then you can adjust the widget on the Component and set it up as a Select field without needing to mess with the machinery


Adding Field to Advanced Search CIviCRM Contribution

If you go to search - custom search - fulltext search, it already searches this field. Does that fit your needs?


Changing the price of a Membership in a Price Set does not transfer to a Webform

Have you added the 'Membership Fee' field to the webform under the memberships section?

Believe this will stop prices from being pulled from Civi.

Otherwise should pull across automatically as far as I am aware.


There are a number of options depending on exactly what you are trying to do.

Do you want to view mass mailings sent through CiviMail? If so Robin's answer should help.

Or do you want to view emails that you have sent to an individual contact in CiviCRM? If so, you can view these in that contact's activity tab.

Or do you want to record emails that you have sent outside of CiviCRM against a contact in CiviCRM?  If so, you can find more details here: Configuring inbound email processing


Randomly Generated user Passwords, Local Cron Logs and Cron for CiviCRM

The Wordpress random password generator seems to create passwords that contain characters that have a special meaning in linux/unix. If you use that in a cron command it will be interpreted by linux based on that meaning in stead of seeing it as a password.

I think your solution is the most clean, make sure the password does not contain the special characters. If for some reason that is not possible you should try "escaping" the special characters. More information at https://serverfault.com/questions/413582/how-to-escape-in-password/413583

Hmm, there seems not that much wrong with your cron command. (except the password should start immediately after the -p, without a space).

The following I could find about your error message: https://www.dougv.com/2006/12/fixing-a-bad-minute-error-message-when-trying-to-use-crontab-with-certain-unix-text-editors/

  This problem most often occurs because you’re using a text editor,
  such as pico, that fakes word wrapping by adding a newline when it
  reaches a certain column position.

  Crontab delimits jobs with line breaks (newlines). Each job occupies
  one line. Therefore, if crontab sees anything other than an integer in
  the first column of a line, it throws the “bad minute” error, since
  the minute argument is the first one crontab encounters.

Could that be the cause?


This PR resolved this https://github.com/progressivetech/net.ourpowerbase.sumfields/pull/62
with an Exclude Summary Fields from logging? feature.

When advanced logging is turned on, you can exclude Summary Fields
from being logged to increase performance and reduce clutter.


This is possible with CiviRules.  However, I'd argue that in most cases you'd rather use a Smart Group.

If you're committed to using CiviRules though:

You'll need two rules.  One with a trigger of "Any contact is added" and one with "Any contact is changed".  If this only applies to individuals, you can substitute the appropriate triggers.
The condition will be "Field Value Comparison".
The action will be "Add tag to contact".

Note that you may want another rule to remove the tag if the field is changed and the condition no longer applies.


First, record the payment with a status of Pending.
Click the triangle next to the contribution to open up the payment listing (see screenshot below).
Click Record Payment (or Submit Credit Card Payment).  You can log a partial payment from here.

In my screenshot below, you can see the $55 donation has a status of "Partially Paid".


CiviCRM API with Custom Data mixed with Standard Entities

I also noticed that  querying the API for custom fields does not  return  them  unless they are specified in the  return fields.  But the field that is  listed in the API explorer in not the actual field name,  I could not get the  fields  to return using their "title names"  but they do when using the custom_xx  field name.


Getting a Custom Field Value on a Contact with Javascript API

The syntax is incorrect - and I just confirmed that the syntax generated by the API Explorer for Getvalue is incorrect, so you're not to blame!

The culprit is this line:

"return": ["custom_102"],

In JSON, the square brackets indicate an array.  "return" expects an array for a Get action, but Getvalue accepts only a single value (for the obvious reason).  If you remove the brackets:

CRM.api3('Contact', 'getvalue', {
  "sequential": 1,
  "return": "custom_102", //custom_fieldId
   "id": 2 // contact id
 }).done(function(result) {
   // do something
 });

You should be in business!


CiviEvent: how to collect different custom data for different event participant roles?

if you setup your custom fields in profiles only for the roles that are needed then does it not automatically only display those fields that are relevant? p.s. we wrote and maintain the extension that your referring to!


Disabled contribution page and recurring transactions

Yes - absolutely - the recurring series only stops if its status is switch to: cancelled or the number of installments have been completed (both are native CiviCRM behaviour).


Are Civicon Session materials aggregated somewhere?

Here is a playlist with the videos on Youtube for 2015:


Password field not displayed in contribution page

This is the default behavior of Drupal, and is by design.  It works the same way if you register a new account through the "New User Account" page in Drupal - assuming you don't have a module installed that modified this such as User registration password or LoginToboggan.

When a new user registers, the account will be created, and they'll receive an email with a one-time login link.  They can set their password there.

This isn't something you can modify without writing custom code.  This isn't really desirable because you'll need to make sure you're respecting the password complexity rules of Drupal.  Making a user deal with this while making a contribution is going to reduce your conversion rate.


some recurring contributions linked to memberships are not moving on the membership end date

Unfortunately CiviCRM doesn't look for civicrm_membership.contribution_recur_id t update the membership. I believe for membership to get auto renewed it should have

The latest recurring contribution for the membership should be linked via civicrm_membership_payment
civicrm_line_item.contribution_id should be set for the membership (the latest one)

Since you had added membership to the standalone recurring contribution than you need to make sure that above 2 step is fixed before next subsequent payment is recorded.


Is anyone using Google Group Integration for CiviCRM?

I have a forked version of the primary repository where i have updated the code to support latest version of api. This is hasn't been tested since 2 years.


I haven't heard back from CiviDesk, but I did go on github and find version 1.1 which claims compatibility with CiviCRM 4.5. I felt like that was close enough to my 4.7.3 for me to take the leap. I initially got a bunch of errors (see list below the break), but they are not persistent.

My Results

Success. The only errors I've spotted were due to my contacts data having undesirable unicode characters. Once corrected (By editing the table civicdesk_sync_googleaps) the next cron run or forced execution puts it back to work.

What to expect in your Google Apps Directory when the sync happens:

Wait 24-48 hours for the first results to appear. You can blame Google for that.
Pre-existing contacts are not updated or deleted. New contacts will be ADDED to the Google Apps Directory. On subsequent runs, these newly-added contacts should update as CiviCRM does (I base this on the fact that the extension records Google's own contact ID for what I can only assume will be future use).
Added contacts will be populated with Name, Organization, Job Title, Email, and a link to their CiviCRM profile. As far as I can tell, mailing addresses are NOT synced.
The default sync speed it 50 contacts per cron run. I cranked mine up to 100 with no ill effects.

That's about it. I'm including error messages below for searchability reasons for the community--I'm not expecting anyone to offer fixes especially since they were just one-time errors.

-- Just error messages below. Avoid reading further if they make you sleepy. --

Notice: Undefined index: child in _cividesk_insert_navigationMenu() (line 58 of /home/mysite/public_html/sites/default/files/civicrm/upload/com.cividesk.sync.googleapps-1.0/cividesk.ext.php).

Notice: Undefined index: oauth_email in CRM_Admin_Form_Setting_GoogleApps->_checkOAuth() (line 142 of /home/mysite/public_html/sites/default/files/civicrm/upload/com.cividesk.sync.googleapps-1.0/CRM/Admin/Form/Setting/GoogleApps.php).
Notice: Undefined index: oauth_key in CRM_Admin_Form_Setting_GoogleApps->_checkOAuth() (line 142 of /home/mysite/public_html/sites/default/files/civicrm/upload/com.cividesk.sync.googleapps-1.0/CRM/Admin/Form/Setting/GoogleApps.php).
Notice: Undefined index: oauth_secret in CRM_Admin_Form_Setting_GoogleApps->_checkOAuth() (line 142 of /home/mysite/public_html/sites/default/files/civicrm/upload/com.cividesk.sync.googleapps-1.0/CRM/Admin/Form/Setting/GoogleApps.php).
Notice: Undefined index: domain in CRM_Admin_Form_Setting_GoogleApps->_checkOAuth() (line 144 of /home/mysite/public_html/sites/default/files/civicrm/upload/com.cividesk.sync.googleapps-1.0/CRM/Admin/Form/Setting/GoogleApps.php).
Notice: Undefined index: domain in CRM_Admin_Form_Setting_GoogleApps->buildQuickForm() (line 44 of /home/mysite/public_html/sites/default/files/civicrm/upload/com.cividesk.sync.googleapps-1.0/CRM/Admin/Form/Setting/GoogleApps.php).
Notice: Undefined index: oauth_key in CRM_Admin_Form_Setting_GoogleApps->buildQuickForm() (line 58 of /home/mysite/public_html/sites/default/files/civicrm/upload/com.cividesk.sync.googleapps-1.0/CRM/Admin/Form/Setting/GoogleApps.php).
Notice: Undefined index: oauth_secret in CRM_Admin_Form_Setting_GoogleApps->buildQuickForm() (line 63 of /home/mysite/public_html/sites/default/files/civicrm/upload/com.cividesk.sync.googleapps-1.0/CRM/Admin/Form/Setting/GoogleApps.php).
Notice: Undefined index: last_sync in CRM_Admin_Form_Setting_GoogleApps->buildQuickForm() (line 74 of /home/mysite/public_html/sites/default/files/civicrm/upload/com.cividesk.sync.googleapps-1.0/CRM/Admin/Form/Setting/GoogleApps.php).
Notice: Undefined index: processed in CRM_Admin_Form_Setting_GoogleApps->buildQuickForm() (line 75 of /home/mysite/public_html/sites/default/files/civicrm/upload/com.cividesk.sync.googleapps-1.0/CRM/Admin/Form/Setting/GoogleApps.php).

Notice: Undefined index: oauth_email in CRM_Admin_Form_Setting_GoogleApps->_checkOAuth() (line 142 of /home/mysite/public_html/sites/default/files/civicrm/upload/com.cividesk.sync.googleapps-1.0/CRM/Admin/Form/Setting/GoogleApps.php).
Notice: Undefined index: oauth_key in CRM_Admin_Form_Setting_GoogleApps->_checkOAuth() (line 142 of /home/mysite/public_html/sites/default/files/civicrm/upload/com.cividesk.sync.googleapps-1.0/CRM/Admin/Form/Setting/GoogleApps.php).
Notice: Undefined index: oauth_secret in CRM_Admin_Form_Setting_GoogleApps->_checkOAuth() (line 142 of /home/mysite/public_html/sites/default/files/civicrm/upload/com.cividesk.sync.googleapps-1.0/CRM/Admin/Form/Setting/GoogleApps.php).
Notice: Undefined index: domain in CRM_Admin_Form_Setting_GoogleApps->_checkOAuth() (line 144 of /home/mysite/public_html/sites/default/files/civicrm/upload/com.cividesk.sync.googleapps-1.0/CRM/Admin/Form/Setting/GoogleApps.php).
Notice: Undefined index: domain in CRM_Admin_Form_Setting_GoogleApps->buildQuickForm() (line 44 of /home/mysite/public_html/sites/default/files/civicrm/upload/com.cividesk.sync.googleapps-1.0/CRM/Admin/Form/Setting/GoogleApps.php).
Notice: Undefined index: oauth_key in CRM_Admin_Form_Setting_GoogleApps->buildQuickForm() (line 58 of /home/mysite/public_html/sites/default/files/civicrm/upload/com.cividesk.sync.googleapps-1.0/CRM/Admin/Form/Setting/GoogleApps.php).
Notice: Undefined index: oauth_secret in CRM_Admin_Form_Setting_GoogleApps->buildQuickForm() (line 63 of /home/mysite/public_html/sites/default/files/civicrm/upload/com.cividesk.sync.googleapps-1.0/CRM/Admin/Form/Setting/GoogleApps.php).
Notice: Undefined index: processed in CRM_Admin_Form_Setting_GoogleApps->buildQuickForm() (line 75 of /home/mysite/public_html/sites/default/files/civicrm/upload/com.cividesk.sync.googleapps-1.0/CRM/Admin/Form/Setting/GoogleApps.php).
Notice: Undefined variable: resetStr in CRM_Admin_Form_Setting_GoogleApps->postProcess() (line 124 of /home/mysite/public_html/sites/default/files/civicrm/upload/com.cividesk.sync.googleapps-1.0/CRM/Admin/Form/Setting/GoogleApps.php).
Notice: Undefined index: processed in civicrm_api3_job_googleapps_sync() (line 184 of /home/mysite/public_html/sites/default/files/civicrm/upload/com.cividesk.sync.googleapps-1.0/api/v3/Job/GoogleappsSync.php).


Did you already set CIVICRM_CRED_KEYS in civicrm.settings.php? If so it probably has the wrong "type". https://docs.civicrm.org/sysadmin/en/latest/setup/secret-keys/#civicrm_cred_keys


How to add the Recent Items stack (block)

You didn't mention which CMS you are using, and this is CMS-dependent feature. In Drupal, for example, you would select from the menu Structure | Blocks and then find the item labeled "CiviCRM Recent Items" and select "Sidebar First" for its region for the theme that you are using for CiviCRM (which can be different for admins, and there is a setting at bottom of /admin/appearance to set that).


On upgrade from 4.5.8 to 4.6.2 CiviCRM menu disappears until scroll, then scrambled

I was able to finally figure this out (not why, but how to fix). It somehow had to do with the Zen sub-theme I was had created was not playing nice with version of CiviCRM past, I think, 4.5.8.

I downloaded another version of the Zen 7.x5.5 version sub-theme and re-built my theme and was able to upgrade successfully. Thank you, Michael, for leading me down the right path.


CiviCase - how to use for tracking grants we are applying for?

Have you had a look at CiviGrant? Although the workflow is not very detailed it does help to track what you have. You could set up a case type for the Grant process. This is something people have done by themselves. If you find you are stuck I would recommend you get functional support for a couple of hours. You might even need a developer (depending on what you want to achieve) but I would certainly NOT start there if you are not clear on where you need to go.


This looks like a Javascript error.  You may want to check out the Troubleshooting Javascript forum post for help on this.


MikeLab, Welcome to CiviCRM SE.

The address to be displayed on search result (primary or non-primary) is based on the setting 'Search Primary Details Only'.

You can change the value of this setting by navigating to CiviCRM >> Administrator >> Customize Data and Screens >> Search Preferences.

If you set 'Search Primary Details Only' to yes then it search address or phone or email on primary, if no then it will search on all address or phone or email. The same logic also works on listing.

HTH

Pradeep


Should I change mysql.connect_timeout variable in php.ini?

I have definitely altered this variable for upgrades, but my notes show I only increased the values to 1800.

I don't recall whether this was because I found that -1 didn't work, or because I preferred to not allow a connection to remain open indefinitely.

So yes, I think you should alter it if necessary to complete upgrade.

If you find setting to -1 works, make sure to change it back post-upgrade!


Different payment processors for different price fields?

Probably not the best solution however you can give the user the option for either payment method on the contribution page.

Then utilise JavaScript to automatically react and select the correct payment method.

This is assuming is a small difference and you don't need it to be 100% secure etc. etc.


I recommend following the documentation to configure your cron entry.

https://docs.civicrm.org/sysadmin/en/latest/setup/jobs/#commands

This page documents method for using built-in CLI commands (cli.php) and externally packaged CLI tools (drush or cv).

The method shown in your screenshot does not appear to match those docs:

The task is initiated from within the bin directory rather than CiviCRM website root (this might or might not be a factor)
The task uses cron.php using CLI SAPI, not the CLI tools documented. (cron.php uses $_REQUEST for its inputs)
The task does not specify a CiviCRM scheduled job (eg Job.execute)

Following the docs is probably the best next step. If that doesn't work, update your question to include the amended command and output as a text for further guidance.

cron.php is documented as intended to be called over HTTP in that page, which you can also do using other CLI tools like curl.


Is my Facebook Conversion Tracking Pixel extension what you're looking for?


The replacement token civicrm-user:one-time-login-url not working in Drupal Rules emails

The good news is that it is possible to send an email with a one-time login URL using rules.

There is an issue on the rules module for exactly this ability: problem with mail and one-time-login-url. A patch has been created for this issue that generates a new action in rules to generate a one-time login URL variable which you can then use to insert into an email. I updated the latest version of the patch to work with the most recent dev version of rules.

You will need to access the Drupal user account details in the rule in order to generate the login.


Can you import data from Excel or WORD directly into CiviCRM?

Yes! CiviCRM can import CSV files (Excel can save/export into that format).

For more information, see Importing Data into CiviCRM.

Please note this encouragement on that page:

  For more details on how to think about your data before importing into
  CiviCRM, please read the section on "Organizing your data", especially
  "Mapping your data into CiviCRM".


URL Variables with/w/o slashes Upload Directories vs Resource URLs

Its not a bug, adding extra '/' won't make any difference. The variables shown Directories and Resource URL forms have same naming conventions however they are rendered in different way for each form.

CiviCRM Resource URL: [civicrm.root]/

Image Upload URL: [civicrm.files]/persist/contribute/

Your Settings looks fine.

Cheers

Pradeep


You may want to check out CiviProspect.  From the README:

CiviProspect provides the core structure for creating/ managing/ converting the fundraising opportunities of an organisation. It can also be used to manage any monetary opportunities such as sales opportunities and event sponsorships.


Civimail Not working after upgrade to 4.7.21 with Joomla 3.7.3 unless I turn on debugging

This is the result of some changes to the angular implementation introduced in v4.7.21, which among other things, implements asset caching to improve the performance of angular built pages (such as the mailing interface).

The folder where those asset cache files are stored must be directly accessible (in Joomla, that folder is: media/civicrm/persist/contribute/dyn/). If it's not, it will throw console errors and fail to render the page.

In your case, you were using AdminTools to generate your .htaccess file, and that included directives which blocked direct access to files in that folder. By adding that folder to the exclusion list and rebuilding your .htaccess file, you can now render the screen.

The other option is to go to Administer > System Settings > Debugging and error handling --- and turn asset caching off.

Additional details (and other recommended folder exclusions in AdminTools) can be found here: https://docs.civicrm.org/user/en/latest/website-integration/integrating-with-joomla/#configurationconflicts-with-common-extensions


Quick update, we're releasing a new version which has the ability to include captcha. It will be available from tommorrow (v2.6).


A blank screen can sometimes mean an error on the server. It doesn't show anything in your logs, but might in the server logs. Usually I have to contact support at the web host to see what they can find out. Sometimes it's something as simple as a file/folder with the wrong user, wrong permission, etc.


Civimail open tracking is not working for some mailings - inserts var/www/html into path for some mailings but not others

A workaround is to change the root civicrm token to an absolute path
(Credit due to Eli Lisseck for research and workaround solution)

Under Resource URLs, change CiviCRM Resource URL from [civicrm.root]/ to sites/all/modules/civicrm/

(Note that civicrm.settings.php has the following setting for sites that work correctly and sites that do not work correctly.
$civicrm_root = '/var/www/html/sites/all/modules/civicrm';)

So, while this appears to be a workaround, it is hiding the "root" problem.


KCFinder in https context doesn't browse

I changed http to https in my theme css and the message disappeared.

Now there's still one error.

I changed the editor from tiny or CKE to "default drupal editor". And it WORKS !


How to automatically create/import some 4000 groups in bulk from a csv file

Welcome to SE!
You could import the groups with the API CSV importer extension
3000 groups is a lot: there may be better ways to represent your data in CiviCRM.  How do you want to use these groups?


Outbound Domain Enforcement extension error

What are you doing when you get that error? It sounds like you have something configured to have two email addresses separated by a comma. Pick one and use that as the setting.


Have you tried running mod_php as opposed to fastcgi mode?

In the past when we've had this with our servers our first point of call is to determine which part of the stack is limited to 1 core. Our experience has been that its normally mysql. Could you load up mysql with a few concurrent large DB operations and see if it uses multiple cores? This should then good you a direction to head in i.e. which part of the LAMP stack is being limited.


Trying REST but get PHP Fatal error: Class 'JObject' not found in

The question is old but for anyone searching for that error, see CRM-21203 and PR-11609 released in 5.1


Civicrm fails to launch - Wordpress gives "The plugin does not have a valid header."

As regarrds the error message "You do not have sufficient permissions to access this page", please have a look at the Civicrm wiki page at the following link.  https://wiki.civicrm.org/confluence/display/CRMDOC/Upgrading+CiviCRM+for+Wordpress

If you get this error when trying to run the upgrade script, you most likely deactivated CiviCRM plugin during the upgrade process. You just have to visit /wp-admin/plugins.php and activate the plugin.

I  regret I can't help with the "valid header" problem.

Hope this helps.


CiviCRM WordPress shortcode embedded within a tab shortcode does not load

CiviCRM can only be "invoked" once per page load, so multiple shortcodes on a page won't be functional. Instead they should display as "teasers" with links to the functional CiviCRM content on your WordPress basepage.

In short, you can't have functional CiviCRM forms unless they are they are the only content on a page.

There are a couple of ways you could do this, however:

use the Caldera Forms CiviCRM plugin to embed two forms in your tabbed page
pull in the content of the second tab in via an AJAX request

Personally, I'd ask myself whether implementing tabs is worth the extra development time.


Civirules intent to select contact with address of one type with the exclusion of another type

This is not a direct answer but potentially this extension might help you to keep track of old addresses? https://civicrm.org/extensions/former-communication-data


I have put an wp specific extension in my extension directory but it does not appear in the manager

Turns out this a WordPress extension (even though I found it on the CiviCRM extension page) and on about page 3 of the readme.txt it tells you to install it into the WordPress extensions directory.


Mosaico 1.1 - "Unexpected error talking to server" when saving template

We are using Mosaico 2.x for more than a year (currently Version 2.0-beta4) succesfully and without problems. I strongly recommend you use version 2. See Mark Mosaico 2 stable for more info.


Issue causing this:
Extensions.
In PHP logs I found out Symphony was mentioned along with Flexmailer. We had alpha outdated version of Flexmailer causing issues. Disabling it/ updating it seems to work as solution.
After that I could update CiviCRM smoothly and works!
Hopefully someone will need this in the future!


No, CiviCRM must be installed within one of these CMS platforms: Drupal, Wordpress, Joomla, or Backdrop. But this doesn't mean you need to use that CMS for your organization's main website — you can install CiviCRM (within one of those CMS platforms) on a subdomain.

The CMS handles the part of the application which deals with users (i.e. "reset my password" and other such functionality). The fact that CiviCRM delegates this functionality to the CMS does make it a tiny bit more complicated — but tremendously more flexible! For example, perhaps in 10 years your very small organization will have grown to the point where it wants a CMS which can integrate with its CRM. CiviCRM leaves that possibility open.

Suggestions for you

Install CiviCRM with Wordpress (the simplest one)
Or, if the installation process feels daunting, consider hiring a hosting provider to set up and maintain a CiviCRM installation for you

Instead of viewing the CMS as "massive overkill" I would encourage you to think of it as only one small piece of CiviCRM itself. It just happens to be a modular piece. The size and complexity of an empty CMS actually pales in comparison to the size and complexity of CiviCRM itself.


How NOT to send email to "Activity Assignee" when assigned an activity

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

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


Is it possible to install CiviCRM offline using WAMP?

So no problem installing it on a WAMP, especially if you "only" want it as an "internal address book".

You have quite a lot of fields by default, and if you need more, you can create custom ones directly from the UI, no need to develop anything for your requirement it seems.

But the easiest is that you try, either on your own install or check our demo sites at http://demo.civicrm.org


Make sure the rule you are using is for the type of contacts in your db, generally Individual. Then get the rule saved with a weight on the email field >= threshold, with the latter being > 0. Once you have verified this is configured properly by clicking to edit again, then try using the rule.


How to search for multiple attendees linked to single payer in CiviEvent

Soft credits, by definition, allow you to credit a contact for a donation made by someone, for example the person who inspired the actual donor to make a donation. Paying for something on behalf of someone else is not considered a soft credit.

That said, the participant list that you access via the Participants hyperlink to the right-hand side of the event in question (e.g. under Events > Manage Events) is a simple search meant to show you how many attendees you have. If you want additional information such as who registered/paid for a given person, you would be better off using a report, however, there does not seem to be one that will fit your needs:

The built-in participant report (Reports > Event Reports > Event Participant Report) will show only the Registered by Participant ID (not the name) and does not have grouping or sort options for either Registered by or Organization.

The Extended Report extension, on the other hand, gets you pretty close with
Extended Report - Participants (Reports > Create Reports from Templates > Event Reports):

As you can see from the screenshot of the left-hand side of the report, Extended Report - Participants does offer the Registered by Participant Name and allows you to sort by the same, however (and this will be the same for any report you use) the person who submitted the registration will not have a value in the registered by field, so while you can group the additional participants together, the actual registrant will be listed in the "None" group.

The Fee Amount (which corresponds to the Fee Level) will always be divided up according to the selections made for each participant - this is important when you need to know who ordered what regardless of who actually paid. Both reports offer you the option of the Net Amount field (Total Amount less any Transaction Fees) that would only be populated for the person who paid, but neither of the reports offer you the Total Amount field (which would not exclude any transaction fees - screenshot below shows the right-hand side of the report):

So, in short, there does not appear to be something out of the box or available through an extension that will suit your needs, but from a development standpoint it is a simple thing to add additional fields to a given report.

Sorry not to be the bearer of better news,
Tamar


Let me think a bit on how I would tackle this. I suppose that if I was only interested in the work addresses of Steven and Thomas I would simply add the work address on the Individual contact level. If I am however interested in the employer/employee relationship as well I can see no other option than having each branch as an Organisation. I would probably add a contact_sub_type for this, something like 'local organization' with a relationship 'Local Branch of' with the main office so I have the whole pattern clear.


Unsupervised De-Dupe Rule failing in 5.9.0

I am not sure if its somehow related to one of the regression for 5.9.0 for Anonymous user ACL permission which is fixed in 5.9.1. Would be worth trying after upgrading CiviCRM to 5.9.1 or applying patch from here!

HTH

Pradeep


Does CiviGroup Roles Sync work with bulk changes to groups?

From what I understand CiviMember Role sync and CiviGroup Role sync auto-mapping - are evaluated at the time the User logs in.

Login -> is user in a specific Group -> ah yes -> so assign role x

So there really is no need to hit the sync button - I don't think; all is well on login.


How can we add case details and filtering to the CiviCRM dashboard?

It's opensource, whatever you want today you can change... provided you implement the change you want.

As for future versions... well, the future isn't written, so if you are willing to code or fund the changes you want, the answer is "yes", to whatever you make happen.


It is not really possible within CiviCRM. However if you are on Drupal you could create a view and put that view on a map with your own layer.


Check if you have any Scheduled Reminders based on Memberships and ensure your 'lifetime' Membership Type is excluded from that.


Why would a hosting company not provide ImageMagick on a shared server?

I use Stablehost's shared server services and have access to all PHP options including ImageMagick.  Some hosts choose to restrict access to these functions in order to reduce the number of "complex" websites on their server so they can cram more websites on their server. Most reputable shared hosts provide resource usage limits that they define as acceptable for their service.  Restricting what libraries you can use is a poor business choice.

While this isn't a CiviCRM question - I think questions around webhosts and what they offer are important. I hope you get VidaHost to enable it for you - if they don't - take your business elsewhere.


How to suppress translation of months (or all fields) in receipts?

Welcome to CiviCRM SE KLeeHK! I am not sure if you can suppress the translation of particular Smarty tags e.g. {$receive_date} or change the date format of only this occurence. The receipts can be edited under "System Workflow Message Template which you can find under "https://yoururl.com/civicrm/admin/messageTemplates?reset=1"

However, you can globally change your date formats under "https://yoururl.com/civicrm/admin/setting/date?reset=1".

I hope that helps.


Upgrading CiviCRM that is set up outside of the Drupal docroot with symlinks

This looks overall good!  A few suggestions though:

I would advise moving Civi 4.3.8 into the sites/all/modules folder separately from the upgrade.  Since this is a fairly unique setup, it would be good to eliminate it so that if something goes wrong, you know this isn't the issue.  You should be able to do that just by enabling maintenance mode, removing the symlink, and moving the CiviCRM folder to where the symlink was.  Make sure there are no references to the incorrect location in civicrm.settings.php or in Administer menu » System Settings » Directories or Administer menu » System Settings » Resource URLs.
I'm not sure what settings_location.php is, that's probably specific to your setup
Depending on how abused your database is, you may encounter upgrade errors going from 4.3 to 4.7.  If so, don't forget when rolling back to drop your CiviCRM database and create a new blank database before restoring!  A restore will not delete newly-created tables, and CiviCRM upgrades choke when they try to create a table that already exists.


How often does the Status Report expect Cron to run?

It expects it at least once an hour. See https://github.com/civicrm/civicrm-core/blob/5.33.0/CRM/Utils/Check/Component/Env.php#L317


Push Custom Report to Multiple Sites via API, Programming, or SQL

Wrap this custom report up into an extension -> then make that extension available in all your sites.


Delete multiple contacts from a list input

You could easily import a list of emails, add the contacts to a group when you import, and the delete all the members of the group.
The only potential hurdle is if you have more than one contact with the same email address, in which case the contacts will be imported as new contacts. In that case, I would suggest finding duplicate contacts of any members of your newly created group with a email matching rule and you can merge as appropriate to delete those contacts or simply deal with the matching contacts manually. If you want to delete all contacts with email addresses on your list, you could simply merge all the duplicate contacts found and then delete.


wordpress installation no zip file in download

The version of CiviCRM for Wordpress that can be downloaded here: https://civicrm.org/download/list is a .zip file - if your initial download isn't a zip, check that you've downloaded the right version (e.g. the Drupal version is .tar.gz file).

That .zip file is what Wordpress is looking for - however, it's probably wiser to follow the instructions at http://wiki.civicrm.org/confluence/display/CRMDOC/Installing+CiviCRM+for+WordPress as @petednz-fuzion mentions.

The instructions recommend uploading the CiviCRM .zip to your WordPress plugin folder and then extracting the files - Wordpress' internal plugin installation process can manage this, but there are additional steps that WordPress will miss. (This is why CiviCRM isn't available in the Wordpress plugins listing - the installation isn't completely automatic)


How to fix Bookkeeping Transactions Report so it doesn't show redundant transactions (e.g., for changed Payment Method)?

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

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

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

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

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

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

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

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

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

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


CiviMail links with to many clicks from only two people

Seems plausible, especially if you consider scenarios like two influential users who might have forwarded the email to a group of friends, but also through normal use (eg repeatedly clicking from an email while thinking about donating) or something else.

You could review logfiles to see whether the times and remote hosts of the clicks recorded suggest an issue in tracking, whether the visitors all came from the same origin IP, and whether the timing of the visits suggests any further information.


Can I disable syncing when WordPress users create accounts?

You can unhook CiviCRM's hook callbacks like this:

add_action( 'plugins_loaded', 'my_disable_civi_user_sync' );
function my_disable_civi_user_sync() {
    if ( ! function_exists( 'civi_wp' ) ) return;
    remove_action( 'user_register', array( civi_wp()->users, 'update_user' ) );
    remove_action( 'profile_update', array( civi_wp()->users, 'update_user' ) );
    remove_action( 'deleted_user', array( civi_wp()->users, 'delete_user_ufmatch' ), 10 );
}

Disclaimer: this is untested code. You may need to hook into a later action, e.g. init.


Non-deductible contribution amounts are always $0

This is an old ticket; just wanted to add a note that I'm 99% sure we fixed this in 4.6 and 4.7 - and also added a PHP Unit test for it - so that makes it harder to break in future. I've not had any of our client reporting this issue anymore - however if you still experience this in a later version of either 4.6 or 4.7 - please do let us know.

Found the PRs:
https://github.com/civicrm/civicrm-core/pull/6895
https://github.com/civicrm/civicrm-core/pull/6896

UPDATE: 1% it is! I just quickly tried to reproduce your exact scenario - and sigh... it is still an issue in 4.7.18 - will get this fixed. Slightly different pathway than the one we fixed above. In the screenshot below - non-deductible should be $0.30


Existing organization getting updated instead a new organization

This appears to be a bug and you should report it in GitLab.

Steps to replicate.

Set up Contribution page using 'on behalf of'

Submit the form a first time, create your 'on behalf of' Org

Submit the form a second time for New Org, using new name/email.

Outcome the original Org now has the new email but the old name. Both contributions are on their record.

Testing was done via http://dmaster.demo.civicrm.org/civicrm/contribute/transact?reset=1&id=4 (which will soon disappear)

Update - There is now a patch submitted and an issue filed in GitLab - https://lab.civicrm.org/dev/core/issues/26


Unexpected Error when registering for an Event via Webform

I think I found the cause : I forgot to fill the "Fee" tab of the Event Form.

Everything is running OK now


Registering someone who had a friend buy the tickets

you can add "free" participants from the backoffice to get them on the list. I'm not sure I understood your need about the number of seats, but you could create a status "paid elsewhere" that you set as not counted as taking a seat.

In theory, you can link these participants to the paying "main" participant, but I don't think you can do it from the user interface, you'll have to use the api explorer or code.

Does it solve the problem?


Event -> Find Participants displays event id, not event name in event name field

This is related to a general issue with updating CiviCRM under Joomla in a non-US environment, where the views are not updating correctly.  The error was only flagged up when I tried to create an event.  This pointed me to the log file that then showed what the issue was.

I solved the issue by adding the following lines to the definition of, in our case, the view civicrm_uf_group_en_GB:

   `civicrm_uf_group`.`frontend_title_en_GB` AS `frontend_title`,
    `civicrm_uf_group`.`cancel_button_text_en_GB` AS `cancel_button_text`,
    `civicrm_uf_group`.`submit_button_text_en_GB` AS `submit_button_text`

It seems that the update process isn't applying that change.  My knowledge of the update process isn't sufficient to work out how to do it automatically.


Get the "Smart" group of a user id via REST

Smart Groups are basically a saved search. Checking whether a given contact is in a saved search result means running the search for that combination, which is not efficient - hence the reason the information you want isn't available through existing APIs.

See eg CRM-11903: GroupContact API doesn't get smart group members.

If you want to be able to query the API for this information, you have some options -

As you're doing, use the Contact API and filter by group ID to check each Contact/Smart group pair. Not efficient, but you've already found it works.
Create a "regular" group and automate the process of updating its members based on the criteria of your smart group. A bit rough - but probably not too hard.
Implement the functionality you need in a new API method. Probably not as hard as it sounds, check existing API methods for examples.


Excluding blank or null values from report

I would use the Search Builder (Search menu » Search Builder) to select your field with an operator of "Not Empty" (see screenshot below).  It's not clear when you say "Report" if a search is sufficient - if it is, you're done.

If you DO need a report, add these users to a group (possibly a smart group, depending on whether you need this on an ongoing basis).  Then generate your report, filtering by members of the group.


Is there an update to AuthorizeNet.php with SHA-512 to replace MD5 check?

Lesley, CiviCRM 5.11.0 doesn't use anymore MD5 check on authorize.net. This PR removes the check. However there is still not PR submitted by anyone to support SHA-512 check.

If you can submit a PR to support this would be very useful to the community.

Cheers

Pradeep


How to troubleshoot the wordpress issue when the site is migrated from one host to another?

Have you reviewed the "Moving an Existing Installation to a New Server or Location" here:

https://wiki.civicrm.org/confluence/display/CRMDOC/Moving+an+Existing+Installation+to+a+New+Server+or+Location

?


Lesley, I think you are confused with civicrm_financial_trxn.id v/s civicrm_financial_trxn.trxn_id field.

id is a primary Auto-increment integer field and cannot be null. However trxn_id hold transaction id received from payment processor or manually entered through CiviCRM form and can be NULL since for payments taken as for eg cash won't have transactions id.

There can be various reasons why a payment won't have transactions id. Payments taken from payment processor should have trxn_id, you can fire an sql query to find if any payment processor payments has missing transaction id

SELECT id, trxn_id FROM civicrm_financial_trxn WHERE payment_processor_id IS NOT NULL AND is_payment = 1;

Cheers

Pradeep