CiviVolunteer install fails Failure installing CiviVolunteer ver 4.6-2.1.1 on CiviCRM ver 4.7.6.

I'd previously had CiviVolunteer1.4, (pretty much just playing with it) then attempted 2.0 install several weeks ago.  Nothing happened, and then learned that it was incompatible with 4.7.   Newest release was supposed to fix, but, on attempting install -> I'm getting: message:

Sorry but we are not able to provide this at the moment.
   Field: name must be unique. An conflicting entity already exists - id: 104

   Return to home page.

On return to Civi dashboard, lots of msgs get displayed for just a few sec re: found title, found field name...

Also including image of extensions screen, if that's interesting...

Thanks!

I was also dealing with the same problem and after many debugging, the following uninstall script finally helped me to install CiviVolunteer succesfully. Warning: you will lose the data stored in CiviVolunteer tables. Use at own risk.

/* drop custom tables */
DROP TABLE IF EXISTS `civicrm_volunteer_need`;
DROP TABLE IF EXISTS `civicrm_volunteer_project_contact`;
DROP TABLE IF EXISTS `civicrm_volunteer_project`;

/* drop report-related records */
DELETE FROM `civicrm_report_instance` WHERE report_id = 'volunteer';

/* drop custom option group for roles (FK takes care of option values) */
DELETE FROM `civicrm_option_group` WHERE NAME = 'volunteer_role';
DELETE FROM `civicrm_option_group` WHERE NAME = 'skill_level';

/* drop custom field group from Activities (FK takes care of fields) */
DELETE FROM `civicrm_custom_group` WHERE `name` = 'CiviVolunteer';
DELETE FROM `civicrm_custom_group` WHERE `name` = 'Volunteer_Information';
DELETE FROM `civicrm_custom_group` WHERE `name` = 'volunteer_commendation';

DELETE FROM civicrm_option_group WHERE `name` = 'msg_tpl_workflow_volunteer';
DELETE FROM civicrm_option_group WHERE `name` = 'volunteer_project_relationship';
DELETE FROM civicrm_contact_type WHERE `name` = 'Volunteer';
DELETE FROM civicrm_custom_group WHERE civicrm_custom_group.name = 'CiviVolunteer';
DELETE FROM civicrm_custom_field WHERE civicrm_custom_field.name = 'Volunteer_Need_Id';
DELETE FROM civicrm_custom_field WHERE civicrm_custom_field.name = 'Volunteer_Role_Id';
DELETE FROM civicrm_custom_field WHERE civicrm_custom_field.name = 'Time_Scheduled_Minutes';
DELETE FROM civicrm_custom_field WHERE civicrm_custom_field.name = 'Time_Completed_Minutes';
DELETE FROM civicrm_custom_field WHERE civicrm_custom_field.name = 'volunteer_project_id';
DELETE FROM civicrm_custom_field WHERE civicrm_custom_field.name = 'camera_skill_level';
DELETE FROM civicrm_msg_template WHERE msg_title = 'Volunteer - Registration (on-line)';
DELETE FROM civicrm_navigation WHERE `name` = 'New Volunteer';
DELETE FROM civicrm_option_value WHERE `label` = 'Volunteer';
DELETE FROM civicrm_option_value WHERE `label` = 'Volunteer Commendation';
DELETE civicrm_uf_join FROM civicrm_uf_group JOIN civicrm_uf_join ON civicrm_uf_join.uf_group_id = civicrm_uf_group.id  WHERE `group_type` = 'Volunteer,Contact';
DELETE FROM civicrm_uf_group WHERE `group_type` = 'Volunteer,Contact';

/* relationship_type, */

/* drop volunteer sign-up profile (FK takes care of profile fields) */
DELETE FROM `civicrm_uf_join` WHERE `module` = 'CiviVolunteer';
DELETE FROM `civicrm_uf_group` WHERE `name` = 'volunteer_sign_up';


Registration Button not working on CiviCRM Event Page Ok So I am working on CiviCRM 5.19.2 and WordPress 5.6.  I've created an event in CiviEvent and set it to active.  My Event page has the following shortcode
[civicrm component="event" action="info" id="8" hijack="1"]
which leads to the event information page as it should.  However, the Register Here button isn't working.  It just resets to the event information page again.  If I add the shortcode for the registration page
[civicrm component="event" action="register" id="8" hijack="1"]
to the same Event Page, it leads to a list of events with more links that don't work.
I've temporarily bypassed the event info page so that my participants can register but I'd like that event info page in place with a working link.  Any ideas?

CiviCRM 5.19 is not compatible with WP 5.6.   WP 5.5 had a change that required an update which is in CiviCRM 5.26 https://civicrm.org/blog/kcristiano/civicrm-526-and-wordpress-important-notice
I'd recommend CiviCRM 5.32.2 currently as that version has all the security fixes in 5.28 (latest security version) as well many other bug fixes/enhancements.
Please look at https://docs.civicrm.org/sysadmin/en/latest/upgrade/version-specific/#civicrm-529  as this further documents some of the follow up changes that affect Paths and URLs in WP


Is the activity id of an activity created in webform available as a token to then use in an email generated by the webform? I have a form that when submitted creates a new activity. I want to be able to send out an email from that same webform to a contact with a link to a second form that preloads the activity based on the activity id being in the url.

What would the token be (if there is one) that I could use to display the ID in the email generated from the webform? The activity id is not a field that I can display on the webform so cannot just copy the form key to get the token.

The latest version (7.x-4.20) has a token for that:
[submission:activity-id:?]
Replace ? with 1 for the first activity.


How to use CiviCRM for child Sponsorship? I want to use CiviCRM for child sponsorship like the following:
The Idead: Create a charity website for orphans sponsorship that enables the contributor to select a child from a list of orphans then orphan profile will open with a Donate button.

What i have done inside Civicrm is:

I created a group for orphans.
I added the orphan children to the group.
I created a public profile to list all orphans to the portal.
I created a public profile to create a contributor record.
I created a contribution page that use the contributor profile to collect contributor info like Name, address and email.
I created a Sponsor Of relationship.

What i want to know is:

How to add donate button to a child profile?
How to create a dynamic relationship between the contributor and the orphan child throw the webform when the contributor clicks the donate button?

I like Graham's solution of using Personal Campaign Pages with one page per child.  However, that may not scale well; I don't know how many orphans you're working with.

I like Graham's idea of using Webform-CiviCRM on Drupal (or Caldera Forms integration on WordPress) to handle this.  I think creating a Relationship would be the easiest approach if you go this route rather than a soft credit.  I'm unsure whether you want to create the connection between the donor and orphan, or the donation and the orphan.

If neither of these options appeal to you, you can use a Contact Reference custom field to help create the relationship.  However, if you want this to happen automatically, you would need to write an extension.  I recommend using the hook_civicrm_post hook.


Email was sending fine and now has stopped Using CiviCRM 4.7.14 on WordPress 4.7.3. The configuration uses the default CiviCRM mail() mailer with a WordPress Gmail SMTP plugin.

Everything worked fine until about a week ago, but no configurations were changed. The Gmail SMTP Plugin sends mail successfully, but Civi does not.
Any help on where to look would be greatly appreciated.

The error is:

Oops. Your MAIL settings are incorrect. No test mail has been sent.
An error occurred when CiviCRM attempted to send an email (via SMTP). If you received this error after submitting on online contribution or event registration - the transaction was completed, but we were unable to send the email receipt.
The mail library returned the following error message:
mail() returned failure
This is probably related to a problem in your Outbound Email Settings (Administer CiviCRM » System Settings » Outbound Email), OR the FROM email address specifically configured for your contribution page or event. Possible causes are:
Your Sendmail path is incorrect.
Your Sendmail argument is incorrect.
The FROM Email Address configured for this feature may not be a valid sender based on your email service provider rules.

When using mail() as your mail delivery method, CiviCRM will hand off to PHP's mail() builtin, which in turn usually hands over to a local delivery agent (see also PHP's mail configuration settings).

Unless the WordPress Gmail SMTP plugin does more sleight of hand than I anticipate, it won't get a say in how emails sent via mail() are delivered. WordPress mail plugins typically only get to intercept email routed through WordPress's wp_mail() wrapper. So based on your description (and my assumptions about WP Gmail SMTP), I think what happened is that previously your webserver was able to deliver via mail(), but now it can't.

You can investigate how it did work in the past by comparing the delivery headers of a previous WordPress generated mail (eg new user rego or password reset) with the delivery headers of a previous CiviCRM generated email. I think you'll find that they arrived via different routes.

Why they've stopped arriving is not so obvious. I'd try, in this order -

