Permission to add contact data, not edit existing We got a request to add a role for users to be able to add contact data but not edit the existing. For instance: contact has first name, last name and email filled in. Users with this role should be able to add another email, add address and telephone number, but not edit the name, not existing email field.
I honestly wouldn't know where to start with existing code. I mean: is there a way to accomplish this without using a custom extension?
(using up to date drupal 7 and CiviCRM)

One way of accomplishing this more refined permission stuff involves thinking outside of the civi box and using Drupal Webforms (and perhaps Views)
Eg, build a Views based search, such that the results load up a webform with the cid in the url, this loads that contact on to the webform at which point you have total control over which fields are editable and which are only viewable.


Is it a bad idea to change a Participant's registered event after a payment has been made? I've been doing some thinking on this but haven't tested it yet. Essentially, we've a user who would like to always have the ability of changing Participants' events.

It seems as though the default CiviCRM functionality here is to allow changing events up until a payment has been made. That aside, it's still feasible to change the registered Event via API or otherwise.

I'm wondering is if there is a repercussion of changing the registered event after a Contribution has been made. Is this functionality disabled for the convenience of not having to worry about mismatched price sets or is there a deeper issue of breaking some kind of reporting functionality?

From a bookeeping perspective it wouldn't be too hard to implement. But as it's not a frequent use case it may have not been implemented during the refactoring for CiviAccounts a couple of years ago.

Were we implementing this as a core enhancement I would want to ensure that scheduled emails work properly through this change of events. I wouldn't want to send any ones after the change that pertain to the old event, and I think the user should perhaps be warned about missing any scheduled events as a result of the change. For example, a mail scheduled for 2 days after registration in Event A may not go out if the change to that event is made made more than 2 days after the registration.

I don't foresee any reporting problems, but there would need to be regression testing. Basically, there would be one additional cancelled registration in the original event, and one additional registration in the new event.


One Users Email not working for 'test' I am getting a strange error, though I may be missing something really obvious.
This is the first user I have added, so it may be my error.

Our mailer is set up for SMTP, and it works just fine for everything, but a user was getting a 550 error when sending a test email to themself.
I have triple checked the email address, it is entered correctly.

Is there somewhere that I have to add this email in CiviCRM in order to have tests work for them?

Using:
CiviCRM 4.6.24

Attempting from:
Mailings > New Mailings

  Error in call to Mailing_send_test : Failed to add recipient: "EMAIL ADDRESS
  HERE" [SMTP: Invalid response code received from SMTP server while sending email.
  This is often caused by a misconfiguration in Outbound Email settings. Please
  verify the settings at Administer CiviCRM >> Global Settings >> Outbound Email >
  (SMTP). (code: 550, response: 5.1.1 : Recipient address rejected: User unknown in
  relay recipient table)]

Response to Jon G:

I don't think it is the server, i can go check the logs though...
The test works for user1@example.org, user2@example.org, user1@aliasforexample.org, etc.
It just doesn't work for one particular user.

:::::::::::: SOLVED ::::::::::::

I had to add the user to our relay. I wasn't aware that we were using a relay. :P

I think that message is telling you that the email that your smtp server is trying to send to is "EMAIL ADDRESS HERE", which is clearly a placeholder that needs to be filled in. I'd check the record of the contact who is unable to send themselves a test email for fishy bits (e.g. the primary email address, which perhaps got set via an import). If that record looks good, then I'd guess that the email address it's sending to is something unusual for the mail host machine and has a badly configured forward or something like that.

But no, you don't need to do anything special to enable test emails.


Not found "Create Add new " option in the Current Employer field if the org name typing We're already apply " Access API Permission " to anonymous user for creating Add New option organization to the current employer field but still not works. Civicrm-4.7. And added public automcomplete ext. to the current employer field. I go through the documentation https://github.com/TechToThePeople/publicautocomplete and added code in the civicrm.setting.php

From the documentation:

  If you want to force the user to submit only a value from the list (or
  leave to leave it blank), thereby preventing the user from creating
  new organization records, set the require_match config option to TRUE
  (it defaults to FALSE):

global $civicrm_setting;
$civicrm_setting['eu.tttp.publicautocomplete']['require_match'] = TRUE;

This means, if you want to allow the user to create new organization records, you would omit this line, or set it to FALSE.

Also note: If you omit the line or set it to FALSE, you won't actually see a "Create New" option; you'll just be able to type in the name of an organization that's not in the list of options.

EDIT:

Regarding the potential for typos and duplicates, that will always exist any time you allow the user to enter a new organization name. CiviCRM will  follow the unattended dedupe rule for organizations when deciding whether to use an existing org or create a new one.


How do I get the Name and Address on the Invoice to show up in a Window Envelope? A client recently asked me the following question: I need to be able to mail (postal mail) invoices to our Members. Our pre-printed size 10 envelopes have a window bottom-left. How can I get the Member's Name and Address on the Invoice to show up in that Window?

This requires editing of the Contribution Invoice Receipt - Message Template. End result looks like this:

I'll detail the steps below to get the header part.

The header portion contains two tables: the first table is used to add your logo. The second table has the formatting for the Name and Address section: note that we're putting the Member's Name and Address on the far left and in a slight larger font.

          {ts}INVOICE{/ts}
          {ts}Invoice Date{/ts}
          {$domain_organization}

          {$invoice_date}
          {$domain_street_address}

          {if $domain_city}{$domain_city|upper}{/if} {if $domain_state }{$domain_state}{/if} {$domain_postal_code}

          {$display_name}
          {ts}Invoice Number{/ts}
          {if $domain_country}{$domain_country|upper}{/if}

          {$street_address} {$supplemental_address_1}
          {$invoice_number}
          {if $domain_email}{$domain_email}{/if}

          {$city|upper} {$stateProvinceAbbreviation} {$postal_code}

           {if $domain_phone}{$domain_phone}{/if}

          {ts}Reference{/ts}

          {$source}


How to hide old contacts from default search? (best practices for old contacts) Deleting contacts causes problems because it removes their contribution records.

At the same time we don't want old contacts to show up unless they are explicitly requested (such as when searching for deleted contacts).

Is there any way to hide old contacts and exclude them from all queries? I know how to do this with advanced searches, but I don't want my basic user to have to deal with this.

Are there other ways to deal with old contacts and keep the database from becoming bloated?

I appreciate any help.

CiviCRM has a "trash" feature which flags contact records as trash without actually deleting them. Contacts with the flag set to 1 are excluded from most reports, etc.

Their contributions, etc., will not be deleted but may be hidden from reports and interfaces as well. That may or may not be what you want. If you wish to see all the contributions, I don't think there is anything you can do without writing code to deal with most interfaces, but a lot of the reports have a filter to show/hide contributions from trashed contacts.

You can toggle this feature under Administer > System Settings > Misc, and there's a CMS-level permission "CiviCRM: access deleted contacts" that controls which users can see trashed contacts.

All said, I'm not sure that deleting or trashing contacts is the appropriate solution. It seems rather drastic to delete contacts for the purposes of returning manageable result sets. A better solution might be to hire a CiviCRM partner to build a custom search interface that better suits your needs. Or, a low-cost approach that occurs to me is to use your advanced-search know-how to build a Smart Group of current contacts as defined by you, then train collaborators to run their searches within this group.


Signing petitions and data entry I have a survey which I am asking people to sign on line. The fields are activities and it is a campaign petition.

I also have a bunch of surveys filled in offline on paper.

I can upload the activities - which I have done but these people don't show up as having signed the petition. I have to do two separate searches - one for the activities and one for the petition.

Has anybody got any idea how I can have this data in one place. I can't just sign the petition for multiple people because civicrm is too clever for that (or so it seems to me!)

Ideas very welcome!

I was able to achieve this using webform in drupal


Civicrm report:Bar chart and Pie chart support for different modules Does civicrm support bar & pie chart report for all modules?? and if not then can we do it with custom templates?

If it is problematic to do via civireport, drupal users can build charts off Views without needing to code. I have used both charts and charts_highcharts to easily provide charts based on a range of civi entities


Date of birth fields We're trying to have the date-of-birth field for our contacts displayed in dd-mm-yyyy format when using mailings but despite me altering every single relevant setting in Civi...our test mailings still display the date of birth in yyyy-mm-dd format? Why might this be?

It might well be that the relevant function does (wrongly) not use the date formatting based on the settings. Could you check that?


How to clone a contact? Just hit a few cases where it would be great to have a contact with exact same status eg event, member, relationship, contribution, and of course custom fields on contact and those other entities etc so we can 'test' a fix on.

Might not need to clone 'everything' eg Activities, since I can see complexity bursting forth.

Anyone else looked at doing this? Any thoughts about (im)possibility of doing this?

You can do a shallow clone with cv (and a little stripping of the original ID).

cv api Contact.getsingle id=203 | sed -e 's#"id"#"foo"#g' | sed -e 's#"contact_id"#"bar"#g' | cv api Contact.create --in=json

For the rest, you'd really need to specify the outcomes. Should the spouse be a clone too, or the original? The event registrations are for a cloned event or the original? The employer and other relationships?

1980s movie hijinks will abound as you explore the philosophical implications of cloning, in a time before it was a hellish near-reality.

OK, it's sprint, here's some JS to clone a contact:

// Go find a contact
CRM.api3('Contact', 'get', {
  "sequential": 1,
  "id": 361
}).done(function(res_old) {
  // Grab contact out and remove their ID.
  var contact_params = res_old.values[0];
  // Remove existing ID so we create a new contact.
  delete contact_params.id;
  delete contact_params.contact_id;
  // Create our new contact.
  CRM.api3('Contact', 'create', contact_params);
});

And, to clone a contact and related contributions:

