"Page www. ... .com does not work" when Submlitting Event Registration Webform for immediate On-line Payment

Webform CiviCRM works great with a number of Payment Processors! Especially those that process in-line (e.g. PayPal Pro and iATS Payments - Credit/Debit) - if you want to use https://civicrm.org/extensions/cm-cic-payment you'll have to check in with the Author for it - to see why this is not working for you.

I'm guessing CM-CIC may have a Payment Page? Then that will not work - you need an in-line payment processor.


CiviCRM_API3_Exception: "Authorization failed to join onto StateProvince api in parameter loc_block_id.address_id.state_province_id.name"

The problem lies with the API permission to the StateProvince entity.  Civi event users do not have access to this entity via the API. (I'm not sure why this is)

To fix this I created a custom drupal module with the civi hook: mymodule_civicrm_alterAPIPermissions

mymodule_civicrm_alterAPIPermissions($entity, $action, &$params, &$permissions) {

$permissions['state_province'] = array(
    'get' => array(
      'access CiviCRM',
      'access CiviEvent',
      'edit all events',
    ),
  );
}

Which gives CiviEvent users access to this entity via the API.


yes, its safe to remove the folder as it was part of security advisory.

see:  CIVI-SA-2020-08: XSS VIA JS LIBRARIES


Insert tokens for related contacts in CiviMail

The Related Tokens extension is currently in development and aims to provide this functionality.


CivicCRM public event registration failing to display

I know that you said you've looked at this, but it sounds like a permissions issue.

According to the documentation you need the following permissions:

  View event info and Register for events:

  If you plan to use CiviEvent
  and want to allow online event registration, enable these permissions.
  Be sure to assign permissions for the "anonymous" role if you want to
  allow un-authenticated visitors to view and register for events.

If you have custom fields you will also need this permission:

  Access all custom data:

  You must enable this permission for any role which you want to view or
  edit custom data fields. EXAMPLE: If your site uses Profile(s) which
  include custom fields, make sure the role(s) that need to access these
  Profiles have this permission. Be sure to assign this permission for
  the "anonymous" user role if you want to collect information using
  custom profiles with custom fields.

You can find more information here: Permission and access control


What is 'object_table' and 'object_id' in Acl API?

Object table is the type of data the ACL is operating on.

For eg: if you want to create an ACL which grants permission for an event - object table, in this case, will be civicrm_event.

Object id is the id of the event to which the permission is applied to. An example of API which uses these two params could be -

$result = civicrm_api3('Acl', 'create', [
  'object_table' => "civicrm_event",
  'object_id' => 2, //event id, 0 for all events.
]);


This method works for me:
{assign var=visible_fields value=','|explode:'value1,value2'}

Visible fields var:
  {foreach from=$visible_fields item=foo}

Element is {$foo}

  {/foreach}


Unable to add multiple participant registrations for one contact

As I understand you correctly, you were exploiting a bug, and now its is fixed you search for another solution. One option is to undo the bugfix.

You can do this with the following actions:

Lookup the issue (CRM-19550).
Find the pull that contains the patch (https://github.com/civicrm/civicrm-core/pull/9303).
Create a patch file

wget https://github.com/civicrm/civicrm-core/pull/9303.patch > CRM19550.patch

Reverse apply the patch on your 4.7.14 installation

git apply -R CRM19550.patch in the [civicrm.root].

You have to follow the same procedure with every upgrade.


Unsupervised reserved rule for individuals not working

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

HTH

Pradeep


Well, after hunting around on my own, I think I may be able to answer my own question.  For others who want to "link" a Profile's custom field Country to a custom field State so that changing the country automatically refreshes the list of States, I was able to do this via the civicrm_buildForm hook.  This hook allows one to modify attributes of specific form elements, and that's all I needed to do.

As of 4.5, I think, the Country/State chaining interaction is done through data-callback and data-target attributes, not through a JS snippet. So, one way to make this work is to add those specific "data-" attributes to the custom fields via the hook.

Here is my example code (apologies for bad formatting).  My State field is custom_99 and my Country field is custom_122.  Once I applied the attributes, my team registration form finally worked as before; changing the Country updates the State list.

function xxx_civicrm_buildForm( $formName, &$form )
{
  if ( $formName == 'CRM_Event_Form_Registration_Register' ) {
    // Modify the classes/attributes for country and state fields so the country dropdown will dynamically update the state dropdown
    $form->updateElementAttr('custom_99', array('class' => 'crm-select2 crm-chain-select-target crm-form-select', 'data-callback' => 'civicrm/ajax/jqState', 'data-name' => 'custom_99', 'data-select-prompt' => '- select -', 'data-empty-prompt' => 'Choose country first', 'data-none-prompt' => '- N/A -'));
    $form->updateElementAttr('custom_122', array('class' => 'crm-select2 crm-chain-select-control crm-form-select', 'data-target="custom_99"', 'placeholder' => '- select -'));
...
} // end function

By the way, civicrm_buildForm is a pretty powerful hook, I use it to set defaults and required fields based on the Event Type and values of other custom fields.


Required box not appearing, Event Registration

you will get this error due to following reason -

First if your Event registration is creating an New contact and if you have required field in your contact creation you will get this error message
OR If you have some custom field created against Event and if those custom field are required fields then you will be getting these error message
OR If you have any payment processor involved in your Event registration and if the address field are not field properly or card details are missing still you will get these error message

So just make sure you find the required field first and try to set some default value or include the fields in the event registration

If nothing helps please give some example - thanks


Donations Page with recurring and one time

I'm not sure about the integration of this with Webforms (I assume you can do it), but if you can use a regular CiviCRM contribution page, you'll be able to set up a page that offers both recurring donations and one time donations.

Under Contributions>Manage Contribution Pages>"Your contribution page">Amounts tab

You will see a field to define fixed donation amounts:

You will also see a field to define whether you'd like people to define their own donation amounts:

The third field you want to pay attention to is for defining recurring contributions as you'd like to. This will put a checkbox where a user can decide whether they want to make a recurring donation or a single donation:

Put it all together... and your CiviCRM contribution page will look something like:


CiviEvent registration, edit wording relating to a drop down menu

You can use the Word Replacement feature under Administer > Customise to make these sorts of changes ie at /civicrm/admin/options/wordreplacements?reset=1


Uploading from CSV with first and last name in the came column

If you are using excel / libre office / google sheets, you might want to use the built in spread sheet functionality to split the name column into two columns

https://www.google.com/webhp?sourceid=chrome-instant&ion=1&espv=2&ie=UTF-8#q=how%20to%20split%20a%20name%20column%20in%20excel

Might be a lot easier and faster to do so locally.


User registration checkbox in CiviEvent does not create new user and misses thank you screen

CiviCRM lets you have collect more than one address/email/phone for each contact and these are differentiated by the "location type" of each.

Standard location types are "Home", "work", "billing", "main" and "other", but you can add more if you want to.

One of these location types is then set as the default "primary" location type via a yes/no field attached to each location type.  The address/email/phone designated as "primary" is the one that civicrm will use when producing labels or sending emails or SMS to that contact.

You can override the default "primary" designation on a contact by contact basis.  For example you may have the location type "home" set as the default primary location type, but for Martha you choose to set "Other", containing a PO box address, as her primary address location.

This means that when you are creating a profile to extract information (say, a journal mailing list) from CiviCRM you need the ability to output whatever address/email/phone is designated as "primary" for each person, rather than be restricted to just the actual location types of "Home", "work", "billing" etc.

It sounds to me that you may have included the "primary" email "field" in the profile you are using to create the Drupal user.  However, it is not actually a field, but rather a yes/no qualifier for true email location type.  I think that may be why you are getting the error.

You should edit the profile and change the email field designation to be an actual email type ("home", "Work" etc.). I think that will solve your problem.


Contribution Status Edit in Options Group

Just to be sure I would add a new contribution status rather then meddle with the existing ones. But maybe that is just being to careful :-)


Membership Details Report doubt about Grouping

I think it would only make a difference if you have multi-value custom fields attached to your contact & included in the report


Personalised link using checksum tokens leads to empty page

It seems only the link was incorrect and lead to the explained behaviour. The wiki entry over at civicrm.org is inaccurate (for Wordpress installations at least). The suggested link is

.../?page=CiviCRM&q=civicrm/profile/edit&reset=1&gid=N&{contact.checksum}&id={contact.contact_id}

while in my case the correct link is

.../civicrm/?page=CiviCRM&q=civicrm/profile/edit&gid=N&reset=1&gid=16&{contact.checksum}&id={contact.contact_id}

I realised the link was missing the "civicrm" part, when I tested the profile in "create mode", which gave me the correct (second) link. Hopefully, someone else may find this useful.


Smart Groups - Added contacts show status of 'smart' not 'added'

I just tested this in 4.5.5 and 4.7.9 (sorry, don't have a 4.6 test environment) and the status of a contact added to a smart group is indeed "added", so unless it is a bug with your specific version, perhaps the contact you believe to have added actually fit the criteria of the smart group to begin with? In any case, upgrading will resolve the issue.

Kind regards,
Tamar


This is easy to achieve if your website is built using Wordpress, Drupal or Joomla, as CiviCRM integrates with all three of these content management systems.

Having installed CiviCRM (https://wiki.civicrm.org/confluence/display/CRMDOC/Installation+and+Upgrades) setting up a 'profile' (a CiviCRM term for a group of fields) is pretty straightforward - lots of guidance on this in the documentation (https://docs.civicrm.org/user/en/stable/) you can then present this to users as a form on your website for a straightforward sign-up form. I don't think a simple profile form like this allows you to send an acknowledgement email to the user though.

If you are offering a membership CiviCRM has great support for this, with a full-blown membership management component supporting both free and paid-for membership schemes. The membership sign-up mechanism does support sending an acknowledgement email, and you can do much more besides, using the Scheduled Reminder mechanism.

With Drupal as your CMS you can integrate with CiviCRM to enable you to use Drupal's Webform module, giving you more control over forms on your site.

If you are not using one of these content management systems for your website then you would need to integrate using the API.


How to clear the caches in WP / Wordpress or Drupal via url?

I just found this, so thought I'd post it :)

The URL to clear all Civi caches in Drupal is [site-url]/civicrm/clearcache

The URL to clear all Civi caches in Wordpress is: [site-url]/wp-admin/admin.php?page=CiviCRM&q=civicrm/admin/job&action=export&id=13&reset=1

this can be found by going to "Administer > System Settings > Scheduled Jobs" and saving the link url of the "edit > execute now" link of the Clean Up Temporary Data and Files job (via right click?).

One can also execute the scheduled job there....


Why does profile&gid= get converted to profile_gid_ to in the navigation menu?

Try using a question mark instead of an ampersand:

'url' => 'civicrm/profile?gid=20'


From a clarity/clean audit trail perspective, I think I would go with adding a negative contribution to reverse/adjust the previously batched contribution, including a note in the adjustment contribution record.  Some of our clients create batches just for adjustments to track them separately.  Especially if it's been exported to another system, I would think changing that exported record might introduce errors or at least confusion into the situation.


CKEditor WYSIWYG - Can't use link dialogue to create links (OK button doesn't work)

Try this:

JQuery update settings:
Set alternate jQuery version for admin pages to: 1.5

Make sure CiviCRM theme module is installed

In Appearance -> set CiviCRM Administration theme to Adminimal (or some other Admin theme)

You’ll want admin jquery 1.5 for many admin pages on your drupal site to work well. Here’s a reference: https://www.drupal.org/project/views/issues/1965674


How to create activity for automatic contribution receipts sent

You can set up a Scheduled Reminder that send an email based on the contribution activity.


Is there an extension to allow members voted into certain roles (e.g. director, communication director...)?

I don't believe such an extension exists for CiviCRM.  However, there IS an Election module for Drupal, along with Voting API, which I haven't used.  You could use CiviMember-Role sync to grant a role to members that allows them to vote, satisfying your first question.

You may be able to use Drupal Rules based on the outcome of the election - it appears Voting API supports this, not sure about Election module.  This would satisfy parts 2 and 3 of your question.


Link to filtered Activities tab from Contact Summary? (Drupal 7, civicrm 4.7)

One way to approach this is to build a Drupal View based on CiviCRM Activities that is Filtered to show just the activities that you want for the logged in user and display that block on the civicrm home page.

If that sounds like the way to go and you are not familiar with Views, then add a comment and I can probably do an export of a View that might get you started.


Unfortunately, this is simply a missing feature in CiviCRM for WordPress.  The left-hand menu is collapsible, but it's necessary for navigating the backend.

It would be nice to have the recent contacts and quick-add button somewhere, but it'll have to be within the main real estate of CiviCRM on the backend in WordPress.


Monitor ConfigAndLog .log file in real time

tail -f /your/log/file will show you lines as they are added to the file.


Admin > system settings unavailable after wordpress database import

Sounds like a permissions problem. Make sure you are logged in as a user who has full "administer CiviCRM" permissions in Wordpress.


How can I create a group containing all contacts with more than one email address?

Here's a hack that only works if you're not using the "Do not SMS" field for contacts, if you do, find a different one.

Use that field as a temporary flag to identify contacts in the group, using sql like this:

UPDATE civicrm_contact set do_not_sms = 1 where id in (SELECT contact_id FROM civicrm_email group by contact_id having count(id) > 1)
Use that field via a search to select all the multi-email contacts.
Put 'em in a group.


LExIM is the new overall release and extension strategy:

LEAP BY EXTENSION. ITERATE BY MONTH.

  It basically means that:

  CiviCRM development will now happen mostly through extensions, enabling the users to individually turn these new features on or off by enabling these new extensions
  Releases are going to be published on a predictable monthly schedule, facilitating planning and execution of regular updates by CiviCRM service providers (from here)

See also: blog post and wiki article.


API permission check failed: CiviEvents Fails after update to 4.7.19 and 4.7.20

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

Once removed the other permissions worked fine.

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


Start/member since dates not being set since upgrade to 5.3.2

I never found the cause to this, but ended up using a Rule in Drupal to set the member_since and join_date variables when a new membership is created.


Having trouble changing settings on Donations Page

On Amount tab of contribution page (Contributions menu > Manage Contribution Pages, then click Configure next to the page in question) you can either choose price set or other amount section to have text field where people can input there own amount.
See :
https://docs.civicrm.org/user/en/latest/contributions/online-contributions/#amounts-tab
https://docs.civicrm.org/user/en/latest/events/complex-event-fees/#price-sets
Price set:
You can create a price set as text field with amount set to 1 and include the price set in contribution page
OR
Other amount:
On amount tab of contribution page you can choose other amount option and choose if you want donor to donate minimum to maximum X amount.(can leave blank if dont need the restriction)


Adding an individual to the database and connecting it via a relationship to the organisation would be the coherent "CiviCRM-way" to do it. You should consider using this approach as a lot of CiviCRM's business logic is focussed around it (e.g. greetings, online forms etc.).

If you still want to stick to an "organizations-only-approach", you could simply add one or more custom fields for organisations and enter all relevant infoamtion (such as first and last name) in those fields.


Well, CiviCRM has a high learning curve, so if you think it's overkill for your needs, I'd advise you to consider whether this solution is right for you at this time.

If CiviCRM generally meets your needs and you're just looking for a way to simplify data entry, you might have a look at the Profiles chapter in the user guide.


How to have one custom field open one or more other fields in a frontend form?

I both D7 and D8 you would use Conditionals to show/hide fields.
Any field can be hidden/shown -> here's an example of a checkbox which when checked shows First and Last Name


iATS Scheduled job for recurring payments does not "finish" in the logs. How can I fix this or troubleshoot further?

a Couple of thoughts:

The Site URL is not the issue. Yes it has changed but I've confirmed
older URLs have not been deprecated - and are fully functional.
I just verified on a site/project that Using 1.5.3, Civi 4.6.26 on D7 recurring job starts and finishes successfully - with a standard CiviCRM cron (set job to ON on scheduled jobs page)
You definitively want no PDF receipts to go out with your Email
receipts. If you are still getting DOMPDF errors - do you have any
other custom functionality that's trying to create/attach a PDF?
The recurring payments job - sends the tokens to iATSPayments -> and
immediately receives a transaction ID. There is no IPN.
Try this: go to your Reports -> Create Reports from Templates -> and
go to iATS Payments Recurring Contributions Report -> Preview Report
-> do you have any next scheduled contribution dates in the past? If so then let's try trigger them manually:
Go to your Scheduled jobs and on the right side -> hit Execute Now. Check the log -> did it run successfully?
If not go to this Table: civicrm_iats_request_log and check to see which requests were made; then check the civicrm_iats_response_log for any answers from iATS.

Ok let us know what you find out.


What do I do to fix Civi Bounce Reasons that appear in strange (chinese?) character set?

Here is a scattershot of potentially useful ideas:

If you look at the contacts' primary emails do they appear as though they may be hosted on Chinese servers?
I believe the bounce reason may come from the response, but the bounce type comes from inside CiviCRM. Perhaps there is an attempt to hack mail transport agents with this??
Alternatively, perhaps there is a problem with character encoding in the mail headers or on your site more generally. Is this a multilingual site? Does your database have utf8_unicode character encoding as its default, or more importantly for all of its varchar text fields when you look at the table structures in phpMyAdmin? Have you moved the database between servers and perhaps not handled character encodings properly during export and import?

if none of this is useful, you might want to get on irc and ask bgm for help with this as he is the lead on internationalisation matters and he also happens to know a bit about email infrastructure.


I figured it out. I had a "blank" header and footer selected by default. When I removed them... problem solved.


Backdrop authentication function missing

Per comments above, this bug was fixed by @herb in https://github.com/civicrm/civicrm-packages/pull/216


Extra p tags in profile form inserted via WP shortcode

Ok, I figured it out. Here's the auto-relevant bits from functions.php:

function better_wpautop($pee){
    return wpautop( $pee, $br=0 );
}

/* This is a hack to make sure that wordpress's autop filter doesn't apply to shortcodes */
remove_filter( 'the_content', 'wpautop' );
add_filter( 'the_content', 'better_wpautop', 11 );
add_filter( 'the_content', 'shortcode_unautop', 12 );

I thought shortcode_unautop was supposed to fix this, but I took a look at it and it's a huge hack that tries to strip p tags back out of shortcode content in a truly terrifying way with a regex (ob Zalgo reference). So I made a copy of my standard page template and added the following to the top:

remove_filter( 'the_content', 'better_wpautop', 11 );
remove_filter( 'the_content', 'shortcode_unautop', 12 );

Now there is nothing autop related happening, which is fine, since the entire content of the page comes from the CiviCRM profile.


Hosting CiviCRM and Wordpress on WPengine

I have a couple of test sites running on WP Engine.   Mostly to fix an issue that came uo in CiviCRM 4.7.x.   I have installed and configured 4.6 on WP Engine.   My only issue had been they used to have many sites on php 5.3.3  but I am mostly seeing 5.5 these days.   I know CiviCRM has some issues with HHVM, so you would need to verify that your client site is not running that.  I have not used WP Engine in production yet.


Every time someone hits "Confirm Contribution" their screen just goes blank

You can look for detailed error occurrence in civicrm logs, the file location of logs would be different based on the CMS you are using. Secondly you can follow below link to configure your settings file to display errors upon white death screen.
How do I debug CiviCRM when I hit a blank page / white screen / fatal error?


This could be a place where it's just easier for the users to use an advanced search to bring up a list of households related to their own contact record. It's definitely possible that this puts too much onus on the user for your use-case, but it really only adds a couple of clicks over pulling up a report:

Advanced Search>Relationships tab
Relationship Type = your relationship from org to individual
Target Contact = the reps name

This would bring up the list of households the rep has a relationship for them. There are many ways to proceed in how they may 'tick off' these households for the year depending on the org process.

If that's too much for this set of users than your "p.s." is probably on the right track and writing a custom report is the way to go here. I would not create an entire extension for this.

If you're just adding results columns, it's usually pretty painless - the documentation is just kind of all over the place. The new .tpl file is a one-liner explained in Alastair's blog post. You can copy the base report (contact relationships in this case) .php file that is closest to what you want and then copy/paste the address block columns from a different report base that has them included.

I would like to add two resources to your links above that I found helpful to put it all together when learning custom report writing for myself:

https://artfulrobot.uk/civicrm-custom-birthdays-report

https://sf2012.civicrm.org/sites/default/files/slides/CiviCRM%20Reports-Customize%20and%20Extend.pdf


Price set expire on/active on dates relative to event

Unless something recently changed, the answer is no. We've had to do a separate price set with specific dates for every one of our events. I'd much rather have one price set for each event type, as opposed to dozens of price sets each year.


Integrating QR codes for event attendance

We have built such a solution, though no extension is available.

The key is that the QR Code simply needs to contain a URL request, with embedded querystring parameters such as event_id and participant_id. Pretty much any stock QR scanning app will recognize it as a URL, and will simply pass it on to the device's browser.

We wrote a simple PHP program that was called in the URL, that grabbed the querystring parameters (event_id and contact_id in our case), and called the CiviCRM API to change the participant status to 'Attended'.

Our app also returned a screen back to the device browser that reflected add-ons that the participant had purchased (lunches in our case).

This does have a bit of a security risk.  We got around this risk, by having a separate URL the device browser would be directed to that the user could log into and have a cookie dropped onto their device (which was then subsequently interrogated by the main PHP script to validate).


Contribution form looks different on live site

I edited the custom CSS in the template with some code to change the form label color to black.


Disabling Stripe extension breaks database

Getting your site back online, in phpmyadmin:

In table civicrm_extension, enable stripe (change 0 to 1)
In table payment_processor, disable any using stripe (change 1 to 0)

This should allow your site to load.

Deleting stripe (warning: stripe may be related to some transactions, check before doing this):

Make sure none of your donation pages are using stripe
Delete any payment methods using stripe
Delete the payment processor "stripe"
Disable extension "stripe"
Uninstall extension "stripe"

You'll still see it on the list of extensions with an install link. To get rid of it, you'll have to remove the com.drastikbydesign.stripe folder in /sites/default/files/civicrm/extension (or whatever your extensions directory is).


How do i delete country from my mailing label format

There are two ways to do this.

If you are based in the United States, go to Administer > Localization > Address Settings.  Set Hide Country in Mailing Labels when same as domain country to Yes.  You can double-check that CiviCRM thinks you're US-based by going to Administer menu > Communications > Organization Address and Contact Info and checking the Country field under Default Organization Address.
If you are NOT based in the United States, go to Administer > Localization > Address Settings.  Remove {contact.country} from the bottom of the Mailing Label field.  Note that this removes country for ALL mailings.
If you need something more fine-grained (e.g. you're not US-based, but need to remove country from mailings sent to the US), install my extension com.megaphonetech.addressl10n.  This will let you do per-country mailing label formats.


Select alias with dot is not returned from CRM_Core_DAO::executeQuery()

Depending on the version you're using you may have a different version of the pear DB_DataObject, but they all seem to have something similar to this line:

$kk = str_replace($replace, '_', $k);

https://github.com/pear/DB_DataObject/blob/trunk/DB/DataObject.php#L653

Which replaces dots and spaces in the keys of the results.

It seems like the steps it follows are:

Call fetchAll() which loops through the results
Call fetch() on each result. This will change the original keys, replacing any dots with underscores and store the value as a property using the changed key.
Call toArray() to get the output for each result. toArray() will loop through the original keys and return an associative array, mapping the original keys to their value. However since the key used to store the value has changed the value will be empty.

I'm not sure why they do this, but if you want to avoid it you can either do some sort of hacky substitution on the select aliases before and after running the query.

Another alternative is to bypass any call to DB_DataObject::fetch()

  $results = array();
  $dbResult = \CRM_Core_DAO::executeQuery($sql)->getDatabaseResult();
  while ($row = mysqli_fetch_assoc($dbResult->result)) {
    $results[] = $row;
  }

Edit:

Normal usage of SelectQuery::run() gets around this by doing a string replace of . => _ on the aliases and checking if a property existing in the BAO result.

https://github.com/civicrm/civicrm-core/blob/4c6cc3647eb7b19a05529bd40b02e26623e8effe/Civi/API/SelectQuery.php#L153

This should fix the problem, although in the later version of DB_DataObject they're also replacing spaces, which would cause problems even if using run().


CiviDiscount Navigation URL broken on Joomla

After I discovered that the CiviVolunteer menu URLs were also broken, I updated to the most recent version of CiviVolunteer. That fixed the CiviVol broken URLs, and the CiviDiscount URL is also fixed.


How can I change the way price set information is presented on a contribution page?

You can do most/all of that with an extra CSS file.  Go to Administer > System Settings > Resource URL's and enter a value for the Custom CSS URL.

In that file, you can add CSS to change the default appearance.  To figure out what to put there, you'll need to examine the page and experiment with Firefox/Firebug or similar.  There are lots of CSS tutorials around, but if you post a URL of the current version someone might suggest some CSS for you.


Name fields in Profile are Billing not Default

I think that is a fixed regression - https://github.com/civicrm/civicrm-core/blob/master/release-notes/5.20.3.md


How can many email, address and phone records suddenly disappear?

The reason proved to be that an admin user removed a Location Type. There is a clear warning if you try to do this via the UI.

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

Have asked about making the warning more specific in CRM-17273: Deleting Location Type should warn about loss of related contact data


Create Wordpress User With Given Username During Import

I figured this out with the help of @Christian Watch.

Christian's plugin CiviCRM WP Member Sync took care of this. Once a filter was added to allow plugins to handle the username I was able to change the username creation during the membership import to be what I wanted.


UPDATED State field selector and Profile Search not working

Not really an answer but I can't comment so....

Possible duplicate. See Update to 4.7.7 broke CiviCRM contact search

And https://issues.civicrm.org/jira/browse/CRM-18510

PATCH HERE: https://gist.github.com/mollux/d1fd488f56d13ded699c5620e603eb13

Tested, fixed my same issue.


Help validating our proposed WordPress/CiviCRM solution!

In general I would say that this sounds feasible.  Your requirements sound similar to how many other charities are using CiviCRM.  However, you have asked several detailed questions and I think you could benefit from discussing this in more detail with one of the CiviCRM partners (and/or posting these as separate questions).

I would also recommend that you attend a CiviCamp to find out more about how CiviCRM works and meet others in the community.  We are a friendly bunch and you will get a lot out of meeting people face-to-face.  I see that you are based in the UK and can highly recommend attending CiviCamp Manchester on 6 October 2018 if you are able to.


Configure what gets added to recent items stack / Where to implement

No need to extend the class - there's a hook for this, hook_civicrm_recent.


Civimail and Sendgrid limitations and scalability?

1,000 recipients max? I could see how just about any org will quickly run into that limit!

We end up using CiviSMTP:
http://www.civismtp.com/drupal/

Or SparkPost:
https://www.sparkpost.com

And that's just two examples - there are many other SMTP options.


Civicrm upgrade problem - will clearing cache help?

The answers here list a few different ways to clear cache: How to clear the caches in WP / Wordpress or Drupal via url? including on WordPress.


Event invitations and RSVP functionality

I found this on https://wiki.civicrm.org/confluence/display/CRM/RSVP-style+Event+Registration.

It's an old post but I had a quick look and it still should work. It doesn't allow the 'maybe' option tho....

===

1) Enable "On waitlist" event participant status (Administer -> CiviEvent -> Participant Statuses)

2) Create an event. We don't need the "Offer the waitlist" option, the below will work without it. Enable Online Registration.

3) Find contacts in CiviCRM, and on the results page, from the drop down "Actions" select "Add Contacts to Event". On the next page, change the "Participant Status ID" to "On waitlist". Uncheck "Send confirmation" if you don't want those contacts to receive an email about a fact that they were added to the waitlist. They will still separately receive a follow up email with a tokenized link to register/cancel the registration.

4) When the Scheduled Job "Update Participant Statuses" runs (or execute it manually for testing) (Administer > System Settings > Scheduled Jobs), an email with a customized link to the registration page will be send to everyone on the waitlist.

