Preparing for move to utfbmb4 should I limit character length?

If you have a modern (e.g. Debian 10+) server installed fresh, you should be OK. If not, I believe these are the settings you want in your server config (e.g. /etc/mysql/mariadb.conf.d/50-server.cnf if you're using MariaDB on Debian)
innodb_large_prefix = 1
#https://mariadb.com/kb/en/library/innodb-system-variables/#innodb_file_format
innodb_file_format = barracuda
# https://mariadb.com/kb/en/library/innodb-system-variables/#innodb_file_per_table
innodb_file_per_table = 1
# Set default row format to a Barracuda one. COMPRESSED is useful on a
# per-table basis.
innodb_default_row_format = DYNAMIC

The large prefix is key here:

If set to 1, tables that use specific row formats are permitted to have index key prefixes up to 3072 bytes. If not set, the limit is 767 bytes.

The row formats allowed are DYNAMIC and COMPRESSED. (The latter can be very handy if you don't do many writes to a table with a lot of compressible data, e.g. activities, but that's probably a special case.)
So then you don't have to shorten your text fields.


I can't think of a down side to the CiviCRM "base page" existing on your WordPress install - other than that you can't use that page for public-facing content. Anyone visiting that page will see holding text, not CiviCRM content of any kind. Viewing CiviCRM content requires query strings to be appended to the "base page" URL plus the appropriate permissions.


Adding a comment to an event during registration

You could setup a custom field for participants of the event (not contacts, nor the event, but the registration itself; Civi differentiates between contacts and participants; the registration entity is called 'Participants').

When creating the Custom Field Set, the "Used For" field would be for Participants (again, this is different from Contact).  Then when you add the field to the Profile you are going to use, the first dropdown for Field Name would be Participants; the second dropdown would be the custom field you just created.

Done this way, the Notes custom field you created only appears in the registration information (if you View the registration under a contact's Event tab), not in the Contact's Notes tab.

More details here: http://book.civicrm.org/user/events/setup/

Regarding the token for the confirmation email, because the custom field is for the registration/participant entity and not the contact entity, I think you will have to create a custom Token to access that data in the email template.


Fixed this after looking at the import of data. Remedy was to highlit the double name and click edit then save. it reset the data correctly. Did this via a bulk update


After upgrade to 4.7, Activity dashlet and Activity list in Contact not showing any activites

This is a bug related to recurring activities. Issue filed https://issues.civicrm.org/jira/browse/CRM-18165


Cannot create or edit emails or templates in Mosaico

It turns out the issue was being caused by the resource url for the extensions directory. The path was set correctly but the resource url had a typo. The extension directory was not the standard /ext. Once the resource url was corrected and the cache cleared all works fine.


What's the difference between Job Title and employer relationship description?

Afaik, there is connection between the "Current Employer" field and the "Job Title" field.

If you select a contact in the "Current Employer" Field it will also create a relationship AND disable an existing "employer relationship" which is marked as "current employer".

If you create a "employer relationship" you will have a little checkbox that says "current employer". If you tick it, it will also fill the "Current Employer" field and uncheck "current employer" with the existing "employer relationship" (but not disable it).

By the way, if you share an address you also have the option to "Set this organization as current employer" - which effects I do not know from the top of my head.

All this "UI magic" has been introduced / revised a while ago and has confused me plenty. It can also be quite complicated when you try to use the API (e.g. for imports) as the "current employer" attribute is not availbale there (at least to my limited knowledge).

Hope this helps a little bit.


What to do about "File 'Array' presents a security risk and should be deleted." on 4.7?

CiviCRM is not warning you about a file named Array.php, the confusing error message is because it's rendering a PHP array to a text string.

I've opened an issue in JIRA about this and submitted a suggested quick fix:

CRM-17909: File 'Array' presents a security risk and should be deleted.

It looks like the fix is as simple as adding [0] as shown in this Github commit.

If you can test the fix from that issue on your site, and confirm that the error message shows a more helpful result when you've done so, that will help us get the fix into the next 4.7.x release.


Membership with recurring fee (monthly or yearly)

If you mark the payment as pending (see screenshot 1 below) then the resulting membership will be pending.  When you update the payment, the membership will be automatically updated.

To set the member status to Inactive after payment hasn't been received for three months, go to Administer menu » CiviMember » Membership Status Rules.  Click Edit next to the Grace status, and set the end event to "Membership End Date" and "End Event Adjustment" to "3 months".  This creates a three month grace period from the membership end date, and will change to "Expired" after that (assuming you haven't changed other membership status rules).


Error: Sorry but we are not able to provide this at the moment

You will get more details in civicrm log file (*/file/civicrm/ConfigAndLog). Also the main reason of this type error is, we are using few fields that are disabled. check custom fields status that are using for contact.


How to determine Payment Processor for "pending" transactions (via SQL or otherwise)?

Below query should give you all pending contributions from payment processor
SELECT cc.id, cc.contact_id, cc.total_amount, cpp.title,
  cc.receive_date, cft.trxn_date, cc.invoice_id, cc.invoice_number, cc.trxn_id
FROM civicrm_contribution cc
  INNER JOIN civicrm_entity_financial_trxn ceft
    ON ceft.entity_id = cc.id AND ceft.entity_table = 'civicrm_contribution'
  INNER JOIN civicrm_financial_trxn cft
    ON cft.id = ceft.financial_trxn_id
  INNER JOIN civicrm_payment_processor cpp
    ON cpp.id = cft.payment_processor_id
WHERE cc.contribution_status_id = 2 AND cc.is_pay_later = 0;


How do I report a problem in civicrm_api3 class?

The procedure for reporting bugs is detailed at https://civicrm.org/bug-reporting . This goes through verifying and reproducing the bug, and then it can be added on the issue tracker.

If you have a patch, you can submit a pull request on GitHub (often against https://github.com/civicrm/civicrm-core) with a reference to the bug report.


How to Transfer Big Data to a Different Domain

I have used "big dump"to move big databases ozerov.de/bigdump/ with good success


Civitoken extensions provides additional tokens for contact. It would be worth trying the extension.

There are also few others

Contributions Table token
Payment Tokens


how to search for contacts selected in contact reference fields

Lack of searchability is one of the downsides to using Contact References.

1) One option is to use Relationships instead of Contact Refs.  You can create a smart group based on those - but you would need to convert your existing Contact Refs and associated processes.

2) Jaap's DataProcessor extension can help.

Add a Data Source of type Individual - call it Person
Add a second Data Source of type Individual - call it DC.

Join type as 'Select fields to join on'
Join on Field: Contact ID = Person::custom group::DC contact ref

Add fields for the fields you want to display for Person and/or DC using 'Raw field value' - include the DC contact id.
Add an Output of Contact Search

That will search for contacts who are DC's and show the fields you configure.

Although Contact Search has an action to create a smart group, I have not got that to work with DataProcessor (yet) - so it does not completely solve your problem.  You could though run it and add the found contacts to a static group.

I guess Jaap would welcome any PR's or sponsorship to make smart groups work as a dataprocessor output.


case details field not available through UI

It's initially populated with the details of the open case activity and depending on your philosophy should or shouldn't be linked with the open case activity. In the compucorp version of civicase you can see/edit it.


Ok. This is my first try using Github. Changed civicrm-core/CRM/Utils/File.php and committed to master branch with a proper summary and description. Change tag 875f1c8.

Do I have to do anything else? Should I enter anything in the issue list?


Can't access contribution page without a login

You may need to check/add necessary permission that is required to access contribution page for anonymous user.

You can check by navigating to CiviCRM >> Administrator >> Users and Permissions >> Permissions (Access Control). Click on 'Joomla Access Control'.


CiviCRM and WordPress User Groups and Permissions

CiviCRM WordPress Member Sync is compatible with both the Members and Groups plugins. The former grants WordPress users the 'restrict_content' capability when they have a membership, whilst the latter allows capabilities that are generated by CiviCRM WordPress Member Sync to be mapped to user groups. Either that, or you can roll your own functionality by mapping memberships to roles or capabilities.


Are contents of ConfigAndLog directory safe to delete?

The main use of those logs files is to help diagnose problems in CiviCRM.  You're unlikely to want to review problems from a few years ago so you can delete them.  The one without the datestamp is the current one and that should have the most recent timestamp.

However 9GB is a lot of log output!  It would be worth looking at the recent ones to see if there are current issues that need attention.


Record which timeline created an activity

This is more of a workaround but you can create activity types specific to each timeline and then include the name of the timeline in the activity type label, e.g. if you have timelines named A and B then you could have activity types labelled:

A - Phone Call
A - Fill out requisition
...
B - Phone Call
B - Fill out requisition
...

Alternatively the add timeline feature will create dates relative to whatever offset you have in your config for that timeline, so you could have an "anchor" activity type which you create just before you add a timeline, and then in the timeline config you say make the offsets relative to that activity type. You'd have to rejig your timelines to match that workflow.


Is there another way? Yes (not necessarily a great way)