Check your PHP error log, which may contain more debug info about why mail() failed.
Check your PHP settings (via phpinfo()) to ensure that the mail configuration settings are correct/appropriate.
Check if the emails are being routed to junkmail; perhaps your mail host or the webserver config changed and the emails are being delivered but treated as spam. (Since CiviCRM says mail() failed, I don't think this is your problem.)
Check if the emails are being handled at all by your webserver, by investigating your webserver's mail logs. (How to do this depends on your server / hosting environment, you may need to request access from your hosting provider or contact a technician.)
Verify that your webserver is capable of delivering emails. (Perhaps some configuration changed, or the MTA daemon died and needs restarting.)
Verify your SPF / email configuration. (It looks OK from here, but you might find that your server is routing email over IPv6 and your SPF config doesn't handle this; that could lead to you being flagged as junk.)


CiviMail mailing sometimes has 0 intended recipients I'm creating some CiviMail mailings using the API. Sometimes my mailings get created and scheduled, but when they execute, they are marked as "completed" but show as having Intended Recipients: 0 in the mailing report, even though the recipient group is correctly populated:

When I create the exact mailing manually through the GUI, I get the proper intended recipients and the email is sent.

The code I'm using can be found in my CiviMail Tools Drupal module that provides rules integration for CiviMail using the CiviCRM API.

So, I have a rule component set up that creates a CiviMail mailing when a node is published. If I execute or schedule (rules scheduler) the rule component manually, the mailing gets intended recipients. However, if the component is scheduled automatically by an event trigger, then the CiviMail mailing is created and scheduled, but has Intended Recipients: 0 as in the above screenshot.

Any idea what might cause this? Again, it only happens when Drupal schedules my rule component based on an event trigger. If I schedule it manually, it all works. Very strange and difficult to troubleshoot!

Check your user permissions. All too often something that works for me via the GUI, fails in the automation.


Is it possible to customize the automatic date ranges in Advanced Search? I was trying to help a group make a simple smart group of all memberships set to expire within the next 2 months and the dropdown for "End date" in the Membership section of Advanced Search only had "prior", "past", and "previous" options. Then, before posting here, I realized they were running on 4.5.x so I tested on 4.6.6 and saw that there were some noted improvements to this list (including some future dates):

We may be able to get by with these new options (thank you, whomever made them!) but I was curious if there was an easy way to hook into that date widget somehow in a module or extension and define a new option (e.g. "Upcoming 60 days"), or if that is a much bigger issue and best not to mess with. Does anyone know?

I'm not sure where to start as I can't answer the main question apart from quoting a colleague Jon Goldberg 29/Mar/15 5:19 AM

  for now, you can use the PHP overrides folder to maintain your own
  local copy of this file when 4.6 comes out. I do this frequently for
  issues like this where I expect the problem to go away in the next
  version. I may do a diff if there's a security release of 4.6 that
  comes out that might change that file, but otherwise I leave things
  be.

This may or may not appropriate for your circumstances.

Personally, I would be reluctant to use "Upcoming Month" for anything as it gives inconsistent results because of the different numbers of days in the calendar months. So "Upcoming month" run on any day in February is effectively "Upcoming 28 days" (or "29" if it is a leap year), but will be "Upcoming 30 days" or "Upcoming 31 days" if run in other calendar months.

There is an issue CRM-16954 and associated PR which will, amongst other things, change "Upcoming month" to "Next 30 days" for 4.7.  I will canvas the idea of including "Next 60 days" in that PR, although there is a reluctance to add yet more relative date filters to an already very long list.

Finally to outline what will be possible in the near future. The aims of CRM-16195 is to allow people to define their own relative date filters through the UI.  We had hoped to have this ready for 4.7, but it is being pushed out to 4.8.  Quite a bit of work has already gone into this courtesy of Jon Goldberg.


Event Reporting to call out Custom Fields in related Contribution Record Is it possible (via extension perhaps) to get a custom field from a related contribution record to be included in a Event Report ?  For example, in a paid event registration, this would create a associated contribution record and a custom field created in the contribution record.  How can I do a Event report which will include the Contribution record custom field ?  the current Report function doesn't seem to allow that.  Thanks.

If you have a report that doesn't show the custom fields on an entity, it might be because those fields are not configured as searchable (yes, a very non-obvious thing). If that's the issue, then it's the same as this question/answer: Custom fields in the Report Templates

Alternatively, if it's a problem with the report itself, you can generally hack it with something like the below at the top of the class file:

 protected $_customGroupExtends = array(
    'Contact',
    'Individual',
    'Contribution',
  );

If you're seeing some custom fields but not the ones for Contributions, just adding in the Contribution entry to your current values should work.


How do I turn on Detailed Logging? The book tells about the advantages of Detailed Logging at length, but I don't see how to turn it on.

Thanks!

Logging can be turned on via Administer > System Settings > Misc (Undelete, PDFs, Limits, Logging, Captcha, etc.).

You will find the relevant page on the Drupal demo site here

(NB, i am using the link to the master to give the url longevity)

You will also find explanation in the manual here


how to add custom validation rules to civievent registration form I've got an event registration form that I've customized putting Jquery into a custom .tpl override file.  It's all working fine, except I'm not sure how to go about adding a custom validation rule.  I don't want to override any of the existing validation, I just want to add an extra rule.  However, I'm not sure exactly how I should implement this.

I've found this post (https://civicrm.org/comment/6311) but that seems to apply to adding validation rules for ALL forms, and involves editing core files, which I don't want to do.

Do I have to create the whole form from scratch using a plugin? Or can I just add validation javascript to the tpl file?

And yes I know Webforms would be able to handle this, but this system is on Joomla so Webforms is not an option :-)

More straight-forward way is to write a simple validateForm hook - https://docs.civicrm.org/dev/en/latest/hooks/hook_civicrm_validateForm/ into an extension.

If you are new to creating an extension, this might be a good place to start - https://docs.civicrm.org/dev/en/latest/extensions/civix/


Can I access/create InnoDB tables in the database I have a WordPress website on my server. I have installed CVCRM plugin on that site. I have configured database name, MySql server, and user credentials. When I click on check requirements button in the connection setting page I am getting an error like this " Unable to create InnoDB tables. MySQL InnoDB support is required for CiviCRM but is either not available or not enabled in this MySQL database server ". We installed CiviCRM WP Plugin version 4.1.0. Can anyone help me with this issue?

Thanks & Regards
Surya

CiviCRM requires InnoDB support. It sounds like your MySQL server is not currently configured to provide this. If you have control over your MySQL server you should be able to enable this. If you don’t have control talk to your hosting provider to get it enabled.

Best practice is to have a separate database for CiviCRM.


Adding value conditions to dedupe rules It's possible to specify on a dedupe rule that 'Contact Subtype' must match. Is there any way of attaching specific values to that, for example, 'and they must both be Student'?

Some of this could be done by having, say, a group of students and a group of teachers, and choosing the students group when I run the rule. I only have this option when running it manually (Find and Merge)- what about for rules I want to be Supervised and Unsupervised?

In this case I want to deduplicate students against students (subject to the other conditions in the rule), but not students against teachers, or teachers against teachers. We are looking to run a survey of a large number of contacts and they tend to object if they receive it several times!

You can potentially do this by implementing the hook:

CRM_Utils_Hook::dupeQuery

Check: CRM/Dedupe/BAO/RuleGroup.php

to see places where the hook is invoked


Smarty test fails in if-then-else I have an Email greeting containing a Smarty if-then-else expression:
{capture assign=language}{contact.preferred_language}{/capture}{if $language == 'fr_FR'}Bonjour{elif $language == 'nl_NL'}Hallo{else}Hello (should be in '{$language}'){/if}

When the preferred language of the contact is nl_NL, I expect the expression above would output
Hallo

but I get
Hello (should be in 'nl_NL')

This shows that Smarty is activated and the variable $language is correctly assigned, but the test is failing.
I would like to know what I am doing wrong.

There is no {elif} in smarty. Use {elseif}.


Has anyone gotten GiveWP to work with CiviCRM One of my associates wants to use GiveWP for donation forms. GiveWP has a plugin

https://shop.civivip.com/civi-plugins/give-donation-pages-integration/

The current version is called
civivip_give-0.3.0-beta

Does beta mean it is not released for production sites?

CiviVIP doesn't make their plugins freely available, so it's very difficult to find support from folks outside of CiviVIP.  I would ask CiviVIP support, they should be able to answer this.


mail Fetch Bounces errors I have got everything else working but I get the following error from the Fetch Bounces scheduled job (in the scheduled job log)

  Full message:  Finished execution of Fetch Bounces with result:
  Failure, Error message: A fatal error was triggered: Could not connect
  to MailStore for return@downham.org.uk@downham.org.uk.mail.aa.net.uk

  Error message:

  Empty mail protocol

I'm running on WordPress at a hosting provider. I've checked that I can access the mail server from elsewhere, re-entered the data in case of a typo. Tried POP as well as IMAP, with/without SSL. Also tried with Google mail server instead. Finally I tried from one of the Drupal CiviCRM demo servers and it worked from there. I also tried telneting into the IMAP server from the hosting site and that worked fine so can't be a network issue. So it looks like either its a WordPress issue or something about the hosting provider configuration.

Any suggestions as to where to look next?

Many thanks - Mick

My sense is that this is more likely to be a hosting/configuration issue than a Wordpress issue. Though it could of course be a hosting issue that only affects Wordpress sites :p.  Did you try testing on http://wpmaster.demo.civicrm.org/?

'Empty mail protocol' is from the more helpful end of the error message spectrum.

I would first check on this page civicrm/admin/mailSettings?reset=1 that the protocol is set for the processor you are using for Bounce processing.

If and when you have ruled out any issues there, it would be time to start digging a little deeper...

Hopefully you don't have to read this far, but just in case...

Depending on your willingness to jump into the code case, the next step would be to look through the code of the Fetch Bounces scheduled job. https://github.com/civicrm/civicrm-core/blob/master/api/v3/Job.php#L356 passes of to https://github.com/civicrm/civicrm-core/blob/master/CRM/Utils/Mail/EmailProcessor.php quite quickly.

It looks like your error message is being generated here: https://github.com/civicrm/civicrm-core/blob/master/CRM/Utils/Mail/EmailProcessor.php#L165 and here: https://github.com/civicrm/civicrm-core/blob/master/CRM/Mailing/MailStore.php#L57.

So the question is, why isn't $protocols[$dao->protocol] set on https://github.com/civicrm/civicrm-core/blob/master/CRM/Mailing/MailStore.php#L56?

Happy to expand on this answer if necessary.


Network error when viewing individual activities I can view a profile, view all the activities, but when clicking 'view' to view the details for the individual activity I get 'Network error, unable to reach the server. Please refresh this page in your browser and try again'. Any thoughts? I've restarted the machine, logged in/out etc, I have privileges to access the information, made sure it's a secure connection, everything I can think of. Any help would be great!

Symptoms like you describe match the symptoms of a bug in the Activity iCalendar Feed extension, which has been fixed as of extension version 1.5.

If you've got this extension installed, I recommend a) disabling it temporarily to see if this bug could be at fault, and b) upgrading it to the latest version. (Hat tip to V3rmie for creating the ticket for that bug.)


Upgrade from 4.6.3 to 4.6.4 not completed I tried to upgrade version 4.6.3 (Drupal 7.37, dutch) to version 4.6.4.
After upgrading the database, [Executed: Upgrade DB to 4.6.4]
 the process seemed to stop on 2/3 of the bar.
After 10 minutes I tried to use CiviCRM and it worked showing version 4.6.4.

There are no errors in the logfile server or on screen, in civicrm.log the normal logging [Executed: Upgrade DB to 4.6.4] and [upgrade:4.6.4.upgrade->4.6.4]

Maybe the problem was that I first tried the upgrade without being signed in on Drupal. After the error I started the upgrade again and it did not completed, but CiviCRM works.

Will this cause problems going forward or am I okay?

You can see exactly what queries are being run by this incremental upgrade by opening up the CRM/Upgrade/Incremental/sql/4.6.4.mysql.tpl. In this case it's basically nothing. There is one query in there, which you could copy and paste into e.g. PHPMyAdmin and run it from there (although it honestly doesn't look very important).