// Cloning a full contact + related contributions (+ ...)
CRM.api3('Contact', 'get', {
  "sequential": 1,
  "id": 361
}).done(function(res_old) {
  // Grab contact out and remove their ID.
  var contact_params = res_old.values[0];
  // Remove existing ID so we create a new contact.
  delete contact_params.id;
  delete contact_params.contact_id;
  // Create our new contact.
  CRM.api3('Contact', 'create', contact_params)
    .done(function (res_new) {
      // Now handle related entities, one by one.
      // Contributions only as an example below.
      CRM.api3('Contribution', 'get', {contact_id: res_old.id})
        .done(function(res_contrib) {
          for (var key in res_contrib.values) {
            var new_contrib = res_contrib.values[key];
            // Returned values need to be adjusted so we create a new contribution.
            // Remove link(s) with previous contribution.
            delete new_contrib.id;
            delete new_contrib.contribution_id;
            // Associate with the new contact.
            new_contrib.contact_id = res_new.id;
            // Contribution.create requires financial_type_id, not provided by
            // Contribution.get. That's a whole other topic. Random ID here.
            // You'd actually need to use api "return" to get all fields.
            new_contrib.financial_type_id = 1;
            CRM.api3('Contribution', 'create', new_contrib)
              .done(function (res_newcontrib) {
                // console.log(res_newcontrib, 'rnc');
              }); //
          }
        });
        // Repeat as above for other related entities you wish to clone.
    });
});

And so on to clone Contact with related Participant, Contribution & Relationship records ... Some thoughts on this:

Cloning a contact or other simple entity is straightforward here.
Cloning related entities got verbose fast!
It's kinda weird that you have to remove both contribution.contribution_id and contribution.id, both contact.id and contact.contact_id ...
It's also kinda weird that you can't pipe a contribution.get back into a contribution.create because contribution.get does not return the (required) financial_type_id field.
Sounds like to handle this last point, the current approach would require using return with the API to specify all the fields on an entity, including the required ones not returned by default.


If statement involving "is not empty" in smarty template? How do I do this in a Smarty template:

If {contact.supplemental_address_1} is not empty
then {contact.supplemental_address_1}

{capture assign=temp}{contact.supplemental_address_1}{/capture} {if $temp ne ""} {$temp}
{/if}

is what I do. I got the idea from the source referenced above. You also need to ensure that smarty is turned on in civicrm.settings.php


Dies CiviCRM support Stripe Checkout Does Stripe checkout work with CiviCRM, Drupal combination? Or only Stripe.JS will work with CiviCRM?

You can Follow this discussion to clarify your Stripe Checkout integration
which talks about what your question requests


Secure storage for file attachments We want to add some file fields to individual contacts for PDF documents.  Is there a way to store these files so that they can be accessed by a Civicrm user with appropriate permissions but not reachable on the web site otherwise - including by a search bot or similar agent that may ignore a robots.txt instruction?  I realize this question may go beyond Civicrm configuration to web server security in general but hoping someone can point me in the right direction. My civicrm is running on WordPress on Ubuntu.  Thanks.

There is a special permission for accessing user file uploads in CiviCRM. You can turn this off for Anonymous user and I believe your files won't be accessible for Anonymous users.


Mail editor defaulting to Ckeditor and text wrap issue I have a Drupal multisite build and after upgrading to civi 4.6.10 noticed the default text editor for bulk mailings defaults to CKEditor...despite my settings in administor/customise data and screens/display preferences being set to TinyMCE.

If I send individual emails out the editor is TinnyMCE but for bulk mailings it is CKEditor? Despite trying all options in display preferences the bulk email adeitor stays as CKEditor.

Now, even though the template looks ok in mailings, when i send a bulk email the text stretches to either the full page width or the width of the paragraph (whichever is shortest) even if the text is placed inside a table. Using the same template in invididual emails the formatting is correct.

ie. I have a table cell that is set as say 200 px wide if i add text and send as an individual email it is fine but when I send as bulk email the text forces the table cell to stretch to the width of the text or page width.

I've tried to give an example of what it looks like below;

In individual emails with TinyMCE

Lorem ipsum dolor sit amet,
consectetur adipiscing elit,
sed do eiusmod tempor
incididunt ut labore et
dolore magna aliqua. Ut enim
ad minim veniam, quis
nostrud exercitation ullamco
laboris nisi ut aliquip ex ea
commodo consequat.

The same template in bulk emails stretches to full page width looking something like this

Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat.

I am completely baffled by this and any help/advise would be welcome.

Cheers
Robbie

I strongly suspect that what you're seeing is a side effect of CiviCRM dropping support for TinyMCE in core.  If upgrading to 4.7 is an option, I suspect that you can solve this problem by installing the TinyMCE extension.

Of course, if CiviMail is important to you, then upgrading to 4.7 shouldn't happen until these two bugs are closed in a released version of CiviCRM:

https://issues.civicrm.org/jira/browse/CRM-17968
https://issues.civicrm.org/jira/browse/CRM-17953


How to include a token in a view? The CiviCRM Views integration (Drupal) provides a way to create a View using data from Civi fields.  Is there a way to include the output from a Civi token in the View?

The use case is that I have a token for a custom greeting that I want to include in a View.

[For this particular situation, using the email_greeting field would be enough but it does not show in the list of fields available to add to a View.]

I am using civicrm_entity which can pretty much expose everythign in civicrm to drupal views (and more)


Unsubscribe link in publicly viewed newsletter error I was thinking (first problem) to use the "view in browser" url to build a link page for viewing past newsletters. If a user clicks on the unsubscribe link, the url "mysite.com/civicrm/mailing/unsubscribe?reset=1&jid=&qid=&h=fakehash" creates an error page:

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

Looking for a cleaner redirect...

I used a redirect since the url seems to be consistent for the web view.


Manually Change CiviCRM ID? Is there a way to manually override someone's CiviCRM ID?

A long time member of ours got his original ID number from our previous database. When we switched to Civi, it changed his ID. He would like his old ID number back.

Thanks!

If there is a contact (y) with that ID already then one option via the UI would be

create a new contact (z). Then merge z and y so that z inherits all the information for contact y
retrieve y from trash, and go through the same steps of merging y with x (your original contact) such that y inherits all the info from x.

Outcome should be that your original contact will now have the ID of y.


Access Control issue in CiviCRM with Groups? Hoping the CiviCRM expertise here within stackexchange can provide some guidance on a warning I'm seeing...

When an Anonymous individual on our WordPress CiviCRM site has a Group (Mailing List) selected in a Profile they are shown the following Warning message.  Each Warning message is shown twice for each Group selected by the user.

Warning: in_array() expects parameter 2 to be array, null given in /home/coloradomaker/www/www/wp-content/plugins/civicrm/civicrm/CRM/ACL/API.php on line 218

Line 218 is the return statement for the groupPermission function.

A full image of the page after submitting my two Group (Mailing List) choices is shown below:

More background:

There are two types of pages as the first submenu item under our Get Involved that are setup for an individual to provide their information for subscription to mailing lists:  Logged in and not logged in. This warning happens if they are not logged in (Anonymous user).  Does not happen if you are an Administrator (both as a WordPress user or in the CiviCRM Administrator group) or as a logged in user (Authenticated)
Some of the Groups were originally created as both a Mailing List AND an Access Control List but I removed the designation that they were an ACL group when I saw this warning since we weren't ready to go full into our implementation of the frontend site.  Changing the Groups back to a Mailing List only still did not get rid of the Warning.
At one point I installed the BuddyPress Group sync but I Deactivated the plugin since I didn't want to use it yet.
PHP 5.6, WordPress 4.9.2, CiviCRM 4.7, BuddyPress 2.9.3, BP XProfile WordPress User Sync 0.6.4, BP Groups CiviCRM Sync 0.3.5 (Deactivated)

Thoughts on how to remove the warning or complete the ACL such that there are no warnings?

I can confirm the warning on a vanilla CiviCRM install. Creating an ACL for the mailing list group(s) fixes it, but that doesn't seem right because:

  The anonymous role (public in Joomla!) applies to all visitors to the
  website who have not logged in. This role will have the lowest level
  of permissions. The default CiviCRM permissions for this role are
  [...] subscribe and unsubscribe from mailing lists
  https://docs.civicrm.org/user/en/latest/initial-set-up/permissions-and-access-control/

So in principle this shouldn't be necessary.

The problem actually lies in the CRM_ACL_BAO_ACL::group() method because the cache returns NULL rather than an empty array. This then gets passed back unchecked to CRM_ACL_API::groupPermission() where the warning is issued.

Two options for you then:

Raise an issue on Jira and get the problem fixed
Suppress warnings and write them to a log file instead

Doing both would be the responsible way to go :-)


How do I deal with "Your database has already been upgraded" error? While upgrading my civicrm wordpress from 4.6.8 to 4.6.15 i get the error

  Sorry but we are not able to provide this at the moment.
  Your database has already been upgraded to CiviCRM 4.6.8

Does anyone know how to correct this?

I am trying to upgrade CiviCRM on WordPress from 4.6.8 to 4.6.15.

It sounds like you are trying to run the update script before you have downloaded and installed the 4.6.15 version files. Can you double check this?


Default membership payment status When creating a new membership manually in CiviCRM, you get a checbox where you could tick off to record membership payment. This payment comes with the default contribution status of Completed.
How and where can I change that default contribution status to Pending?
CiviCRM 5.20.0 on Drupal 7.67

You would need an extension to do this.  If you don't have bookkeeping integration, it wouldn't be hard to set the payment to "Pending" after it was recorded - but if you have bookkeeping integration, this would cause headaches.  You would need to find a way to identify a payment as belonging to a membership before it was written, which will be difficult, since the normal method (finding a MembershipPayment record) isn't possible - the MembershipPayment record is created after the contribution, not before.


Recurring Donation Email Issues with iATS payment processor I'm trying to get our recurring donations up and running and I've run into some difficulties. When an admin sets up a recurring donation, Civi send the receipt for the first donation in the series just right, however it doesn't include the recurring donation management information. If we set up a donation through the online form, the series is created, and it works, but no email is sent. Any future processed donations don't send an email either. Email is working through Civi for everything else. Here are the site details:

WordPress 4.2.1
CiviCRM 4.5.8
Payment Processor: iATS using the iATS extension (CiviCRM iATS Payment Extension)
Using Mandrill as SMTP sending agent