1/ make a Webform-civicrm form, and set it to work as a a block showing on user/* and user.

2/ make a View showing the data in a block on /user with an Edit linking going to a webform.

That said, I have never seen a Profile not work in the way you are describing so it sounds as if something else is tripping you up.


Why is there a Location Type AND a Checkbox for billing addresses?

The location type is mainly as a "safe" way for recording a billing address that may differ from a contact's home, work, or other addresses.  If you make a transaction that records a contact's billing address, you can't reasonably assume that the address is the contact's primary address.  (Maybe it's your home address, or maybe it's the billing department of your employer.)  In fact, there may be a primary address separately recorded on the contribution or event form.

Either way, you need to create an address, not overwrite an existing address, and not imply that it's a home, work, or other type of address.  Consequently, contribution forms will use the "billing" location type and mark that as used for billing.

(The checkbox is relatively new, too, so there didn't use to be this ambiguity.  However, the checkbox allows you to identify an actual location as the billing address so you don't have duplicate information.)

In practice, it's important to let your users know to use the checkbox, not the location type, for determining whether an address is for billing.

For future versions, I'd suggest that the billing location type wouldn't be necessary if contacts were allowed to have multiple instances of the same location type.  For backwards compatibility, old sites could keep the billing location type, but new sites could just have a new home (or whatever default) address get added and marked as billing.


This has been fixed at https://github.com/civicrm/civicrm-core/pull/10556 and is included in 4.7.21 version.

You can apply the PR on your site if you don't wish to upgrade now.


Can members login and then search membership database?

Yes, there are a few different ways to accomplish this.  One tutorial for a members-only directory is available on the CiviCRM wiki: Creating a website member directory

If you are on Drupal, you could also use Views to create something similar.


How to create a mailing based on a template with API

We are using a seperate api call to retrieve the required parameters for subject, body_html and body_text:

$result = civicrm_api3('MessageTemplate', 'getsingle', array(
   'id' => 87,
 ));

You could use api chaining with Mailing.create but I dont see a huge benefit.


Public URL for CiviMail: access denied even for admin

Sounds as if you may the ‘Hashed Mailing URL's’ option selected in your CiviMail Component Settings –

Administer > CiviMail > CiviMail Component Settings

/civicrm/admin/setting/preferences/mailing?reset=1

If enabled, a randomized hash key will be used to reference the mailing URL in the mailing.viewUrl token, instead of the mailing ID


In my experience, this kind of thing is usually caused by something (a hosting setting?) trying to use a www.- site URL and CiviCRM using a non-www. site URL in the civicrm.settings.php files, or the othe way around.


What does it mean to "configure your MySQL server for utf8mb4 support" when my database charset and collation are already utf8mb4?

You need to put those in your mysql configuration file (e.g. sometimes located at /etc/my.ini, depends on your host) as described at https://docs.civicrm.org/installation/en/latest/general/requirements/#mysql-configuration
[mysqld]
innodb_large_prefix=true
innodb_file_format=barracuda
innodb_file_per_table=true

If you don't have access to that you'll need to ask your hosting company.
At the time of writing (civi v5.30), all this does is make it possible to use utf8mb4, but civi will still install as utf8. After install, you can manually convert by choosing the menu option Support - Developer - Api explorer v3, and choosing Entity: System and Action: utf8conversion and then clicking the Execute button.


Option to add new contact freezes up - won't work

I had the same error in my console when trying to edit a participant report on an older civi install and discovered this helpful post: https://forum.civicrm.org/index.php?topic=20598.0

It doesn't sound like you've got exactly the same issue, but it's an interesting clue - i.e. in my case, some db data was generating a page that had js issues, it was not a conflict problem. Of course, it might also be a red herring.

Regardless, you'll want to turn off any js aggregation and use your js debugger to dig down and figure out who's version of the datepicker is giving problems, and where the problematic data is coming from. Sometimes just looking at the arguments being passed might be a clue. My best guess is that the datepicker is gagging on some invalid date that got mangled on Civi upgrade.


It should show up both contacts, I suspect there might be something in the setup of your sort name. Could you attach some screen prints so I can see what happens?


How does civi replace page content? Wordpress

The CiviCRM plugin only filters the content when the shortcode is present or when the page is the CiviCRM basepage. For shortcodes, it pre-renders the CiviCRM content that the shortcode represents at the wp action stage (in order to support multiple shortcodes in, for example, archive pages) and then uses the the_content filter to inject the CiviCRM content.

All the relevant code can be found in https://github.com/civicrm/civicrm-wordpress/blob/master/includes/civicrm.shortcodes.php

If you have details of situations where the plugin incorrectly filters content, it would be helpful if you could update your question with specific information so that it can be addressed.


I would check your MySQL permissions - my guess is that you lack the CREATE VIEW permission, which is necessary for multilingual installs. Here is a full list of MySQL permissions needed.

If you go to CiviCRM's Administer menu » System Settings » Debugging and Error Handling, you can turn on Debugging and Backtrace, which will give you a longer error message detailing exactly which permission is missing.  If my answer doesn't fix your problem, please do so, then edit your question to include the additional info.


For the interim to let exports work, I have made the DB Field Length match the longest field label.


I previously had problems with node_clone (you had to enable civicrm option in cloned node), but last few projects it seemed to work properly.

What are the weird problems?


I'm not sure this is quite the same problem as I had, but it may be worth looking at. I'm in WordPress 4.9, CiviCRM 4.7.22. I was getting Error 500 for all the tracked links and I resolved this by changing [civicrm.root]/extern/url.php to 644 permission and the containing directory to 755. I've had a lot of similar problems (e.g. with getting images into KCEditor with KCFinder. One of the incomplete screens I get there (problem not entirely solved) is the same as I get with the Browse server button that you mention).

I think its all to do with the fact that I have a hosted solution (SiteGround) and it insists on 755 and 644 permissions whereas a lot of WordPress files are 775 and 664, which I think is only appropriate for stand alone hosting (again need more research).


There are a few ways to do this.  I've done something very similar on Drupal but not Wordpress, but there are two different answers depending on your situation:

If membership entitles someone to download any/all publications, then the easiest approach would be to use CiviCRM WP Member Sync in conjunction with Groups.  Make your download pages available only to a Wordpress user role called "Members".  Use Civi-WP Member Sync to make any CiviCRM contacts with an active membership also have the "Member" user role.  And of course, enable signing up for a Wordpress account in the membership signup profile.
If you must pay an additional fee for each publication on top of membership, you'll want to do the above, but also add WooCommerce or another Wordpress e-commerce module.  This is significantly more setup, but if you make your commerce pages available only to members using the approach outlined above, you'll have very fine-grained control.


Do any token extensions provide a token for "age" rather than just DOB?

I don't see any either, but the code to use in such an extension (as either a token or even a smarty modifier) seems pretty straightforward:

https://github.com/civicrm/civicrm-core/blob/5.19.2/CRM/Contact/BAO/Contact.php#L2677-L2684

      if ($contact->birth_date) {
        $birthDate = CRM_Utils_Date::customFormat($contact->birth_date, '%Y%m%d');
        if ($birthDate < date('Ymd')) {
          $age = CRM_Utils_Date::calculateAge($birthDate);
          $values['age']['y'] = CRM_Utils_Array::value('years', $age);
          $values['age']['m'] = CRM_Utils_Array::value('months', $age);
        }
      }


How to remove the link 'do this for different person?' on a contribution / membership renewal page

Have you tested this as a regular user and not as an admin or higher-level user? There should be a set of permissions that define whether or not users can edit their accounts, the accounts of others, etc. Make sure "edit all contacts" is only select for the appropriate role(s).

Here's what they look like in Drupal, for an idea:


Problem fixing missing indexes after upgrade to 4.7

We have found that there are problems with both civicrm_option_value and civicrm_case_contact table indexes that have not been properly fixed by https://github.com/civicrm/civicrm-core/pull/10908 as of 4.7.25 or the rc's for 4.7.26 and 4.7.27 as of late October 2017.

When we encounter this we have been runing the following queries in the relevant MySQL database:

ALTER table civicrm_option_value DROP FOREIGN KEY  FK_civicrm_option_value_option_group_id;
ALTER table civicrm_option_value DROP INDEX index_option_group_id_name;
ALTER table civicrm_option_value ADD CONSTRAINT `FK_civicrm_option_value_option_group_id` FOREIGN KEY (`option_group_id`) REFERENCES `civicrm_option_group`(`id`) ON DELETE CASCADE;

ALTER table civicrm_case_contact DROP FOREIGN KEY FK_civicrm_case_contact_contact_id;
ALTER table civicrm_case_contact DROP INDEX FK_civicrm_case_contact_contact_id;
ALTER table civicrm_case_contact DROP FOREIGN KEY FK_civicrm_case_contact_case_id;
ALTER table civicrm_case_contact DROP INDEX UI_case_contact_id;
ALTER TABLE `civicrm_case_contact`
  ADD CONSTRAINT `FK_civicrm_case_contact_case_id` FOREIGN KEY (`case_id`) REFERENCES `civicrm_case` (`id`) ON DELETE CASCADE,
  ADD CONSTRAINT `FK_civicrm_case_contact_contact_id` FOREIGN KEY (`contact_id`) REFERENCES `civicrm_contact` (`id`) ON DELETE CASCADE;

After running these queries, we go to the Admin Status Console (civicrm/a/#/status) and click the button that calls the UpdateIndices api, which rebuilds the indexes properly. (In other words, we have not found that @Alan Dixon's step 4 is required after step 3.)

There are reports that some people have duplicate entries in civicrm_case_contact table on case_id and contact_id. You'll need to delete these duplicates.


Error on activity import: "'1' is not a valid option for field custom_42". Can I find which field this is referring to through the admin interface?

You may find that you can go to this url and find the field you are looking for
/civicrm/admin/custom/group/field/update?action=update&reset=1&id=

Or, to reverse engineer this, go to any existing custom field and mouse over the view/edit links and you should see the field ID along with the field group ID - i just dropped out the field group id to make the url look a little less intimidating.


How do I sync contacts who are not members in Wordpress?

There are two solutions:

1) You can set the Organization Membership to "trickle down" via a relationships. This is hard to change after the fact. You will need to update the Membership type via the database and then manually update all the Memberships.

2) You can create an advanced search pulling all the Organization Memberships and set the Display Results As: Related Contacts. Make that into a Smart Group. Use that Smart Group or most likely multiple Smart Groups into a Group Role Sync via your plugin.


Please post the full url you call, but you probably have an error on the url, it should have an action=get (or getcount or get*) param. If it doesn't, it blocks the access, because it doesn't know it's a read only action that can actually be performed over a GET method

However, as Jaap mentioned, I would recommend you to use POST all the time, no matter the action you want to perform, it's easier and cleaner.

FYI, in my client libraries, I tend to have the action+entities as get param and all the rest into post. The main reason is that it's giving cleaner logs to help understand what's going on, without leaking any sensitive information

Please share if you write a gem to wrap up the rest call inside a ruby framework, I'd be interested to use it on one of my project (sinatra, but probably going to work the same)


Why does contribution verification display a numeral value rather than a text value

While it's still clear you've got a bug, I'm pretty sure your issue isn't that you have "1" but rather that the unit--week, month, year--is missing.  The numeral is there in case you wanted to donate quarterly--it would say "3 month(s)". Again, not that this makes it any better.

However, it might help you or whoever diagnose the bug.  Hopefully it's as simple as the payment processor extension not providing the unit back to the receipt/thank-you page.


Wordpress Multisite and CiviCRM with multiple databases

Well, the answer appears to be 'Yes, it is (almost) that simple'.

The one wrinkle is that you first need to trick CiviCRM into thinking it has not already been installed on another Wordpress network site by moving civicrm.settings.php to an out of the way location.

So, do this:

Move your old civicrm.settings.php file somewhere safe.
Create a new empty MySQL database.
Go to the Wordpress site where you intend to create the new CiviCRM instance and activate the CiviCRM plugin.
CiviCRM will go through the process of installing CiviCRM to the blank database.
A new civicrm.settings.php file will have been created probably in a path like: /path/to/wordpress/wp-content/uploads/sites/2/civicrm/civicrm.settings.php
Restore your old civicrm.settings.php to its original location (in my case this was in /path/to/wordpress/wp-content/plugins/civicrm/ because it's an older install).

The 'old' settings file was edited something like this:

<?php

$site = $_SERVER['SERVER_NAME'] == 'newsite.com' ? 'new' : 'default';

if ($site != 'default'):
    include_once('/path/to/wordpress/wp-content/uploads/sites/2/civicrm/civicrm.settings.php');
else:
    /*The contents of the old original settings file goes here.*/