Normally I would worry about a hung upgrade and recommend you restore from backups and try again. But in this case I think you lucked out.


DB Error: constraint violation on anonymous user contribution/membership registration after 5.8.2 -> 5.9.0 update I upgraded two Joomla sites from 5.8.x to 5.9 and one of them now gives an error for anonymous contributions or membership registrations:

Error:

Database Error Code: Cannot add or update a child row: a foreign key constraint fails (`zzz`.`civicrm_acl_contact_cache`, CONSTRAINT `FK_civicrm_acl_contact_cache_user_id` FOREIGN KEY (`user_id`) REFERENCES `civicrm_contact` (`id`) ON DELETE CASCADE), 1452

Additional Details:

Array
(
    [callback] => Array
        (
            [0] => CRM_Core_Error
            [1] => handle
        )

[code] => -3
[message] => DB Error: constraint violation
[mode] => 16
[debug_info] => INSERT INTO civicrm_acl_contact_cache ( user_id, contact_id, operation ) VALUES(0, 0, 'View') [nativecode=1452 ** Cannot add or update a child row: a foreign key constraint fails (`zzz`.`civicrm_acl_contact_cache`, CONSTRAINT `FK_civicrm_acl_contact_cache_user_id` FOREIGN KEY (`user_id`) REFERENCES `civicrm_contact` (`id`) ON DELETE CASCADE)]
[type] => DB_Error
[user_info] => INSERT INTO civicrm_acl_contact_cache ( user_id, contact_id, operation ) VALUES(0, 0, 'View') [nativecode=1452 ** Cannot add or update a child row: a foreign key constraint fails (`zzz`.`civicrm_acl_contact_cache`, CONSTRAINT `FK_civicrm_acl_contact_cache_user_id` FOREIGN KEY (`user_id`) REFERENCES `civicrm_contact` (`id`) ON DELETE CASCADE)]
[to_string] => [db_error: message="DB Error: constraint violation" code=-3 mode=callback callback=CRM_Core_Error::handle prefix="" info="INSERT INTO civicrm_acl_contact_cache ( user_id, contact_id, operation ) VALUES(0, 0, 'View') [nativecode=1452 ** Cannot add or update a child row: a foreign key constraint fails (`zzz`.`civicrm_acl_contact_cache`, CONSTRAINT `FK_civicrm_acl_contact_cache_user_id` FOREIGN KEY (`user_id`) REFERENCES `civicrm_contact` (`id`) ON DELETE CASCADE)]"]

)

This matches a similar issue after 5.9.0 upgrade: DB Error: constraint violation on anonymous user event registration after 5.8.2 -> 5.9.0 update

I have Mail enabled. The error doesn't occur when logged in so I've matched and then enabled more permissions than the other site which works, but it makes no difference.

This is a core bug and Eileen has send a PR for the fix. Will you be able to try by applying the patch from here?

If the patch works for you than please comment your test result on PR so that it will speed up process of merging into core and having it available in next release.

Cheers

Pradeep


How do make an ACL to allow the searching of contacts in a smart group? I want to allow someone to send email to a group.

So I'm trying to set up an ACL to allow for the searching for contacts in this group.  In the ACL definition dialog I'm choosing the 'search' operation and for type of data, 'a group of contacts'.  But I'm getting an error, "Only 'View' and 'Edit' operations are valid for this type of data."

It seems like this should be possible...but I don't understand the reason behind the error message.

Can anyone shed some light on how to do this?

Thanks

You can use 'View' operation on the group of contacts. This will restrict the ACL role to search and view only the contacts in the group which you specified.


Weekly Digest Email to Group (Mailing List) What route would one take to creating an automated weekly digest for an existing mailing list group? Can this be done with a scheduled reminder along with some code in a template file somewhere? I am running Drupal and am wondering if maybe a scheduled reminder email that has some code to grab the result from a view to plop into the email body might work?

As a partial answer, we did some work to enable a View to be pulled in to a civimail as a token. The code is here but could do with some further improvements and is untested afaik in respect of Scheduled Reminders.


Managing internal Purchase Order forms/requests in CiviCRM I did a quick search, but only found the reverse about allowing registrations to accept incoming PO numbers.  We are looking to implement Purchase Order Forms internally, and wondering if anyone else has done so?  Cases seems like a pretty logical place to do this, but I'd love to hear about other potential possibilities.  Or if it's a terrible idea, give me some why's.  Shouldn't matter, but this is a WordPress install.

I have done this a long time ago but it was very specific to the org's workflow. It involved a custom activity type, some autoupdating of a pdf template, and then an internal approval -> email -> offline vendor signature -> email/fax -> inbound civi email processor.

I'm not sure if cases would add anything unless there's more going on too.

You've said wordpress but possibly drupal webform plus this online signatures addon could be useful, i.e. the PO is a webform, and then it gets signed online by the vendor and stored in civi.


Why does PHP Contribution API not filter on contact_id in 4.6.2? We recentely upgrade from 4.5.x to 4.6.2 and after that the following API call from PHP does not filter on contact_id and return all contributions for all contacts.

$params = array(
    'contact_id' => $contact_id,
);
$api->Contribution->Get($params);

In the backend explorer, the follow error occurs:

{
    "is_error": 1,
    "error_message": "A fatal error was triggered: CiviCRM is not of the type Int"
}

Good ideas very welcome :)

This is a bug and has been reported by @huulbaek as https://issues.civicrm.org/jira/browse/CRM-16393?jql=project%20%3D%20CRM


How to sort a varchar numerically using the api I'm trying to find the activity_type with the highest value, so I can ++ that value and insert a new activity type. I thought this would be easy.

I cannot sort on the "value" column of the option_value table because it is a varchar column containing (in this case) numbers.  Take the following api call:

civicrm_api3('OptionValue', 'getsingle', [
  'option_group_id' => 'activity_type',
  'options' => ['sort' => 'value DESC', 'limit' => 1]
]);

This ought to return the activity type with the highest value. However, it returns "9" because I guess mysql thinks the string "9" > "62" (which is the actual max in my sandbox).

Anyone have a good approach to suggest?

I see if we try to modify the sort col with any sql defined functions, it gets returned with the Error Message. For Eg - ['sort' => 'CAST(value AS decimal) DESC'] returns

  Unknown field specified for sort. Cannot order by 'CAST(value AS decimal) DESC'.

Maybe, there should be some modification in CRM_Utils_Rule::mysqlOrderBy() to either handle such cases.

Or we can simply use get instead of getsingle and then order the returned result values using array functions.


Clear data from supplemental address on update When I import cleaned postal data and the supplemental address information has moved to the first line of the address, the supplemental address data does not clear, even if I put a space in the field. This results in addresses with errors that don't CASS the next time. How can I do an import and set that field to NULL?

I tried this and was able to get it to null the field.  I needed to put null in the field in the cvs.  I had to make sure the null did not have any quotes around it.  Just the word null between the commas.


Donation Method - Suggested use? Payment method is pretty clear, however, we would like to be able to differentiate between donations that come via Online, Mail, in person, etc. It seems like source would make the most sense, but since it is an open field - its not our best option. Do most orgs simply use a custom field, that is our plan, but I wanted to know if there is a better approach before I do.

You can create your own payment method to differentiate type of payments. If you have a fixed set of options than you can go for custom field against contribution and want to keep payment method consistent.

HTH

Pradeep


Civicrm Entity & Drupal 8 I have begun working on structuring a franchise type educational site and we are going with CiviCRM and Drupal.  However, we wanted to go with drupal 8 since we are starting fresh with a complete overhaul.

The reason I am writing, is I came across the civicrm Entity module, and from descriptions looks very promising to connect the needs of civi and our Drupal aspects of the project.  I wanted to ask though, how far along is that 8.x version? And is it ok to use?.... we are having some issue currently....

I did install the dev module that is up on https://www.drupal.org/project/civicrm_entity , however, I think something isn’t working as while I can place a civi field in a content type as entity reference, and I can add content and the reference loads in the form and can be selected, once saved however, all it shows is a “restricted access” text with (id) in the field, and when viewing published version that content item that field/reference does not show.

Also, I do not see the CiviCRM Entity types under the Drupal STRUCTURE admin area, but from some of the screen shots in blog documentation I saw this should be there for management options too….

We currently have all other modules and civi working with drupal 8, and this is our last critical piece of the puzzle.  Unfortunately, while I am comfortable working with drupal, I do not have a code background so couldn’t dig into this.

Is there more to activating this module than doing through main drupal admin panel, or maybe it should have been done via composer? Any insight anyone can provide would be MUCH appreciated on helping me getting civi Entity going & connected!

There is still work to be done to get this firing fully - and you many need to reach out to some of the Partners to help get things working sufficiently for your scenario. There are a number that have done a bunch of work in this area.

There are some other Drupal tools that aren't fully firing with civicrm, ones that we use in pretty much every development as they are so helpful in bending the laws of the civi universe - eg Webform_civicrm and Views integration.

There has been a recent push on the webform side of things, and the plan for Views is to step fully in to tieing it in with Civicrm_entity.

You may find you want to join both https://chat.civicrm.org/civicrm/channels/civicrm-entity and https://chat.civicrm.org/civicrm/channels/drupal which is where most of the active discussions are taking place.


Why did Case Type get stripped from all Smart Groups after upgrade to 4.6.9? Drupal 7.41

After upgrade to CiviCRM 4.6.9, all Smart Groups that had a case type in the criteria were empty.

When I looked at the criteria for each group, the case type was stripped from the search.

I manually added each one back in and ran a rebuild and everything appears to be ok now.

Any idea what may have caused this?

No answer necessary for this question.

More recent versions of Civi seem to have resolved this issue.


2 Drupal Sites and 1 CiviCRM I am looking for some advice on whats the best approach to implement two Drupal sites with different domain names + designs and link them to one CiviCRM.

I know multi-site for CiviCRM is on option but the process to install does not seem very straightforward. The two options I can think of are:

A. Two Separate Drupal sites with Two CiviCRM codebases linked to One CiviCRM Database

B. One Drupal Multi-site installation (sub-sites) with One CiviCRM installation & Codebase.

Can anyone tell me the pros and cons and which one offers more flexibility in the long run considering all the upgrades and improvements for CiviCRM and Drupal.

