How can I show a list of events with summaries and either a register link or message saying they are full?

As with many problems with Drupal integration civcrm_entity is the answer.

Install the latest civicrm_entity module for Drupal in the usual way (Recommend using Drush if you can).You'll also need to enable the civicrm_entity_views_extras sub module.

We'll be using drupal views to display the results so if you have your Drupal and Civi in different databases then make sure you have civicrm cms integration configured. Go to Civicrm home and choose Administer->System Settings->CMS database integration. This will bring up a page of PHP code to paste into your current drupal settings.php to allow drupal views to fetch civicrm data. You might need to change permissions on settings.php and it's enclosing folder to edit the file, remember to change them back.

Now, create a new view to show "civicrm events", click "Create a page" and choose "unformatted list of fields" as Display format.

This will show all events in the system. For our purpose we only wanted to show events on a certain afternoon, so we added a "filter criteria" to only show events starting in the correct timeframe. Worked for us but you may need to find other filtering techniques for other purposes.

Add fields for all the information you want to display. Title, description etc.

The field that does the magic is called "Civicrm Events:event is full" this will return a 0 if there are spots left or 1 if the event is full.

So now your view knows when an event is full, to change what is displayed to the user you'll need another module—views conditional—install that and reload the view editor.

Add a views conditional field below all other fields and set it up so it checks if the event is full field and returns either the "registration link" or a custom message.

This should now be working, but you're still seeing the "Registration link text field" and "event is full" field above your conditional output. Click to change the settings of each one to "exclude from display" and check that "registration link text" is linking to where you want it. The setting sometimes seems to reset when I save the view.


How to I track down this problem when I try to CIVIMail? Sorry an error occurred and your information was not saved

Did you check your firewall settings?
The wordfence plugin (on WordPress) was doing that for us. Had to white list the params.
Also, can be an error in the html of your email (or a smarty error).
As @demerit said it's a generic error and can be plenty of things.


How do I add a new settings page for my extension?

You'll want to start with the civix generate:form command. Alter the generated code to have your form class extend CRM_Admin_Form_Setting instead of CRM_Core_Form and then follow the example of other such forms by declaring the settings that form is supposed to manage.

You may also wish to insert a link to this form into the navigation menu.


cron jobs process_membership, send_reminder and process_membership_reminder_date

The first one, process_membership, goes around and updates the membership statuses.  It's what sets a member's status to "expired" once the end date comes around.  Once upon a time, it sent reminders, but it doesn't anymore (new installations don't have that label for the job).  You should be able to have it run daily.

The second one, send_reminder, is for all reminders--activity, event, birthday, etc. in addition to memberships.  Although you could get away with running it daily, you should run this hourly, because you may have time-sensitive reminders set up for events.

Once you have the job running, you should go into the Scheduled Reminders admin page and set up the appropriate reminders.

The third one, process_membership_reminder_date, should stay disabled--it's obsolete, as the warning says.  You could even delete it if you like.


if you are wanting to track who was sent something, then I would create a new Activity Type for 'send member pack' and then via a Search  you would be able to add an Activity to any member that you are sending the pack to, and set it to Completed, and hence you know the job has been done.

NOTE: when adding an Activity to lots of contacts via Actions on the Search screen there is a small checkbox that lets you specify whether you are making one Activity that relates to LOTS of contacts, or one Activity for EACH contact. You are welcome to choose, but i would suggest doing the latter option, so you have a single Activity record for each Member.

EDIT: (per frTommy suggestion) You could automate this somewhat by utilizing CiviRules to Schedule an Activity of "Send Member Pack" whenever a Membership is added


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


The ACLs in CiviCRM are only additive.  So assuming a user doesn't have the "View All Contacts" or "Edit All Contacts" permissions (which overrides all ACLs), the default is that a user can view zero contacts.

So to answer your second question: If you grant the user permission to access contacts in Group A, all contacts in Group A are accessible to the user - even if they're in Group B, which the user doesn't have access to.

This, in turn, should answer your first question - the ACL applies to the contacts in a group.


CiviCRM API page not displaying in Drupal

I've seen this once before and it was caused by a crash when fetching the list of entities. Do you have any custom code in place that defines a new entity? Try turning on debug & backtrace and run this from the civicrm home page in your browser console:

CRM.api3('entity', 'get')


From the CiviCRM menu -

Administer > Localization > Languages, Currency, Location.

Select required countries from the 'Available Countries' option.

CiviCRM help on this option -

Which countries are available in the Country selection field when adding or editing contact addresses. Profile and Custom 'Country' fields also use this setting. To include ALL countries, leave the right-hand box empty.


Event Fees display as total of contribution when they should not

There are two solutions:

Make your events free in civicrm but I assume that is not what you want
Differentiate in your reports between financial types. CiviCRM has Financial type system to register event fees with the type event fee, and donation with the type donation. You can also add other financial types.

See the manual: https://docs.civicrm.org/user/en/latest/contributions/key-concepts-and-configurations/#financial-types-financial-accounts-and-accounting-codes


Contributions not showing Thank You Screen

So I finally figured out what was causing this - but it created another small hiccup. In Wordpress' theme customizer if you set any sort of static front page that's when things start breaking. I tested a bunch of different pages, the civiCRM page that is set as the base page, a page with a contribution on it overridden content and non-overridden. All these pages had the same result - the thank you page on civi generated donate links doesn't show up. (I also tested different themes, it wasn't theme based.)

But.....if you show a lists of posts as your home page the thank you page does show up! Which works for now but is problematic as you can't publish more than one post ever. If you only have one post published it shows the whole post on the home page. Once you have more than one it shows excerpts - which for me is awkward. I like my home page to be a donation page.

I couldn't reproduce this on the demo server as we (understandably) don't have access to the Wordpress settings. I'd love some feedback if I'm the only one who has noticed this or if anyone has found a workaround.


I am receiving a "Network Error: Unable to reach the server" error when I try to edit a contact via "edit address" button

Given that it's a 403 error, I would check to see if WordFence (or similar "security" plugin for WordPress) is the cause by temporarily disabling it (ideally on a test site).  If you're using Apache, it may be a rogue .htaccess file causing the problem.


I don't think there is way to do this through the UI, although it does seem like something admins might need to do occasionally.

However, as the dropdown list of event locations seems to contain all the address fields, I am surprised that it is confusing. Even if they have the same name I would have thought there were enough other details to make picking the correct one easy.

If you are wanting to do a one-off cleanup of obsolete addresses than as a UI work around you could edit the old events that contain those obsolete locations and set the first address line to DO NOT USE  or NO LONGER IN USE or similar.

I don't really know about good and bad practices for using the API, so what I am about to suggest could be a really bad idea.  If those old events no longer exist then a different approach might be to use the API to find the address ID, email ID and phone ID of the event location you want to delete, then use the API again to delete the location block associated with those values.

If that is a really bad idea, a more knowledgeable person should feel to edit my answer and remove that part.


Why is a contribution given a financial type different from that allocated to the contribution page used?

I am answering the question posed in the title, not dealing with the problem of debugging the Paypal problem.

When you define a membership type you specify a financial type.  That become the defualt financial type for that membership type. Unless you use price sets, the "default financial type for that membership type" will be recorded against the membership contribution no matter what you have chosen as the financial type for your contribution page. This is explained at the bottom of the help message that appears if you click on the ? associated with the Financial Type when you are setting up your contribution page.

  NOTE: If you are using this contribution page for membership signup and renewals, the financial type configured in the membership type settings will be used when recording the membership payment. The financial type selected here will only be used if you are also collecting additional contributions (as configured on the Membership Settings page).

If you need renewals to have a different financial type from new memberships (as we do) then you will need to use a price set for you renewal page specifying the renewal financial type at the line item level.  You will also need to extract financial data at the line item level, not just at the contribution level.


CiviCRM is open source, so the software itself is free to download. So depending on your skills and availability of hosting it could be free.