endif;

?>


Browsing for images in the editor leads to an unexpected Error

This is caused by a bug that prevents users that configure multiple languages to use the kcfinder plugin. So check if there are more available languages are configured at https:////civicrm/admin/setting/localization?reset=1

Restrict it to one, and try again.
At the moment a patch is available at https://github.com/civicrm/civicrm-core/pull/19245. And the PR is accepted so in later versions of CiviCRM you should not see this.


This resolved itself - could be a clear cache issue - not sure - but it is now closed


How to pass field data from a Drupal node to the CiviCRM contact record of the author

I got this working by installing the CiviCRM Rules and CiviCRM Entity modules in Drupal. I was then able to create a rule that would populate custom fields in the node author's CiviCRM individual contact record with values from the node when the node was created or updated. In my case, it was the node title, the node path, and a custom date field on the node.

The key was to create a rule that would trigger on node create or edit, and then update each of the CiviCRM fields I wanted. The CiviCRM fields were accessible in Rules as node:author:civicrm-contact:custom-1, node:author:civicrm-contact:custom-2 and so on.

Note the use of node:author not current:user - I wanted the node:author record to be updated. Whilst these would be the same when the author creates/updates the node, they would be different if another user updated the node. If you use current:user, then the fields of the current user would be updated. I guess there is a use case where that would be desirable, but it wasn't what I wanted.

I was then able to use Drupal's Admin Views module (which incorporates Views Bulk Operations) to carry out a bulk save on all the nodes that had been created prior to configuring this set-up - this triggered the rule and updated the individual field

The only thing I haven't solved at this point is how to allow multiple instances of my custom field set in CiviCRM (i.e. to capture the fields for multiple nodes created by the same author). I initially configured the field set this way, but found that each save of a node added a new instance of the field set in the CiviCRM contact record rather than updating the existing field set. When I reverted to a single instance, the fields were simply updated on each save.


I modified a template file and now can't remember how

This could potentially be done via Word Replacement - so check there too.


The CKEditor integration was re-written in CiviCRM 4.7. I recommend upgrading when that version is released, as it may solve your problem. You could verify that now by upgrading a test copy of your site to 4.7.beta.


Deduping's "No of contacts to find matches for" field definition

I'm on the same version and this is the view that I'm seeing. Haven't seen what you are referring to...


UPDATE: As of version 4.6.4, the code below is merged into core.  Use the Contribution and Membership Details report.

This was such a good question I decided to dig into the code.

I used grep to search the Reports folder for the word "Premium" - and found that the only report that includes premium info right now is the Contribution and Membership Details report (found in the "Membership Reports" section).  That report shows the Premium and Premium Option, but not the fulfilled date.  However, it's only three lines of code to add if you use this report as your base.

Create a PHP override directory - there's documentation that shows you how - and copy the ContributionDetail.php file into the appropriate place in the folder.  Then find the section that reads:

  'civicrm_contribution_product' => array(
    'dao' => 'CRM_Contribute_DAO_ContributionProduct',
    'fields' => array(
      'product_id' => array(
        'no_display' => TRUE,
      ),
      'product_option' => array(
        'title' => ts('Premium Option'),
      ),
      'contribution_id' => array(
        'no_display' => TRUE,
      ),
    ),
  ),

Change it to read:

  'civicrm_contribution_product' => array(
    'dao' => 'CRM_Contribute_DAO_ContributionProduct',
    'fields' => array(
      'product_id' => array(
        'no_display' => TRUE,
      ),
      'product_option' => array(
        'title' => ts('Premium Option'),
      ),
      'fulfilled_date' => array(
        'title' => ts('Premium Fulfilled Date'),
      ),
      'contribution_id' => array(
        'no_display' => TRUE,
      ),
    ),
  ),


The issue was due to unexpected multiple contact types in the same import file. Resolved by splitting import files by contact type.


How to add a second photo to a mailing block

Each (mosaico) block is configured for one or more images. If you want a block with a different number of images, choose a different block.

You might be able to trick mosaico into including an image where it's not expecting it, but that would defeat the purpose of what it does for you (i.e. mobile + support for many different mail readers).


Pino, thanks for reporting this I have submitted a PR to fix above typo

For Potugal and Coimbra state/province

For Poland state/provionce, typed in lower case

Would you mind doing some test or adding some thoughts on appropriate PR to speedup the merge process?


Tokens missing in Webform Email Settings (and thus not populated in Emails received) (after upgrading)

Thank you to both of you (Karin and Pete) for your suggestions : I have solved the problem.
I have disabled Token and Entity Tokens Modules (and requested associated Modules)
... then reactivated :
The probem comes from the Advanced User Management Module : when it is enabled, most of the tokens cannot be browsed (among which the default proposed ones in the mail content).
I will post this answer on the Drupal StackExchange.


If you have sql access, it's a very simple update query

update civicrm_contact c
set    c.external_identifier = null
where  c.external_identifier is not null

This, of course, will null all of them for all contacts but I think that is what you're asking for.


CiviCRM 'Detailed Logging' removes former 'Changelog' entries on contacts

They should still exist in the civicrm_log table if you have access to the DB.


Donor set recurring start date on a Drupal Webform Contribution Integration

The short answer is:

No.

Unfortunately Webform CiviCRM integration does not currently support selecting the start date for a recurring contribution.

The longer answer is that it would not be impossible nor incredibly complex to add this field as a supported option for the CiviCRM integration to allow you to expose this option via Webform & CiviCRM.


Is it possible to insert a table in a fieldset?

See http://wp46.demo.civicrm.org/wp-admin/admin.php?page=CiviCRM&q=civicrm%2Fadmin%2Fcustom%2Fgroup%2Ffield&reset=1&new=1&gid=4&action=browse where you have an example of a bunch of fields for

medication
frequency
amount

is that what you need?


Answer to the Issue
The origin of the problem is when you ignore this: https://civicrm.org/blog/daved/action-required-drupal-8-installs-and-upgrades-composer-and-patches
To fix an existing installation which was upgraded or installed without the 'enable-patching' configuration, you can can do this:
composer config 'extra.enable-patching' true
composer update civicrm/civicrm-asset-plugin civicrm/civicrm-core civicrm/civicrm-drupal-8 civicrm/civicrm-packages  --with-dependencies

Original Post
I figured out that if you run
composer config 'extra.enable-patching' true

straight after
composer create-project ...

installation is going to work.
Background:
We have a scripted install which worked fine with 5.28.4 so I thought
to upgrade to 5.30.1 but got the following message at
cv upgrade:db

vendor/bin/cv upgrade:db
Found CiviCRM database version 5.28.4.
Found CiviCRM code version 5.30.1.
Checking pre-upgrade messages...
_Pre-announcement for upcoming version 5.30_: If your composer
configuration or composer.json does not enable patching, you MUST do that
BEFORE running composer to update your files to version 5.30. Either by
using `composer config 'extra.enable-patching' true`, or updating the top
level composer.json's extra section with `"enable-patching": true`. See
Drupal 8 installation guide [1] for details.
The default copies of the message templates listed below will be updated to
handle new features or correct a problem. Your installation has customized
versions of these message templates, and you will need to apply the updates
manually after running this upgrade. Click here [2] for detailed
instructions.

    * _Events - Registration Confirmation Invite_ - Support negative hours for
cancellation/transfer
    * _Events - Registration Confirmation and Receipt (on-line)_ - Support
negative hours for cancellation/transfer

The default copies of the message templates listed below will be updated to
handle new features or correct a problem. Your installation has customized
versions of these message templates, and you will need to apply the updates
manually after running this upgrade. Click here [2] for detailed
instructions.

    * _Contributions - Invoice_ - Ensure that amount paid is shown even when
fully paid

Links:
------
[1] https://docs.civicrm.org/installation/en/latest/drupal8
[2] https://docs.civicrm.org/user/en/latest/email/message-templates/#modifying-system-workflow-message-templates

I hope that helps.


Add 'Non-deductible amount' to Contribution Receipt template

There seems to be a bug that does not fill the civicrm_contribution table non-deductible_amount column. Until that is fixed this will continue not printing a value. For now you can use the API csv Import to update that column for existing donations.

There is another thread started about this. Non-deductible contribution amounts are always $0


Easiest thing to do is upgrade in stages, go from 4.0 to 4.1, then to 4.2 then you can try straight up to 4.6

This approach should mean you dont hit too many issues


CiviMail tracking opens stopped working after upgrade to 4.7.x

I've experienced this on a few sites and it turns out the file/directory permissions seem to have changed. I'm not sure if this is in relation to the way 4.7 is packaged, or something on the particular hosts that these sites are on, or what, but I have found that I need to recursively reset permissions after updating, or the tracking doesn't work, click through links don't work, you can't upload images from CiviMail, etc.

From just outside the civicrm directory, I do this and it seems to solve it:

find civicrm -type d -exec chmod 755 {} ";"

find civicrm -type f -exec chmod 644 {} ";"

The first one changes permissions on directories and the second on files.


Depends what you do in (or with) CiviCRM as to which hooks fire. So, for example, when I go to "Manage Events", I see the following in my logs:

[02-Feb-2018 17:05:56 Europe/London] Array
(
    [method] => civicrm_alterAPIPermissions
    [permissions] => event
    [backtrace] => #0 /path/to/wp-includes/class-wp-hook.php(288): civicrm_alterAPIPermissions('event')
    ... lots of backtrace ...
)