Thanks.

There is a third option. You can use two drupal sites and a third site for civicrm.

On your Drupal sites use CiviMRF module to connect to your CiviCRM site.

I wrote a blog on how to do this: https://civicrm.org/blog/jaapjansma/using-civicrm-form-processor-extension-to-handle-form-submissions-from-an-external

Personally I would go for this option, because you keep your CRM seperate from your website. A website might require changes/redesign over time while a CRM needs to be stable and stay the same over time. And this way you can easily change/redesign your website without the fear of breaking anything in your crm.


Has anyone mapped the CiviCRM Schema to Classes in SQLAlchemy? I would like to use Python and SQLalchemy to construct queries and create reports for Civicrm. Has anyone mapped the Classes and Relationships in order to use the ORM capabilities of SQLAlchemy?

Directly accessing the SQL tables is certainly possible, but not a recommended approach. Reporting (ie read only) is safer than attempting to write to the tables but there can be many tables to join correctly depending on what you are trying to do.

If the standard reports and the various reports extensions don't provide what you need, try getting your data via the API.


What's CiviCRM's FQDN for mail? We have an issue where CiviCRM sends mail on behalf of our client for newsletters, media releases etc.

But because we don't have their FQDN in our spf record some spam filters will reject the mail thinking civiCRM are spoofing the clients mail account

This is a problem ! does anyone know the fully qualified domain name they use so I can add it into our records to solve this issue?

Thanks

SPF works by specifying what hosts can send email for a particular domain. Hence you should be thinking about adding your host to their SPF record (not 'their FQDN in our spf record').

If your client is sending email from addresses like info@client.org and that email originates from one of your hosts, for example host.provider.com, then  you will need to ensure that something like 'a:host.provider.com' appears on the SPF record for client.org.

If they don't have an SPF record already, you'll want to chat with them about how they are sending email before setting anything up to ensure that you correctly identify all the different hosts that send email for this domain in the SPF record.

Here is a good SPF resource for further reference: http://www.openspf.org/SPF_Record_Syntax.


Nothing happens when selecting any "Actions" dropdown options After upgrading to 5.12.1 (and then 5.12.3), none of the dropdown options under "Actions" work. For example, when conducting an Advanced Search and selecting, "Print/Merge Documents" or "Export Contacts," nothing happens.

Here is the console error:

main-menu.js?r=dBZqC:66 Uncaught TypeError: Cannot read property 'trim' of undefined
    at isQuickSearchOnGoing (main-menu.js?r=dBZqC:66)
    at HTMLDocument.<anonymous> (main-menu.js?r=dBZqC:99)
    at HTMLDocument.dispatch (jquery.min.js?r=dBZqC:3)
    at HTMLDocument.r.handle (jquery.min.js?r=dBZqC:3)
    at Object.trigger (jquery.min.js?r=dBZqC:3)
    at HTMLInputElement.<anonymous> (jquery.min.js?r=dBZqC:3)
    at Function.each (jquery.min.js?r=dBZqC:2)
    at n.fn.init.each (jquery.min.js?r=dBZqC:2)
    at n.fn.init.trigger (jquery.min.js?r=dBZqC:3)
    at n.fn.init.n.fn.<computed> [as click] (jquery.min.js?r=dBZqC:4)

Any insight would be greatly appreciated!

The problem was a conflict with the CiviCRM Bootstrap Theme. Disabling the extension resolved the problem.


Search in Manage Groups renders "contacts" link as editable under "visibility column" CiviCRM 4.7.17. It should be noted that we upgraded from the latest LTS about 2 weeks ago. On Drupal 7.x

Is this a Civi bug, or a theme bug?

Before we search for a group.

After we search for a group

When we click 'Contacts' we see Group Visibility as editable choice

The screenshots also show you have names in the 'Count' column and a 'mailchimp sync' column which is not standard.  If you disable the mailchimp extension, or whatever else is changing that results display, do you get the same issues?


HTML & Event Pages: Unspecific IDs and Classes at the top I'll be referencing the HTML created by Wordpress, CiviCRM, and possibly the Pinboard theme.

I was looking to restyle event pages (only) and began with the page with all events: /civicrm/?page=CiviCRM&q=civicrm/event/ical&reset=1&list=1&html=1

This page, including individual events, and other public-facing pages created by CiviCRM have little to nothing in ways of identifying the page by unique IDs or descriptive Classes, especially at the very top of the parent hierarchy.

It seems that every page has the same way of identifying CiviCRM's body (For me it's the class page-id-4412), is useful to select every CiviCRM page. As we continue down, we notice there is a general but clear CiviCRM class and ID beyond the initial page's header:

There is two problems I am having with this:

It has nothing specific to the type of CiviCRM page it is. ie. is it a contribution page? Event page? etc.
It is well past parent elements in the page that CiviCRM is using. ie. the header:

Has anyone found a way to select content using clearly marked IDs or Classes this early in the HTML?

For instance, to change the styling of the header between the Event list page and individual event pages appears to me to be impossible by css alone.

To select,

This does fall under the page-id-#### ID and class, but nothing specific to the type of CiviCRM page. There would need to be something more specific in the class like,

<body class="crm-individual-contribution"

If you know a workaround, I'd love to hear it.

You can use the body_class filter, query CiviCRM's state and then add suitably named classes:

add_filter( 'body_class', 'my_civi_add_body_classes' );

/**
 * Add classes to body element if on CiviCRM basepage.
 *
 * @param array $classes The existing body classes
 * @return array $classes The modified body classes
 */
function my_civi_add_body_classes( $classes ) {

    // bail if no CiviCRM
    if ( ! function_exists( 'civi_wp' ) ) {
        return $classes;
    }

    // bail if not on CiviCRM's basepage
    if ( 'basepage' != civi_wp()->civicrm_context_get() ) {
        return $classes;
    }

    // get CiviCRM's arguments
    $args = civi_wp()->get_request_args();

    // bail if we don't have any
    if ( is_null( $args['argString'] ) ) {
        return $classes;
    }

    // check for event
    if ( isset( $args['args'][1] ) AND $args['args'][1] == 'event' ) {
        $classes[] = 'civi-event';
    }

    // check for listing
    if ( isset( $args['args'][2] ) AND $args['args'][2] == 'ical' ) {
        $classes[] = 'civi-event-list';
    }

    // check for info page
    if ( isset( $args['args'][2] ) AND $args['args'][2] == 'info' ) {
        $classes[] = 'civi-event-info';
    }

    // check for registration
    if ( isset( $args['args'][2] ) AND $args['args'][2] == 'registration' ) {
        $classes[] = 'civi-event-registration';
    }

    // ... add further checks ...

    return $classes;

}

Amend as per your requirements.

Cheers, Christian


what is the correct method for upgrading an extension on a live site after pulling its updated code from a development site? We use a development site and github.com repository, and then pull from github.com down to our live site.

So when upgrading our extensions we update the code on our dev site, test it's all ok, then push it to github.com, ready to pull it down to our live site.

What's the correct thing to do on the live site in this case? Disable the extension before downloading the code and then re-enable it? Or what?

Apologies if my searching missed this in an obvious part of the documentation or elsewhere.

We're on Civi 4.7.27 and Drupal 7.56

What I tend to do is:

if the upgrade is on my extensions page within the UI then I try
upgrading from the UI (obvioulsy on test first as you mention).
if there is no upgrade on my extension page, I tend to download a
release rather than link the production site directly to the master
branch on GitHub. I tend to do that only in test. I am sure there
are pros and cons for pulling directly but this is what I do.
if the extension is a tiny one and I know for a fact the impact is
minimal I replace the extension directory with the extracted new release without disabling first.
if I know the extension is a bit bigger I will disable first, then extract and replace the extension directory and enable again.


Auto-register people for events based on membership We are going to introduce a new tier of membership to our organization that gives people unlimited access to certain category of events.  So the event would typically cost $X, but if you are a member, the event is free.

I know that I can use CiviDiscount to let the user register for $0.  But as a value-add, I'd like to actually auto-register them for the event.  I'm looking for validation of how I might do this.

Here are some things I have thought of...are there others you would suggest?  Which of these do you think would work best or easiest?

Could I use CiviRules? So...trigger on new event create, filter by type of event, action is register anyone with membership X?   I don't honestly know if CiviRules could do that but it was a thought.
Could I create a Drupal view that lets a member of our back-office team select an event from a list, and select a membership, and then executes some kind of VBO or Rule that registers those people?
Could I use webform?  Perhaps create a webform that pre-selects people in membership X and lets a back-office member quickly register than on a selected event?
Could I use the Civi API and write a script (perhaps that I trigger by cron) to register people with the right membership to events?

Thank you

You can already do this (manually) by searching for the contacts with a certain membership (advanced search) and then select the action register participants for an event.


What do you do with Pending (Incomplete Transaction)? We currently use Paypal until we can figure out why Stripe is not working. If a user does not complete the paypal payment, CiviCRM correctly lists the transaction as Pending (Incomplete Transaction).  Since most users eventually create a new transaction, we are left with a number of Pending (Incomplete Transaction) activities.

I have begun to list those activities as Expired but I then thought Cancelled may be a better fit.  Then I wondered if I should just leave it alone.  What do you all recommend?  What do you do?

We do several things with these. In most cases we filter them out of all reports. If the user creates a new transaction we will leave them as is or delete them. Sometimes we create a special status for these in case they need to be referred to later (maybe the entries are different).

It really comes down to what works best for your internal processes.


What message triggers can be found in the dedupe process? We a deduping a lot of records, many of which were imported from sources prior to using CiviCRM. Apparently, at least one merged record triggered a change of email notification. Can I kill those notifications? There are likely to be many of them.

Is there a specific trigger? For example, if we overwrite a record with an old address with a new address instead of opting to keep just the newer record? The point is that we don't want to send a pile of notices for changed email addresses.

Is it this wordpress feature?
https://wordpress.stackexchange.com/questions/202783/fwd-website-name-notice-of-email-change

https://build.trac.wordpress.org/browser/tags/5.3/wp-includes/user.php#L2056

Short answer to prevent it: add_filter( 'send_email_change_email', '__return_false' );

Any time a contact record is updated, civi will attempt to update the corresponding user account in the CMS for name and email. So it would only be for contacts that have an associated user account.

You can also turn this sync off at Administer - System Settings - CMS Database Integration - Sync CMS Email, but then your users and contact records can get out of sync.