5) When a invited participant follows the link, they will be presented with an event registration page with two options: "Confirm Registration" and "Cancel Registration". If the confirm, a regular event registration page will be presented with their information pre-filled. If they select "cancel", their status will be changed to "cancelled".

To modify the text of the email that is send to participants on the wailist, update message template "Events - Registration Confirmation Invite" (Mailings > Message Templates > System Workflow Messages)


Identifying contact voting district from KML data or from state website

Google’s Civic Information API returns information about federal, state, local governments, school districts, etc. It takes as input an address string (not a lat/long pair). An API key is needed, but it’s free to obtain and use. In what little experimenting I’ve done recently, average latency has been ~350 ms.


Buildkit - amp test fails - incorrect response received

The problem was PHP files weren't being processed. I reinstalled PHP module using the following commands and it worked.

sudo /etc/init.d/apache2 stop
sudo apt-get remove --purge apache2 php5
sudo apt-get remove --purge libapache2-mod-php5
sudo apt-get install php5 apache2 libapache2-mod-php5
sudo /etc/init.d/apache2 start
sudo a2enmod php5
sudo /etc/init.d/apache2 force-reload


How can I make a filter to exclude someone who has a certain tag assigned to them? (or custom data field yes/no type)

For the filter part: different types of custom data result in different filter operators being shown in the filter configuration screen.  You can experiment with adding different custom types to see the effect on the available operators.