If I go to "Configure Event - Rain-forest Cup Youth Soccer Tournament" (I've got a test install with the sample data) then I also see:

[02-Feb-2018 17:09:46 Europe/London] Array
(
    [method] => civicrm_aclGroup
    [type] => 4
    [contactID] => 202
    [tableName] => civicrm_uf_group
    [allGroups] => Array
        (
            [10] => Contribution Bulk Entry
            [13] => Honoree Individual
            [11] => Membership Bulk Entry
            [1] => Name and Address
            [6] => New Household
            [4] => New Individual
            [5] => New Organization
            [9] => On Behalf Of Organization
            [3] => Participant Status
            [8] => Shared Address
            [7] => Summary Overlay
            [2] => Supporter Profile
            [12] => Your Registration Info
        )

    [currentGroups] =>
    [backtrace] => #0 /path/to/wp-includes/class-wp-hook.php(286): civicrm_aclGroup(4, '202', 'civicrm_uf_grou...', Array, NULL)
    ... lots of backtrace ...
)

If I visit "WordPress Access Control" under Administer -> Users & Permissions, I get:

[02-Feb-2018 17:19:26 Europe/London] Array
(
    [method] => civicrm_permission
    [permissions] => Array
        (
        )

    [backtrace] => #0 /path/to/wp-includes/class-wp-hook.php(286): civicrm_permission(Array)
        ... lots of backtrace ...
)

So, in summary: those hooks do fire -  but only when needed.


How does this work with an existing website?

As Jon says, CiviCRM is installed on top of WordPress, Drupal/Backdrop or Joomla, so if your main website uses one of those you have the option to add Civi to it.

Alternatively, you can leave the main website as is and install CiviCRM and one of the CMS's on a separate site.  Then for example, your main website has the write up of your event and includes a link for booking that goes to the Civi site to do the event booking and payment.


Simple, consistent N. Am. phone validation/reformatting everywhere?

There's an extension that does precisely this: https://github.com/cividesk/com.cividesk.normalize

It used to be in the extensions directory, but it's gone now for some reason.  It uses libphonenumber, and it formats international numbers appropriately based upon the country in the address.


From email address not changing per user

In addition to the emails shown in the Mailings menu » From Email Addresses, you can also use the email address associated with the user you're logged in as.  I would check Clare's record to see what emails are there; it sounds like your email might be present on Clare's record.

If you want to restrict users to ONLY use emails avilable in Mailings menu » From Email Addresses, you can go to Administer menu » System Settings » Outbound Mail and set Allow mail from logged in contact to No.  Note that in older versions of CiviCRM I believe this option is located somewhere in Administer menu » CiviMail.


CiviCRM on Drupal begins Install and then reverts to "Page not Found"

Check to be absolutely sure you've got CiviCRM installed to sites/all/modules/civicrm.

Also check that you aren't getting bounced from host A to host B, or from http to https, during the installation.

If that doesn't work, watch the PHP error log and webserver access log during the installation; that may show you what's not otherwise obvious.


Online Application with a small processing fee required on submission

For Grant Application on Drupal: I recommend webform_civicrm module for application workflows:

collect all contact info/fields you need (parents + child(ren) + emergency contacts)
store the relationships between these contacts
make it a nice looking multi page application
add payment field(s) in the process


Actions > Create User Record: created a new user account no email has been sent, why?

I don't believe any work has been done to enable this so a patch to core would be required.

The workaround we have often used is described in this blog - basically it uses a civi tag, that triggers a drupal rule, which then uses drupal default processes for creating a drupal user and hence sends out the email etc.

We developed that approach for different scenarios and is probably overkill but it works so we use it ;-)


Does it have to be through CiviCRM? It sounds like you just want a customizable contact form, which can be done on the drupal side - have you looked at potential drupal modules?

If the reason for CiviCRM is that you want a copy stored in their activity list, you could set up the module to bcc to an email address, and configure the civi email processor to retrieve them.

Or if you're up for customizing then a similar suggestion to Jaap's would be customizing the email template to make the same javascript call that the dropdown does, but do it on page load if the url contains your parameter. Depends if you feel more comfortable with front-end or back-end type of customization.


Dog as sub-contact type of individual but they have no last name

Depends what you want to do with the dog contacts, but another option for your last name question would be to use a sub-type of Organization rather than Individual since that only requires a single name.


can't access "Joomla Access Controls" after upgrade from 4.2.19 to 4.7.25