Wordpress duplicates my contacts I haven't quite worked out under which circumstances, but our WordPress (4.0.1) and Civi (4.5.2) seems to create duplicate contacts for the same WordPress user. I think it happens when they log in, but I can't be sure. It doesn't happen to most people, just some--including me!

I now have 5 contacts with my name. The first one has all the details associated with it including membership and activities, the others have minimal information but unfortunately they have some activities and contributions (this has been caused by other administrators picking the "wrong" contact when assigning contributions). I've logged in many more than 5 times, so not sure how this happened. Any tips on diagnosing the problem?

Related to this, if I try and merge duplicate contacts, it now loses the activities and contributions. I'm sure that in previous versions of Civi, this worked OK, but at the moment I'm having to manually move the activities and contributions using SQL. Is there a better way?

Thanks!

You should go look at your civicrm_uf_match table in the database.  If you ever cleared out users in bulk or moved from one site to another, you probably have entries in there for users or contacts that don't exist.  The purpose of the tables is to link users from your CMS (the uf_id column) with contacts from CiviCRM (the contact_id) column.

The (relatively) foolproof method to deal with this is the following

Log out from WordPress
Run the following query, which will empty that table:

DELETE FROM civicrm_uf_match;

Log in to WordPress again.  This should cause CiviCRM to find (or create yet another copy of) your corresponding contact record.
Go to CiviCRM, and in the menu, select Administer > Users and Permissions > Synchronize Users to Contacts and follow the prompts.
It will find or create a contact for each of your WordPress users.  You may find that it generates a handful of duplicates.  You might run a Find and Merge Duplicate Contacts search on individuals when you're done: this may have generated more duplicates, and it sounds like you may already have a bunch of duplicates.


DB Error on contribution form unless signed in On one of our contribution forms for users to sign up and pay for a membership, we are getting a DB Error. Here is a screenshot of the contribution form so you can see where they are urged to create an account.

Here is the error log message, where test@example.com is my test user, who submitted a transaction and created an account on the form. I used a fresh email address, just replaced it here:

[info] $Fatal Error Details = Array
(
    [callback] => Array
        (
            [0] => CRM_Core_Error
            [1] => handle
        )

    [code] => -5
    [message] => DB Error: already exists
    [mode] => 16
    [debug_info] => INSERT INTO civicrm_uf_match (domain_id , uf_id , uf_name , contact_id ) VALUES ( 1 ,  209115 , 'test@example.com' ,  140637 )  [nativecode=1062 ** Duplicate entry 'test@example.com-1' for key 'UI_uf_name_domain_id']
    [type] => DB_Error
    [user_info] => INSERT INTO civicrm_uf_match (domain_id , uf_id , uf_name , contact_id ) VALUES ( 1 ,  209115 , 'test@example.com' ,  140637 )  [nativecode=1062 ** Duplicate entry 'test@example.com-1' for key 'UI_uf_name_domain_id']
    [to_string] => [db_error: message="DB Error: already exists" code=-5 mode=callback callback=CRM_Core_Error::handle prefix="" info="INSERT INTO civicrm_uf_match (domain_id , uf_id , uf_name , contact_id ) VALUES ( 1 ,  209115 , 'test@example.com' ,  140637 )  [nativecode=1062 ** Duplicate entry 'test@example.com-1' for key 'UI_uf_name_domain_id']"]
)

The transaction came into the CRM as Pending (Incomplete Transaction). I also processed a test donation, a contribution form that doesn't require the user to create an account, and I did not get an error, however, the transaction still came in as Pending (Incomplete Transaction).

I have recently upgraded to CiviCRM 5.9.0 and Drupal 7.63.

From the error it looks like drupal username "test@example.com" already exists, when contribution form is submitted, it is trying to add a new drupal user and civicrm contact which is failing because of a duplicate.


How to effectively manage projects and their contacts within CiviCRM? Good morning,

in our organisation, we frequently have to deal with the following scenario, a practical solution to which with CiviCRM I have so far not been able to establish. I would greatly appreciate insights on how to do this:

Scenario: Our organisation has a large number of diverse contacts from journalists to banks to volunteers. A selection of these regularly needs to be contacted within the scope of a project running for, say, 6 months. The contacts are made individually, not through mass mailings, and contact progress needs to be recorded individually, too. The relevant co-worker needs to be able to pull up a complete list of contacts pertaining to a certain project, quickly grasp the status of each contact and act on new opportunities, challenges, or delays.

Now, I have tried to use CiviCampaign to pull individual selections of contacts out of our overall pool. However, as I cannot track individual contact progress in CiviCampaign (but only mass mailings) this does not seem practical.

I have further tried to separate contact groups by "Groups" or tags and then tried to use a report to get an overview of these. However, as reports are not meant to be interactive, I cannot jump into a contact, work on it and return to the overview in the report easily.

Can somebody advise if this is practically feasible without additional programming?

Thanks!
Bijan

Have you tried to use CiviCase to simulate a project? You can then add relevant case roles to the case type 'Project' and retrieve all them as relationships with a specific case_id. This would be a good way to get all contacts relevant to a project?
We have used a similar approach with one of our customers succesfully (although we added some stuff too as their requirements were more complicated).


Can I customize the auto email for event registration? Can I customize the auto response message for event registration?  Below is a test event I set up and registered for and what was sent, along with a .PDF attachment.

The message is what I'm wanting to make pretty, but I can't find it.  I do see all the other message templates, just not this one.  Kind regards.

Registering people manually like in your comment will utilize the "Events - Registration Confirmation and Receipt (off-line)" template.

If people self register online, it will use the "Events - Registration Confirmation and Receipt (on-line)" template.

For reference, the templates are listed and available to edit from this screen:

  Administer > Communications > Message Templates > "System Workflow
  Messages" tab


Images with text in Message Templates in a multilingual installation I am trying to customize a message template by adding a header image with some text in it. The problem is that my website is in 2 languages and I need that the header image is sent to the user according to his/her language preferences.

This is how I am trying to do:

{if $contact.preferred_language eq 'English (United Kingdom)'}

{else}

   {/if}

Unfortunately, it seems not working.

Does someone have already dealt with such an issue?

Thank you very much to every good soul who is willing to give me the right information to solve this issue.

Regards,
Giovanni

I have found an alternative solution which worked perfectly.

I put the following line in the template (adding the {ts} tag):

{ts}{/ts}

Then modified the language file .mo and added a translation for the string:

msgid ""
msgstr ""

It worked perfectly :)


CiviCRM cron job failing under Joomla 3.7 I updated to Joomla 3.7 and shortly thereafter, my CiviCRM cron job started failing. When I hit the URL in a browser, I get:

  Fatal error: Call to a member function get() on null in
  /home/public_html/libraries/joomla/session/handler/joomla.php on line
  71

That's PHP 5.6.30 and it's a little different on PHP 7.0.16 (with max reporting on):

  Error displaying the error page: Application Instantiation Error: Call
  to a member function get() on null

I'm using CiviCRM 4.7.18. This looks like a CiviCRM issue since my other cron job works fine.

It is not a civi issue - it is a joomla issue that impacts other modules as well
the fix is in j 3.71
It is a 6 line patch and 1 line deletion

I have tested it and it works if you want to patch it yourself

https://github.com/joomla/joomla-cms/pull/15605


How to set a permission using drupal ACL? I am developing an extension. I want to provide permissions using drupal.

I am using following hook for creating a permission

hook_civicrm_permission(&$permissions);

But, how to do that (means can view or edit some custom data)?
Please suggest some similar extensions.

There is a example and information on the hook here.  Throw the hook into your custom module and it should work.  The below example includes a version check that you likely won't need.

function civimonitor_civicrm_permission(&$permissions) {
  $version = CRM_Utils_System::version();
  if (version_compare($version, '4.6.1') >= 0) {
    $permissions += array(
      'access CiviMonitor' => array(
        ts('Access CiviMonitor', array('domain' => 'com.aghstrategies.civimonitor')),
        ts('Grants the necessary API permissions for a monitoring user without Administer CiviCRM', array('domain' => 'com.aghstrategies.civimonitor')),
      ),
    );
  }
  else {
    $permissions += array(
      'access CiviMonitor' => ts('Access CiviMonitor', array('domain' => 'com.aghstrategies.civimonitor')),
    );
  }
}


Civicrm fields in Views, present with editable fields? is it do able to be able to present an editable fields with civicrm custom field? as I tested using it was not available for select?

update:
Rephrasing my questions, I am trying to setup a views with the profile contact details, but some of the contact details/fields are going to be a direct editable in the views fields options, like the module we used : drupal editable fields, but its not available for civicrm fields, are we able to do something out of the box?

thank you

(edited) Thanks for triggering me to retest this module ;-)

Some quick testing on the drupal module Editable Views for D7 shows this now works.

Note1: site tested on also using CiviCRM Entity so this may be a requirement.

It worked for me for eg First Name and a custom text field and a custom radio though it only showed Value not Label for the options.

Steps:

add/enable modules (of course)
set View up based on civi contact (for my testing purposes)
add new field and choose CiviCRM Contacts: Entity metadata property (editable)
this includes a new dropdown called Metadata property where you can then select eg First Name, or a custom field
Save field
hey presto

Wasn't super fast in saving but that might be my dev system

Note1 if this is awesome but needs a bit of love in terms of eg multichoice Label v Value, then either the CiviCRM Views code needs a tweak or CiviCRM Entity does.

Note2 there is new work going on to extend CiviCRM Entity currently (see blog) so if it is something you can help fund to happen it would be good to reach out on that project.


How do I create a new Webform in Drupal 8? I have enabled webform and webform civicrm, but I don't see an option to add a webform under content (like in Drupal 7).

Right! In D8 -> look under Structure -> Webforms

/admin/structure/webform