For your purposes, you could add an "Inactive" field of type Alphanumeric, Text.  In the view configuration for the filter you should then have the "Is empty (NULL)" operator option.  Configuring the filter with that will remove from your view any records that have something in the Inactive field (yes, moved, gone to college etc).

(NB 'text' is not necessarily the best choice from a pure Civi perspective but it will do what you need with Views.  If the "Is empty" operator becomes available on more types in future you might prefer one of those.)


Upgrade database URL loops to WP login screen but works on a cloned staging site

I stumbled across a work around purely by accident but to cut a long story short:
Problem is that since the upgrade database url points to an unsecure http file, my server then wants to redirect to the secure url - resetting the session - requiring an admin login (not sure why this is since automatic SSL redirects have been disabled). Using the upgrade url, I deliberately added an additional character/integer to the url end, forcing the browser to navigate to a http page that doesn't exist. Now that I was sitting in a unsecure 404 page, I simply deleted the previously added character/integer and voila; no redirect to a secure page and consequently the upgrade screen correctly loads.


Check the permissions on the site's civicrm directory. Make sure it belongs to the site.


Can I apply a CiviDscount discount when embedding a contribution page in a WordPress page?

CiviCRM only picks out a discrete list of shortcode parameters: see the code here.  Adding an additional shortcode parameter will not make CiviCRM recognize it and add it to the rewritten request.