OK so in reviewing the requirements in the documentation, it seems that version 4.6.x was the last version that states explicitly it is compatible with Joomla 2.5 AND 3. The latest documentation (which I'm assuming is for 4.7?) says Joomla 3 is required.

But the download site clearly says "Download 4.7.27 for Joomla 2.5x/3x".

I'll try a rollback to 4.6.32 and see if the problem persists.

UPDATE: 4.6.32 solves this issue.  So I guess 4.6.32 is the last version of CiviCRM that works with Joomla 2.5, so I have to stay with it until the Joomla site can be upgraded to 3x.

Would be very helpful if the download page were updated to reflect this.


CiviDiscount compatibility with CiviCRM 5.9

Yes, CiviDiscount is compatible with CiviCRM 5.9.

I have a 5.9 environment with Drupal and is working as expected.

Your issue could possibly be permission related.
CiviDiscount recently introduced a permission - administer CiviDiscount

Joomla permission documentation -

https://docs.civicrm.org/user/en/latest/initial-set-up/permissions-and-access-control/#permissions-in-joomla

Would also advise to clear CiviCRM caches –

/administrator/?option=com_civicrm&task=civicrm/clearcache

/administrator/?option=com_civicrm&task=civicrm/admin/setting/updateConfigBackend&reset=1


I guess its based on which provider you choose based on the budget or sms gateway fees. There few extension provided by Organization that integrates with SMS gateway

Clickatell
Twilio
Message Media
My sms myntra

You may also find more if you try to search for SMS gateway name with CiviCRM.
We have few clients using Twilio and have positive response so far, few others use different providers because of budget constraint and SMS charges, so we have implemented extension to support that(very simple to integrate).


Error: require_once(): Failed opening required 'CRM/Core/ClassLoader.php'

I'm using drupal with civiCRM and got the same error [failed to open require_once CRM/Core/ClassLoader.php].
I made the following changes to solve it.
In your civicrm.settings.php if you have
require_once 'CRM/Core/ClassLoader.php';

Change it by adding "civicrm_root" variable
require_once $civicrm_root . '/CRM/Core/ClassLoader.php';

This is assuming that somewhere in that file, you have already set the "$civicrm_root" variable to point to your civiCRM install directory such as
$civicrm_root = '/var/www/html/drupal-root/vendor/civicrm/civicrm-core';

Note: my path might be different as I'm using composer to install civiCRM


manual contribution entry not showing up on contacts contribution summary

If you have two transactions entered that are exactly the same and both pending, but one is cancelled, it may have created a conflict in the system. Try deleting the cancelled transaction and see if that helps.


Can you try sending gmail? to be sure the problem is on the sender side (civi) and not on the recipient one.

if the size is 0 byte, it might be that you have a limitation in PHP on how big files you upload/process can be. Is this a problem you have all the time or only with these files? are they big?


After applying for a CiviCRM account, how long does it take to approve?

If you mean an account with civicrm.org then usually not so long. I have pinged someone on chat.civicrm.org to try and resolve this for you.


You can create an additional membership type for Board members that is separate from your "normal" life membership. On the page where you create the membership type, you'll set the duration unit to be 1 lifetime. I'd suggest giving the membership a name such as "Board Member" to help distinguish them from your regular lifetime membership.

That gives you an open-ended membership. Here's a screenshot to show you what I mean:


Bounce processing using oath-client with GSuite: Required parameter not passed: "refresh_token"

It's a known issue with using google + civi oauth. See https://lab.civicrm.org/dev/core/-/issues/2184


Import Multi-value Custom Data Fails for Household Contact Type

I think this might be the relevant JIRA issue
https://issues.civicrm.org/jira/browse/CRM-18959


After installation Civi menu and dashbord do not show (SOLVED)

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


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


Why won't contact ID display in a profile?

Since this is not available in core civicrm, for Drupal users you can have the contact_id displayed in a Webform : just change the Widget to "Textfield" (in the WEBFORM tab) to make it visible


Embed profile in separate Web site (WordPress)

You need to enable a setting that allows Profile submissions from external sites for this option to be visible.
To do this go to Administer >> System Settings >> Misc and look for "Accept profile submissions from external sites"


How do I get a chained restful API call to return xml?

@samuelsov got me going in the right direction, along with trial and error from the documentation:

This returns all related phone records for the given contact_id:

entity=Contact&action=get&contact_id=1234&api.Phone.get[values]

And you can filter the chained API call too, for example all related phone records with a phone_type_id of 2:

entity=Contact&action=get&contact_id=1234&api.Phone.get[phone_type_id]=2


Contacts unexpectidly added to Mailing Groups (by Admin)

From UI i don't think there is any way you can get history of contact being added to group. If you have hands of experience in writing sql statements than you can use civicrm_subscription_history table in Civicrm to track down about all history of contact added to group by dates.


Best way to initiate a pay per month membership scheme

Try by doing this

Create a Membership type ABC with monthly rolling with auto renew required option ticked.

Create a price set with price field as select or radio with two options
2.a ABC membership type (monthly) - monthly amount - number of terms set to 1
2.b ABC membership type (yearly) - yearly amount - number of terms set to 12

Include the price set in membership signup form

Or

Create a Membership type ABC with monthly rolling with auto renew required option ticked.
Create a Membership type ABC-yearly with yearly rolling with auto renew required option ticked.
Include both the membership type in membership page

(Second method will work, but not sure about first method)


After turning on Send Scheduled Reminders and setting up a Membership Renewal Reminder, why am I getting all zeros in my Scheduled Reminders log?

You say you get the feeling...have you gone into Search > Find Activities > Activity Type of "Membership Renewal Reminder" to see what it lists?  I always check to see if it has recorded the activity.  That doesnt mean it has been emailed only that it was scheduled against that account.  Additionally my reminders show up in the Recent Items on the left side of CiviCRM.


How can we modify the default event badge barcode?

A better approach would probably to use the Barcode hook and alter the value in there instead of overriding the core file.

https://docs.civicrm.org/dev/en/latest/hooks/hook_civicrm_alterBarcode/


Is There A Way to Aggregate PDF Letters the Way Labels are Aggregated

We came to the conclusion that this is not possible and that is because of the tokens that would be needed for the letters once they were aggregated.


When a Case is set to Closed we would like all un-Completed Activities on the Case to have their Status changed (eg to Cancelled

I would hook on https://docs.civicrm.org/dev/en/latest/hooks/hook_civicrm_post/ to find cases being closed then do the work from there. I would follow the civicrm_option_value grouping field to determine if a status represents closed.

This seems like an opportunity for a nice small single purpose extension. Maybe 3-4h to develop and publish.


How do I access drush commands specific to CiviCRM?

The readme for cv needs updating. It's now tested pretty well with drupal 8. I would use cv instead.
See also https://lab.civicrm.org/dev/drupal/-/issues/76


What's stripping the characters from my menu links? (ie. '?' '=' and '&')

The answer is: bad upgrade from older database schema. Somewhere in the 4.5 alpha upgrade series something went wrong for me. I'm not sure what, exactly, but the answer was to verify the schema and to a clean install. Sad face.


Impossible to login with new civicrm user

OK, I have found my problem's solution. The cause was the user generated by civicrm had a username that wasn't the e-mail. I trying to login using the e-mail not the username. I have install this module and now they works .

https://www.drupal.org/project/email_registration


Font-Awesome icons not showing -- missing class=fa?

It sounds like you've identified a bug — and found a fix. Excellent!

I can confirm this bug by observing the fatal error message displaying a funky character before "Sorry" as shown below.

Here are some next steps that I'd recommend for you here:

Report the bug in CiviCRM's issue-tracker, Jira. If you're new to reporting issues, read over these issue-reporting guidelines in our Developer Guide.
After reporting the bug, you can choose to stop there and wait for someone else to fix it. But, given that this issue has a relatively minor impact, developers will be unlikely to volunteer their time on it unless you offer funding to the Core Team or to an independent expert.
Since you've already dug into the code yourself, I'd encourage you to work on contributing a fix. Here are some tips:

Use git blame (possibly via GitHub's web-based git blame) on that line of code to see if there are recent commits which are relevant to the issue. Ah ha! In this case we can see that  someone recently made a change to "use class crm-i instead of fa".
It would be prudent to look deeper into that commit to try and understand it. I haven't gone too deep, but I did notice that the commit also changed the warning at the top of the "Option Groups" page (/civicrm/admin/options?reset=1), and that message seems to be displaying okay right now:

From the above, I'd recommend considering whether your fix should be limited only to the fatal error page (which might be behaving differently than other pages due to different CSS being included in it)
If you're stuck or want input from other developers, hop on Mattermost.

All-in-all, this answer is just intended to be a push in the right direction towards using other tools (i.e. Jira, GitHub, and Mattermost instead of StackExchange) for reporting (and hopefully fixing) this bug. In some ways you're lucky to have found a bug which will (probably) be super easy to fix! Fixing this bug would be a great stepping stone towards improving CiviCRM in bigger ways too!


Is there a way to get a stand-alone Tell a Friend page?

Tell-a-friend has been implemented for donation (including membership), participant, and pledge pages.

I'm not quite sure how you want to use them. If you have a technology provider in-house or a CiviCRM consultant they could look over and adapt the Smarty template code at https://github.com/civicrm/civicrm-core/blob/master/templates/CRM/Friend/Form/Friend.tpl. See also the related php code at https://github.com/civicrm/civicrm-core/blob/master/CRM/Friend/Form/Friend.php, as well as the template at https://github.com/civicrm/civicrm-core/blob/master/templates/CRM/Friend/Friend.tpl and its similarly matching php code.


Confirmation receipt sent from strange sender address

It looks like you've discovered a bug!  I'm sorry this happened to you, but identifying this helps to make the software better.

I confirmed this bug, and also confirmed that it's not limited to the mail() setting.  I've opened an issue on the CiviCRM issue tracker.

UPDATE: I decided to dig into this a little bit to see if the fix was easy, and it wasn't too bad.  It's available for review now.  If you could apply the fix and let folks know on Github how it works for you, that would be great!  If you're not sure how to apply the fix, get in touch with me on https://chat.civicrm.org, my name there is @junglebird.


Is it possible to populate a set of custom fields with data from a postcode dataset?

There's an extension that provides this functionality called "CiviCRM Region Lookup".  It says it only works through CiviCRM 4.4; I'm not sure if anyone's tested it with a newer version, it might just work.

Note that it's not an easy process to set up for the very first time - but it's easier than writing custom code to handle this from scratch.  You may have follow-up questions, but that link should get you pointed in the right direction!


It depends on what you are trying to do.
If you want the complete removal of the contact, together with related entities (like address, activities, event participations etc.), then permanently deleting the contact will delete all the associated entities.
If you just want to remove the change log for that 1 contact without deleting the contact, you can run a simple SQL query to delete it. For a contact with the contact id 57 you would run this:
DELETE FROM `civicrm_log` WHERE entity_table LIKE 'civicrm_contact' and entity_id = 57

Beware, if you used something like Drupal webforms, then the data can still be there in the webform submissions, even though you deleted it form CiviCRM.


What are the minimum and recommended changes to CiviCRM to support PHP 7?

None any more - as of 4.7.12, CiviCRM supports PHP7


Test email does not match CiviMail WYSIWYG editor

WYSIWYG is something of a misnomer; what-you-see is not really what-you-get. This is universally true whenever your editing environment is different from the final product, even going back to the print world— my bluesheet was always going to be slightly "off" compared to my proof. This is not specific to CiviCRM, but the inherent problems are exacerbated because 1) you are working in a web browser, and 2) your are trying to produce an email— and triply if you are trying to copy and paste from material prepared in a Microsoft Office, Adobe Creative Suite, or other desktop software.
Formatting-to-markup varies almost arbitrarily
The first issue is that the HTML produced by a Javascript WYSIWYG editor like CKEditor differs slightly from machine to machine. To repeat, not only will the appearance differ slightly from browser to browser (and browser version to browser version), operating system to operating system, and editor configuration to editor configuration, but the markup itself is different.
This happens because there is no standard way to translate "rich text" into HTML elements. Even with HTML5, each browser manufacturer interprets ContentEditable in its own way, and at its own success rate.
I tried copying and pasting the same text from an e-mail signature from Outlook 2013 into the same CKEditor-enabled form on the same site in four different browsers and got four different markup results when I view source:
Microsoft Edge

PUBLIC SECTOR

Google Chrome

PUBLIC SECTOR

Firefox Developer Edition

PUBLIC SECTOR

Opera 12

PUBLIC SECTOR

&nbsp;

You cannot rely on a WYSIWYG editor to produce predictable HTML. End of story.
Email clients are weak at HTML, terrible at CSS
The next problem is that email clients do not interpret HTML and CSS as well as browsers do (Javascript, and often webfonts, are out of the question entirely due to security concerns). Cross-platform HTML emails are exceptionally difficult to produce. This is a top question in the manuals of every email provider from Litmus to SendGrid, and the raison d'être for companies like EmailonAcid and PutsMail.
The problem is exacerbated further because people can check their email in many different ways. For my various work and personal accounts, I use a combination of Outlook 2013, Rackspace webmail, other webmail (Gmail, Outlook.com, AOL, etc.), various mobile clients (iOS Mail, TypeMail, Gmail for Android), and even Trillian, and while as an IT worker I am an outlier in this regard, it wouldn't be unusual if many of your recipients checked email on a desktop client or webmail, an Android phone, and an iPad as my parents do.
Simplify your formatting
CampaignMonitor offers a well-maintained guide to CSS in email, showing how different email clients will mangle your CSS in different ways. Gmail, probably the largest and most popular webmail service, strips out quite a bit. Outlook, probably the most popular desktop client, doesn't support responsive layouts or most positioning. And these are relatively easy to get a hold of for testing— good luck finding a test suite for IBM Notes (neé Lotus Notes) or Novell GroupWise.
Therefore, the old advice still applies: the more predictably you want your emails to render, the more primitive your formatting must be:

inline CSS 2.1 only, and using only basic selectors
no HTML 5 elements
only basic text and font formatting, which means
a. no positioning
b. table-based layouts
c. avoid padding or margin
d. avoid floats
basic image handling
a. no CSS background images
b. specify pixel-based image dimensions

There are many guides available and many testing suites.
Suggested practices for CiviCRM
To mitigate the problems with HTML, I encourage authors to do the following:
1. Always provide a text version
For CiviMail, you have the option to include separate text and HTML input. There are people who prefer text to HTML for various reasons, but it also provides a mechanism for people with absolutely hopeless email clients to read the content.
2. Include the permalink to view the mailing as a web page
If anonymous users have the "view public CiviMail content" permission in your setup, you can include the token that provides a link to a web page version of your message. Then you can simply stick this link at the top of the header with the usual explanatory text, e.g. If you have trouble reading this message, visit XYZ to view it as a web page.
But I think the best advice I can give is to give up the desire to have total control over the end user's experience. Email was never designed for that, and there's nothing CivicRM alone can do to change the way the world consumes its electronic mail.


How can I synchronize civimail and my microsoft outlook mail program?

One way would be to create a special response email address and then use CiviCRM's email-to-activity functionality to attach them to your CiviCRM contact records. You could also make a folder in your IMAP account and let that folder be imported into CiviCRM.
http://book.civicrm.org/user/advanced-configuration/email-system-configuration/
From the book:

Email-to-Activity processing
CiviCRM can automatically retrieve email from a specified inbox and file it as an email activity against contacts corresponding to sender and recipients of the email. New contacts are created for emails not already in the database.
There are two ways to do this (either or both ways can be setup at same time):

Special email address: Set up a special email address for your organization, e.g. civiemails@example.com. Users can then add this address in the Bcc field for your outbound emails; they will get auto filed in CiviCRM as described above. No one who receives the email will see this special address if the Bcc field is used.

IMAP Folder: Set up a folder in your IMAP Inbox where you can drag emails that you want filed in CiviCRM.Â  This works with both inbound and outbound emails. (this requires that your email be set up using IMAP.)


Which contact record should house the membership?

Drupal users can (should) only be associated with an individual contact record but with a correctly set up 'on behalf of' workflow this can allow for an Individual to purchase a membership on behalf of an organisation. (I say 'should' because I know users have overridden this and hence permitted the Drupal user to have a uf_match link to the Org record)

Provided they get a Permissions 'current employer of' relationship, they should then be able to return to a renewal page and have the option of renewing on behalf of the original organisation (or any other organisations they have permissioned current employer relationship with), or join on behalf of a new one.

Inheriting of memberships does not need to be set on the Employer of relationship if you don't want that, eg you could use a Primary Contact for relationship so that only specified individuals 'inherit'. This can help when it comes to sending out reminders.

In terms of Households, we have mostly shied away from using that concept altogether since it does not work with 'on behalf of'. I suspect it is not much work to make this possible, and have flagged it in the past, but no one has funded it, and we have always preferred our work arounds of either having sub-Organisation types, or using Webforms to manage the relationships.

The whole 'on behalf of' can be tricky to get right but there won't be one magic solution that meets all needs.


After duplicating event, creating a new location updates the parent event location

It looks like a fix will be included in 5.5.0

https://lab.civicrm.org/dev/core/issues/255


Updating Custom Data Fieldset Settings via php my admin

Hmm I think you should be OK but carefully....and make sure you are not hit by any of the VALUE_SEPARATORS?


There isn't, but you could create one with a custom field - Administer menu >> Customize Data and Screens >> Custom Fields.


Views3 Integration instructions not working

I found this guide on how to expose Tables to Views in Drupal 7.

Now I'm writing a module that expose the tables of the CiviCRM extension that
I have to use and it seems to work as far as I tried.


We have mariadb on our newest server, it's a completely transparent replacement. I haven't noticed any major speed change, either better or worse, so I'd take your hope of major speed gain with a pinch of salt.

We switched to it mostly because they seem to do a better job at pushing new features than oracle... and because it looks like 100% the same, as viewed from civi


Limit the list of contacts to search when assigning a case role

As of CiviCRM version 4.6 the contact autocomplete (aka entityRef) field provides the sort of filters you are requesting.

When the autocomplete box opens you'll see a "Refine search..." option, which allows you to limit results by group, tag, contact type, and other filters.


Martin, for the send email action you need the Email API extension: https://civicrm.org/extensions/e-mail-api.
Once you install that, the send email action should be available in CiviRules.

I have just added a rule to my local installation as shown in the screen print, and it works in my installation (CiviCRM 4.7.25, CiviRules 1.13).

I have created a group Web Contacts, and when I add a contact to that group the email is send out.

So it is kind of hard to see what is wrong on your installation? Perhaps a first step is to configure the rule as I have?


How do I simplify multiple contributions?

This can be done with Webform-CiviCRM integration, and probably with Caldera Form as well.  You can create multiple contats on a single form, specify a single fee, create relationships between the organization and individual.  The annual reminder can be sent out in a number of ways; if you're using Drupal, I'd just use the Webform email functionality to send the email to all the individuals.


Multiple CiviHR installation in single Amazon AWS instance

It's purely apache/httpd configuration issue. Create 2 subdomain demo1.domain.com and demo2.domain.com and have 2 conf file under sites-available and sites-enabled with following config

demo1.domain.com.conf

<VirtualHost *:80>

  DocumentRoot /var/www/html/demo1

  ServerName demo1.domain.com

  ServerAdmin admin@domain.com

  <Directory "/var/www/html/demo1">

    AllowOverride All

    Require all granted

    Options -Indexes

  </Directory>

  ErrorLog  /var/log/apache2/demo1.domain.com.error.log

  # Possible values include: debug, info, notice, warn, error, crit,

  # alert, emerg.

  LogLevel warn

  CustomLog  /var/log/apache2/demo1.domain.com.access.log  combined

</VirtualHost>

demo2.domain.com.conf

<VirtualHost *:80>

  DocumentRoot /var/www/html/demo2

  ServerName demo2.domain.com

  ServerAdmin admin@domain.com

  <Directory "/var/www/html/demo2">

    AllowOverride All

    Require all granted

    Options -Indexes

  </Directory>

  ErrorLog  /var/log/apache2/demo2.domain.com.error.log

  # Possible values include: debug, info, notice, warn, error, crit,

  # alert, emerg.

  LogLevel warn

  CustomLog  /var/log/apache2/demo2.domain.com.access.log  combined

</VirtualHost>


There's two answers, although you probably just need the first:

Instead of Advanced Search, use Search Builder (also in the Search menu).  Use "paid this year" and "email address is empty".
Alternatively, there's a custom search (Search menu > Custom Searches) called Include/Exclude by Group/Tag.  So alternatively you can create a smart group in Search Builder "No email" and combine it with existing searches using the include/exclude search.


Can I add a timeline to a Case programatically?

You can base it on the code found in CRM/Case/Form/CaseView.php. You'll need to adjust references to $this, etc.

  $session            = CRM_Core_Session::singleton();
  $this->_uid         = $session->get('userID');
  $xmlProcessor       = new CRM_Case_XMLProcessor_Process();
  $xmlProcessorParams = array(
    'clientID' => $this->_contactID,
    'creatorID' => $this->_uid,
    'standardTimeline' => 0,
    'activity_date_time' => date('YmdHis'),
    'caseID' => $this->_caseID,
    'caseType' => $this->_caseType,
    'activitySetName' => $params['timeline_id'],
  );
  $xmlProcessor->run($this->_caseType, $xmlProcessorParams);
  $reports = $xmlProcessor->get($this->_caseType, 'ActivitySets');

  CRM_Core_Session::setStatus(ts('Activities from the %1 activity set have been added to this case.',
      array(1 => $reports[$params['timeline_id']])
  ), ts('Done'), 'success');


This was due to the exception thrown on an AJAX pop. A fix has been raised for it at https://github.com/civicrm/civicrm-core/pull/10651.

Hopefully it will be a part of 4.7.23 release.


can't "enable" a disabled event -- the "More" dropdown seems to be hidden behind other events and isn't clickable?

I've tried and failed to reproduce your experience, I suspect it's specific to your "theme".

Here are a couple of other strategies:

Use an administrator theme for the CiviCRM administrative pages.
Shrink your content using the browser zoom (e.g. for chrome, "Ctrl -").


There is no way you can select template to replace the receipt/invoice that is send by Civi automatically. If you want to send a separate invoice/template for certain people than you will need to either write an extension to replace the template with user-driven message template or you can use Schedule reminder or Send Email activity.

Extension:

Implement hook_civicrm_alterMailParams in your extension to replace the message template based on $params parameter

Create Email Activity or bulk email to a group

You can use Email activity to send email with the help of Civi-token extension.

Schedule reminder

Add contact's to a group whom you want to send invoice, create a Contribution schedule reminder and use your template to send email.

HTH

Pradeep


How to use a CiviCRM generated form in an Android App

You might want to check the CiviMobile Extension:

https://civicrm.org/extensions/civimobile

and see how things are done in that app. Might help give you a better direction for the app.

In general, you might want to first design / develop what you want to do with CiviCRM first before deciding how to do it in an app. Your use case seems to be an instance of CiviCRM profiles.


Stop scheduled reminders for an event after the event is finished

There is a outstanding PR's for the fix which needs some feedback on test,

https://github.com/civicrm/civicrm-core/pull/20432
https://github.com/civicrm/civicrm-core/pull/19973


Why is date_created field is ignored for Contact creation via API?

Mike,

Unfortunately you can't set created_date in create api of Contact since there is a trigger which will over-ride your created_date value

DELIMITER $$
CREATE TRIGGER `civicrm_contact_before_insert` BEFORE INSERT ON `civicrm_contact` FOR EACH ROW BEGIN
SET NEW.created_date = CURRENT_TIMESTAMP;
 END
$$
DELIMITER ;

Either you can delete this trigger or update the contact using same api by passing contact id to set created_date after its been created

https://somewhere.com/sites/all/modules/civicrm/extern/rest.php?entity=Contact&action=create&api_key=userkey&key=sitekey&json={"contact_type":"Individual","last_name":"test","first_name":"Peteww"}

https://somewhere.com/sites/all/modules/civicrm/extern/rest.php?entity=Contact&action=create&api_key=userkey&key=sitekey&json={"id":"288","created_date":"2018-01-01"}

Thanks


Why do i have to reenter the 'new organization' name when I have already entered it in the 'current employer' field

I recall tons of duplicate organisations created on < 4.6, because people wouldn't wait until the list of organisations was properly loaded and so on.

So in general, having a bit more control before creating a new organisation, and give it the chance to be more than an empty one makes sense IMO.

As your specific point, it would be better indeed that the field is pre-populated. PR welcome and all that ;)