MAJOR ERRORS after civicrm upgraded to 5.35.1 wordpress I am getting multiple errors since upgrading our civicrm to the latest version.
When I try to enable debugging i receive db constraint issues and log file shows:
Apr 06 11:54:29  [error] $Fatal Error Details = Array
(
[callback] => Array
(
[0] => CRM_Core_Error
[1] => exceptionHandler
)
[code] => -3
[message] => DB Error: constraint violation
[mode] => 16
[debug_info] => INSERT INTO civicrm_setting (`component_id`,`contact_id`,`created_date`,`created_id`,`domain_id`,`id`,`is_domain`,`name`,`value`) VALUES

(NULL,NULL,"20210406115429","2","1",NULL,"1","debug_enabled","s:1:"1";")
[nativecode=1048 ** Column 'id' cannot be null]
[type] => DB_Error
[user_info] => INSERT INTO civicrm_setting (component_id,contact_id,created_date,created_id,domain_id,id,is_domain,name,value) VALUES
(NULL,NULL,"20210406115429","2","1",NULL,"1","debug_enabled","s:1:"1";")
[nativecode=1048 ** Column 'id' cannot be null]
[to_string] => [db_error: message="DB Error: constraint violation" code=-3 mode=callback callback=CRM_Core_Error::exceptionHandler prefix="" info="INSERT INTO civicrm_setting (component_id,contact_id,created_date,created_id,domain_id,id,is_domain,name,value) VALUES
(NULL,NULL,"20210406115429","2","1",NULL,"1","debug_enabled","s:1:"1";")
[nativecode=1048 ** Column 'id' cannot be null]"]
)
Also when I click on civicrm in wordpress menu the screen only shows:
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.
DB Error: no such field

Do you have advanced logging (Administer menu » System Settings » Misc) on? If so can you turn it off before upgrading and try enabling it after upgrade?


Effective snail mail return handling Is there a solution for scanning snail mail coming in return, automatically matching to contact, and marking them for further processing in CiviCRM?

Workarounds and external modules or programs could also be interesting.

I am on Drupal 7

Look for barcodes (and QR codes, though I'm not sure that's avaiable). I believe the best supported area in Civi for this is Events, where it is integrated into ticket printing and event check-in. The code is there for printing barcodes on name tags as well. So then I would check what the token for this is, and check if it is exposed when generating a pdf letter.

In terms of workflow I believe you either want the code on a mailback envelope or card, and/or on a response part of you package.

Generally the barcode is used to send a system to a url when scanned. The url can be set up so that it populates the fields in a profile with the values for a particular contact, similar to the email token that generates a url for this purpose. The lifetime that the token is valid from when it is generated can be configured for a period, say 1 week or 3 weeks.

Brainstorming a bit, this could be used to submit a custom activity for the contact. If the barcode is on a returned piece of mail the actvity type could indicate the address is bad (undeliverable, moved, etc.). If the barcode is on the response mechanism then the actvity could indicate the contact sent the mailback indicating, oh, they agree that Trump shouldn't be allowed to become President.

Without custom code, you may need to use a batch update with profile workflow to convert the activity into an update of the address status. Put the field you want to update, eg Do not mail, on a custom profile. Then find contacts with the Mail returns custom activity with Do not mail false, select 50 or 100 of the contacts, choose Batch update with profile as the search action, set the Do not mail field to true on the top line, and click the icon that means copy the value in this field in the first row to all the other rows  then save. Unfortunately you have to repeat this process until all aee updated.

HTH


Recurring contributions not sending emails (Stripe) I'm setting up a contribution page using the Stripe payment processor. In testing mode, one-off donations work fine in that they show up as expected in the test pane in the Stripe account, donations show up in CiviCRM, and also send the Thank you email specified in the Contribution page settings.

When I check the box to recur monthly, however, although everything else works as above, neither the initial email nor followup recurring payment emails are sent.

There is an issue related to this in the Github queue but it's kind of stagnant and was hoping someone here could give me a pointer on where to look to try to solve this.

(CiviCRM version 4.6.3 with latest dev version of the CiviCRM-Stripe extension)

CRM-15629 produces similar symptoms with certain configurations of PayPal.  Also, please update your question with a CiviCRM version?


CiviMail not removing duplicate emails Using Joomla 3.6.2 and CiviCRM 4.7.11 and experiencing duplicate emails in CiviMail. We've tested with contacts with same email address + in same group, resulting in 2 emails received. We've also tested with contacts with same email address though in separate groups, resulting in 2 emails received. Attached image demonstrates 2 separate groups, each with 2 contacts in each group (different first/last names, though same email addresses... so 2 unique email addresses).

CiviMail component settings includes "CiviMail dedupes email addresses by default" as checked.

Edit: Connections

Also just tried to use the connections to provide a site profile assuming that might help troubleshoot this. Noticed in the image that the site url contains "administrator" twice. Perhaps this is a separate issue or maybe it's related?

Your issue has a related bug report: https://issues.civicrm.org/jira/browse/CRM-19353. You may have to wait until it gets merged and released or you start to test with the proposed PRs.
Connections seems to be unrelated to this.


What is needed to make Payflow Pro Recurring Donations work? CiviCRM supports comes with PayFlow Pro but it doesn't support recurring payments.  I looked at the code and there's code for recurring.  What is needed to finish this part of the payment processor?  An IPN segment?  I already know that it will take time, money and developers.  I'm looking for what these items would be used for.

This issue from 2009 seems to be the one to add payflow into the core:

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

per Eileen comment:

  "Although the code is there to upload recurring transactions the
  customer opted not to complete the recurring payment side of things so
  this should be turned off in the payment_processor_type table for now.

  (code works but on-going querying of outcomes in incomplete)."

I would suggest you add a comment to this issue or contact Eileen on chat.civicrm if you want to know more about what's missing or an estimate of the number of hours need to make the recurring happen


Has anyone added discounting functionality to the 'cart' component of CiviEvent? I am testing/trying to use CiviEvent 'shopping cart' (needs to be enabled using CiviEvent Component Settings under Administer/CiviEvent) mode of registering for events and while I am on an older version of Civi I looked at 4.6 code and it looks about the same re: Cart functionality. I have modified Cart code to allow for using CiviDiscount, if an event is configured to allow discounts - is anyone else interested in this? I will submit a patch if so. (there are other features that seem lacking in Cart, I will include a README to document)

This might an important feature for folks using Event Cart functionality. It would be great if you can submit a PR against CiviDiscount repository at

  https://github.com/dlobo/org.civicrm.module.cividiscount


User can add themselves to any group There are a couple of posts, listed below, already on this topic - but I'd like to follow up:

SUMMARY

I can create an ACL role and limit access to a custom field group - which is seemingly wonderful. Data that should not be visible to everyone is not.

BUUUT any user (with the ability to edit a contact) can add users to an ACL group. I feel it renders ACL roles/restrictions pointless. (We have users who need to be able to edit a contact, to adjust contact information and such but shouldn't be privy to all the custom data in the system.)

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

Permissions, ACL and Groups

QUESTION
Does anyone have feedback on the Group Protect extension? It looks very promising but the notes indicate it's a work in progress from early 2016. Or is anyone taking a different avenue to prevent users from adding themselves to ACL groups?

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


Adding Organization filter to Event details report I have a report that I've modified from the Attendee List report under the Event Reports, but it's missing the ability to filter by organization name. Essentially, the purpose of the report is to pull out detailed information of all employees who've attended events in a defined range. This can then be used to show the company the value they are receiving by being members. Everything I need is there except the ability to display only individuals from just one company. Is there a simple way to edit the report to filter by company?

I'm running CiviCRM 4.7.11 on Joomla 3.6.5

"Simple" is a relative term here!  This is an excellent beginner-level modification to CiviCRM's source code - but any modification requires a fair amount of knowledge.

Assuming you're using the "Current Employer" as the organization name, you're in luck.  The current employer's name is stored in the "Organization Name" field on the individual's contact.

You'll need to modify the file in CRM/Report/Form/Event/ParticipantListing.php.  Check out this session from CiviCon 2012 for a video and slides.

While it's not suitable as a learning resource, the CiviReport Reference is an excellent reference document.


Is it possible to set up a custom field that requires a specific format eg xx-xxxx-xxxxxxx-xxx We need to store bank account numbers and will set up a CiviCRM custom field for the data. Ideally we would like the field to be such that people only enter data in the following format xx-xxxx-xxxxxxx-xxx. Is it possible to customise the custom field format? if so how would I do it?

Or do I need to create a work around eg have 4 integer fields that display inline with dashes inbetween.

I'd suggest adding a javascript formatter to a single, custom input text field. I haven't tried it, but formatter.js looks like it would deliver what you want.

Their Credit Card demo illustrates what you want - accepts pasting of data with and without hyphens, prevents pasting / input of values which don't match the validation rule. It just needs a different pattern for hyphen placement to deliver bank accounts.


How to embed a Soundcloud player into CiviCRM mailings I am trying to embed a Soundcloud player into a mailing. It all seems to work fine in the composition window but then the player doesn't appear in the draft mail when I send it to myself (I tried Outlook365 and Gmail).
Does someone have a sense of where it goes wrong?
Many thanks.

Almost all email clients strip out JavaScript/embeds, which is necessary to play audio.  See Soundcloud's blog and Mailchimp's knowledge base for reference and workarounds.


CiviCRM Wordpress Migration: Stumped by the Database I am attempting to migrate an existing Wordpress CiviCRM installation to a new server, but am having some difficulty with the database part.

The existing installation is Wordpress 3.8.1 and CiviCRM is 4.4.3. The installation on the target server is Wordpress 4.9.1 and CiviCRM 4.7.27.

I used mysqldump to copy the existing database and then transferred to the new server. I used the mysql root login to execute these commands on both servers.

Once I got the database copied to the target installation, it appeared that no database was there when I ran a report in CiviCRM. So I went back to the original wp-config file and noticed there was a different username and password for the original database (not the root one I used to transfer). I then changed the target server's wp-config file to reflect the other password (shown on the old server), but began getting WP login errors, saying the password was incorrect.

I retrieved the old installation's WP password and was able to login (after changing the wp-config file back to root DB credentials. I had to do that before I could bypass a screen that said 'database connection failure'. But anytime I change the new wp-config file to use the same DB username and password as on the old wp-config file, it throws the database connection error.

I figured since it allowed me to transfer the database using the root password, then I could use that in the wp-config file, but I'm not sure if that's right.

Any ideas what might be going on? I feel like I've missed a step or done something incorrectly. Hopefully my situation makes sense. Many thanks to anyone who could point me in the right direction.

There is some documentation here that should help: https://docs.civicrm.org/sysadmin/en/latest/misc/switch-servers/

Are you copying the Wordpress database as well?

You are trying to switch servers and upgrade at the same time.  I would strongly suggest you do that in multiple stages: first move to the new server using the same versions of Wordpress and CiviCRM - make sure that is working correctly, and then upgrade.

Switching to a new server involves changes with URL's, directories, passwords etc so get that set of issues resolved first.  That is often more tricky than upgrading.

You are also going from 4.4 to 4.7 which is a big leap. Opinions vary as to the best way of doing that: a single upgrade should work, but you may be better to upgrade to the last 4.5, take a backup, upgrade to the latest 4.6, take a backup then go to 4.7. It is extra steps but may save you time in the end if things go wrong.

To your issues with passwords: to dump the databases from the old server, you need the password for the old server.  When you load it to the new server, you need the new password.  civicrm.settings.php needs to have the new passwords but the changes you need to make depend on which option you follow in the guide for copying the codebase (Step 4).

If that looks too daunting there are plenty of people at https://civicrm.org/partners-contributors who would help.  (Yes, I'm one of them!)


Is it possible send a gif image correctly without breaking it? I'm trying to create a email mosaico template with image .gif but jquery resize my image and send gif broken. Is there any option to send a .gif correctly?

Thank you.

Did you find an answer to your question? It seems that the platform does not accept the .gif format.

Admin support and I figured it out... kinda:

It works if you use the "traditional" email. The Mosaico version
seems to strip the gifs away.
If I view the resulting email through
our standard email reader, it moves. If I view it through outlook,
it does not.

Conclusion - Even if you get the gif to upload and go
    out properly, it doesn't work on all email readers and therefore is
    not a good solution for your email.


Uncaught ReferenceError: CRM is not defined when trying to access mail templates When I try to create and new, or edit an existing, message template in 'Mailings' > 'Messsage Templates' I end up at a completely unstyled page. When I look at the console I see the following error:

Uncaught ReferenceError: CRM is not defined
at BtJa0AvQ:153

I then look at the 'file' that is being referenced and at the very last line I see:

})(CRM.$);