Unfortunately, without rewriting CiviCRM's WordPress integration, you won't be able to get this to work via shortcode.  You'll have to use the big long URL instead.  If you're trying to generate a friendly URL, you might have to manually set a rewrite.


Paste from Text and Paste from Word in WYSIWYG Editor Throws Error

You can customize the CKE editor under Administer > Custom Data & Screens > Settings > Display Preferences, you can remove those buttons from the wysiwyg interface if you like.


For anybody running into this: fixed in 4.7.6


For new Contributions entered manually, how do I add an "InMemoriam" section to the manual data entry form?

If I understood your question correctly... Profiles that are assigned to Contributions display on the New Contribution input page but they are collapsed by default. We have a custom Profile "Other Details". My first screenshot shows it collapsed and the second one shows it opened.
If you do not see it there, then go into your Profile setting and make sure it is assigned to Contributions.


Yes, it did happen and it's called the "attachment" api. You can look up the docs for it in the api explorer:


How can I add columns to the Accounting Batch screen?

You could do this by amending the profile used by the batching page? For instance on the Drupal demo site the Reserved profiles show a profile for batch contributions. So you should just add the fields to that and they'll shown on the form?


Author of the module here...

Great question. I've forseen a need for this and have over the past few versions been stripping out sql queries and BAO calls when possible and replacing them with api calls. But that work is only around half done. And the low-hanging fruit has been picked. The remaining BAO/DAO calls are mostly still in there because there is no equivalent api.

The reason for this approach is that CiviCRM supports api calls over REST, so once we decoupled Webform-CiviCRM from calling internal Civi functions, it would be theoretically possible to pipe all the api calls over REST (assuming you had a nice fast connection between the two servers).

The only "quick 'n easy" way forward I see would be to install CiviCRM on your host Drupal site just so the internal function calls won't bomb, then swap the wf_civicrm_api function in utils.inc to use REST. That should more-or-less work, depending on your use-case.

The "correct" solution is probably to write a CiviCRM extension, installable on the source site, that provides an api wrapper for all required internal functions, and patch Webform-CiviCRM to use that api instead of direct DAO/BAO calls. This would, in theory, allow you to host CiviCRM on WordPress and integrate with a Drupal webform.


Why does nesting Civi shortcodes in Wordpress pages prevent Javascript files from loading?

https://developer.wordpress.org/reference/functions/get_shortcode_regex/
"get_shortcode_regex" doesn't seem to work when nesting CiviCRM shortcodes. I found 2 hacky workarounds.


Can I track single emails with CiviCampaign?

You're correct; the email UI (user interface) doesn't allow you to specify a campaign. However, the underlying database table is civicrm_activity, which DOES support storing an associated campaign.

You could write an extension (or hire someone to write an extension) that adds this functionality to CiviCRM, and because the underlying table supports what you're doing, it's relatively little work.


I don't know about recording directly, but in any case the resulting data would likely be large and would probably run into timeouts or other technical limits. I'd probably suggest storing the video files elsewhere and just adding a custom field to the stock Interview activity type in civi called e.g. "Audio/Video link" that's of type "Link", and then put the url to the video file in that field.


'Cases' option missing in Advanced Search - how to correct?

Can you go to CiviCRM >> Administer >> Customize Data and Screens >> Display Preferences and see if 'Cases' is ticked in 'Contact Search' option? If not check the box and save the setting.

Thanks

Pradeep


Why can't I create a new report from a template?

Sounds like you may need to ask for (or give yourself - if you can) more permissions.


Make phone type value "mobile" for every individual

You might be running the manual query under a different mysql user than the one that owns the function, so you can check who the "definer" is using show create function civicrm_strip_non_numeric;.

If it really is "missing", then you can also manually recreate the function - it's defined in CRM_Contact_BAO_Contact:
https://raw.githubusercontent.com/civicrm/civicrm-core/7f8858ced29deeabc720e1c37c42e1b7d59d8962/CRM/Contact/BAO/Contact.php

[While I first did not succeed in recreating the function, the suggestions below led directly to the desired outcome. -- Prónay]


(SOLVED) String impossible to translate Civicontribute

This is a good question.

The word "Information" is being translated SEPARATELY from the words "Credit Card". You can see this if you switch the language to Spanish for example. It will then say "Informacion Credit Card".

But the "Credit Card" part is intended to be coming from the label for the payment type as defined in the admin section for payment methods. However the code in CRM_Core_Payment::getPaymentTypeLabel() has a comment that this was never finished, and so it has the words "Credit Card" hardcoded.

If you want a hack then you can edit the line in templates/CRM/Core/BillingBlock.tpl where it says <legend>{$paymentTypeLabel}</legend> to say <legend>Desired Text</legend>, but this will get overridden each time you upgrade.


How can I restrict a users ability to edit a custom field

Unfortunately I don't think this is possible through the UI. As far as I know the ACLs for custom fields only have a combined view/edit permission - it's both, or nothing. Similarly I don't think it's possible to hide address data out of the box.

If you wanted to stop them viewing the custom fields altogether, you could turn off their access to custom data, then create ACLs for any custom fields you do want them to see:

Assign the users to a particular role within WordPress. By users, I mean the WordPress users - so the usernames they use to log into the website.
Go to WordPress Access Control and make sure they don't have the 'access all custom data' permission
Create a new group in Civi with the type 'Access Control'. Add the Civi record of all the above users to it (Each user login should have an associated record in Civi)
Go to 'Users and Permissions' -> 'Access Control' -> 'Manage Roles' and create a new role. For example, we have 'Office users', 'Home users' etc.
Go to 'Access Control' -> 'Assign Users to Roles' and assign the group from #3 to the role in #4. You could add multiple groups to this role if you wanted.
Go to 'Access Control' -> 'Manage ACLs' and add an ACL. Use the role from #4, the Operation 'Edit', the type of data 'A set of custom data fields', then select the appropriate custom fields.
Remember that these users will only be able to access the custom fields that you specifically allow them to on this screen. So you may need to create multiple ACLs, and create new ACLs when you create new custom fields in future.

It's probably worth playing around with ACLs just to check there's no way to set a view-only permission, just in case the functionality is there but the UI hasn't caught up.

It might be possible using permission hooks, though - I'll leave that for someone better informed than me.


How can I generate an internal URL to a CiviCRM page based on certain parameters?

In PHP

CRM_Utils_System::url('civicrm/contact/view', "reset=1&cid=$contactID")

See code-level docs for CRM_Utils_System::url for more details.

In Smarty

{crmURL p='civicrm/contact/view' q="reset=1&cid=`$contactID`"}

See code-level docs for CRM_Utils_System::url for more details.

In Javascript

CRM.url('civicrm/contact/view', {"reset": 1, "cid": contactID});

See code-level docs in civicrm/js/crm.ajax.js for CRM.url for more details.

This content was migrated here from the Cheatsheet wiki page as part of the 2017 wiki content migration project.


The problem is almost certainly a misconfiguration of your domain names or your SSL certificate.  Please look (carefully!) at the domain name of the page that is telling you that you don't have permission.  Then click "Back" to the page from which you clicked the link and look at the domain name there.

Is one page using SSL and one not?  E.g. does one address start with "http://" and the other with "https://"?
Does one address start with "www" and one not?  E.g. http://www.example.org and http://example.org?

If so, that's your problem.  As for fixing it - please update your question with your CiviCRM version and the CMS software/version, along with which of the two problems you're seeing, and someone should be able to point you to a fix.


How can I get Civimail to deliver emails instead of bouncing them?

Issue solved!

Somehow I had changed the setting in the (one) mail account in Civimail (Administer -> Mail accounts).

The "Used For" field had been set to "Email to activity processing" instead of "Bounce Processing".

So there was no bounce email assigned so the the send was being rejected. Setting the "Used For" to "Bounce processing" fixed the issue.


how to automatically creates a relationship

You would need to write a custom extension or module.
in this extension or module, implement hook_civicrm_post()...

Drupal module's are the simplest, if you are integrating with Drupal that is

so for example

function MYMODULE_civicrm_post($op, $objectName, $objectId, &$objectRef) {
  // if location type  is Home (location_type_id:1), operation is create, and object type is Address
  if ($op == 'create' && $objectName == 'Address' && $objectRef->location_type_id == 1) {
    // look for other addresses with the same street address, city, state, postal code, zip, and country
    $result = civicrm_api3('Address', 'get', array(
      'sequential' => 1,
      'street_address' => $objectRef->street_address,
      'city' => $objectRef->city,
      "state_province_id" => $objectRef->state_province_id,
      "postal_code" =>  $objectRef->postal_code,
      "country_id" =>  $objectRef->country_id,
      'contact_id' => array('!=' => $objectRef->contact_id),
    ));
    if(!empty($result['count'])) {
      foreach ($result['values'] as $value) {
        // check for existing relationship between contacts
        $result1 = civicrm_api3('Relationship', 'get', array(
          'sequential' => 1,
          'contact_id_a' => $value['contact_id'],
          'contact_id_b' => $objectRef->contact_id,
          'relationship_type_id' => 8, // change this to the id of the type of relationship you want to create
        ));
        $result2 = civicrm_api3('Relationship', 'get', array(
          'sequential' => 1,
          'contact_id_a' => $objectRef->contact_id,
          'contact_id_b' => $value['contact_id'],
          'relationship_type_id' => 8, // change this to the id of the type of relationship you want to create
        ));

        // if no existing relationship found create the relationship
        if($result1['count'] == 0 && $result2['count'] == 0) {
          $create_result = civicrm_api3('Relationship', 'create', array(
            'sequential' => 1,
            'contact_id_a' => $objectRef->contact_id,
            'contact_id_b' => $value['contact_id'],
            'relationship_type_id' => 8, // change this to the id of the type of relationship you want to create
            'is_active' => 1,
          ));
        }
      }
    }
  }
}