What could be causing Wordpress to create user accounts for members?

This has been answered in comments above


I just ran drush civicrm-upgrade-db and saw upgrade messages in the output.

While the formatting could certainly be improved, this does seem to work (in some cases?).

As Coleman notes below and in CRM-16946 - pre upgrade warnings/notices are not displayed by Drush upgrade, while post upgrade notices are.


civicrmHooks.php no longer invoked under Joomla and CiviCRM 4.7.20

I've spot-checked the current 4.7.21-rc and as well as an older version 4.7.15 -- the problem reproduces in both. The problem arises with web-based requests in which these two operations are performed in the wrong order: (a) updating the include_path and (b) loading the civicrmHooks.php from the include_path.

(Doing a proper audit of Joomla regressions is painful, but I'd wager the problem originates in the 4.7 alpha/beta cycle.)

Searching JIRA for civicrmHooks.php turns up a nearly identical issue CRM-19914, which was fixed in WordPress -- but it was incorrectly described/triaged as a "Windows" issue. (The bug actually would have applied to Joomla+WordPress, regardless of OS.)

I'll submit a similar patch for Joomla under CRM-19914.


Note that for all the popular web email clients (gmail, ymail) and probably desktop clients too, image loading is disabled by default and the user explicitly has to enable image loading for an email address or globally.

At the best the open rate should be treated just as an approximation. The wikipedia article has a good summary of this:

http://en.wikipedia.org/wiki/Open_rate


4.6.9 upgrade fails - DB_Error:already exists -5

Have you taken an Backup before upgrading - if so, please check the old DB civicrm_country table and verify that you have "Saint Barthelemy" country do exist or not - If it has then do delete it and run the upgrade again


Conditional statements in 'manual' emails or thank you letters

Yes, what you are describing is the default setting for CiviCRM.

Only Message Templates and Automated Messages make use of the so called smarty template engine. The smarty template engines makes "if"-statements possible.
The reason for this is that these Templates and Automated Messages are for more experienced users and administrators.

Normal mails, mailings and pdf reports can be used by regular CiviCRM users. And it might make their daily work much more difficult if they suddenly run into smarty template coding.

But, this is only the default setting.
In your civicrm.settings.php is an option to override this and expose the smarty template engine to normal email too:

/**
 * Enable this constant, if you want to send your email through the smarty
 * templating engine(allows you to do conditional and more complex logic)
 *
 */
define( 'CIVICRM_MAIL_SMARTY', 0 );

Set this to 1 and you can use "if"-statements in normal email.


Email is not CC'd when a membership on behalf of organisation contribution is made

You can solve this with CiviRules. You can create a rule saying that when a new membership is added send an e-mail to a related persion.

You need both CiviRules and the email api extensions.


UPDATE: Can do this with an extension using hook_civicrm_alterEntityRefParams. It also magically adds a Case Status filter in the "refine search" dropdown that appears when you start typing a name. See https://lab.civicrm.org/dev/core/-/issues/2209#note_51075 and https://github.com/AsylumSeekersCentre/civicrm-moveActivityToAnyCase

While I'd vote to bring the ability to file on a closed case back, or maybe make it a configuration option to allow or not, one workaround is to use the email processor and put the case id in square brackets in the subject (https://issues.civicrm.org/jira/browse/CRM-21446). It will happily file it on a closed case. Information about setting up the email processor is here https://docs.civicrm.org/sysadmin/en/latest/setup/civimail/inbound/#autofiling-email-activities-via-emailprocessor
And if you edit an activity and add the case id in square brackets to the subject and then save, it will file on case, e.g. "this is the subject [case #1234]"
According to the issue you linked, https://issues.civicrm.org/jira/browse/CRM-17645 you should be able to use a hook_civicrm_entityGet in an extension to alter the query, but I'm not sure from those notes that it actually got implemented.


Redirect anonymous users to login when trying to view profile

Have you tried the login_toboggan drupal module? Not sure if it works with Civi profiles but it might. It provides the option to add a login form on all "access denied" screens.


Contacts not appearing on mailing labels

This was due to an import bug. During the import some contacts were set as deceased (value 1). The remaining contacts were then set to null by the import tool. But all the elements like Do Not Email if Deceased require a value of 0 for the deceased field. So they wouldn't show on the mailing labels as the system thought they were deceased. A simple export of all individuals (contact ID and deceased value), remove those who are deceased and re-import with a value of 0 on the deceased field solved the issue. –


How to use CiviCRM REST API in external PHP code

I use CURL to call rest api. Here is the snippet you can ignore/remove many lines that sets curl variable.

$url = 'http://domain.org/sites/all/modules/civicrm/extern/rest.php?entity=Contact&action=getsingle&api_key=HR76BS710C&key=8c1cf9913fd674e08c8f27804334eb5a&json={"id":1}';

$ch = curl_init();
//http://php.net/manual/en/function.curl-setopt.php
//$ch = curl_init($url);
curl_setopt($ch, CURLOPT_URL, $url);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
//curl_setopt($ch, CURLOPT_TIMEOUT, 5);
//curl_setopt($ch, CURLOPT_CONNECTTIMEOUT, 5);
curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, false);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
curl_setopt($ch, CURLOPT_FOLLOWLOCATION, true);
curl_setopt($ch, CURLOPT_ENCODING, "");