In practice, hosting costs (a bit of) money. It will cost your organisation time to learn to use CiviCRM. And if you would want extra help you would pay it to one of the CiviCRM Partners you could hire. (The Partner list can be found here: https://civicrm.org/partners-contributors.)

If your organisation starts using CiviCRM you could help support the CiviCRM community by a (yearly) donation or by becoming a CiviCRM member (https://civicrm.org/become-a-member).

But all that is voluntary and completely under your own control.

When you like CiviCRM at first sight you can get more hands on experience by looking at http://demo.civicrm.org.

After that you could try to download and install it (https://civicrm.org/become-a-member).

Let us know if you need more information.


(Solved) When adding a new contact, redirected to Civicrm home page

Solved. I used a copy of the navigation menu table for first CiviCRM installation and reset the table. Cleared the CiviCRM caches and my browser cache and the admin menu is working properly.


Make sure they are marked as searchable. On your:
civicrm/admin/custom/group/field?reset=1&action=browse&gid=1

(assuming it's your first Custom Data set)

Check the Searchable? Column; If you toggle that to Yes - then reports that pull in custom fields will show yours at the bottom of Columns and Filters - e.g.:

The Searchable? = Yes field shows is select-able in the Report:


How do I get pictures entered into fields in contact records to be viewable in the contact record?

Welcome! That's a CiviCRM Core Contact Field -> so simply hit Edit on the Contact Record and look for the field: Browse/Upload Image


After enabling the Campaign module and adding your Campaign Type, Statuses, and Engagement Index (if relevant), you can add a new campaign from either the Campaign dashboard (using the Add Campaign button) or from the Campaign menu > New Campaign.  From the docs:


Administrator does not have sufficient permissions when running upgrade script

From the steps you've taken, it seems you are trying to do an install on Wordpress.

Have a look at the "Upgrade Troubleshooting" paragraph near the foot of the page at https://wiki.civicrm.org/confluence/display/CRMDOC/Upgrading+CiviCRM+for+Wordpress  The "You do not have sufficient permissions to access this page."  error when trying to run the upgrade script(step 4), probably means that you most likely deactivated CiviCRM plugin during the upgrade process. You just have to visit /wp-admin/plugins.php and activate the plugin, and then proceed with step 4 .

Hope this helps.


Resolved this issue by using:
 Edit  Delete


Error in Class CRM_Extension_Mapper 'Class CRM_Extension_Info not found' when installing 5.24 in Drupal 7

This issue fixed .. simply due to missing file in deployment.


Creating a single manage your subscriptions link for mails sent via CiviMail and Mailchimp

Assuming you're using the mailchimp extension headed by Veda...

You cannot supply more data from CiviCRM to mailchimp, such as data from other fields, or calculated such as a unique URL or checksum.

Furthermore, there is no direct one-to-one link (e.g. ContactID) between the data at Mailchimp and the contacts in CiviCRM. Since integration means that people will always be able to subscribe directly at Mailchimp (or via another consumer of their API), it would be impossible to maintain a state of having a known ID in Mailchimp.

I recently quoted for implementing the first of these and it looked like a lot of work. The latter could be implemented with less work, but you would still have to deal with the cases of subscribers at Mailchimp that might not exist/have corresponding contacts in CiviCRM.

A practical solution might be to have a service that runs on a schedule to: fetch subscribers without this magic link (yet) using Mailchimp's API; then loop those, calculate the links and create a bulk API update call.

My CRM_Mailchimp_Api3 class has methods for submitting and waiting on a bulk Mailchimp API operation.

That way as long as your link does not need changing (it might, in the case of a subscriber changing their email address), and as long as the scheduled job runs frequently enough, you should be able to pull in that magic URL as a |*MERGE_TAG*|.


Custom Field Multiple Choice Through the API?

Yes, if you visit your api explorer you'll be able to play with this in detail, but the api call you probably want is:

civicrm_api3('contact', 'getoptions', array('field' => 'custom_123'));

where 123 is the id of your custom field.

By the way, you haven't said how/where you are developing this form, but if it's on your own site with access to the ajax api, then a big shortcut for you would be to simply drop in an entityRef field (entity type = "option_value") and given the correct option group it will do everything else for you.


Go into your CMS permissions and check that your role has all the CiviGrant permissions. They are not automatically granted when you enable the component (though it is a little surprising that they would be revoked upon disabling it).

You also might try logging out and then in again.


Yes, the API is definitely the correct approach.  Writing via SQL may work for now, but isn't guaranteed to in the future.

For the first item (creating the Joomla) user, I can't offer help, since that's not CiviCRM.  There are plenty of pages that indicate how to create a Joomla user programmatically.

Don't forget about the API Explorer (Support menu » Developer » API Explorer) to help with determining how to implement your solution.

Also consider the CSV API Import tool, which may provide a no-coding (or low-coding alternative.

Create the contact (step 2) with the "Contact" API.
Connect it to the group (step 3) with the "GroupContact" API.  Use the "Group" API if the groups don't currently exist.

Step 4 needs the OptionValue API to create the role (set "Option Group ID" to acl_role).  Use the Acl and AclRole API to set the rest.


Message: "Fatal DB error, exiting, seems like your schema does not have civicrm_setting table"

I would start looking at corrupt tables.

If you have access to phpMyAdmin, you can select all tables at the bottom and then choose "repair tables".

If you do not have phpMyAdmin, but you have access to ssh then you can use mysqlrepair (or mysqlcheck -r), see more at http://linuxcommand.org/man_pages/mysqlcheck1.html

If you have neither you should ask your hoster to do a repair for all tables.


There is an open issue related to your question https://issues.civicrm.org/jira/browse/CRM-20894. It also happens to me with a recent upgraded CiviCRM from 4.8 to 4.7.22 and it can also be replicated in dmaster.

[EDIT]

Seems it's already solved here https://issues.civicrm.org/jira/browse/CRM-20773


Make CVV code field optional in Authorize.net payment processor in a contribution form

That’s a configuration/setting ->

CiviCRM -> Adminster -> CiviContribute -> CiviContribute Component Settings


Can CiviCRM entities be used as events to trigger Drupal Rules?

The rule will only trigger when the Drupal version of the contribution page at path /civicrm-contribution-page/(id)

We haven't added a feature to trigger the rule event when the civi version of the contribution page is viewed.


CRM.$ is not a function after upgrade 4.7.8 > 4.7.13

I recommend doing the upgrade via drush if you are having trouble doing it in your browser.


Console error with Google Plus and "Help spread the word"

This is usually a local issue; if you clear your browser's cookies the error should go away.


CiviDiscount that is dependent on status as of event date?

Figured it out by manually editing the database and seeing how it was represented in the CiviCRM UI, so here's a guide in case anyone has the same need as me:

In order to automatically apply a discount if the contact has a membership that is active as of a specified date (example is February 18, 2017):

In the specify api string for advanced filter box, type {"end_date":{"\u003E":"2017-02-17"}}


How to create a case activity using the API?

The param you are looking for is case_id which can be used like:

civicrm_api3('Activity', 'create', array(
  'subject' => 'Hello',
  'case_id' => 123,
  ...
));


Can't save profiles (any type) getting an error, this is CIVI Crm 5.x and drupal 7 on localhost

I found the problem, disabled the jQuery update module.

I could play around with Jquery versions as I am using Boostrap with different themes so I'll leave it off for now.

But no doubt, playing with Jquery versions on admin theme would solve this also ;)


Linking directly to Contact's Activity from Scheduled Reminder Email

SOLUTION FOUND
It wasn't rocket science but I'm putting it here in case others need it (or when I forget).

Here's how to create a link that will take you directly to an Activity in CiviCRM.

EDIT ACTIVITY PAGE ON WORDPRESS CMS

http://www.MyOrganization.org/wp-admin/admin.php?page=CiviCRM&q=civicrm/contact/view/activity&atype=2&action=UPDATE&reset=1&id={activity.activity_id}&cid={contact.contact_id}&{contact.checksum}&context=activity

VIEW ACTIVITY

http://www.MyOrganization.org/wp-admin/admin.php?page=CiviCRM&q=civicrm/contact/view/activity&atype=2&action=VIEW&reset=1&id={activity.activity_id}&cid={contact.contact_id}&{contact.checksum}&context=activity

If you're using a different CMS you can find the root URL structures at https://wiki.civicrm.org/confluence/display/CRMDOC/Tokens


You can make pdf and then print it.

Go to CiviCRM Menu -> Contribution -> Find contribution
Click on search button.
Select any contributions which you need
On the top of table is located "actions" dropdown. Chose "Receipts - print or email".
Then You will redirected on "Print Contribution Receipts" page. Click on "PDF Receipts" select pdf template. And then click on "Process receipt". After that it generates pdf.

If you don't have any pdf template, you can create in "[your domain name]/index.php?q=civicrm/admin/pdfFormats&reset=1" page. Be caerful, don't set big value for margin param(try to set "1").


Multi-client capability und data storage

A big difference between CiviCRM and proprietary SAAS offerings is that you decide where to host the system, hence your second question is not applicable.

In terms of the first question, this is possible via 'multi-site' or other ACL approaches, but the question back to you is 'why not just have separate civicrm instances for each client?'.

You can also achieve a nice multi-site outcome using the Related Permissions extension that Fuzion created.


Finally, I found that this was due to a .htaccess jam (between drupal and civicrm) : inconsistencies and contradictions in "rewriterules", used to https:// the site, delete initial www., and redirect (and keep) to the pertinent civicrm directory.


How do I control the order in which hooks fire?

CRM/Utils/Hook.php indirectly calls CRM/Extension/Mapper.php::getActiveModuleFiles which does

SELECT full_name, file
        FROM civicrm_extension
        WHERE is_active = 1
        AND type = "module"

So there is no well-defined order. You could of course hack that line to add an ORDER BY.


I'm in the same boat! Just about to install and enable as we need to trigger email to customer when they submit a profile from WordPress...

UPDATE
From initial testing it seems to work fine with 4.7.3 however I have only used the "Add to group" trigger and "send email" function. Both seem to work fine.

UPDATE 2
CiviRules is working on a live site now and performing well. Only have 10 rules which just send emails when people are added to groups. The delayed actions also work fine.

So to get it installed on 4.7.x, simply edit the "info.xml" file for the extension, adding <ver>4.7</ver> under the /extension/compatibility element and then installing as normal.

This is by no means a comprehensive test! Please perform your own prior to a live release!


Is there a limit to how many activity types we should create?

Although I am not sure what the exact impact on performance would be, it does not sound as a good idea. An activity can already be linked to a campaign, to make specific types for each campaign or event sounds like a bit of a nightmare.

Have you considered using the CiviRules extension (https://civicrm.org/extensions/civirules and documentation on https://docs.civicrm.org/civirules/en/latest/) for sending these emails? I reckon that might make life a little easier than creating hundreds of activity types, specific for each campaing or event.


How to enter relationship dates before 1997?

For CiviCRM 4.6+ go to Administer menu > Customize Data and Screens > Date Preferences. From there, change the Start Offset of SearchDate.

I found this answer in Member since date before 1995 and although it talks about Membership dates, it apparently applies to Relationship dates too.


Membership sign-up fatal error: Duplicate entry, already exists

Are you getting the same error for all the membership or just for single user

This error occurs when the confirmation button is clicked twice

did you check the DB - it should have already created membership record and also related contribution and line_item record

so please try to cancel the users existing membership and ask him to try again


Assigning Drupal roles on removal of inherited membership

This is a workaround rather than an answer, as I've not figured out how to do what I originally asked. But I've avoided it the need for it for the time being by treating all users who don't have the active member role as expired. That might not work for more complicated membership structures, but I think it meets my needs for now.


Upgrade to 4.6.6 : how to configure mysql server?

A lot depends on how much data you maintain in terms of contacts, participants, members, etc.

I have seldom seen any recent install of CiviCRM (on Drupal 7) running well on anything less than 1 gig, and I always recommend at least 1.5 gig; usually 2 gig.

Sorry, but I suspect no amount of MySQL tuning is going to give you what you need with only 512M.


Field Source doesn't appear in Import Contributions

The contribution source field is available during import and export. Its labeled as 'Contribution Source'.


There are some developments on generic ways of passing data between forms and CMS but they are at very early baby stages.

However they focus on the situation where CiviCRM is on a different server then the public website as this is the most secure configuration that best allows following European privacy guidelines. So that would certainly not help you right now.

Having said so, have you thought about separating CiviCRM and your public facing website because of security reasons?


New Contacts and Profiles - Is there a way to update the source field?

One option is very similar to this question/answer.

Add contacts created by the profile to a group and use CiviRules to populate the source field when the contact is added to the group - it's not "clean" and honestly a PR/extension to allow profiles to set any field using tokens (including a token for "profile name".) would probably be a better long-term solution.

Alternatively a PR to CiviRules to directly support profiles.


Is there a way to include OpenID as a drop down option in the contribution lis? or Is there a way to convert OpenID to external identifier?

a) Is there a way to include OpenID as a drop down option in the contribution list?

If you created a custom data field called "OpenID", you need to make sure the field can be used for contributions and that it is marked as searchable for it to appear in the list of fields when mapping contributions for import,

BUT

if memory serves me correctly, the system will require either an internal or external contact ID when importing contributions, so...

b) Is there a way to convert OpenID to external identifier?

Since you already imported the contacts, you can export all contacts being sure to include the OpenID and internal contact ID fields, then the update can be done in one of three ways - which ever you find easiest:

Use the import contacts wizard to update all contacts mapping the OpenID to the external contact ID field using the internal ID as the link, OR
Use a vlookup in csv to match the internal contact ID to the OpenID in your contribution data import file, and then import your contributions based on the internal contact ID, OR
Use an SQL statement that will copy the OpenID to the external contact ID field by contact ID directly in the database

Hope this helps,
Tamar


cms.root.path error after upgrade to 4.7 (Joomla)

Thanks to eug for finding the problem (see comments). Eug's solution worked for me:  Edit the file administrator/components/com_civicrm/civicrm/templates/CRM/Admin/Form/Setting/Path.hlp to replace the first crmResPath with crmResURL

Update: problem persists in 4.7.3. Have upgraded the bug report priority to Major.

Update: problem persists in 4.7.4.

Update: problem persists in 4.7.5.

Update: fix prepared for 4.7.6. See above bug report link for PR details.

Update: problem fixed in 4.7.6.


It may be that you have set your email to go to a file. Check your civicrm.settings.php (mine's in sites/default under the Drupal root).

Look for the lines referring to CIVICRM_MAIL_LOG and make sure the define statement is commented out.

The comment on CIVICRM_MAIL_LOG says ...

  This setting logs all emails to a file. Useful for debugging any mail (or civimail) issues. Enabling this setting will not send any email, ensure this is commented out in production. The CIVICRM_MAIL_LOG is a debug option which disables MTA (mail transport agent) interaction. You must disable CIVICRM_MAIL_LOG before CiviCRM will talk to your MTA.


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


CiviMail - Sender appearing as "Info #NAME?"

The first place to check is here:
/civicrm/admin/domain?action=update&reset=1

FROM Name
FROM Email Address


When you import you can specify 'add to group' or 'add to new group' on the final step of the import wizard
It doesn't make sense to me why this should be a 'smart group' per your OP ah but you said 'smart folder'. shrug. hope my answer helps :-)


How do you change the default status message that shows when one submits a profile form?

This message is hardcoded in CRM/Profile/Form/Edit.php, so you would need to modify that.


Can I export custom data from a Contact, an Organization and an Activity in one export?

There is a very useful extension called "Extended Reports" that has an Activities report that allows you to pull information about the Source, Target and Assigned contacts, but if you are looking for information about an organization that is related to one of those contacts but is not directly linked to the activity (and you don't have access to a developer), then you'd probably be better off searching twice:

Search > Advanced Search
Search 1:

  Select "Display Results as" = Activities
  Enter desired search criteria for Activities
  Search and Export search results

Search 2:

  Without changing the criteria you used to search for the activities, click to expand the Edit Search Criteria bar
  Select "Display Results as" = Related Contacts
  Select the relevant relationship
  Export results

Use a vlookup function to match data accordingly (facilitated if you export contact IDs)

Hope this helps!
Tamar


Event registration: adding guest names later

We're in the process of building an extension to do exactly this, will share it when complete (it relies on some drupal specific functions at the moment but could probably be made CMS agnostic without too much effort).


CiviCRM Dedupe - How does it really work?

Whether it is technically called deduping or not, these kind of things do occur in real life :-).
You should be able to set up dedupe rules that catches them, and one organization I worked with used different 'levels' of deduping rules in their process. For example:

dedupe on something like social security number where it is pretty obvious that they are quite possibly real dedupes, and fix those
dedupe on email_address where there is a reasonable chance that they are dedupes, and fix those

dedupe on something like part of first_name and part of last_name, where chances are that in quite a few cases there are no real dedupes, and fix those if fixes are required.

Obviously the system can not tell you if I have a girl called Louise Tomlinson and another girl called Louise Tomlynson that they are the same or actually someone else. It can only flag that they look the same.


I want to do something like "if campaign=xxx" {include footer} in System Workflow Messages

So you need to find out if the campaign id is assigned to a variable available in the message template.

I can't test right now, but if you enable debugging and add a {debug} if you template you should get a long and fugly table with all the variables available from the message.

then it's the same process as for the contribution page:

{if $campaignID == 1}
{* whatever you need to do on this message *}
{/if}

campaignID to be replaced by the variable available to the template as identified in the debug message.


Check PayPal IPN is configured properly or not.


I commented out: 'ini_set('session.use_trans_sid', '0');' in joomla.php file which fixed the error and the Cron Job is now working. (as posted here) However. I'm not sure how this change might affect other functions in Joomla.


CiviRules action only after completed payment for new membership

I'm not quite sure what your workflow is, but I think you will need to use the "Membership is changed" trigger for when the payment is made and the conditions for status changes. If the status goes straight to "new" for the offline route you probably need to use the "Membership is added" trigger with appropriate conditions. You need to map out the logic of it all and it can be a bit complex.


Trigger event scheduled reminders on registration date or change of participant status

Well, it turns out that half of this has a very simple answer - so simple that probably every one else is already doing it!

To send an email when someone registers can be simply achieved by creating a scheduled reminder set to go sufficiently early enough before the event's start date that this time is in the past. This way everyone who registers will do so after the date the email is set to go, and so they will receive the email.

You need to be careful with this method - if you make such an email after people have started registering for the event, then everyone who has registered prior to the date the email is set to go will get the email.

To only send the email to some of the currently registered participants, now or in the future, you could put those participants into a group, and choose to 'limit' the scheduled reminder that group.

Regarding sending emails based on a change of participant status - Jitendra tells me that this would require significant additions to how scheduled reminders currently work.

So instead, we have written a rather skimpy extension to cobble through the job - feel free to connect if you'd like a copy.


Use contribution page to record memberships at event

The logic behind only allowing pending (pay later) contributions to be created from online contribution pages is that typically, those using the contribution pages are most likely doing so online, not real time, hence if the pay later option is selected, it means that payment will be sent as opposed to handed over to someone.

You say that your volunteer then needs to go into the contribution record and update the contribution status, so this means that they have access to the back office - why not instruct them to submit a new membership directly from the back office with a status of completed?

If you wish to associate these contributions with a contribution page, you can use the "Update Multiple Contributions" action (or batch update contributions via profile if you are on an earlier version of Civi) to associate the contributions with the relevant contribution page (you would need to create a contribution update profile and add the "Contribution Page ID" field in order to be able to do this - I like making a copy of the reserved "Contribution Batch Entry" profile as it contains the most commonly used fields for contributions, but regardless of how many fields you have in the profile, the batch update window will only show the first 10 fields, so you will need to be sure that the "Contribution Page ID" field is moved up to be one of the first 10 fields in the profile - you can read more about profiles here: https://docs.civicrm.org/user/en/4.6/contributions/manual-entry-of-contributions/#configuring-profiles-for-batch-entry-of-contribution-membership-and-pledge-payments)

Hope this helps!
Tamar


You could set up custom fields for each day's attendance and points. Then set up a profile using those fields

An admin user can then search for the participants, select all, Action > Batch update via profile.

If the students attend multiple similar events, the custom field for each day would be unique, eg Attendance 3/15. Otherwise you could use Attendance Day 1.

You should be able to advance search (or search builder) for the custom fields to see the results you want.

If this is something that is going to take a lot of admin time, you should consider a customized solution (extension).

Note: The question was sent to me directly and I asked him to post here on SE, in case others have a better solution and/or my option helps others.


That's it @Carl Miller. I went through each plugin individually.

The Slider Revolution Plugin was doing it.


Is there somewhere in the docs where it says to go to https://github.com/civicrm/civicrm-core/releases because that isn't the right place to download and all you get from there is core, not the wordpress parts, so if it says that it should get changed.

You need to download from https://civicrm.org/download and if you need an older release you can go to https://sourceforge.net/projects/civicrm/files/civicrm-stable/


Contribution Form fails; bounces to Home Page or timeout error

It seems as if the problem requires a proper technical analysis by someone who prvides professional CiviCRM support. You mentioned in another post, that no service provider responded to your enquiries - I am sorry for that, it is not usually that way.

Feel free to approach the CiviCRM partners - including us (SYSTOPIA).


Trigger a reminder if activity has not been recorded in x amount of time

This isn't a current capability, though it's one I've thought about writing on multiple occasions.  Unfortunately, my clients have never deemed it something worth the time it would take.

To handle this, I think it would be best to create a custom search that searched for the latest activity.  For other use cases, searching only for activities of a particular type is helpful, but it sounds like you don't need that.

Once you have a custom search, you can create a smart group based on it.  You can then run reports and/or generate scheduled reminders limited to this group.


Smart Group relative date criteria not saving

I recall we've experienced this for quite a number of fields in Advanced Search. Some of them are - Event Dates, Registration Dates and some date filters in Case section.

I did a patch to fix this for us but missed to update core for some reason. If the above fields fail for you, can you try applying this patch and see if it works for you?

Opened a JIRA for this issue with a PR https://github.com/civicrm/civicrm-core/pull/11486.


Way to automatically install extensions?

The cv cli tool provides the following commands for working with extensions:

ext:disable             Disable an extension
ext:download            Download and enable an extension
ext:enable              Enable an extension
ext:uninstall           Uninstall an extension and purge its data
ext:upgrade-db          Apply DB upgrades for any extensions
ext:list                List extensions (local and remote)

To see the full list of commands, type cv in your console.

Or if you prefer drush (Drupal only):

civicrm-ext-disable    Disable a CiviCRM extension.
 (ced)
civicrm-ext-install    Install a CiviCRM extension.
 (cei)
civicrm-ext-list       List of CiviCRM extensions enabled.
 (cel)
civicrm-ext-uninstall  Uninstall a CiviCRM extension.
 (ceui)


Multiple custom field sets in one contact tab (not the main one)?

Unfortunately there is no way to show all the custom fields in a single tab. However you can show all the custom fields on the Summary tab for that you will need to update each custom group to use 'Inline' for 'Display Style'. There is an extension released for 5.5 which developed by Coleman called 'CONTACT LAYOUT EDITOR' which allows you to rearrange the contact summary screen, Move the most important information to the top, Remove unnecessary stuff from the screen.

HTH

Pradeep


Using profile for people to submit activities

If you are using Drupal then you can use webform and webform civicrm module. This modules allows to create front end forms using Civi fields and also provide ability to perform actions  when form is submitted like creating activity, relationships, contribution etc.

For wordpress you can use caldera and civicrm caldera plugins which is similar to drupal webform.

Thanks

Pradeep


How to have different receipt messages on different donation pages

I tried @Eli Lisseck's suggestion and it worked.
You can have a different receipt message per page by using this logic
{if $contributionPageId == "yourPageId"}


Who is 'backup_Mk047aB'@'%' from the error 'The user specified as a definer ('backup_Mk047aB'@'%') does not exist'

OK - This is really heinous!!!
I've been trying all day - posted the query and after doing that read following set of instructions on how to do Alternate Moving the database using phpMyAdmin -> see the link and look at the heading Post Import Activities.
It reads

Very Important: If you have custom data profiles set up in your civiCRM, they may be present but for some unknown reason not be active. Go to your Administer >> Customize >> Custom Data and select "View and Edit Custom Fields". Select "Edit Field" for any one of the custom fields in the group and save it without making any changes. This will make civiCRM aware of the custom data fields and everything should be back on track.

I've got two set of custom fields, did what I'd been tolded = didn't work; did it again with the second set = and voila, everything works again.
There's two things on my mind:
1.) Can any of the more tenured members comment on what the problem is - it must be a bug, it can't be by design!?
2.) Who the heck is user:backup_Mk047aB???


Scheduled reminders for rolling renewals not sending after first renewal

one way to further test whether this is just an issue resulting from manually changing the End Date would be to set up a membership type that is only on a 10 day cycle (or less if urgent) so you can test it without needing to alter the end date. if that is helpful i can convert to an answer (may do anyway)


Does CiviCRM have camp or conference housing capabilities?

A housing component is not available in CiviCRM itself. You could possibly try to use CiviBooking (https://civicrm.org/extensions/civibooking), which deals with resource bookings. Depending on your exact functional requirement that might be sufficient. If you are just concerned about booking rooms it might well do for you.

If not, it will probably be a CiviCRM extension that you either have to develop yourself or find a CiviCRM specialist to develop it for you. This is very possible, we have done some specific stuff for a Dutch Housing Corporation in the past.


Cannot get to Upgrade Now screen - Upgrade from 4.4.3 to 4.5.1 - Wordpress

When I last did this, I went to  4.4.latest and then jumped to 4.6.15

I was able to bypass the 4.5 upgrade, the 4.6.x upgrade has all the db update scripts so you will not miss anything.


Can't change help_post text in Price Set using the civicrm_buildAmount hook

Just as a thought i think you may need to set $amount = $feeBlock right at the end as your modifying $amount


Setting the date feature is not working in events (Added Screenshots)

I have just installed Wordpress 4.7.27 - I am not getting the issue. So this is not a core issue

clearing the cache and try again

else try reinstalling the wordpress again that should fix

I guess this helps !!!!


How to create a custom action within context of the current record

civix is a cli tool that will help you a lot to write that extension. you will have to:

write a hook to get that extra token
add a page to let the user add the custom message (civix generate:page once you have generated the extension)

Instead of a token, it might be easier to generate the html and merge your html table, the custom message and a template and send it as a mail (or generate the pdf)

As for the custom link, it depends on which screen and how you want to add it, we might have already a hook to add an extra action, or you can use a hook when the form/page is generated to add the needed buttons/links.


There is a civi mobile app for Android and iOS. See https://civimobile.agiliway.com/ and https://civicrm.org/blog/skornien/civimobile-a-native-mobile-application-for-civicrm


How to see who the individual is who registers multiple people for a paid event

Results from CiviCRM demo (4.5 on Drupal)

Additional participants do not have a contribution source, so they can be identified on a Event Participants List Report (you will need to select the Contribution source in the report criteria)
Click view on the participant and "Registered By" will be shown.
Clicking the "Registered By" participant will take you the that person's registration showing all the people he/she registered.


All CiviCase Functionality Gone Despite Component Being Enabled

it sounds like a permission issue - please check they are set for the roles being used.


Bienvenue sur Stack Exchange, avez-vous vérifié l'extension GDPR qui permet à vos bases de données CiviCRM de suivre les directives GDPR?

Vous pouvez l'installer via la page CiviCRM Extension Manager ou via ce lien - https://civicrm.org/extensions/gdpr

Welcome to Stack Exchange, have you checked out the GDPR extension which enables your CiviCRM databases to follow GDPR guidelines?

You can install this through the CiviCRM Extension Manager page or through this link - https://civicrm.org/extensions/gdpr


The most reliable way to do this is to not import addresses that are known matches.

I regularly use Pentaho Kettle to create import files for me.  I'll separate addresses into their own CSV, then use Kettle to look up whether the address matches the contact's address in Civi.  I'll filter out those that do, leaving only remaining addresses.  However, Kettle has a high learning curve.

You could do the same with just LibreOffice Calc or Microsoft Excel - but it requires some Excel/Calc knowledge.

Export all CiviCRM addresses (with external identifier) to a CSV.
Open the CSV in Calc/Excel, and concatenate all the fields you want to compare into a new column (make this Column A).  Label this column "Unique lookup".
Create a concatenated "Unique lookup" column in the new address spreadsheet as well, using the same fields.
On the new address sheet, Use the VLOOKUP function in Excel, using exact matching.  Use the existing addresses as your lookup sheet.  Return a value in a new column for matching addresses.
Sort by the VLOOKUP field in your new addresses.  Delete any address that has a match in the existing addresses.


php putenv restrictions on server environment, how does this affect civicrm

It might if you use something other than US english, or whatever your host has set for the system-level.

See https://github.com/civicrm/civicrm-core/blob/master/CRM/Core/I18n.php

But it will probably still work anyway because CiviCRM sets other variables too that have higher priority. See
https://www.gnu.org/software/gettext/manual/html_node/Locale-Environment-Variables.html


Export Contacts after Include/Exclude Search: Selection of Fields not possible

Missing feature I would suspect. Can you step around it by just adding the contacts from your search result to (yet another) Group, then Export from the standard Search?


method for versioning configuration of civicrm?

There is the CiviConfigure extension but I'm not sure how current it is.

There is also still bin/csv/export.php which you can use for option values and tags and such.

You can also use the api to retrieve and set various entities, e.g. using the cv tool.

For CiviCase, one of the original arguments for using external files was for versioning and managing dev/production. You can still use xml files for its config.


Activity Duration in Hours extension NOT working for CiviCase

You could try changing this line in activityhours.php from:
if ($formName == 'CRM_Activity_Form_Activity' && !CRM_Utils_Request::retrieveValue('snippet', 'String')) {
to
if (($formName == 'CRM_Activity_Form_Activity' || $formName == 'CRM_Case_Form_Activity') && !CRM_Utils_Request::retrieveValue('snippet', 'String')) {
You'd probably also have to add some selectors in the .js file, e.g. whereever it says .crm-activity-form-block-duration also add .crm-case-activity-form-block-duration
You could post a feature request at https://lab.civicrm.org/extensions/activityhours/-/issues, but if you're able to also post a merge request with some tested code changes that would be best.


Joomla! log in error on http vs http://www

Consider picking either www.site.com or site.com as the canonical domain. Then:

Setup an httpd redirect (in Apache or nginx) from one domain to the other domain.
Ensure that the configuration files (e.g. both of Joomla's civicrm.settings.php files) and "Resource URLs" consistently point to the same domain.

(Alternatively, you could dig further into how the URL settings work, but usually, when you consider SEO and marketing consistency, it's higher-value to use the same domain consistently.)


Error message when testing memberships: "Expected one PaymentProcessor but found 0"

I had the same error. It appeared that we had removed a payment processor that we had used before, but don’t use any more (never do that. Just disable the payment processor).
When searching for memberships, also attached payments are displayed. Some of these payments het the removed payment processor. The was causing the error.
We restored the payment processor. In the database we changed the ID’s of the live and the test payment processor to the original ID’s. That solved the issue.


Got error on installing CiviCRM on Drupal 8

I don't know how it works on Windows, but had the same problem yesterday with Ubuntu. Fixed by forcing the directory structure to be writable by both the Apache user and the user I'm logged in as—by default, some of those directories were unwritable and the install failed halfway through.

Note: failing halfway through was an unrecoverable state, I had to revert to a recent backup and start over.


Thanks for the additional explanation!  One approach you could try is to use Search Builder (Search > Search Builder) and search for contacts whose primary street address is null but whose street address of your default location type (e.g., Main or Home) is not null.  If that doesn't yield the results you want, then you could search for your other location types as well (e.g., where primary street address is null and (Location Type A street address is not null or Location Type B street address is not null or Location Type C street address is not null)).


How can I get at the Email address of a Contact Reference? CiviMail and Tokens question!

Maybe the "Related Token Extension" does the trick? Even if not, it may be better to build up on an existing extension that pulls token from related contacts instead of building a new extension from the scratch.
Another example for such an extension ist the "Additional Token" extension, I am pretty sure I have seen others...


Data Mapping for Importing data from external database

During installation the CiviCRM are generated from xml files, and those will not always correspond 1-1 with the tables AFAIK.

You can find the xm definitions in the civicrm folder: civicrm/xml/schema.

Alternative is to use the API Explorer (Support/API Explorer in your CiviCRM menu) and do a getfields action for the entity? I would recommend using the API to do a migration anyway rather than moving into the tables directly.


You state that the Residential Communities Report is a custom report. And, indeed, I cannot find it in the list with standard reports. Custom reports can be installed in two ways.

In an extension. You could check if all your extensions are restored and enabled.
It is put in the Custom PHP directory, that can be configured using civicrm/admin/setting/path . Check this value. Maybe you restored on another file location and this value is incorrect.


CiviMail - Next/Send test disabled - Cannot send mass email

As weird as this sounds, if one forgets to enable the resubscribe message and set that for the mailing, it won't work. After setting this, all buttons 'lit up' and mail could be sent. Is it a bug? No. But a little more help within the interface could save a lot of time. A help message like "Did you forget to choose an Opt-out, Resubscribe, and Unsubscribe message? You need all three" They are marked as defaults but guess which one is disabled by default? Resubscribe. Arrgggghhh


Emails templates in the language of the receiver

I think there is no approach for this on CiviCRM beyond smarty approach. We workaround this by splitting receivers groups by their language preferences and sending their separate mails from templates builded in different languages.

This approach its fine for us. See this feature request on Mosaico project with the aim of facilitating work in this direction.

Also, maybe it would be better to find a language preference filter directly on the CiviMail UI without the need to have to separate the mailing groups by language previously.


Cron Job not working after Joomla 3.8.1 update

I have updated Joomla to 3.8.5 and updated CiviCRM to 4.7.31 (I'm using PHP version 5.6.34.) and the CRON job still didn't work.

I found and applied this patch and it worked. Thank you to Andrew Thompson for your work on this issue.


Can commercial organisations use CiviCRM

Yes it can be used by whoever wishes to make use of it. It is largely used by NGOs but there are many commercial entities using it for their own requirements.


How to create a Drupal View that calculates activity end time by duration

The template file is just to change how this one field is displayed.

Create a view of civicrm activities.
Add the Scheduled Activity Date field three times.
First to display the date.
Second to display the time in.
Third to convert the start date/time to Unix (I had previously added Unix as a time format in Drupal).

Then add Duration.

Add a Math Expression field to convert duration into Unix minutes.

Add another Math Expression field to add the Unix start time to the unix duration math expression.

Here is the final list of fields:

Save the view.

To create the template for this field we need to get the specific name for the template.
In the Advanced section of the View, go to Theme:Information.
Scroll though the listed fields until we get to the one we are interested in manipulating.

In our case it was the final field and the most specific template name available (templates are listed from least to most specific). Copy the last listed template.

Now create a new file and paste in the name you just copied. The name should end in tpl.php.

In the file put:

<?php
print date("g:i A", $output);
?>

Save this new template to sites/all/themes/current_theme/templates where current_theme is your theme name.

Flush cache and you should be good.

Here is the final result:

Notice that when you are editing the view, this field still displays in Unix time.


How to extract field from an array returned from an API3 call

In the example you have given the way you would is

$arrayvariable[2][0][value 1] etc etc.

You can see an example here for usage from CiviCRM API v3 https://docs.civicrm.org/dev/en/latest/api/options/#sequential


Payment Offline missing on contribution Page

Looks like there's a problem with your theme.

I am not seeing the total amount show when you select a sponsorship level. The images for the credit cards and Empowered by CiviCRM are also missing.


Using Profiles to allow member to view/edit own details only

Maybe this is what you're asking for:

Create a new profile. Call it something friendly for the user like "My Contact Details". Tick it as a "Standalone Form or Directory"
Fill it with the fields you want the user to edit.

Pick the page you want them to be accessible and edit it. Use the CiviCRM button to pick the profile or enter in the shortcode yourself.

It should similar to,

[civicrm component="profile" gid="123" mode="edit" hijack="0"]

When a user is logged in, this will contain the fields you selected to be edited by the user.

Edit: while the anonymous visitor will not see the profile fields until he/she is logged in,  I guess it'd be good practice to make the wp page private to avoid any slips and keep the design fluid  - or use a plugin to limit the page to logged in users.


setting path and url for [civicrm.files]

You can refer the paths by clicking on the question mark at top of page on Settings - Resource URLs which says

  These settings define the URLs used to access CiviCRM resources (CSS
  files, Javascript files, images, etc.).

  You may configure these settings using absolute URLs or URL variables.

as shown in the image below.


How do I make the menubar a different color on my dev/staging sites

As of CiviCRM v5.12.1 the menubar color is a configurable setting.

On your main site you can change the color via the UI by visiting Administer -> Customize Data & Screens -> Display Preferences.

Since this preference is stored in a system setting, you can override it on your various dev/staging sites by adding a line like this to civicrm.settings.php:

$civicrm_setting['CiviCRM Preferences']['menubar_color'] = '#800000';


There is an extension called Move Contribution that will allow you to move the contribution, however, it does not appear to have been updated since Aug. 2016 and last compatible version was 4.7, so there is a chance that the extension will not work with whatever version of Civi you are on.

In the absence of the above, and assuming that the correct credit card was charged but just recorded on the wrong contact, the correct way to manage this is to:

Navigate to the original contribution and click the Edit hyperlink
Change the Contribution Status to "Cancelled" (financial transactions should never be deleted, especially where electronic ones are concerned)
Since transaction IDs must be unique, make note of the transaction ID, then add a "-C" in the original contribution's transaction ID field
(OPTIONAL): If your version tracks the information, make note of the card type and last 4 digits of the card
Click the Save button
Navigate to the correct contact record's contribution tab and click Add Cash/Check... Contribution
Record the contribution details, selecting the payment method of credit card
Enter the original transaction ID you noted in item 3 above and any additional card details as desired
Click the Save button

If the incorrect credit card was charged, then you will need to issue a refund directly through the payment processor, change the original contribution status to "Refunded" in CiviCRM, and then process the correct credit card on the correct contact record accordingly.

Hope this helps!

Tamar


Display related organization information using a profile

Since you are using Drupal would recommend you to build view page by using Views module where you can get organization information of an individual using relationship. This will involve no coding.

If you still want to use Civi Profile than you can over-ride id by using hooks.

Cheers

Pradeep


This question is conceptually similar to this one: https://civicrm.stackexchange.com/a/4880/12

I think a hook is your best bet.


Membership reminders sending each time scheduled job runs after 4.6.2 upgrade

There has been a recent JIRA ticket 18326

Scheduled reminder set to run one week before membership end date
Reminder runs once, then membership end date is changed
When the next date comes around it correctly sends a reminder but it incorrectly sends a reminder every cron until the next date has ended


When creating a custom fieldset, you need to ascribe to "ANY" when your contact type has sub-types. Instead, if ascribed to a particular sub-type (Organization - enterprise, for example), the custom field doesn't show up in dedupe rules :-(
So I found my solution but I would like to have the ability to use custom fields related to a sub-type and not all of them.


Permissions for new files under tempates_c/en_US created using 751 permission which does not allow write for group

I always # sudo -u apache drush [command] when running drush anyway. That way if drush creates new files or directories they JustWork(tm) in drupal.


How can I display detailed Authorize.net error code info from civicrm_system_log in the Civi interface?

I might be on deep water here, but I would propose this workflow:

You create a new CiviRules trigger to trigger on System_log created. That would probably be as simple(?!) as to copy another trigger like Contact created or Contribution created, and replace the values with details on system_log.
You have a condition on field value comparison for a value in system_log that is unique for failed Authorize.net-payments.
Action is to schedule an activity to the appropriate staff member, and include in the activity detail the URL for the API Explorer site, filled in with tokens to show the value for the corresponding system_log (the same way as checksum is used)


Embedding CiviCRM Event form in an Iframe

Drupal core is now protected against clickjacking by default:
https://www.drupal.org/node/2735873

You can install Security Kit module -> and then add specific allow-from domains.


You can use soft credit section of the contribution form...
Create a contribution for donor but under soft credit section include student contact
Ref: https://docs.civicrm.org/user/en/latest/contributions/soft-credits/
If you need more than 10 soft credit record for payment than implement preprocess hook via civicrm extension or wp plugin to add the number of count, something like
function modulename_civicrm_preProcess($formName, &$form) {
  if ($formName == 'CRM_Contribute_Form_Contribution') {
    $form->setVar('_softCreditItemCount', 100);
  }

}

or install the extension in civicrm and add below line in end of civicrm.settings.php file
$civicrm_setting['CiviCRM Preferences']['contributionsoftcredit_limit'] = 100;


How can I customise the presentation of custom field in events?

In newer versions of CiviCRM (around 4.7.20 and higher) you can mark a custom field set as not public.  This will hide the custom field set from your event page.  Then you could use a buildForm hook to include a template of your choice; see the CiviCRM dev guide Resources Reference for details.


Webform-civicrm Address fields not being saved in CiviCRM

Are the affected fields selected in the "Fields to lock' dropdown in the "CONTACT FIELD HANDLING" section of the "Existing Contact" field of the webform?

IF so, then see this issue. At the bottom is a link to a much-needed pull request which has been available since Dec 2016. I don't know why it was never merged. With each update of webform_civicrm, I apply the third commit in that PR. Not sure of the importance of the first two commits shown there.


Should a second receipt be sent when payment method is ACH with iATS?

What do you have for:
Enable email receipting for each recurring contribution.

on:
/civicrm/admin/contribute/iatssettings

is it checked?


Drupal Views - Show "Contribution" + Drupal User fields

Nevermind, figured it out - had to create a Relationship to CiviCRM Contacts: Drupal ID. Issue resolved.


Different Membership fee for each member

You can use price set to create options for the membership type and include it on online membership page(Contribution Page).

The contact dashboard does display all membership and payment information for logged in user.

HTH

Pradeep


This might be a nice feature to add, but it is not something you can configure without rewriting code.

It would actually take more than just setting the editor: notes display plain text, so if you were to give the box a WYSIWYG editor, you'd see a bunch of HTML tags in the content.  Building the feature would require adding the editor, modifying the display, and making sure that old notes display properly after the upgrade.

However, if you want to work around this, you can build your own equivalent of notes:

Create a new set of custom fields, called "Comments" or "Improved Notes" or whatever.  Have it used for Contacts, allow multiple records, and have the Tab display style.
Add an Alphanumeric / Text field called "Subject".  Make it searchable.
Add a Note / Rich Text Editor field called "Comment".  Make it required and searchable.
Add a Date field called "Date".  Make it required and searchable.
Add a Contact Reference field called "Author".  Make it required and searchable.
Add a File field called "Attachment".  Add additional ones if needed.
Now, go to Administer - Customize Data and Screens - Display Preferences, and uncheck Notes in the Viewing Contact and Contact Search sections.

You should now have a tab for your new custom notes, and people won't see the standard notes (so you don't have to worry about people setting notes in the wrong place).  A couple of caveats:

You'll need to transfer any notes from the standard system.
The "privacy" feature isn't available--either you can view all notes or none.
The date and author will need to be set manually, though on the other hand, you now have the ability to backdate notes or write them on behalf of others.


Where do I change the string "Subscription to CiviCRM..." for Stripe payment processor

The Answer - turn on Stripe receipts, and turn on civiCRM receipts. The item itself cannot be changed (at least that was the answer I found when I explored a long time ago).


Where are CiviCRM's date preferences actually used?

There are actually (at least) two places where you can change the formats. One is where you described, the other one (that affects most of the displayed date formats e.g. in the contact tab) is available at >>Administer >>Localization >>Date formats.

Below is a screenshot of settings we usually use for German language environments.


Convert to uppercase all letters in a specific field

I don't think that is possible out of the box, but it would be an easy extension to write.  You could use hook_civicrm_pre, look for edit/create operations on Addresses and change the relevant fields to uppercase.


Display Contact Addressee as {prefix} {Initial} {last_name}

You can alter the 'Individual Display Name Format' in display preference to include {initial} token through custom extension using tokens and tokenvalues hook.
If you don't want to store this in the database and just alter the display on screen then you can use contact_get_displayname hook to alter the display name.
Pradeep


This is actually the correct interface.  I believe you're trying to compare the "List Scheduled Jobs" interface with the "Edit a single Scheduled Job" interface.  If you press "Edit" next to any scheduled job on your "main" site, it should look more or less identical to what you've posted above.

Crucially - when configuring Scheduled Jobs for multi-site, most jobs do NOT need to be run twice.  E.g. "Update Membership Status" works once across all contacts.  You DO need to replicate the "Send Mailings" scheduled job on each multi-site instance; you can copy the settings from the main site's "Send Mailings" interface.  I think you may need to change the name to something unique.

In my experience, the only site-specific scheduled jobs I create are "Send Mailings" and "Process Incoming Mail" - the latter because newly-created contacts won't be created as belonging to the correct "master group" for the domain otherwise.  IIRC even bounce processing is just done once for everyone.


How to make a report with each Financial Type as a column?

I am not sure you would get the exact requirement you looking for but you can use contribution pivot reports to group the records based on financial type via

Extended report

or

Report plus


Zephyr,

The report you looking for is not available in CiviCRM. You will need to program to add such report through an extension.

Thanks

Pradeep


Newsletter Signup CiviCRM Thinks Anonymous is Admin

Problem solved. What I had done was, in the "Advanced Settings" section of the profile's general settings, I had selected, "Add contact to Group" and then selected the mailing-list enabled Group I wanted to use on the form. This method totally circumvents the opt-in email.

What I have done since is leave that advanced section alone. Instead, I've added a field to the profile for "Group(s)." Now the opt-in email is sent.


This had to do with the Google Tag Manager module for Drupal. Updating to the latest version resolved this issue.


You can use preProcess or BuildForm hook on formname CustomDataType and unset the custom group or field based on user role or id

You can use PageRun hook and unset the variable in smarty template based on condition and it will not display on view page

since the custom fields are build using ajax, you can also use ajaxSuccess jq event to remove the custom field using Relationship.extra.tpl


Troubleshooting some Drupal and CiviCRM accounts becoming mis-linked

The second part (tons of contacts with just the email address) is "normal", it's when civi realises that it doesn't have a contact mapping the drupal user and tries to create is with the limited info it has.

As for the first one, it isn't something I've experienced. Do you have a standard drupal for the accounts or are you using extra modules related to the account managements (eg. LDAP integration)?


Display different profile (in Drupal) based on CiviGroup (or tag)

Mostly when working with complex form requirements in Drupal, folk are opting to use webform_civicrm as the flexibility it provides opens up many new options.

For example in your case you could use Webform Conditionals to determine which fields show based on the choice of Membership Type (or type an existing user has if they are logged in or using a checksum). HTH


Can Attendees Modify their Registration?

This is not out-of-the box functionality. Have a look at these threads:

Recommended process for credit card additions/'edits' to event registrations?

Can I allow users to update their registration?


Review the job log on your scheduled tasks page in the admin menu - the job results there for this task may show an error in them
Review the PHP error log or output of your cron task which failed
Review the CiviCRM logfile in files/civicrm/ConfigAndLog/CiviCRM.*.log

You can update your question here with additional details if the solution isn't clear.


CiviCase My Cases Widget not working on main Civi dashboard

As for last comment - this appears to be a simple caching error. Now working.


Restricting users in the same group to view/edit ONLY their own contact details

Unless you have other reasons for doing so, you do not need to give a user access to the back of CiviCRM to edit their own contact details.

In Drupal you can do this by setting any profile with the relevant fields to be Used For "View/Edit Drupal User Account".  This profile will then appear on the Drupal account information page when that user is logged in and they can edit their own details.

There is similar functionality for Joomla! and Wordpress, but I can see that the User and Admin guide is somewhat Drupal-centric in this regard and does not specify the equivalent Used For option for those. It looks like it may be "User account" and that the profile labelled "Name and Address" always has that option selected and is the only profile that can have that option selected in both Joomla! and WordPress.

Alternatively it could be that in Joomla! and WordPress any Contact profile can be exposed through the front-facing web pages to allow logged-in users to edit their own information if you follow the instructions in the Integrating with Joomla! or Integrating with WordPress sections of our User and Administrator Guide.

(I, too, am somewhat Drupal-centric.)


How do I get Views working with CiviCRM and Backdrop?

Getting Views working with Backdrop is essentially the same as getting Views working with Drupal, although there can be one extra step. So first, follow these instructions to get CiviCRM's tables into Views.

Regarding the possible second step, Backdrop by default uses a simplified structure to specify database credentials (more). This will not cause a problem if you are using the same database for CiviCRM and Backdrop and you do not have a second step.

If, however, you have CiviCRM in a separate database, you need to adjust your Backdrop settings.php in one additional way, changing the default/simplified database string...

$database = 'mysql://user:pass@localhost/database_name';

...to allow multiple databases:

$databases['default']['default'] = array(
  'driver' => 'mysql',
  'database' => 'database_name',
  'username' => 'user',
  'password' => 'pass',
  'host' => 'localhost',
);

@colemanw's note from the Drupal answer applies here, too: "if your [Backdrop] sql user and CiviCRM sql user are different then you need to grant SELECT privileges to the [Backdrop] one for the CiviCRM db."


CiviMember price sets are depending on CiviContribute?

welcome to CiviCRM StackExchange!

Price sets are meant to create/interact with contributions which require CiviContribute to be enabled. Hence it makes sense that they only work if you have CiviContribute enbaled.

However it would make sense to not show any price set options in the UI as long as CiviContribute is enabled. You could create an issue for that on https://lab.civicrm.org/dev/core


In civivolunteer, is it possible to allow multiple users for 1 email?

The short answer: Yes, it's possible.

You're asking about the "Unsupervised Dedupe Rule" - that is, the test to determine whether a contact who fills out a public-facing form is a duplicate of someone already in the database.

Documentation can be found here, and I definitely suggest reading it before making changes.  However, the general idea is to make up a different dedupe rule (e.g. "same email AND same first name" might be better in your case).  Then go to Contacts menu » Find and Merge Duplicate Contacts, create the new rule, and make it the new "Individual Unsupervised" dedupe rule.


Most people who have this issue are on CiviCRM 5.3-5.6, and is caused by the "missing logging tables" check assuming that temp tables should have a logging table.  There is a fix available on Github, and it's part of CiviCRM 5.7+.


Is CiviCRM available with German admin interface?

Yes there is, for more information about downloading translations please see: https://civicrm.org/download-translations

The installation instructions for localized versions vary depending on the CMS you will be using. But full information can be found here: https://wiki.civicrm.org/confluence/display/CRMDOC/Installation+and+Upgrades


How to creat a report of recurring donors

You can use Recurring Contributions(CiviCRM >> Reports >> Contribution Reports) report to see all the recurring contribution setup in the system.

You can also use Extended report extension where it gives more reports for recurring.


How to use advanced search to search contacts created by logged in user

I don't think this is currently possible with the existing functionality. But you can attain this by custom fields with little customization using extension. What needs to be done is -

Create a contact custom set from Administer -> Customise Data & Screens -> Custom Fields.
Add a single field. Eg. Created By. Make it searchable (Select Is this Field Searchable? to Yes     ).
Create a simple extension using civix.
Write post hook and save a value for this field in DB
Go to Advance Search and search it by using this field.


1 hour discrepancy between created_date field in MySQL and CiviCRM report output

It's a timezone issue. Your database and drupal timezone must be same. Sometime it's happen due to Daylight saving time.


How to embed or attach a list of contacts in an email?

Sounds like you're looking for CiviCRM Views Token.

This is a Drupal module which allows you to place a token in your CiviMail that will be replaced with the output of a Drupal View.

To use it:

Install and enable CiviCRM Views Token
Build your view of contacts in Drupal - keep the output simple, eg a table or an unformatted list.
In your CiviMail edit screen, look for "Configured Drupal View" in the token selector.
Place the desired view in your email, eg {civicrm_views_tokens.viewcontactlist}


Paypal Express not working with Webforms CIVICRM Intergration

This has been a known bug/issue in webform_civicrm ( see e.g. Webform CiviCRM Paypal Button not Working ) -> try upgrading to the latest webform_civicrm (dev -> clone or download master: https://github.com/colemanw/webform_civicrm.git ).

I also strongly encourage you to upgrade your CiviCRM - there have not been any security releases for 4.5.x for quite some time now.


https://docs.civicrm.org/user/en/latest/organising-your-data/profiles/ has all the details you should need:

  Visibility: If the Profile is being used for a searchable directory, set the Visibility of any fields you want to include on the search form to Public Pages or Public Pages and Listings. For fields that will be used on sign-up forms, set Visibility to User and User Admin only. This ensures that other visitors to the form can't view any data from the database. To use fields for Search Views, you must set Visibility to Public Pages or Public Pages and Listings. Choosing either of the Public Page options pops up two additional settings:


After upgrade to 4.7.31 send mail - recipients - "no recepients"

I resolved this by going to Adminstrater > System Settings > Clean up cache and update paths. Click the Clean up cache button.


CiviCRM Webform Integration - User registered for event before they've made payment

Registered for the Event but Contribution Pending Incomplete is the correct behavior in the case of an offsite payment processor.

It’s essentially a pay later (though the pay later time is shorter than mailing in a chq).

PS - on the second part of yorur question - if you use an onsite payment processor then you will have Payment fields before the Submit button


Is there a way to add a custom field to the Inbound SMS activity type?

How about adding another activity status? Like "Unread" or "Read".

Depending on how skilled you are, maybe it is possible to have inbound sms set to "Unread" as default. Then your staff could change it to "completed" when they have read it.

If not, you could add the activity status "Read" and then change the status from "Completed" to "Read".

In both ways, you could have a report showing only the default activity status, and after they have changed the status, it diseappers from the report.


Defaults for localisation you can set :

Go to,

CiviCRM->Administer->Localization->Language,Currency,Locations

You can set,

a) Preferred languages Options
b) Date formats
c) Addresses settings under   Administer menu.


You can use the search builder to search any fields that are empty or null:

civicrm/contact/search/builder?reset=1 (should be in your Search menu item)

We also use a report for tracking a very similar thing. We use the Contact Report (Summary) Template (it might say Constituent instead of Contact)

As long as you've built the field to be searchable, it will be included in your report (this is a check box at the bottom of the field)

You can then select the fields your interested in seeing and filter the report to show those where the field "Expiry Date" = This Month

We trigger this report to be emailed on the first of the month so you can immediately see who requires renewing.

As you're using a relative date, it will always be current for the month you're in.

You can also build a smart group this way, and always have a current list of those who will expire this month which you can use in searches / mailings as you need.

Hope that helps.


Can a Scheduled Job using mail_report send Reports as HTML in the e-mail body, rather than as a PDF attached to the e-mail?

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

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

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


How to communicate with the users of an extension?

The short answer is no.

Per this blog post, only the core team can control in-app messages.  I'd say you'd have to make your appeal directly to them.  I'm sure they'd be hesitant (with good reason), but you may be able to make your case.

However, that wouldn't do any good in your case.  I've just skimmed CRM/Core/CommunityMessages.php.  The pick method allows message display to be controlled by the permission of the logged-in user and by the components that are enabled (e.g. CiviMail) - but not by extension.


Can I create my own CRM company reselling our version of CivicCRM?

I think the answer is probably no, but it depends on what the question was.
My reading of section 5 and 6 in the licence as linked by @demerit https://www.gnu.org/licenses/agpl-3.0.en.html
means that you can't "license" the code itself, even if you modify it, except by using the Affero license, i.e. you can't charge money for it.
What you can do and what others do is to earn money by providing additional value over and above the code base in some way, typically some version of hosting and/or support.
Conclusion: earning money by selling/renting the code is not allowed, even if you modify it.


How to programmatically open the option modal and listen to changes?

It turned out to be possible:

CRM.loadForm('/some/url')
  .on('crmFormSuccess', function (event, data) {
    // do smth
});

Ref: https://docs.civicrm.org/dev/en/latest/framework/ajax/


Make sure you are running the update database action, but it sounds like you might be installing a bad package or timing out. Could you share a screenshot? I might not be able to help much tonight, but I'd be happy to help you later this week if you don't have it resolved by then.


Advance search result does not match with the member report

I do see a difference in the search criteria. Not sure if it has an impact on the results.

In the report it looks you also limit on "Group : Rasta Winter Memberships".
Would that cause the difference in outcome?


CKEditor can only edit user driven message templates

Jaap's comment is correct.  It's unfortunately not possible to use a WYSIWYG editor on system templates because they're not (just) HTML, but contain Smarty code as well.  Not only would Smarty break CKEditor, but CKEditor would break the Smarty code.

This unfortunately makes editing system templates difficult to do.  However, one trick that makes it easier is to copy the text into software that understands Smarty templates.  I use Netbeans IDE for this.  While this may be overkill for most uses, Netbeans can recognize both HTML and Smarty tags and the tag that closes a section.  So it's easy to use code folding to identify and hide the sections that don't concern you.

I work in Netbeans, then paste the text back into CiviCRM and press "Save".  It's relatively quick to iterate this way.


Lots of folks are responding in the comments, but I'll try to give a non-technical answer.
Short Answer: You need to upgrade CiviCRM.
Longer Answer: CiviCRM is written in a programming language called PHP.  Over time, new versions of PHP come out.  CiviCRM must be updated in response.
It sounds like your webhost upgraded your PHP version to one that didn't exist when your version of CiviCRM was released.  So any issues introduced by the newer PHP are affecting your experience.  Newer versions of CiviCRM support newer versions of PHP, so you must upgrade CiviCRM.  If you can control your PHP version yourself (some webhosts allow this, others don't) you can try downgrading PHP as a temporary measure, but that's not particularly secure or sustainable.


How can I setup only contribution page in dual language

This is doable. First. Is your website multilingual, have you got it for two languages? What CMS platform are you on?


What is a jailed shell and should I use one for my hosted site?

If you are using cPanel on a shared platform then you pretty much have no choice i.e. for you to access the server via SSH it will be a jailed shell account you'll be presented with.
This is because you won't actually have access to the OS libraries etc but just the section of the server where your hosting resides so you can run some basic commands etc.
If you were hosting your own server and installed a panel access platform like Plesk or cPanel then you would also have non jailed SSH access as you'd have access to all of the server and its installed components.


Can you share an example of a complex .CSV file for import?

Probably below the level of your question, but maybe it'll point you in a good direction?

A sample CSV can be exported from existing CiviCRM data.

This can be done from the CiviCRM demo sites, or if there's a need to  frame up columns with custom data, via a CRM with existing data. Export the resulting contacts via CiviCRM Search => Export Contacts action.

The advantage of this approach is that the exported column names automatically map back to what CiviCRM expects[1]. It should apply to both simple and more complex import formats.

CSV sample exported from http://dmaster.demo.civicrm.org/ today -

"Contact ID","Contact Type","Contact Subtype","Do Not Email","Do Not Phone","Do Not Mail","Do Not Sms","Do Not Trade","No Bulk Emails (User Opt Out)","Legal Identifier","External Identifier","Sort Name","Display Name","Nickname","Legal Name","Image Url","Preferred Communication Method","Preferred Language","Preferred Mail Format","Contact Hash","Contact Source","First Name","Middle Name","Last Name","Individual Prefix","Individual Suffix","Formal Title","Communication Style","Job Title","Gender","Birth Date","Deceased","Deceased Date","Household Name","Organization Name","Sic Code","Unique ID (OpenID)","Current Employer ID","Contact is in Trash","Created Date","Modified Date","Addressee","Email Greeting","Postal Greeting","Current Employer","Location Type","Street Address","Street Number","Street Number Suffix","Street Name","Street Unit","Supplemental Address 1","Supplemental Address 2","City","Postal Code Suffix","Postal Code","Latitude","Longitude","Address Name","Master Address Belongs To","County","State","Country","Phone","Phone Extension","Email","On Hold","Use for Bulk Mail","Signature Text","Signature Html","IM Provider","IM Screen Name","OpenID","World Region","Website","Group(s)","Tag(s)","Note(s)","Phone Type","IM Service Provider"
"2","Individual",,,,,,,,,,"Samuels, Jed","Mr. Jed Samuels",,,,"SMS",,"Both","3988235934","Sample Data","Jed",,"Samuels","Mr.",,,,,,,,,,,,,"52",,"2016-08-13 11:07:38","2016-08-13 11:07:42","Mr. Jed Samuels","Dear Jed","Dear Jed","Urban Empowerment Fund","Work","190Y Cadell Ave SE","190","Y","Cadell",,"Attn: Development",,"Bowmanstown",,"18030","40.80116","-75.66158",,"Urban Empowerment Fund","Alameda","PA","United States","265-5630",,"jeds@notmail.co.pl",,,,,,,,"America South, Central, North and Caribbean",,"Newsletter Subscribers",,,"Phone",
"3","Individual",,,,,,,,,,"smith.o.carylon98@spamalot.co.uk","smith.o.carylon98@spamalot.co.uk",,,,"SMS",,"Both","990362788","Sample Data",,,,,,,,,,,,,,,,,,,"2016-08-13 11:07:38","2016-08-13 11:07:39","smith.o.carylon98@spamalot.co.uk","Dear smith.o.carylon98@spamalot.co.uk","Dear smith.o.carylon98@spamalot.co.uk",,,,,,,,,,,,,,,,,,,,,,"smith.o.carylon98@spamalot.co.uk",,,,,,,,,,"Newsletter Subscribers",,,,
"4","Individual",,,"1",,,,,,,"Grant, Lawerence","Mr. Lawerence Grant II",,,,,,"Both","2064444768","Sample Data","Lawerence",,"Grant","Mr.","II",,,,"Male",,,,,,,,,,"2016-08-13 11:07:38","2016-08-13 11:07:43","Mr. Lawerence Grant II","Dear Lawerence","Dear Lawerence",,"Home","176T Dowlen Blvd S","176","T","Dowlen",,,,"Boston",,"02266","42.338947","-70.919635",,,"Alameda","MA","United States",,,,,,,,,,,"America South, Central, North and Caribbean",,,"Volunteer",,,
"5","Individual",,,,,,,,,,"Terrell, Russell","Russell Terrell Jr.",,,,"Postal Mail",,"Both","127505299","Sample Data","Russell",,"Terrell",,"Jr.",,,,"Male","1996-05-04",,,,,,,,,"2016-08-13 11:07:38","2016-08-13 11:07:42","Russell Terrell Jr.","Dear Russell","Dear Russell",,"Home","235X States Path NE","235","X","States",,,,"Valrico",,"33595","27.871964","-82.438841",,"Terrell family","Alameda","FL","United States",,,,,,,,,,,"America South, Central, North and Caribbean",,,"Volunteer",,,
"6","Individual",,,"1",,,,,,,"Adams, Scarlet","Scarlet Adams",,,,"Phone",,"Both","2620107037","Sample Data","Scarlet","W","Adams",,,,,,"Female","1957-11-05",,,,,,,,,"2016-08-13 11:07:38","2016-08-13 11:07:40","Scarlet Adams","Dear Scarlet","Dear Scarlet",,,,,,,,,,,,,,,,,,,,"(449) 428-2300",,"adamss68@lol.biz",,,,,,,,,,"Newsletter Subscribers","Major Donor,Volunteer",,"Phone",

[1] You do have to deselect some of the Addressee fields to get the exported CSV to import straight back in: CRM-19360: Exported CSV does not import back in without adjusting import columns.


Go to edit your custom group and enable multiple records. Users then will be able to add the field more than once.

Depending on your use case, the "Tab with table" may look better than the "Tab" display. Tab with table is easier to view and edit in most cases; try them and see which you prefer.


recent CRON error on WP - after upgrade to 5.6.x

Based on https://docs.civicrm.org/sysadmin/en/latest/requirements/#php-version php 5.4 is not supported in the latest 5.x version.  As 5.4 is a very old vrsion of php, any chance you or your host can get you to php 7.1?


Problems making resource URLs portable on CiviCRM

Starting in 4.7.26 in order to handle the multiple ways that WordPress can be installed on various hosts, we are determining the correct path and setting both the path to the site (front end) and the path to the backend (wp-admin) in civicrm.settings.php.

The resource url status warning will need to be updated to handle this.


New error when editing membership: Argument 1 passed to CRM_Financial_BAO_Order::setOverrideTotalAmount() must be of the type float, string given

Just for the record - the issue is solved in CiviCRM version 5.36.1


Can I automatically replace the "civicrm" from all URLs with another string? (drupal7 + civicrm 4.7.4)

There is no easy way to do this.

You might be able to create a drupal module that is able to get the myOrg urls and then renders the CiviCRM version of it.

But then you still have the problem that the internal links that CiviCRM creates will be in the /civicrm/* form.

To solve that you could first get the CiviCRM page as a string in the drupal module, then do a search/replace and output it.

Very hackish, probably not possible to get it 100% right. I would advise not to.


Why do some of my participants get sent a receipt when I update event details via a profile form

When you update the status of multiple participants using a profile, any participant whose status is changed from a non-counted status to a counted status or vice versa will be sent an email.

Go to Administer > CiviEvent > Particpant Statuses to check which statuses are counted and which aren't. (In this case "counted" means "included in count of total registrations for the event".)


Webform Conditional - 'set to' membership type

Enter the Membership Type ID and that will display the correct value in the webform.


Managing Large Conference Sub-Programs in CiviCRM

CiviEvent works marvellously for conferences. As Erik suggests use different roles for your delegates, speakers etc. From Civi help: "Participant Role:
The Role you select here is automatically assigned to people when they register online for this event (usually the default 'Attendee' role). You can also allow people to choose a Role by creating a Profile with the Participant Role field. Then include that Profile when you configure the Online Registration page for this event.


Extension: UK Phone Number Validator - permissions

I think the remark is for the installation of extensions. You are accessing the admin screen WITHIN the extension. You then rely solely on what the developer has checked within the extension, and apparently there is no permission checking in the extension. So you would have to add that if that is required?


At signup, auto assign organization:contact relationship based on email domain being the same

Thanks everyone!  I solved it totally with CiviRules extension.  I just used a combination of the built-in API explorer & the extension's documentation to figure out how to create my own Condition & Action.

The condition checks if that domain exists for an Organization.  I set it to work ONLY if it finds 1 (just to make it work simply for now) and the contact is an Individual (no Org to Org relationships).  If true, the Action then creates the relationship.

To make this work, when we set up an Org..  we make a dummy email their primary/main email and put it on hold so no communications go out to it.. like this: dummy@domain.com

I'll share the big stuff.  I'm not a coder, so if someone finds a better way to do this.. let me know.

https://docs.civicrm.org/civirules/en/latest/

    Condition:

  public function isConditionValid(CRM_Civirules_TriggerData_TriggerData $triggerData) {
    /** $this->logCondition('my con log message', $triggerData, \PSR\Log\LogLevel::INFO); */
    $contactId = $triggerData->getContactId();
    $contactTypeParams = array('return' => "contact_type",'id' => $contactId);
    $contactType = civicrm_api3('Contact', 'Getvalue', $contactTypeParams);
    $contactEmailParams = array('return' => "email",'id' => $contactId);
    $contactEmail = civicrm_api3('Contact', 'getvalue', $contactEmailParams);
    $contactEmailDomain = substr(strrchr($contactEmail, "@"), 1);
    $orgEmailDomainCountParams = array('email' => ['LIKE' => "%" . $contactEmailDomain],'contact_type' => "Organization");
    $orgEmailDomainCount = civicrm_api3('Contact', 'getcount', $orgEmailDomainCountParams);
    if ($orgEmailDomainCount = 1 && $contactType = "Individual"){
        return TRUE;
    } else {
    return FALSE;
    }

    Action:

  public function processAction(CRM_Civirules_TriggerData_TriggerData $triggerData) {
     /** $this->logAction('my act log message', $triggerData, \PSR\Log\LogLevel::INFO);  */
    $contactId = $triggerData->getContactId();
    $contactEmailParams = array('return' => "email",'id' => $contactId);
    $contactEmail = civicrm_api3('Contact', 'getvalue', $contactEmailParams);
    $contactEmailDomain = explode('@', $contactEmail)[1];
    $orgContactIdParams = array('return' => "id",'email' => ['LIKE' => "%" . $contactEmailDomain],'contact_type' => "Organization");
    $orgContactId = civicrm_api3('Contact', 'getvalue', $orgContactIdParams);
    civicrm_api3('Relationship', 'create', ['contact_id_a' => $contactId,'contact_id_b' => $orgContactId,'relationship_type_id' => 5,'is_active' => 1,'is_permission_a_b' => 2,]);
    civicrm_api3('Contact', 'create', ['id' => $contactId,'employer_id' => $orgContactId,]);
  }


How can I prevent deduping from killing my server?

I think Parvez's work on deduplication performance is a big piece of this puzzle: http://vedaconsulting.co.uk/civicrm-dedupe-workflow-ui (see step 1).  Some of the answers here are also relevant to improving performance.

However, neither of these solves what's probably your most common use case - someone running a massive deduplication script.  One solution might be to feed deduplication into a queueing system.  Another might be to permission the dedupe screen - or even permission specific dedupe jobs, so that someone can run Parvez's smart dedupe but not a standard dedupe rule.


Is it possible to add just a time as a custom data field for an event?

You could create custom text fields, then add these 3 lines of javascript somewhere to your site where it will get loaded on every CiviCRM page:

CRM.$(document).on('crmLoad', function(e) {
  CRM.$('input[data-crm-custom="Event_Time:Start_Time"], input[data-crm-custom="Event_Time:Start_Time"]', e.target).timeEntry();
});

This assumes you've named the custom group "Event Time" and the fields "Start Time" and "End Time". Adjust the code as needed to match the actual names of your fields (while creating/editing an event, right-click on a field and "Inspect" it - in your console look for the data-crm-custom attribute).

The .timeEntry() widget will store the data in human readable format (e.g. 12:53PM). If you prefer it to be stored in a searchable format (so you can sort your events by time, etc) use .crmDatepicker({date: false}) instead of .timeEntry().

Also be careful you don't load this snippet on every page of your website as it will cause an error on non-civi pages due to the lack of CRM variable. hook_civicrm_coreResourceList is a good choice for achieving this.


Cron error after upgrading to 4.7.14 - Function "is_admin()" is missing, even though WordPress is the user framework

The error message comes from here and indicates that cron.php is not bootstrapping the WordPress CMS, so WordPress functions aren't available.

WordPress is_admin() is defined in wp-includes/load.php. If WordPress was initialised, that function would be present.

If you are able to configure your cron to execute via commandline (eg wp-cli method or PHP CLI method) instead of by request to cron.php, that might give you a workaround for whatever issue is affecting this setup. (Edit: Oh, you tried that? Sorry!)

There was a previous report (from 2012) of the same behaviour: CRM-9727: cron.php will not run in Wordpress, is_admin() call to undefined function.


Advanced Search AND Operator doesn't operate for Multiple Tags Search (at least)

I think the AND operator applies between fields, not within options of a field.
If you want to search TagX AND TagY you can do this in Search Builder.


Is Drupal Views affecting CiviCRM performance?

Views has an option to display the exact query it generates, so you can get a rough idea by running that query alone with a tool that allows you to time it. Ideally a single query should execute in a matter of milliseconds, not seconds.

If you have general concerns about sql performance, enable slow query logging to find out which queries on your site are taking the longest.