It would require a change to the core function CRM_Event_BAO_Event::getLocationEvent().  Right now, it only pulls addresses that are tied to existing events.  Theoretically, the schema supports addresses that are tied to contacts also being tied to events, but there's no way to set the contact ID on an event address or vice-versa.

In one sense, it would be nice to have an extension or core feature that is an address manager for merging addresses.  (In civicrm.org, there got to be two locations for the trainings we have at AGH Strategies: one on Colorado Avenue and one on Colorado Ave. NW.  There's no way to merge them with each other, let alone with the record for the actual company.)  Alternatively, it would be nice to have a third option besides "Create new location" and "Use existing location"--a "use contact's location" option would be basically what you need.

However, it does introduce one potential question: what if the contact moves?  If the AGH Strategies office moves to 14th Street, let's say, we'd edit our contact record at civicrm.org and the same address ID would now read 14th St. NW.  If those event records were tied to our address rather than a separate one, they'd suddenly say that trainings from last year were held on 14th Street rather than Colorado Avenue.  Now, the location of past events isn't usually a concern, but it might be one for some folks, maybe to demonstrate all the places they've had events or to research areas that are underserved.  Tying event locations to contacts would, at the very least, introduce this problem.


It's weird to see a case without a client. Maybe, it was created correctly and somehow civicrm_case_contact table row was deleted for this contact_id?

If you wish to delete this case from your site, you can make use of the API explorer - http://site-name/civicrm/api#explorer OR can be navigated through Support -> Developer -> API Explorer

Use Case Entity with Delete action and pass the case id as a parameter -

If you don't know the case id - you can check by placing your cursor on the subject column of the case detail report. The URL will be shown on the bottom left of your browser which has the caseId param as shown in the screenshot -


Can't add New Events "From Template" after upgrade to 4.6

Other suggestions that might help add clues:

confirm if you have similar problems with creating Events from templates you created post upgrade. Ie is this problem only relating to templates that existed prior to the upgrade
if any of your clicks result in a pop up box, instead of clicking, right click, open in 'new tab' then continue, that way you should see errors/backtrace (assuming you have this turned on from Admin > System Settings)
compare behaviour between your system and the civicrm demo site.


How to make links in email direct and non-trackable

Parvez is rigth!
I want to add: In your case, when you will never ever want to use trackable links, you can switch them off in the CiviMail component settings: Uncheck the options "Enable click-through tracking by default" and "Enable open tracking by default"


Where do I change the wording "membership fee total?"

It should work with Word Replacements, even for receipts. Under Administer - customize - Word Replacements.

UPDATE: Under Administer - CiviMail - Message Templates, then on the System Workflow tab, there's two receipts for memberships. You can edit it in there. If it's hard to find the wording use CTRL-F and search for Membership Fee.
Once in a while an upgrade will warn you that the template has changed and you'll need to merge the changes, but doesn't happen too often.


Split multiple user registration profiles into separate pages

One option would be to do this using Webform (which allows for multipage forms) and utilising Rules to trigger the Drupal User creation. There was a blog Fuzion wrote sometime ago outlining such an approach.

In order to ensure that people visiting user/register end up on this form use the Redirect module to push them through to the relevant node.


No, there is no token for base URL is available in civicrm. If you want to use base URL in templates, you can try this:

 // Declare $config;
 $config = & CRM_Core_Config::singleton();

 $baseUrl = $config->userFrameworkBaseURL;

This will gives you base URL and use variable "$baseUrl" in your template.

Another way is, you can create your custom token for base URL.Refer following link:
http://wiki.civicrm.org/confluence/display/CRMDOC/Customized+%28and+Custom%29+Tokens


ah, yes, Exchange. That mail server that behaves almost like the others, but not quite.

You have 3 paths out of that:

1) use a separate "normal" email server, eg postfix for sending your emails and set up a catch all email address on 365 to handle the bounces

2) use a mail provider for your mass mailing (sendgrid, mailjet, amazon aws...). They probably all need you to install a civicrm extension to handle the bounce events

3) contribute a feature to civicrm so it doesn't need VERP. This isn't that far away, the data of the VERP is already added as an extra line in the mail header and for what I've seen, most of the bounce emails copy it.

So the "only" things you'd need: prevent civi to rewrite the from email with a VERP and change the bounce processor to look at the extra header instead of the envelope email.

I'd suggest you 2, mostly because you are likely to have a better deliverability on your mass mailings than relying on exchange.


How do I override the default CKEditor configuration?

To answer your question about how to modify CKEditor's config.js:

In 4.6

You need to "hack" the config.js file within CiviCRM itself (packages/ckeditor/config.js). Editing this file will modify all instances of CKEditor in CiviCRM (angular and quickform add a few additional settings related to file uploads but they do both respect that file). If you don't see your changes right away, clear your browser's cache. Note that this file will be overwritten with every upgrade.

In 4.7

4.7 adds a GUI in Display Preferences to modify plugins and button groups, and this will generate at least one config file named crm-ckeditor-default.js in your files/civicrm/persist directory (more files will be created if you click other tabs e.g. for CiviMail or CiviEvent). This file won't be overwritten during upgrades, but will be overwritten if you make changes from the GUI. There is also a new hook_civicrm_coreResourceList which you can use to specify a different config file depending on whatever logic you want like current page, current user, etc.


GDPR Civicrm Bug when attempting to forward to another thank you page?

thank you for reporting the problem. I tried to reproduce the problem on my website - it actually appears at absolute addresses. I link your entry, I will add my screenshots and create a problem notification in the plugin. Regards
Marcin Lewandowski
The Star of Life Foundation

EDIT - issue is here


How can Wordpress user edit Organisation details?

there is another option you might not know about. Users can be given access to their "My Contact Dashboard" eg at civicrm/user?reset=1 (in Drupal it is at that path).

And if X has permissioned relationship over Y, and if you have not unset it from /civicrm/admin/setting/preferences/display?reset=1 then X should see Y listed, and should be able to 'edit' (some of) their details. hth


User lets membership expire, and then signs up again, membership stays as expired?

For anyone else that stumbles across this because they are facing something similar:

I got a response on mattermost from Matt @ MJW consulting pointing me to this issue - https://lab.civicrm.org/dev/membership/issues/18

Other people have come across this, there is a patch, but it hasn't been progressed yet.


How do I prevent a user from adding contacts to ACL groups?

With situations like that I simply just disable the group. The ACL still works, but users don't have access to add anyone to the group.

If you need to add someone else to the group, just enable, add and disable again.

Heather.


Error when processing Pay later contribution

I'm relatively new to CiviCRM and realize this is an old thread, but I just got the same error on Wordpress 4.7.4 and CiviCRM 4.7.15. I was trying to record a update a membership based on a cash payment. Screen shot below shows the error received. I unchecked "Update Payment Status" and was able to save and continue. I had to add a new contribution for this person after saving the the membership changes.


You could do this fairly easily with the Contact Layout Editor extension (assuming you're on CiviCRM 5.x).

Use the extension to remove the existing Communication Preferences block from the Summary page.
Build a custom block that includes the normal communication preferences fields plus "Do Not Voicemail".
You'll probably want to remove "Do Not Voicemail" from the custom field block in a similar manner so it doesn't appear twice.


My bad newbie error. The phone numbers matched but one was a household contact and the other an individual and deduping doesn't cross types. Same goes for all our rules.


I haven't experienced this myself, but -- skimming the code in index.php -- it appears to track a variable called civicrm_install_type. The variable defaults to drupal but can be set to wordpress by passing ?civicrm_install_type=wordpress. Once it is set, it's stored in the SESSION and reused for future page-views.

One way you could probably trigger this behavior is to install WordPress+CiviCRM, swap out the code base, and replace it with a Drupal+CiviCRM codebase (on the same server, using the same browser session).

If this were the situation, you could get around it by either:

Resetting the PHP session (eg deleting cookies or logging out).
Explicitly passing ?civicrm_install_type=drupal when visiting civicrm/install/index.php.


Restrict Membership Payments to Fixed Contribution Amounts in 4.7

The screenshots don't match the settings you listed above (e.g. "Additional Payment" is set to "Yes") but assuming the question is, "How can I match the 4.7 screen to the 4.0 screen?" you can add a Price Set for Memberships.

Go to Memberships menu » New Price Set.
Fill in the required fields.  Used For should be set to Membership.
On the New Price Field screen, set the Input Field Type to Radio.
Create as many options as needed, setting the "Membership Type" to the "A" Membership.
Go to the contribution page in question's Membership tab.
Set the Membership Price Set to the set you just created and save.


Problem with recurring contributions on PayPal sandbox

Normally I create an account on the Paypal Sandbox server and then create a sub-account on that which has a bank account, balance, etc. And then when I test via the sandbox, I log into that sub-account and "pay" via it. I've never tried creating an account once I get sent over there to pay. Maybe that is the issue. But since it's stuck over at Paypal, this sounds more like a Paypal issue?


Upgrade from 5.11.0 to 5.12. failing database update - solution found

It was my table and column collation settings. Both were latin1_swedish_ci. Evidently this collation does not support the weirdo characters those foreigners use ;^).

I rolled the database back using the backup I made (ALWAYS glad I make a backup before upgrading!!!). Then using phpMyAdmin I edited the table civicrm_state_province to have a collation of utf8_general_ci. I then re-upgraded the civicrm installation and all went well.


DeDupe errors when Individuals have Membership (by relationship)

We have had a similar problem - https://gist.githubusercontent.com/deepak-srivastava/e3a440023621cd4ecbde3904f9b27d2c/raw/7d2e854aa4ad7a8f00d87581dca729623d5ba687/bto-membership-by-relationship-error.log

