When enabling logging/auditing for multisite (multi-domain), does it need to be enabled for each site/domain?

You're correct that logging is at the database level.  It seems like a bit of a loophole that it can be enabled-disabled on a per-domain basis.  I would set it to TRUE on all domains to avoid unexpected behavior, but my guess is you'll only have a problem if you disable it on one site and expect it to continue working on others.


Googlebot & Could not find valid value for id

Just speculating here, but seems like google is getting the links either from the pages and/or some unknown static web pages.

A possible, but not so great solution is:

a. Create and register a new CiviCRM fatal handler

b. If you detect the user agent is googlebot and/or some other friendly search engines, redirect to main page of site, maybe with a CMS message

c. If not, keep fatal message as is (unless you want to redefine this also)


How can I send an invoice to a participant, manually, without double sending

daveawe12323, welcome to stack exchange civicrm.
There are two ways of sending notification to user

Send Event receipt.

When you edit the participant using backend participant form, you should see 'Send confirmation' option. When checked the participant will receive receipt about the event having details of event and payment. But no activity will recorded in the system when a receipt is send.

Send Tax invoice

If you have 'Tax and invoicing' enabled, than you can create a invoice on the payment. You can download the invoice and send via email or you can email the invoice from CiviCRM. Both the option will create activity in Civi to track when the invoice was downloaded or emailed.


Subscribe to group via a webform - pass in group Id

Here's the code I wrote to achieve my goal ...

function mymodule_form_alter(&$form, &$form_state, $form_id) {
  if (strpos($form['#id'], 'webform-client-form-') === 0) {
    if (in_array(
      'default-via-parameter',
      $form['submitted']['mailing_list']['civicrm_1_contact_1_other_group']['#attributes']['class'])
    ) {
      $params = drupal_get_query_parameters();
      if (filter_var($params['gid'], FILTER_VALIDATE_INT, array('options' => array('min_range' => 1)))) {
        $form['submitted']['mailing_list']['civicrm_1_contact_1_other_group']['#default_value'] = array($params['gid']);
      }
    }
  }
}

Details ...

Check if it's the right form
Check that I want to allow the default to be overwritten (via a CSS class attached to the field)
Check if the Group Id is supplied as an argument, and is valid
Set the default group to the one supplied

The form can be used without supplying a default to choose any group.
If a default is supplied the user can use this, or even override it


After a CiviCRM update on WordPress the CiviCRM menu has disappeared

The problem only happens with certain configuration situations and seems to be related to changes in the asset caching system.

As a quick workaround, you can disable Asset Caching at:
/wp-admin/admin.php?page=CiviCRM&q=civicrm/admin/setting/debug&reset=1


Recommendations or Experiences on Archiving Mailing Data

we have a custom overnight routine that copies data from civicrm_mailing_x and civicrm_mailing_event_x tables to duplicate tables with a archive namespace and then deletes the appropriate rows from the main tables. The biggest things is making sure that you adequately understand the relationships between the tables so you don't accidentally delete data that hasn't yet been archived due to a Foreign Key constraint. The other thing to note is that doing it this way means you loose stats from the reports etc for the mailings that have been archived.


I would recommend either:
1) Using Drupal Webform to capture the data (are you on Drupal?)
2) Adding a custom template for this profile
3) Using a custom theme for this page
4) Report this as a bug to be fixed in future versions of Civi.


Automated contact filtering for event attendees?

You can write a plugin that hooks into civicrm_post that will allow you to do anything you like with the newly-registered contact.

add_action( 'civicrm_post', 'my_do_stuff_after_registration', 10, 4 );
function my_do_stuff_after_registration( $op, $objectName, $objectId, $objectRef ) {
    if ( $op != 'create' ) return;
    if ( $objectName != 'Participant' ) return;
    $contact_id = $objectRef['contact_id'];
    // ... do anything you like with this contact
}


Advanced Search gives different dataset than same search in Reports

Advanced Search and Search Builder produce a list of Contacts. But a report can pull data other than Contacts and the Group By in the report can be such that you can get a Contact more than once in your output. For example when pulling a Membership or a Contribution Report.

For a Constituent Report if you're seeing the Contacts more than once: hit the checkbox for Contact ID (under Columns) - to confirm these are the same contacts in your CiviCRM database. If the Contact IDs are different - then go and merge them. If Contact IDs are the same then you are likely selecting a column that a contact has more than one bit of data for.


Why are only some membership status rules working?

Not sure how else to mark this as answered, so I am accepting the explanation from Parvez in the comments below. Basically, it seems that once "Expired" status is achieved, it no longer gets changed.


How do I install the "Birthday by Month" extension in CiviCRM 4.7.31

So that means it's not officially tagged as compatible with 4.7.x - and/or not reviewed (requirement for automated distribution);


Drupal's Aggregate Javascript breaks CKEditor Config

You're right, that was a bug. I poked around and found a spot for the js that doesn't break under aggregation:

https://github.com/civicrm/civicrm-core/pull/7711


How do you update the contact information of someone in CiviCRM?

EDIT: I figured out what went wrong. The gender_id change must be specified as a parameter in the .create() function. It shouldn't be changed in the callback.

The correct code is:

crmAPI.create('contact', {id:'12966', gender_id:'2'},
   function (result) {
       console.log(result);
       val=result.values[0];
       console.log('UPDATED CONTACT: '+ val.display_name + " " + val.gender_id + " " + val.country_id);
});


Error 500 when using Mosaico with large content and number of users

The problem is caused by insufficient php memory. My php memory setting was 256MB and when I increased that to 512MB the problem was resolved. I don't know what setting would be 'correct' since I am not keen to retain php memory at 512MB.


There have been no significant changes or modifications to the shopping cart functionality in CiviEvent. You might want to give it a shot and see if it does work for you and/or meets your needs.

I suspect that code needs some love and care and might require some developer skills to fix and improve. There is no maintainer for that part of the civievent code base


I think this issue may explain what's causing the issue in how it's ordering (or not ordering) https://issues.civicrm.org/jira/browse/CRM-17708

Not a solution but maybe a little further understanding.


View of CiviCRM Profile Fields on Drupal User Edit Page Permissions

To get a Drupal View to show only the civi data that belongs to the current user, set up a View Relationship to join the Civi Contact to the Drupal User. Then add a Filter using 'current user = Yes'. Should do the job. Hopefully my terminology is close enough to what it says on the page


We're just setting up for a large test grid with master on CiviCRM 4.7 - I've done some preliminary testing - and look forward to completing the entire grid. If you're able to run some tests yourself - clone master from https://github.com/iATSPayments/com.iatspayments.civicrm - and let us know what you find [in the GitHub queue is best].


"Loading Failed" when soft crediting to a Personal Campaign Page

You're right there was a javascript conflict affecting popup forms on the contribution search page. I've submitted a fix which will show up on the demo site tomorrow and in the next release (4.6.5).

For now, you can work around the problem by right-clicking the "edit" link from the search results screen and opening it in a new tab instead of a popup.


Trouble understanding how Profiles and Smart Groups are supposed to work together

Hard to know quite how to unpick what you have posted but the bit that stopped my eyeballs in mid-skim was this

  setting the "add to smart group" field of, say, the Volunteer profile to "Volunteers"

Not sure if you have the concept but a Smart Group IS the results of the Search used to find the people who should be in it, ie it is a set of criteria, not a set of contacts.

By adding contacts to a Smart Group via a Profile means they ARE in the Group, but they are not SMART - ie you are not using the 'criteria' to determine if they are in the Group or not, you are force adding them (which is allowed for Smart Groups but you have to understand the distinction)

Not sure if that helps


ISSUE upgrading CiviCRM 4.6 to 4.7 (or 5.1) in Wordpress (comes from a Drupal multisite)

we were able to update CiviCRM from ver. 4.6.18 to version 5.2.1! I will tell you below how we solved the problem:

a) we realized that we had 3 extensions (CiviVolunteer + Angular + CiviRules) that we did not use. CiviRules, in particular, needed updates (a Yellow Warning said us that it was necessary to update the DB, but the relative link did not work);

b) then we unistalled all the extensions and canceled the relative permissions in Wordpress Access Controll.

c) we cleaned up and verified that no traces were left.

The upgrade was successful.