//for debugging?
curl_setopt($ch, CURLOPT_VERBOSE, true);

$data = curl_exec($ch);
curl_close($ch);
$obj = json_decode($data);

HTH

Pradeep


CiviVolunteer 2.0 fails to enable volunteer management for events

I know this is a late answer, but I believe the blog post announcing the beta 2 release acknowledged this error. At that stage, the standalone volunteer project functionality was prioritized over the event integration. The bugs introduced in the volunteer/event integration were addressed before the final 2.0 release, and these features are working together nicely now.


Why is the Actions button missing from Reports on 4.7.x after upgrade

In our case this was because the 4.6.x sites were using

net.ourpowerbase.reports.advancedfundraising

needed to swop to the newer repo of the code ie

net.ourpowerbase.report.advancedfundraising (without the 's') from

https://github.com/jmcclelland/net.ourpowerbase.report.advancedfundraising/archive/master.zip


Here's how I would go about this:

Configure a field on the contact. Select "set via PHP" or whatever the option's exact name is.
Generate an extension using Civix. Remember portability - your extension can generate the field in (1), meaning that if you decided to share the extension or use it on multiple projects that.
Use the hook as Ramesh said to fill the values in the field.

It sounds like a neat extension. If you want to commission CiviFirst for this I'd be more than happy to help!

JohnFF


Is there a way to email a link inviting people to sign up for an event that will be connect to their contact ID?

The contact checksum works equally well for a CiviEvent registration as it does for updating their contact info via a profile.  The tokens page of the wiki has a section at the bottom that shows how to format the URL based on your CMS:

Checksum for Event Registration Pages: To send people to an event registration page use this path where N is the ID of your event:

Drupal: http://www.myorganization.org/civicrm/event/register?reset=1&id=N&{contact.checksum}&cid={contact.contact_id}
Joomla!: http://www.myorganization.org/index.php?option=com_civicrm&task=civicrm/event/register&reset=1&id=N&{contact.checksum}&cid={contact.contact_id}
WordPress: http://www.myorganization.org/?page=CiviCRM&q=civicrm/event/register&reset=1&id=N&{contact.checksum}&cid={contact.contact_id}

Alternate approach: Using checksums  is a little complicated for some folks, especially end users!  To make your life simpler, consider installing the Fancy Tokens extension.  This gives you drop-in tokens for your next several events that include the checksum automatically.


Drupal views integration ContactID inserts commas into number