Seems like method createRelatedMemberships(&$params, &$dao, $reset = FALSE) in loop sometimes resets $params.
The while loop at the end of the function seems to be the cause. Don't see why anything from queue should reset it.

Have developed a patch - https://github.com/deepak-srivastava/civicrm-core/commit/96fba9b2533b45d9baaef8b0f7ea43bc85ae0ee9

Seems to be working so far. We 'll test it a bit more, and if ok submit a PR to core.
Meanwhile would you be able to confirm if the patch works for you?


you have a problem outside of civicrm realm: you are trying to send an email from a domain name that has a SPF record that doesn't include your server IP address.

it is the domain that you have set up for the bounce that needs to have the SPF record.

However, before you go down that rabbit hole: google has limitations on how many emails you can sent via their smtp server. It will never work for a production configuration as soon as you have more than a handful of contacts you want to mail.

I would suggest you to use an external provider to do the mailing (they are lots of providers (civismtp, sendgrid, mailjet...) that can easily be integrated with your civicrm that you can use.


Installing CiviCRM 4.7 in Drupal 7 can't match requirements

The real issue is that your database credentials are invalid.

Access denied for user 'civicrm'@'localhost' (using password: NO)

Access denied for user 'drupal'@'localhost' (using password: NO)

Most likely the warning you are seeing is due to the connection object being FALSE as a result of not being able to connect, instead of a mysqli connection object.

The database: 'drupal' does not exist.

You should also at the very least create the drupal and civicrm databases you intend to use; Drupal and CiviCRM's installation will create all the necessary tables.


What does the 'Validate Email Address from Mailings' scheduled job do?

The scheduled job examines previously sent emails (in the range of dates if given) for any confirmation that the email was rec'd, typically opens or clicks, and if found the reset_date is updated.


Issue Setting CiviCRM up with Wordpress Multi-Site

Check your civicrm.settings.php is valid after making those changes. It may be some small error has crept in and proving hard to spot.

php -l civicrm.settings.php

(This will require commandline access on the server, or copying the file somewhere you have CLI PHP installed.)


You don't mention which CMS you are using but if Drupal, you might find it easier to do this with a webform.

If you're not on Drupal and want to do this with profiles then take a look at the Profile Conditionals extension


Need help understanding contacts hierarchy

There's no reason not to make all of your entities Organizations (using Contact Subtypes), since that's what they are.  CiviCRM doesn't have a built-in "contact hierarchy".  The hierarchy is implemented through relationships, and you can define your relationships however you like.

I'd read the documentation on contact subtypes and relationships and see if that helps to answer your question as well.


But once I go to case1=4 or 5 it does not work

The case loaded on the webform is specified by passing the id in the form of case{fieldset}=<case_id>.

For eg loading case id = 1 on fieldset 2 would be done by adding case2=1 in the URL.

Also make sure the contact loaded on the same fieldset is a client of the case. For eg - if contact A is attached to caseid = 2. Add this in the URL to load the case on the form =

webform_url?cid1=<contact_id>&case1=<case_id>

Similarly, if case is loaded on fieldset 2, the url would be -

webform_url?cid2=<contact_id>&case2=<case_id>


I don't have an idea why it got turned off; perhaps an upgrade cleared it?

At any rate, a fresh install does not set a default selection on these radio buttons. You should be able to simply select Yes and then save.


Exporting primary addresses exports non-primary addresses for some contacts

It turns out that the "Search Primary Details Only" setting causes this problem (found under Administer-> Customize Data and Screens-> Search Preferences). It seems that if this setting is off, the listings and export will default to the address which was created earlier.

See here for details:
Contact Search Results Address Type

This is a weird behaviour in the listings, but for the exports seems like a bug as selecting primary address types in an export does not return primary addresses.


There are a number of reasons PDFs from reports can crash.  It's usually a matter of running out of memory, but that's not exclusively a hosting problem.  If you have a really big report with tons of pages and tons of columns, that can cause problems when a 4- or 5-page report displays easily.  Remember: when you view the report, you're only seeing one page's worth; when you're sending it to PDF, you're rendering all the pages at once.

You should probably try installing wkhtmltopdf, which runs a headless WebKit on your server to generate a PDF.  CiviCRM has built-in support for it; it's just not the default because it doesn't assume you can install additional software on the server.

Once you've installed it (there's a package for Debian wheezy), just go in CiviCRM to Administer > System Settings > Misc and tell it where to find wkhtmltopdf on your system.


Allow region reps to have RO to global mship info - but only to their own regional records. Db field or tag for "region"?

I would recommend using Relationships and adding this extension which then means you can use the Relationships as the way of controlling who sees which records
https://civicrm.org/extensions/relationship-permissions-acls


My dashlets have stopped working after my host moved my domain to another server

Please check your civicrm.settings.php and after that

Administer - System Settings - Directories
Administer - System Settings - Resource URLs
Administer - System Settings - Cleanup Caches and Update Paths

And then Clear Cache again


How to set up Accruals Accounting/Deferred Revenue?

There is probably a bug in storing the settings for this option, which prevents it from having any effect. See also here.


We did nothing special, the custom fields showed up for contact in the webform settings? Like so (on the CiviCRM tab in the Webform):

And if you then click 'Yes' you can use the custom fields?


Contact created from relationship tab is automatically tagged

If you haven't found the cause by looking around, you can write an extension that uses hook_civicrm_pre on the Tag entity to call CRM_Core_Error::backtrace().  That should show you what's calling the tag creation code.


angularjs: example from docs.civicrm.org does not work

As I mentioned in the comments you should be sure to enable your extensions such as with cv ext:enable <extension name>

Check what warnings you're getting in the console. I was getting warnings about the injector but after clearing the cache (drush cc civicrm) and setting the right file permissions on the files in my extension these went away and I could view the page.

I was still getting errors about a missing CSS file, but I think this is a bug where these angular modules don't respect the variable extensions directory (my extensions are separate from the application files)


How to sort in descending order the results of CiviCRM API

sort option takes the parameter followed by sort_order in civicrm api.

For eg - the following works fine -


CiviReport's and CiviContribute Charts not displaying

Some browsers don't show up flash chart by default, you will need allow flash for certain urls or make it allow for all sites. This answer might be useful to fix your problem.
HTH
Pradeep


As you have noted, the big problem with the ACL group system is the lack of control around adding to groups.  I've used the Group Protect extension previously and it does the job.


How do I add a 'CiviCRM ID' column to an activity report?

The possible way to add CiviCRM ID (Internal Contact ID) is to use the find activities -> From search , find activities, select search criteria ( some Activities status are default on 'Activity Status'), - hit search, use action menu to export activities, Select fields to export ->continue, on the next page you can select individual fields to export (including Internal contact ID) and the activity fields you wish to export.


This is a really broad question, and without some guidance as to what you consider a "professional CRM applications" looks like it is tricky one to answer.

That said, with Drupal we often built out a UI via Views and Webforms that can keep all the but the hardcore admins out of civicrm entirely  - depending of course on what the extent of their requirements are.

This may be an easier path for you to explore than rebuilding the civicrm ui directly.


Suppress default CRM.alert in hook_postProcess

To clear all status messages and prevent them from being shown to the user, you can do:

CRM_Core_Session::getStatus(TRUE);


How can I create a group of everyone who gave in honor of a specific person?

I wrote an extension Soft Credit Custom Fields which, amongst other things, adds a "Soft Creditee's Name" field to the Advanced Search.


PayPal Standard - users getting "Could not find a valid session key"

Ken West,

I guess your cron job 'Clean-up Temporary Data and Files' must be running when your site is busy. The session key is not an usual error. CiviCRM stores sessions variables into its database int the form of cache. When 'Clean-up Temporary Data and Files' schedule job is executed or CiviCRM cache is cleared manually the cache table is truncated. So when the user leaves CiviCRM and goes to Paypal standard for making payment and come backs to CiviCRM once payment is done and between these process CiviCRM cache is cleared than CiviCRM won't get the session key of the user from the cache table and you will end up the error message of session key invalid on screen.