It must be said that we had installed the three extensions for testing purposes, but if they were in production ... :(


Create a Google Map showing positions for every contact in a group

This should be possible out of the box. CiviCRM has mapping capabilities documented here https://docs.civicrm.org/user/en/latest/initial-set-up/mapping/

There is an extension using open source v google mapping if you want: https://github.com/eileenmcnaughton/org.wikimedia.geocoder

Once you have your mapping working, then you should be able to do a Search and use the Action 'Map Contacts' (or something similar)

For Drupal you can also use Views and Leaflet which may give you more options

Hope above helps

And as Demerit mentions (just to try and get all the good bits in one answer) - Go to Search - Custom Search - Proximity Search, then from the results action dropdown choose map contacts


Change Email Address and Name Fields from required to not required during uploading of records

Contacts have to meet one of two criteria to be imported.

Either: First Name AND Last Name

Or: Email Address.

(in contrast to First name AND Last name AND Email Address).


Missing fields and reports in database after migrating to a new server

There are a few questions combined here I think. From what you describe there may be other problems afoot, but hopefully these two suggestions may help you make some progress.

Why do I see the error DB Error: no such field with Unknown column 'civicrm_uf_group.description' in 'field list'?

It sounds like your source and destination CiviCRM may be different versions. Check the codebase of your source and destination CiviCRM and if the destination is newer, make them match.

Up to you whether to run the upgrader on the source before migration or on the destination afterwards. It may be as simple as visiting the CiviCRM upgrade URL on the destination server.

Why doesn't the DB migrate when I exclude those tables?

The docs actually say If copying an existing install don't skip the cache tables they will not be created automatically, so you should NOT exclude those tables if you are migrating CiviCRM to a new server.

(It looks like the docs could be improved there, they give different-yet-kinda-identical advice for dumping Drupal and Joomla and don't mention how to deal with WordPress?)


Which email address should the printed Case Report present for the Case Manager in the Role Section of the Report?

This sounds like a bug. If you look in CRM/Case/BAO/Case.php in getCaseRoles() it has this in the SQL:

LEFT JOIN  civicrm_email ON (civicrm_email.contact_id = civicrm_contact.id )

If you change it to

LEFT JOIN  civicrm_email ON (civicrm_email.contact_id = civicrm_contact.id AND civicrm_email.is_primary = 1)

does that fix it?


I cannot find Participant Count and Max Participants in Edit Price option for price sets WordPress

My mistake.. I had configured the price set as a contribution, not an event fee.


How to alter the options inside element of a civicrm new membership form?

I'd do it like this:

First get the name of the select element, and then get the elemement using this

$element =& $form->getElement('name-of-select-element');

i.e. don't hard code that 4.

You've got the options array correct, i.e. $element->_options

Now you can just replace that options like you're doing, but depending on the widget in use it can be confusing how it's structured. The one I was working on recently has option['text'] as the label. Sorting by array values can be done manually or cleverly with some php and callback functions if you're ambitious.


Is there a recipe for converting fields to select2?

In general, a field can be made into select2 simply by adding the css class "crm-select2" to it.

Here is a PR to add it to the existing location field you mentioned. Please try it out and leave a comment on the PR to say you've tested it and how it works for you - that will speed along the review process and we'll be able to get that merged into the next release of CiviCRM.

Search builder is kinda it's own thing. Changing it to use select2 is certainly possible but would take some doing, you'd need to alter the javascript code somewhat.


Certain Emails, not all are falling into SPAM

Receiving mail servers use a variety of different metrics to give your mail a 'spaminess' score to decide whether it is spam or not.

  Is there a process difference when mail is triggered by CiviRules or CiviMail rather then directly from the contact record?

There are small differences in the email headers generated via different routes. These may be affecting the score. The differing content is likely having an effect as well (even simple messages can appear spammy to receiving mail servers).

My hunch is that you don't have DKIM set up. Setting up DKIM will reduce your score and put you under the threshold in both cases, though it wouldn't work if:

your emails (headers and content) look really spammy to the receiving mail server's algorithms
clients using the receiving mail server keep on marking your emails as spam

Typically a receiving mail server will add a header to the email with 'authentication results' that typically refer to DKIM, SPF and DMARC. For example, when google receives a mail, it adds a "ARC-Authentication-Results:" header.

Posting those headers would be useful so we can check what it says about DKIM and SPF:

If you are sending via mail() is it likely not using DKIM. The easiest way of adding DKIM is to switch to a third party mail provider.
Also, you may have (in the eyes of the receiving mail server) a mis-configured SPF record, so worth checking.

A couple of final things to note:

Each receiving mail server / service has its own algorithms. What works for one, might not for another.
You need to give the receving mail server time to get used to this new source of mail (regardless of whether the config is correct or not). If the total  volume of mail is low, receiving mail servers may never get used to it. This is one reason why many people choose to use a third party service.


Members Can't Log-In to renew membership

Are you using Drupal? By default Drupal does not allow login by email. But there is a module for that.


How to display remaining available spots for an event on the public page

If you haven't done this already - I recommend customising the template. I have experience of doing this. You'll want to create a templates override file, and then embed some PHP that accesses the remaining places. It's fairly straightforward. If you want me to go into more details then please message me!


Joomla CiviCRM Upgrade 4.3.9 to 4.4.x version

It seems that you may have deleted the 'Activity Assignees' option from the 'activity_contacts' option group. That's what the missing id is supposed to refer to in IN (2, , 3)


Upgraded to 5.3.2 from 5.3.1, now warning Cron not running - log shows it is at 10 minute intervals - Ignore?

Can you please check MYSQL and PHP are using the same timezone? This sometimes happens when both are running on different timezones.

You can find a solution for similar sorts of issues here.


Minute as a time unit for scheduled reminders

It's a legitimate question although even if you could do it per minute, you'd then have to have cron run every minute, which is technically possible but might be a bit excessive.
If you're talking about reminders for activity assignees, an alternative might be to turn on the setting at Administer - Customize - Display Prefs - Include ICal Invite to Activity Assignees. Then they can put it in their calendar and they can set it to remind them as desired.


Where in the database is the Date Added for Group records?

That information is contained in the table civicrm_subscription_history

To remove them from those regular groups you would need to remove them from both the civicrm_subscription_history table and the civicrm_group_contact table

Seamus


Why are locations deleted when an event that uses them is deleted?

well after a bit of experimenting the answer is.. they just are.

Here's a workaround that worked for me.

1 create new location type "location only"
2 make new events of type "location only" and give the title the same as the location you want to manage eg if the location is "Town Hall" then the name of the event will be "Location Town Hall" and the venue will be "Town Hall"

now it doesn't matter what happens with other events that might have used "Town Hall" as their location.. "Town Hall" will survive


Renew Link showing - The page you requested is currently unavailable

For this case the originating contribution PageIDs were disabled. Once re-enabled the renewal button worked fine.


If the events are all part of a repeating event series, then you should be able to change them by changing one, and selecting the option to change all related events.

Otherwise, I'm afraid there's no built-in way to bulk change event types.  If you know what you're doing with the API Explorer or MySQL, you can bulk change the event type on the back end - there's no real harm unless you have custom fields tied to the old event type, in which case they might show up unexpectedly on a report.


Event part payment & multiple registration

Tapash,

I believe CiviCRM allows one to register for same event with same email address multiple times, if the setting 'Same email address?' under 'Online Registration' is enabled for the event.

HTH

Pradeep


List all Group linked in ACL for specific User

Found a way to list the group linked with contact based on ACL

$group = CRM_ACL_API::group(2,$request_contactID);

The above API group function returns the group ID for the requested contact ID

Thanks


Price Sets - Won't let me use recurring contributions

Turns out it was a bug that I was able to fix by updating to the latest version of civicrm 4.7.4


Has anyone figured out how to deal with "dovecot" email handling on Siteground?

I presume that you are talking about bulk mailings. I have got this working for small volumes hosted on Siteground. I had a lot of problems originally with subfolders though can't remember the details. My solution was as follows.

Outbound use mail() and in Administer>>CiviMail>>Mail Setting, set Mailer Batch Limit to 100 and Mailer Cron Job Limit to 1. With the Send Scheduled Mailings cron job running every half hour this throttles the outbound mail within SiteGround's limits.

Inbound i set up an account on GMail to handle the bounces so bounce processing account (Adminster>>CiviMail>>Mail Accounts) was set up using IMAP to GMail and address examplereturn@gmail.com and localpart return+ and email domain of return.example.org. I then forwarded @return.example.org to examplereturn@gmail.com. The GMail account needs some special settings as described in https://docs.civicrm.org/sysadmin/en/latest/setup/civimail/inbound/#return-channel-google-apps. All rather complicated but nothing else I tried worked.

Hope that helps.


Notification of address change (for external accounting software)

Use a combination of smart groups, tags, CiviRules, and CiviReports.

A. Create a Smart Group

Use Search Builder to search for Contact :: Envelope # :: Not Empty OR Not Null OR > 0
From search results, create new smart group (called "Has Envelope #")

B. Create a tag called "Update External Address"

C. Setup a CiviRule

Create a Rule with the Linked Event as "Address Changed"
Linked Condition is "Contact (not) in group", "In one of selected groups", "Has Envelope #"
Linked Action is "Add tag to contact", "Update external address"

D. Create a Report

Create a report off of Constituent Report.
Filter the report to look for contacts tagged "Update External Address".
Setup report for email delivery (if needed).

E. Office manager runs the report at her discretion (or gets emailed the report) and updates the addresses in the external program.

F. Once the address is updated in the external program, untag the relevant contact.


Is there a way to regenerate the display and sort names?

As mentionned here :

You can export the first name, last name and the internal ID
Re-import the data by matching the internal ID

This process should regenerate the sort name and display name based on the current settings.


From Search its not possible i guess unless you save the mapping and reuse it, but from report you can generate csv from the fields you have selected as to display


Change Log Tab Excrutiatingly Slow - Poorly Performing Query and Fix (from 8 minutes down to 4 seconds)


The normal way to do this is to automate the execution of the scheduled jobs by setting up a cron command.

You can define how often that cron command is executed. If you set it every 5 or 10 minutes, then the Mailing will be sent at maximum 5-10 min after your submit.

The reason why Mailings are not send immediately is that CiviCRM is build to send very large Mailings. An action that is started via the browser has usually a maximum execution time. It is not unlikely that for larger Mailings it takes longer to send to all of them then that time. The cron command is run on the server and has no limitations in that regard.

Much more information about cron and how to set it up: http://wiki.civicrm.org/confluence/display/CRMDOC/Managing+Scheduled+Jobs


CiviContribute adding $200 even to every transaction

Problem turned out to be js conflicts with Themefy popup messing up the js files in civicrm.

Disabling the plugin from /wp-admin/plugins.php?plugin_status=all&paged=1&s removes this problem and contributions go through to Stripe as intended


Multiple values for custom fields in Activities?

If someone interested I'm developing a custom extension to extend multi-value custom groups for Activities.
Still work in progress: https://github.com/ixiam/com.ixiam.modules.multivalueactivity


Recaptcha not showing on contribution form

OK, I found the problem and it was my idiocy.  I was trying to get it to show as a logged in user, and it was not.  When I went as an anonymous user, it shows up just fine.  It totally makes sense, just was not immediately obvious to me.

John


How to automatically set PDF 'Activity Subject' from template subject?

Tracked this one down. It worked out of the box in 4.4.x, but doesn't in 4.5.x. Not sure whether it was deliberate, but it's pretty easy to 'fix'.

Edit templates/CRM/Mailing/Form/InsertTokens.tpl and change:

  cj.post( dataUrl, {tid: val}, function( data ) {
    if ( !isPDF ) {
      if (prefix == "SMS") {
          text_message = "sms_text_message";
      }
      else {
        cj("#subject").val( data.subject );
      }

to:

  cj.post( dataUrl, {tid: val}, function( data ) {
    cj("#subject").val( data.subject );
    if ( !isPDF ) {
      if (prefix == "SMS") {
          text_message = "sms_text_message";
      }

It's explicitly only setting the Activity Subject for non-PDFs, which is weird. It looks like it was accidentally(?) reverted when SMS support for recurring contributions was being added. Have created an issue.


How to get php $_SESSION variable inside a template

Try following:

    // php code;
        $_SESSION['test'] = 'Hello World';

    // assign 'Hello World' to .tpl
        $this->assign('test', $_SESSION['test']);

    // use '{$test}' following in .tpl file to display on Thank you page, For e.g

         {$test}	 // this will print 'Hello World' on page


blank emails from cron after upgrade Wordpress

This turned out to be something adding a blank line in the cron output (see comments above). Since it's not clear what is adding it or how to track it down, a workaround is to adjust the cron command slightly:

your-cron-command | grep "."

which will remove all blank lines from the output, so if the output is just a newline then after the grep the output will be completely empty and not send an email as normal. In some hosting control panels you might need to backslash the pipe character, or create a wrapper script and have cron call that script.


Mosaico email template extension or Mailchimp email integration?

We recommend Mosaico so that all the data stays in CiviCRM. Has it been explained to you that Mosaico works as 'part' of civicrm not as a third party service and hence no 'integration' or 'charges'?


How to import organizations with active relationships

Thanks to @petednz-fuzion, solution was very simple:

install the Related permissions extension which is already included in CiviCRM extensions and that you can add from : domain.com/civicrm/admin/extensions?reset=1
Set the parameters the way you need at: domain.com/civicrm/admin/reltype?reset=1
Select the relationship type you need to set
Scroll down to Related Permissions Settings and set them the way you fits your situation best


Not so much an answer as a possible approach to debugging:

1) find out the URL that this command visits and see if you get the same result. If so it's a bug with authorize.net

2) if that URL works then it's a bug with civi. In this case get it to spit out what the api key is and check that against the vale you've entered, checking they're the same.

The error should lie in one of those two places.


Contribution Detail Report- "contact name suffix" isn't showing up as one of the possible report criteria

Allison, you're correct, neither prefix nor suffix is available (surprising)
Assuming that coding isn't an option.  There are several ways to can export the contacts prefix/suffix.  For example You can...

Create report you want and include civicrm "contact ID"

If you can also create a contribution search that returns the same contacts, then you can export the search results and include the suffix field.

If you can't create a contribution search, then you can do an import "Update" and add a "tag" that will identify the contacts in your report (match on contact ID) You can then run a search and export the suffix.

If you'd like the report to include suffix, you can submit a request to the paid issue queue and the Core team will give you an estimate on what it will cost to add suffix.  Seems like a good way to contribute back a function that others would like as well.


How do I get the External ID to appear in my contacts through Webform?

so your aim is to let the end user change the external id directly?

It has several constraints (eg. it has to be unique) that made me wonder if you wouldn't be safer to create a custom field to store whatever you intend to put into the external id.

External id is a fairly technical field that I would not expose directly to the user, both to avoid consistency problems and privacy leakage.

Eg. if you are using it to store the id from another system (say a membership id), it would be fairly easy to check if a specific member id is already registered in the database: try to create or update the webform with that id. If you have an error, it means the id is already registered in the database.

With a custom field, you wouldn't have that constraint of being unique.


I would check civicrm.settings.php for the CIVICRM_UF_BASEURL to ensure it has a trailing slash.

If you update your question with your CMS and the CiviCRM version, there might be more specific advice folks can give.


From Find Participants, you should find an option to Print Event Name Badges - you can see this here is you want to check http://d46.demo.civicrm.org/civicrm/event/search?reset=1

I do not think you can do it directly from a Report. If there is a reason why you can't easily select them via Find Participants, in Reports you can add your Participants to a Group, then use Adv Search, and select that Group, and set Display Results As, to Event Participants, then you should have Print Event Name Badge available to you under Actions. HTH


great that you are trying to add your own actions! And great that you are sharing your exerience with the documentation here.

If you added a .mgd.php file you will have to do a '/civicrm/clearcache' to make sure that your class is registered. Did you do that? If not give that a try and that might fix your issue.


Upgraded to 4.6.7 and now the Register links in the Upcoming Events list block have a typo

In Views, I went to Edit view civicrm_events, Events List view.

Click on field CiviCRM Events: Start Date.
Under Rewriting, select the checkbox Output this field as link and make sure it is corrected to [yoursite]/civicrm/event/register?reset=1&id=[id]. Then click Update and Save.


Any OTHER way to disable DB logging (CiviCRM 4.6x)?

UPDATE in case anyone stumbles on this question.
There is a working answer at  Civi 5.9 - DB Error: no such table / cannot disable logging


How to install Wordpress/CiviCRM on arvixe hosting server

If you've just upgraded CiviCRM for Wordpress and you see this error, check that you've restored the civicrm.settings.php file from your previous codebase as per steps 2 & 3 of Upgrading CiviCRM for WordPress

In step 2 of the upgrade, you make a copy of wp-content/plugins/civicrm/civicrm.settings.php
In step 3 of the upgrade, you restore this copy to wp-content/plugins/civicrm/civicrm.settings.php

Omitting this, or having a civicrm.settings.php which is unreadable to the webserver, may lead to the "you do not have permissions to access this page" error.


The key to getting bounces sent to the right account is the Email Domain of the Mail Account that you've configured for Bounce Processing. The emails that are sent out use that domain for the "envelope" from address (which is not the one you see as sender or recipient, but the one that's hidden in the smtp conversation between machines).

As more detailed explanation is here: https://docs.civicrm.org/sysadmin/en/latest/setup/civimail/inbound/

In summary:

The "envelope" From address for a civi message is built uniquely per message and recipient as "uniqueid-per-recipient-per-message@bouncedomain.org". When it bounces, the bounce processing will process it based on that from address to determine what to do with it.

So your bounce domain is usually NOT your from address domain, it's a special domain that can handle bounces. You normally would not want to do this yourself, though it's been done and there are instructions to do it using specially setup gmail addresses using some more involved addressing magic.


I found the solution. I needed to manually set the URL Resources paths. Although it had the variable set during setup, it was not the absolute path.


Validation radio custom fields on civicrm_validateForm hook does not work

Make the field required all the time. Add another choice to the radio called "Not Required". In your validate hook check if the contact subtype is AA and if they chose Not Required set the $errors variable on your radio field to show your error. Since you made it a required field it will be in the fields array.

For inline edit the formName is CRM_Contact_Form_Inline_CustomData and you will need to look up the contact subtype using the api, e.g. civicrm_api3('Contact', 'get'...). Use the contact id from $fields['cid']. (Go to /civicrm/api in your browser - it's very handy for getting the api syntax correct.)

Also note your custom field in edit mode will have a different name. It won't be custom_70-1 it will be custom_70-3838 or something like that, so you'll need to either look it up from $form first (e.g. in the groupTree element) or do something like loop through the $fields keys and compare substr($key, 0, 9) == 'custom_70'.


How can we give Admins more control on what is shown for non-existent pages such as contribution pages

This same issue bothers me because I see so many fatal errors in logfiles across multiple servers when all that is happening is that a contribution page has been disabled / removed. I'd love to see it addressed in core if possible; CiviCRM should be capable of handling invalid inputs without showing the end user an unthemed, unhelpful error message.

One extension does already address this - ca.bidon.reporterror. It includes an option to detect those fatal errors (a user hitting a contribution page with invalid ID, or a disabled contribution page, or with an expired session) and redirect them to a default contribution page. This is a big improvement on the default behaviour! However, it's not included in core, and it comes bundled with other behaviours which might not be what all sites want.

Ideally, I'd like to make progress on tickets like CRM-19157: Replace CRM_Core_Error::fatal() with CRM_Utils_System::permissionDenied() so that we can drop the ugly (to users) and noisy (to sysadmins) "fatal" approach to handling invalid inputs in favour of a more "controlled landing" when things go wrong - which can both deliver a helpful and on-brand experience to the user seeing it, and reduce the level of log noise which results from the use of CRM_Core_Error::fatal() as a technique to bail out.

Instead we should deliver be delivering a nuanced experience to both users and admins: where we currently have CRM_Core_Error::fatal() we should throw an exception with information about what went wrong, and then CiviCRM can handle those exceptions appropriately. Broken contribute URL? Direct viewer to a default contribute page! User triggered IDS / DDOS / flood control? Maybe we can dispense with the pretty theme ...


CiviCRM does not have permission to write temp files

There's no single perfect solution to this, but there are several adequate solutions. To highlight some trade-offs among the approaches raised so far:

For each security principal, use separate data-directories (like bgm's answer).

Pro: Portable -- works in many different environments. Doesn't require any special tools or root permissions.
Con: Only works when data can be split apart by user. For example, it could potentially work for logs/caches (because they don't really need to be shared) but is more problematic for uploads/attachments (because both users should have read/write on the same objects).

Create a cronjob or daemon to adjust permissions (like Chris's answer)

Pro: Portable -- you can design the daemon or cronjob to build on the traditional POSIX UGO/RWX triplets. Works with all data (logs/caches/attachments).
Con: Requires installing/running a new root-permissioned service. Watch out for symlinks/hardlinks.

Use the operating system's ACL features (like amp's linuxAcl and osxAcl policies)

Pro: Works with all data (logs/caches/attachments). Doesn't require daemon or regularly running as root.
Con: Not standardized -- technical steps depend on the environment (OS/distro/filesystem). Sometimes applications try to be clever and override the permissions -- which breaks ACLs for specific files/use-cases.
(Note: amp tries to abstract this, but as with any abstraction, it's probably not worth the overhead unless you buy into the general vision.)


Include Relationships when creating profile

There is an easy way to do this if you are using Drupal and that would involve the Webform+CiviCRM module. Happy to explain more if you are on Drupal - but you don't mention your CMS


Thank you for supporting CiviCRM! You can use this ESR form for members to request a download key.

There is more information in the FAQ on the ESR page.

When we launched Extended Security Releases (ESR) as a service, we were not sure how many people would sign up, so we started handling the requests manually. It seems like it's here to stay, so we are currently working on automating the process.


The solution was to make sure the Civi scripts loaded on the page. This answer provides guidance on how to do that.


Is there a Donate Now type button that I can just plug into my drupal site?

If you are wanting to embed a form on another site then you should look at

remoteform https://github.com/progressivetech/net.ourpowerbase.remoteform
drupal 8 webform https://youtu.be/oMgOprfJTWA


Profile search/listings not working in 4.6.3/4?

For a profile field to appear in the search settings, it needs to be:

Have the "is searchable" option selected
Have the visibility, set to: "Public pages and listings"

the latter is needed, so that everyone can see the fields and hence search on it.


How do I find duplicate contacts by nickname?

You can create a view only custom field that you set with a civicrm_post hook when contacts are created/edited. It has the value of nickname if nickname isn't null, else first_name. Use that field in your dedupe rule.


I had the same problem. It happened after upgrading CiviCRM. The cause was the html. There were problems/errors with the html template along with too many tables. We used the W3 validator (https://validator.w3.org/). That helped a lot but did not find all the problems. So we just kept testing portions of the html until we found the section that was preventing CiviCRM from saving. Eventually we were able to clean up the html and CiviCRM was able to save it.


Pointing to /civicrm breaks Wordpress site, 404 HTTP response

Can we verify a few things?

What are your WordPress permalinks set to?

They should be Post Name (%postname%)   That setting is here:  example.com/wp-admin/options-permalink.php

This will add to your .htaccess file the following:

# BEGIN WordPress
<IfModule mod_rewrite.c>
RewriteEngine On
RewriteBase /
RewriteRule ^index\.php$ - [L]
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule . /index.php [L]
</IfModule>

# END WordPress

Now can you go to example.com/wp-admin/admin.php?page=CiviCRM&q=civicrm/admin/setting/uf&reset=1

This is the menu option Adminsiter -> System Settings -> CMS Database Integration.

You should see 'civicrm' in the WordPress Base Page setting.   If not, add it there.

Confirm that there is a WordPress page titled 'CiviCRM' in the list of WordPress Pages: example.com/wp-admin/edit.php?post_type=page

This page should have a permalink of example.com/civicrm

Once all these settings are in place, you should be good.


CiviMail causes read timeout on Methods.pm

It sounds like your site or hosting environment runs cron via some Perl wrapper.

You may need to talk to your hosts about hitting this timeout when cron tasks are running - if they call cron via a web based tool which times out after a few minutes, that tool may not be suitable for running Drupal cron.

Talk to your hosting experts and see if they can help?


Import contacts: can't get past the "Choose Data Source" screen

I figured it out.  The CSV file was malformed.  I rebuilt it and it worked perfectly.
Richard


Using Wordpress for installing Civi got these errors!

Please make sure all files of civicrm were uploaded in your site files and file wp-content/plugins/civicrm/civicrm/CRM/Core/Config.php is present there.

Also make sure your database credentials are correct and following lines are present in the end of file civicrm.settings.php

require_once 'CRM/Core/ClassLoader.php';
CRM_Core_ClassLoader::singleton()->register();


Is there a way to schedule mails depending on whether or not a contact has opened a previous email?

I've investigated this before.  The answer is "no, not without an extension", but we decided that email open rates were never reliable (because most email clients don't download the images by default).  It can give you an aggregate sense of engagement but isn't accurate down to the individual level.


What should the outbound SMTP configuration be for Office 365 Exchange?

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

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

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

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


Event custom fields not carried over to repeat events

This sure seems like an oversight on CiviCRM's part.  Good call for testing on the demo to rule out some weird problem on your site.

At this point, the bug needs to be reported and fixed.  Go to issues.civicrm.org and create an issue.  That way it can be triaged and assigned to the best person to fix it.

Unfortunately, until a fix comes out, you'll have to manually select the new recurring events in the custom data settings.


Can a CiviCRM member upload post content to a cutstom post type in Wordpress?

Users are managed by WordPress and you can give specific roles permissions to access components in CiviCRM. Content management is handled by WordPress. I am not sure of all the details but it sound like you will need to manage permissions in both CiviCRM & WordPress for specific roles.

Take a look at this post. It has info on a similar scenario with some info on plugins that might help.
Including Member Login to a CiviCRM Site

Hope this helps...


Thousands of new contact records created from CiviMail (Postfix/Gmail?) mis-configuration

You say: Should I just delete the "default" email-to-activity entry

AFAIk there is no such default. Looking in dmaster.demo.civicrm.org i do not see one

https://dmaster.demo.civicrm.org/civicrm/admin/mailSettings?reset=1

I don't know that you need to delete it but changing the email address it uses should stop the problem.


Disable Outbound email or change SMTP server with an SQL Query?

In civicrm.settings.php, add the following:

define('CIVICRM_MAIL_LOG', 1);

This will route all email to files/civicrm/ConfigAndLog/mail (Drupal) or media/civicrm/ConfigAndLog (Joomla).

You can also specify:

define('CIVICRM_MAIL_LOG', "your_file_path");

to set a specific output file.

See https://wiki.civicrm.org/confluence/display/CRMDOC/Debugging+for+developers.

Another option is to perform the following queries to kill any scheduled or queued mail:

UPDATE `civicrm_mailing_job` SET `status`= 'Complete' WHERE `status` IN ('Scheduled', 'Running', 'Paused')
DELETE FROM `civicrm_mailing_spool` WHERE 1


Why has entering a date changed in 4.7.16? Can it be reverted?

There was an issue due to some refactoring around the handling of date fields to try to standardise them. This lead to a problem most notably in birth date fields in 4.7.16 but i'm guessing can be found elsewhere. This issue was raised CRM-19982

I suspect the same fix will most likely work for you. If you have a test site or would like to give a test a shot. I would recommend you look at the changes made to the files in the DAO directories here in the Pull Request and make the same changes on your server.

That pull has been merged into 4.7.17 which will be released i think in the next week or so


creating summary token for same donor but different categories

Have you seen the summary fields extension?  I don't think it does exactly what you need out of the box but you can define additional fields using your own criteria with a little coding.


Trigger Membership Status Calculation for all memberships manually?

There is a CiviCRM schedule job 'Update Membership Statuses' that calculates membership status and updates the membership. You can either execute it manually through browser or turn on and run through cli or cron.


Found typo causing error in CRM_Utils_System_DrupalBase->formatResourceUrl()

Your code path is slightly different from your files path:

code: .../web16/web/sites/...

files: .../web16/websites/...

That looks like a typo - check your directories and resources settings at Administer > System Settings > Directories and Administer > System Settings > Resource URLs


How to get data via relationships with APIv4?

Not sure if this is what you're after but works for me; the 'join on' is a bit hidden in the 'Select' box.

CRM.api4('Relationship', 'get', {
  select: ["contact_a.display_name"],
  where: [["relationship_type_id", "=", 5]],
  limit: 25
}).then(function(relationships) {
  // do something with relationships array
}, function(failure) {
  // handle failure
})


You need to set a WordPress base page. Create an empty page (e.g. titled "CiviCRM" with the slug "civicrm") and enter the page slug in the basepage field in wp-admin/admin.php?page=CiviCRM&q=civicrm%2Fadmin%2Fsetting%2Fuf&reset=1. Your form(s) should then render properly.


Do you mean separating the Drupal and CiviCRM database on an active installation? If possible the easiest would be to re-install with separate databases.


How to create a directory of event participants with custom fields?

Assuming the 'someone' that needs to access the information is an administrator then you could set up a report to do this using 'Reports > Event reports > Event participants list. In the 'Columns' you can select the fields (including standard and custom fields) to display. In the 'Filter's you can specify which events to display participants for - which is something that your admins can change.

The documentation for using the reports for CiviEvents can be found here:
https://docs.civicrm.org/user/en/stable/events/reports/

This is an approach that's built in to Civi. But there are of course other solutions, such as using Drupal's Views module to expose the information (as suggested in the comments). This could be useful if you wanted to expose the information to end users.


If you make a price set, create a price field and make the field not required, you should be good to go. The person simply wont choose a price option and registration will continue as normal. You should also be able to add a no cost (value 0) fee and registration will also continue as normal.

Can you explain more about your setup?  CMS, CiviCRM version, what you mean by 'Pay' button of PayPal disappears.


How do I Add Contacts to Group from an Activity Report?

click on the Preview Report button and you will get the 'Add contacts to group' action. Just tested it on the demo site running CiviCRM 4.6.4 using Safari and Chrome browsers http://d46.demo.civicrm.org/civicrm/report/instance/3


Creating new wordpress user using civicrm memberships.?

To create a WordPress user with membership signup can be achieved with the below workflow -

Create a profile with fields that you wish to collect during your membership signup process (Primary email address is mandetory) -

In the advanced settings section of your profile you have an option called "WordPress user account registration option?"

CiviCRM help text for this option -

If you are using this profile as a contact signup form, using it in an online contribution page OR an event registration page, anonymous users will be given the option to create a WordPress User Account as part of completing the form. In addition, you must include a Primary Email Address field in the profile.

Once you have created a profile you need to create a CiviCRM contribution page that offers membership and attach the new profile that you created.

For WordPress you will also need to check the box "Anyone can register" in the WordPress general settings.

The contribution page will now offer the account creation option when a user is not logged in -


Error message on contribution: too many redirects

I was having the same issue and stumbled upon an answer to a very similar problem, although it didn't appear to be random like mine and yours. This is a pretty old issue, so not sure if my "answer" helps. All I did was navigate to CiviCRM >> Administer >> CiviContribute >> CiviContribute Component Settings. Set 'Default invoice payment page' field to the contribution page that was causing the "too many redirects" when we pressed Confirm. It was previously pointing to a contribution page associated with an expired campaign, which doesn't explain at all why the redirects error appeared to be random. We are running Wordpress 5.2.3 and CiviCRM 5.12.4.


fatal error: Unknown column 'contribution_source' in 'order clause'

Further investigation found that this was failing not only with contribution_source, but also for financial_type and contribution_status.

A fix has been raised to address this issue at https://github.com/civicrm/civicrm-core/pull/9516. It'll be included in 4.7.15.


Need to create a SepaMandate for street walkers?

To generate these required Sepa mandate reference codes I thought I
  could use the API SepaMandate with the create action. This API
  requires an entity table and id, which I do not have yet.

There's currently two API calls for creating a SEPA mandate: SepaMandate.create and SepaMandate.createfull. The first one requires indeed a contribution/recurring_contribution to exist, the second one will create both in one go. Both of them take a reference parameter with an externally generated mandate reference number. If this is not set, a new reference number will be generated. Does that answer your question?


Some tokens not work with CiviRules 2.1 and E-mail API 1.17.2?

This might be caused by this issue: https://github.com/CiviCooP/org.civicoop.emailapi/issues/10. A fix is in progress....


How can I allow opt-in subscription to specific groups with Webform CiviCRM?

Once you have selected 'user select' for the groups in the CiviCRM section of the webform admin section, save and return to the 'components' tab (where all the webform fields are listed).  Find your Groups field and edit it from the component list. If you change the list from Live to Static, you can then select which of your groups will appear as an option to the user.


Civi Volunteer 2.4.1 fatal errors on install CiviCRM 5.33.2 Drupal 7.78

I think I'm seeing that the only issue is the option group for volunteer_project_relationship did not get created.
If this is just a demo,it might be fine to create the option group manually. I would worry about what else failed if this is a permanent setup.
The install step in question is in the Upgrader.php file in installProjectRelationships(). You can see it is calling  civicrm_api3('OptionGroup', 'create'...  and civicrm_api3('OptionValue', 'create'....
Try going to Administer > System Settings > Option Groups. and create the option group with the settings in the installer.
You can then visit Volunteer > Configure Project Relationships to add the OptionValues. Again, look to Upgrader.php for the defaults.
If you want to get to the root of the matter, I would confirm that all available logging and debugging is enabled and try the install from the ground up. If it still persists with a fresh install of Civi, I would try some other recent releases to see if there really is an incompatibility introduced in the CiviCRM release.
Let me know if you would like to chat about the suitability of CiviVolunteer for the organization you are creating this demo for.
Cheers


Should Event Scheduled Reminders be sent if they were due to go out before a person registers

My experience is that yes, the reminders do go out in the scenario you described.  I wish there was a way to turn them off in this scenario but I have not found one.


image directory path seems to be ignored in CiviMail editor

Ok, I've worked it out.
And it turns out that there is a location where CKEditor settings can be configured, namely at civicrm/admin/ckeditor?preset=default.
(Through the GUI it's at "Administer" -> "System Settings" -> "Display Preferences", then click the "Configure CKEditor" button towards the bottom.)

There are a few hitches on the way and perhaps this comes in useful for someone else down the track:

the image directory must be called images for the CiviMail browser to work with it;
the image upload directory setting in CiviCRM needs to point to the parent directory of that images dir; in my case it is [cms.root]/sites/default/files/;
the setting to override in the CKEditor settings is ImageUploadURL, which also needs to point at the parent dir of images. A local path works - I used /sites/default/files.
turns out that that alone didn't do the trick (I could browse the correct directory, but the browser would then return the wrong URL string); I also needed to override the setting in civicrm.settings.php like so (look for $civicrm_setting to find the examples):

$civicrm_setting['URL Preferences']['imageUploadURL'] = '/sites/default/files';

And that's it!

Now for this naming requirement.

In my case, we have been keeping all our images organised in a directory called uploads, and the image browser clearly had a problem with symbolic links. So what I did is

mv uploads images
ln -s images uploads

Aka rename uploads to images, then create a symbolic link named uploads. Then reconfigure IMCE in Drupal to now use the images folder. (It seemed to keep working just fine with the symbolic link, but we want to keep things clean.)

NB: In my case, the site is hosted on a cPanel with no ssh access, so I did the renaming through the GUI and then created a cronjob to run the second command (here at 19:45h, and don't forget to delete it again) like so:

45  19  *   *   *   ln -s images /path/to/drupal/sites/default/files/uploads

As a result, all images now live in $drupaldir/sites/default/files/images and both, IMCE in Drupal, and kceditor/ckeditor/whateveritis in CiviMail, now work with it, referencing the same files. Yay!

Meanwhile, Apache seems happy to resolve across the symlink, hence all existing URLs keep working, though it'd be nice to clean them up over time.

(Not a straight-forward search/replace through the database, unfortunately, as the two strings have different lengths. If they were the same length, that'd be simple.)


How do I put saved searches or smart groups as menu options in WordPress?

You could generate report using the Smart Group as your filter and save that report.  The report can be used as a dashlet which is available upon login or you can have it emailed to you as well.  More dashlet info is here:

https://docs.civicrm.org/user/en/latest/events/reports/


database Upgrade URL does not load Upgrade screen

Try running the upgrade url

http://example.org/wp-admin/admin.php?page=CiviCRM&q=civicrm/upgrade&reset=1

Thanks

Pradeep


Stripe Authorises payment before form validation causing problems

I believe this is correct behaviour.

The flow with Stripe is slightly opaque due to the complexity of maintaining a level of PCI compliance while using a CiviCRM form for payment.

The credit card part of the form is actually an iframe hosted with Stripe (that's what allows for the PCI compliance trick), which will take the credentials and test them by trying put a hold on the contribution amount, and then it'll pass back to the form a one-time "token" that can then be used to complete (capture) the payment.

That completion is only performed after the form is submitted, so it needs to have a reliable hold on the funds.

If you want the uncaptured hold to be release earlier, you can likely submit a PR and/or run the scheduled job more often.


Very strange thing when trying to import contacts

Solved by editing the wp_config.php file by adding

ini_set('display_errors','Off');

ini_set('error_reporting', E_ALL );

after the define section.

See also this question


Gift aid uploaded declarations are only showing the first image for each entry

If anyone still has this problem, I can confirm that upgrading to at least 4.7.31 fixes it.


Is the "Show Contact Deceased" extension compatible with 4.6?

The core team liked the extension so much that it was incorporated into core for 4.6. So we won't be releasing a 4.6 version. Thanks for your question - we will update the documentation on civicrm.org to reflect that it has gone into core for 4.6.


Scheduled Reminders generates faulty SQL

My friendly neighborhood Civi expert solved this problem.
The issue is with the "repeat" option in the scheduled reminder form.

If you specify, when to repeat without the "Until" piece, it generates faulty SQL.
Our expert modified the form so you can't leave that value blank if you click the repeat radio box.


How can I edit the Subject of a CiviCase?

It seems from this forum post that the ability to edit the subject of a CiviCase has not been implemented, and that its implementation should be done by creating a new core/case Activity Type for 'Change Case Subject' so that any change was also tracked on the Case.

That sounds a reasonable improvement, in the meantime it seems the only option is to edit the field in the civicase table - which my brief testing suggests doesn't not bring the wrath of code down upon my head


Need Token Help for System Message Template

A.1

in my 4.7.x test the dropdown arrow to the right of  works to show me the tokens, but does not result in them being inserted. In my 4.6 test this did work (which suggests a JIRA issue might be needed for 4.7 but can't test on dmaster as the drupal permission has not been assigned)
in my 4.6.x test the dropdown arrow to the right of  works to show me the tokens, and does result in them being inserted.

A.2 address type tokens are {contact.country} and {contact.street_address}

A.3 I don't see any membership based tokens listed. I believe we - Fuzion = did an Extension that can help with this - try this one

A.4 I don't know and am not sure what you are referencing.

A.5 In the 4.6.x it shows as full width and has a handle in bottom-left corner to drag it bigger. In my 4.7.x test it only shows as half-width but still has the handle. Guess if you are missing the handle you may need to check for js errors or something else like a WP theme issue??

Hope that helps you a bit.


Solved: Is this a bug - [civicrm.files] variable

UPDATE:
A fix for multisites and Aegir setups will come out in CiviCRM 4.7.21.
See https://issues.civicrm.org/jira/browse/CRM-193

The fix for our problem ended up being somewhat multidimensional.

The patch in https://issues.civicrm.org/jira/browse/CRM-19303 solved the issue of the autogenerated path for the [civicrm.files] variable in 'Settings - upload directories' differing from the URL path generated in 'Settings - Resource URL'.

Though the issue doesn't seem completely solved, the patch has very recently been merged https://github.com/civicrm/civicrm-core/pull/9409

(There is a bit of a rabbit hole that leads to https://github.com/civicrm/civicrm-core/pull/9053).

But this did not totally fix the problem for CKEditor as the CKEditor config file is being placed in the persist directory (instead of persist/contribute) and the persist directory kept returning  a 403 error. Until CRM-19303 is fixed we circumvented it by allowing the vhost to read the persist directory instead of persist/contribute. We temporarily patched hosting_civicrm to do this.

Aegir was also throwing some file permission errors when creating new sites, and appears to be a different issue, see https://www.drupal.org/node/2791953. We applied the patch which will likely get committed.

We had to enable the Aegir fix_permissions and fix_ownership modules for this, which are experimental, but somewhat necessary here.

For now you still need to manually run a Verify on the site after creating it.

Thanks to Kainuk (https://civicrm.stackexchange.com/users/110/kainuk) for his pointer and to Guillaume Boudrias from praxis.coop (https://www.drupal.org/u/gboudrias) for going down the rabbit holes to fix the problem.


The issue was with your dedupe rules as you had not entered weights. You can't leave the weights empty.

Try reading civicrm.org/blog/spidersilk/understanding-civicrm-dedupe-rules or https://docs.civicrm.org/user/en/stable/common-workflows/deduping-and-merging/.

I think the former makes it a bit clearer about weight. But basically you need to have a weight, eg email 2 first 10 last 10; threshold 22, so that it means it must score a match on the email AND the first AND the last

reason for a lower 'score' on the email is that if a contact has 4 emails all of which are the same, then each 'counts' hence if you set email as 10, and first as 10 and last as 10, threshold 30, then the email by itself would score a 40 and hence 'match' even if first and last did not match! hope that helps


Recurring iATS contributions not creating civicrm_finanical_item records

Unfortunately, the issue here is that the api for this stuff is/was a bit sketchy (Eileen's been gradually migrating and cleaning up the old IPN callback code into a better place). We've been hoping that the most recent versions of 4.7 will work and have optimistically included the code here:
https://github.com/iATSPayments/com.iatspayments.civicrm/commit/3d7db087a45024d613e2475b94e6467aa7ab873a

You're welcome to try a modification of that patch and see if your version of 4.6 creates the accounting records you want.

Failing this - I do have a lot of iATS clients that care about bookkeeping, so it's possible what you need is available, but it's beyond my understanding.


Tags used for Cases, Activities or Attachments in Drupal Views?

On a development server, I edited sites/all/modules/civicrm/drupal/modules/views/components/civicrm.core.inc.

In the Tag section, I added:

$data['civicrm_tag']['table']['join']['civicrm_case'] = array(
    'left_table' => 'civicrm_entity_tag',
    'left_field' => 'tag_id',
    'field' => 'id',
  );

and

 $data['civicrm_entity_tag']['table']['join']['civicrm_case'] = array(
    // Directly links to tag table
    'left_field' => 'id',
    'field' => 'entity_id',
    'extra' => array(
      array(
        'field' => 'entity_table',
        'value' => 'civicrm_case',
        'numeric' => FALSE,
      ),
    ),
  );

After that, I was able to filter by case tags.

Would this have any unforeseen ramifications?  Does this cover all of my bases?

Would this be best put into a separate custom module?


Smart groups break when database is restored

I don't see any such job, nor do I recall such a thing.

But: the contacts that are in smart groups are cached in civicrm_group_contact_cache so you should be able to clear that using the CiviCRM "cleanup caches" option (under Administer -> System settings).


How to add a Matcher Plugin in CiviBanking as I get "No Matcher Plugin Found"?

A matcher is added just like an importer on the configuration screen. The configuration screen has different sections. The top one is the importer, then the matchers, then post processors and the last one are exporter plugins.

See below for a screenshot:

After you click on Add a matcher you are able to select a matcher type and a configuration for that matcher type.


How to get more debug info about "DB Error: no such field Return to home page"

There are two ways.
First, you can enable debugging and backtrace under Administer menu » System Settings » Debugging and Error Handling.

The same information should be available in your ConfigAndLog directory.  See Where are the "ConfigAndLog" and "templates_c" directories?


How can we Make separate option for standing Orders

Yes you can add a new payment method - Standing Order

Steps:
Administers -> System Settings -> Option Groups

Look for "Payment Methods" - Edit the option and add a new payment method and call it as "Standing Order"

I guess this helps!!!


How to clone memberships, display as new tab?

Pair up the membership with custom data.  Create a a field set, and mark it to display as a tab (instead of inline).  Associate the fields with the type of membership, and then you'll collect paid contributions and generate fields in a separate tab.


How should I generate a report (or view) showing contacts and people they have relationships to?

I will add this as an answer so i can add the screenshot. You 'should' be able to filter by Groups in a civicrm contact based View. In the screenshot you will see i have both Group Name and Group ID set as fields, and have Group ID set as an Exposed Filter. Hope that helps if only to confirm that something is amiss in the world of Views for you.

(Note: on the first site i went to do this on I also did not have them available, but that is a Pantheon based site where things keep changing on me, on the second which is a standard-hosted site it all worked as expected. So you may not be alone with the Group fields being unavailable)


copy Address of Primary Registrant to Additional Registrants

You can share address between contacts. You can use civicrm_address.master_id to store the parent address id programatically or through UI by adding/updating address and selecting 'Use another contact's address'.


Has anyone had any success integrating CiviCRM into Craft CMS?

I would strongly expect the answer to be No simply because integrating with a CMS is a big task and the only 3 that are officially done are WP Joomla and Drupal as I am sure you are aware. There are however solutions for having CiviCRM separate from a CMS but still have forms etc available eg
Remote Forms
CiviCRM Modular Remote-Access Framework


When will MySQL utf8mb4 support be mandatory?

It seems like it's still under discussion as of last week. See e.g. https://lab.civicrm.org/dev/core/issues/979


Cannot read unrecognized property CRM_Core_Config::$mapGeoCoding

Removing $config->mapGeoCoding from the core EventInfo.tpl and then clearing the directories out of the */templates_c/En_us directory fixed the error message. I am now able to get the map to work correctly if I enter the longitude/latitude but I think there is an issue with the key.


The old warning was actually just dealt with yesterday (https://github.com/civicrm/civicrm-core/pull/13770).

If you can remove mcrypt, you can get smtp working again by going to the admin screens in civicrm to reenter and resave your password. My understanding is it will be stored unencrypted in the database, but at least will work.


Yes there is a option to change the font size. The UI setting is not user friendly but it does allow you to update the attributes.

Navigate to CiviCRM >> Administer >> System Settings >> Option Groups.
Find for Mailing Label Format.
Click on "Edit options' link besides 'Mailing Label Format'
You will see list of formats, click on 'Edit' besides one of the format type.
In 'value' text field find for 'font-size' and change the value from old to new

for eg if the old value was "font-size":8 than replace it with "font-size":16

HTH

Pradeep


Where do you put human contacts on the Organization entry?

Both organizations and individuals are 'contact' entities in CiviCRM (a household is also a 'contact'). An organization is a separate 'contact' from the individuals related to that organization.  By having the organization entity separate from the people in/related to that organization, you can specify the nature of the relationships those people have to the org.

You'll want to create an organization (Top menu > Contacts > New Organization, as you have done) then separately create individuals (Top menu > Contacts > New Individual) who have relationships to that organization. You can connect the individual(s) to the org with either the Current Employer field or using the relationships tab on a contact's summary screen once a contact has been created.

You can read more about contacts and relationships here: http://docs.civicrm.org/user/en/4.6/organising-your-data/contacts/


civievent - add 2097 participiant to an event

It's likely a configuration limit on your server that doesn't handle "big" operations

There is an upper limit on how much "stuff" you can do, and your webserver has a limit on how long a page can work (usually 30 sec) and how much memory it can use.

It might be that you hit one of these limits. If you have access to the log on the server, check if there is an error written when you try to do that operation... hard to be more detailed, it depends on your server and how it's configured.


The error is happening in the deleteMembership function, and the error says: you're trying to execute the method "delete" on an empty (i.e. null) object. The object that is "null" is expected to be a membership object.

That suggests that the code might have been running two copies in parallel - e.g. perhaps you clicked twice on the delete button (would not be difficult, since you're trying to do a mass delete on a lot of memberships).


Soft credits created via API/hook_civicrm_post are automatically deleted in Civi 4.6

This is to do with code introduced in CRM-16804, and is specific to soft credits.  It's not a generic API issue as I'd feared.  I'll update this answer with a more complete solution once I've nailed it down.


I don't have any idea about eWayrecurring extension

we did something similar and our base extension was https://civicrm.org/blog/andyw/offline-recurring-payment-extension

offline-recurring-payment-extension - this extension was creating contribution for a contact which we altered to link with membership

The process which you have explained will create multiple contribution for a single membership

Other way of doing the same would be

Using partial membership which will allow multiple payment for a single contribution - that involves bit more development - still to come in core

I guess this helps !!!


You should install the extended reports extension and investigate the options available to you in Extended Report - Contributions with Price Set data  or Extended Report - Price Set Line Items


I don't think there's anything out of the box that does this. But if you're comfortable with PHP/JavaScript then it's not too tricky.

I'd create a WordPress template for that particular page, grab the event data using the API, and manually populate a google map. Untested code based on a similar thing we did recently:

<?php

/*
Template Name: Your Template
*/

get_header();

?>

<?php

//initialising CiviCRM Plugin
if (!civicrm_wp_initialize()) {
        return '';
    }

require_once 'api/api.php';

//Grab data from API
$result = api call

//print json-encoded version
echo "var events = " . json_encode($result);

?>

<?php the_title(); ?>

            <?php wp_reset_query(); ?>

            <?php the_content(); ?>

<?php get_footer(); ?>

Regarding the API calls, it looks like you'd need a few:

This'll get you the event title and its 'location block id':

$resultEvent = civicrm_api3('Event', 'get', array(
  'sequential' => 1,
  'return' => "loc_block_id,title",
));

you'd then need to look up the location block id for each event:

$resultLocBlock = civicrm_api3('LocBlock', 'get', array(
  'sequential' => 1,
  'id' => id from first query,
));

this'll then return an address ID, which you can look up with:

$resultAddress = civicrm_api3('Address', 'get', array(
  'sequential' => 1,
  'id' => address id from second query,
));

and the resulting array will contain the latitude and longitude.

It might be possible to do all the above in one go using chaining.


getting this error: PDOException: SQLSTATE[23000]

I resolved this by truncating all the caching tables using mysql query.
I followed following steps:

1. Connect Sql server
2. Truncate the all the cache tables and they are as follows:
truncate cache;
truncate cache_admin_menu;
truncate cache_block;
truncate cache_bootstrap;
truncate cache_field;
truncate cache_filter;
truncate cache_form;
truncate cache_image;
truncate cache_libraries;
truncate cache_media_xml;
truncate cache_menu;
truncate cache_page;
truncate cache_path;
truncate cache_token;
truncate cache_views;
truncate cache_views_data;

By doing this above steps I can able to resolve this issue.


Cant find a way to access the CiviCRM $form object in Drupal

@soupmagnet Welcome to CiviCRM world!

You can alter the form elements or add your own form element to any CiviCRM forms using CiviCRM buildForm hook. The documentation provided good example on how to do it. Please implement this hook either in CiviCRM extension or Drupal module.

HTH

Pradeep


Set Hidden Field Value on Webform Connected to CiviCRM on Submit

I managed to get this to work by creating a custom text field in Civi. I then included this text field in the webform as a hidden component and set a default value. This value then gets set (for the text field) only when the form is submitted. I can then test the field to see if it has the set value or not and use this to hide or block the webform from the user.


How does CiviCRM handle international mailing addresses with unusual formats?

You can control the address format in Administer menu » Localization » Address Settings, so your mailing labels generate how you'd like.

What CiviCRM does not currently do is print different mailing label formats based on the country of the record.  I've got a proposal to a client who will fund this improvement if the proposal is accepted, but at this time I don't know.  Feel free to connect with me on https://chat.civicrm.org (name is "junglebird") if you'd like to be kept in the loop.


CiviCase tab not showing up on contact summary

Check the display preferences (Admin > Customize .. > Display Prefs) and make sure for Viewing Contacts that Cases is selected


Membership Receipts from Civi webform for On Behalf of Organisation

In that case you need to manually add tokens to the receipt - message template  - so you can provide more information to the receipt -

Creating new tokens - https://wiki.civicrm.org/confluence/display/CRMDOC/Tokens

if you need to add some contact tokens then refer to the below -
Can I put custom field tokens into a message template?

I guess this helps !!!


Stripe.js token was not passed! (using Webform Integration)

There is a long thread at https://github.com/drastik/com.drastikbydesign.stripe/issues/76 on this issue.  It was for earlier versions but might give you some clues.   I have a site using Stripe successfully with webforms on Civi 4.6


Update to 4.7.7 broke CiviCRM contact search

This is a regression that has been identified in 4.7.7 - thanks for spotting it.

Progress on the issue, and a patch to resolve it, will be posted on the issue tracker here: https://issues.civicrm.org/jira/browse/CRM-18510


New Extension Tab Zip Support Required Message

Solved - as of 7.2 we had to separately install the zip module (which provides the ZipArchive class within php). On Amazon Linux 2 this was the php-pecl-zip and libzip-devel packages, installed via "pecl install zip".

And restart  the php-fpm service as well as httpd restart


CiviVisualize example graphs and visuals are not showing up

This is likely a problem in how you have incorrectly set up the extension url in civicrm.

To work, this (and many other) extension need to be able to load additional resources, javascript or images, and you need to configure civicrm to tell which url to use. (under /civicrm/admin/setting/url )

what is the right url to put there depends on where you have put the extensions folder, but on the good news, you will need to adjust your setting ones and it will work for every extension


The "releases" on GitHub don't include the dependencies and aren't supposed to be downloaded directly for "consumption" - the supported workflow is either to use the advanced instructions in the readme file (running install.sh) or to install using the tarball from the CiviCRM extensions directory.

The final build process for mosaico merges GitHub repos to create the tarball.

Extensions Directory page:
https://civicrm.org/extensions/email-template-builder

Chat discussion on the same issue:
https://chat.civicrm.org/civicrm/pl/p7ih3bq36trp5frqnmccy1o3fy


How do I automatically add a user to a Backdrop (or Drupal) role?

First, go to your modules listing and enable "CiviGroup Roles Sync":

Next, go to Drupal's Configuration menu » CiviCRM » CiviGroup Roles Sync » Add association rule:

From here, you can set the CiviCRM group that corresponds to the Backdrop/Drupal role:

Note this only works when contacts are newly added to the group (or role).  However, you can manually synchronize in the configuration settings.


How do I change an incorrect contribution status to Completed?

To my knowledge:

As far as the contribution hasn't exported to any sage or anything you are ok - you can directly change the contribution status against the DB which will be an easy fix.

But if the transaction has been exported already then we shouldn't be change the status instead we should be creating an new transaction for the contact also mention the reason against the source which will help.

I guess this helps!!!


Fix for "Incorrect Resource URL" message

The error disappeared after upgrading php to version 7.0


CiviMail will not add groups to recipients

From your comment referencing the forum post, I can see that this is a Javascript error.  You should be able to resolve this by following the steps outlined here: Troubleshooting JavaScript in CiviCRM


Smart Groups Not an Option after Upgrade

A smart group is a stored search. To create one a search is the starting point.

Do a search.
Opt for all records
Use the action "Create Smart Group".

In order to make a smart group selecting contacts that have a membership, you can start with an advanced search.

For example - Go to Search -> Advanced Search. Expand the membership section (this takes a bit of scrolling, in the illustration below I closed the other sections):

Add the selection criteria (in the example Lifetime membership and Current Member). Execute the Search, do select all results and select the Create Smart Groep Option. Below an example of the Create Smart Group screen with criteria:


How does CiviCRM handle multiple users editing the same record simultaneously?

Tested on CiviCRM 4.7: two users can edit the same contact record, however, at the moment of saving the contact record, the second user to save the contact record will get a warning that the contact record has been modified by someone else. The user will then have an option to save anyway or reload the page.

It also works with inline edit:


If you're running CiviCRM in Drupal you can use the Webform CiviCRM module to provide conditionality to Civi activities


I don't think that is possible, but not for the reason you think. The problem is not whether or not the link gets rendered correctly, the problem is that AngularJS expects to launch a single-page-app, not load an html snippet into a tab. If you need to link to an angular page, you will need to do so as an actual link, and it will have to take the user away from the contact summary page and over to the angular page.


How can I use custom tokens when grouping Thank You letters

The error comes from {capture assign='note_id'}{contribution.contribution_id}{/capture}. When grouping, if you have more than one contribution the output will be ie. 1, 2, 3, 4 ..., try printing {$note_id} when grouping and you'll see what I mean, passing 1, 2, 3, 4 as contribution_id to the API call the response is "is_error": 1

Edit: so having a look at CRM/Contribute/Form/Task/PDFLetterCommon.php, I believe that's the correct class, there´s a $contributions variable which holds the contributions, so if you loop through it, the above could look like this:

{foreach from=$contributions item=contribution}
{crmAPI var='result' entity='Note' action='get' entity_table="civicrm_contribution" entity_id=$contribution.id}
 {assign var='note_count' value=$result.count}
  Contribution note: {if !$note_count}None
  {elseif $note_count}
    {foreach from=$result.values item=note}
      {$note.note}
    {/foreach}
  {/if}
 | Non deductible amount: {if $contribution.non_deductible_amount gt 0}${$contribution.non_deductible_amount}{else}N/A{/if}
<br/>
{/foreach}

Now this works when grouping but it won't when you are not grouping, so my guess is that you'll have to create two ThankYou templates, one for grouping and one for no grouping.

Also important to mention this is smarty they are not custom tokens.


Is there a CiviCRM payment processor extension to support Square?

It might not be too hard to implement the omnipay version, there's a contributed plugin for that here: https://packagist.org/packages/ryanthompson/omnipay-square

If you want to take this route, here's how it might look [thanks petednz for the prod].

Read my old wiki entry here: https://wiki.civicrm.org/confluence/display/CRMDOC/Omnipay
as a general introduction to what omnipay is.
Get a copy of the omnipay payment processor extension. The extension home is here: https://civicrm.org/extensions/omnipay-multiprocessor-extension
But you'll want to clone it from the repo here:
https://github.com/eileenmcnaughton/nz.co.fuzion.omnipaymultiprocessor
Add the omnipay-square plugin to the omnipay payment processor exentsion. Yes, this is the hard part. There is a simple note here:
https://github.com/eileenmcnaughton/nz.co.fuzion.omnipaymultiprocessor/blob/master/README.md
I found that it was most instructive to look at some examples.

A few things I found helpful were:

a. Learn about composer if you don't already know about it. Don't skip this step or you'll get confused.

b. You have two routes if the omnipay plugin doesn't just work out of the box - either contribute your modifications back to the original project and keep it as the source of the plugin (possibly from your forked repo), or you can fork the original and create it as a separate project. The first one is usually the right answer, particularly if the existing plugin looks like it's going to be maintained. There are some confusing bits in terms of the vendor paths and git sources in the composer file that you'll have to figure out to sort this out.


How can i investigate what duration a specific checksum had when it was sent out

The checksum is not stored in the database, have a look at CRM_Contact_BAO_Contact_Utils more specifically at the methods generateChecksum and validChecksum.

The genereateChecksum method returns the checksum like $checksum_$timestamt_$life the life is in hours, so for a given checksum you could tell when was generated and what was is expire date.

The validChecksum method takes the $contact_id and a $checksum  And validates it. This method is called when a profile/contribution/event/etc page is rendered and is taken from the requested URL.


Handling variable tax rates based on member's province

I have an extension we developed for a client with simple needs in Quebec that is not yet ready for general use - https://github.com/JMAConsulting/biz.jmaconsulting.cdntaxcalculator . I just looked at it now and removed a bit of custom code to support shipping fees for physical items. I seem to recall that we used custom templates for the messages for purchases. I would love to talk to you about doing this in a more general way as another organization is currently interested in this as well.

Background: The extension uses billing address to determine province of buyer and use that to determine which taxes should apply. A more general solution would handle place of supply (the tax term for place which determines which sales taxes apply) for events based on venue location. For online events it would be buyer's location.

Unfortunately there are some complications in handling two taxes as this affects the display on contribution/membership pages, their confirmation pages, and a fair number of system message templates.

A longer specification is available at https://wiki.civicrm.org/confluence/display/CRM/Canadian+Sales+Tax+Extension


We've done this sort of thing in our Direct Debit extensions. From memory if there is a recurring record and the membership is set to auto renew then it works fine i.e. renews the membership as needed. If you are a techie you could take a look at the code.


How to create a Wordpress User Profile when creating a Membership with Civi?

You can require users (or give the option) to create a WordPress user account in the advanced settings in the settings of the profile used on the membership contribution page.

You will have to check the box 'Anyone can register' in the WordPress general settings. I would also recommend installing a recaptcha plugin for user signups to prevent a large number on user accounts being created by bots.


MySQL support not included in PHP - Wordpress Heroku

The CiviCRM installer checks for the presence of mysql_connect. Your Heroku environment has mysql_* extension disabled. The installer won't run if the environment doesn't pass CiviCRM's checks (as you've discovered).

This mysql_ library was deprecated in PHP5.5 and removed in PHP7. It looks like Heroku do offer mysql_ as an option you can enable through composer.json (see their docs on Heroku PHP extension support).

Even so, it's likely easier to use a hosting environment known to support CiviCRM; if you're a CiviCRM pioneer on Heroku, you may have to deal with other features of that environment which CiviCRM hasn't been road-tested with. (Not a criticism of Heroku - but CiviCRM has some expectations of its host environment above and beyond the "average" PHP app.)

It's also possible that you could convert CiviCRM to use mysqli_* with a global replace of the mysql_* functions through the CiviCRM codebase ... if that works, the relevant ticket is CRM-16067: Replace deprecated mysql api with PDO or mysqli!

See also:

Undefined function mysql_connect on Heroku
Error during Drupal installation: MySQL support not included in PHP
php.net: mysql deprecation


Civicrm report:Bar chart and Pie chart support for different modules

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


I've never had a problem with Authorize.Net receipts going out when I've disabled the appropriate setting in Authorize.Net.  I don't have a valid Authorize.Net login to find the exact setting now, but I can confirm that I've seen the behavior you expect on multiple sites.


If I understand correctly, you want to add some custom fields to the "Event Participant List" report, as displayed in this screenshot:

If so, you just need to mark those particular custom fields as "Searchable":

Go to Administer menu » Customize Data and Screens » Custom Fields
Click View and Edit Custom Fields in the row labeled Conference_Selections.
Next to each field that should display on the report, click Edit Field.
Tick the checkbox labeled Is this field searchable?.


Pledge reminder emails sending out invalid payment links

It might be an issue about the checksum that has a lifetime of (by default( 7 days. I suppose that's the ones taking more than a week that experience that problem?

you can set a longer lifetime in the admin misc setting
/civicrm/admin/setting/misc?reset=1


The Stripe development team has upgraded the code of the extension to support the new API that is PCI compliant.


Ah that’s because your base theme is a bootstrap theme. Some CSS edits are required to mold the form into two columns.

Here's an example (if your node id=96:

@media only screen and (min-width : 767px) {
  #webform-client-form-96 fieldset {
    width: 46%;
  }
}


Have you enabled "Contact Trash and Undelete" for your site?  If so, have you tried searching in Trash for contacts? Do an Advanced search and tick the "Search in Trash" box. It will be on the right side of the Basic Criteris search pane.  Exactly where depends on what version of CiviCRM you are using - which is why I have asked for that information.

Do you have logging enabled? Can you look in the log_civicrm_contacts to see who made the last change to the contacts and when and what it was.

"Out of no where" sounds improbable.

What has been changed on your system since you last could "see" the contacts. (Added an extension for your CMS?, upgraded?, your host changed something?)


How do I display a custom field in an invoice?

So, I remembered that there is such a thing as Smarty calls to the CiviCRM API.

Stuck the following code into the template and bam! Got my custom field to show up in my generated invoice.

{crmAPI var='result' entity='Contribution' action='get' invoice_id="$invoice_id"}
{foreach from=$result.values item=poid}
    {$poid.custom_40}
{/foreach}


How can I set up anchors in Mosaico mailing?

looks like there is no way to do this via the limited 'what you see is what you get' (WYSIWYG) editor, so this would have to be done in the code of the block you are working in, by clicking onto the source button < > And then using the html for an anchor link.

For example your first anchor link can be called 'one'

You would use it as follows. If you had a list of heading points at the top of the email as such.

1) My heading one

2) My heading two

3) My heading three

Then you would put the anchor in like this:

        My first heading

        My second heading

        my third heading

1)
My section one here

2)
My section two here

1)
My section three here


What is the status of the make it happen for permissions on activities and cases?

The project has been funded for a "phase 1" MVP targeting 4.7 release in late January, which in brief will:

Provide an acl hook for cases and option lists
Not create a UI at this time
Leave the door open for other entities to be affected by this hook such as activities, but that work will likely be 6 months or so away


What is the best option to merge duplicated membership?

I would suggest you start by reading the section in the User Guide on Deduping and merging contacts if you haven't done so already.
As to identifying the contacts that need to be merged, this really depends on what information you have on record. Finding contacts with duplicate email addresses is often a good place to start. Or look for duplicate postal addresses if you have that. If you only have names it will be a bit more tricky. You can use the 'length' in the dedupe rule to specify how many letters need to match. This may require trial and error to get this right for your data. Setting the 'length' too high may miss duplicates but setting it too low may generate too many duplicates.


How to display CiviCRM menu for non-admin role using WordPress?

Out of curiosity, is this with one of the default Wordpress themes applied?  If not, it may be worth switching themes to a default theme and check the functionality.  Additionally, if you have the WooCommerce plugin active, it removes the ability for subscribers to see the side menus by default.  (You also can't see the WordPress user's Profile page.)


Warning and Fatal error updating from 4.6 to 4.7 com_civicrm/admin/configure.php on line 115

It sounds like the civicrm.settings.php file may have been removed when the upgrade/downgrade was applied to your site? See Upgrading CiviCRM for Joomla in the section "Back up your CiviCRM database and settings file". Hopefully you have a copy of the file in your backup, and can restore it to the appropriate location.

CiviCRM recommends PHP 5.4 or greater, which might have caused the white screens when you tried 4.7. PHP 5.6 is the oldest supported PHP version at time of writing; as versions 5.3, 5.4 and 5.5 are no longer supported versions of PHP, I'd recommend updating your PHP if at all possible.


The civicrm-disable-debug command isn't defined in civicrm_drush_command().  See line 155:

$items['civicrm-enable-debug'] = array(
  'description' => "Enable CiviCRM Debugging.",
);

To solve this problem, you can add this below that:

$items['civicrm-disable-debug'] = array(
  'description' => "Disable CiviCRM Debugging.",
);

This would be an easy item to submit as a pull request so everyone could benefit.


Participant's Notes is not available in Reports

The approach we take in most installs is to add a participant custom field called something like 'registration notes'. This field can also double as a special request field that we use on front end registrations if you like. Then in reports you can have the user's requests and internal notes in the same column.


database connection fails, but only in cron

OK, I was being stupid. Typo in the Drupal database password in the CiviCRM config file.

Digging into civicrm/packages/DB/mysql.php and inserting some logging showed that the passwords being used for the Drupal user were just slightly different between Drupal and CiviCRM. CiviCRM was adding an extra '@' to the end.

Didn't see it before because due to the CiviCRM config file format, it was a double @ - my eye didn't see the double.

define( 'CIVICRM_UF_DSN'           , 'mysql://host_drupal:123456789@@localhost/host_drupal?new_link=true' );


We have a site for students and schools/providers. it is all run off Relationships and Activities and I think some of how we approached this could assist your project.

I would make each Class a Contact, then you put a Relationship between the Teacher and the Class, and another one between the Class and the Student. That way a Teacher can change and it only requires one form to be submitted (end old Teacher relationship, create new one)

We built a customisation of CiviReports so a teacher can see all 'their' students (ie the ones in Class X that teacher has relationship to) and can submit the Attendance for all class students on a single form (this uses one Activity per week but could be modified for one Activity per class with 20 yes/no fields for the 'term')

Here are more specific answers:

  Is it possible to model and manage the classes in a UI form like e.g. contacts as own data structures (room, date, theme, ...), building a new structure that does not yet exist in CiviCRM?

I would attempt to do this with Class as an Org sub-type

  How best to describe the affiliation of a student/teacher to a class? Is there a possibility except 'Tags'?

Per my comments above, I would use Relationships (using our extension Permissioned Relationships so you benefit from ACL and 'second degree' relationship ACLs)

  The registration and deregistration of a student/teacher to a class must be logged. It must be possible to determine at any time which student has been in which class for how long.

Do as an Activity - possibly using an approach similar to our customised civireport interface so you can batch record attendance.

  For the purpose of attendance control of the lessons, a form must be printed out with the names of the students in the lessons, the lesson dates, etc. of a particular period (e.g., a month or quarter). This is filled in manually during the lesson (present yes / no). For this, a database query must determine the participants of the class and submit this list to a print template. Is there an example for this procedure?

This could either be done via a Smart Group 'export' or via a Drupal Views csv download.

NOTES

You haven't said anything about whether a Teacher 'should' only see their students, or if it at least would make is simpler for the teacher if they only see students they teach. using Permissioned Relationships delivers this simply but may not be required.

For our design, using Drupal, we build a lot of lists/forms using Views and Webforms so that the normal Teacher doesn't need to actually interact with CiviCRM itself. Everything they need is provided via Menu Blocks, with simple links to their lists of Classes, Students, forms that need submitting, Attendance Reports etc. Happy to explain more offline if that sounds useful. (petednz on chat.civicrm.org)


Yes you can copy a Profile: when on the screen that lists the profiles on your site -> on the very right -> click more -> and select Copy Profile


How to have both credit card and Pay later option in webform

In webform, on the civi tab set the Payment method (?) field to 'user selects'.

Then in the Payment method component you should be able to set it to static and just offer the two options you need.


How can I (on page 2) show First Name of an Existing Contact - static (on page 1) without dragging it to page 2?

I could not see a way to get tokens working in webform conditionals - so I've worked it out with a hook_form_alter hook. It's like building your own token.
On page 2 create a fieldset:
Label = STUDENT1TOKEN - Health
Field Key = student1token

Then in code you can replace your token: STUDENT1TOKEN with any value that has already been submitted on page 1 of this specific webform.
Dependence on field_key is not great - in a next pass I should probably just scan for STUDENT1TOKEN in all fieldset titles, [and then of course STUDENT2TOKEN, STUDENT3TOKEN, STUDENT4TOKEN].
function webform_civicrm_mystuff_form_webform_client_form_342_alter(&$form, &$form_state, $form_id) {
  // if we're on page2...
  if ($form['details']['page_num']['#value'] == 2) {
    if (isset($form_state['input']['submitted']['layoutbox_students']['civicrm_3_contact_1_fieldset_fieldset']['civicrm_3_contact_1_contact_first_name'])) {
      $student1_first_name = $form_state['input']['submitted']['layoutbox_students']['civicrm_3_contact_1_fieldset_fieldset']['civicrm_3_contact_1_contact_first_name'];
      $text_fieldset_title = $form['submitted']['student1token']['#title'];
      $new_fieldset_title =  str_replace('STUDENT1TOKEN', $student1_first_name, $text_fieldset_title);
      $form['submitted']['student1token']['#title'] = $new_fieldset_title;
    }
  }
}

End result: your CiviCRM contact's name in a fieldset label on the next page!