Problems with first test site using Civicrm buildkit

Accessing URL http://localhost:7979 requires at least these things:

Your client is able to resolve host localhost to the local IP address
You have a server which is listening to port 7979
Your server on port 7979 is able to listen to that port (not firewalled / filtered)

Check DNS for localhost

If the command host localhost does not resolve to 127.0.0.1, you should check your /etc/hosts file has an entry which defines the correct IP for localhost.

Expected output is something like:

chris@strike:~$ host localhost
localhost has address 127.0.0.1
localhost has IPv6 address ::1

Check server is listening on expected port

From the debug output above, we can see your server expects to bind to port 7979. So we can use lsof to confirm that the expected process is listening on this port.

chris@strike:~ $ sudo lsof -i :7979
COMMAND   PID  USER   FD   TYPE             DEVICE SIZE/OFF NODE NAME
nginx     432 chris    6u  IPv4 0x74beb77a214bedc1      0t0  TCP *:micromuse-ncps (LISTEN)
nginx   12446 chris    6u  IPv4 0x74beb77a214bedc1      0t0  TCP *:micromuse-ncps (LISTEN)
nginx   12447 chris    6u  IPv4 0x74beb77a214bedc1      0t0  TCP *:micromuse-ncps (LISTEN)

This output tells us that port 7979 "belongs" to a service named "micromuse-ncps", but we'll ignore that; we're using that port for your AMP hosts. Just read "micromuse-ncps" as saying "7979".

Your output should show that -

The expected program has this port bound. (I'm using nginx, you'll see apache there.)
The expected user account is running this program. (If I saw "alice" instead of "chris" as the username, that might be telling me that Alice's buildkit had already claimed port 7979, so I couldn't have it.)
If no results show up, this might indicate that your webserver didn't know to bind that port, which might happen if the AMP include was not added to the webserver's config file.

Firewalls

If the port is bound but you can't connect to it, that might indicate the presence of a firewall or other system preventing AMP's test connecting.

Documenting firewall configuration isn't in scope here, sorry! Should your buildkit host have a firewall, you'll have to be responsible for making sure that firewall doesn't interfere with buildkit, by ensuring the buildkit/amp ports are available to the expected client IPs.


It strikes me that this is something which (if you're a coder) could be done via a webform hook, or even better, by modifying the code to do it (should be a simple-ish change to add as an option). This is a good idea for a feature - so why not suggest it at issues.civicrm.org?


A lighter-weight solution to this (imo) is to use the Permissioned Relationship approach, which can be used to limit User A - who has a Permissioned Relationship to Organisation A - to only access Contacts that Org A has a permissioned relationship over.

This deploys very well without the wiring involved in multisite (imo) and hence is more approachable for 'beginners' (and for advanced folk who need a lighter weight solution.

Beauty of this solution is that it can scale really easily afaik. And for Drupal sites, together with Webforms and Views and whatnots can let delegates of Orgs manage their contacts without actually ever needing to set foot on the civi side.


You're asking two different (but related) questions:

How can I hide a group of contacts from a set of users?
How can I show a group of contacts but hide their activities?

For the first question, you should:

Make sure the non-privileged staff have a CMS role that does NOT have the "View All Contacts" or "Edit All Contacts" permissions.
Add all the contacts they SHOULD have access to into one or more groups.
Use ACLs to grant access ONLY to the contacts the staff should see.

If you want to allow a set of users to see contacts but not their activities:

Install the Activity Type ACL extension.
It's called an "ACL extension", but really this adds CMS permissions to roles so that you can deny contacts access to certain activity types.


Register new account via REST application

Since that's straight drupal I would try the drupal docs and if you're still stuck you might get more responses at https://drupal.stackexchange.com.
Another thing you could try but I don't know if it will work is to use civi's api Profile.submit. If you have a profile at admin - customize - profiles which is configured for Drupal User Registration and allows creating users, you might be able to pass in the right parameters to include the account name/email to create the account.


Mosaico: Unable to drag and drop images into Versafix template

If you are in Joomla and want to edit the mosaico template, than make sure that you are logged in front end and backend of the website.
HTH
Pradeep


Supplemental address should be searchable

It does sound like a reasonable feature request, and the good news is that it's already been implemented.

The pull request was merged in March, so any version of CiviCRM from 4.7.18 upwards should include it in the advanced search criteria.

I checked locally and here's a screenshot of the changed address fields in advanced search:


Native CiviCRM -> try uploading your video to a third party service (like Vimeo or YouTube) and then embed the reference to it in an iFrame [where you describe/details of the Event].


Using Civicrm_api3 in onAjax[Name] plugin function

Call civicrm_initialize() before using civicrm_api3() (or other CiviCRM functions).

This function is defined in the various CMS plugins (eg civicrm.module) and will load required files then initialize CiviCRM, after which you can make API calls.

Since booting the CRM adds overhead, it's best to only do when CRM is required - hence the separate function.


uploading new contacts with relationships

Welcome to SE!  Yes, you can import the relationship at the same time.  The documentation describes your situation here.
This is based on one row per child with parent details in the columns.  You import once for child, mother, relationship and once for child, father, relationship.
Check that your default dedupe rules work for the parent fields you are importing to avoid duplicates being created.
You don't need to do anything special where more than one child has the same parents other than check the dedupe rules.  Each child is a separate line.
I'd suggest trying this on a test system first to become familiar with the process and check your dedupe rules are working as desired.
Try following the steps in the documentation and let us know if you have further questions.


After having tested all the possibilities by checking and unchecking all the options marked in the WordPress Access Control pane, I found that the box
"CiviCRM: access CiviCRM backend and API" must be be ticked. Otherwise you dont have access to CiviCRM. Strange because it is told to give this to trusted roles only.
The well done documentation is unfortunately lacking on this subject.


How do you separate wordpress and civicrm tables?

Maybe if you have some plugin that uses $wpdb to access civi tables. For example there are several workarounds to try to get the functionality of drupal views that isn't in wordpress, and if they're written as native wordpress plugins and not civicrm extensions maybe they would use $wpdb.


I prefer to use hook_civicrm_alterReportVar(Instead of making copy of existing report and adding code) to add columns or filters to any report in $vars for $varType == 'Column'.


Remove link(s) from an Activity View screen via crmReplace

How about:

{$form.source_contact_id.html|strip_tags:"<a>"}

You'll have to add some conditional statements so the smarty only runs when your are viewing the Activity, if you don't the Contact Reference field in edit/create mode will break.


VERP is not optional in CiviMail, the two lines you comment out are the one needed to be able to identify who was the recipient, so if it bounces, Civi can identify it properly.

If you don't process bounces, you will not know if an email is invalid, and you will keep sending emails to invalid emails. It's something mail servers really don't like, and one of the sure way to get you categorised as spammer and blacklisted.

If you have developer skills or budget, you could add a feature to handle the bounces not based on the email the bounce returns to (VERP), but on an extra field added to the header as discussed here

However, switching to a better mail server is usually a cheaper alternative than developer's time, especially if the result is likely to be less efficient as identifying bounces.

As for the civimail component setting:

Track replies using VERP in Reply-To header
- If checked, mailings will default to tracking replies using VERP-ed Reply-To.

It isn't about bounces (not having VERP isn't an option), but for what's happening when a recipient replies: should it go directly to civicrm and be processed there or should it bypass civi and go directly to the inbox of the sender?


How do I find the ID of a custom field, contribution, option value, etc.?

The easiest way is to hover your mouse cursor over a link that refers to the item in question.  In the link that apppears in the bottom of the browser, look for the part that says &id= and note the number after it.

For instance, in the first screenshot, I hover over the "View" link to see that the contribution's ID is 45:

In this example, the custom field ID is 3:

In a few cases, there won't be any &id=.  For instance, with groups it will be &gid=.  They should all have "id" in them though!  Just make sure you don't pick the wrong one - e.g. in the first screenshot above, "cid" is the contact ID, not the contribution ID.


I realize your situation isn't identical the one discussed here but I would try running the upgrade script to see if it resolves your issue.

If not - one important change is to make sure you remove the CiviCRM database tables when reinstalling!  If you installed to a separate database from WordPress, that should be easy.  If not, and it's not practical to restore from a backup, you can drop all tables with a prefix of CiviCRM.


Webform with multiple of the same membership

In order to multiply/calculate Amounts based on webform fields, try webform_calculator module: https://www.drupal.org/project/webform_calculator

We've made some edits to support amounts being calculated over multiple pages - you can find what we're currently using for our projects here: https://github.com/KarinG/webform_calculator

How it works

The module adds a Formula webform component. So you can then configure a CiviCRM Contribution Amount or Membership Fee field to become a field of type Formula and specify the calculation with components.

Here's an example of a Processing Fee (which is a webform civicrm line item):

PS - I'm a bit confused though why you would want to buy multiple Memberships of the same type (in CiviCRM that would just mean multiple terms of one Membership Type) - but if you're looking to do Math the answer I've posted here using our latest webform_calculator module is the way to go.


How to position a custom top level menu before/after some menu?

Pretty sure you need to GET weight of the "Administer" menu and then based on that you can SET the weight for "My Menu" - in the civicrm_navigation table. like in Drupal I think you'll be ok having two items with the same weight - no need to renumbering them all!


Webform "Not You?" message does not appear in secondary theme area

We just set that "Not You?" message using standard drupal message functions (in D7 and D8). A theme will typically display such messages in a separate region above the content region. What you can try is change the Region settings -> i.e. change it from in your case Help -> Secondary.
D8 example - using Olivero Theme: works well:


Changing the name of a payment processor on the front end

There are many ways to do this. 2 easiest

1) Change the name of the payment processor in /civicrm/admin/paymentProcessor

The problem with this approach is it becomes less clear to you the administrator.

2) A *hack*, go to your current registration page where the radio buttons to choose payment processor appear. Find the < div > tag that encompasses both using your browsers debug tools(right click, inspect element). Record the id(id="xxx") of that div.