When you pull the contact ID as a field in the view (even before you replace it), to what is the thousands marker field set?  I believe the default setting is comma (see http://screencast.com/t/8tiEiqVOBG ) - you might check that and change it to "none" if that is the case, to see if that makes a difference.


PayPal Pro Button not working - returns to blank event form

I encountered this bug myself last week and fixed it; I forgot about this post until @herb posted a comment on it.

The fix will be in CiviCRM 5.25+, but the bug is logged as https://lab.civicrm.org/dev/financial/issues/119, and the fix is incredibly simple to apply.


Need help solving unserialize():Error at offset

This line reads the data from the table civicrm_setting and specifically the column value.  You could use a SQL client to run the query:

SELECT id, name, value FROM civicrm_setting;

Typical values would look these:

NULL
i:0; (an integer)
b:1; (a boolean?)
s:20:"CRM/common/fatal.tpl"; (a string)
a:1:{s:3:"key";s:5:"value";} (an array or dictionary)

Skim them and see if one of the values looks to have a different/unexpected format.

(UPDATE) Seamus Lee pointed me to https://www.drupal.org/node/1114304 which uses a clever technique for finding badly serialized data. Take the error message (Error at offset 0 of 8 bytes) and note the length (8 bytes). Search on that:

SELECT id, name, value FROM civicrm_setting WHERE length(value) = 8;


You can use the advanced setting in a profile to email someone each time it it used. See "Notify when profile form is submitted?" in screenshot.


The charts on the civicontribute dashboard do not display

This is usually because of flash player not allowing to load on all sites. I added the site in allowed section for flash. Here is what i did

Navigate to Chrome settings >> Privacy and Security >> Content Settings >> Flash.
Add site url under allow section.

HTH

Pradeep


While it's hard to tell without the entire error message it looks like given that the query appears to be an update to a cache table I'd recommend clearing your caches.

drush cc all or via /civicrm/admin/setting/updateConfigBackend?reset=1


Gary,

the quick answer is no ....the way CiviCRM stores the groups for a contacts is different than the way CiviCRM determines which smart groups a contact is in. There is one group table that references which contact is in which group.  This table does not contain smart group references.

See the CiviCRM group architecture here


UPDATE: I know this doesn't fully answer the question but noting the ability to change the code to an id or remove the subject code is now an extension: https://lab.civicrm.org/extensions/caseidinsubject
I originally had some doubts, but in 7 years have never had a problem, but for one org we removed the hash and just use the actual case id by editing the civimail template, and see code below for the processing side. It also accepts just [1234] without the # symbol. This was more for staff ease of use than for the recipient - this way they can send from their email program and bcc the email processor.
I don't have a scientific study to reference, but anecdotally many non-technical people don't "read" emails the same way people who stare at code all day do. Your experience may be different.
Here's the block from CRM/Activity/BAO/Activity.php that has the modification:
$matches = array();
$subj_to_match = CRM_Utils_Array::value('subject', $params);
if (preg_match('/\[case #([0-9a-h]{7})\]/', $subj_to_match, $matches)) {
  $key        = CRM_Core_DAO::escapeString(CIVICRM_SITE_KEY);
  $hash       = $matches[1];
  $query      = "SELECT id FROM civicrm_case WHERE SUBSTR(SHA1(CONCAT('$key', id)), 1, 7) = '$hash'";
} elseif (preg_match('/\[case #(\d+)\]/', $subj_to_match, $matches)) {
  $hash       = $matches[1];
  // this seems like an odd query but we are checking the id actually exists
  $query      = "SELECT id FROM civicrm_case WHERE id = '$hash'";
} elseif (preg_match('/\[#(\d+)\]/', $subj_to_match, $matches)) {
  // technically this is a subset of the one below, but keeping it allows a subject that had both and prioritize this one
  $hash       = $matches[1];
  // this seems like an odd query but we are checking the id actually exists
  $query      = "SELECT id FROM civicrm_case WHERE id = '$hash'";
} elseif (preg_match('/\[(\d+)\]/', $subj_to_match, $matches)) {
  $hash       = $matches[1];
  // this seems like an odd query but we are checking the id actually exists
  $query      = "SELECT id FROM civicrm_case WHERE id = '$hash'";
}
if (!empty($matches)) {
  $caseParams = array(
    'activity_id' => $activity->id,
    'case_id' => CRM_Core_DAO::singleValueQuery($query),
  );
  if ($caseParams['case_id']) {
    $merge_info = CRM_Mergetrack_BAO_Mergetrack::getLatest(array('type' => 'civicrm_case', 'id' => $caseParams['case_id']));
    if (!empty($merge_info)) {
        $caseParams['case_id'] = $merge_info['new_id'];
    }
    CRM_Case_BAO_Case::processCaseActivity($caseParams);
  }
  else {
    self::logActivityAction($activity, "unknown case hash encountered: $hash");
  }
}

The "mergetrack" part is a separate extension (I'd call it unstable and it has some core hacks). Recently the same org has started sending out emails automatically on case creation, and then often the case has been merged in between the time the email goes out and the reply comes back, and so it was getting filed on the deleted case. You can remove those 4 lines.


the way the api works now, the thing returned is an ArrayObject which you can call functions on, one of those is count()

so just count the results; and then loop over them as you would if it was a normal array

  if (count($results) != 0) {
    foreach ($results as $result) {
      do things
    }

  }


This is a known, documented bug that does not seem to have a solution.  Please see ref: https://issues.civicrm.org/jira/browse/CRM-17161

I am happy to help a civicrm wizard debug this :)

Also noted here:

CiviEvent - Error when registering: Could not find valid value for id

Even registration emails not going through - registration produces error

Why is the event registration "Thank You" page generating an error?


Can you post the screenshot of the webform used to retrieve membership renewals? Not sure what you expect in the description, qty field.

  Or to stop 2 emails being sent when: Email Receipt to Contributor - is selected?

Check whether Automatically email invoice when user purchases online is enabled on contribution settings? - Administer => CiviContribute => CiviContribute Component Settings


CiviMail - How do I change the sender email account?

The drop-down for the 'from' (sender) email address is on the first page of the mailing screen which is called the 'Define Mailing' screen. The drop-down is appropriately named 'From' with an asterisk by it to denote that it's mandatory. It's likely that you need to look at the 'from' email address table (Administer/CiviMail/From Email Addresses) and check what the default is.  This assumes you're using 4.6 or greater.


Where is a list of breaking changes published for each new version?

CiviCRM does not have a "Known Issues" report per se, and I do not believe I have ever seen such a section in the announcement of a new release. What it has is JIRA (issues.civicrm.org), which provides many tools for tracking problems great and small.

This is where you report and track specific bugs; for example, CRM-17968 scheduled emails not processed is reported to be fixed as of 4.7.4. But you are also given many tools for navigating the issues according to severity, resolution progress, and anticipated correction. You can see planned releases, the Change Log of which fixes were applied to which versions, and recent progress.

Broken functionality is not always detected during pre-release testing. I think if the core development team knew critical functionality was broken, they would fix it rather than include it in a report. Helping test the beta versions, either on your system or on demo.civicrm.org, will help prevent the software from going to release with major unresolved problems.

Related: What should I do if an issue is marked as fixed in JIRA but it is still occurring?

Obligatory lecture: the installation and upgrade guide, for one, emphasizes that you should back up your databases before attempting an upgrade. Your organization should have its own change control protocols for releasing new software to make sure that critical functionality does not suffer, and the system should be tested thoroughly before moving it into production. Your inability to roll back to 4.5.6 is not the fault of the developers.


This most often indicates a Javascript error - and in particular, this suggests a collision of Backbone.js with your CMS.  I suspect this question is actually a duplicate of mine here: Backbone isn't loading on Civi 4.6.11/WP 4.4.1

I should perhaps edit that question, since this appears to be a common issue with certain WordPress themes that have a media loader.


Changed behavior in handoff between CiviContribut and PayPal

It's documented and resolved in JIRA

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


CRM API shows only the first char of the result?

Since you are using getvalue, $result will be the contact's custom_13 value, so you don't need a foreach loop.

Try using below snippet

{crmAPI var='result' entity='Contact' action='getvalue' sequential=0 return="custom_13" id=$contactId}
Custom 13: {$result}

Pradeep


Get actual value instead of ID in Address API for Country and State/Province

This is possible in the "trunk" version of CiviCRM, and will be available in CiviCRM 4.7.15, releasing January 4, 2017.  Earlier versions of CiviCRM don't have a StateProvince API.

Using the "Join" feature of the API, you can pull in fields from related tables.  See my screenshot for how I would construct an address pulling in actual state/province names (and/or state abbreviations) as well as country:

    $result = civicrm_api3('Address', 'get', array(
  'sequential' => 1,
  'return' => array("street_address", "supplemental_address_1", "supplemental_address_2", "city", "state_province_id.name", "state_province_id.abbreviation", "country_id.name"),
));

Before 4.7.0, API joins didn't exist - and before 4.7.15 there was no StateProvince API.  So in the past, developers would either implement their own StateProvince API or use a hybrid of API and BAO calls.


How to setup a contact journey and add them in specific mailing group after a delay?

I would

Use webform(Drupal) or Caldera(Wordpress) for signup
Setup webform(Drupal) or Caldera(Wordpress) to create activity of type XXX as completed status with todays date on submission.
Setup Schedule reminder for Activity of type XXX

a. 10 days after activity date

b. 20 days after activity date
Setup 2 smart group

a. Contacts having activity with activity datetime for past 10 days of type XXX

b Contact having activity with type XXX and not in group 4.a

Cheers

Pradeep


What is the best practice for tracking total number of attendees?

You can use this extension to hide private fields (eg the number of attendants)

https://civicrm.org/extensions/allow-have-private-custom-fields-event-arent-displayed-info-page

check out the documentation, you have to give a specific name (starting with "private" to the group containing the fields you want to be hidden


Moving html can be done using javascript. You can embed javascript code to move the pre help field just below the label or text field. Here are the references for it
https://docs.civicrm.org/dev/en/latest/framework/resources/

https://docs.civicrm.org/dev/en/latest/framework/region/


we are trying to set up Sparkpost in CiviCRM, but we are using G-Suite and cant use DNS?

Your question does not say why you can't use DNS?

Google Apps will I think let you configure the abuse@ and postmaster@ addresses as aliases (Google refers to these as "groups"). Google will still process those addresses as well, but I think you can configure them so you can field the Sparkpost setup email.

Here is Sparkpost docs on that: https://www.sparkpost.com/docs/tech-resources/abuse-postmaster-google-apps/


It depends under which user your hosting provider is running the web server (or the PHP process if using FPM). Sometimes the web server runs as your user, sometimes it runs as a generic www-data/httpd user. If you have ssh access and your user can view processes, you can run:

ps aux | grep -E '(www|http|apache|php)'

(many cpanel-type hosting providers might not even let you see the list of processes)

In any case, I think it's safe to default to:

Any files/directories with php files should be 755/644
Other directories, where there might be uploads, cache files, logs, should be 775/664. For example: wp-content/uploads/civicrm/.

Related questions:

Are there recommended directory ownership and permission settings for CiviCRM files?
Unable to write file
CiviCRM does not have permission to write temp files on new server


Setting up API access for WordPress installation

Checking permissions is important if you want the API to respect the access rights you have given to users? If in your setting and requirement it is not important that you can protect the country and state data you could skip the permission check. Are you using the API on the same server or with REST?


Please see How do I debug CiviCRM when I hit a blank page / white screen / fatal error? which has instructions for debugging PHP when you run into a blank screen.


Measure open rates for standard emails from Civi, not from Civimail

Not sure you'd class this as cunning or hacky but we have a trick & some code. Essentially we've changed scheduled reminders to send from CiviMail rather than triggering it's own one-shot emails. Workflow something like this

Set up a regular email in CiviMail complete with tracking
Send to a test group of internal emails
Set up your scheduled reminder, with our code the interface can now select previously sent CiviMail emails instead of building the email in Scheduled reminders
What ever triggers the email triggers it and the corresponding email adddress is added to the email spool for the CiviMail email, next cron Civi notices the spool has one more email compared to sent emails and sends it's to the extra email.

It's not perfect as the activity date is on the original CiviMail send, which is something I want to clean up. Talk to Parvez @ Veda he should be able to supplt you with the code.


Different invoice template depending on payment gateway?

For a client with different payment gateways we sidestepped the issue by having different Contribution pages for each - since one was for a c4 and one for a c3 entity and used

{if $contributionPageId == X}


Stripe processor: payment going through but registration is not! "Could not find valid value for id"

That looks like a bug in the events component (possibly, specific to Joomla). The error is happening in the constructor of an object that is managing the event registration process (https://github.com/civicrm/civicrm-core/blob/master/CRM/Event/StateMachine/Registration.php), presumably after the payment has occurred. It's failing to get the id of the event, which it normally will pick up from the url or as a hidden post value from a form.

The numbering of the error line suggests that your CiviCRM version is not up to date, and I suspect you're using the event "cart" feature which is not as maintained as the standard event form/flow.

Conclusion: probably not stripe related, but a CiviEvent error.

Also, here's a similar post: CiviEvent: Could not find valid value for id (Drupal 7.6.1)


The Wiki has good instructions for each CMS:

Upgrading CiviCRM for Drupal 7
Upgrading CiviCRM for Drupal 6
Upgrading CiviCRM for WordPress
Upgrading CiviCRM for Joomla

If you are using Drupal/drush, you may also be interested in this thread.


https://issues.civicrm.org/jira/browse/CRM-16035 has now been fixed. So your best solution now would be to upgrade to CiviCRM 4.7.11 which will include an improved dashboard that no longer depends on server-to-self http requests.

This upgrade will be released in about 2 weeks. The new dashboard features are sponsored by WMF.

Read more about the issue at https://issues.civicrm.org/jira/browse/CRM-17663


That's your mosaico css being displayed as content instead of interpreted as css, - i.e. it's probably not inside a <style> tag.

The word "test" at the top suggests you might have some kind of test code mangling your output, or else that someone was hacking around with your template.


You need to add this in civicrm.settings.php. Once you have added overided the settings clear CiviCRM cache so that the settings are updated correctly.

HTH

Pradeep


Timestamp mismatch between MySQL and PHP

I have flagged a similar problem with Joomla as an issue a long time ago and submitted some code to solve it:

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

The CiviCRM team reckon it will be fixed in 4.7.7.


Form no longer entering into CiviMember for free memberships

I think the problem in your demo example is that you did it as a Test, which therefore doesn't show. If you go to Find Members, and set 'is test' to YES I then see the membership for a-test f-test if that is your example

also i did it for user = demo and did a 'pay later' option and that fired through fine.

so this may not be an answer to your original question but does answer your 'this is wrong on demo too' i believe.


Ok, sorted it out with some suggestions and examples.

$loader = new \Civi\Angular\AngularLoader();
$loader->setModules(array('trialadmin'));
$loader->setPageName('Administration');
$loader->useApp(['activeRoute' => '/trialadmin/trialdetails']);
$loader->load();

Worked with this, but I also used the trace and debug in the browser to determine there likely was another issue with the form actually loading.  Regardless, I've been able to sort it out.


FIXED!

My issue was with the resource URL.

Update the following file: example.org/wp-content/uploads/civicrm/civicrm.settings.php

Approx. line 82: $civicrm_setting['URL Preferences']['userFrameworkResourceURL'] = 'https://example.org/wp-content/plugins/civicrm/civicrm';

I had put an SSL certificate on via my host (SiteGround), just before this issue started happening, which was messing it up.

All the paths need to have https: in them.

Shoutout to Jon G for his help and patience!