I have a Test server which is rendering the mail templates fine, it's simply the Prod server (which figures...) where I'm having this issue.

Any ideas where I can troubleshoot this issue?

I'm using the following:

Drupal 7.56
CiviCRM 4.7.22
PHP 5.5.38
Amazon Linux AMI release 2017.03
Apache 2.4.27

I'm only using one extension but that extension has nothing to do with mailing and was actually added well after this problem surfaced.

Here are some places to check:

The JavaScript file name you mentioned shows that you're using aggregated JavaScript.  To troubleshoot this, temporarily disable aggregated Javascript.
If that solves your problem by itself, it's probably just a caching issue.  Clear caches and reenable JS aggregation.  More likely though, it will just make debugging easier (e.g. by showing the actual JS file throwing the error).
Use the "Network" tab in your browser's developer tools once JS aggregation is off to look for 404 errors.


Case Type page blank This is super strange. We've tried the latest CiviCRM 4.7.10 clean installed on BOTH the latest Wordpress AND Drupal 7.50 and in both installations, going to Administer > CiviCase > Case Types results in a BLANK page titled simply "CiviCRM" (not "Case Types" as you'd expect) with the surrounding CiviCRM blocks, header and menu. This Case Types page seems to be the only one affected.

The issue produces no network or console errors in either Chrome dev tools or Firebug. Turning on all the debug & backtrace options of CiviCRM and Drupal devel also results in zero reported errors, but the Case Types page refuses to work. I've also tried disabling all browser extensions in case one was injecting HTML and screwing things up.

I've found a few reports of something like this but none were relevant or provided solutions that worked in my particular cases.

AJAX problem in CiviCase - Administer Case Types

EDIT: When I install exactly the same codebase on my local dev environment then the Civi Case Type page works as expected, so it's possibly an incompatibility with the remote server software but still very strange that I'm not seeing any error messages anywhere.

EDIT 2: PHP and MySQL are newer on the remote server than on my local. Also, the only difference I can see in the installations between my local and the remote server are that in my local I used a single database for both civi and drupal, whereas on the remote I used separate databases. But I'm not sure how that would make any difference.

EDIT 3: Compared network activity between non-working remote and working local and discovered this difference - the remote server is responding with 302 instead of 200 for the query rest?entity=CaseType& ...:

Seems like apache mod_security was the culprit. I deactivated it temporarilly and CiviCRM Case Types page works just fine. Now I need to find out exactly what rules are causing the issue.

EDIT: In my case I added the IDs for REQUEST-42-APPLICATION-ATTACK-SQLI to the ModSecurity whitelist and the issue disappeared. I realise this is probably not ideal - it would be better to write an exception rule just for civi queries, but that's beyond my current knowledge.

I think the CiviCRM dev or docs team needs to look into this as likely more people will have this type of server configuration by default.


Invalid currency "Arr" when modifying member profile Why do I get this error message when simply modifying a contact?
Obviously there is no "Arr" currency in Civicrm. This is a new message.
Any thoughts ?

Looks the record has 'Arr' stored in currency field either in contribution or financial transaction table.


KCFinder browser shows empty pop-up window. How to debug? I've just upgrade a site, which as far as I'm aware was working fine, from CiviCRM 4.6.x to 4.7.8. Only now the file/image browser and file upload facility within the CKEditor (which I understand is provided by KCFinder, is displaying nothing in the file/image browser and won't let me upload anything.
Don't know if this is a bug in the 4.7.8 release for Wordpress. I've never come across this issue before in CiviCRM, on dozens of different sites.
I've read that KCFinder is fussy about paths and permissions.
Any pointers about how to fix this very welcome.

Update: from the error log I see that each time I open up the KCFinder browse window I get a pattern of notices and warnings, ending with a fatal error:

  PHP Notice:  Undefined variable: output in
  /home/account/sites/default/wp-content/plugins/civicrm/civicrm/civicrm.config.php
  on line 403, referer:
  http://account.co.uk/wp-admin/admin.php?page=CiviCRM&q=civicrm%2Fevent%2Fadd&reset=1&action=add

  PHP Warning:  exec() has been disabled for security reasons in
  /home/account/sites/default/wp-content/plugins/civicrm/civicrm/civicrm.config.php
  on line 403, referer:
  http://account.co.uk/wp-admin/admin.php?page=CiviCRM&q=civicrm%2Fevent%2Fadd&reset=1&action=add

  PHP Notice:  Undefined variable: output in
  /home/account/sites/default/wp-content/plugins/civicrm/civicrm/civicrm.config.php
  on line 404, referer:
  http://account.co.uk/wp-admin/admin.php?page=CiviCRM&q=civicrm%2Fevent%2Fadd&reset=1&action=add

  PHP Warning:  implode(): Invalid arguments passed in
  /home/account/sites/default/wp-content/plugins/civicrm/civicrm/civicrm.config.php
  on line 404, referer:
  http://account.co.uk/wp-admin/admin.php?page=CiviCRM&q=civicrm%2Fevent%2Fadd&reset=1&action=add

  PHP Fatal error:  Uncaught exception 'Exception' with message 'Failed
  to locate civicrm.settings.php. Please boot with settingsFile, search,
  or CIVICRM_SETTINGS; or normalize your directory structure.' in
  /home/account/sites/default/wp-content/plugins/civicrm/civicrm/civicrm.config.php:125\nStack
  trace:\n#0
  /home/account/sites/default/wp-content/plugins/civicrm/civicrm/civicrm.config.php(413):
  Civi\Cv\Bootstrap->boot()\n#1
  /home/account/sites/default/wp-content/plugins/civicrm/civicrm/packages/kcfinder/integration/civicrm.php(45):
  require_once('/home/account/si...')\n#2
  /home/account/sites/default/wp-content/plugins/civicrm/civicrm/packages/kcfinder/integration/civicrm.php(140):
  checkAuthentication()\n#3
  /home/account/sites/default/wp-content/plugins/civicrm/civicrm/packages/kcfinder/core/bootstrap.php(39):
  require('/home/account/si...')\n#4
  /home/account/sites/default/wp-content/plugins/civicrm/civicrm/packages/kcfinder/browse.php(15):
  require('/home/account/si...')\n#5 {main}\n  thrown in
  /home/account/sites/default/wp-content/plugins/civicrm/civicrm/civicrm.config.php
  on line 125, referer:
  http://account.co.uk/wp-admin/admin.php?page=CiviCRM&q=civicrm%2Fevent%2Fadd&reset=1&action=add

I've got 4.6.x sites running on the exact same server set-up with no issues. This is the first site with 4.7.x on this server.

There used to be a requirement that the URLs that Andrei referred to above could not contain symbolic links. I don't know if that is still the case, but make sure that all directories in that path are true directories and not symbolic links.


What is the 'Associated Entity' in a CiviVolunteer Project? I'm using CiviCM version 5.18.3 with Drupal 7.67 . I've installed CiviVolunteer.

At ~/civicrm/vol/#/volunteer/manage I see a test Project I have created in a list. In that row, next to Volunteer Project is a column named Associated Entity. The Associated Entity has a value of --.

I have related the Project to a Campaign, and the Project has an Owner, a Manager, and a Beneficiary.

So what value should be listed under Associated Entity?

So apparently Associated Entity means Associated Event, if and when a volunteer Project is created as part of an Event. I've created an Issue to change Associated Entity to just Event.


Need help understanding contacts hierarchy I am new to Civi (I started working for a company that is using it). I actually started this question in Civi community and was guided here.

Our company currently uses civi to track our corporate membership. We want to import our clients who are schools and districts, as well. Except we have a concern about how to organize schools and districts (Schools come to us as projects from the district level and it is our end goal to use civicase to monitor our projects).

One of our plans is to import schools as individuals and create a Contact Type properly identifying them as schools and import Districts as companies.

Another suggestion made was importing both as companies and properly identifying the Contact Type in this way (ie, schools, districts, corporate)

A third idea was to import schools as companies and districts as a household. But I am not sure how the relationships will work between these.

As someone new to civi, it is difficult to see the advantages and drawbacks of each option. On top of which, occasionally our projects names are different to the school name and we keep record of both.

Any input or advice would be greatly appreciated!

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

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


What should the outbound SMTP configuration be for Office 365 Exchange? I am trying to use Office 365 Exchange as the mail transport for CiviCRM, but get this error.

Failed to connect to ssl://smtp.office365.com:587 [SMTP: Failed to connect socket: fsockopen(): unable to connect to ssl://smtp.office365.com:587 (Unknown error) (code: -1, response: )]

I have looked at enter link description here, and links therein which seemed to indicate that a STARTTLS issue was fixed.

Office 365 Exchange has these instructions for SMTP connections:
enter link description here

I am running a development system under Windows so don't have a mail server on board, and in any case don't want to overcomplicate things - performance isn't an issue.

Any suggestions?

Which version of civi are you using? https://issues.civicrm.org/jira/browse/CRM-14814 it's fixed on a fairly recent version of civicrm only

Another reason can be the confirguration of your network or your server: can you start a connection on port 587 to smtp.office365.com ?

However, before you spend too much time on it, last time I checked:
- smtp on office365 was limited in volume, ie find at low volume, but won't work for production
- 365 doesn't handle "+" notation, so and email to bounce+something@yourdomain.org won't end up in your bounce mailbox. This is needed to handle bounces in civicrm

so I would recommend you:
if it's for testing purpose, use a gmail account
if it's for production purpose, use an external provider to do the bulk mailing and integrate it with your civi, for instance sendgrid and this extension:
https://civicrm.org/extensions/sendgrid-event-notification-processor


Group, Type, or Membership type - please advise I'm setting up CiviCRM for our artist workshop, but after reading the good book I still haven't wrapped my head around how best to setup for the data I'd like to cover, so thought I'd check with my betters. Please advise.

We are 1 organisation with 500 members, and each member can have
access to 0-15 of our workshops (wood, textile, etc). Each workshop
has 1 or 2 members who are admins for that shop. We have a board of
trustees who all are members.
We allow organisations to become members as well, and their employees
are allowed in our shop, but they are not member themselves.
We allow current members to become "inactive" for 1 year - retaining
their membership but with reduced access to the shop.
We have a bunch of groups for tasks (events, exhibition, marketing…)
whose members are also members of the main organisation.

I'd like to be able to selectively email all members of particular workshops, "task" groups and the board, as well as keep track of which member has been approved for which workshop when and by whom.

Q:
I was leaning towards creating groups for all above, but an alternative solution might be to use either custom fields or tags, and then use smart groups to generate email lists. Is there an advantage to either solution?

Q: I just found the "membership type" field - since we're doing our billing in an external system, is there any point in setting up the membership groups using "membership type" instead of "groups"?

Q: Some of our members are also members in other organisation we're dealing with, and I'd like to be able to sort those out as well. Would tagging those members with "acme inc" be the most straightforward way of doing that, or would it be better to setup a custom field allowing for more granularity? (i.e. "acme inc, press contact, interested in graphic design")

Happy Holidays!

Mateusz

I would start by reading the "Groups vs. Tags. vs. Custom Fields" wiki page, but most likely you can use any of the approaches you suggested successfully.  I personally don't use tags much when I only need to tag contacts; they can't be mailed to like groups, and they're not as neatly grouped as custom fields are.  So I'd consider groups, custom fields, or membership types.

My main question would be how you intend to keep your data fresh.  Are you syncing in any way with your external system?  If so, importing custom fields or membership types is easier than importing groups.  Memberships are compelling because you can have different statuses, which would mesh well with your "reduced status" grace period.  The format in which you can export your other system's data (or better yet, connect automatically via an API) would be the deciding factor for me in your situation.


Multi-Record Custom Data Set - Permissions (View/Edit) I am using some multi-record custom data sets and they are working well. I have been able to import records, use them in reports, use them in searches, add/edit and delete records.  All seems to work fine for me except the authorization.

I have simple permissions - 1) Edit everything and 2) View Only.  However, the multi-record custom data sets are open for update (add/edit/delete) for the view only users.  The view only users cannot edit any other aspect of a contact yet they can do anything to a custom data set.