in the confirmation screen or registration screen(which screen do the radio buttons appear on in your event) open the the WYSIWYG editor for introductory text and  click on the source button.

Then, enter the following javascript. at the very top, above any text you may have entered.(replace xxx with id you found before)

<script type="javascript/text">
    var divOfInterest = document.findElementById("xxx");
    var replacements = {"Stripe":"CreditCard", "Paypal":"Your Paypal Account", "payment3":"betterlabel"};

    for (var toReplace in replacements) {
        divOfInterest.innerHTML = divOfInterest.innerHTML.replace(toReplace, replacements[toReplace]);
    }

</script>

Again, make sure you clicked the 'source' button on the WYSIWYG editor. Also, make sure you are adding your javascript to the correct Intro text(prob in registration or confirmation)

Note: this will replace any instance of the word "Stripe" with credit card in that < div >.


(EDIT - read Lars' suggestion first)
Seems clumsy but this might work.
Run the import with SKIP and at the final step of the import there is an option to either add the contacts to a New Group (A) for the same.
This should give you a group of those who did not exist in db before import
Then re-run the import without SKIP and create new group (B) so that should give you all the list.
then use Custom Search called Include/Exclude and


Engagement Index in civicrm Activities Section

Per the documentation, it's "to gauge their level of interest or potential to be a highly active member or be easily mobilised for direct actions".

If you use a methodology that involves an engagement ladder, you can decide that signing an online petition is an index of 1, showing up in person to a rally is an index of 2, recruiting others to attend is an index of 3, etc.  Then you can use CiviCRM to find users who have taken an action of a certain level or higher.  This is also potentially useful to fundraisers who use moves management/donor journeys.


For now in the contact's profile click on the activities tab and filter out the activity type = volunteer. Status available means the contact has not been assigned to a specific need. Status scheduled means they have been assigned to a specific need.


Is there any suspicious info in CiviCRM or apache log? Can you try by applying  https://github.com/civicrm/civicrm-core/pull/11454 patch works?


You can create your associations as organisation (or create an organisation sub-type "association") and create relationships between your main organisation (the federation) and the associations.

Another way might be to use civimember, if you have to deal with membership fees, but it depends on how you handle your membership structure, and you should probably read the chapter on civimember in our book and experiment


Unable to add or edit profiles on contribution pages

Turns out that Jetpack conflicts with CiviCRM - Fix for now is to disable Jetpack when using CiviCRM Profiles on contribution pages and then reactivate when done. Also note:  Jetpack also impacts the ability to edit a calendar date in CiviEvents.

Update:
In speaking with Jetpack, the Jetpack Notifications module relies on Backbone.js and is in conflict with CiviCRM.  There is already a ticket discussing conflict with backbone.js and a multitude of wordpress plugins with CiviCRM.  Instead of deactivating Jetpack everytime you need to access a profile or edit a date, simply disable the Notifications Module at http://yoursite.com/wp-admin/admin.php?page=jetpack_modules

They are working on making the feature easier to access and enable when it’s disabled. https://github.com/Automattic/jetpack/issues/6788

Now I am able to use Jetpack sans the Notifications module which I don't care about and CiviCRM without any issues.


Print merge document from case search files on wrong contact

At long last, I have a fix to share. Here's the PR that was just merged https://github.com/civicrm/civicrm-core/pull/15626


Problem with contribution - redirect to Home Page

Fixed!!!

CIVICRM_UF_BASEURL has to have www


Optional year on Date of Birth demographics field: is it possible?

This question led me to re-investigate a 'feature' that was added quite a few years back to allow sites to set different date formats for categories of date fields. In 4.6, you access this via Administer > Customize > Date Preferences. There is a 'category' for Birth Date which "should" allow you to select alternative formats including mm/dd OR yyyy.

Unfortunately, testing in 4.4, 4.5, and 4.6 shows that there's a long-standing regression for this functionality (which I guess was rarely used). The Birth Date input field 'appears' to accept dates in the alternate format, but they aren't saved properly in any of the current versions.

Pretty sure fixing this will involve mods to the schema, processing code and the date input widget - so non-trivial. If someone is interested in working on a fix for 4.7 - patches definitely welcome.


Cannot filter on contact subtype in Drupal8 views

You may find it helpful to join https://chat.civicrm.org/civicrm/channels/drupal which is where some active discussion about D8 is happening.

Including this update about webform integration


How can I import Memberships without e-mail addresses or external IDs?

Here's an idea:

Import contacts (as you have already done)
Export the contacts you just imported, selecting the at least the following fields: contact ID, first name, last name
Use spreadsheet formulas to match the ID up like this:

Add a new sheet in your memberships spreadsheet
Paste in the exported data
Add a new column to the left (can't be right) of your exported data, and call this column "name".
Create and fill a formula for the name column to concatenate the first and last name (e.g. =C2&" "&D2 will concatenate the contents of cells C2 and D2, with a space in between.)
In your memberships sheet, create a new column called id, and create a formula like =VLOOKUP(A2,Sheet2.A$2:D$10000,2,0).

A2 is for the column in your memberships sheet that contains the full name. If you have two columns, then you'd want to write something like C2&" "&D2, as we did before.
Sheet2.A$2:D$10000 is an absolute reference (dollar signs so it won't change when formula is filled downwards) to the range containing all the ID reference data. I wrote 10000, but make sure you use a number large enough to encompass the whole data set. Note that Sheet2 is the name of the sheet.
2 is to say that the value you want to pull into your memberships sheet is the second column from the left in your ID data.
0 is to say that you want the VLOOKUP function to give you "#NA" if it can't find a match instead of the (terribly chosen) default behavior of picking the nearest match.

Export memberships spreadsheet to CSV, and then try importing into Civi using the ID values that you pulled in

(These formulas should be correct for LibreOffice, but may need to tweaking for MS Office, with which I'm less familiar.)


The way to cancel recurring contributions when using the stipe extension is to cancel to recurring contribution in stripe. Stripe then sends that event to CiviCRM and the record is updated.

However it might be worth looking at this pull request to the stripe extension which claims to allow the behavior you are looking for.
https://github.com/drastik/com.drastikbydesign.stripe/pull/241


This might not meet your needs but it can be done from the Support menu under api4 explorer (but not api3). Choose activity - get, and then for the where clause pick assignees.id Is Null. Then click execute. Note on a stock install the screen will look weird but it functions.


Use case: management of planning / volunteers for a music festival

I would recommend using the CiviVolunteer extension: https://civicrm.org/extensions/civivolunteer. We have one customer that uses this extension to manage the volunteerd planning for a big event.


There is a scenario where a relationship can be created via a profile. If you add a "Current Employer" field to a profile, the employer gets created or matched by name and an "Employee of" relationship is created between the individual and the employer.

If you need more flexibility, the CiviRelate extension may help.

If this doesn't meet you needs, I would consider using the Webform CiviCRM Integration module, if that's feasible in your case.


Can automatic CiviDiscounts be contact-specific?

This is possible, but you need to know how to address the API using JSON.  Also, if you select contacts by name, you're going to need a different discount per contact.  Using a custom field might be better.

Also note that this requires that the person filling out the contribution form be logged in!

Attached please find an example of a CiviDiscount configuration that gives a 50% discount to anyone with a last name of "Smith".  Check out the API Explorer if you need help with field names or syntax.


Jsgoti, Welcome to CiviCRM SE. You definitely achieve this using Caldera module. All you have to do is

1 - Create a form with First Name, Last Name and Email field and also drop down in Caldera form.

2 - Click on Processor tab.

3 - Add a new processor of type 'CiviCRM Group'.

Then configure the settings to link contact to group

Add condition by clicking condition tab to add to group based on selection.

HTH

Pradeep


Implementing a support ticket/help desk system?

You could involve CiviCase, but depending on your needs you may get away with just creating custom Activity Type(s) and custom Activity Statuses. And then given you are doing this in Drupal, I would spin it all together via Webform+CiviCRM which should then give you ability to have a single form and apply Conditionals based on the 'need' to specify which Activity Type, Priority (as a new custom field on Activities) and Target contact.

hth


How can I get Civi CRM to display the currency in reports and so on

Oh it's defintively available in a report - let me get to my desk and show you an example;

Install: Extended Report Extension:
Got to your Adminster -> System -> Settings -> Manage Extensions -> Add New -> ExtendedReport (nz.co.fuzion.extendedreport)

After you've installed it -> go Administer -> CiviReport -> Create New Report from Template and select e.g. Extended Report - Contributions with Price Set data

Voila - there is your Currency -> I've checked it to show you where it lives:


Welcome to CiviCRM SE.

I think you have quite a complicated membership processing structure there (very frequent payments), but the basic requirement seems to be process membership update structure from an external file (I presume you get the paycheck info as a CSV file) is quite common. If you don't need to record the payments at all I think you can do a membership import to update the membership expiry dates (you would need to do a bit of processing on the file first to indicate the appropriate expiry date.

If you want to record the payments (as I do) then its a bit more difficult and I haven't yet found a good solution (How to bulk renew membership is similar).


Add people who have used contribution page to a group (or tag them)

To my knowledge - If you have set up an unique financial type for the contribution page it would be easy or if you have an unqiue label in the contribution source that might help too

Select all the contact using advance search - filter all the contact based on financial type id or using contribution source or date based on the contribution - in the contribution section

once you got the list - add to a specific group manually - done

But you need to do this each time manually - may be wait for someone to give you more precise answer

thanks !!!


There is some explanation here that you have probably already read http://book.civicrm.org/user/current/advanced-configuration/email-system-configuration/

Note it says: "The local part is optional and only relevant if you were able to set up an account using sub-addressing. It should be the account you created with '+' or '-' appended , e.g., "return+" or "return-"."

I see you have 'bounce' in that field which may be your problem


Update script fails: database already upgraded

Please check related question and answer on this link: How do I deal with "Your database has already been upgraded" error?

Also see documentation on upgrading CiviCRM for Wordpress on the following link: https://wiki.civicrm.org/confluence/display/CRMDOC/Upgrading+CiviCRM+for+Wordpress

It is also recommended to use the CiviCRM stackExchange search to check if a similar question has already been asked before posting a new question.


CiviCRM on Backdrop - Oops incorrect Drupal version

Giving credit to Laryn, but not sure how to do that other than this.
Key point: http://localhost/modules/civicrm/install/index.php?civicrm_install_type=backdrop – Laryn - CEDC.org 22 hours ago


Keeping historical demographic information, while updating donor information

There are several approaches to handling this.  Custom fields are one approach.  Another is to use Detailed Logging, which will keep historical records, although they may not necessarily be in the format you most desire.  They also take up a lot of disk space, since you're keeping the history of every change in CiviCRM!

If you try the detailed logging approach, also considering installing the Extended Reports extension, which has reports that pull data from the log tables.


Membership for Group of people. One payer

If you are using Drupal CMS than you can do this by using webform and webform civicrm module and probably CiviRules. You will need to create 2 membership type Member and Additional member. Setup webform to accept # of contacts with 1st contact as set to use Member membership type and rest of the contact set to Additional member membership.

Set up reminder for membership type member to send membership for primary member.

(Not sure if the same process can be done in wordpress caldera form plugin)


No contact names in activity emails but only name_{contact_id}. Why?

The comment by Demerit solved my problem:

Check under Administer - CiviCase - CiviCase Settings, there's an option that says "Redact Activity Email". That was set to "Redact Emails" and I had to set it to "Do Not Redact Emails".


Seems to be an error from PEAR Net_Socket, probably a few more lines of the backtrace would reveal that this came from Net_SMTP?

"Not connected" likely indicates that the remote SMTP connection has dropped the connection - this could be for a number of reasons, including intentional disconnection on that server's part ("whoah, 250 messages at once?!"), or an issue on that server, or even a network issue between CiviCRM and that server.

Since you say this is GMail, I'd guess that you might be running into intentional sending restrictions on Google Mail.

  To keep our systems healthy and your accounts safe, Google Apps limits the amount of mail one user can send. Limits restrict the number of messages sent per day and the number of recipients per message. After reaching one of these limits, a user can't send new messages for up to 24 hours after the limit was exceeded, but they can still access their account and receive incoming email.

I don't recommend using Google SMTP for CiviMail, they will shut you down (even mid-connection!), because the service is not intended to be used as a bulk mail provider. That's not a bug, it's part of the package.

Switching to mail() method will work, but may also be limited by the hosting environment. For example, one popular webhost limits outbound emails to 150/hr and silently drops delivery of any mails beyond this. That's a situation where you might run a few test CiviMails successfully, then push out a large promo and be left confused at why the response was so poor ...

If you want to be assured of your CiviMail delivery, make sure you have established terms with your SMTP provider & make sure they accommodate the level of usage you need.


The issue was i had rules setup with the wrong values hence why it wasn't working. After disabling the rules i am now able to add relationships.

I don't know how it worked but it has.


Memory Error (500) For SMTP Settings After Upgrading to 5.35.1

What I think happened is that added the encryption key after I did the upgrade. I am not sure how I did this.  This was then causing the SMTP key not to be able to be read.
I got the idea that maybe I could force blank values into the STMP form. While there I found this code.
if (!empty($this->_defaults['smtpPassword'])) {
          $this->_defaults['smtpPassword'] = \Civi::service('crypto.token')->decrypt($this->_defaults['smtpPassword']$
        }

I commented this out and the form loaded.  I saved without the key in the civicrm.settings.php file and then with the key again.
Now everything works correctly again.


building an extension: how can I create a multiple-step form?

There are a bunch of ways to handle this.

Before proceeding down this path, consider if Webform-CiviCRM integration (for Drupal) or Caldera Forms-CiviCRM integration (for WordPress) will work for you - it will save you a lot of work if so.

If that's NOT an option, consider a) storing the data in the database (using the postProcess hook), b) storing the data in the $_SESSION variable, or c) using jQuery to fake having a multi-page form on a single page.


Membership status changing from Grace to Expired a day later than expected

The 'Fixed Period Rollover Date' relates to the start of memberships and is not relevant here.
This is about date maths ...
Grace is defined as End Date (Dec 31) to End Date + 6 months. So what date is "6 months" after Dec 31?  If you increment the month and leave the day of month fixed, you get "June 31".  That doesn't exist, but if we think of "June 31" as the day after June 30, you get to the last day of Grace being July 1 (not June 30).
So then changing to Expired on July 2 makes sense.
Intuitively we think of Dec 31 as 'end of December', and so 6 months later is 'end of June' - but that's not how it is calculated.
See Example #3


Best way to cleanup CiviMail database tables?

If I'm understanding correctly, I'd say there are two possible solutions here.  The first is the easier one where you don't care about keeping the stats or history of the mailings in Civi.  If that's case, then you can probably use the API explorer to delete old mailings, which would be equivalent to clicking to delete them from the Scheduled and Sent Mailings management list.  This doesn't really archive them per se.  You're just deleting them, but doing so through the explorer seems cleaner than deleting through the MySQL cli.

The second option is what my clients want which is to keep the stats and remove the bloat, but this currently doesn't exist as far as I know.  The largest tables they have are civicrm_mailing_recipients, civicrm_mailing_event_queue and civicrm_mailing_event_delivered.  (The activity tables also get pretty big, but that's another issue.)   I've schemed a solution that would require transferring the stats data to another table(s) to be able to reference them at a later date (not all that difficult), but hooking those new table(s) into the search functions, reports and other areas where it's needed is a taller order.  I haven't really thought through this in any detail, so I'm sure there's lots I haven't considered.  Maybe there's an interim solution between these two.  Clicking Archive removes data from the some of the processing tables but keeps the stats tables in place?


Validating emails of new CiviCRM accounts?

Your question is rather complex, so this answer only addresses the registration issue. It might be better to start a new question for the other issues you face.

You can use BuddyPress for user registration - in conjunction with BP XProfile WordPress User Sync and CiviCRM WordPress Profile Sync. The registration form will have "First Name" and "Last Name" fields which will be synced to both WordPress and CiviCRM.

I'd recommend using the GitHub version of BP XProfile WordPress User Sync because there are limitations in BuddyPress which make auto-updating problematic. You'll find the relevant info on the plugin's page.

In order to capture additional data, you can use BuddyPress xProfile fields for this. There are hooks in both plugins which will allow you to sync the content of a BuddyPress field to the appropriate CiviCRM field.


Most actions are saved as an Activity in CiviCRM. You can get all Activities through the Advanced Search:

Menu: Search > Advanced Search
For the search field Display Results As select Activities

Using all the other search criteria you can filter the kinds of activities you are interested in (e.g. Activities of a specific user).

Does this help? Or what kind of things are you looking for?


Where to report Gitbook error (Problem loading page)

If you experience this problem when trying to view the documentation it may be that your browser is either Chrome or Firefox and that you have previously visited the same page prior to 22 March 2016 (or for Firefox perhaps just visiting the main site https://civicrm.org could be enough).

The gitbook link now redirects to http://docs.civicrm.org/user/en/4.6 (the read the docs version). The read the docs version previously used https and the switch to http can cause problems. I am not an expert on this but I know it has something to do with HSTS. I think that Chrome and Firefox will redirect to https even if you specifically enter http if the sub-domain previously used https.

I was able to solve the problem with Chrome by deleting docs.civicrm.org from chrome://net-internals/#hsts (clearing caches or browser history did not work for me).

I have not yet managed to solve the problem with Firefox. Again clearing caches or browser history did not work for me.


How to use full unicode on custom fields

It's still the case as of v5.30 that the incomplete UTF8 support is hard coded into the core code.
The solution for now seems to be to re-run the System.utf8conversion routine after any time you create a field/fieldset.


Search for people who have NOT registered for an event using a custom search or data processor

SELECT cc.id, cp.id
FROM civicrm_contact cc
LEFT JOIN civicrm_participant cp ON cc.id = cp.contact_id AND cp.event_id = 1 WHERE cp.id IS NULL;

You can confirm that this works by running this straightforward query to see the contacts who ARE registered for an event:
SELECT cc.id, cp.id
FROM civicrm_contact cc
LEFT JOIN civicrm_participant cp ON cc.id = cp.contact_id
WHERE cp.event_id = 1;

Then confirm that this query is functionally the same:
SELECT cc.id, cp.id
FROM civicrm_contact cc
LEFT JOIN civicrm_participant cp ON cc.id = cp.contact_id AND cp.event_id = 1 WHERE cp.id IS NOT NULL;

The first query is the same as the third, except uses IS NULL instead of IS NOT NULL.
This search should be possible with the forthcoming Search Kit.  I tried a pre-release version but there was an error joining contacts to participants.  However, I was able to create the equivalent with contributions - "All contacts without a member dues payment".  The screenshot below shows how you'll be able to do this with Search Kit very soon:


After upgrade to 4.7.29, 500 error on payment

I'd guess you've got payment processor configured with an empty class name. Check the tables civicrm_payment_processor and make sure each one has something in the class_name field, e.g. using

select id,is_active,class_name from civicrm_payment_processor

You can probably delete it if this is the problem.


It sounds like we have an overachiever here!

More seriously, I suspect that you may have found a bug in the count of recipients that occurs when you have the mailing set to email each contact, regardless of whether the email address duplicates another recipient of the mailing.

It wouldn't be surprising if practically all of the organizations had email addresses that were each actually the same as an individual's email address.  If you throw them all into one mailing (by your account and samuelsov's math), you'd have 5200 contacts.  Remove a few because they have no email, a few where the email is on hold, a few that have do not email, and a few that bounce, and voila--that's 4800 successful deliveries.

If that's the case, I suspect that the handy counter in CiviMail is simply assuming that you're using the CiviMail setting that suppresses repeat mailings to the same address per run.

You can confirm all this by clicking on the details in your mailing report and viewing the list of actual successful deliveries.  I suspect that you'll see both contacts and their organizations, many of whom have the same email addresses.


We use Drupal exclusively for all our projects. Many advantages such as drush; views integration; webform_civicrm module!

CiviCRM is CMS agnostic - and the community will support all three CMS-es. Most are on Drupal and Wordpress though so to get help - that's your best bet.


membershipTypeValues hook not updating membership price

I think you need to use hook_civicrm_buildAmount  or hook_civicrm_buildForm hook to change the amount on front end contribution/event pages for priceset or line items.


How do you stop names from doubling - Views

If I had to guess, I'd say your "Look up Leaders" functionality is built with Views in Drupal or Backdrop, and it shows up double because there are two different "Other" phone numbers for these contacts. It's treating them as two different entries.

If that is the case and if it's possible to remove or relabel the second phone number location type in the contact records (ie. not have two "Other" phone numbers -- although you could have multiple phone numbers if they have different location types) I think it would solve the issue.

EDIT Upon closer inspection, the second "Other" number appears to duplicate the "Mobile" number. In the contact record, try deleting the duplicate number with the "Other" location type.


Contribution Page - Unlink last year's contributions?

Ah yes -> make a copy instead of editing!

Events -> Manage Events -> under the more (on the far right) -> hit Copy.

This will copy all your settings/etc but will not copy your participants. Contribution pages: very similar -> same thing!

Contributions -> Manage Contribution Pages -> under the more (on the far right) -> hit Make a copy.


You should create an extension. See the instructions for civix. One thing that civix can do is generate a skeletal extension. After running civix generate:module you would add your code to the main php file in your new extension. See also Extension Structure.


How best to rearrange the order of the address fields on the New individual/contact from?

I would recommend you create a little jQuery to move the fields around (something like you see here: template jQuery example)

And then place the created template with jQuery on the appropriate form (which will probably be CRM_Contact_Form_Edit_Address) using the alterContent hook (something like what you see here: alterContext hook example

Although this is not exactly what you want, it shows the approach. Does that help or is the confusion only growing?


Civix: how to install and generate a skeletal extension (drupal)

The main civix download is a PHAR archive. You can generally execute a PHAR archive directly, without extracting it, as described in the README:

sudo curl -LsS https://download.civicrm.org/civix/civix.phar -o /usr/local/bin/civix
sudo chmod +x /usr/local/bin/civix

If it's a typical Debian/Ubuntu/RedHat server which you fully control, then putting the file in /usr/local/bin/ is handy. However, this is not required: as far as civix is concerned, you can put the file in any folder with any owner. For convenience, add the folder to the PATH.

Note: Some server admins/distros set up their own funky rules (e.g. via mount options or apparmor or disabling PHP extensions whatever) -- this is especially true on shared hosting. Unfortunately, only you and your admin can determine these types of things.


CiviCRM Error - type E_ERROR was caused in line 550

This error is telling you that due to a filesystem (IO) error the system could not save a temporary file.

This could be due to:

Hardware issues with the storage medium.
No free disk space available.
Incorrect/insufficient permissions to save files in the location required.

You should check that the webserver/PHP user has permission to write to the location which will be in the full logs in your installation's ConfigAndLog folder in the CiviCRM files directory.


What does the 'profile_listings_and_forms' permission allow?

Yes, the profile_listings_and_forms permission is just a shorthand for allowing all four profile permissions.

profile_listings_and_forms = profile_create + profile_edit + profile_view + profile_listings

The documentation is being updated to clarify this.

Thanks to MikeMJCO for confirming this.


Moodle Integration Sample Sites or the way to do it

No such integration exists today so there is no sample. To implement such integration, I would recommend building an extension for CiviCRM that could interface with Moodle's APIs:

https://docs.moodle.org/dev/Core_APIs

You could also consider the opposite, creating a Moodle plugin that would interface with the CiviCRM API:

https://wiki.civicrm.org/confluence/display/CRMDOC/Using+the+API


How are recurring contributions (standing orders) implemented in 4.7?

I think you're asking a very UK-specific question about direct debit. UK has special rules for direct debit that CiviCRM doesn't know anything about. But the iATS Payments payment processor does support the required workflow and the civicrm extension for iATS Payments does have a dedicated payment processor for that purpose, so that might work for you.
There is some information about how to set it up on this page:
https://github.com/iATSPayments/com.iatspayments.civicrm
[2020-06-22 Update: the iATS payments extension has dropped it's UK-specific support code]


How do I Delete Documents I uploaded to CiviEvent?

Go here:

/civicrm/admin/setting/path?reset=1

to find out what the Custom Files Directory is for your instance!

Custom Files Directory:
"Path where documents and images which are attachments to contact records are stored (e.g. contact photos, resumes, contracts, etc.). These attachments are defined using 'file' type custom fields."

ADDED: You'll need access to your server - eg through eg CPanel FileManager - or those who like and have command line access can SSH to their server and then navigate to the custom files directory.


Hi Felix and welcome to CiviCRM Stack Exchange.

Your problem could have a number of reasons, e.g. the following:

your server does not allow access via http for anonymous users (could
be protected by htaccess, a vpn...)
you do not have a ssl certificate or it is self-signed

If that is not the reason please try to provide some more information such as:

are images not displayed for all recipients or only certain ones?
does it happen with all mail clients/services or only certain ones
...


Can't get hook_civicrm_contact_get_displayname to work

Can you modify, CRM/Utils/Hook.php

  public static function alterDisplayName($displayName, $contactId, $dao) {

and change it to

  public static function alterDisplayName(&$displayName, $contactId, $dao) {

(note the & character before the displayName argument. I suspect this will fix the issue.

If it does, can you please file an issue and if you can create a PR to fix this issue. If not, you can reference this thread


There is documentation on how to add your own action here: https://docs.civicrm.org/civirules/en/latest/create-your-own-action/.

I would recommend reading the documentation, it will give you a better understanding of what is required. And then copy and adapt as much as you like :-)

If you do not see it in the list of actions it is because you have copied the class, but not added a record to the civirule_action table (from what you describe).


Phonenumber error Joomla 3.4.8 civicrm 4.6.11

If this is not an intermittent problem that has gone away by now, then likely your installation or upgrade has caused some problems. My guess is that you need to check the base_url in your civicrm.settings.php file, or more properly, in the CiviCRM Resource URL field under Administer > System Settings > Resource URLs.


The fact that you are seeing Primary suggests this has been added as an Address custom field, and it seems that these new-ish field types have not been fully integrated to receipting.

You have some options

1/ change your field to a standard Contact field and then edit your tpls to have the field show where you want it (this seems the 'right' way to fix this since otherwise you are using an Address field, with its options of Location Types, for a field that should not be offering Location Types)

2/ get the code improved so these fields do show in the receipts either by contributing a patch or funding a Partner to do this on your behalf and help grow this open source project.


CiviDiscount - what is the correct URL for contribution pages

The documentation page was outdated. The correct format for event pages is

civicrm/event/register?reset=1&id=XXX&discountcode=YYYY

and

civicrm/contribute/transact?reset=1&id=XXX&discountcode=YYYY

for contribution pages


Can we add an approval process/queue to emails sent through CiviCRM?

I'd recommend a different concept - maintain a VIP group and then exclude those group members when you're creating a group to send the mail to (use custom search "Add/Remove Group").

The reasons are:
1) No further development required!
2) If you have to approve each bulk email they receive, they may receive a lot of emails at once. It effectively bypasses any frequency control your staff are producing for the main members.


SendGrid requires credentials for every login using WP

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

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

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


One way of achieving your goal would be via a temporary group:

Using advanced search, search for all contacts who do have a relationship (simply open the "Relationships" tab, enter nothing, and search - it will default to all active relationships).
Add all the resulting contacts to a group (or make a smart group if you want to save yourself this step in the future).
Using search-builder, find all contacts not in that group.

PS: the "Parent" contact sub-type has nothing to do with relationships. Contact types are quite different in CiviCRM from relationships, and having one does not automatically bestow the other.


You can replicate the functionality by creating a Profile which includes the 'public' groups you want users to sign up for.

A second approach is to use the webform_civicrm module where you can similarly include specific Groups and any other custom fields you want.

I don't think adding a field to civicrm/mailing/subscribe?reset=1 is available through the UI.


You might be able to use the "Limiting or adding to your recipient" setting and use a smart group to only include primary members or some fairly complicated smart group that pulls only those that are paying members

https://docs.civicrm.org/user/en/latest/email/scheduled-reminders/#limiting-or-adding-to-your-recipient-list


I usually find more detailed examples by looking in the CiviCRM code, which is exactly where I found the answer to the " i do not want time" question a while ago :-)
As I found it I can share it with you:

$this->add('datepicker', 'activity_compare_date', ts('Comparison Date'), array('placeholder' => ts('Compare with')),FALSE, array('time' => FALSE));

And yes,it would be ideal if all these examples would be in the developer guide. So I would like to invite you to the next CiviCRM sprint to make this happen :-)


Sparkpost Cividesk integration - processing of bounces

Start here for background reading:
https://wiki.civicrm.org/confluence/display/CRMDOC/Bounce+Handling

I found all I had to do was to just follow the Documentation: https://docs.civicrm.org/sparkpost/en/latest/install/

Update
Bounces are processed through a callback (no need for an email account dedicated to bounce processing), but CiviCRM only processes bounces for CiviMail-originated emails. CiviDesk is planning to extend bounce processing to transactional emails in the future as well.


How did my import result in the State for a different country to the one intended

I may not have quite understood you but if you have access to your database you can look in civicrm_state_province where you will see there is a Maryland MY in Liberia (1122) as well as a Maryland MD in the USA (1228)

When importing contacts with State/Province you may be better off if you either import the abbreviation (though even that might not be unique) or also import Country.


Maximum SMS length is defined by the MAX_SMS_CHAR constant in

../sites/all/modules/civicrm/CRM/SMS/Provider.php.


Detailed instructions are available in the "More detailed errors" section of the troubleshooting guide.  In short: Either turn on debugging AND backtrace, which will give you a more detailed error; or view the appropriate errors in your CiviCRM log.

If you need help interpreting those errors, I suggest opening a new question here.  It's also a good practice to paste the text of the error instead of (or in addition to) a screenshot of the error - it makes it easier for others to search, and easier for someone to troubleshoot.


Unable to run CRON for scheduled jobs in Drupal 7.43 and Civicrm 4.7.7

You need to set a cron command on the server.

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

Something like

*/15 * * * * wget -O - -q -t 1 'http://mysite.org/sites/all/modules/civicrm/bin/cron.php?name=username&pass=password&key=site-key'

If you have set it, what is the exact cron command for CiviCRM you have set on the server (cpanel, directadmin ....)? (You can leave out the pwd)


Drupal-8 / Civi 5.32 -- In D8 I see some civi blocks for me to use. Where are they defined?

It's not a "view" in the drupal meaning of the word. It's coming from here: https://github.com/civicrm/civicrm-core/blob/6960dd4c1e5e99f8e0b3564dcc15269184d7702d/CRM/Core/Block.php#L523
I think the "right" way to customize this would be with your own drupal module that creates a block that does the same thing but calls that CRM_Event_BAO_Event::getCompleteInfo(date("Ymd")); function with the 2nd parameter which allows you to specify type.
I don't know if there's a hook that would allow you to more easily customize it in a supported way. If you want to hack it, just add a second parameter on that line to specify the type.
UPDATE: You could also do this as a drupal "view" if you install civicrm_entity. Views can be displayed as blocks.


Can you please check if there is any data in the civicrm_county table? It might be that you just have to add some records in there because it is not prepopulated.


Empty token default values -- core or extension support?

First - no need to enable Smarty system-wide to do this.  Greetings are always parsed by Smarty - see https://civicrm.org/blog/antrik/getting-started-with-new-name-and-greetings-features-in-45.

Besides that, I think you're one of the leading experts on complex token extensions, since you're the primary author of reltoken.  But I don't see why you couldn't do this.  hook_civicrm_tokenValues gives you access to the token name for parsing, and there's no requirement that the token be listed with hook_civicrm_tokens.  So I'd say go for it.

Note that this is similar but not identical to the free-form relative date work Eileen did: https://github.com/civicrm/civicrm-core/pull/12682.


Why can't anonymous users make contributions?

Do you mean an account is required to even fill in your page, or that filling in the page creates an account?

If the former then it sounds like a permission issue such as Anon not having access to the following

CiviCRM: profile listings and forms
CiviCRM: access all custom data.

These Permissions are usually part of default permissions afaik

Within the Profile settings you want to make sure that you have not set Account creation required which can be found in the advanced settings: Administer > Customize Data & Screens > Profile.


Backbone javascript conflict causing Configure Event / Repeat to fail

The root cause of this is that civi uses backbone.js, but not in no-conflict mode. There is an issue open at https://issues.civicrm.org  for this. Once that issue is resolved, this plugin will start to work.


DB Error: constraint violation when a member renews online

this looks like some custom code you have setup which is passing through the wrong group id. Its indicated by the API identifier in the failure. I would check what custom code you have and establish where group 13 is being passed in, you could turn on the backtrace recording so that the exact source can be determined.

The other thing to check is that the contribution page is set correctly in the section where contacts are automatically added to groups. Someone may have set it there and subsequently removed the group.

Either may cause this issue.


How does CiviCRM rate compared to other CRMs

I've worked with sites with tens of thousands of records that are constantly being interacted with, changed, etc. So that is no problem.

There is some tracking of changes. What exactly were you looking for?

Whether it can integrate depends on your systems. We'd need more info on what you need to integrate with. Otherwise the answer is maybe.

I've found it to be user friendly, but I've used it for a while. You will likely need a bit of training up front to help you locate everything you need to do. I find that much easier than trying to learn it yourself and much less time consuming as well.

The same thing with customizable. Yes, it is customizable, but it depends on what you want to do. Some customizations may mean a major edit to the software, that an extension needs to be done, etc.

For support, it sounds like what you're talking about is someone you would hire to support the install. There is some support on here, via asking questions and such. But really getting into your site and fixing things, changing things, running updates, etc is going to mean the need to hire someone who knows Civi.

Some of the security relies on you and your server, how often you run updates to the CiviCRM software, etc. There's also user logins that have specific permissions as to what they're allowed to do.


Webform CiviCRM 'Registration Status' for Event not Updating each subission

I'm not sure from your description how exactly your form is configured. For the update participant status you may need a second form and specific url to reach it which includes the user's contact id and the event id.

See the responses to this question for more (and clearer) details:
How do I get Retrospective feedback for an event using a Webform (participant Custom Data)?


Recurring contributions no longer showing Custom Fields in subsequent contributions

How contributions are created as part of a recurring series is not well-defined by CiviCRM core, it depends on the payment processor.

iATS Payments will create the new contribution in the recurring sequence based on a combination of:
1. the settings in the recurring record and
2. it's best guess of a previous contribution to use as a template (i.e. the most recent contribution in the sequence that has a matching amount).

The code that generates the contributions and payments is here: https://github.com/iATSPayments/com.iatspayments.civicrm/blob/master/api/v3/Job/Iatsrecurringcontributions.php

So either it's not finding the right contribution to use as a template, or in your case, since it's an issue with all recurring contributions, I suspect it's a code issue, worth posting to the iATS extension issue queue, here:

https://github.com/iATSPayments/com.iatspayments.civicrm/issues


Doh!

The end date for the Price Set was set to today.


How to change the maximum number of members-by-relationship for given membership types?

If you have access to the DB try changing the value in civicrm_membership.max_related


SYNTAX ERROR in Pledge Report when Balance Due is selected (ver. 5.18.2)

This is a bug.  It only happens when you have modified the name of the pledge status "Completed" or "Cancelled".  In your case, "Completed" has been modified.

While you could change that label back, the report shouldn't crash regardless.  It was easy to fix, so I reported the issue then made the fix.

You literally need to change one word in one file, so if you feel comfortable changing the contents of a file in your CiviCRM directory, you can look at the fix I made and make the change on your site.  If you do, please report back on Github that it works - that will speed up the process of getting this fixed merged into CiviCRM for everyone.


Menu option Contacts/Manage Groups then 'Add group'


Not through the UI i guess. You can make use of the https://docs.civicrm.org/dev/en/latest/hooks/hook_civicrm_alterPaymentProcessorParams/ in your extension and have something like -
$params[`item_name`] = 'your custom title';


404 errors for loading CSS on Event pages (Wordpress)

It looks like you have WP installed in it's own directory as per https://codex.wordpress.org/Giving_WordPress_Its_Own_Directory

The short answer is that this is not (yet) supported by CiviCRM.  We've been documenting it here:

https://wiki.civicrm.org/confluence/display/CRM/WordPress+installed+in+its+own+directory+issues

The issue is tracked here : https://issues.civicrm.org/jira/browse/CRM-16421

For now I would move WP out of it's own directory, it may not be your optimum configuration, but it will work.


Timezone issue - authenticated vs anonymous: a 6h time warp

The main clue is that these date/times are being stored in mysql datetime fields, which do not include a timezone, but implicitly have a server-wide timezone (either adopted from the server, or configured explicitly).

So we know that the problem is at the php level - the code is generating the date time and converting based on the current user's timezone (which it shouldn't in this case).

Since it's an issue with D8 and not for D7, it seems likely that it's a D8 integration issue, some kind of automated handling of date/times that we don't want (we do want date/times to be converted to the users timezone on display).


User account picking up incorrect user name

There are two main causes that I can think of.

The person doing the editing was doing it whilst logged in as the other person. Possible scenarios and suggested 'solutions' are:

shared computers where the other person didn't log out when they had finished and the editor didn't bother to sign in as themselves. Solution: Remind all concerned of the importance of logging out when finished and of using their own log in.
The editor is able to masquerade as the other person and was doing so when making the changes
Solution: Remind editor that they should not make changes whilst masquerading as someone else OR revoke their masquerade priviledges.
The editor knows the password of the other person and deliberately logged in as that user. Solution: Get the other person to change their password and keep it private.

The table that links wordpress user to civicrm contact record has become (or was for a while) corrupted so that the wordpress login for the editor is/was linked to the civicrm record for the other person.  (This could happen for a drupal-based site if the uf_match table was corrupted. I presume there is something similar in wordpress, but I don't really know.)


A patch has been accepted for this.

https://github.com/civicrm/civicrm-core/commit/76eeb935253f42e836a58e1f9d077caaa498c947


CiviEvent Confirmation Emails: Cutting off content

I've often found good luck by switching to wkhtmltopdf.  It's written in a coding language that makes it tough to distribute directly with CiviCRM, but takes a few minutes for someone who knows what they're doing to install.  Someone posted wkhtmltopdf instructions here.


CiviMail recipient count stuck on Estimating

I was able to 'fix' the issue by simply deleting all the groups (I didn't have any previous mailings in here) from the Recipients field and then re-adding them. Make no other edits before the estimated number of recipients finishes, and the draft is saved. I was able to send a test email successfully after that. The mailing list this happened with to me is ~585 contacts.

NOTE: I just had this error pop up and found this Stack Exchange question from a Google search of the error message.


Can't view contact groups page: "DataTables warning"

In this case, turning on logging (civicrm/admin/setting/misc?reset=1) and looking in the CiviCRM log reveals a fatal error related to mapping and geocoding:

  Proximity searching requires you to set a valid geocoding provider

Somebody had tried to set up a proximity group based on zip codes, but the mapping and geocoding settings had not been configured. Configuring the geocoding (civicrm/admin/setting/mapping?reset=1) to use Google as the provider fixed the issue.


Webform contribution for multiple items?

How about something like this:

Finite quantities for each item (if you have too many - make them select lists).
Calculate the Contribution Amount w/ some jQuery - [just like on CiviCRM contribution pages] - OR - if you don't have too many combinations - you can do this via Webform Conditionals - so no code required.


Welcome to this stack community. There are multiple ways you could get what you want.
I would use the Search Builder functionality. You can find it in the main menu Search-> Search Builder.

You can search the contacts where the address fields (such as city, street adress, or other address fields) are not empty.
You can then select actions (what to do with the list). You can export it and deal with it externally or you can select Mailing Labels - print to directly create mailing labels. You would probably want to configure Label format before doing so. You can do that by going to the Administer->Communication->Label Formats in the main menu.


How do I embed a CiviCRM page into a wordpress page?

Are you using the new block editor... in this case you don't see the civicrm button. Easiest solution is to switch to the classic editor. I think the documentation needs updating. Once you know what the shortcodes look like you could just type them in (you would need to know the contribution id)


Permissions error message using Profile (gid=12) in Online Registration

It sounds like you need to give anonymous and Data Manager users the 'CiviCRM: profile create' permission, and likely 'CiviCRM: profile edit' and/or 'CiviCRM: profile view' additionally.


is it worth switching from Joomla to Drupal for better CiviCRM integration?

Developers tend to prefer Drupal over Joomla. But each CMS has it's pros & cons. You need to figure out which one is better for you.

For example if you have a Joomla extension that gives you functionality which would require a lot of custom coding in Drupal, it would make sense to stay with Joomla.

The kinks you mention may not be around in that later versions of Joomla & CiviCRM, but there may be others, so you really need to do some testing to make a decision that's right for you.

Demos are available at: https://civicrm.org/demo - but they are reset periodically so you may prefer to create a sandbox on your own server or local machine for testing.


Why are CiviCRM fields not displaying from a view in a panel in Drupal?

It turns out the issue was not specific to CiviCRM fields.  The issue is in the relationship between Views and Panels, specifically, passing arguments between the two.

The missing piece for us was using the 'Argument input' setting in Views to pass the arguments properly.

Eventually discovered a great post about it here:
http://www.metaltoad.com/blog/passing-page-arguments-view-panes

I won't try to reproduce it.  Following these steps solved our problem.

Enjoy,
Lewis


Unfortunately you can't use searchColumns to add column on contact search result. The layout in tpl doesn't respect the 'searchColumns' hook.

However you can still use the hook by doing some additional UI setting or using javascript. Here are some alternate approaches

Create a profile with same column as Find contact and set 'Visibility' to 'Expose publicly and for listings' and Results Column? to true for each field. Navigate to CiviCRM >> Administer >> Customize Data and Screens >> Search Preferences. Use the created profile as 'Default Contact Search Profile' option. Alter the code accordingly to adjust the result display.
Add javascript to insert a column(td) for each row(tr) against each contact using the contact id defined in id or class for tr element. Iterate based on $rows assigned to tpl.

HTH

Pradeep


Participant Count and Capturing additional participant information

Yes - typically you would activate "register additional participants" to capture the additional names.  The participant count being 5 will NOT trigger this.  That workflow is preferred when someone is, say, buying a table of 10 for a fundraiser gala but doesn't know who will be attending.  And yes - the participant count should be "1" in this case.


Keeping track of membership history of an organization once a member has been removed?

You might check MembershipRenewal Extension.

This creates a new record when a user renew its membership, so that the older/removed/expired membership remain unaffected to let know when the user was a part of the org.


How to detect/handle card failure from Payment Provider's callback URL

I would -

make the return page a CiviCRM IPN callback - civicrm/payment/ipn/XX (where XX is the database ID of the payment processor in use).
from this IPN callback, which is a method in your processor, return a 302 to the Thanks page if the transaction "checks out", and the Unsuccessful page if not

Probably the best "reference" payment processors are NOT those in core, but those based on Omnipay.

Hitting civicrm/payment/ipn/XX will land you in CRM_Core_Payment::handleIPN() which should in turn call your processor's $processorInstance->$method(); determined via CRM_Core_Payment::handlePaymentMethod().
Eileen's Github probably has a few Omnipay based processors worth checking out.


People build reports based on their clients requirement and if they think this is going to help others in the community they contribute code either in the form of sending PR to core or release as an extension publicly.

I think (but not confident) Extended reports extension does provides some additional filtering and reports, its worth trying if it meets your need. Else you can use alterReportVar hook to add filter to reports.

Hope i answered your question!

Pradeep


Looks like the error is originating from the com.cividesk.l10n.update extension enabled on your site.

update that extension to latest and check if it fixes the problem for you.
disable if it is no longer useful.
Open an issue under https://github.com/cividesk/com.cividesk.l10n.update/issues providing the steps to reproduce the problem.


I just took a look and the reference to php in the bash scripts seems to be hardcoded.  I'm assuming there's already a php app with a different version, or else you could just put a symlink from php56 to php somewhere in your path.  So I think your best bet is to:

Create that symlink anyway, but don't put it in your default path.  E.g. ln -s /usr/bin/php56 /my/folder/php.
Add a line to civibuild (or call from a wrapper script) that puts the symlink at the BEGINNING of your path, so it's found before your regular php.  E.g. PATH="/my/folder:$PATH".

By putting the symlink in the path only when civibuild is called it won't cause interference with your other applications that rely on a different PHP version to run.


Undefined index: values in _civicrm_api3_api_resolve_alias()

[debug_info] => SELECT id, component_type
                FROM    civicrm_mailing_component
                WHERE   is_active = 1
                AND     is_default = 1
                GROUP BY component_type [nativecode=1055 ** Expression #1 of SELECT list is not in GROUP BY clause and contains nonaggregated column 'civicrm.civicrm_mailing_component.id' which is not functionally dependent on columns in GROUP BY clause; this is incompatible with sql_mode=only_full_group_by]

After deactivating 'ONLY_FULL_GROUP_BY' in mysql with

msql > SET GLOBAL sql_mode=(SELECT REPLACE(@@sql_mode,'ONLY_FULL_GROUP_BY',''));

it works...

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


What's the quickest way to set up a developer environment on windows?

you also need bash, it MIGHT be doable with cygwin (https://www.cygwin.com/), but I think it would be a considerable amount of pain.

The least pain imo would be: install Virtualbox, install Ubuntu on it and then follow How do I set up dev environment with buildkit?


I am not using the German version, but have translated the Norwegian version of the country names. There I also have just copied the English version, and only changed the name of my own country.

One of the cases we use country names most often, is when sending postal mail. Norwegian post men reads Norwegian, but French and German post men don't understand Norwegian country names. They do however understand English country names.

Therefore;
English country names=higher probability for postal mail to reach its destination abroad


Searching by check number after upgrading to 5.5.0

I was able to replicate this issue.

Historically, CiviCRM didn't support multiple payments on a single contribution.  So the check number is part of the contribution.  However, now that it supports multiple payments, the check number is part of the financial transaction.

The check number being searched is the contribution's, not the financial transaction's.  I think it needs to be changed; I can't think of a case where it's desirable not to.

I just opened a ticket on https://lab.civicrm.org, financial#37.


How to insert Javascript into an inline form edit via an extension?

cj(function ($) {}) has an implicit document.ready. To unpack that dense few characters of code:

cj is the deprecated alias of CiviCRM's copy of jQuery. In 4.5 and above use the new one: CRM.$.
Passing a function straight into jQuery is an alias of calling jQuery(document).ready() (not one that we made up, it's a jQuery thing).
The argument your function receives ($) is yet another alias of jQuery, which you should use inside your code block to make it more readable (so your code inside should be $('.crm-button-type-upload... not cj(...).
So the whole thing, written out in full would be CRM.$(document).ready(function($) {$('.crm-button-type-upload').hide();}); (not that I'm saying you can't use the shorter form CRM.$(function($)... I just wanted to make it clear what's going on)

To answer your question about how to include your js. As of 4.5, CRM_Core_Resources will add javascript files to snippets, and by default it does. I just tested it out and was able to get a script file loaded when I clicked to open an inline edit form on the contact summary page.

The only time this wouldn't work is if you specify the "header" region as the location for your script. This is because ajax snippets do not have a header.

You can find out more about loading javascript files and ajax at: http://wiki.civicrm.org/confluence/display/CRMDOC/Resource+Reference


Is it possible to show CiviMails within our Drupal CMS system?

As you say in the question, you can build a View based on the CiviCRM Mailings tables so eg Body - HTML etc.

Alternatively you could build your mailing body in Drupal, then use a View based on that to drop a 'views token' in to your mailing.


Importing contacts through Kettle and CiviCRM data integration

I use this recipe (manipulate data in Kettle and then API to CiviCRM) regularly. Adding the address is done with the Address API. Are you aware of the API explorer in CiviCRM?

If not, try /civicrm/api/explorer before version 4.6 or use Support/Developer/API Explorer since version 4.7.

This gives you a possibility to "play" with the API explorer to find out what is required. Be careful, it does actually perform the suggested actions :-)


Login is a CMS event, not a CiviCRM event. This means you can access it readily from a CMS plugin/extension/module ... but not from a CiviCRM extension.

Drupal: hook_user_login() hook
Backdrop: hook_user_login() hook
WordPress: wp_login event
Joomla: onUserAuthentication event (?)

If you wanted to access this from a CiviCRM extension, you'd need to use some event which fires at the time of login. You might be able to identify one using the contrib.showallthehooks extension to reveal which hooks get fired at the point of login. Might need to check it was going to fire for each of the CMS platforms, since behaviour could vary.


They should be just added to the Donor group. This should not effect the existing group memberships.


Managing internal Purchase Order forms/requests in CiviCRM

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

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

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


Add new column to table in field 'selector.tpl'?

You can create a profile with the fields you want to display as a column and set the 'Default Contact Search Profile' in Search Preferences (CiviCRM >> Administer >> Customize Data and Screens >> Search Preferences.


What is the review process for automatic distribution of Extensions?

They'll automatically be noticed - I personally use http://civicrm.org/extensions/rss to keep track.  If we're being honest though, the extension review team isn't always the quickest to tackle something!  If you have something waiting in the queue, let me know and I'll make some time for it.


How to link profile field with multiple values?

To pre-select multiple select value fields you can provide values with , separated.

Example:

.../index.php?option=com_civicrm&task=civicrm/profile&Itemid=145&_qf_Search_display=true&custom_2=2,1

HTH

Pradeep


The cron url seem to be wrong, it should have been

https://mysite/wp-content/plugins/civicrm/civicrm/bin/cron.php?name=<username>&pass=<password>&key=<site-key>


Weekly Digest Email to Group (Mailing List)

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


Logging tables until recently wouldn't be supported. If your install is older and you have logging turned on you might need to update the engine for the logging tables to InnoDB.

Otherwise I think it would just be regular system administration stuff not specific to CiviCRM.

But for me the issue with at-rest encryption has always been that storing the keys on the same server defeats the purpose, unless you're willing to password protect them and also not store the password on the server, i.e. manually start mysql any time the server needs rebooting and manually provide the password, and that may not even be doable depending on the hosting setup.

I see there is an eperi gateway plugin for mariadb which I was unaware of. That seems interesting.


Search in Manage Groups renders "contacts" link as editable under "visibility column"

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


Unable to create InnoDB tables. MySQL InnoDB support is required for CiviCRM but is either not available or not enabled in this MySQL database server

Just go to civicrm/install/index.php and change the line with code if ( $dbName != 'Drupal' ) and either exclude the entire if statement (comment it out) or change it to if(true).


A complete sidestep would be to use a standalone Profile for submitting the membership 'application' and then when approved fire them an email with checksum to the Contribution page which has the membership optionsn on it, which uses the paypal payment processor so you get paid and creates the membership. just a thought.


"API permission check failed" for admin user

You must also make the user an admin in the Users panel of the host CMS (wordpress, in this case). It's not sufficient to choose Administrators as the value for the "group" dropdown in the "New Individual" form of CiviCRM.


Are there up-to-date CiviCRM coding standards available?

Using the Drupal standards in your IDE ought to get you most of the way. For fine-tuning you can see https://wiki.civicrm.org/confluence/display/CRMDOC/PHP+Code+and+Inline+Documentation and also try out the civilint cli tool which is shipped with buildkit.


This functionality already exists in CiviCRM; however, by default it isn't exposed to the UI.  Look in the database at civicrm_membership_log.

The main difference between what you're describing and what exists is that the contribution isn't tied directly to the civicrm_membership_log record.  Instead of an extension, you may want to extend civicrm_membership_payment to include a foreign key to the appropriate civicrm_membership_log entry.

Alternatively, you can most likely write an extension to correlate contributions and membership periods in the log by date for display in the UI.


CiviEvent online registration with multiple participants - move Payment Options to end

I have the same problem ;
Moreover, the price set is repeated for each participant, beyond payment, which is useless and confusing.
I fully agree with a move to the end of the process, when everything is known.


Donations page on mobile phone not formatting properly on Wordpress site

The public-facing donation and event pages inherit their look and feel from the Wordpress theme.  If there's overlapping text, it can't be fixed within CiviCRM; it must be fixed within WordPress.  You should be able to confirm this by loading a Wordpress default theme like twentyseventeen on your site (ideally a test version of your site), and the problem shouldn't exist.

As for which part of the theme needs fixing, it's very hard to troubleshoot without seeing the CSS of the page itself, which means posting the URL in question.  That said - you'll likely get better answers in the Wordpress Stack Exchange than here.


After server migration, cannot add contacts

Have you tried deleting everything in media/civicrm/ConfigAndLog and templates_c?


CiviCRM Shortcodes button no longer shows up on Wordpress

If you have the CiviCRM Admin Utilities plugin active, make sure you have selected the post types on which the button is allowed.


Finding the status of a recurring contribution

If you look at someones Contribution Tab (rather the Contribution itself) then down at the bottom, below the list of any Contributions, there should be rows showing any Recurring Contribution. This should show you the status of the Recurring payment.


That's just a notice -> best to hide all notices and errors on a production site:

go to your:
admin/config/development/logging

and set the radio button to:
None


CiviMail click through links and Browse Site button not working.

Problem solved with much much back and forth with our host.    I noticed this issue is all over the forum with no solution, so finally here is the solution: If anyone runs into this issue in the future, check your permissions for /wp-content/plugins/civicrm/civicrm/extern/url.php  The permissions should be 755. For some reason, ours was 775.  As soon as we changed it to 755 the problem was solved.


An excellent question - the Advanced Date Settings don't seem to affect the report.

You can try to make it a type of "timestamp" in civiroot/CRM/Report/Form/Activity.php.  You might also want to build your report in Views. If you choose this approach, you'll want to install the Drupal Views in CiviCRM Dashlets module


Try the below steps-

1) Navigate to Search -> Advanced Search.

2) In Basic Criteria Tab, you can find a dropdown with the label Display Results as -> Select Cases in the dropdown input.

3) In Relationship Tab select the relationship type as the role. For eg.- Case coordinator is.

4) Optionally type the name in the Target contact textbox.

Hit Search -> Result shows the case list supervised by the contact.

Change the Display Results as to Contacts etc as per your requirement for the returned result.


name "suffix" is missing from import mapping list

Use individual suffix/prefix option for this.


Disappearing CiviCRM menu and Network Error

This error typically means there's a JavaScript error.  Open your Developer tab in your browser (by pressing F12), go to the Network tab and reload the page.  Consider filtering by "XHR" requests, since it's almost certainly a problem there.  Look for the one with a status that's an error and click on it, then check the "Response" tab.  You'll find a more detailed error there.  The error will probably be more detailed if you enable Debugging and Backtrace.  Hopefully that should be enough to solve your problem, or at least update your question with more details!


Can't get Pretty Workflow Messages to work

Group subscription messages are not part of 'System Workflow Messages'. Hence it is not supported for them.
Here is the list of default CiviCRM 'System Workflow Messages'.

Hope this helps!


These are all valid options!  I never use a custom field for this; I use tags or the contact source field.  The "external identifier" field is often useful for this - I'll tag contacts from a certain location with their ID from that source prefaced by an acronym for that source.
As someone who works daily with data migrations, I rarely need to do any of these things if I'm the one who might have to deal with mistakes.  Using advanced logging is good enough; if it's only 350 contacts, it's probably enough to just go by creation date.
That said, I highly recommend that people who don't do this regularly tag their contacts or use the Source field :)


How can I lookup US county from latitude/longitude?

I've never done it, but I think Tyrell's SmartyStreets extension provides it.

One thing to point out, however, for anyone who does it another way: county names repeat a lot, and the ID numbers of counties in CiviCRM are totally arbitrary, unlike states.  The way to look up county is to find the state and then find the county name within the state.


How can I tell if Remote Profiles are in use?

It's not 100% but you can identify submissions that are local origin by referer in the web logs.

Additionally, any POST that is not from an external form will have a preceding GET for the same form path, while a POST that is a profile submission from remote origin will not. Good opportunity to practice a little awk


How should I go about proposing (and then possibly creating) a new CiviCRM feature?

Noah - hi - am sure there will be better answers for this but this might help get the ball/conversation rolling. A lot of discussion about 'is this something that can go in core' happens on https://chat.civicrm.org/civicrm/channels/dev

There is an ongoing debate about what new features should go in to core versus Extensions that ship with core, versus other Extensions.

There is a real focus on tests coming with any new PR.

If you aren't building it yourself? Well if you are commissioning the core team or one of the Partners then they will worry about such things on your behalf. If you are shipping the idea off to freelancer or some such then it is probably the same as if you are doing the dev, ie you are responsible for providing the tests and the arguments for why something should be a fix/add to core versus an extension.

Other resources that might help you answer this more yourself, but expect you have already trawled for them but may be useful for others who read this

https://wiki.civicrm.org/confluence/display/CRMDOC/Develop
https://docs.civicrm.org/dev/en/master/


Include tags or groups in Advanced search views?

In Advanced Search - I don't think that is possible now due to the reason mentioned in the question. But it could be fixed by filing a JIRA/PR etc.

Workaround - Use Search Builder and fire a query for tags not null. Similar to -

Hitting Search would display multiple tags in search results.


Groups correctly set but showing wrong - caching problem?

This sounds very much like https://issues.civicrm.org/jira/browse/CRM-16945

This has only just popped up in testing of 4.6 for my organisation as well.


You would need a Windows web development environment like WampServer and need to create a site on localhost. There you could install wordpress/Drupal/Joomla any of those for which civicrm is available to be installed and then follow steps to install civicrm following docs here: https://docs.civicrm.org/sysadmin/en/latest/

Thanks!


How are civicrm_group and civicrm_uf_group related?

The short answer is that civicrm_group has nothing to do with civicrm_uf_group.  The former is actual groups, while the latter is profiles (groups of user-frontend fields).

If you have no profile with that ID, that would explain why you don't have access. The question really comes down to why you'd have a link there.


In sites/all/modules/civicrm/templates/CRM/Case/Page/DashboardSelector.tpl remove the line that starts with:

<th data-data="subject"

Also there is a similar line in sites/all/modules/civicrm/templates/CRM/Case/Form/ActivityTab.tpl


Missing indices status after upgrading to CiviCRM 4.7.21 on WordPress 4.8

This problem has been raised before and you can view the thread at How to find and/or fix missing indices?

There is also an entry in JIRA at the following link https://issues.civicrm.org/jira/projects/CRM/issues/CRM-20533?filter=allissues

Hope this helps.


Custom fields sometimes missing from profile, until flushing caches

The only way we could solve this was turning off php opcache in fpm/apache/nginx and cli
For other sites with opcache turned off we had to enable schedule job 'Clean-up Temporary Data and Files' with parameters
dbCache=1
tplCache=1
Incase you have memcache enabled then
memCache=1


It is absolutely possible to have multiple line items on an invoice :)

This can be done by using "Price sets". More information about this can be found in the book here:

http://docs.civicrm.org/user/en/4.6/membership/membership-price-sets/

Once you have set up your price set, persons (either administrators or public users who purchases memberships on a contribution page) could purchase 2 memberships in the same transaction. Then 2 memberships will then be shown as separate line items on the invoice.


How to pause, cancel or delete a scheduled CiviMail mailing

If you search for mailings (Search>Find Mailings) and check 'Scheduled' when results com up on the far right there is an option to 'Cancel' under the 'more' menu.

I assume you can pause by searching for 'running' mailings and looking under the 'more' menu but I can't verify as I don't have a running mailing right now.


How to set page title in an angular page?

Short answer: add this to the top of your main angular html template:

<h1 crm-page-title>{{ts('Hello')}}</h1>

More info:

Documentation can be found in the crmUi code.
This feature is in 4.7+ (although if you use it in 4.6 it won't crash - it just won't look as good).
Note the support for setting document title seperately if you wish.


Establishing Group Based Permissions to Limit Display of Content to Logged In User

There is no such way to do this in Civi that I know of. There is no connection/ownership between a Campaign and a Group.

If you have a small number of groups, then yes i could see you doing this via some Views and Webforms whereby each 'group' has its own set of forms/lists and these show only the Campaigns etc which they should see.

I think I get what you are after but not aware of a simple method to do this.


Error trying to upload an image in civimail on wordpress

Found the answer so I will post it here to help others.  The server /tmp space filled up due to a rogue imagemagick process, so Civimail could not upload new images.  This is a known issue with imagemagick - see for example this post.  Deleting /tmp/magick-* files solved the problem.


Secondary recipient email body is blank when sent using "Find Contribution"

To add additional 'To' in email on Find Contribution action is not supported because the html is build using contribution id, Hence manually added email will not have contribution id selected from Find contribution result. It may be little tricky to change the code to support this. Below patch should work if your email body doesn't have contribution tokens.
diff --git a/CRM/Activity/BAO/Activity.php b/CRM/Activity/BAO/Activity.php
index 4fe6e48..ef36a12 100644
--- a/CRM/Activity/BAO/Activity.php
+++ b/CRM/Activity/BAO/Activity.php
@@ -1124,12 +1124,16 @@ class CRM_Activity_BAO_Activity extends CRM_Activity_DAO_Activity {
       $contactId = $values['contact_id'];
       $emailAddress = $values['email'];

-      if (!empty($contributionDetails)) {
+      if (!empty($contributionDetails[$contactId])) {
         $subject = $contributionDetails[$contactId]['subject'];
         $text = $contributionDetails[$contactId]['text'];
         $html = $contributionDetails[$contactId]['html'];
       }
-
+      else {
+        $subject = $subject;
+        $text = $text;
+        $html = $html;
+      }
       if (!empty($details) && is_array($details["{$contactId}"])) {
         // unset email from details since it always returns primary email address
         unset($details["{$contactId}"]['email']);

Other alternate method is to use Advance Search, Display result as Contact, add contribution filter. Select Contact and choose email action.
HTH
Pradeep


Python Civicrm API Keeps Giving 404 Error

The URL was wrong like, @user4278 suggested. It should have been:
sitename.org/sites/all/modules/civicrm/extern/rest.php


Individual Name Fields are not available when adding a new contact

The Editing contact options are listed from option groups named 'Contact Edit Options'. Check if the options are present in the 'Contact Edit Options' option group. If not then adding options should fix the problem. Unfortunately the UI doesn't allow you at add a new option. But you can add it through api/explorer screen of CiviCRM.

Note: Option Name should be the field name same as column name in civicrm_contact table eg first_name, last_name, middle_name etc.


Is there a way to create a two part profile?

You would need to use jQuery to handle selection on first profile then show/hide base class of second profile. Also you would need jQuery to handle validation of second profile as the fields may or may not be required based on selection of first profile fields.


Hiding Extra Profiles when Manually Adding/Editing Registrant

Ah those are not profiles but custom data sets/fields.

Two tips:

1) Make sure that the custom data sets that you create are more specific than just on Participants -> configure it to also narrow down to a specific event.

2) Don't make the custom data fields within a custom data set required - but only make them required in the Profile - once you pull them in there. That way these fields are only required on pages that contain the profile.


Associate a tag with a contact where drupal tables have a prefix using civicrm 5.32.2 - drupal table prefix missing

It looks like you're using the contenttokens extension? It doesn't look like it's been updated in a while but you'll need to file an issue with them. These lines need updating to include the prefix:
https://github.com/sgladstone/com.pogstone.contenttokens/blob/0a949241068afe9b34f49ecacfa0a5bf6a13facc/contenttokens.php#L575-L576


How can I log hours that I have contributed to the project?

You can log your contributions by either:

signing up for an account at lab.civicrm.org which is where most of the work goes on and many community discussions happen; then "joining" a project; then recording your time in a comment using a special code.

or
signing up for an account on https://civicrm.org and then using a special work log import form.

This process, as well as what is and isn't considered a "contribution" is set out in detail in a wiki page in the gitlab project called Community Engagement. The relevant page is:

https://lab.civicrm.org/community/community-engagement/wikis/Tracking-Contributions


Adapted from my response on MM:
In terms of penetration testing that's host specific, the point of penetration testing is to test the entire system, it's as much about your local/server configuration as the PHP code. The CiviCRM codebase has benefitted from several third party audits for security which have resulted in security releases but, and this is important. It's only as secure as your server is configured to be.
We could have the best, most secure PHP code in the world - but a minor misconfiguration on your hosting risks negating it entirely.
The security of CiviCRM, like any other application also relies on regular updates to maintain security - for example any version less than 5.35.1 or the latest ESR (5.33.3?) has known security holes unless manually patched (or updated to one of those supported versions)
Some organisations choose to maintain additional security by separating CiviCRM onto a separate host/server from their website or having CiviCRM behind their firewall in their LAN.
There is some information on our security processes and releases here: https://civicrm.org/security


CiviEvent: prevent registered users from changing their data

Take a look at the No Overwrite extension which prevents name changes on event registration forms.


How do I tell what security issues require upgrade?

I'm guessing the advisory will be posted any moment, but you should be able to go to 4.6.12 instead of jumping to 4.7. I believe the 4.6.x branch is now a LTS branch so you don't need to go to 4.7 immediately.
Update: The advisories have been updated (shortly after I posted) and also an email has been sent to the security list (subscribe here):

This is a notification of a security release for CiviCRM. We recommend
you immediately upgrade to a secure version of CiviCRM.
The most recent releases are CiviCRM 4.7.1 or CiviCRM 4.6.12. 4.4.21
LTS has been released also.
Some fixes affecting security were included in CiviCRM 4.6.10 and
4.6.11, but the email announcements which should accompany such releases was omitted. So, we're releasing 4.6.12 to time with a
security release window and ensure subscribers get notified.
Read the security advisories for details of the various fixes included
in the latest CiviCRM builds:

https://civicrm.org/advisory/civi-sa-2015-010-version-information-disclosure
https://civicrm.org/advisory/civi-sa-2015-011-reflected-xss-in-error-message
https://civicrm.org/advisory/civi-sa-2016-01-path-disclosure
https://civicrm.org/advisory/civi-sa-2016-02-access-bypass
https://civicrm.org/advisory/civi-sa-2016-03-multiple-vulnerabilties-in-dompdf

A number of other non-security issues have also been fixed in the
latest releases. Upgrade now for the most stable CiviCRM experience.
CiviCRM security announcements are available from
https://civicrm.org/advisory and via the CiviCRM Security
Notifications email list.
CiviCRM.org, San Francisco, CA 94117 United States


It might not be implemented completely yet. This bug report is slightly different (join from tag to contact) but suggests it's maybe not complete: https://github.com/civicrm/org.civicrm.api4/issues/128


Are you working in drupal? If so, I recommend using a custom view, rather than trying to get a custom report.


Fatal error: Class 'CRM_Core_Resources' not found in

if it is on drupal module add civicrm_initialize(); method above that line


Why not check against membership status New? The length of time it's New from and for is configurable I believe.

Personally I'd try to use the API with a get command. If the API for this didn't work on the install that I was working on, I would write a custom SQL query for CRM_Core_DAO. Happy to help you further with that if needed.


Ran direct SQL update to bulk update contact names, changes not appearing until editing and saving

It sounds like you imported the first_name and last_name values - but the value at the top of the record is the display_name.  You have two options:

Use your SQL script to update the display_name accordingly.
Export ONLY the contact_id of the affected records (or all records).  Reimport the contact ID via the "Import Contacts" functionality.  All records will be resaved when you import the contact ID and the display_name is recalculated on save.

Incidentally, this is a good if fairly harmless example of why directly updating the database via SQL is usually a bad idea.  If this were imported via the API, the display name would have been recalculated.  In this case, there was no data loss - but if you had tried updating, e.g. donation amounts, the lack of corresponding changes to your line item and financial transaction tables would be difficult to recover from!


Civi CRM Sparkpost - pesc.sparkpost - Error Sending Group Subscription Welcome Emails

Put

define('CIVICRM_MAIL_LOG', '/whereever/you/want/the/log');

in civicrm.settings.php and this will log what it's trying to send. If the from address appears incorrect then whatever it is appearing as might lead you to the problem.


Why are contacts getting multiple membership scheduled reminders?

This is a bug as reported here - when a membership end date is changed the system keeps sending scheduled reminders.

The issue is fixed in 4.7 but remains for 4.6