It's because iATS does not do IPNs. It's not specific to iATS (it affects all processors that don't do IPNs - and that number has been growing).


File type custom field to only allow images I have created a file type custom field and discovered that you can upload any type of file on the field so I want to restrict the custom field to only upload image files. Is it possible?

You can use validateForm in an extension to restrict it.
You can also vote for this ticket: https://lab.civicrm.org/dev/core/-/issues/2410


Why am I getting error messages when trying to search for cases in CiviCase? I am using Wordpress 4.4.2 and recently upgraded to CiviCrm 4.7.3.
When I try to search for cases under the "find cases" menu, I keep getting the following error messages:

Warning: Invalid argument supplied for foreach() in /home/hillcrest/www/www/wp-content/plugins/civicrm/civicrm/CRM/Case/XMLProcessor/Process.php on line 186

Warning: Invalid argument supplied for foreach() in /home/hillcrest/www/www/wp-content/plugins/civicrm/civicrm/CRM/Case/XMLProcessor/Process.php on line 186

Warning: Invalid argument supplied for foreach() in /home/hillcrest/www/www/wp-content/plugins/civicrm/civicrm/CRM/Case/XMLProcessor/Process.php on line 186

Warning: Cannot modify header information - headers already sent by (output started at /home/hillcrest/www/www/wp-content/plugins/civicrm/civicrm/CRM/Case/XMLProcessor/Process.php:186) in /home/hillcrest/www/www/wp-content/plugins/civicrm/civicrm/CRM/Utils/System/Base.php on line 895

I began to examine the case types more closely. Some had matching Name and Title, others did not. Previously, you could change titles but not the Name as they were created in the program files and had to remain as they were.

In any case, next to the Name display there is a lock. I unlocked the lock and then saved. After doing this for each case type, everything began to work fine again.
I do not know why this worked nor if it will be permanent but for now, the program works fine.
(btw, I had upgraded to Civicrm 4.7.4 before doing this, but the upgrade did not solve the problems at all)


PHP Fatal error: Smarty error: [in string: (...)]: syntax error: (secure mode) (...) not allowed in if statement (...) The CiviCRM doumentation describes, how to use Smarty to customize templates for mails and pdf's:
https://docs.civicrm.org/user/en/latest/common-workflows/tokens-and-mail-merge/#smarty
E.g.:
{capture assign=gift}{contact.custom_16}{/capture}
{if $gift == Yes}
  This membership is a gift from {contact.custom_17}.
{/if}

Or:
{capture assign=Anredestil}{contact.communication_style}{/capture}
<br/>vielen Dank für
{if $Anredestil eq 'Du'}Deine{else}Ihre{/if}

However, in certain conditions (especially but not limited to CiviCRM on Wordpress), this creates fatal errors like:
PHP Fatal error:  Smarty error: [in string:&lt;p&gt;{capture assign=Anredestil}Du{/capture}&lt;
br /&gt;vielen Dank f&amp;uuml;r {if $Anredestil eq &amp;quot;Du&amp;quot;}Deine{else}Ihre{/if} Spende.&lt;/p&gt; line 1]: syntax error: (secure mode) 'quot' not allowed in if statement (Smarty_Compiler.class.php, line 1399) in /html/wordpress/wp-content/plugins/c
ivicrm/civicrm/packages/Smarty/Smarty.class.php on line 1100

An obvious solution might be, to deactived the "secure mode" - however, this might create an unsafe situation.

There is a surprisingly simple solution:
Smarty assumes, that comparison containing a constant string is unsafe.
A remedy is, to assign the constant value to a variable, and to perform the comparison between these two variables.
The code example from above could look like:
{capture assign=gift}{contact.custom_16}{/capture}
{capture assign=Yes}Yes{/capture}
{if $gift == $Yes}
  This membership is a gift from {contact.custom_17}.
{/if}

Good luck!


Only Administrators can use Contact Reference Fields I have a contact reference field that works perfectly as Drupal user 1. It does not work for my non admin users. They have all the permissions for CiviCRM but the select list does not retur results to them. They can see the field and see what admin puts in the field.

This Drupal 7 and Civi 4.5.5.

Thanks!

You might need to provide more detail re the Permissions, but there are specific permissions for

CiviCRM: access contact reference field
CiviCRM: access AJAX API

From memory both are required.


How can I link contacts & activities in a report or export? My client would like to report or export certain activities for contacts that meet a certain criteria.  This doesn't seem possible, which is surprising.  Activity search only allows a search of activity data - not contact data so contacts can't be filtered there although contact data can be exported from there.  Advanced search allows you search on contact and activity data, but then only allows an export of contact data - so no activity data.  It doesn't seem possible to have both contact AND activity data exported after filtering on both.  Or have I missed something?

When I tried in the demo site, I did an Advanced Search->Display Results as Activities and filter by the field you want and search.

If you export the result and check either Export primary fields or Select fields for export, in the csv created will be the contact and activity information. You will see Activities in the lasts columns.

If you tried that and doesn't work it's posible that in your version you can't do that, but I doubt it.


Debug PseudoConstant I noticed recently under my Drupal "recent logged messages", I've been getting errors logged with the message:

"Deprecated function, use CRM_Core_PseudoConstant::getKey Array ( [civi.tag] => deprecated )"

AND

Error: [] operator not supported for strings in CRM_Utils_Recent::del() (line 173 of C:\xampp\htdocs\sites\all\modules\civicrm\CRM\Utils\Recent.php).

What does this mean? I am on Drupal 7 and CiviCRM 4.7.22. I think this seems to appear when I'm trying to delete a case or delete any activities. I see the spinner keep running forever and just hangs.

In regards to the first one its a little bit misleading the actual thing is another function has been marked as deprecated and calls to that function should be refactored to use CRM_Core_PseudoConstant::getKey this is the related issue  https://issues.civicrm.org/jira/browse/CRM-20424

In regards to the 2nd issue i have opened a ticket here https://issues.civicrm.org/jira/browse/CRM-20939 and submitted a pull request here https://github.com/civicrm/civicrm-core/pull/10721 to fix the issue.

If you can it would be helpful if you could add a ticket on the first issue in the JIRA and reference CRM-20424 in the ticket.

Seamus


Placeholders instead of labels in forms We would like to use placeholders instead of labels on all our CiviEvent and Contribution forms. What is the best way to do this? We are using CiviCRM with Drupal.

We would like it appear like this:

instead of this:

We have been hiding the labels and setting the placeholder text using the following JQuery in a Main.extra.tpl file. However, this code breaks every time we upgrade CiviCRM. I am currently working on upgrading from Civi 4.6.14 to 5.0.0 and am thinking there has to be a better way of doing this. Would it be possible for Civi to make it easy for users to choose to use placeholders instead of labels somehow?

// Hide all labels
cj('.label').hide();
cj('#payment_information fieldset:first legend').hide();
cj('input[name$="billing_middle_name"]').hide();

// If IE, then setting placeholder on Gift Amount field causes payment block not to appear
if (detectIE()) {
    //alert('IE ' + detectIE());

    // unhide label for Gift Amount
    cj('.other_amount-section .label').show();

    cj('#billing-payment-block input[type=text].crm-form-text, .custom_post_profile-group input[type=text].crm-form-text').each(function() {
        var label = cj('label[for="'+cj(this).attr('id')+'"]').hide(); // Hide all labels
        cj(this).attr('placeholder', cj.trim(label.text())).attr('title', cj.trim(label.text()).replace('*', ''));
    });
    cj('input[type=text].crm-form-text').each(function() {
        var label = cj('label[for="'+cj(this).attr('id')+'"]'); // Hide all labels
        cj(this).attr('title', cj.trim(label.text()).replace('*', ''));
    });

} else {

    cj('input[type=text].crm-form-text').each(function() {
        var label = cj('label[for="'+cj(this).attr('id')+'"]').hide(); // Hide all labels
        cj(this).attr('placeholder', cj.trim(label.text())).attr('title', cj.trim(label.text()).replace('*', ''));
    });

}

// Set Placeholder text and Tooltip to label defined in CiviCRM -- for all select2 menus
cj('div.select2-container').each(function() {
    var idselect = '#' + cj(this).attr('id');
    var label = cj(idselect + ' > label.select2-offscreen');
    var placeholder = cj.trim(label.text());
    var tooltip = placeholder.replace('*', '');
    cj(idselect + ' .select2-chosen').text(placeholder).attr('title', tooltip);
});

// Unhide all radio labels
cj('input[type=radio]').each(function() {
    cj(this).parent().parent().children('.label').show();
});

I would really appreciate any insight anyone could give.
Thank you, Malachi

I've been working on a similar goal but I've been working in WordPress. I followed the advice given to me and added Caldera Forms with CF-CiviCRM. CF-CiviCRM is WordPress plugin that functions as a bridge between Calder Forms and CiviCRM. I fully appreciate that you are currently in Drupal. You really need to decide if you are on the right platform for your ultimate goal. If you have the coding chops to pull this off, keep going the way you are going. On the other hand, if you want an existing solution to the problem you've presented, Wordpress with CiviCRM and Caldera Forms is a very workable solution.


How can I include a custom template file in an email template using smarty? Details

We would like to create a standard header and footer for our email templates. Rather than pasting the custom HTML in the top of each system email template we want to override, it would be better to define a header template, and a footer template, and then use smarty to {include} these templates.

Is this possible with CiviCRM?

Is there a reason CiviCRM doesn't have a single header/footer template by default? If not would this make a reasonable feature request?

I dont think CiviCRM does this by default
However, I do think this is a good idea and makes sense to include it in core for non-civimail mailings (which already have a header/footer)
Might want to modify the core mailing functions:

CRM_Core_BAO_MessageTemplate::sendTemplate

to add a default header / footer

Might want to allow this to be overridden both at the system level, function level and via a hook


Cannot create Drupal user, email: invalid!! (double exclamation is the error message, not my urgency) Drupal 7.72
Civi 5.24.5
Webform Civi Integration 7.5.1
I just set it up so that Drupal users are created when a webform is submitted. Using petednz's guide.
But I get the following error message Cannot create user, email: invalid!!
What would cause Cannot create user, email: invalid!! on an civicrm integrated webform? This has the same problem. I tried both suggestions there and it did not fix it for me.
I get the following 2 messages in my Drupal logs:

rules 08/16/2020 - 20:39 Unable to get variable civicrm_user, it is not defined
civicrm_entity 08/16/2020 - 20:39 Cannot create user, email invalid.

I use CiviRules to add a tag to the contact when a new contact is added from "these" Sources. Should the tag be added in a different manner? The guide was not clear on how to add the tag to the contact. I'm wondering if the Rules is firing before CiviRules gets the tag added.

An alternative approach now is https://civicrm.org/extensions/silent-user-registration so you only use CiviRules and don't use Drupal Rules.


HowTo fix: client denied by server configuration? looking in my Apache error logs I get a lot of these errors:

17:52:59    client denied by server configuration: /path/to/drupal/sites/default/files/civicrm/custom/delete-this-hLW0uQKV0o    error
17:52:59    client denied by server configuration: /path/to/drupal/sites/default/files/civicrm/upload/delete-this-2oysK1uZ8L    error
17:52:58    client denied by server configuration: /path/to/drupal/sites/default/files/civicrm/ConfigAndLog/CiviCRM.3de7c305138430bacabc11877313657f.log    error

The directory permissions for sites/default/files/civicrm and all its subdirectories are 775

drwxrwxr-x  45 web  www   140B 19 Mai 10:45 ..
drwxrwxr-x   2 web  www   369B 19 Mai 09:29 custom
drwxrwxr-x   2 web  www     4B 19 Mai 09:29 upload
drwxrwxr-x   2 web  www    10B  1 Mai 05:15 ConfigAndLog
drwxrwxr-x   3 web  www     4B  3 Dez 23:26 persist
drwxrwxr-x   4 web  www     4B  3 Dez 23:22 templates_c
drwxrwxr-x   7 web  www     7B  3 Dez 23:22 .

and are owned by the apache user

uid=1001(web) gid=1000(www) groups=1000(www)

so in principle even 755 should be enough.

I don't think it is related to any apache setting (using 2.4), since my folder with drupal inside is inside a directory which already has a Require all granted directive, and my other web projects (and drupal itself) do not throw such kind of errors.

Understanding this post right it is kind of "normal" that the "delete-this" files through an error?
Even if, why this also happens for the log file? Looking into the folder ConfigAndLog I have observed that each month a new file is created. But each month I have to chmod the newly created file in order that the apache user can write into it.

How can I fix this?

See Access denied errors by server itself on uploaded files, which you refer to in your question. The answer there applies to the ConfigAndLog file too. Civi periodically runs tests to make sure that certain directories and files are not accessible via the web. These include:

the current debug log file (ConfigAndLog.xxxxxxxxxxxxxxxxxxxxxxxx.log)
the image upload directory (on your Drupal site, this is sites/default/files/civicrm/upload)
the custom php directory (on your Drupal site, this is sites/default/files/civicrm/custom)

The "client denied by server configuration" entries in your error.log are an indication that those directories and files are protected as they should be.
As the author of the security-check function writes in a code comment:

Per CiviCRM default the logfile sits in a folder which is web-accessible, and is protected by a default .htaccess configuration. If server config causes the .htaccess not to function as intended, there may be information disclosure.
The debug log may be jam-packed with sensitive data, we don't want that.

In other words, it's good that the debug log is not accessible via the web.


Where is the link between a CiviCRM contact and Wordpress user stored in the database? I am migrating my CiviCRM database to a new server with a fresh install of Wordpress and CiviCRM. I would like to know where in the database the link between CiviCRM contacts and Wordpress Users are, so if needs be I can manually correct them (there are not many contacts linked to users in my database).
Maybe Civi will correct the link between users and contacts if I were to use the 'Synchronize Users to Contacts' feature again in the new system, does anyone have experience of this?
Regardless I would be interested to know about where this link is stored to improve my familiarity with how Civi works. I looked in the civi_contact table but could not see any field there that might store the linked user id from Wordpress.

Great question!
The matching between the CMS user and the CiviCRM contacts relies, like most "relationships" between entities in CiviCRM, on an additional table that maps the IDs between the two entity types.
For the Contact to CMS User match you're looking for the civicrm_uf_match table. This table has the following columns:

ID - this is the Unique ID of the match record.
DOMAIN_ID - this is the Unique ID of the CiviCRM domain in a multisite setup.
UF_ID - this is the User's ID in the "UserFramework (UF)" (this is what CiviCRM calls the CMS).
UF_NAME - this is the User's Username or Email address in the UserFramework.
CONTACT_ID - this is the Unique ID of the CiviCRM contact that matches to the User.

Hope this helps!


how to change the size of groups for ab testing? I've started a test with a sample too small to be statistically significant. I would like to re-run the test but with a bigger one.

however, I would want to exclude those that already participated to the initial a or b test. when I clone, I can exclude from previous mailings, but only from the final, not from the a or b tests. is there a way to do that?

so what I did was to search the contacts in the original a and b groups, and added them into a new group already-tested, that I then excluded this group from the cloned ab testing.

note that i had to copy paste in the new ab-test, as the re-use feature doesn't properly clone the ab experiment, just one of the version


Direct Debit ACH/EFT Contribution: Asking for Banking Info Twice When trying to complete a contribution using ACH/EFT our donation page (http://www.thewellspringfoundation.org/donate) is asking donors to enter their banking information twice.

The form is asking for the Name of the Account Holder, Account Number, Bank Number + Transit Number, and Bank Name in the Direct Debit Information section before the Billing Name and Address section AND then after the Billing Name and Address section it is asking for Transit Number, Bank Number, and Account Type. After filling in all the info, the Contribute button is greyed out. I believe this is because the Bank Account Number field is not displayed in the lower section, which I believe is generated by the iATS extension. See screenshot:

I have also noticed that the 'cheque' image is not found, as it it looking in the wrong place, the absolute path to the file, which could be due to something in my directories settings(?!?).

I upgraded to CiviCRM 4.7.28 earlier today. I am using CiviCRM in Wordpress 4.9.1. I have the following Extensions active in CiviCRM:

iATS Payments 1.6.1
Summary Fields v. 3.1.1
Extended Report v. 3.0
Displays relationships in the contact summary v. 1.2
Mailchimp v.
2.0.1

Exactly - the broken image for the cheque display tells us that the template/js from the iATS Extension are not loading properly

First thing to do is to check your Resource Settings URL:
civicrm/admin/setting/url?reset=1
specifically the Extension Resource URL

Second thing to do is to start up a browser inspector tools - and check the console -> for javascript errors when you load the page;


When removing a group from a contact I get: Error - DB Constraint Violation - GroupContact, get API [copied from https://issues.civicrm.org/jira/browse/CRM-20711
noted on CiviCRM version 4.7.27]

In the Contact record, when I try to remove or delete a contact from a group they've already been added to, I receive this error:

DB Constraint Violation - group_id should possibly be marked as mandatory for GroupContact,get API. If so, please raise a bug report.

I am able to remove a contact from a group when in the Group's list of contacts view, so this isn't critical. Posting in case it happens for others.

This bug seems to occur on old (i.e. version 2.x) installations, due to an error in an old upgrade script that removed the location_id field from the civicrm_group_contact table.

You can fix it using this sql:

ALTER TABLE civicrm_group_contact ADD COLUMN `location_id` int(10) unsigned DEFAULT NULL COMMENT 'Optional location to associate with this membership'

Credit for the solution goes to Eileen, via this commit:

https://github.com/wikimedia/wikimedia-fundraising-crm/commit/e5b853cd55ebf83b68a783a86bf3274dcf20dfb9

Credit for the original issue linked in the question above goes to Lizz Trudeau.


CiviCase - Edit Actions with permission: "CiviCase: access my cases and activities" Im Configurating CiviCase and I have seen that if a contact has the "CiviCase: access my cases and activities" permission, he cannot use the actions of the assigned roles.
I understand that this permission has certain limitations, but I think this should be available, maybe I am wrong, but I think it would be interesting to be able to eliminate the assigned roles or change the person from the role since the case is created by the user who edits it.

It was done deliberately in 2010 and it's been that way ever since. While it's not stated in the JIRA link below, if I had to guess the reason it's because it might allow you to give your buddy access to a case they shouldn't see.

See

https://issues.civicrm.org/jira/browse/CRM-5666
https://github.com/civicrm/civicrm-svn/commit/d3cc0a1d87d86bbdc5eeda2a8975e382fcf66576#diff-33fb19b4d7d2903e556b3c4a2ed1ffd5L129-L130


CKEditor - add left, right, centre, justify buttons In 4.7 - in my 4.7.24 as well as the demo - these buttons are no longer present in the CKEditor wysiwyg button toolbar.

It turns out this has a simple fix: add the 'Justify' plugin to Civicrm.

Go to the CKEditor config screen: Administer > Customise data and screens > Display preferences > CKEditor config

Then add the Justify plugin.

A new toolbar group will appear in the 'paragraph' section, which you can then move around as you'd like.

Then save your settings...

In my installation, for some reason something is hampering the UI from working properly. If that's the case, you can still call the plugin by directly editing the config file: (in our drupal 7.56 installation)
sites/default/files/civicrm/persist/crm-ckeditor-default.js

and ensure you add the justify plugin to lines like:

{ name: 'paragraph', groups: [ 'list', 'indent', 'blocks', 'align', 'bidi', 'paragraph', 'justify' ] },

and

config.extraPlugins = "justify,showblocks";

If you're editing this file directly you have to be very aware that it will be over-written if anyone saves the CKEditor settings using the UI as above.

Hope this is helpful to others out there mystified by the lack of these buttons!


Paypal Sandbox - Internal Service Error I'm trying to hook up Paypal payments using Paypal Pro.

I'm trying to use the sandbox ( although we have a valid Pro account for live payments ) and I keep getting the 'Internal Service Error' this happens when using the form and also the checkout button.

I've validated the endpoints are correct ( if not it returns another error ) but it seems as if it's a problem with the account itself?

Can anybody point me in the right direction with this? Has anybody set this up themselves?

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


Get a 403 error when adding an image to the online registration page in event management Using CiviCRM 4.6.6. on Drupal 7.56

Just moved this site to a new server following normal procedures.

When managing an event, I can add an image to the info and settings page, but when I try to add one to the Online Registration page, the registration page is returned incorrectly and I get a 403 error. The event ID is completely lost. This is intermittent. Sometimes the page saves the image.

Trying again on 4.7.22. Endless spinning triangle of death.

Any ideas? Thanks

Turns out it's ModSecurity on the server interfering with things.


Can we automatically make a users Drupal account inactive when their membership expires? We are running on Drupal 7.67 and Civi 5.13.4.

Our client wants to be able to block users whose memberships have expired and request them to contact the client to reinstate their membership.

We have been trying to build a custom module to be able to do this and are finding it challenging.

Is there any way that we would be able to use the CiviMember Role Sync or the CiviGroup Role Sync modules to help us achieve this is a simpler manner? If not, how should we proceed.

Thank you

Making the account inactive is probably not the best user experience.  You could use CiviMember Roles Sync, permission your member content appropriately and show your inactive members the renewal page.


Why do 'track click through' links not redirect to correct address? When I add links to external websites (such as www.wikipedia.org) to mailings and check 'track click through' the links go to a page on  my website that says 'page doesn't exist'. The url is something like this: mysite/wp-content/plugins/civicrm/civicrm/extern/url.php?u=30&qid=44.

This is obviously a key reason for wanting to use civiCRM so it'd be great to have link tracking working.

I see people have had this problem in the past (see here and here) but I can't seem to find a solution for it.

I have looked at extern/url.php and TrackableURLOpen.php and there don't seem to be any problems. (gists: trackableURLOpen.php url.php)

I'm using wordpress and civicrm 4.6.

My civicrm files are here: http://mysite/wp-content/plugins/civicrm/civicrm/

My temp files are here: http://mysite/wp-content/plugins/files/civicrm/

My civicrm.settings.php file says:

global $civicrm_root;

$civicrm_root = __DIR__ . '/civicrm/';
if (!defined('CIVICRM_TEMPLATE_COMPILEDIR')) {
define( 'CIVICRM_TEMPLATE_COMPILEDIR', __DIR__ . '/files/civicrm/templates_c/' );
}

Should the root be DIR . '/civicrm/civicrm/'? because that doesn't work.

If you have access to the database then try checking the civicrm_mailing_trackable_url table to see exactly where the URL's are going to. This should identify if they're incorrect. You'll need to know the mailing id of the job you've run but you should be able to get that easily enough from the URL of the mailing reports.


Updating Custom Form Value via jQuery not Saving to Database I have been charged with developing CivicCrm for my place of business.

The company I work for is a nonprofit and we help people with disabilities both mental and physical. The Department that deals with seniors needs to produce reports to certain agencies. As part of the reporting, a matrix must be filled out – This is a questionnaire.

I currently have all of the question fields created in sections/tabs under CivicCase. The matrix is grouped by questions.  For example a section entitled Income will have 4-5 questions based on Income. Depending on the yes or no answers a final field (#6) will need to be automatically populated. For example the questions are:

Does the household have income (both earned income and cash benefits)?
Is the household's income greater than or equal to 200% of Federal Poverty Guidelines?
Does the household show appropriate spending habits (Focus on meeting basic needs before purchasing luxuries, no unusually high costs, no spontaneous or inappropriate spending)
Does the household need assistance (Outside of own income) to meet basic needs?
Does the household have discretionary income and the ability to save?
Score:

So if 1 is answered yes you would continue to 2. If 2 were answered yes you would continue to 3.  If 3 was “no” then a score would need to be recorded in field #6 above and no further questions would be needed and the rest would need to be changed to no. There will be several sections that will be about employment, Housing, etc. that would need to be scored similarly.

I have currently been able to use JavaScript to change the fields but when saved the incorrect value is saved in the database. I am using 2 answer dropdown selections.

I know this is probably something simple I am missing. What value should I be changing for it to save to the database?

CivicCRM version:  4.7.4
Drupal: 7.43

I am not using anything other than a custom jQuery script that I am including in the head of the document using the Drupal template.php file.

Thank you
C Tyler

Are you changing it to the "value" or the "label" for the dropdown options? It should be the "value" (as defined when you set up the multiple choice options for the field). Or you can look in the generated html which might look like this <option value="1">Yes</option>, and then you'd use "1", not "Yes". It's the select tag you want to update not the associated input tag (well, yes the input tag too, but it only matters for the display on-screen).


How to suppress translation of months (or all fields) in receipts? My platform: CiviCRM 5.16.3 on Drupal 7.6.7 PHP 7.2 CentOS 7.
Drupal language is English.
CiviCRM l10n installed and selected my own languange zh_TW Chinese(Taiwan).

At receipt print-outs CiviCRM does all the translation it could, but I want the English version of dates e.g. Sep by %b, not my local language. (Because English dates are more universally understood.) In particular, how can I suppress translation at particular Smarty tag e.g. {$receive_date}?

If translation cannot be suppressed for some fields can I suppress translation for the whole printout?

I cannot find any trace of Month names translation in Drupal or CiviCRM localization files.

Thank you for your help.

Best Regards.

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

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

I hope that helps.


Is it possible to create a token in hook_civicrm_tokenValues that retrieves the name of the creator of a non-mass-mailing? One of our staff team has recently requested a new token be added to civi mailings that allows the name of the sender of the email to be automatically added (for use in the signature at the foot of the email). This would mean that they did not have to regularly change the name at the bottom of their mailing templates when new staff members left or arrived.
I see that hook_civicrm_tokenValues is the standard hook used to create custom tokens for civi.
I can see that one of the parameters to this function is $job.
Mass Mailings Token
I have successfully managed to create a token that returns the sender of an email for mass mailings, using this variable $job to call the API and retrieve the required info. Here's the API call that retrieves the first and last names of the creator of such a mass mailing:
    if (!empty($job)) {

      //Create a token to put in the name of the creator of the mailing

      // given the job id, retrieve the mailing id.
      // given the mailing id, retrieve the contact id of the creator of the mailing.
      // given the contact id, retrieve the first and last name of the creator of the mailing.
      $result = civicrm_api3('MailingJob', 'getsingle', [
        'sequential' => 1,
        'return'     => ["mailing_id.created_id.first_name", "mailing_id.created_id.last_name"],
        'id'         => $job,
      ]);
}

'Personal' / Activities Mailings Token
However, for mailings that are not mass mailings, this technique does not work, since such mailings appear not to have a job id, and are stored not in the civicrm_mailings table, but the civicrm_activities table.
I have examined the incoming contents into the hook_civicrm_tokenValues hook. They are $values, $tokens, and $context.
$tokens appears to list which tokens are being used in the particular mailing being processed.
$context appears to show in what context the hook is being called - in this case 'CRM_Activity_BAO_Activity'.
$values appears to show the values that are available to be used to construct tokens. These all appear to be values directly related to the contact being emailed e.g. first name, last name, display name, etc... There do not seem to be any in the list that I could use to call the API (or indeed query the database) to get the contact name of the person sending the email.
Is this simply not possible, or is there  a way of doing so?
Ideally, one would be able to access the activity_id of the activity that the mailing was part of. If that was available, calling the API to retrieve the email creator (using the civicrm_activities_contact table) would be trivial.

For the use case where the email is sent from a logged in user, one could use the function CRM_Core_Session::singleton()->getLoggedInContactID() to get the logged in contact ID.
This would fall down for those cases where the email is generated by a 'system call', e.g. an email that was triggered by a cron job, but that might not be a deal breaker for your use case..
You could always add a fallback behaviour for those situations where it has not been possible to find a contact by either your method or the above method, e.g. populate the token with 'your friendly membership officer' or provide a default contact id or similar.


Shouldn't duplicate group titles be possible? I'm wondering why duplicates in group titles are forbidden. Unique names should satisfy all bao and dao needs, don't they?

We need a repeated structure like

o project a
  o customers
  o services
  o orders
o project b
  o customers
  o services
  o orders

and it seems, civi is prohibiting this.

Any help would be appreciated, thx in advance // nielo

I suspect the reason is that the requirement that names be unique predates the ability to have parent groups.  That said, allowing non-unique groups would complicate UI design.  For instance, I've seen the scenario where someone has permission to view a parent group but not a child group.  In your case, if someone did that, they'd have no way to differentiate between Customers A and Customers B.

That said, I don't think there's any other compelling reason not to drop the unique index from the name column in civicrm_group and see what happens.  Don't forget to create a new non-unique index once you delete the old one!


The cron job "Activity processor (Hourly)" fails The cron job "Activity processor (Hourly)" has started failing for no apparent reason with the message "Failure, Error message: Process Activities failed" in the job log, although the message coming from cron is "Failed Processing: . Reason: DB Error: syntax error". Neither message is much help.

We are running CiviCRM 4.5.8 under WordPress 4.2.2.

Has anyone experienced this? Where do I start to find and fix the problem?

Thanks,
Jim

If you turn on debugging (Administer menu > System Settings > Debugging and Error Handling) you should get a more verbose error from cron, which should in turn allow you to troubleshoot - or at least update your question with more info!


Civirules: how to move contact into NEW group XX days after added to group I want to automatically move Contacts from my "New Organizer" group to my "Active" group 90 days after the Contact is ADDED to the "New organizer" group.
I have created a pipeline to track the stages of my volunteer's involvement. I am triggering movement into each stage by manually setting an Activity Type and a Unique Activity Status for each stage of my pipeline. I'm then added people to groups based on their Activity Status using Civirules. This works great.
But I also want to set rules that automatically move new and inactive volunteers into new groups.
I can almost see the way there using Civirules, but don't see the option to do a Field Value Comparison on Date Added to Group (or Activity Created Date, which could be another option for me)
OPTION 1
LINKED TRIGGER: Daily trigger for group members
FIELD VALUE COMPARISON: I can only select from Contact or GroupContact fields, so I can't proceed.
OPTION 2
LINKED TRIGGER: Activity Date reached ; Activity with type XX AND Status XX
LINKED CONDITION: Field Value Comparison; Activity Created Date = +90 days

LINKED ACTIONS: Remove Contact from initial Group; add Contact to new Group
Is this going to work as I expect? Will the Civirule be activated without an explicit trigger to do the date comparison 90 days after the Activity Created Date?

A rule can't be created without indicating an explicit trigger - there is a cron job for CiviRules whose description reads: trigger civirules cron triggers.

A few things about your condition:

If you are not 100% sure that the created date will always equal the activity date, you're probably better off using the activity date instead since this is user-driven whereas created date is system-driven
Using an operator of "Greater than or equal to" will allow you to capture any retroactively created/updated activities (another argument for using the activity date instead of the created date)
"Compare Value" assumes system date, so it actually needs to be negative to compare the previous 90 days (when you save the condition, you will see the date 90 days ago listed as follows: Activity.activity_date_time >= YYYY-MM-DD).

If you find that the activity based rule is not working out for you, you may wish to consider the development of custom triggers, conditions and actions as documented HERE.

Hope this helps,
Tamar


Wrong default organisation I choosed as default organisation an individual instead an organisation.
Can I change this or is there a solution?

Thousand thanks for your help.

Regard, Oliver

You can update the default information under Administer > Communications > Organization Address and Contact Info in the CiviCRM menu.


System Status: Notice 5.1.0 After Upgrade Need a bit of help just upgraded to the latest version 5.1.0 however now when I click in on the "System Status: Notice" link in the bottom footer I get an error.

Can anyone help me fix this, please?

Error calling get API for UFGroup (aka Profiles)Array ( [error_code] => no such field [sql] => SELECT a.id as id, a.is_active as is_active, a.group_type as group_type, a.title as title, a.frontend_title as frontend_title, a.description as description, a.help_pre as help_pre, a.help_post as help_post, a.limit_listings_group_id as limit_listings_group_id, a.post_URL as post_URL, a.add_to_group_id as add_to_group_id, a.add_captcha as add_captcha, a.is_map as is_map, a.is_edit_link as is_edit_link, a.is_uf_link as is_uf_link, a.is_update_dupe as is_update_dupe, a.cancel_URL as cancel_URL, a.is_cms_user as is_cms_user, a.notify as notify, a.is_reserved as is_reserved, a.name as name, a.created_id as created_id, a.created_date as created_date, a.is_proximity_search as is_proximity_search, a.cancel_button_text as cancel_button_text, a.submit_button_text as submit_button_text FROM civicrm_uf_group a WHERE (a.is_active = "1") LIMIT 100 OFFSET 0 [nativecode=1054 ** Unknown column 'a.frontend_title' in 'field list'] [tip] => add debug=1 to your API call to have more info about the error [is_error] => 1 [error_message] => DB Error: no such field [debug_information] => SELECT a.id as id, a.is_active as is_active, a.group_type as group_type, a.title as title, a.frontend_title as frontend_title, a.description as description, a.help_pre as help_pre, a.help_post as help_post, a.limit_listings_group_id as limit_listings_group_id, a.post_URL as post_URL, a.add_to_group_id as add_to_group_id, a.add_captcha as add_captcha, a.is_map as is_map, a.is_edit_link as is_edit_link, a.is_uf_link as is_uf_link, a.is_update_dupe as is_update_dupe, a.cancel_URL as cancel_URL, a.is_cms_user as is_cms_user, a.notify as notify, a.is_reserved as is_reserved, a.name as name, a.created_id as created_id, a.created_date as created_date, a.is_proximity_search as is_proximity_search, a.cancel_button_text as cancel_button_text, a.submit_button_text as submit_button_text FROM civicrm_uf_group a WHERE (a.is_active = "1") LIMIT 100 OFFSET 0 [nativecode=1054 ** Unknown column 'a.frontend_title' in 'field list'] )

SOOOO, I am a total idiot forgot to run the upgrade URL.... yep so that happened.

Sorry all


Unable to configure CkEditor in 5.29.1 In CiviCRM > Administer CiviCRM > Display Preferences (/civicrm/admin/setting/preferences/display?reset=1) there's a Configure CKEditor button that does nothing.
CKEditor is stripping out certain style declarations. I want to be able to have simple declaration for adaptive images and the system won't let me.
Any ideas? Thanks in advance for any help...

Is there any JS error on browser console? Can you go to editor link directly? (civicrm/admin/ckeditor?reset=1)


SendGrid requires credentials for every login using WP Just move our site to a new hosting environment. Did not have this problem before.  Using CiviCRM with WordPress.  Every time we go into CiviCRM we must enter the SendGrid credentials.  Any idea what would cause this and how to stop it?

Update: This problem came back. It is an authentication login and it is required. It is part of the Sendgrid plugin for CiviCRM. Wrote to the developer who tells me that this plugin is incorrectly listed as CRM independent - it only works 'properly' with drupal.

The authentication is required for any access to civicrm, including public listing or event registration, etc. Hence Sendgrid Plugin is not viable for WordPress.

This is resolved on its own, not sure why or how but this is no longer happening.  If I find more info I will post for anyone else with the same problem.

Update: This problem came back.  It is an authentication login and it is required. It is part of the Sendgrid plugin for CiviCRM. Wrote to the developer who tells me that this plugin is incorrectly listed as CRM independent - it only works 'properly' with drupal.

The authentication is required for any access to civicrm, including public listing or event registration, etc. Hence Sendgrid Plugin is not viable for WordPress.


After installation Civi menu and dashbord do not show (SOLVED) after a successful installation of CiviCRM 4.7.19 on WordPress 4.7.4 – the installer said everything was fine –, the menu and dashboard of CiviCRM does not show.

I know, this issue has been addressed elsewhere, but the solutions proposed there didn't work for me.

For instance, in the following case: Civi dashboard and menus won't display after install the solution seemed to be to replace the CiviCRM Resource URL which was set to default. However, the solution does not say, how to find and access this Resource URLs settings page where this default would have to be changed.

In another solution Word Press Install Missing civicrm.settings.php; dashboard unavailable; no menus it was suggested to install a certain plugin https://wordpress.org/plugins/civicrm-admin-utilities/ , which unfortunately also did not help me.

I've also looked into similar cases on Drupal, like this one: Civicrm menu is hidden
There someone suggested to rebuild the menu via adding /civicrm/menu/rebuild to my page, but it only gave me an error saying I'm not permitted to access that page.

I'd be glad to hear some of your ideas on this issue.

Thanks and best regards!
Jannis

EDIT: Posted the solution below.

Thanks for all your good ideas. Finally I've solved it by going through the first case I've listed above: Civi dashboard and menus won't display after install.
Though I could neither access the menu nor find the resource URL in my database, I found a link to the administer page in the case, which is wp-admin/admin.php?page=CiviCRM&q=civicrm%2Fadmin&reset=1 There I could change the default to the actual CiviCRM Resource URL.


How can I create branching scripts that a caller can use as part of a membership signup workflow, etc? We're on Drupal and Civi 4.6.16.

I want to create forms with branching scripts for staff to use when doing membership signup calls, fundraising asks, etc.

I've created a webform using webform-civicrm that a caller signs into, with the contact and donor history info for the "target" contact, a "script" for the caller to use (using textarea fields), info on Activities to be created as appropriate based on the target's responses (like non-membership contribution ask - a one-on-one follow up meeting if the target agrees to meet).

But rather than have one long webform with various script options, I want to have the answers to questions asked in the script take the caller to a next step in that "workflow"- so if the target wants to contribute but does not want to schedule a follow up one-on-one meeting, then the script skips right to a page for the caller to get the target's contribution info while on the phone with the target.

However, if the target does agree to a one-on-one, then the script skips/branches to a page to create a non-membership ask activity/one-on-one meeting.

So have you done this? Are there public pages with examples?

Thanks for any info.

Haven't explored this but my first thought is that conditional fields might be an option in webforms.

Based on whether the user checks this box or that box additional fields could appear. I think webform even supports doing multi-page forms and might be able to add those using this method.


username and password invalid on cronjob setup through anacron on server control panel I am trying to run all cron jobs at a one hour interval, but I keep getting "Could not open input file". my path: @hourly 0 my_php_script php -f /srv/data/web/vhosts/[mysite]/wp-content/htdocs/plugins/civicrm/civicrm/bin/cron.php.
I am using the admin credentials for the database, which are the same for wordpress, and as administrator in Civi.
Are there other credentials I need to use?

Welcome to SE!  The message is "Could not open input file" so the problem is finding the files it needs to run, not the username/password.  What is 'my_php_script' in the cron entry?  Does the cron entry literally include '[mysite]' or is that where you have redacted your site name?
There are several ways to run scheduled jobs but I suggest you use the 'cv' method if you can.  See the documentation for details.
Administrator credentials will work, or you can set up a dedicated user for cron.


Application of Discount Code results in crazy amounts, new discount codes do not work I use CiviCRM for Joomla. After upgrading CiviCrm 4.7.27 to CiviCRM 4.7.29 following problems came up in module CiviEvent using CiviDiscount:

a EUR discount results in crazy figures (e.g. a 100 EUR discount from 780 turns to be 779.999.999.900,00  instead of 680)
new discount codes dont work at all

The database cividiscount_item shows correct values, also the new values are added there.
So problems seems to arise after hitting "APPLY" - Button with id and name "_qf_Register_reload" in the CiviEvent-form

It looks like being related to the decimal sign "." or ",", but till now I have no clue checkign the code in cividiscount.php around line 420

Everything worked fine before the upgrade of CiviCRM

I found this issue as regression to CiviDiscount ext due to CRM-21562 changes. Submitted a PR https://github.com/dlobo/org.civicrm.module.cividiscount/pull/190 against CiviDiscount ext. Can you please test this patch and if possible provide your feedback in the PR itself, that will be helpful in getting it merged?

Thanks!


Strange characters on CiviCRM dashboard CiviCRM 4.4.7 on Pantheon (CiviCRM starter kit).

When I go to the dashboard page, I see strange characters that look like white checkmarks in a circle with a green background.

It might be that the css of your theme clashes with the css of civi (there is a style rule to avoid repeating that icon, that might be overwrited by one in your theme).

As a quick test, can you switch to the default drupal theme and see if it's still an issue?

If not, you will need to modify your theme to add a rule so the background image for the icons doesn't repeat. Not complicated, but likely specific to your theme, so hard to give you a generic advice without knowing the specifics


Invalid html markup in javascript I've been asked to take a look at a civicrm installation on wordpress. They are having trouble getting an event page to work correctly. I found that there are lots of javascript errors being thrown. When I look at the page source of the registration page I see lots of p and /p tags in with the javascript which is causing script errors. e.g.

Sounds like some javascript got pasted into a rich text editor ("WYSIWYG"), and the result is linebreaks in the JS are being interpreted as content linebreaks and wrapped in <p> container.

Simple fix: edit the content containing the JS, and use the "View Source" button or equivalent to enter the JS in source mode rather than content mode.

More robust approach (less easy to break, etc): add the JS via a custom template (see "Appending jQuery or other code") or from a custom extension.


Multiple automatic discounts for memberships So we have three membership levels - a 1 year, 2 year, and 3 year. The discount level for 1 year and 2 year are the same, but it is higher for the 3 year. I have the discounts for them set up the same way, except one applies to 1 and 2 year and the other applies to 3 year. However, only one is showing on our membership page. Is it a problem of there only being one allowed?

The point of the discount is that it automatically applies if the person still has a current membership. If it has expired, they are charged the full price.

The user that I am logged in as when looking at this membership page has the 3 year membership type.

Here's what I get on the membership renewal page, the setup for the 1 & 2 year discount, and the setup for the 3 year discount:

I was able to reproduce the issue using the discount code configuration you provide in your screenshots and it appears that it has been reported to the developers of CiviDiscount here. So, bottom line is, your codes are set up correctly, but currently only one autodiscount can be applied per contribution or event page.
You may wish to offer funding in the same thread listed above if resolution of this issue is of high priority to you.
Hope this helps,
Tamar


Priming Summary Fields I hope you can help. I am new to CiviCRM and writing a custom Summary Field.

I have written the new field and the trigger, but I am confused about how this will count all of the values for before today. Is there a place in the extension I need to include another query? Is there other magic I am missing?

Thanks,
Penny

When you go to Administer menu » Customize Data and Screens » Summary Fields, the last option is When should these changes be applied?. Your summary fields will be primed at the time selected.  If you want to look at the code, the function is sumfields_gen_data.


Whats the difference between a case sequence and a case timeline? Whats the difference between a case sequence and a case timeline? I can see one has an offset and the other doesnt, is that it?

A timeline defines a default schedule. The default schedule may intentionally stretch over a long period of time (weeks or months). Activities can potentially be concurrent or reordered. For example, as soon as the case is opened, you schedule four activities:

We should acknowledge the new case within a day.
We should have a phone call with the client after 3 days.
We should have an internal meeting after 3 days.
We should file a report after 14 days.

A sequence defines a list of back-to-back steps. There's no particular length of time (days or weeks or months), but there is a very specific order. For example:

As soon as the case is opened, we should send an acknowledgement. It should be sent as soon as we can.
After the acknowledgement, we should make a phone call (as soon as we can).
After the call, we should have an internal meeting (as soon as we can).
After the meeting, we should file a report (as soon as we can).

Both are idealized; the real activities will happen on their own schedule. These idealized models aim to be easier to discuss/explain, but they lack nuance (e.g. conditionals, branches, merges). For more sophisticated processes, one might

Write a case controller function using hook_civicrm_caseChange and Civi\CCase\Analyzer.
Write event/condition/action rules using CiviRules.

(Note: Some of the early specwork for sequences and case-controllers can be found at https://civicrm.org/blogs/totten/customizing-civicase-workflows and http://wiki.civicrm.org/confluence/display/HR/CiviCase+Util . The architecture is basically unchanged, but several of the symbols changed during implementation. "Pipelines" were renamed to "Sequences", and all the new classes were moved to Civi\CCase.)


Assign large numbers of activities at once - Wordpress Is there any way of doing this from the interface. I have lots of activities that need to be assigned to a small group of individuals. I want to assign these (currently unassigned ) activities to the corresponding contact. Can't do it through batch update or import, the assigned field isn't exposed.

If there is a way, we didn't find it, and that was partly why Fuzion put a bunch of time in to making it possible to assign/unassign/reassign Activities in Drupal using CiviCRM Entity Actions which is now a submodule of CiviCRM Entities, Views and Views Bulk Operations, in order to deliver a Calling Tool that could be driven from the Drupal front end. (Is there some way I can mark these types of answer as Drupal-only info?)


CiviCRM Webform - enforce ACL permissions I'm building a webform to create activities against existing contacts. I want to make it so that the user completing this webform about an existing contact can only use it on contacts that are legitimately accessible to them via the ACL. Otherwise you get a message saying no and you can't fill in the form.

Obvs I could do this in a hook, but I bet it's functionality that other people would love.

So rather than fumble and hack around, I'm asking the community, where in webform_civicrm would be the best place for this to go? Any other tips/advice/general suggestions?

Thanks,

Have you seen this extension:

https://civicrm.org/extensions/relationship-permissions-acls

It makes the permission flag on a relationship work like a true ACL.

But then perhaps you don't have relationships to work with?

So:
- create a relationship between your Primary Contact and the Contacts he/she has access to [e.g. Counselor and the kids in the Youth Program]
- via webform_civicrm and the additional extension above you can pull in all a Counselor's Contacts on a webform -> with enforce permissions true
- don't allow the Counselor to create new contacts - and lock a Contact's fields; that way the activity can only be created if the Counselor has the necessary permissions to view that contact.

To make the form not accessible to certain users who don't have the necessary permissions in CiviCRM (ACL) -> put your ACL allow users into a CiviCRM Group -> then use GroupRole Sync module to assign these users automatically to a Role when they login -> then configure your form such that only users with that role are allowed to Submit the form.


How do i list upcoming events publicly using CiviCRM in Wordpress I've created a couple of events and a public info pages for them in Wordpress

How do i create a page / public report that lists all these upcoming events?

Cheers
phil

I suggest you install the CiviEvent Widget.


Override automatic geocoding for events How can i override or update the coordinates for an address on an event that isn't displaying correctly. Seems like the option in wordpress for Override automatic geocoding is missing in drupal - or maybe its elsewhere?

Thanks!

Drupal 7, Civi 5.12

The Latitude, Longitude fields are only visible when they are enable in 'Address Editing'. To enable it navigate to Administer >> Localization >> Address settings. Check for 'Address Editing' option. Check box for Latitude, Longitude option and save the settings.

HTH

Pradeep


Were they a member last year? We are trying to come up with some reports that show retention rates over the years.  I had thought that I would be able to do a include/exclude search where I include members from 2015 and exclude members from 2016 to show who had dropped out, but the 2015 members are problematic.  For example, we have a member who joined in 2012, and did not renew until 2016.  With a start date of 1/1/2012 and an end date of 12/31/2016, there is no data point which shows whether they were an actual member in 2015.  In addition, many of our memberships are free, so there is no transaction to query.

Any idea how to do this?

Memberships have three primary dates, the join date (member since), start date and end date. The join date is the date the contact first signed up for a membership with your organisation. Unless it is altered manually it will never change from that first value. The start date is the date the current continuous period of membership began. The end date is the last day of the current membership.

Examples for a 12 month membership:

Mary joined on 1/1/2011 and has always paid her annual membership fees when they are due  She will have a member since date of 1/1/2011 and a start date of 1/1/2011 as she has been continuously financial since 1/1/2011.
Peter joined on 1/1/2011. At the end of 2011 he let his membership lapse.  He rejoined on 1/1/2014 and has paid his membership fess regularly since then  when they are due.  He will have a member since date of 1/1/2011 but a start date of 1/1/2014 as he has been continuously financial only since 1/1/2014.

So your member who joined in 2012 (presumably for 1 year)  but didn't renew until 2016 should have member since = 1/1/2012 and start date = 1/1/2016.

The exact search filters you need to use depend on the duration of your memberships, whether they are fixed or rolling (rolling makes it much more difficult) and what hapens if they join on, say, 1 October rather than on 1 January.

Assuming a fixed 12 month membership that always start on 1 January you can find all contacts who joined previously, are currently financial(2016) but weren't financial last year (2015) by using Advanced Search with membership filters:
 - member since "To" date of 1/1/2014 (no need to set "From" date)
 - start date "From" date of 1/1/2016 (no need to set "To" date)

This won't work if you have modified the membership settings somehow (perhaps by setting member = yes for the expired membership status), or if this is a new CiviCMR install and the old membership data wasn't imported correctly.


How can I remove the Billing Name and Address section from the donation form? I would like to remove the Billing Name and Address section (which includes the fields First Name, Last Name, Street, City, Country, State, ZIP) from the donation page. What would be a good way to go about that?

The section shows when I am using a credit card payment processor (Stripe in my case).

I have tried commenting out the section from the smarty template /civicrm/templates/CRM/Core/BillingBlock.tpl. However, CiviCRM naturally still checks those fields upon form submission and gives an error that they are empty.

For background information, the reason for removing the section is that I noticed that the workflow of completing this section on a mobile device is extremely poor. It was difficult even for me to complete these fields on a mobile device - actually I quit trying after some effort. Additionally, our organization does not use this user data, so removing the section seems like a very good streamlining of the user experience without any disadvantage to the organization.

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


Is there a way to capture the event price "label" with Webform CiviCRM? With a default CiviCRM event registration, the fee level has a label that is captured and displayed in participant listings:

When we use Webform CiviCRM as an event registration interface, the amount is captured and displays in the amount column, but the "Fee level" column is simply blank. If we set up the payment field as a dropdown, is there a way to capture the label that is used and display that in participant listings and exports in a similar way for additional context, so we don't have to remember what the dollar figure means (which could be different for different events)?

I wonder if this is another example of this issue?
https://www.drupal.org/node/2840851

Short version - Webform CiviCRM does not provide line item detail to CiviCRM, which only guesses, sometimes wrongly, the details. That issue provides a patch which tries to make smarter guesses.


Member as chapter and company So I know that the Organization contact type is sort of used for two purposes. One it can be a chapter of the primary org that the CiviCRM is setup for and it can also be used for a company that a member is an employee for. What I don't know is how do you setup a contact to be part of your chapter and also set their employer? Do we need to add a custom field to the summary view so that we can create this extra relationship?
Our client, whom we are setting CiviCRM up for, has some chapters/sub-orgs under the main Non-profit org and a member could be part of that org. But when adding the member, if they want to provide the company they work for, we would need to allow for this as well.
The OTB setup only has the employer which is the org lookup field, so not really sure if the chapter use is intended to be an extra custom field or not.

You would normally handle this with multiple relationships on the "Relationships" tab.
I suspect an unspoken requirement is that the Chapter relationship should be on the "Summary" tab.  You can do that with the Relationship Block extension, perhaps paired with Contact Layout Editor to position it where you want.


Using ACL for event registration I have a use case where there are public and non public events. Public events should be seen by everyone and can be registered for. Non public events should only be seen and registerable for a certain group (members.

With ACLs I deactivated the CMS permissions and added the rights to view / edit an event. I got as far as to create a seperate ACL for each event which grants the appropriate right in order to make an event public / non-public. This process however is very tedious since it required the creation of a seperate ACL for each event. Is there a way to make this more "global" so that events of a certain category (custom field) are public while others are non public?

You could apply the same techniques for event pages that are described for contribution pages here: Are private contribution pages a thing?.

EDIT: Actually that's only a piece of the puzzle, let me give an example (and make it CMS-agnostic).  Assuming you want to limit access to members of "Newsletter Subscribers"

function hook_civicrm_preProcess($formName, &$form) {

  $redirectPath = 'home';  // set this to the url to redirect to if access is denied

  if ($formName == "CRM_Event_Form_Registration_Register") {
    $contactId = CRM_Core_Session::singleton()->getLoggedInContactID();
    $result = civicrm_api3('Contact', 'get', array(
      'group' => "Newsletter Subscribers",
      'id' => $contactId,
    ));
    if ($result['count'] === 0) {
      CRM_Utils_System::redirect($redirectPath);
    }
  }
}

Note: This will hide ALL event registrations.  You'll have to find a variable in the $form object to use to determine whether this code should run on a particular page and modify the if condition.


CiviMail - Prevent images from being blocked by Outlook How do I embed images in the email body using CKEditor such that they are loaded automatically in email clients such as Outlook and they and not blocked, with the user having to righ-click to download.
Our organization is currently using a separate email client (Sendinblue) to send mass emails, since all emails with embedded images sent from Sendinblue are not blocked by Outlook or other email clients. This is a real disadvantage as we now need to maintain an email list in Sendinblue and manually sync this with contacts and donors in CiviCRM. I have read that you need to use Content-ID to embed images into the email, but how do we achieve this with CiviMail and the CK Editor? We are desperate for a solution here! So any help resolving this, is very much welcomed.

Outlook (and most of the mail clients), block loading external images, because otherwise, the server hosting them would know that you have opened the email (in fact, it's what we do to track the open rate, add a transparent 1x1 pixel image and count when it's displayed)

So to avoid being blocked, you need to send the image as part of the email, not unlike an attachment (with a defined Content-ID:somekey), and as the source of the image (src="cid:somekey") in the mail.

Both of these are not that difficult to implement at the technical level, but might be slightly more tricky in the CKEditor (eg. because it doesn't know it's used to compose an email).

Unfortunately, no one having that need have contributed the code or funded the development.

Would you be able to step up and make it happen? it would be a nice addition to civimail.


How do I use Table Cell Separator when creating Thank You letters? Civi 4.6.18 using WordPress

I am working on creating a year-end statement for donors with all their donations for this year on it.  I am using the "Thank You letter" to do so.
1. I select Group by = Contact
2. I select Separator = Table Cell.

My results are Comma Separated. How do I get them into separate table cells?

Here is my source code for the letter.

Dear {contact.first_name}

&nbsp;

            Date
            Amount
            Receipt Number

            {contribution.receive_date}
            {contribution.total_amount}
            {contribution.contribution_id}

I got my original information from here. https://github.com/civicrm/civicrm-user-guide/blob/master/docs/contributions/manual-receipts-and-thank-yous.md

A big Thank-You to Karen with Greenleaf Advancement for helping me out with this.

There is a bug in Civi that does not allow the Table Cell separator to function. Karen helped we with some base code that works around the issue, I was able to tweek it from there to work for our situation. Paste the code in the Source of the letter. We use Line Items with all our donations. You will have to re-work the code a little if you do not use Price Sets. You may also want some additional columns ore in a different order. Just edit the code to your liking.

            Date
            Cont ID
            Contribution Designation
            Amount

            {$date}
            {$contribution.id}
            {$lineitem.label}
            $ {$lineitem.line_total}

            2016 Total Contributions
            $ {$contribution_aggregate}.00


Can a Scheduled Job using mail_report send Reports as HTML in the e-mail body, rather than as a PDF attached to the e-mail? We're on CiviCRM 4.6.19 and Drupal 7.50 .

I'm having problems with six daily Scheduled Jobs to send reports using Job and mail_report and instanceId=x. Three of the reports get sent successfully, and three do not. There's an error reported with DOMPDF when executing the three failures manually as well. It's not an error with the e-mails being blocked as spam.

So: Is there an option to send a report as HTML in an e-mail as a Scheduled Job, rather than as an attached PDF file? Is there a parameter for mail_report to send as HTML?

Or: Is there another API option to do this besides mail_report?

Thanks!

Yes, you can send a report as printer-friendly HTML, in the body of a Scheduled Job e-mail, using mail_report.

Go to Administer -> System Settings -> Scheduled Jobs. Edit the Scheduled Job parameters to add format=print, which overrides the default option, which is to send the report as a PDF file attached to the e-mail.

See here for more information about managing Scheduled Jobs, including parameter options.


How can I import Volunteer information from a spreadsheet CiviCRM 4.7.24
Wordpress 4.8.x
CiviVolunteer

I have installed CiviVolunteer. I have created a project which I need in order to import some basic volunteer data from a spreadsheet.

I have imported the contacts already, and have a unique ID to match them back with the rest of the data.

Now I need to import the volunteer data. There's not really too much.

From what I can glean from the pretty sparse documentation, you have to import the volunteer information as an activity. But there's no indication of what fields in the import list correspond to.

Do some of them correspond to the project I created above? Or are they their own thing?

I haven't seen any documentation about projects joining to activities and how they all link up.

Is this something i might be able to find in the CiviCRM API Explorer?

Thanks!

Take a look at Fuzion's API import extension if you need an import option that goes beyond the standard Import options. It may not help directly with the volunteer data that goes in the civicrm_volunteer_ tables, but could help with other stuff, like Activities and Relationships.


How to give fine grained access to communicating with selected contacts only? We're a non-profit swimming club, just starting out with CiviCRM. We're offering ~20 courses per semester and already set up registration for those with CiviEvent.

For an ideal setup i'd now need to be able to assign a responsible Trainer to each of the courses and give this person access to the registered participants contact data (only) and send e-mails (possibly sms in future) to these (groups of) participants.

What i've seen so far it seems that the usual ACL system isn't quite prepared for this as i'd need to create 20 roles, assigning 20 groups with mostly just one person (trainer) in it.. or am i not thinking the CiviCRM-way yet? (or have i possibly overlooked a way to assign ACLs to single users?)

also found this
https://civicrm.org/extensions/view-my-event-participants
which looks promising, but isn't quite ideal (yet) either. first off i'd need to hack something to change the event's creators (which usually isn't the trainer), and from a first test it seems that in CiviMail i only get access to single contacts (not groups).

thanks for any hints,
markus.

You will need to create an extension and use acl where clause hook to restrict view/edit operation for a contact.


Restrict access to webinar after registration in CiviEvent We are registering webinar participants through CiviCRM event pages, so each participant becomes a CiviCRM contact associated with one or more webinar-type events. Some of these webinars are paid events. Is there a good way to restrict access to a webinar based on the information in CiviCRM? We'd like to be able to restrict access so that only paid participants can access the paid webinars, even if someone else gets the webinar link, for instance.

We have not settled on a webinar platform yet, though we are leaning towards Zoom. Another possibility is Blackboard/Collaborate.

Any thoughts/suggestions would be welcome.

WordPress 4.8.1

CiviCRM 4.7.21

While integrations aren't hard to write for a coder, there are obviously a lot of webinar/CiviCRM integrations that haven't been written yet.  So if you're not interested in coding (or hiring a coder), I believe your two options are GoToWebinar and Moodle.


JavaScript Errors / CRM.$ is not a function After updating CiviCRM to the latest 4.6, I have been experiencing various Javascript errors. For example, on a contribution page:

(notice the CRM.$ function is defined after the page is loaded)

I've tried to clear the various caches but have been unable to resolve the issue.

Any ideas as to what the issue could be?

Figured it out after some troubleshooting. On the Drupal theme being used, the minified JS (including jQuery) was being put at the end of the page and not present when Civi JS is executed.


Web registration in CiviCRM I have a solution for non-profit organizations here in Sweden and looking for a solution regarding registration of members (persons) on the organisation's website.

On the organisations webpage there shall be a registration page connected to CiviCRM.
When the new person has filled in their information they shall have a response mail.

I want the following information from the new person.

First name
Surname
Street
Zip code
Town
E-mail

And if I can get the following information I will be glad:

Mobile phone
Birth date

Do anybody have a solution for this and in what economic level are we talking about?

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.


CKEditor dialogue can't close with IE11 When sending an email and if I insert a link or insert an image, I can't close the dialog when using IE11.

This works perfectly with IE9, Firefox and chrome browsers.

Has anyone experienced this?

I'm afraid this is a known bug (at least by me), which I reported a while ago at https://issues.civicrm.org/jira/browse/CRM-14860. I think it is related to the CKEditor version, and to the CKEditor upstream bug http://dev.ckeditor.com/ticket/10604.


Installing and Setting wkhtmltopdf Path In Civicrm How can i install wkhtmltopdf in civicrm and set the path to the exe. I am using Civicrm with Wordpress.
Any help will be appreciated.

Download the compiled binaries for your system from http://wkhtmltopdf.org/downloads.html to your server and extract to somewhere convenient.  The files need to be readable by the account running the webserver.  Then go to Administer >> System Settings >> Misc and enter the path to the wkhtmltopdf.