I have tried refining the permissions using ACLs for the custom data sets with the same result.

Is there something I can do to make the multi-record custom data sets not open for change?

We are using Drupal and CiviCRM 4.6

Probably not the answer you were hoping for :-(, but confirming that is a current limitation.  ACL's for custom data do not distinguish between View & Edit.  On the New ACL screen, when you set the type of data to custom data, a message is shown:

  NOTE: For Custom Data ACLs, the 'View' and 'Edit' operations
  currently do the same thing. Either option grants the right to view
  AND / OR edit custom data fields (in all groups, or in a specific
  custom data group). Neither option grants access to administration of
  custom data fields.

It would be a useful enhancement to fix that, but you can't do what you want without writing code.

If you just want to deter some people from changing the data then adding a bit of jQuery to disable options would be fairly simple. That is not secure since a user can bypass it.

For a more robust approach, you could try hook_civicrm_validateForm.


How to find users that have taken more than one action? We want to identify the most active users (eg. those that register to several events, or made several contributions, or signed several petitions).

Is there already a report or a custom search that allow to search users that have more than x activities of the same type?

In the future, can we use the engagement index somehow to identify them?

To make things more complicated/useful, I would like to be able to filter these activities by date, so for instance finding all our contacts that have signed more than 2 petitions in the past year. Is there something existing that I haven't found yet?

This may not be a comprehensive answer, but do you have this extension installed? https://github.com/progressivetech/net.ourpowerbase.sumfields

Some of these calculated fields used with advanced search could answer some of your questions.

  The benefit of making these items available as calculated fields is
  that they can be searched in Advanced Search and used as a basis for a
  smart group as well as for tokens in email and print communications.

Sumfields that are available:

Total Lifetime Contributions
Total Contributions this Year
Total Contributions last Year
Amount of Last Contribution
Date of Last Contribution
Date of First Contribution
Largest Contribution
Count of Contributions
Average Annual (Calendar Year) Contribution
Date of Last Membership Payment
Amount of Last Membership Payment
Name of the last attended event
Date of the last attended event
Total Number of events
Number of events attended
Events attended as percent of total
Number of no-show events
No-shows as percent of total events
Number of turnout attempts
Number attended from turnout attempts
Number noshow from turnout attempts
Attended as percent of turn out attempts
No-shows as percent of turn out attempts


Membership structure with 2 renewal cycles? I need to implement the following membership structure, and am wondering if this is possible with civimember? I'm having some trouble seeing how this could work with fixed membership periods...

Thanks!

Ahna

Spring Renewal
- Joins/renews Jan 1 - Jun 30
- Renewal date is Mar 31 of following year
- Grace period extends through Jun 30, when non-renewals are removed from member roll

Fall Renewal
- Joins/renews Jul 1 - Dec 31
- Renewal date is Sept 30 of following year
- Grace period extends through Dec 31, when non-renewals are removed from member roll

This is a strong point of CiviCRM - there's no system out there that supports all of the MANY different quirky membership structures that exist in the world - but CiviCRM makes it easy to write an extension to implement your particular structure.  That said, it DOES require that you write custom code, or hire someone who does.  You can use civix to create a CiviCRM extension.  Most times, you can use hook_civicrm_post, in some special cases you might want to use hook_civicrm_alterCalculatedMembershipStatus.


Event -> Find Participants displays event id, not event name in event name field Selecting Events -> Find Participants under CiviCRM 5.1.2, Joomla 3.8.8, PHP 7.2.5 under IIS displays the event ID and not event name in the Event Name field.  This is a bug introduced after 4.7.31.  It may be relevant, but the CiviCRM menu drop downs also disappear.

4.7.31:

5.1.2:

I've tried looking at what has changed, but the obvious files aren't showing any such changes.

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

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

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

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


Links inserted in Civimail are not redirecting and require a log-in This seems to have started with CiviCRM 5.27.0 on a Joomla installation.  When using Civimail to send out an e-mail to our users, the link no longer redirects to the initial destination but goes to the Joomla Administrator log-in page. If you are logged in as an administrator, then the link works properly on the redirect. I've upgraded to 5.27.2 with the same result.

This is a bug. It has been resolved by https://github.com/civicrm/civicrm-core/pull/17760


Activity Report in Views On Drupal 7, how would you display a list of CiviCRM activities and show the two types of contacts (the activity related to the client and the user who created the activity)?

Views is pretty tricky here. All the primary fields (Activity ID, Status, Type, Activity Date, Text Link) can be added without any problems. Each row in the table represents a unique activity entry. When it came to adding the names of the individuals for the client and person who created the activity, I'm having difficulty with it. I tried adding a relationship to "CiviCRM Activity Contacts: Activity Contact ID"; however, this will duplicate some of the activities in the data.

Activity Assignees: Will not display the person who created the
activity
Activity Source: Displays the person who created the activity, but unclear how I would add the target contact (the client). Contact A/B doesn't work well.
Activity Targets: Display the target contact (the client). Added a relationship successfully to display the user (person who created the activity), but one activity now appears in 9 rows.

The only way I can think of displaying a list of unique activities is possibly aggregating (Views "use aggregation"? Table with aggregation options module to group Activity IDs?). Am I thinking about this too much?

No aggregation necessary.

Under relationships add two relationships for activity contacts.  Select one to be the source and the other to be the target.

Once you've got those relationships, you can add two display name fields.  One tied to the source relationship and one tied to the target relationship.

Under filters add activity is deleted false, activity is current revision true.

In the fields section, in the activity ID settings select filter repeats.


How to hide the "If you have a coupon code, enter it here" option, in an online registration form to an event? How to hide the "If you have a coupon code, enter it here" option, in an online registration form to an event?

If there is no code that applies to either the event or a price line item that is used in the event price set the discount code block should not appear.


Transfer event registration How do you transfer an event registration from one person to another? I can't find an option that will allow me to put a new person's name in an existing registration so that the payment will follow the original registration.

Civi can't do this in the UI, but if you're comfortable using the api explorer you could. First you need to find the id of the participant record (not the contact id of the participant) and the contact id of the person you want to transfer it to. Then user the api explorer to do Participant > Create with id (of the participant record) and contact_id (of the new contact).


Embed PCP thermometers I was wondering if it is possible to embed the thermometer from an individual personal campaign page to another site. I am guessing it is, but don't know where the best place to look for the code is: anyone know?

Perhaps you could start with the widget code from a contribution page as a base?(Widget>widget.php)

Make a new one that pulls info based on PCP id vs contribution page id...


What order are CiviMail emails sent from CiviCRM? Is there a clear pattern to the order in which emails are sent from CiviMail queues? For example, emails are sent from the queue

in no specific order
sorted alphabetically, A-Z
sorted by contact ID ascending
...

Wondering after seeing this question.

I understood it was smallest civi id first (or "sorted by Contact ID ascending" to use your description)