Try if you can replicate using below step
1. Open 2 browsers(normal user and admin).
2. 1st browser - Do a donation, Click on confirm.
3. Once the user is on paypal screen(don't proceed with payment), from browser 2 clear civicrm cache.
4. From browser 1 proceed with payment in paypal

Solution:
Try running the 'Clean-up Temporary Data and Files' schedule job once is a day when your site is not busy.

Cheers

Pradeep


Email address is missing on Thank You page where it says "An email confirmation with these payment instructions has been sent to"

This is a CiviCRM Core bug, reported here: https://lab.civicrm.org/dev/core/issues/173

It applies to pay later contributions when the email address is included in the profile.


How to send a confirmation email when adding a contact to group via API?

We’re using civicoop email api extension on 4.7 and that means it should work on 5.x as well.


If you are in Drupal, Webform with Webform Civicrm Integration could do this. It allows you to have users create any number of contacts, along with relationships between contacts.


This was reported recently, but I haven't had a moment to get into it. It should be a trivial fix, but you could also resolve this by turning down your PHP error reporting. See this relevant PHP documentation. It is inadvisable to run production sites with display_errors enabled.


Extended Security Release confusion. Which version?

Based on some posts in chat it sounds like both 5.7 and 5.13 are current ESR, with 5.7 supported for another month or so. The webpage seems out of date a little.


Please add required fields to your form, at the moment it's possible to submit form with no data and even a spam bot can bypass the CAPTCHA.

Protect also the publicly accessible form with SSL certificate


How can I link E-Mail greetings/Postal greetings to "formal" or "informal" communication style?

If you're talking about CiviMail message templates I think this is very similar to this question, maybe even a duplicate. You need to use {capture} and then put the captured variable in your if statement.


Civicontribute: Missing payemnt options when required field missing or back button

I didn't see a specific issue but this looks fixed in latest template file: http://bit.ly/1NecugN


Move all accounts with certain Drupal role into CIviCRM group

If you're feeling brave, and you've got a test site to try this out on first, this should be doable almost instantly via a SQL statement.

To simplify this query, first look up the group ID (SELECT id FROM civicrm_group WHERE name = 'Spam Group') and the Drupal role ID (`SELECT rid FROM role WHERE name = 'spam account').

Note: If you have separate databases for Drupal and CiviCRM, you'll need to preface references to tables with the database name.  I'm assuming some basic SQL savviness here - my apologies if this isn't helpful as a result!

Once you have the role ID and group ID (we'll assume "12" and "23" respectively below), do the following:

INSERT INTO civicrm_group_contact (group_id, contact_id)
SELECT '23', civicrm_uf_match.contact_id
FROM users_roles
JOIN civicrm_uf_match ON uid = contact_id
WHERE rid = 12;


Why do I get security warning & how to remove?

So as he why you get security warnings: because civi has found your configuration insecure, ie. you have files that shouldn't be accessible on the web but are.

As how you fix it (and get rid of the warnings), it depends on the web server you use and how it's configured.

The .htaccess rules only work for apache, and only if it's configured to read them. If you use nginx or another webserver, you will need to implement the rules denying access to these forbidden folders differently.


You can add a second commit and push to the same branch, which is what I'd generally do. The PR will be updated with additional commits to the PR's branch.

git add --patch
git commit
git push REMOTENAME BRANCHNAME

If your branch hasn't been merged (and you're not concerned about others having worked on the same branch), you can also amend your commit and then force-push. But this is more likely to cause grief IMO.

git add --patch
git commit --amend
git push -f REMOTENAME BRANCHNAME

If you really regret a PR, you can delete the remote branch and start over. This will probably destroy the PR, but you can make as many branches and pull requests as you like.

A colon before the branch name will push "nothing" to that branch, deleting it.

git push REMOTENAME :BRANCHNAME


How to display an extension's form as a public Wordpress page

See also: http://wiki.civicrm.org/confluence/display/CRMDOC/Displaying+Public+Forms+in+WordPress+Frontend+Sites
If you generate a link programmatically with CRM_Utils_System::url(), there is a boolean parameter ($frontend) which determines whether the URL will use WP's frontend system or backend system. Most forms are in the backend, so the the default is to use backend. See also: https://github.com/civicrm/civicrm-core/blob/4.6.beta5/CRM/Utils/System.php#L212
It would be great to support clean URLs (http://site.org/civicrm/foo) on WordPress. I'm not a WordPress expert, and I've been told this is an esoteric area in WP (virtual pages?), but from Civi's perspective... we basically need some kind of rule in WP that maps all requests for "/civicrm/*" to CRM_Core_Invoke::invoke().


How to identify case activities in find activities or advanced search

The custom search called Activity Search shouldn't be too hard to update. (See Find - Custom Searches - Activity Search. The file is CRM/Contact/Form/Search/Custom/ActivitySearch.php.) It already includes some partial case-awareness.

In fact, if you run it and then select all records, and then from the actions dropdown choose export contacts (yes, contacts), it will then export the activity records and there'll be an unnamed column that has the case id. There's 3 unnamed columns - the last one is case id, and it's blank if it's not a case activity.


Delivery has not yet begun for this mailing

Did you set up cron? All Scheduled Jobs are executed by cron.

http://wiki.civicrm.org/confluence/display/CRMDOC/Managing+Scheduled+Jobs


Is CiviEngage a core part of CiviCRM now?

CiviEngage, at the moment, is a Drupal module that currently ships with the official CiviCRM Drupal release (see https://github.com/civicrm/civicrm-drupal/tree/7.x-master/modules/civicrm_engage, which ends up installed in sites/all/modules/civicrm/drupal/modules/civicrm_engage). That means you won't find it on drupal.org or any other drupal module site and you will only see it in your CiviCRM installation as an available module if you are running CiviCRM on Drupal.

Having said that... plans are underway to first split the module out of CiviCRM and onto drupal.org so it can be downloaded and installed like any other third party drupal module and eventually be converted into an extensions so it can be used by anyone.

More information is available in this issue:

https://issues.civicrm.org/jira/browse/CRM-16671


What you could do is to use a custom field for that. And make sure when you search for contacts you search for active contacts.


Where is the Detailed Logging setting stored?

It's in civicrm_setting but if it's never been turned on it won't be there. But also it's more than just a setting - you would need to rebuild the schema and triggers.
If you have cv installed you can do cv ev "Civi::settings()->set('logging', 1); $s = new CRM_Logging_Schema(); $s->enableLogging();" to do it from the command line manually.


Getting an error trying to add contacts to a group from an activity report.

OK my bad. Upgraded to 5.6.1 and problems disappear.


Any recommended alumni tracking system that integrates with Civi?

CiviCase might be overkill. Maybe if you had several steps involved with each alumni outreach and wanted to track those steps separately but count the number of outreaches as a whole, but otherwise just one or two regular activities should do it? Or CiviCampaign with a survey.


View uploaded documents without having to download them every time - Wordpress

As Pradeep implies, this isn't a CiviCRM issue but a web browser configuration issue.

I'm not sure what web browser you're using, but in Firefox, when I click on a PDF in an activity (see "1" below), I get a pop-up where I can select "Open With" (2) and "Do this automatically for files like this from now on" (3).  I imagine similar options exist for all the major web browsers.


Access denied after contribution (thank you page denied)

Ok, thanks a lot Demerit but I could not get what I should do in there and finally found the solution.

So the trick was with the capabilities.
I installed user role editor and found out that by default, a subscriber is granted way more capabilities than just "read", which are :

access_all_custom_data
access_civimail_subscribe_unsubscribe_pages
access_uploaded_files
make_online_contributions
profile_create
profile_edit
profile_listings
profile_view
read
register_for_events
sign_civicrm_petition
view_event_info
view_public_civimail_content

So basicaly if your custom roles are not granted those capabilities, users will get denied the access to some civi page at some point.

So in wordpress I just went Users > User role Editor and updated my custom roles with the right capabilities.

Hope it helps !


Updating information in Custom fields within a tab not saving since update to 4.7.0

Hi I did manage to test the same against 4.7.0 and we do have an issue. so, please raise an issue for the same

Also I did manage to test the same against Civicrm Version 4.6.11 and everything works perfectly. so at this time I would recommend you to install civicrm Version 4.6.11 for time being and wait for the next version and see if that gets fixed


Can CiviCRM provide a warning/error if a user submits a certain organization name as their current employer?

The exact behaviour you describe would be possible but will have to be custom development. It would be specific to your organization and website.

However I do think you will be able to achieve something like what you want with the CiviRules extension. You would be able to 'catch' the new contact as a trigger (individual is added) and use the field value comparison condition to check the value of the current employer  (or alternatively catch the new relationship Employer of). CiviRules would allow you to then create an activity for a team member, alerting him/her to the problem. It is not perfect, but sounds like an alternative without custom development.

You can find the CiviRules extension here: https://civicrm.org/extensions/civirules and documentation about CiviRules here: https://docs.civicrm.org/civirules/en/latest/


Can't edit or create Custom Search options via front end?

This is a known reported bug, please check https://issues.civicrm.org/jira/browse/CRM-16254 and was fixed for 4.6.1

I would recommend upgrade to latest stable 4.6.2.


How to change or transfer mailing list groups properly?

Since folks who have already unsubscribed aren't in the smart group, I would simply search for members of the smart group, add them to group "Events and Invitations", add them to group "Monthly E-Newsletter", and delete the smart group.


I am trying to insert custom tab into Activity tab but it is not working

I have an example of how I deal with creating custom groups and fields in an extension here: https://lab.civicrm.org/partners/civicoop/dmgeneriek/tree/master/CRM/Dmgeneriek/ConfigItems

The definition of the custom groups and fields are in the resources folder in json files
The ConfigItems class is initiated in the Upgrader (see https://docs.civicrm.org/dev/en/latest/extensions/civix/#generate-upgrader)

I recommend avoiding using hard coded custom group id's in your code.


"find out more..." link for civievents points to a page that does not exists

Those paths look correct, but they depend upon a page existing at the path /civicrm.  CiviCRM 4.6 creates one upon install, but maybe you renamed or removed it not knowing what it was for.

The simplest solution is to create a blank page called CiviCRM that has the URL https://lofcenter.org/civicrm

CiviCRM on WordPress takes a page, wipes the content, and sticks the CiviCRM content there when the "page=CiviCRM" parameter is set.  The page it uses is whatever's before the question mark in the URL, and you can set it in Administer > System Settings > CMS Database Integration.  However, any working page or post will do, so just to demonstrate, the link https://lofcenter.org/aboutus/?page=CiviCRM&q=civicrm/event/info&reset=1&id=17 works just fine.  You just need to make sure the page CiviCRM points to exists, so you can either set the base page to an existing page or create a base page where CiviCRM expects one should be.


IMO the only way to answer this with confidence is empirically: request a trial upgrade in the proposed new hosting environment (or equivalent), and test whether the system upgrades then functions as expected. Most effectively done when you have some tests that you can run on your newly upgraded site to ensure things function.

Fuzion host on MySQL 5.5 and 5.6, so I can't speak to what you should expect on MySQL 5.7. (This is not because we don't approve of 5.7, we just have had no reason as of today to move there.)

You might also see variation between Percona / MariaDB / MySQL, or between various OS or distribution packages ... Your best bet is to try it and see! Just not in production ;)


Nadine...

You've asked more than one question, but I'll try to hit them all

1) CiviCRM lets you create public forms (profiles) that users can use to manage information in their contact record, such as email addresses, phone numbers and addresses. Depending on the CMS platform you're using, there are some other ways to allow for self-service updating of information, for example, on Drupal, there's a module called Webform that has excellent CiviCRM integration.

2) The profiles are completely configurable with all the core (built-in) CiviCRM fields and can include custom fields that you've set up in the database.

3) CiviCRM and all the supported CMSes allow for file uploads. CiviCRM lets you store attached files to contact records and activity records and can be configured for other record types, too.

You don't mention if you're going to be managing volunteers with CiviCRM. There's a video with some information about the CiviVolunteer extension on YouTube
https://www.youtube.com/watch?v=7hkAlLYBc2Q


There are no table elements/blocks that you can add currently. You could try editing the source of a text block an adding manually however it sounds like this isn't ideal in this instance.

To add a table element you'd need to customise the html template itself.

If this was something you wanted to do you could use this extension which adds some additional template elements as a starting point.

https://lab.civicrm.org/MikeyMJCO/mjcomosaico


Upgrade to 4.7.29 causes Internal Server Error with cron

So I resolved the issue. Here's what I found. It looks like the permissions for bin have changed from 755 to 775 at some point (I looked at one of our backups and it used to be 755, but in 4.7.29 it was set to 775.)

I used this question and response:
URL for cron Jobs gives me a 404 error (not the same error, but I was desperately searching!)

Made the same changes (updated bin permissions to 755) and it all worked. So that's good (for now) but with every upgrade will we have to remember to update permissions?


{domain...} tokens not parsed in regular mail?

Domain tokens are not replaced when trying to send email activity for a contact. This seems like a bug in civicrm or wrong documentation. This can be fixed by applying below patch.

diff --git a/CRM/Activity/BAO/Activity.php b/CRM/Activity/BAO/Activity.php
index 787a1c955d..35133010e1 100644
--- a/CRM/Activity/BAO/Activity.php
+++ b/CRM/Activity/BAO/Activity.php
@@ -1587,6 +1587,12 @@ LEFT JOIN civicrm_activity_contact src ON (src.activity_id = ac.activity_id AND
         $values = array_merge($values, $details["{$contactId}"]);
       }

+      $domainTokens = array_merge($subjectToken, $messageToken);
+      $domain = CRM_Core_BAO_Domain::getDomain();
+      foreach (['subject', 'text', 'html'] as $bodyType) {
+        $$bodyType = CRM_Utils_Token::replaceDomainTokens($$bodyType, $domain, TRUE, $domainTokens, TRUE);
+      }
+
       $tokenSubject = CRM_Utils_Token::replaceContactTokens($subject, $values, FALSE, $subjectToken, FALSE, $escapeSmarty);
       $tokenSubject = CRM_Utils_Token::replaceHookTokens($tokenSubject, $values, $categories, FALSE, $escapeSmarty);


Civisualize - getting data from a report into dataviz

In principle, if you get the data out of report as json or csv, it should work fine.

Let me check with sid if he remembers what was done beside fetching as csv.


Stripe card number field not showing since upgrade to 6.6

I removed the "US" country code from the Stripe settings and the credit card block appeared. Not sure why but at least I have a working registration form.


How can I prevent CiviMail Bounce Processing from moving mail to "ignored" folder?

Bounce processing assumes that the account is dedicated to handling bounces.  You don't want to mix bounce handling with a mailbox used by users.

See all of the "CiviMail setup" chapter in the System Administrator Guide and in particular:

https://docs.civicrm.org/sysadmin/en/latest/setup/civimail/#bounce-processing
https://docs.civicrm.org/sysadmin/en/latest/setup/civimail/#verp-support
https://docs.civicrm.org/sysadmin/en/latest/setup/civimail/#special-email-address-for-incoming-email
https://docs.civicrm.org/sysadmin/en/latest/setup/civimail/#adding-an-incoming-email-account-for-processing-bounces-andor-email-to-activities
https://docs.civicrm.org/sysadmin/en/latest/setup/civimail/inbound/#bounce-handling


Using custom fields to store secondary addresses

In the advanced search under the "Address Fields" you can choose "Address Location" which defaults to primary only. By selecting all of them you can search by any address type.

I tested searching for a non-primary "personal" address and the results showed the contact.

It might be something that could be made clearer, because I found a similar thread on it here.


How to make event registration form fields be displayed inline

If you are on Drupal you could do the event registration using a webform with webform_civicrm and use the webform_layout module to place two fields on the same line.

Alternatively you could write a tiny extension to drop in some jQuery to move the fields around in the standard event registration form. There is write up of how to do that here: http://jackrabbithanna.com/articles/easy-jquery-modificaiton-civicrm-forms  Note that since that was written cj has been deprecated in favour of CRM.$

If you can do the changes with CSS without needing the power of jQuery, you can also do that - see my answer to How can I change the way price set information is presented on a contribution page?


How to use API chaining to create a contact and a relationship

I believe it would be '$value.id' (ex. https://github.com/civicrm/civicrm-core/blob/master/api/v3/examples/Contact/APIChainedArrayValuesFromSiblingFunction.php). Basically, '$value' can be used to reference any values added by the parent api call.

Also, to your question about sanitization, the values should be sanitized. However, I would recommend using CRM_Utils_Request::retrieve() to get the submitted values from the request rather than $_POST as it does some extra sanitization work.


Whats the procedure to update a Group using a Smart group

The only time I had to replace a smart group by a "normal" group was for performance reason when we started to have more than a million contacts.

Otherwise, I'd suggest to use the smart groups as you would use a normal group, and if you have performances issues, start by increasing the smart cache duration and enable the cronjob that automatically re-build them


What does the CiviCRM Contact Reference Field Drupal module do?

This module functions as a type of Entity Reference field so that you can link Drupal entities back to Contacts in Civi.

In the display settings for your content type, you can specify whether the Civi Contact appears as:

a plain text name,
their name linking to the Contact's record or
a raw Contact ID (CID).

An example of how we use them:

We have a Drupal content type called Event.  We want staff to know who is leading the event so we include a CiviCRM Contact Reference field.  When the Event node is filled out, we choose the event leader from a Civi-linked autocomplete field.  When the node is saved and displayed, the Civi Contact Reference field displays the event leader's or leaders' name(s) so the staff person can just click on the name to go straight to the individual's contact information.


You can find the link in the contributions menu for adding new contributions against a contact.

By clicking the link you will be redirected to add contribution page, where you will be able to find the contact from the select contact option.


Automatic filing of pdf letter activity within civicase

Go to Administer > CiviCase > Case Types and add "Print PDF Letter" as an allowed activity to your case type. You will then be able to create a PDF directly from the "Manage Case" screen.


I was able to reproduce a similar symptom in a wp-demo configuration. Specifically, the upgrader activates the new, core-internal extension (sequentialcreditnotes), and the activation fired off a general system-flush, and the general system-flush raised an error while handling some data from another extension (civivolunteer). The problem only occurred with the web-based upgrade UI (and not with the CLI-based upgrader).

CiviCRM 5.24.1 has a fix for that case.


Contact layout editor db update crash on upgrade to 1.2.1

Thanks for pointing out the bug in the upgrade code. I've pushed up a fix and published a new release: 1.2.2.

https://github.com/civicrm/org.civicrm.contactlayout/releases/tag/1.2.2


I read your question differently to Andy.

The MIH itself is simply a civicrm contribution page.

But there are also MIH 'content types' and the page at https://civicrm.org/make-it-happen is then a View (Drupal) based on the above Content Type and I suspect there is a fair bit of custom stuff happening in that View which means an 'export' of it won't give you it in a box.


How do I disable civicrm.css on public pages in Drupal?

This is the correct way to disable civicrm.css on the front end. Put this in the template.php file of your theme:

function shriver_css_alter(&$css) {
    unset($css['sites/all/modules/civicrm/css/civicrm.css']);
}

Manually enter the path to the css. When I used drupal_get_path('module','civicrm'), it would output sites/all/modules/civicrm/drupal/css/civicrm.css. Not sure why it added 'drupal' to the path but that was the problem.


If you just want to hide on that particular page one option is to add this in css/extras.css

body.page-civicrm-dashboard div#tabs-wrapper h1 {
  display: none;
}


How to assign Drupal's system roles to Case Role in CiviCase

Welcome to SE!  You're right that Case roles are not the same as Drupal Roles.

Case Roles are relationships. There is a module called "CiviCRM Relationship to Role Sync" that might help which is part of the civicrm_entity module, but not enabled by default.  Someone was asking about this just yesterday on mattermost and it seems we don't have much current documentation for it.

Another approach would be to use Drupal Roles and a post by @petednz might help: https://fuzion.co.nz/blogs/complex-civicrm-relationship-role-synchronisation-recipe


Can't accesss cv from CiviUnitTestCase::createExternalAPI in buildkit environment

The error message says sh: 1: cv not found, so the symptom here is that the proc_open() call is unable to find the executable cv.

It looked like the place to check this should be cv() function in tests/phpunit/CiviTest/bootstrap.php ... but I wasn't able to get that to work.

Having investigated, I suspect that this may be an issue in \Civi\API\ExternalBatch. In that class's constructor,

$this->env = $_ENV;

At this point in the tests, $_ENV = ['CIVICRM_UF' => 'UnitTests']. There is no path here, and the call to cv fails. Manually inserting a PATH into $_ENV here does restore the ability to call cv, but then fails with a further "malformed response" error, "Failed to determine INI file path.".

This must be working on tests.civicrm.org, so perhaps it's a configuration issue that affects both our test environments?

civicrm/cv#1 is this issue?
Tim suggests it may relate to Debian's default variables_order being GPCS no EGPCS
Suggests: https://gist.github.com/totten/cf76679b4fabdae4c86e06f8c0988b23


button to receipt not working on live dashboard, does work on print preview screen

Yes, it is working at all of my local installs and some of our customers use this button to actually print invoices using CiviCRM 4.6.24


How to use webform to register a new user on Drupal 8/9 and link to contact in CiviCRM

Using Webform and Webform CiviCRM modules create a webform with the fields required for the user and their organisation to create the contact and organisation in CiviCRM.
Then create a WebformHandler to programmatically create the user using the postSave() function. The WebformHandler is a single php file that needs to be saved in a custom module folder as:
my_module/src/Plugin/WebformHandler/CreateUserHandler.php
I have created a basic guideline WebformHandler that creates the user and connects to the CiviContact at https://gist.github.com/bmango/0347f6c22b3fb38e34be57bb50f8e99e
Note that the namespace declaration at the top of the script is not the same as the path to the file but will be:
namespace Drupal\my_module\Plugin\WebformHandler;
omitting the 'src'.
Once you have created the WebformHandler it should appear on the Webform "Email/Handlers" tab where you can then add it to the form.
This answer extends the answer given by mAtZ to Create a new user on Webform submission, by adding the code to connect the Drupal user account to the Civi contact.