How can i redirect a user to the PCP link once they login

You wont be able to redirect back to the thank you page, as the thank you page URL is dynamic (with _qfkey, etc.)

Alternative solution:

You can use the URL of the create personal campaign page as the destination after login.

In the href for the login page, you can use the below

please go <a href="/user?destination=%2Fcivicrm%2Fcontribute%2Fcampaign%3Faction%3Dadd%26reset%3D1%26pageId%3D1%26component%3Dcontribute">here<a> to login

Note: The value for 'destination' query paramater should be encoded for the redirect to work correctly for any CiviCRM URLs.

So after login, the user will be redirected to the create personal campaign page directly. This will also avoid an extra button click in the user journey you are expecting (i.e after login redirect back to thankyou page and then the user click 'Create personal campaign page' button which then takes the user to create personal campaign page.

Hope this helps.


Can I update/requery a custom field that got changed via another field on the same page?

The contact summary screen is divided into different panes, and they are each refreshed separately. If a popup form needs to refresh one or more panes, it can specify them by jQuery selector. For example, the relationship form has this in its post-process function:

$this->ajaxResponse['reloadBlocks'] = array('#crm-contactinfo-content');

Which has the effect of refreshing the pane that contains, among other things, the current employer (which the relationship form may affect).

When you implement this in your form hook it will look like:

function ccas_hooks_civicrm_postProcess($formName, &$form){
  if ($formName == 'CRM_Contact_Form_Inline_CustomData') {
    $form->ajaxResponse['reloadBlocks'][] = '#crm-contactinfo-content';
  }
}

Or substitute/add the jQuery selectors of whichever other blocks you'd like to see refreshed. Note that this code uses the array append syntax rather than overwriting the entire array.


Multilingual Setup, but no language switcher

Usually what you want to do is use the Drupal language switcher and choose the option in (civicrm/admin/setting/localization?reset=1) that tells CiviCRM to follow the language that Drupal is using ("inherit CMS language").
To work properly, that option requires you to fill out a couple of lines in the civicrm.settings.php that are commented out by default, but which tells civicrm how to map the Drupal language settings (which are just two letter language codes) over to CiviCRM language codes (which are two letter followed by a region code).
Here's an example from a Canadian bilingual site of mine:
# grep LANG civicrm.settings.php
define('CIVICRM_LANGUAGE_MAPPING_FR', 'fr_CA');
define('CIVICRM_LANGUAGE_MAPPING_EN', 'en_CA');
// define('CIVICRM_LANGUAGE_MAPPING_ES', 'es_MX');
// define('CIVICRM_LANGUAGE_MAPPING_PT', 'pt_BR');
// define('CIVICRM_LANGUAGE_MAPPING_ZH', 'zh_TW');


500 error when creating action in rule ''Create linked drupal user account''

We got this working using this rule:

{ "rules_friends_tag_account_create" : {
"LABEL" : "Self Create User Account and login",
"PLUGIN" : "reaction rule",
"OWNER" : "rules",
"TAGS" : [ "CiviCRM", "CiviCRM User" ],
"REQUIRES" : [ "rules", "civicrm" ],
"ON" : { "civicrm_entity_tag_create" : [] },
"IF" : [ { "data_is" : { "data" : [ "civicrm-entity-tag:tag-id" ], "value" : "163" } }
],
"DO" : [ { "civicrm_entity_action_load_create_user" : {
"USING" : {
"civicrm_contact" : [ "civicrm-entity-tag:entity-id-contact" ],
"is_active" : "1",
"notify" : "1"
},
"PROVIDE" : { "civicrm_user" : { "civicrm_user" : "Created or Loaded Drupal User" } }
}
}
]
}
}


You're probably best off recruiting for volunteers in general who are interested in volunteering in your sector, and offering that person the opportunity to upskill.

Good luck,

John


I find the plugin User Role Editor Pro to be very helpful with this. https://www.role-editor.com/  This makes it easier to setup the access control on the WP side.
Use CiviCRM > administer > Users & Permissions > Permissions (Access Control) > WordPress Access Control to control what parts of Civi different roles have access to.
I would NOT give Subscribers full access to Civi or WP. This is the role your basic donor is likely assigned. Yes this would create a serious security and liability issue if you give donors full access to Civi. Create/use another role besides Subscriber for anyone that needs some level of access beyond their donor dashboard.
Helpful tip. Create a user that is not your admin. Assign this user whatever role you are wanting setup with limited access. Login with one browser or computer as admin and in another browser or computer as the new user. Start editing Civi or WP Access Control settings as the admin, then refresh your other user tab and see what has changed.


Why do email drop-downs show "email protected"

I believe this is something external to civicrm. Services like CloudFlare can cause email addressed to be 'protected'  and the fact you are saying this happens on https but not http seems to be another pointer in that direction.

You might want to consider this article: https://support.cloudflare.com/hc/en-us/articles/200170016-What-is-Email-Address-Obfuscation- or the one suggested by Michael https://blog.cloudflare.com/introducing-scrapeshield-discover-defend-dete/


Getting Custom field values via API using chaining

I don't think you need to chain the calls, you simply need to specify the fields (return custom_xxx) you want to fetch from the membership.

On the API explorer, try to set the return fields you want, and check you can include the custom fields you want


Api doesn't update record vu creates new

The snippet looks correct to me, Can you try using 'contact_id' instead of 'id' as sometimes it did work for me. I am having hard time to recollect the scenario why i had to use 'contact_id' over 'id'.

Cheers

Pradeep


Payment options do not display when https used only when http used

My hunch is that CiviCRM is looking for an AJAX callback with an absolute URL.  It'll go with what's in the Administer - System Settings - Resource URLs, which is in turn influenced by the base URL in civicrm.settings.php.  The solution is to have the same URL, with https, be in effect across your entire site.

For a number of reasons, including potential problems with your session ending when you follow an absolute URL to http from https or vice-versa, you should have your site use a single canonical URL, with everything else redirecting to it.  For example, you might decide that https://example.org is the proper URL.  You should set up redirects in Apache/Nginx to have http://example.org, https://www.example.org, and http://www.example.org all send a visitor to https://example.org.

Read more at https://civicrm.stackexchange.com/a/3233/44


How can I increase the rate at which the 'fetch bounce' job works

Here is one approach - modify /civicrm/CRM/Utils/Mail/EmailProcessor.php

so it has multiple iterations specified (in example below = 40) then run via

drush cvapi Job.fetch_bounces

around line 178

// process fifty at a time, CRM-4002
    $iterations = 0;
    while ($iterations < 40 && $mails = $store->fetchNext(MAIL_BATCH_SIZE)) {
      $iterations++;
      print("\nBeginning iteration $iterations ");
      foreach ($mails as $key => $mail) {
        print(".");


Why are duplicate activities being created?

Not sure if it's the same problem but it could be the submitOnce problem which has a temporary fix in 5.14.1 and a fuller fix pending but is an easy change you can make:

See https://github.com/civicrm/civicrm-core/pull/14545/files

i.e. remove the "submitOnce" line.

Briefly the popup version of activities conflicts with the extra javascript that submitOnce adds. The problem was reproduced on firefox - just create an activity using the popup version of e.g. a meeting, from the contact's record.


CiviCRM does not store information of who accessed what, for better and worse.

If you have the advanced logging turned on, you can see changes users made.  The CMS may have a record of when they last accessed the site, if that's helpful.  There's also an extension that adds a permission to restrict exports.  While any of those might be helpful, none are what you're looking for, because it doesn't exist - sorry!


Add Email Follow Up to Meeting Completion

Emails aren't usually editable so they might not make good scheduled activities. Two alternatives:

Use the scheduled reminders feature (https://docs.civicrm.org/user/en/latest/email/scheduled-reminders/) to remind somebody to send the email at the future time, or to actually send the email, depending on what you want.
Add a new activity type called something like "send an email", and schedule that as the followup instead, just as a visual note.


Data Protection / GDPR - deleting from logging tables

Just to be sure I understand you properly: this is about the right to erasure (a contact ask your organisation to remove any data about them), right?

It's my understanding that indeed you should remove the data both from the live and the log table (as the later isn't a temporary backup but long term archive).

I recall a discussion about changing the format of the archive tables (so the engine isn't ARCHIVE anymore). The impact on the size wasn't that bad for what I remember, so it might be an option.

ALTER TABLE my_table ENGINE = InnoDB

And the only one I can think of to be able to be compliant.

I'd suggest you to check on a backup first, there is a ROW_FORMAT=COMPRESSED
option, but it seems you need to tune your install a bit to benefit from it on a per table basis... and it might not be needed, based on the size of your installation.


Can "Find Activity" automatically shows result with set parameters without going into selection every time?

You can do this with an Activity Report. Reports menu > Contact reports > Activity Report. Set your parameters then save as a new report.


Smartgroup criteria are stored using the SavedSearch api.  Use the API explorer (/civicrm/api#explorer) and select entity: SavedSearch action: get

In each of the values returned, there is a form_values key with a  list of components that define the search. The list varies depending on how the search was created.

If you look at one created from an include/exclude search, then it contains components like:

        [
            "excludeGroups",
            "IN",
            [
                "4"
            ],
            "0",
            "0"
        ],

Without checking the details of each of those parameters, it's very likely that group_id 4 is involved in this query.

Likewise for an example created from Advanced Search:

           [
            "group",
            "=",
            {
                "IN": [
                    "5"
                ]
            },
            "0",
            "0"
        ],

So group_id 5 is involved in this.

A smart group is linked to a SavedSearch by the saved_search_id attribute - in API Explorer, set entity to Group, action to get and look for saved_search_id

If you just want to understand which groups depend on others, then visual inspection of the SavedSearch.get output might be enough.

Expanding this into an extension to show those dependencies would be nice, but tricky since the components of the form_values list depends on how the search was created.  You would need to experiment with the various ways of creating smart groups to identify all the syntaxes that relate to groups but even then, custom searches define their own definitions (as include/exclude does), so it would be easy to miss some giving incomplete results.  In other words, it would be easier to say "This group does depend on this other group" rather then "This group does not depend on this other group".


How to add extra date in contribution template? or best way to do it?

Creating 10 "duplicate" fields is often a sign that there is something sub-optimal on the data modelling. As you start to realise, having the "wrong" data model is creating tons of problems further down the line, it's often better to come back to the root problem and try to fix it directly

Could you clarify your need?


How to set a default value for a custom field

Used to work, before CiviCRM v5.18

Here's how I've opted to do it. Please do submit alternative answers if there's a better way.

Use the civicrm_post hook like this:

Note that you need to replace N with your custom field's ID number

function myext_civicrm_post($op, $objectName, $objectId, &$objectRef) {

  if ($objectId && $op == 'create' && $objectName == 'Contribution') {

    // See if we have a field that belongs to the fieldset.
    $result = civicrm_api3('CustomValue', 'get', [
      'sequential' => 1,
      'entity_id' => $objectId,
      'entity_type' => "Contribution",
      'return.custom_N' => 1,
    ]);

    if ($result['count'] == 0) {
      // Create the default entry.
      $result = civicrm_api3('CustomValue', 'create', [
        'sequential' => 1,
        'entity_id' => $contribution_id,
        'entity_type' => "Contribution",
        'custom_N' => 'unknown',
        // custom_M ...
      ]);
    }

  }
}

Then when you create a Contribution, the defaults are properly set.

Interesting observations

My interest was in creating the default record when the contribution was created by the API. But I thought I'd look into how this works with using the UI too.

If you use the web UI to create a contribution then the code above gets in before the main process creates/sets the custom values. i.e. This is the order of things:

User creates a contribution record.
Contribution record created.
Our hook runs, no custom value exists so it creates the default record.
The user-entered values (inc. the defaults that were set up in the form) overwrite the default created by our hook.

The same process happens when you use the API to create a contribution but include values for the custom data also.

Why this no longer works

The above worked fine until sometime around CiviCRM version 5.18 at which point it stopped working. It stopped because during creation of a contribution this code would run, creating a custom data record, then the calling code would also try to create the same custom data record - causing a database error.

Works, if you don't need to use phpunit (so, doesn't really work!)

I found that I could acheive what I had been trying to do as follows:

function myext_civicrm_post($op, $objectName, $objectId, &$objectRef) {

  if ($objectId && $op == 'create' && $objectName == 'Contribution') {
     CRM_Core_Transaction::addCallback(
       CRM_Core_Transaction::PHASE_POST_COMMIT,
       'myfixercallback', [$objectId]);
  }
}

Then myfixercallback would do the same work. However, if you are using this then beware phpunit tests that use transaction interface: your code won't run until the test ends - which is too late!

However! it seems that CiviCRM - at least from 5.18, possibly earlier, now properly creates default custom data. So this hack is simply not needed any more. Sorry, certainly 5.24.2 does not do this.

API Wrapper solution (tested with 5.24.2)

You can implement an API wrapper, but you need to implement it for both API3 and API4.

function giftaid_civicrm_apiWrappers(&$wrappers, $apiRequest) {
  if ($apiRequest['entity'] === 'Contribution' && $apiRequest['action'] === 'create') {
    $wrappers[] = new CRM_MyApiWrapperContributionCreate();
  }
}

// ... Implement the class ...

class CRM_MyApiWrapperContributionCreate implements API_Wrapper {

  public function fromApiInput($apiRequest) {

    if ($apiRequest instanceof Civi\Api4\Generic\AbstractAction) {
      // APIv4
      $params = $apiRequest->getParams();
      if (empty($params['id']) && noneOfTheCustomFieldsAreDefinedApi4($apiRequest)) {
        $apiRequest->addValue('my_fieldset_name.my_field_name', '');
      }
    }
    if (empty($apiRequest['params']['id']) && noneOfTheCustomFieldsAreDefinedApi3($apiRequest)) {
        $apiRequest['params']['custom_1234'] = '';
      }
    }
    return $apiRequest;
  }

  public function toApiOutput($apiRequest, $result) {
    return $result;
  }
}

In this example

my_fieldset_name is the custom fieldset, in which my_field_name is a field that has '' as a default value, and an internal ID of 1234 which explains where custom_1234 comes from.
Rather than relying on setting a value to '' you could look up the default value for a field, but if you're doing this for a specific solution you can do it this way to be more efficient.
noneOfTheCustomFieldsAreDefinedApi3 needs to scan the params for fields named custom_N where N is the known ID value of each of your fields. And noneOfTheCustomFieldsAreDefinedApi4 needs to scan the params for keys beginning with my_fieldset_name.


Civicrm permissions for different departments

We have recently worked on an extension for a sports club association which means each club has officers who can create/edit events which are linked to that club, but not to other ones. It is not ready for publishing yet but will be something we will do if we think it can be made generic enough.

If you want to discuss them may be better to open a channel in https://chat.civicrm.org/civicrm/

I am doing some digging to check what the scenarios are that it caters for and which it doesn't and what it might require to make it generic.


Note if you install from a tar file the extension is not available until 5.30. Git/composer/buildkit installs have it in 5.29.
Also the styling on the search page is messy until 5.31, and before then has some other issues.
UPDATE: As of 2020-10-06, it's now visible in the UI as an installable extension called "Search Kit" that comes included with 5.31+. You just install it like any other extension. For earlier than 5.31 see below.

Using user interface

In civi go to the menu for support - developer - api3 explorer.
Choose Extension with action Install.
For parameter pick Extension Key, and for the value put org.civicrm.search.
At the bottom click Execute.
Then the Search menu will have a new option at the bottom.

Using command line

cv api Extension.install keys="org.civicrm.search"


Import from CSV and dedupe using Email (match to contact) with PRIMARY email?

In my testing, for the deduping, it actual matches against any email address no matter what the location type is.  The location type you select for email is for new contacts and what location type their email address will be imported into.


Why can Search results not be removed from mailing recipients?

I suspect this was an intended outcome ie, you do a search, you find your contacts, you use "Email - send/schedule via civimail" and that locks in the recipients.

If at that point you decide your search was incorrect, then you need to start over.


Upgrade from 4.3.1 to 4.6.9 (Joomla) = fails; DB upgrade freezes

Are you upgrading directly from 4.3.1 to 4.6.9?

If not, it might be worth trying a more incremental upgrade (e.g. 4.3.1 to 4.3.7, then 4.3.7 to 4.3.8 in case there's a sticking point there, then 4.3.8 to 4.3.11, 4.3.11 to 4.4, and so on - it's tedious, but may stop the upgrade from stalling, or give you an error message you can follow up.


You're not going to be able to inject a WordPress page/post into a CiviCRM event without some custom code.

If your event pages are dropped into WordPress pages/posts via a shortcode, you could add the bios above or below the shortcode.  This is the simplest approach, and if you wanted to reposition the bios to be within the "Description", that would be doable with 3-4 lines of jQuery.


"Safe File Extensions" can be configured under "/civicrm/admin/options/safe_file_extension?reset=1" - you could probably add .svg there.
This should allow you to upload sch files in CiviCRM. I am however not sure if that configuration also applies to Mosaico and if Mosaico can handle svg-Images.


One of parameters (value: Array) is not of the type Integer - initially observed during import, but same when visiting Contact Record

Ok - so stroke of luck - was checking the Contact table and spotted that one of my problem patients had 'array' in the Preferred Communications table, as did the other record which the import failed on. As did about another dozen.

Once I changed the value in the db i could then visit the record.

Which I guess poses another question of how did they get array in as the value and I may post that as a separate question.


Is there a way to edit tag colours through the UI?

Click on the tag to edit, then click on the color rectangle (if white than you will not see any color) . See screeprint

So in this example the color rectangle is the one in the left top hand corner.


Batch number missing in version number in civicrm.php

You can get the more granular CiviCRM version data with:

$version_file = CIVICRM_PLUGIN_DIR . 'civicrm/civicrm-version.php';
if ( file_exists( $version_file ) ) {
    require_once $version_file;
    $civicrm_version = civicrmVersion();
}


Using buildkit on MAMP but hitting "Fatal error: Call to a member function getDriver() on null"

This may indicate that either:

The PHP runtime is missing the PDO or MySQL extensions.  This may help: https://wiki.civicrm.org/confluence/display/CRMDOC/Setup+Command-Line+PHP (At time of writing, I'd avoid PHP 5.6 for CLI dev -- GenCode may have issues with it.)
The DB settings haven't been configured (e.g. the step for running amp config was skipped).
An incompatible or incorrect value was used in the DB settings.

For reference, I believe these are the settings for use with a typical MAMP. (Note: The line is long.)

amp config:set --db_type=mysql_dsn --mysql_dsn='mysql://root:root@127.0.0.1:3306' --httpd_type=apache --httpd_restart_command='/Applications/MAMP/Library/bin/apachectl graceful' --hosts_type=file  --perm_type=osxAcl --perm_user=www

However, if you didn't run amp config before, it's still good to run it to see more complete instructions (esp. regarding httpd.conf).


how are you copying/duplicating the old event?

if you have an event that you do often, it's best to make an event template and then you can create new events based on the template and edit the details that change (like date) but the ones that don't get populated automatically


Why does Sourceforge not have the 4.6.5 files?

Sourceforge had a major failure on 7/16 and their services have been slowly coming back online. Expect to see CiviCRM downloads working normally again soon.

In the meantime you can get the latest version directly from http://civicrm.org/download


Fixing Paypal error - Payment Processor Error message 10002: Security error Security header is not valid

What I discovered with the help of a friend who has lots of experience in CIviCRM is that I had set up the payment processor with the default URL for both LIve and TEst but used the SAndbox credentials only. By putting in the sandbox urls as the live urls. it fixed the problem.


CiviCRM not creating Wordpress user accounts on member registration

+1 for this question - I have had the same issue and I don't have the skills to pin it down. We have a "members only" section of our website and so having up-to-date WP Users is quite important. As a workaround, I go in about once a month and export "current" members from CiviCRM and then import them into WordPress to ensure that there are WP User accounts for each. It's messy but...

I thought it was just a bug with how we've got CiviCRM/WordPress setup (we're amateurs and muddling our way through!).

(Sorry this isn't a comment - I don't have enough cred yet to post them :). But it's an answer, just not a good one!)


You would need to reach out to Paypal and Stripe directly to ask them about how to initiate the process of transferring your recurring giving.  I would suggest inventorying your existing recurring records in Paypal first, to see how complex the data is; in a recent transition to Stripe, we encountered some challenges with constituents who had multiple payment profiles.  The more clarification you can get from Stripe about what will be required, I think the more smoothly this will go for you.  (Typically the processors would need to transfer the payment details directly.)

Hope this helps,
Lesley


Initial payment processor setup for PayPal

Take a look at https://docs.civicrm.org/user/en/stable/contributions/payment-processors/ for setup on Payment Processors, including PayPal. You can setup the Payment Processor and then create a Contribution Page for membership.


How to send one email to multiple contacts with separate individual follow-up activities

(converting comment to answer)

If you choose to create an Activity from the search results then you can specify that there should be a single Activity per contact, not one for all the contacts selected. At that point, if you specify there should be a 'follow up' then the follow up should also be 'one per contact'


Error on enabling CiviMobileAPI extension

I created a PR on the CiviMobileAPI that fixes this problem. See https://github.com/agiliway/com.agiliway.civimobileapi/pull/11


The only way i can think of is to create a custom report where you could use the criteria you want in the sql queries. i.e. remove the civicrm_contact.is_deleted = 0 in the WHERE clause.

But as mentionned by JoAnne, you may not use the delete appropriately. The soft delete only exist to avoid an entry error. Deletion (even soft delete) should only be used when the contact is a wrongly created contact (duplicate, error while importing, spam).

Anyone with valid contribution, that you want to keep track of, should not be deleted. If it's a duplicate, the contribution will be attached to the other version of the contact so it won't be lost.


It sounds like departments, teams, and sub-teams could be set up as contact sub-types of the organization contact type, possibly with custom relationships between each that are intuitively named, as described here:

https://civicrm.org/blogs/mjpforsberg/using-contact-subtypes-clutter-free-life

The hiccup with that setup might be trying to reliably get memberships to attribute from the parent organization through those relationships to the individual contacts themselves.


I finally got a JavaScript delay to work with the following code.  It's pretty ad hoc (to use a polite term) but does seem to work.  Cycles until it can see that the ckEditor header has loaded, then waits another half second for luck and selects the required template.
Regards, Tony
jQuery(document).ready(function(){

function checkBold (rep) {
    // console.log('Bold: ' + $('#cke_24').is(':visible') );
    // Waits for the Bold button in the CKEditor to appear
    if ($('#cke_24').is(':visible') ) {
        setTimeout(function(){
            $('.crm-contact-task-pdf-form-block select#template').val('71').change();
        }, 500);
        return;
    }
    if (rep > 0) {setTimeout(() => checkBold(rep-1), 100);}
}

checkBold(100);                 // Limit of 10 seconds

});


we did merge a PR fairly recently re: soft credits; I tested it extensively and it is working fine - try upgrading to the latest -dev version [best to do that on a test site - though I have some production sites running -dev at the moment]. Let us know!

PR: https://github.com/colemanw/webform_civicrm/pull/68

Awesome - one webform -> four memberships - paid for by parent -> in four installments. That soft credits PR was a first pass at that functionality. I'm not surprised not all of these situations are accounted for (yet).


Warning when importing contacts/activities

This message means that your upload will likely fail on larger files. Update your PHP.ini file to fix this conflict.

More info: PHP change the maximum upload file size


How can I use a contribution page to allow user to make payment against an existing pending contribution record?

It sounds to me more like a pledge use case. That is not something I have much experience with, but I'd think you could enter a pledge for them and when they make the contribution, it would be used against the pledge.

If you don't otherwise use pledges, you could even rename it invoices.


Can I use Webform CiviCRM Integration to always create a new contact?

I am not sure that I understand the question.

If you want every submission to create a contact without checking for an existing contact in CiviCRM, don't you do that by selecting -None- for the Matching Rule for contact 1.


Order API + Payment with multiple line items creating wrong financial trxn record?

As per this old issue and PR
https://github.com/colemanw/webform_civicrm/pull/58#issuecomment-289561525
you want to specify the price_field_value_id or else CiviCRM will try and be clever and guess one for you and will often get it wrong. I think it's using the same mechanism it uses when you specify values for a payment page without using a real price set - i.e. it access a hidden price set that it uses for the purpose.


There are a couple of ways to do this.  The way I'm describing below isn't the easiest method, but it should work in all versions of CiviCRM.

Go to Mailings menu » Message Templates.
Press "Edit" next to the template you'd like to copy.
In the editor, you should see a "Source" button.  It may look different depending on your version of CiviCRM, but the most common version looks like this:

You'll see the raw HTML, which looks like gibberish.  You'll want to do a "Select All" and "Copy" (Ctrl-A, then Ctrl-C on Windows).
Press "Cancel" to go back to the message templates selection screen.
Press "Add Message Template" to start a new template
On the new (blank) template, press the "Source" button.
Paste in the raw HTML from the origin template.
Press "Source" again, and it should look like the original - but now you're in a copy of the original template!  Save this one with its own name and edit it however you like.


Incorrect results appearing when searching for events by date range

For posterity, I'll note that this issue is resolved in CiviCRM 4.7.5+.


A look at the only code which references PEAR_ERROR_CALLBACK in CiviCRM core is telling - the file comment starts with This is an evil, evil workaround ....

So you've probably uncovered a legit unexpected bug or misbehaviour here. Something about the site setup or the volunteers extension seems to be upsetting things, but in a way that might not be experienced by the majority of sites.

Your PHP version is OK if not great, and your installed PEAR libraries should not interact with CiviCRM (which bundles its own copies of PEAR libs). So I don't think those should be your problem.

In your situation, I'd first check the Debugging and Error Handling settings (see civicrm/admin/setting/debug in your CiviCRM install) and make sure there aren't any unexpected "error callback" settings. Also check out what other extensions (especially debug related) are present in your install; try disabling those if present.

Next steps to debug would be to find backtraces in the CiviCRM debug log, and understand what code path is leading to this error.

More thoughts ... Assuming CRM_Core_TemporaryErrorScope::create() works the rest of the time, then we know PEAR_ERROR_CALLBACK is defined the rest of the time. This means that when you hit this error, you're hitting that method when PEAR hasn't been loaded at all.

The constant ought to be defined when PEAR is loaded during CiviCRM bootstrap; CiviCRM isn't going to get much done without PEAR, since it relies on that for essentials like DB access. This suggests CiviCRM has not been fully bootstrapped - we see similar issues also when the CMS is not  bootstrapped, so Drupal / Joomla / whatever functions or constants are not available.

The above could mean that the means of installing CiviVolunteer is being incorrectly applied, or that CiviVolunteer installation is broken. I don't know which; if you expand your question to describe the steps you're taking to install CiviVolunteer, that could improve the quality of answer you can get.


Custom profile only displaying one result in search

It all worked perfectly in civi 5.8.2 prior to the upgrade.
It's a bug in 5.9.0, I am experiencing the same thing.
If I remove the "Default Contact Search Profile" everything is good.
I'm using civi on joomla.


There are two issues going on here.  First, you have images that you attempt to resize, but they are appearing wrong for many recipients.  Second, you can't fix the images.

I can't answer the second issue without knowing your particular server environment.  I'm especially puzzled how you got your images up there in the first place but are having trouble now.

However, I can explain the first issue.  When you resize an image in the editor window, all you're doing is adding HTML parameters or inline CSS to constrain the images to a given height or width.  You have to trust the recipient's email client or webmail to carry out your instructions, though.

It's not uncommon for email clients to strip out the inline CSS that scales images, so that's what you're facing.  You're on the right track: get the actual image file to a size that is reasonably close to what you want, and then only trust the editor for fine-tuning.


How can I remove the Billing Name and Address section from the donation form?

How are you collecting the payment? As far as I understand it, those fields are required by certain merchant account services. For instance, on our page if we do pay later or Paypal, those fields do not come up. But if you select credit card, which is run through Authorize.net, then those fields become available (and required). There's a checkbox to state that the information is the same as what was entered above.


Can any New Zealand-based NFPs share their CiviCRM experiences?

there's a board on the CiviCRM forums for NZ users - you might get a better dialogue by posting this question there: https://forum.civicrm.org/index.php?board=78.0 . StackExchange is better for a straight Q&A format.

There are a number of CiviCRM agencies who may be able to point you to testimonials of their clients. You can search for CiviCRM experts in your country on the CiviCRM website: https://civicrm.org/partners-contributors?country=1154&service_languages_181=All&services=All&supported_cms_s_182=All


Problem installing and removing CiviCRM on a Joomla 3.6.3 site

If the CiviCRM component does not install correctly

(for example you get a blank screen instead of the confirmation page),

delete the ~/components/com_civicrm and

~/administrator/components/com_civicrm and

~/media/civicrm directories manually

and then try each of the following before attempting to reinstall:

Please refer to the below link : this is for 4.5 but still this should work for 4.7 too

https://wiki.civicrm.org/confluence/display/CRMDOC/Joomla+Installation+Guide+for+CiviCRM+4.5

I guess this helps !!!


Welcome to SE CiviCRM, Your request can be done via smart group as a work around to avoid 10 step process you can implement an extension that would calculate the recipients based on 'Re-use' mailing link or a drop down of previous mailing lists


IDS causing site to fail for lots of visitors

The first problem can be avoided by checking 'Skip IDS check' in Drupal permissions. I have this checked for my clients, and it hasn't resulted in any problems.

The second message is 'normal' - I'm getting this message too for my clients.  I guess it's some PHP warning?


CiviCRM Groups Sync Plugin for Wordpress - No access to Settings

I registered as a Guest user via CiviCRM profile (which includes a create WP user account form) and ... [snip] ... now I've discovered I cannot access the CiviCRM Groups Sync plugin's Settings page

I can't be entirely sure, but I think you may have been confused by the process of registering "as a Guest user via CiviCRM profile". When you do this and create a user account at the same time, CiviCRM will automatically log you in as that user. (FWIW that's one reason I don't use this functionality since there's no way to prevent that from happening) If you subsequently browse your WordPress site as that user, you'll find (depending on the default user role you have set) that you cannot access parts of it. You'd need to log out of WordPress and log in as your admin user to restore your capabilities.

  Also, this plugin does not really help with removing the user when their Civi Membership lapses. So really the member sync plugin would be ideal as it works with the differing Civi Membership states.

As I said in response to another question of yours on SE, this is on my to-do list. Please be patient and remember that the joy of free software is that it's free. My time, on the other hand, is limited - especially in the summer holidays. Luckily for you, funding has indeed been found and set aside to implement this - when I have the time to do so!


You can hide some of them via the UI at Administer > Customize Data and Screens > Display Preferences

e.g. http://d46.demo.civicrm.org/civicrm/admin/setting/preferences/display?reset=1


Exporting membership type and contribution total amount

I just tried this (at Stoob's request) on one report & it seemed to only require a couple of lines -

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

Note that there are several price set reports & this might not be the one you were focussed on but the principle should be the same


Missing option to create WP User from contact

This is a duplicate of this post WordPress: Creating new WP Users from Civi Contacts

On line 22 set it to true https://github.com/christianwach/civicrm-wp-profile-sync/blob/master/civicrm-wp-profile-sync.php#L22

define( 'CIVICRM_WP_PROFILE_SYNC_BULK', true );

The confusion is that you need to do a search action from either Advanced Search or Search Builder, not the actions button in the contact summary screen.


Can I specify the email location to send to?

You can already do this with CiviMail. It can be found behind the wrench icon next to the recipient selection:


Is this a paypal bug, or is this just fantasy?

We have got to the bottom of this - due to an unforseen combination of selections, the customer's basket value at the time of transaction was indeed £0. The £300 item was added later.


Contribution Widget Not Displaying Properly

Thanks to Marty Wright for reporting the bug and providing a solution.

https://issues.civicrm.org/jira/si/jira.issueviews:issue-html/CRM-17965/CRM-17965.html

The widget code generated for a contribution page fails trying to retrieve the json page data from the server. The output from http:///sites/all/modules/civicrm/extern/widget.php is:

Fatal error: Call to undefined function drupal_add_http_header() in //sites/all/modules/civicrm/CRM/Utils/System/Drupal.php on line 789

This happens because Drupal is not booted when extern/widget.php runs, and CRM_Core_Page_AJAX::setJsHeaders() calls CRM_System_Utils_Drupal::setHttpHeader() which attempts to call drupal_add_http_header().

To reproduce on the demo site:
Enable the widget on the "Help Support CiviCRM!" contribution page.
Find the javascript source url at the bottom of the generated code:
http://dmaster.demo.civicrm.org/sites/all/modules/civicrm//extern/widget.php?cpageId=1&widgetId=1&format=3
Copy and paste the url into a browser to view what should be the json output, but instead:
Fatal error: Call to undefined function drupal_add_http_header() in /srv/buildkit/build/dmaster/sites/all/modules/civicrm/CRM/Utils/System/Drupal.php on line 789

To fix the problem, I added a call to loadBootStrap() in CRM_System_Utils_Drupal::setHttpHeader()

  public function setHttpHeader($name, $value) {
    self::loadBootStrap(NULL, FALSE);
    drupal_add_http_header($name, $value);
  }


How can we create memberships with two or more accumulated partial payments?

As of now, Partial payment is only possible through backend in CiviCRM. There is an open issue which extends it to be usable from live contribution page too. See https://github.com/civicrm/civicrm-core/pull/12319. To test/use this functionality, you need to perform the following steps -

Apply this patch on your site.
Create a pending/partially paid membership for a contact.
Select Default invoice payment page from civicrm/admin/setting/preferences/contribute?reset=1.
Navigate to user dashboard and you should be able to see a pay now link which points the user to complete this payment.
The pending amount is prefilled on the contribution page and user is able to complete the payment using this live contribution page.

ToDo - On the last step, there needs to be a changeable amount field which user can use and pay the membership fee in different installments.


Are you sure you dont have logging turned on? It may be the trigger on the table failing to insert into the logging tables because they haven't been refreshed yet?

Solution is to disable logging whilst the upgrade is done then turn back on again.


Changing sort of cases with recent activities on case dashboard?

I don't think you can do it in the smarty template but since you might want the sorting of similar listings to be consistent anywhere it's used you could just change line 545 in CRM_Case_BAO_Case::getCaseActivityQuery() so that it sorts descending.

      $query .= " ORDER BY case_recent_activity_date ASC ";

becomes

      $query .= " ORDER BY case_recent_activity_date DESC ";

Obviously editing core files directly isn't recommended, but that's where the sorting happens for this.


civix permission denied errors in /usr/local/bin when generating a skeltal extension

My read on this error doesn't suggest it's trying to write to /usr/local/bin/civix - just that the files that are calling mkdir() and file_put_contents() are located there.

If you call civix to generate a module, it will create it in the current working directory.  Check the permissions of the current directory.  If that's not conclusive, you can update the question.


Welcome to SE! There isn't a built in way to print multiple labels for a single contact within the label printing functionality. Demerit's suggestion above is probably what I'd do, but if you have a regular need and want to do it entirely within CiviCRM you could produce a message template with multiple copies of the same address on it and then use the print/Merge Document on the single contact. You would have to be careful how empty address fields were handled to make sure it looked right and the spacing didn't change, but some smarty should be able to do this.


Drupal View Not Rendering HTML From Activity Email Details Field

Drupal is very secure/paranoid when it comes to outputting html/text. I suspect that the views/field integration for the entity (i.e the activity civicrm entity) might need to be updated to allow the html through without any filtering.


Delete wordpress user when related Civicrm contact is deleted

In general there is a risk of having a CMS user deleted when the CRM contact is deleted, since the CMS user can (in theory) be the author of pages, comments etc

Therefore Civicrm does not offer this directly and I think you would need to find/make a customisation/extension or see if there is a tool in WP that you could use that would make it easy to find all WP users that are not connected to a civi contact and then delete them (there are solutions for this with Drupal using Views and VBO, and potentially also Drupal Rules in case any of that provides hints for WP)


How to do a 'mock up' event or prolfile form without it going 'live' on the website?

On the first step when creating a new event, down near the bottom of the form, there is a checkbox labelled "Is this Event Active?" Un-check this and the event will be hidden from the public. You can come back later to set to true -- it's on the first tab when configuring the event.

To display the event on a WordPress / CiviCRM site you need to insert a shortcode for the event into a WordPress post. Put your cursor into the body of the post, then click on the CiviCRM triangular icon just above the field. Choose appropriate options like an event and test rather live page. That will let you test purchasing a ticket for the event without having to pay real money. Test tickets purchased also dont show up in standard reports and participant counts. When you are satisfied with the purchase pages and emails sent you should switch the shortcode to the live page and ènable the  event.

Good luck.


Public listing of newsletters in Joomla?

a bit late on this one. It's not an ideal solution, but a quick fix could be AcyMailing which has a CiviCRM plugin and front-end newsletter listings. https://www.acyba.com/acymailing/390-acymailing-plugin-civicrm.html


Does Payflow Link support recurring billing with CiviCRM?

Last I looked into it PayflowLink supported it - but the code integration was not written for CiviCRM.

However, that code was written quite a while ago and I believe that paypal has moved on & now prefers a different interaction with them is used. That might mean adding recurring would create more work. However, I would note that it only changes the nature of the 'development gap' - the short answer is that extra work is required to get recurring payments to work with Payflow Link. If you want to do that work, or commission it then I can help give development advice on it - but you might want to look at whether you are better off using a processor with existing recurring support (e.g. IATS, Stripe, Authorize.net, eway etc).

Note that if you do look into IATS you should use this link http://home.iatspayments.com/civicrm-referral - if  you are referring yourself you can put the referrer $ to CiviCRM core team I believe


Quick search icon spins forever after upgrading from 4.4 to 4.5

Since you're using multi-site Drupal, check the Image Upload URL in Civi to be sure it's not set to https://[domain]/sites/default/files/civicrm/persist/contribute/. In a multi-site setup there is no such thing as a 'default' site.

The quickest way to determine if this is your problem is to visit the CiviCRM dashboard and check the browser console for a 404 error on arrow.png. You will notice that the URL to the png file starts with https://[domain]/undefinedpackages/. Or try to use an ajax-powered feature and receive a JS error like "'back' is undefined".


I'm not clear exactly what issue you're wanting to address here, but you might want to look at running 'cv' from cron instead of cli.php/cron.php.  That does not require a password and will not record as a login.

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


assigning task of writing thank-you letters to staff members

CiviRules will indeed allow you to automatically create an activity when a new contribution is added. I assume there is an algorithm for which team member should be selected, I think you would need to create a customized action to make that happen!


How should a CiviCRM site that uses remote profiles be protected?

There are a couple of other methods that would be worth checking

RemoteForms
CiviMRF


How can I use Xdebug with CiviCRM unit tests?

Xdebug configuration is a somewhat temperamental issue -- the details depend on the IDE, the PHP build, host OS, target application, test suite, etc. Providing a good answer to this is tricky -- e.g. I could describe my configuration (Mac OS X, PHPStorm 2016.2, MAMP 3.4, PHP 5.4, buildkit/dmaster), but the odds are that most people reading it will need something slightly different -- and in six months one of those pieces will have changed in a way which breaks it.

Rather than a comprehensive step-by-step guide, we might look at a few distinct problems. After you've looked at these separately, it's easier to tackle them together.

Problem 1: Running PHPUnit generally (most PHP projects)

The idealized workflow for PHPUnit can be imagined as something like this:

1: wget https://phar.phpunit.de/phpunit-old.phar -O /usr/local/bin/phpunit4
2: chmod +x /usr/local/bin/phpunit4
3: git clone https://example.com/my-php-project.git
4: cd my-php-project
5: phpunit4

Step #1-2 can be accomplished in a few ways -- e.g. download from phpunit.de or download civicrm-buildkit or run apt-get install phpunit or somesuch. Whatever the approach, take care to note the precise name of the executable (e.g. phpunit or phpunit4 or phpunit.phar).

In step #5, you call this executable, and it reads a configuration file from your project (phpunit.xml.dist). By default, it runs all tests in your project. However, you can run a specific test-file or test-folder, e.g.

5b: phpunit4 tests/foo/MyFullTest.php
5c: phpunit4 tests/foo/

Problem 2: Running PHPUnit with the CiviCRM test cases

To run the CiviCRM tests (v4.7+), there are a few additional requirements. These requirements are generally met automatically if you use buildkit and civibuild, but it may help to describe them anyway:

You must have the command cv installed.
You must have a working CiviCRM installation.
You must have an extra, headless database defined in TEST_DB_DSN. (To view/edit this option, use cv vars:show and cv vars:fill.)
You cannot run all tests by default. Always specify a particular test-file or test-folder (e.g. phpunit4 tests/phpunit/api).
You may need to set the environment variable CIVICRM_UF. For some tests (eg E2E and WebTest), this can be blank. For other tests (e.g. api or CRM or Civi), set CIVICRM_UF=UnitTests.

Assuming these requirements are met, you can invoke the "E2E" tests using a conventional PHPUnit command:

phpunit4 tests/phpunit/E2E/AllTests.php

To run all the "CRM" tests, you would execute:

export CIVICRM_UF=UnitTests
phpunit4 tests/phpunit/CRM/AllTests.php

I suggest that you get this working before trying anything inside an IDE.

This page may also be useful: https://github.com/civicrm/civicrm-core/blob/master/tests/README.md

Problem 3: Running PHPUnit with an IDE+XDebug

This part varies widely, and I can't do it justice. I'd usually do a Google search like "phpstorm mamp xdebug phpunit" or "netbeans ubuntu xdebug phpunit" or "eclipse vagrant xdebug phpunit". For most permutations of IDE and PHP runtime, you should be able to find some guidance like this for Netbeans, or this and this for PHPStorm.

Bring it together

Whatever instructions are provided for the IDE, keep an eye out for how to set these additional configuration options for Civi:

Specify where phpunit lives (e.g. /usr/local/bin/phpunit.phar or /home/myuser/buildkit/bin/phpunit4)
Specify the working-directory as the CiviCRM folder (e.g. /var/www/drupal/sites/all/modules/civicrm).
Specify the PHPUnit configuration file as CiviCRM's phpunit.xml.dist (e.g. /var/www/drupal/sites/all/modules/civicrm/phpunit.xml.dist)
Specify the environment variable CIVICRM_UF=UnitTests.

As a demonstration, the following includes screenshots about setting those options within a specific version of PHPStorm. However, the precise windows+fields may be different in your IDE.

https://wiki.civicrm.org/confluence/display/CRMDOC/Tests+in+phpstorm
How do I run PHP Unit Tests w/ XDEBUG from within PHPStorm [on Mac]?

Variation: Extension Test Suites

Beginning in 2016, the recommended practice for testing extensions is to create your own test-suite inside each extension -- e.g. each extension should have its own phpunit.xml.dist and its own bootstrap.php file. Configure your IDE to use those resources, e.g.

Specify where phpunit lives (e.g. /usr/local/bin/phpunit.phar or /home/myuser/buildkit/bin/phpunit4)
Specify the working-directory as the extension's folder (e.g. /var/www/drupal/sites/default/civicrm/ext/org.example.mymod).
Specify the PHPUnit configuration file as the extension's phpunit.xml.dist (e.g. /var/www/drupal/sites/default/civicrm/ext/org.example.mymod/phpunit.xml.dist)
Specify the environment variable CIVICRM_UF=UnitTests.

Legacy: tools/scripts/phpunit

CiviCRM v4.7 works with a standard executable of phpunit 4.x. However, in older versions, you had to use an alternative executable, tools/scripts/phpunit. Unfortunately, this executable required a different syntax which made it incompatible with IDE's and other tools. You can still use the tools/scripts/phpunit syntax in v4.7, but I consider it a distraction.


Error when entering registration in backend

I think, I found it!

I belive, it's a problem with the german translation! IMHO, it's because off the quotes in this code.

cj('form[name=Participant]').on("click", '.validate',
    function(e) {
      var userSubmittedStatus = cj('#status_id').val();
      var statusLabel = cj('#status_id option:selected').text();
      if (userModifiedAmount < feeAmount && userSubmittedStatus != partiallyPaidStatusId) {
        var msg = "Der gezahlte Betrag ist weniger als der erforderliche Betrag. Der erwartete Teilnehmerstatus ist "Teilweise bezahlt". Sind sie sicher den Teilnehmerstatus auf %1 zu setzen? Klicken Sie auf OK für weiter, Abbruch um die Daten zu ändern.";
        var result = confirm(ts(msg, {1: statusLabel}));
        if (result == false) {
          return false;
        }
      }
    }
  );

I belive, there should be no double quotes around "Teilweise bezahlt".

No I have to find the place, where this is defined!


Why do the exported contacts differ from the contacts presented on the Advanced Search using Display Results as Related Contacts?

This is a known issue: https://issues.civicrm.org/jira/browse/CRM-15682

As a bug that affects relatively few people, the core team with their limited resources hasn't allocated someone to investigate and fix this.  If you're a developer or have access to one, this shouldn't be terribly difficult to develop a patch for; alternatively, if you don't have a developer, you may want to submit this to the paid issue queue.


Default registration status for on-line registrations

I believe you're correct that the default participant status can't be changed when using the standard event registration process. See discussion at Default participant status doesn't recognize 'order' value of status.


Can Quick Search be set up so External ID does not have to be exact match to work?

I originally wrote it that way to avoid confusion. If you want to pull up contact id 20 you'll be overwhelmed with irrelevant results (201, 202, 203, 120, 220, 320, and so on). You'll get so many results that the one you actually wanted might not even be in the list!

That said, if someone had time and/or money for the project, I'm sure there could be something smart added to the query that made the exact match show up first in the list followed by partial matches.


Send a Receipt to a user when adding a manual membership OR any payment

You may be able to hook something together using CiviRules, but it's unlikely - because CiviRules won't have the same context for generating the receipt.  So CiviRules is probably fine for sending an internal email stating, "Hey, this contribution came in, here are the details", but (most likely) can't generate the exact receipt.

That's probably good enough - but if it's not, you can create an extension to handle this, using hook_civicrm_alterMailParams.


CiviCRM Contact,get with group - change in result format

This is not an answer to your question, but were I to post it as a comment the whole thing would be on one line/unreadable. It seems to me that the most desirable format is:

[
  'is_error' => 0,
  'version' => 3,
  'count' => 1,
  'id' => 3,
  'values' => [
    [
      'contact_id' => '3',
      'groups' => array(4, 7),
      'id' => '3',
    ]
  ]
]

... or even:

[
  'is_error' => 0,
  'version' => 3,
  'count' => 1,
  'id' => 3,
  'values' => [
    [
      'contact_id' => '3',
      'groups' => array('Example group', 'Example smart group'),
      'group_ids' => array(4, 7),
      'id' => '3',
    ]
  ]
]


Search on custom 'Yes or No' fields appears broken in 4.6.6

I have replicated this on another site on 4.6.6 & logged https://issues.civicrm.org/jira/browse/CRM-17006


If "!empty" on custom note field in Drupal Views, Global PHP field

Looks like the CiviCRM is adding a space '&nbsp;' (may be because of CKEditor) into the custom table column , even though you leave it empty when adding/editing the record.

You can see it if you do var_dump of the variable. See below screenshot

So the below logic should work in this case.

<?php
if ($row->id_info_for_display_33 !== '&nbsp;'  && !empty($row->id_info_for_display_33)) {
    print $row->display_name . ", " . $row->id_info_for_display_33;
}
else {
    print $row->display_name;
}
?>

Give it a try.


how can I create an hook when external id change

Create an extension

The first step to create a hook is to create an extension.
I'd recommend installing civix which can generate an empty extension by simply typing the command :

civix generate:module myextension

Go check https://docs.civicrm.org/dev/en/latest/extensions/ for more details about extensions.

All you need to know for now is that civix will create a file called myextension.php where you can put your hooks. There are a few hooks commented as examples in the generated files.

Create the hook

A hook is simply a function that start with the name of your extension and finish with the name of the hook. For example hook_civicrm_post will be named myextension_civicrm_post in the extension we've just created.

In your case, I believe hook_civicrm_post is the one you want to use but you can see the documentation about the hooks in :

https://docs.civicrm.org/dev/en/latest/hooks/
https://docs.civicrm.org/dev/en/latest/hooks/list/


What is the difference between Tracked Opens and Confirmed Opens

The Mail Summary Report shows each time the mailing is opened, rather than the number of contacts who have been tracked as opening it (whether once or ten times).  Current versions of CiviCRM show the "tracked opens" by counting each recipient no more than once.

Just to throw a wrench into the works, many opens aren't tracked at all.  CiviMail (and all mailers that track opens) uses a transparent one-pixel image with a unique URL for each recipient.  When someone opens the email, the image gets loaded, and CiviCRM knows the recipient by the URL.

Now, many email clients don't load some or all images by default.  If the image isn't loaded, CiviMail can't tell the email has been opened.  This can skew open rates low.

It's still a valuable measure, especially in comparison message-to-message, since presumably you'll have the same mix of image blocking among your recipients.  However, know that the number won't include at least a certain portion of people opening your message.


Thanks to Kevin in the comments section. It was a plugin called Kadence Slider causing the problem. This plugin and the Kadence themes are not compatible with CiviCRM.


How to change the name of the receipt attached to new membership

While this technique might not find everything, a general technique for some of the translation questions you have can be solved by using grep from the root of the civicrm folder, e.g.

grep -r receipt.pdf *

If you know that it's likely to be under the CRM folder, which seems likely here, you can save some speed by cd'ing into that folder first.

If you don't know exactly how it's written, for example sometimes strings are concatenated, you can do something like:

grep -r receipt * | grep pdf

which will find all lines that have both "receipt" and "pdf" in the line somewhere. In fact doing that shows that the offline membership receipt is already translated with ts().

It looks like there's a few places, so you can replace receipt with ts('receipt') in the places where it isn't already ts'd:

CRM/Contribute/BAO/ContributionPage.php:441:        'PDFFilename' => 'receipt.pdf',
CRM/Contribute/Form/AdditionalInfo.php:474:        'PDFFilename' => ts('receipt') . '.pdf',
CRM/Contribute/Form/CancelSubscription.php:302:              'PDFFilename' => 'receipt.pdf',
CRM/Contribute/Form/Contribution/Confirm.php:1307:        'PDFFilename' => 'receipt.pdf',
CRM/Contribute/Form/UpdateBilling.php:371:        'PDFFilename' => 'receipt.pdf',
CRM/Contribute/Form/UpdateSubscription.php:336:          'PDFFilename' => 'receipt.pdf',
CRM/Member/Form/Membership.php:1077:        'PDFFilename' => ts('receipt') . '.pdf',

For your other question, there's a settings at Administer - System Settings - Misc to not attach pdf receipts, but it might not apply everywhere.


Add another position to a contact or enable fullt-text search for position field

You can use placeholders for this.

'%' for any number of characters
'_' for exactly one character

Searching for '%CEO%' will find all contacts that have that substring somewhere in their position field.


Log filled with CRM_Utils_System::permissionDenied

It appears that the error simply is reporting that someone is trying to access a CiviCRM page and they do not have sufficient permission to access it.

This is either due to an authorized person trying to access the page, but not having sufficient permission set, or to some unauthorized person (robot?) attempting to access the page.

I would probably try to contrast the error messages with the web server access log to try to identify what page is being attempted to be accessed, and its IP address.  If it's a robot you may be able to detect that as well. (It could simply be a search engine robot that knows of the page and is regularly attempting to access it without the proper credentials.)


How can I expose CiviPetition signatures to the public?

This isn't a function out of the box. If you are in drupal, you can use view to display the list of activities (a petition signature is "simply" an activity of type "petition signature". They are others ways to fetch data out of civi on other CMSes, but might need to write some code.

As a side note: please don't display the full name of the signatories, that might be a risk for them. It happened not so long ago that a right wing group took a list of a progressive petition and started to dox them (find their address and contact details...), contact them...

X+


The command cv (https://github.com/civicrm/cv) provides helpers for running PHP code via CLI. For example, to run a single line of PHP code, you might say:

cd web-root
cv ev 'CRM_Core_I18n_Schema::rebuildMultilingualSchema(array(...), NULL);'

The snippet you posted involves a variable $locales which isn't defined here. If you know the intended content (e.g. maybe array('en_US')) then you could plug that in directly.

Alternatively, maybe you could call that particular upgrade function addHelpPreAndHelpPostFieldsPriceFieldValue() directly. (This is not always going to work; it's a case-by-case judgment looking the substance of the function.) If it's appropriate, then:

cd web-root
cv ev '$u = new CRM_Upgrade_Incremental_php_FourSeven(); $u->addHelpPreAndHelpPostFieldsPriceFieldValue(NULL);'

More generally, you could copy the desired code out of CRM/Upgrade/Incremental/php/FourSeven.php and put it in a new file (my-upgrade-fix.php). Hack the code as desired and then run:

cd web-root
cv scr my-upgrade-fix.php


How to select a default event in webform where event is repeating

If this is on Drupal, you could generate a View that displays links to the webform and form the link with each event's event id in the URL.

Add a new view of CiviCRM Events.
This will add the event id field.  Under settings for that field, check Exclude from Display and make sure for Thousands Marker you change it from comma to none.
Add the start date field.
Add a Global Custom Text field.  In the Text area put Register for this Event (or something like that).  Under Rewrite results, select output this field as a link.  This is where you will link to the webform prefilled with the correct event id.  I don't do much work with events, but according to the help on the webform integration:

  Allow events in "User Select" mode to be auto-filled from URL.

  Example for "Register all":
  http://example.com/node/{node.nid}?event1={event1.event_id},{event2.event_id}

  Example for "Register separately":
  http://example.com/node/{node.nid}?c1event1={event1.event_id},{event2.event_id}&c2event1={event3.event_id}

So your rewrite might be something like node/1?event1=[id] where node/1 is the path to your webform.

On the webform civi settings under event, make sure you have "Allow events to be autoloaded from URL checked."

Then under the view's filter section add start date, change the operator to "Is greater than," in the Value area, change it to An offset from the current time such as "+1 day" or "-2 hours -30 minutes" and in Value field enter Now.
This should give you a view of all upcoming events with a link to the webform prefilled with the correct event.
You'd need to add some more filters to get just what you need and add a sort by start date, but this should get you in the ball park.


How to search all the fields in address as one string

This isn't a feature that exists out of the box - but addresses support custom fields, so if you're comfortable writing an extension, you could do this.  Create an extension with a hook_civicrm_pre that looks something like this:

function sharedaddresschanges_civicrm_pre( $op, $objectName, $id, &$params ) {
  if (($op == 'create' || $op == 'edit') && $objectName == 'Address') {
    $result = civicrm_api3('CustomValue', 'create', array(
      'entity_id' => $id,
      'custom_xx' => "street_address supplemental_address_1 city etc etc."
    );
  }


Putting another field on event location record

One workaround approach would be to make an event template for each location that includes the venue size. This won't work if you are already using templates in other ways and need to mix eg luncheon template with different venues.


Best way to copy Contact name to Nickname & Legal name

This chapter of the user guide should help you: https://docs.civicrm.org/user/en/latest/organising-your-data/profiles/#updating-multiple-records-at-the-same-time_1

Basically you:

create a profile with the field you want to view + the ones you want to update
Search for the contacts you want to update
With the search result actions you select Batch Update with Profile and use the profile you created


Activity processor on emails - doesn't work if sent to BCC recipients?

Neither error or design but by the simple fact that the BCC addresses will never be seen by CiviCRM.

Activity Processor relies upon receiving an email sent to it containing the relevant information.  As you are sending using BCC, the 200 or so email addresses will never appear in the email.

You should send the email from inside CiviCRM and then you will get the result you want.


How can I delete a custom field (other than GUI)?

There are a few ways to delete a custom field other than the UI:

Use the API Explorer and then entity CustomField / CustomGroup. That will allow you to delete them, but you will need to know the ID of the CustomField or CustomGroup. You can find that with the API Explorer as well. More info: https://docs.civicrm.org/dev/en/latest/api/#api-explorer
In the database, but will need to know exactly what you are doing! This is not something to recommend without a sound knowledge of the CiviCRM database. You have to make sure all the tables and data are correct and in sync with each other. There are a few tables involved:
civicrm_custom_group, which holds the details of the custom group. One of the columns is the table_name, which will hold the name of the table where the actual custom data is
civicrm_custom_field, which holds the details of the custom fields, linked with the column custom_group_id. One of the columns is column_name, which is the name of the column in the actual table with data


Problem processing payment after CiviCRM Drupal to Wordpress migration

A bit of a stab here, but have you checked the Wordpress Access Control (Administer > Users and Permissions > Permissions (Access Control) > WordPress Access Control) settings to make sure that Anonymous users have access to the "CiviContribute: make online contributions" permission?


Searching for someone not in a relationship

The 'Include/Exclude' search is very handy for situations like this:

create a group of all contacts of interest
create a group of those who DO meet some criteria
use include/exclude to include group 1 and exclude group 2 to
produce those who DON'T meet the criteria

So in your case:

create a group of all people
create a group who do have a relationship (Advanced Search, open Relationships section, select relationship types of interest, search, save group)
go to Search > Custom Searches > Include/Exclude search  include your 'all' group, exclude the 'has relationship' group (select either AND/OR - doesn't matter since you are not using tags but it is still required)  Save as a group if you want.

If you want to use this often, create all 3 groups as smart groups.


Can CiviCRM handle Extensions in tar.gz format (automated distribution)

No, it does not support tar.gz files -- it only supports zip files.

The relevant logic is in CRM_Extension_Downloader. Note that checkRequirements() and extractFiles() are written to use PHP's ZipArchive.

Update: Another tip. You may want to test that a given file can be downloaded+extracted correctly, but that usually requires publishing a new release (which means that you have publish something untested... oops). To test the download+extract steps before publishing the release, you can do something like this:

Create the zip file and determine its URL.
Run drush cvapi extension.download key=org.example.myext url=http://example.org/myext-test.zip


Event Max Participant Option Not Respected

As I understand it, the max registrants is for the front-end, not the back-end. Often times when someone is manually registering someone in the back-end, they may need to override settings like the max registrations. So it doesn't take that into consideration. If you need it to be one only, then the person who is doing the registering should book it via the front-end like as if they were a customer (make sure you're not logged in when you do it). That will set them as pending since they didn't pay via your online method. Then you'd edit the record to reflect that they paid.


Merge related activities and related groups options not available in merge contacts

Try upgrading to the latest release.

(NB I realise I may not be adding much to above comments but am trying to get some unanswered questions answered as that is currently the 'weakest' aspect of our Beta civicrm stackexchange according to these [stats][1])


Can Drupal Views filter contacts based on Smart Groups

There is a module in development here https://github.com/fuzionnz/civicrm_views_smartgroup

It comes in two flavours (as separate branches) — a simple and complex variety — that differ only in their implementation. For small databases, the simple version is recommended and is more robust. The complex version speeds up Views and is required for large databases with lots of group contacts, but pays a penalty in being less robust. Unfortunately, mysql's lack of materialised views makes this necessary.


in fact I am going in: administration> system setting> extension

With the above, I think you are able to access CiviCRM on the site. To see the extension in the administration> system setting> extension path, make sure you run the civix command in the extension directory, i.e -

Navigate to Administer -> System Setting -> Directories. Check the value of Extensions Directory input. This is where all your extension should be placed in.
Run the civix command from the terminal in the extension directory.
After the command runs successfully - you should be able to see your extension listed in Administer -> System Setting ->  Extensions path.

  I did a hello world but I do not know how to see the hello appears on the platform

You need to check how we can use extensions to extend the functionalities provided by CiviCRM. Check different hooks that can be used in extension_name.php file to add/modify results on the screen.


How do I generate sql/civicrm_generated.mysql using bin/regen.sh file?

Try:

cp bin/setup.conf.txt bin/setup.conf

Then edit and fill in appropriate values in the setup.conf file before trying to run regen.sh.


I agree with what you said at the start of your paper, "QB looks at money from the perspective of the business (the primary concern is where the money is coming from, going to, profit and loss, health of business, successful/failing programs).  The people who gave the money are only incidentally important.  Civi (or any CRM) is primarily dealing with people."
Because of this...We do not export our donor data to QuickBooks. We do not see the need to record who gave the money in both places. QB only holds the deposit information--when, how much and what campaign/fund the deposit is split into.
In Civi we have Financial Type to mark our Master categories:
Donations (Tax deductible),
Tuition (Not tax deductible),
Event Fees (Not Tax deductible),
This is useful for reports where you want to see all tuition payments for x time period
Line items are our fund accounts:
General Fund,
Capital Campaign,
Scholarship,
Event ABC,
This allows us to drill down into more detail as needed
In QBs
We use:
Customer = Fund accounting, this allows us to show income and expenses tied to our fund accounting. We can demonstrate to donors how much came in and how those funds were spent according to their designation.
Class = Functional Expense tracking, with each expense we apply it to Program, Management and Fundraising. At the end of the year when we do our 990, everything is already labeled. No need to estimate.
Department = Budget categories that different staff oversee.
This allows us to overcome QBs inability to truely handle fund accounting.
YES, as you pointed out we have to use a special report to split the deposits into the different funds/campaign before entering it into QB. We have developed a Drupal View that helps our Accounts Receivables more easily create the QB deposit entries from CiviCRM.
For my feedback: I am fine with your idea as an extension, it looks well thought out for your case use. I would make the argument that your paper starts off with the correct premise but then turns from that and treats QBs as a CRM--something it is not.
Thanks for taking the time to think through and write out your ideas on improving Civi!


With some customization/development, all your wishes can be met by CiviCRM

> Integrated into existing wordpress website
> Event registration (free and pay capabilities)

Out of the box functionality. Your WP site server needs to good enough to run CiviCRM though. And events are easy to use (free and paid).

> Ability to send out text and email notifications (walking group leader would most likely do this so phone and email information would need to be private)
> Security and privacy of participants (similar to the Remind app)

Some customization will be needed.

> Ability to set up social network and log walks into site

Please elaborate on what you mean by set up social networks. Walks can be events or activities, you will need to figure out what works for you

> Promote competition with badges/rewards

There are probably a few different ways to do this, may require some development depending on what you need. For example voting on answers like on StackExchange is not available in CiviCRM and will require a reasonable amount of effort.

You should consider working with a CiviCRM Partner/Contributor.


Drupal Block on Specific CiviEvent Page (How to?)

One option is to use .extra.tpl files to load the data you wish to display, rather than the block.  An explanation of the technique is here.  This avoids having to worry about whether something that's in scope for CiviCRM isn't in scope for the PHP visibility block.

Another is to check the value of the $_REQUEST or $_POST supervariables for some element that is specific to this page (e.g. I'm guessing the page ID is in there somewhere).  If so, you could test for the presence of that value.


Why are you saying it's the cause of the slowness? Did you manually make them null and measured an improvement of the speed?


As answered by @davejenx here ("Cannot redeclare class CRM_Core_ClassLoader" in backup site) this could be your issue.

  It sounds as though there is either a cached path to ClassLoader.php somewhere or there are two copies of the CiviCRM code under your modules directories. Various scenarios and solutions are discussed in this forum post: svn installation says "Cannot redeclare class CRM_Core_ClassLoader" Please post back here rather than on the forum, though.

  If you're sure that there aren't multiple copies of CiviCRM under /home/mydomain/www/backup/ then the most likely fix is to clear the Drupal variable civicrm_class_loader, e.g. using drush:

  drush vset civicrm_class_loader ''

  There's a good chance the fatal error will prevent the use of drush. In that case, you can delete the row from Drupal's variable table where name = 'civicrm_class_loader'. It's possible the variables are cached in addition -- you may need to clear Drupal's cache tables manually. (A targeted approach -- in Drupal 6, anyway -- is to delete the row from Drupal's cache table where cid = 'variables'.)


WYSIWYG editor missing from Scheduled Reminders popup window in Civi 4.6.3

Answering the question of how to install the TinyMCE editor extension:  It's marked as compatible with CiviCRM 4.7+.  I'm guessing it relies on functionality that doesn't exist in the current version of CiviCRM - but you could always e-mail Tyrell directly and ask him.

Assuming it works - it's submitted to the CiviCRM extensions directory, but hasn't been approved yet.  So first, make sure you have your extensions directory and URL defined (one is in Administer menu > System Settings > Directories, the other in Administer menu > System Settings > Resource URLs).  Then place the extension in a folder inside the extensions directory (use FTP or git or whatever works for you).  At this point, you should be able to go to Administer menu > System Settings > Manage Extensions and select "Install" for the extension.  If it works on 4.6, report back here please!


If you have recently moved from one location to other or DB.
please follow the link which should fix the issue

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


CiviCRM won't install (blank screen on initial configuration, GoDaddy shared hosting)

Unless something has changed, I have never been able to get Civi to work properly on cheaper shared hosting like GoDaddy. Just not enough resources and such given to each account.


CiviVolunteer: is there a way to send mailings to smart groups targeting shifts for volunteers

The "who signed up for a particular shifts" part is the problem right now. At present, you could use scheduled reminders to send an email to anyone with any volunteer activity between X and Y o'clock, but if you have two shifts (or projects, for that matter) you won't have a way to distinguish between them, so they'll all get the same message.

We're expecting to finish a proper integration with scheduled reminders sometime before March 2017, but probably not in 2016.


The custom tab contains whatever's at the URL in the url parameter.  You can test it out by simply linking to another page on your site.

Once you've confirmed that's working, you should generate a page with civix generate:page, and you can replace the url in your tab with that new page's URL.


after upgrade civicrm dashboard missing 5.23.1 drupal

Do you have multi-lingual enabled? than try to rebuild the views to see if it resolves your problem

Missing column 'frontend_title' in ''civicrm_uf_field_de_DE" after upgrading to 5.1.2

Do you have DB logging enabled? than disabled and enable back again.
Else can you check the CiviCRM log/watchdog to get more details of DB error?


Unable to create Joomla user account through CiviCRM profile

This issue is coming in case of multilingual site.

To resolve this issue , go to Root/components/com_users/models/registration.php,near line no. 307 find below mentioned code

    if (JLanguageMultilang::isEnabled())
    {
        $form->setFieldAttribute('language', 'type', 'frontend_language', 'params');
    }

    if (empty($form))
    {
        return false;
    }

Replace with

if (empty($form))
{
    return false;
}

if (JLanguageMultilang::isEnabled())
{
     $form->setFieldAttribute('language', 'type', 'frontend_language', 'params');
}

Try this solution.


Can hook_civicrm_links create links beside rows of a contact's Events tab?

$op = 'participant.selector.row';
$objectName = 'Participant';

The hook is called from CRM_Core_Action::formLink

search for the above string in CRM/Event/Selector/Search.php, and the last couple of arguments gives the needed values which is then passed on to the hook


Currently Transifex has a setting to automatically accept new team members, but it is a global setting, not per language.

My recommendation would be to use the "reviewer" feature of CiviCRM. If you tag strings as reviewed, only reviewers can edit them. You can then more easily review strings that have been translated by new translators.

I agree, however, that it would be nice to have a better welcome process for translators. Currently the only help we have, is the text shown on the main CiviCRM Transifex project page, which says "help page" and leads to Translator Resources.


How to allow a user to edit certain Civi contact records without seeing others

There are a couple of different ways you can go about this.

One would be to grant access to CiviCRM, and the bare minimum WordPress access needed to actually get into CiviCRM.  You would remove the "View all CiviCRM contacts" permission from this role (also "Edit all CiviCRM contacts") and then they only have access to contacts based on their ACL.  This method gives the member access to the CiviCRM interface.
The second method is conjecture based on a similar technique I've used with Drupal Webform-CiviCRM integration - but I'm guessing you could use a contact reference widget on Caldera Forms CiviCRM to let a (privileged) member pull up and edit existing records.  This is a bit more work, but lets you limit the interface that the member sees to the relevant fields.

If you go with the first approach, consider the Contact Layout Editor extension to give the member(s) a more limited view of the CiviCRM interface, so they can't view/edit fields/tabs they ought not to.


Does CiviRules add/remove a contact to a Group based on Membership starting/expiring

Yes Pete, we have not worked on any conditions for membership status. We never had (and never will :-)) have the ambition of creating all sorts of Conditions. We have created the engine and the conditions/actions that our projects need. However, the engine allows you to create your own conditions and actions quite easily, that is documented on our wiki: http://redmine.civicoop.org/projects/civirules/wiki

Documentation pages on creating conditions:
http://redmine.civicoop.org/projects/civirules/wiki/Tutorial_create_a_new_and_simple_condition
http://redmine.civicoop.org/projects/civirules/wiki/Tutorial_create_a_more_complicated_condition_with_its_own_form_processing
It should be a pretty easy job to add a condition for membership type or membership status.


How refund is possible for event participants in civicrm?

It's been my experience that refunds need to be done with the payment processor, not inside CiviCRM. We use Authorize.net and we just log into the system and do the refund from there. Payment systems can be real finicky when it comes to refunds because of fraud.


Wordpress with Divi: How to integrate CiviCRM contribution pages?

Detlev asked me to answer this question, but to be honest we also insert the CiviCRM contribution page with shortcode in the classic editor. Trying to include the shortcode within a divi module (Divi Text or Code Module) looks nice but doesn't work here as well.
So in detail I create the global site layout with the Divi Theme Builder and set all usefull global settings at the Divi Theme Customizer. Than I activate the classic editor in Divi Theme Options to get the CiviCRM button at the page editor. For style changes regarding the contribution form I use custom CSS as usual.
When I need more Divi Content above or below the contribution content I use the wordpress plugin Simple Divi Shortcode in addition. Therewith I can similarly integrate Divi modules (which I previously build at the Divi library) as shortcode in the classic page editor.


Upgrading Mosaico without losing templates

@mattwire helped me out. Disable the Mosaico extension, replace the mosaico directory in the extensions directory with the new version, refresh the extensions page in app, enable Mosaico, and run an extensions database upgrade. In this case there were no db upgrades necessary, but there could be depending on the versions.


How To Migrate CiviCRM From Wordpress To Drupal?

Assuming that a) you gave CiviCRM a separate database under Wordpress, and b) you installed the same version of CiviCRM under Drupal:

Dump the current CiviCRM database to a .sql file.
Load that database into Drupal.
Review "Moving an Existing Installation to a New Server or Location" for relevant details regarding deleting caches etc.
Delete all the entries out of the civicrm_uf_match table in the CiviCRM database (while logged in as user 1).
Go to Administer menu > Users and Permissions > Synchronize Users to Contacts.

That should repopulate your civicrm_uf_match table and thus connect your Drupal users to contacts.  Log out and log in again (in a different browser) to make sure everything looks good - and clear your caches again!


I don't have batch entry of contributions - why?

you can find the version of CiviCRM at the bottom of any CiviCRM page

it will say
Powered by CiviCRM 4.6.5. CiviCRM is openly available under the GNU AGPL License.

Please try to install the latest version of Civicrm which has the feature


Why does outbound email stop working after enabling the PHP Mcrypt extension?

CiviCRM has a utility class CRM_Utils_Crypt for encryption & decryption. If PHP Mcrypt is installed, it uses that plus base64 encoding. If not, it falls back to using just base64.

This class is used for encrypting some settings, including:

smtpPassword in core 4.6.30
sparkpost_apiKey in com.cividesk.email.sparkpost

PHP Mcrypt was not initially installed on the server, so these settings will have been encoded by CRM_Utils_Crypt::encrypt() just using base64_encode.

Once PHP Mcrypt is installed, CRM_Utils_Crypt::decrypt() will try to decrypt these settings using mcrypt functions. This fails in this case, because they weren't encrypted with mcrypt when they were entered.

The simplest solution is to re-enter the settings. They will then be stored encrypted with mcrypt. If this wasn't feasible, it should be possible to write a script to decode specified settings using the non-mcrypt method and then encrypt and store them using mcrypt.

A few thoughts...

If Mcrypt is not installed, settings are not being stored encrypted. It would be good if site admins were made aware of this, perhaps via the System Status page. This could also warn of the consequences of enabling Mcrypt on a server where Civi is already configured.
The conditional code in CRM_Utils_Crypt::encrypt() & decrypt(), which falls back to just base64 encoding, appears to have been added for PHP 5.2 compatibility on Windows: see Email Configuration at https://wiki.civicrm.org/confluence/display/CRMDOC/CiviCRM+Configuration . As CiviCRM no longer supports PHP 5.2, the reason for this change seems no longer to apply and perhaps we should make Mcrypt a requirement. However...
The PHP Mcrypt extension has been deprecated as of PHP 7.1.0 and moved to PECL as of PHP 7.2.0. Comments there say:

"This extension rely in libmcrypt which is dead, unmaintained since 2007."
"Avoiding mcrypt is only half of the advice. The other half: NEVER do crypto in PHP in the first place!" [It goes on to give some good arguments and alternatives.]

In summary, I think Civi should not leave it to chance, when it comes to deciding whether or not to encrypt something, whether a particular PHP extension is installed or not. It should at least warn site admins, if not require a suitable encryption method to be available. Which method that should be needs discussion, given the deprecation of PHP Mcrypt.


How to call my post_provision_install hook after CiviCRM installed?

You could perhaps do this with a CiviCRM extension rather than a Drupal module so you are sure it is only executed once CiviCRM is installed? Not sure if it is possible in your scenario.


How to display a Drupal view in a CiviCRM tab

Extrapolating on Coleman's answer, you can get the json output required by creating a new Drupal page with hook_menu.  Here is the full code:

function mymodule_menu() {
  $items['civicrm-videos/%user/json'] = array(
    'access callback' => true,
    'page callback' => 'mymodule_output_my_view_json',
    'delivery callback' => 'drupal_json_output',
    'page arguments' => array(1)
  );
  return $items;
}

function mymodule_output_my_view_json($user) {
  civicrm_initialize();
  $content = views_embed_view('my_view', 'page', $user->uid);
  CRM_Core_Page_AJAX::returnJsonResponse($content);
}

function mymodule_civicrm_tabs(&$tabs, $contactID) {

    $url = '/civicrm-videos/'. $contactID . '/json';
    $tabs[] = array( 'id'    => 'projectTab',
                     'url'   => $url,
                     'title' => 'Projects',
                     'weight' => 300,
                     'count' => 2 );
}


When creating or editing a CiviRule, not all custom fields are available in Condition Parameters

You probably need to file an issue on the Github page, and hope for technical guidance on how to solve it there.

However, I could think of a hack...

You could take one custom field before 92 that you are not using (or not using for CiviRules), and swap the id directly in the SQL-database. In that way you will probably see your custom field in the list.


Extracting a report/pulling a search result to CSV but setting an exported flag to indicate this

This Log Export extension "logs to a files within the ConfigandLog directory whenever an export happens, who performed it what columns involved and the relevant entity IDs"

There is a blog about it here


Geoff - although I do want to encourage you to upgrade your mysql you are still able to install the free version of CiviCRM on mysql 5.6 at this stage. We are discussing when to stop supporting it over here https://lab.civicrm.org/dev/core/-/issues/2481


Search builder: searching for Not equals or Not In with tags or groups doesn't include Null

Search Builder is more 'raw' and I find end-users are best to avoid it!

Search > Custom Searches > Include / Exclude Search will do what you want.

Once you have the results you could save it as a smart group for future use.


Is 'developer' tab in Reports now a deprecated feature?

To view developer tab for the report the user will need 'CiviReport: view report sql' permission. This is new permission added in recent version of CiviCRM for broader access control.

You can set permission by navigating to CiviCRM >> Administer >> Users and Permissions >> Permissions (Access Control) >> WordPress Access Control

HTH

Pradeep


Ignore Word Replacement on certain pages?

There are probably several ways to do it with an extension.

As an alternative, my guess is the following would be the simplest:

Do the regular word replacement
Change the word back per individual page, with jquery via an .extra.tpl:
https://civicrm.org/blogs/dave-greenberg/now-its-easier-add-custom-behaviors-templates


"Missing parameters" error in unsubscribe confirmation, and on some admin pages

I just updated CiviCRM to 5.26.1, and unsubscribe links seem to work now.


The answer davejenx is correct but no longer considered best practice.  Instead use:

CRM_Core_Session::singleton()->getLoggedInContactID();


Send alert if smart group contains any contacts

We've done just this using CiviRules and CiviReport, though the solution does still send emails if the smart group is empty.

I've outlined the steps here: https://civicrm.stackexchange.com/a/4873/105


how to keep previous values of custom Membership fields upon renewal

Suggest you consider using Activities since these offer greater flexibility imo.

Cases could also be considered with each plot of land representing a Case.

Either ways you end up with an annual Activity for "Plot Condition" etc etc


When importing memberships into 4.6.8, what does ""The membership cannot be saved because the status cannot be calculated" mean?

This error is part of CRM_Member_BAO_Membership.  It's triggered when there's no membership status that fits the dates in question, and so this error depends on the day you do an import!

For instance, if your memberships statuses are:
Start Date to End Date = Current
End Date to (End Date + 1 month) = Grace
(End Date + 1 Month) to Any = Expired

What happens if you import a membership with a start date of 10/25/2015 on 9/22/2015?  It's before the Start Date, so none of the statuses match.  This causes this error.

If you're getting this error and this is definitely not the case, replicate the problem on the demo server, you may have found a bug.


1) Create/Edit a profile... In the advance settings:

WordPress user account registration option? = Account Creation required

2) In the profile listing. click More > User Profile Create Mode

This page (for a non-logged in user) should have account (login) creation.


Any way to allow non validated (public visitors) to search the PCP pages available for an event?

Here’s a working example of a PCP site using that specific Veda Extension as a basis. I’ve made some small edits thus far and have committed them back upstream;

https://secure.thewellspringfoundation.org

We decided to organIze the View (list of Team and Individual PCP pages) as a Leaderboard (based on funds raised thus far) but that could easily be an Exposed Search Term in the View.


Discounts for multiple price field selections (e.g. select all five options and get $X off)

Maybe you could create the price set with 5 individual day options each at $50 and a 'Full week discount' at -$60 and then add javascript to hide the discount option and set it when all 5 days are selected.

As a javascript approach that is open to someone messing with it and selecting the discount option when they should not so you might want to add a check on the server side as well - depends a bit on your audience.


Howto register for an event with employer beside particpant

Part of the question is figuring out what you would like the end result to be.  What should the employer data look like in Civi?  The 'obvious' answer of an org record for the employer with an employer/employee relationship may not really be best.

There are many aspects to consider: If you have multiple registrations from the same employer, you don't want duplicate org records but do you want them all updating the same record?  Users may use different forms of the company name, or may use the same name to describe different parts/locations of the company.  De-dupe rules help avoid duplicates but you can end up with updates being applied blindly - ie the user does not know what data you already have and overwrites it.  On the other hand exposing your list of organisations and relevant data for them to select from has privacy concerns.

If you want to answer questions about who has attended your past events, then pulling in the employer from a relationship will give bad data if the participant has changed employer since the event.  You could try to look at the past relationships to find the applicable one at the time of the event but that gets awkward.

So... as often, there's no one answer that fits everyone.  One simple approach is to add custom fields for the employer on the participant registration profile.  If you really need a linked org record, you can create one manually.


Mailings are started but not sent - What is the difference between a scheduled job and "Run it now"?

It seems that there is a bug in CiviCRM 4.7, 4.7.1 and 4.7.2 which causes these symptoms (scheduled mailing stuck at "running" without actually sending, but will send using Execute Now). See here and here. I spent a day trying to find the problem before I came across the bug report, so hopefully this will save others some time looking for a misconfiguration of the mailer.

Edit: The problem has been fixed in 4.7.3.


CiviCRM >> Administer CiviCRM >> Profiles is blank

That's a headscratcher for sure.  Here are some things to try:

Review the log at ConfigAndLog just after you load the Profiles page.
I've seen this happen when your Resource URLs and directories aren't set properly.  Check both: Administer » System Settings » Resource URLS and Administer » System Settings » Directories.
Check the HTML to see which div is missing compared to the demo site.  Knowing that will help someone who wants to look in the source code.
You said you cleared caches - I assume that include removing templates_c.  If not, please delete that. Also check the permissions on templates_c to make sure this isn't a permission error on the compiled template.


Did you back up your database before the update (as suggested) - can you find 'name' = 'metric' in your civicrm_option_value table?


What causes this error on importing email addresses?

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


CiviMail/Cron Fails using BeeFree template

I think this might be related to the CSS brackets {} in the <style></style> tag a the top of your email source code, and/or Smarty enabled in CiviMail.

Removing entirely the style tag should fix the issue.

I think BeeFree already does inline styling, so it should not affect the formatting of the email.


Deadlocks on a high load of contact inserts

Do you have some smart groups that are getting re-calculated on each submission perhaps?

Here's my answer to a more general question about smart groups and performance:
How Smart Groups Work


Can CiviCRM work by itself (e.g. without Drupal)?

There is a paid service you can use for this, if you wish to go that route:
CiviDesk offers a hosted standalone version of CiviCRM you can subscribe to.  Nicolas from CiviDesk has expressed interest in other people using standalone Civi, so you may want to talk to him. You can download the code for standalone Civi here, but of course this isn't supported by the core team.