What are the pros and cons of using external xml files for CiviCase configuration?

I decided not to submit this as an official documentation update because here it can be a bit looser with the language and this also allows tweaking it a bit first.

CONS:

If you hate xml you might not want to use xml files.

  ASIDE: If you're wondering why it wasn't done in some other format, note that at the time xml was widely used and json had only been proposed as an RFC spec and support for json wasn't included in stock php. XML was already used in Civi for the schema templates. Using .ini files is awkward with nested/multivalued settings. Using .php files wouldn't have been portable to non-civi systems which was a grander vision at the time (yes, really).

Upgrades that require changes to the definition can't be done by the standard civi upgrade if the webserver doesn't have write access to the files.
None of the "pro" reasons below matter to you and you prefer a GUI.
If you really like making typos and/or not testing changes before putting on a live site you can bork your site more easily.
Forgetting to transfer them when you move or duplicate a site. Although if you store them in the custom templates folder which you manage with git/svn then unless those are the only customizations in there you'd be less likely to forget.

On the PRO side:

There's all the reasons people use external config files for other software, including:

Versioning via git or otherwise, and regular diff'ing tools work.
Mass updates easily done with command line tools, e.g. if you want to add a new activity type to all your case types and you have 10 case types it's 50 clicks plus some scrolling in the UI. That's not terrible, and you don't usually do it that often, but it's easier to do with text files. Or for example if you want to add a case type that's similar to an existing one, then copying the file and making a few changes is easier.
(Partial) Portability between installs. Not just copying a site, but between two otherwise different sites that might want to share some of the same configuration. The original plan was to be able to take your file, plop it into another civi site, and have it automatically work. That was never fully implemented, but it does work with some extra steps. (See a separate discussion about being able to export/import all CiviCRM configuration settings, which would be a more general solution.)
More granular permissions on configuration, e.g. prevent junior admin users from making accidentally bad configuration changes.

Custom settings are (relatively) easy to add and use. For example, in the CaseRoles section you could do like this:

<CaseRoles>
  <RelationshipType>
    <name>something</name>
    <mythings>
      <mything>thing1</mything>
      <mything>thing2</mything>
    </mythings>
    ... etc ...

In some sections it's even automatically picked up by the api, e.g. when you do an api call to CaseType get, the above comes through as:

[caseRoles] => Array
  (
    [0] => Array
      (
        [name] => something
        [mythings] => Array
          (
            [mything] => Array
              (
                [0] => thing1
                [1] => thing2
              )
          )
     )

Even if it's in a section where the api doesn't pick it up, since you're doing custom stuff anyway you can load and parse the xml file. (You can still do custom data using database storage, you just need to store the custom data in a different table and reference it separately.)

Why is there no documentation?

I don't know why the old wiki docs weren't transferred over, but it is still available and mostly still true on the old wiki at e.g. https://wiki.civicrm.org/confluence/display/CRMDOC43/CiviCase+Configuration#CiviCaseConfiguration-Step-by-step.

  The part that is no longer correct is at https://wiki.civicrm.org/confluence/display/CRMDOC43/CiviCase+Configuration#CiviCaseConfiguration-CaseTypes, since case type identifiers are no longer option values and are now in the civicrm_case_type table, and unfortunately that link also demonstrates some of the confusion regarding name vs label in the past. Ignore that part. Pleeeeeeeese ignore that part.

Converting xml files to database storage

If you have an existing site already using xml files, this is as simple as visiting administer - civicase - case types and clicking edit on your case type and then clicking save. The files will get converted and will now be ignored.

You should probably then move the file out of the way to avoid confusion over which definition is in effect.

Preventing converting xml files to database storage

If somebody does the above and didn't mean to, this could be confusing if somebody else later edits the file thinking it still controls the definition. If you want to prevent converting, then in the xml file add <forkable>0</forkable> near the top of the file, e.g.

<CaseType>
  <name>housing_support</name>`
  <forkable>0</forkable>
  ...

Converting database storage to xml files

In your database in the civicrm_case_type table in the definition field there will be some xml.
Copy and paste or otherwise put that data into a file with the same name as the name field in that row, e.g. housing_support.xml. The file should be in your custom templates directory as described at the above wiki documentation link.
Then put NULL into the definition field in the database.
From then on it will use the configuration in the file.
Also see the section above about preventing someone accidentally converting it back to database if you want to prevent that.

Using xml files from scratch

Ironically, the way history has unfolded probably the easiest way to do this now is to use the UI to create the type and then do the same as converting database to files above.


Is there a way to reorder the fields in an export mapping?

Laryn -

I don't think there's a way in the UI to update the order... I would suggest creating a small mapping and reordering it in the database (I agree that the column_number is the likely candidate - interesting that it's not weight as in so many other Civi features) to confirm that will work.

Lesley


ah-ha!

In your test class edit the setUpHeadless() method which might look at first like this:

  public function setUpHeadless() {
    // Civi\Test has many helpers, like install(), uninstall(), sql(), and sqlFile().
    // See: https://github.com/civicrm/org.civicrm.testapalooza/blob/master/civi-test.md
    return \Civi\Test::headless()
      ->installMe(__DIR__)
      ->apply();

But pass TRUE to apply(), ie

  public function setUpHeadless() {
    // Civi\Test has many helpers, like install(), uninstall(), sql(), and sqlFile().
    // See: https://github.com/civicrm/org.civicrm.testapalooza/blob/master/civi-test.md
    return \Civi\Test::headless()
      ->installMe(__DIR__)
      ->apply(TRUE);

Ta-daa! And now your tests will run super slow as the schema will be reinstalled every time. But helps you out of  a spot, and you can of course remove that param.


Error when assigning Activity to a contact

Ah, you have the answer in your question. If you look at your reference to the current code, it should be recognizing that MysqlColumnNameOrAlias instead of generating the error in the default clause of the switch.

So I checked the history of that file, and the MysqlColumnNameOrAlias case was only added mid-last year.

Conclusion - upgrade your Civi to the latest 4.6 (which you should do anyway because of security reasons).


How do I get a backup of CiviCRM working on a different server?

There are multiple "gotchas" when relocating a working CiviCRM install. (CiviCRM's wiki page on Moving an Existing Installation to a New Server or Location is seven pages printed out!) Here's what we watch out for when moving sites.

Filesystem paths

CiviCRM stores filesystem paths in various locations in the DB, which can cause a restored DB to not function when loaded in another location.

The simplest way to work around this is to use the facility to Override CiviCRM settings in civicrm.settings.php to ensure that all the settings in $civicrm_setting['Directory Preferences'] are "locked" to values which work in the new environment.

global $civicrm_setting;
$civicrm_setting['Directory Preferences']['uploadDir'] = '/path/to/site/sites/default/files/civicrm/upload';
$civicrm_setting['Directory Preferences']['imageUploadDir'] = '/path/to/site/sites/default/files/civicrm/images';
$civicrm_setting['Directory Preferences']['customFileUploadDir'] = '/path/to/site/sites/default/files/civicrm/custom';
$civicrm_setting['Directory Preferences']['extensionsDir'] = '/path/to/site/sites/default/civicrm/extensions';
$civicrm_setting['Directory Preferences']['customTemplateDir'] = '/path/to/site/sites/default/civicrm/custom_tpl';

This prevents the settings being changed via the web interface at civicrm/admin/setting/path while the settings are overridden in the settings file.

Sometimes Drupal has a variable civicrm_class_loader set with a fixed path - it may help to remove this variable.

drush vdel civicrm_class_loader

I think that I've seen mention of the hardcoded paths issues being addressed in 4.7 cycle, which would be great news IMO.

Definer in DB dumps

This is the most common cause of trouble reloading CiviCRM DB dumps.

The cause is that MySQL's default dump behaviour is to include trigger creator information in the dump - which will upset MySQL if you load the dump on a server where the original MySQL user doesn't exist. This looks like this in a MySQL dump:

/*!50017 DEFINER=`civicrmuser`@`localhost` */

The solution is really simple: use the --skip-triggers option when making your MySQL export. MySQL will omit the user-specific information, and CiviCRM will sort the triggers out the next time it rebuilds its caches.

If you've already got a large DB dump and don't want to make/transfer a new one just to remove that information, you can also do it using sed:

sed -E 's/DEFINER=`[^`]+`@`[^`]+`/DEFINER=CURRENT_USER/g' dump.sql > new dump.sql

I'm not sure if there are plans to address this?

Permissions

CiviCRM runs (in UNIX space) as the webserver/php user, and you probably restored the codebase / site files as your system user. In order to permit CiviCRM to function, you likely need to either change the ownership of the CiviCRM-writeable files to the webserver user (eg chown -R www-data: /path/to/sites/default/files/civicrm) OR find some other way to ensure that permissions are managed to ensure your user and the webserver user will not conflict.

There's an existing question on this topic: CiviCRM does not have permission to write temp files which covers the merits of various approaches to dealing with CiviCRM's special requirements when it comes to filesystem perms.

The main cause of this issue is the use of a disk cache for templates_c. Moving cached HTML to DB (as per Drupal's cache_* tables) or to a permissionless store (Redis, memcache etc) would remove this friction, but I'm not sure if / where that is on the roadmap.

Other considerations

You may also -

need to remove the file ConfigIDS.ini from your new site. CiviCRM will regenerate this file.
need to trigger CiviCRM to revisit its idea of which extensions are installed ("Refresh" @ civicrm/admin/extensions)
need to visit civicrm/admin/setting/updateConfigBackend to reset CiviCRM's caches and stored paths


How to Create a Smart Group before Anyone Belongs to it?

To create smart group from UI you need to have at least one result but from code its possible to do so.

From UI i would create a test contact so that it matches the smart group criteria. Then Find contacts >> create smart group, Delete the test contact permanently.

Cheers

Pradeep


CiviCRM 5.17.5 and WordPress 5.2.3 just won't work

Just seeing activity here, I realized I moved this query to chat.civicrm.org, Wordpress channel and haystack provided a general fix to civicrm core which has been in place since late fall 2019. I forgot to close things out back here on StackExchange. The ultimate problem was not that one plugin, iframe, but our theme, Benevolent Pro, was evidently calling register_hooks_front_end() before it actually should be. It was decided that could happen with other themes as well, so haystack suggested a fix to handle that case. I haven't had any problems since then. We are running Civi 5.21.3 (ESR) and Wordpress 5.4.2 currently. You can see the whole thread at:
https://chat.civicrm.org/civicrm/pl/9we4awu1c38b98eihypwdrbumh


How to list search results in edit mode like a spreadsheet for easy data entry on WordPress platform?

Can only think of finding the contacts and doing batch update via profile, this will allow you to update the contact like spreadsheet. But its only limited to few contacts at a time


How to have the Civi Contact deleted when the Drupal User is cancelled?

You could implement this with the Rules module if you have the CiviCRM Entity module installed.


how to add custom validation rules to civievent registration form

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

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


Reassigning Case Role Gives DB Constraint on Membership

Based on chat discussion there was a missing database field for unknown reasons. Running this helped:

ALTER TABLE civicrm_membership ADD COLUMN status_override_end_date date DEFAULT NULL COMMENT 'Then end date of membership status override if ''Override until selected date'' override type is selected.';


Mailings Scheduler fails after upgrade to 4.7.1

This is a known bug in CiviCRM 4.7.1.

EDIT: Based on new information on this bug report, this problem does NOT exist when using wget.  Also, someone in the community has stepped up to pay for this bug to be fixed, so expect a solution soon!


How to add Campaign token in system contribution receipt

If you can get campaign id ({$formValues.campaign_id}) then you can use api to retrieve the Campaign Title. Use below snippet to get the Title

{if $formValues.campaign_id}

  {crmAPI var='campaignTitle' entity='Campaign' action='getvalue' sequential=0 return="title" id="`$formValues.campaign_id`"}
  {$campaignTitle}
{/if}

  Note: The snippet code is not tested but you can use the logic to get
  the title

HTH

Pradeep


is it possible to show a logged-in frontend user all the events they are registered for?

You are probably looking for the Contact Dashboard feature. I have only experience with Wordpress, where the logged in user can see his memberships, events, payments, invoices etc.

There seems to be a similar feature available for Joomla as well according to this question on StackExchange. Unfortunately the question has been unanswered.


You can use the Activity Create API with an id in the parameter list. That should function as an update.


How can I prevent users editing custom fields for contacts not in their ACL group?

Can you try applying the PR changes to your current version of civi? you will need to apply it manually as the pr is closed and is very old. If you will apply it manually than it may give you conflicts errors.


Ah, that moment when you bump into a question you figured out but I forgot I even posted it here.

There may be other methods but you should use the native CiviCRM profile link which you can find at Administer > Profiles > more > Use- Listings Mode. This looks like: https://example.org/civicrm/?page=CiviCRM..." format or whatever you set your base page at.

The issue seems to be if you try and use a shortcode for this directory style listing and not use the CiviCRM base page. So, you can create a clean URL to redirect to the native CiviCRM profile link. Perhaps this is considered a workaround but it works :)


How can I configure the automated messages such that when someone sings up to list A they get message A, and for list B, they get message B?

Perhaps turn off the automated sub and then use CiviRules to fire out an email based on which Group you added them to.


Can a Drupal webform be used to create a waitlist registration?

I do think that this is possible it also depends on the event configuration in CiviCRM.

If it is not possible you could create a webform in which each participant gets the status on waitlist instead of registered. That way you could create a waitlist.

To enable Participant Status - on waitlist in your webform -> you need to visit: /civicrm/admin/participant_status?reset=1 and enable both On waitlist as well as Pending from waitlist


Why Are My Event Reminders Not Being Sent?

Is your Scheduled Jobs for Send Scheduled Reminders enabled at civicrm/admin/job?reset=1 ? If so, does the View Log Job have any info? /civicrm/admin/joblog?jid=8&reset=1.

If not, and if you want to confirm if your cron is running, then enable a Scheduled Job and then check back later, when it should have run, and see what the Scheduled Job shows as the last time it ran. If it hasn't run then you probably need to check your cron set up http://wiki.civicrm.org/confluence/display/CRMDOC/Managing+Scheduled+Jobs


What's the right crontab entry for running cv?

You can use the --cwd option for cv to set a current working directory:

*/5 * * * * /usr/local/bin/cv --cwd=/var/www/html/ api job.execute --user=harrumph


It's an excellent choice for you. I've run Civi on both WordPress and Joomla and it does everything you are asking and more. Right now, I have at least a half dozen sites under my care on both Joomla and Wordpress. Depending on the size of your organization, Joomla may be the perfect, especially if the client is already accustomed to using Joomla. The ACL will probably be a little more familiar than in a WordPress environment.


Lots of digging here:
The culprit is Bluehost shared hosting AND VERP (variable envelope return processing), which is an interesting hack and very useful for massive systems.  (I am a colleague of Ray Tomlinson and something of a dinosaur when it comes to email protocols ...)

Bluehost is my shared hosting provider (no VERP) and VERP is - well, a hack.  VERP SHOULD be handled with extra header settings but is done as a sender NAME which violates all kinds of identity-based authentication protections - but then I'm a security expert and so I do have opinions.

Technical answer:
Bluehost (and most others) do not support VERP unless you pay for a VPS or better plan.

CiviCRM - being intended for big players - requires VERP to handle bounces and other issues when dealing with large mailing lists.   (Kudos to CiviCRM)

My 501(c)3 is neither a big player (fewer than 20 recipients) nor willing to pay for a VPS (because we're small ...) and not willing to pay for a for-profit CRM (because we're small).

The answer for people in a similar situation to me is to edit out a portion of smtp.php (in the civicrm folder) and comment out:

/*if (!empty($headers['Return-Path'])) {
        $from = $headers['Return-Path'];
    }*/

smtp.php = (cd civicrm folder; exec find . -name smtp.php -a -print;)

The CiviCRM people (bless them for their efforts !) will rightfully claim that my, and other's, 'solution' is a hack (VERP is a hack too, but useful ...) that should be deprecated with excessive force, but they should also allow the ability for us small folks who have *NO OTHER FREE AND OPEN SOURCE SOLUTIONS* an option as part of the configuration.

Love an kisses ...


Getting ERROR: You need to send a valid key to execute this file when running Cron

Without quotes around the URL, your shell may interpret the '&' character as a request to run a command in the background:

$ wget -O - -q -t 1 none.such/wp-content/plugins/civicrm/civicrm/bin/cron.php?name=XXX&pass=XXX&key=XXXXX
[1] 9887
[2] 9888
$ jobs
[1]-  Exit 4                  wget -O - -q -t 1 none.such/wp-content/plugins/civicrm/civicrm/bin/cron.php?name=XXX
[2]+  Done                    pass=XXX
$

Here it uses the URL up to but not including the first '&', thus missing the pass and key parameters. Enclosing the URL in quotes should resolve this:

$ wget -O - -q -t 1 'none.such/wp-content/plugins/civicrm/civicrm/bin/cron.php?name=XXX&pass=XXX&key=XXXXX'
$

You say this didn't work for you, could you provide details of what command you tried and what the result was?


There is a setting at Administer/Customize Data and Screens/Display Preferences, a tick box with the description Notify Activity Assignees. Ticking that will send a mail to the assignee.


View and subscribe to Public Smart Mailing groups using {action.subscribeUrl}?

Your email could link back with checksum to a Profile that has 'Groups' field on it which should therefore show only the Public Mailing Lists (iirc)


hash_equals(): Expected user_string to be a string, null given in Contact/BAO/Contact/Utils.php on line 232

I am also receiving this error but on Wordpress 5.2.1 and civiCRM 5.13.4. I have not found a solution to this either.


I would guess from the error "A0001 BAD Too many arguments provided" and this unrelated github issue that you may have a space in your password (or some other character that needs better handling).

That CiviCRM also triggers "A0001 BAD Too many arguments provided" error suggests CiviCRM doesn't handle spaces in passwords correctly for IMAP/POP3.

Here's some advice on debugging the inbound mail process in CiviCRM, which might be useful!


Multiple Choice Custom Field Not saved on creation of new contribution

Could you try to reproduce this bug on the 4.4 Demo Site by creating a similar custom field/contribution setup? If it's a bug there then you could report it to the LTS team (although noncritical bug fixes for older versions don't get high priority).

You could also try to reproduce it on the 4.6 Demp Site which would be a good idea for 2 reasons:

If it is still a bug in 4.6 it will get more attention.
If it is not still a bug in 4.6 you could solve your problem by upgrading :)


Do I understand the intention here, ie John has relationship to Mary, Bob, Harry, then on an Event registration page automatically fill the form with Mary and/or Bob and/or Harry (as well as John or not?).

There won't be any way to do this out of the box in civicrm afaik. Since you are on Drupal you are more likely to be able to get close.

John can go to a form and use an autocomplete/dropdown to find contacts he has 'permission' to see, which you can provide by making your Relationship between John and the others Permissioned (see this Extension if you want to make those types of relationships always permissions)

You can then set up the webform to allow John to add multiple of his sales team, or probably have them all load automatically

And yes the Webform-civicrm can be used to add these contacts to an Event, and accept payment depending on the type of payment processor you use.

Webform_civicrm is very well documented so i would suggest you read, try and come back with more detailed questions


Is there a best practice or recipe for migrating a two database CiviCRM installation into one database?

I managed to resolve this dilemma.

The goal was to move a 2 database Drupal/CiviCRM website into the CiviCRM Starterkit platform which requires that Drupal and CiviCRM use a single database. I was not able to import my database dump into the existing Drupal website because although I had set foreign_key check to zero, I was receiving a "Cannot add foreign key constraint" error.

My solution was as follows:

Download a dump of the CiviCRM database with ignore foreign keys, drop tables, triggers etc.
The dump does not include tables for: civicrm_acl_cache, civicrm_acl_contact_cache, civicrm_cache, civicrm_domain, civicrm_group_contact_cache
Remove the drop tables statements before importing. Leave in: IF NOT EXISTS create table.
It was important to Truncate tables before each table's data insert statement.
When I ran the import shell command the import would stop because the Log Tables didn't exit. They are in the Dump but they were not being created so I ran all of the IF NOT EXISTS create table commands before running the import command.

Once I had accomplished the above 5 items, I was able to run the import and populate the tables. All is well.

I hope this helps anyone else who runs into this challenge.


Can't log in to Drupal site: get redirected to random pages after submitting login form

I discovered that this was caused by faulty PHP in the template.php file of my Drupal theme. Probably spent more than 40 hours trying to troubleshoot this, when in the end it was some custom code in my theme!


Candidate theme comes with 'Indeed Social Share & Locker Pro' plugin which seems to be conflicting with CiviCRM


View out of office responses from contacts

All the bounces, including the out-of-office responses, are saved. They're not accessible through civi, but for bounce processing you did have to configure an e-mail inbox somewhere.

So just login in there and see what's available. E-mails in the main inbox folder are the unclassified ones (should be few — end up as Syntax error in the civimail report), while everything else will be in subfolders. There is no further division, so you can't just see out-of-office bounces, but not let's say, "quota full" or "invalid account". Wading through the mails can get annoying fast, even when searching with the server return codes.

However, I don't think you really need to do it. Looking at the bounce inbox is good now and then to see if any extra classification rules are needed (to reduce the unclassified mail amount) or if you're looking for the full email response for a particular contact (the database only stores a truncated version that may lack the server response), for example why it thought your e-mail was spam.

But all this bouncing around is tracked by civi. Contacts aren't disabled after one failed delivery; most of the rules require 3 such failures and then the "no bulk mail" setting gets enabled. The out-of-office one falls under the laxest of conditions, so last time I checked, it had to fail 15 times before a contact would be determined pointless to continue delivering to.

If your question instead is about people switching jobs, then yes, you'd have to look at the emails. Depending on where you are, you can't just subscribe random new people though (GDPR).


I don't think it helps with passing the filters in the URL, but you can save the search as a Smart Group and then use the link to the contact list for that group. I think you can strip of the qfkey portion of the URL in this case. Something like this (although this smart group on the demo site will be deleted shortly, the URL structure is what I want to show):

http://d46.demo.civicrm.org/civicrm/contact/search/advanced?force=1&reset=1&ssID=1&context=advanced


Mail not working url for third party app

Indeed, seems to be an issue with the reminder trying to read the "for surveypal"...

So you need to "escape" the { } that you want to keep for the end result so they aren't processed by civi and wrongly identified as token.

I think we are using smarty to process the token for the reminders, you can try putting {ldelim} instead of "{" and {rdelim} instead of "}".

Could you try if it works using scheduled reminder?

Unfortunately, civicrm has different ways of parsing the token using different tools (smarty is one way), so you might have one working for "normal" mails and that won't work on another part (reminders), and the workaround is potentially specific for each of these, so it makes the testing a bit more complicated than "just" sending an email.

X+

P.S. It's probably not as user friendly as surveypal, but you can quickly get something working with webform and webform_civicrm to make simple surveys directly integrated in your site, including being able to store the response as an activity of the contact.


By mistake manually entered a recurring donation under the wrong account

Did any monies get processed when you added the recurring Donation? If it did (or did not) will depend on your Payment processor and what pathway you used in CiviCRM to add the Contribution.

If Monies were transacted -> then you'll not just want to Delete the Contribution and re-enter or you'll charge the Credit Card (or Bank Account) again. If you can add some more details to your original question then we can help you find a solution that will work for you.


eWay Recurring - Which extension is the best?

I think the agileware version is now updated to use for eWAY Rapid API with the Responsive Shared Page method. This method does not ask for any CC details on civicrm and navigates user to eway site for the payment.

We did hit some problems using it on drupal webform, but I think it is already handled https://github.com/agileware/au.com.agileware.ewayrecurring/issues/4


This will not be happening for 4.7, 4.8, 4.9, 5.x...

(NB I realise I may not be adding much to above comments but am trying to get some unanswered questions answered as that is currently the 'weakest' aspect of our Beta civicrm stackexchange according to these [stats][1])


Property of non-object notice after submitting CiviCRM Webform with Contributions

A couple of quick thoughts:

upgrade to Webform CiviCRM 5.x (we’re no longer supporting 4.x)

Edit: we have now officially disabled support for D7 - 4.x - you will now have a ‘unsupported version’ warning in your Drupal status report.

what is your PHP version?

always switch off notices on production sites: goto admin/config/developement/logging and set to -> None

open an issue on our drupal.org webform_civicrm project page and give us exact steps to reproduce


Can not add soft credit to an organization

I just came across this as well. I'm running Wordpress 4.4.4 and Civi 4.6.4. I can add soft credits to individuals all I want but I cannot mix individuals and organizations soft credits in the same donation. Or so I thought, after messing around for a bit I found that if I removed the campaign that was set and the contribution page that was set (and saved the record). Then went back in I could add the organization soft credit.

I could then go back into the donation and add back in the campaign or the online fundraising page. This part was wonky and most successful when I added the campaign first, saved then went back and added the online page.

I was also successful mixing soft credits on a fresh donation when I only had the campaign set and no online fundraising page.

My take away, online fundraising pages in the set in the donation have something to do with it.


Advice on structuring tuition payment plans. Membership? Contribution?

Have a read of this one flexible membership billing where Ramesh suggests using different membership types to accommodate the various payment options.


After update, emails have to be written out in full html!

Using WordPress I had a problem where CiviCRM was installed on a subdomain and I to do a workround. See WYSIWYG editor not present with WordPress. This has to be redone when you upgrade. So possibly this is a solution?


CiviRules - to trigger a Mosaico templated email (with CiviMosaico extension)?

My understanding is that it's not possible, because Mosaico doesn't currently support transactional emails, only bulk emails.  I believe Veda is looking for funding from folks willing to sponsor adding Mosaico for transactional emails.


CiviCRM 5.28.2 triggering "critical issue" in WordPress 5.5 Site Health

SiteHealth does not account for sessions and CiviCRM depnds on them. See the discussion at https://lab.civicrm.org/dev/wordpress/-/issues/32
Possible fix:
https://civicrm.stackexchange.com/a/35234/155


My ACL Role is now showing selected contact groups

Without jumping in and working through the whole scenario, have you considered adding all their Participants to a Smart Group and giving your users an ACL that accesses just that Group of contacts


How can I have a paid membership sign up that includes an option for a paid premium version?

This could be done by creating a price set with the premium option, and then using the civicrm_post hook to make the change once the transaction was successfully completed in the DB.


How do I update the text seen on a membership payment page when the autorenwal option is provided?

You could use the word replacement function to do so. It is described in the CiviCRM documentation here.

Sometimes a text is composed of more than one string which means that you would have to do more that one word replacement.


unserialize(): Error at offset 11218 of 25832 bytes in CRM_Core_BAO_Cache::getItem()

I just got this happening also, on a 4.6 install. It's due to an issue with your civicrm_settings table. That piece of code you reference is pulling out settings type values from that table and caching them. The code assumes that the values in there are objects or arrays and have to get serialized and unserialized as they get stuffed in and pulled out of text fields. The error is due to the code's inability to unserialize the value, which can happen if it gets serialized badly, or was never serialized in the first place.

In your case, it looks like it's really big and exceeds the space available (since it's pulling out 24K bytes from that poor little field). In my case, there was some non-serialized data in there, possibly from a previous code version.

All I did to fix it was to look through my civicrm_settings table and saw a lot of entries for the name 'navigation' with a non-serialized string, and removed them (they were in the Personal Preferences group and were all the same, so it seemed innocuous).

For your case, you could find all the entries with a value length bigger than 20K and it'll probably be evident.

I suspect you might be misusing one of your fields/features.


When contacts are merged, activities are created - you can use Search > Find Activities to search for "Contact Merged" and "Contact Deleted by Merge" activities - the "Added by" column will display the user who performed the merge.

Hope this helps,
Tamar


I think you're referring to the fact that viewing an activity now happens in a pop-up window, and that window is missing a print button.

I think this is probably an oversight and would be nice to fix. In the meantime here is a workaround:

On the list of activities, instead of clicking on the "View" button, right-click it and select "Open in a new tab."
This will display the activity in full-screen mode so the print button will be available.


Quicksearch "name/email not found. Did you mean to search by name/email instead ?"

Have also experienced this after upgrading to 5.8.0. Bug has been reported and hopefully should have a fix very soon –

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


I want to find a specfic group and get their email addresses

Welcome to SE! Unless I have misunderstood this is straight forward, this is very simple. If you got to Find Contact you can select the the contacts in the particular group (third box down) and that listing will include email addresses.


In the HTML rich text editor, there is a button called "Source". You can use this to send custom HTML:

In a text editor (e.g. Notepad), open the desired file. Copy all the markup.
In the CiviMail UI, click "Source". Paste the markup.


Warning after installation: Invalid argument supplied for foreach() in CRM_Utils_Check_Component_Env

The code in question is checking whether CiviCRM has updates available that you haven't installed yet.  If you've reached line 522, that means that CiviCRM has that info - possibly from checking https://latest.civicrm.org/ but more likely because it saved the results in version-msgs-cache.json.  However, the error is suggesting the info isn't present.

This could be a weird file permission issue, or perhaps a malformed version-msgs-cache.json.  If you know you're running the latest version of CiviCRM, I'd ignore this and see if it clears up when the cache expires (72 hours).  If you're not running the latest version, please edit your question with a) the CiviCRM version you're running, b) the contents of version-msgs-cache.json, which should be in your CiviCRM uploads folder.


Should I use CiviCRM 4.x or 5.x is this like D7 and D8?

Support for CiviCRM 4.6 is nearly at an end. It is slated to end at the end of this year.

5.x is the supported stable release. 4.6 is pretty much a security only branch now.


Is it okay to use both Absolute Date and Repeats in Scheduled Reminders

It seems reasonable to allow that, although since the repetition "Until" is always relative, I can see why coding might have assumed the start would be relative.

If you plan to enhance that chunk of code, it might make sense to also allow an absolute end date or number of repetitions as alternatives to the relative "until".


How do I add new tab to the Contact Summary Page?

hook_civicrm_tabs is now deprecated and you should use https://docs.civicrm.org/dev/en/latest/hooks/hook_civicrm_tabset.
Also note:
// $url should return in 4.4 and prior an HTML snippet e.g. '<div><p>....';
// in 4.5 and higher this needs to be encoded in json. E.g. json_encode(array('content' => <html form snippet as previously provided>));
// or CRM_Core_Page_AJAX::returnJsonResponse($content) where $content is the html code
// in the first cases you need to echo the return and then exit, if you use CRM_Core_Page method you do not need to worry about this.

Some example code:
function koba_civicrm_tabset($tabsetName, &$tabs, $context) {
  //check if the tab set is Event manage
  if ($tabsetName == 'civicrm/event/manage') {
    // Remove "Mond aan mond reclame" tab
    unset($tabs['friend']);
    // Remove "Location" tab: we use a contact subtype for location because it has better integration
    unset($tabs['location']);
    // Remove "Personal campaign pages": we don't use this
    unset($tabs['pcp']);

    // Add a Beheer Bijscholingen tab, a tab that shows a Drupal view
    if (!empty($context)) {
      $eventID = $context['event_id'];
      $url = CRM_Utils_System::url('admin/sitename/bijscholingen/json');
      $result = views_get_view_result('beheer_sitename_bijscholingen', 'page', $eventID);
      $count = count($result);
      $tabs['beheer'] = array(
          'weight' => 300,
          'count' => $count,
          'title' => ts('Beheer'),
          'link' => $url,
          'valid' => 1,
          'active' => 1,
          'current' => false,
      );
    }
  }
}


Different subsets of a selection custom field

To do this via webform_civicrm

Download and enable webform_civicrm and read the documentation.

Google for some answers on SE or our blog at fuzion.co.nz/blog for some explanations about doing Events via webform_civicrm eg

https://www.fuzion.co.nz/blogs/registering-multiple-people-multiple-events

https://civicrm.stackexchange.com/questions/tagged/webform-civicrm

How can I create early bird fees with Webform CiviCRM?

Calculated member fees


Blank CiviCRM Dashboard and Admin Pages On Drupal 7

did you check if all permissions are OK and there is a civicrm_settings.php on /sites/default? Is there any message in the Drupal log (reports/recent log messages)?


For big imports, I wouldn't use the UI and write either a custom script (using the API), using existing drupal modules (civimigrate or use an ETL (amnesty spain has shared a plugin for pentaho for instance)

It would likely be faster than trying to untangle where you are now.

If you can't start, I wouldn't try to merge the contacts, that is a complex operation, but simply write a script to identify the duplicates and manually update the individual to replace the "empty" organisation by the real record, and delete the empty record.

You can use the api from a php script that you'd run from the shell, it will be much faster to run than a "real" dedupe

X+


What is the join logic when using API chaining with action = get?

Chaining will attempt to "guess" at the id of the chained entity. In your first example, the fetched participant record has an "event_id" and the api chaining controller passes that into the chained Event api call as the id.

The guessing is pretty basic though. For everything else, you should specify params explicitly. You do so by using the magic "$value" notation. E.g.

CRM.api3('participant', 'get', {
  id: 12345,
  "api.ParticipantStatusType.get": {id: '$value.status_id'}
});

Note that you can also use joins for this type of thing, which is generally more efficient than chaining. Check out joins in the Api explorer.


You can create a folder somewhere outside the main tree, so that when you upgrade core you don't overwrite your extensions, and then in civi under Admin - System Settings - Directories, you put the file path to that folder where it says "Extensions Directory".
If you already have some other extensions installed, they might have gone under sites/default/files/civicrm/ext, in which case you want to move those to your new folder too. You could put everything in sites/default/files/civicrm/ext, but it's easier to manage outside the tree. See also https://docs.civicrm.org/sysadmin/en/latest/customize/extensions/#enabling-extensions


how do I find error log to see what is causing the error

The links in the comments are helpful, but don't actually give the correct answer for the log in question.

There's two ways to see the logs for your error:

Check the ConfigAndLog directory.  You can find it here: Where are the "ConfigAndLog" and "templates_c" directories?
You can also see the error on-screen:  Go to Administer menu » System Settings » Debugging and Error Handling, and select both "Enable Debugging" and "Display Backtrace".  Then repeat whatever issue led to the error!  Make sure to turn this off when you're done - leaving it turned on can leak information to a potential hacker, which is why they're not on by default.


Is CiviCRM compatible with Postgres and Wordpress?

No.

CiviCRM uses MySQL functions extensively, so it can't be run with PostgreSQL.

This has been raised before over on forum.civicrm.org (at least in 2010 and 2007). Tim Otten's answer in this forum post may also help understand some of the workings currently in the DB layer (and specific to MySQL).

It could (in theory) be done, but it would take significant effort and leadership from the community who wanted to make it happen.


CiviCRM DOES store that information, but doesn't expose it to the user interface.  So you have two choices:

Check with SQL.  This will give a list of all events with creators:

select ce.id, ce.title, cc.display_name from civicrm_event ce JOIN civicrm_contact cc on ce.created_id = cc.id;

Add WHERE ce.id = x before the semicolon at the end to just show a single event (where x is the event's ID).

I wrote an extension that allows you to view (and change) the name from the user interface called Edit Event Manager.


I assume you mean the job that is used to send Scheduled Mailings . You do not have to create it. It is part of the standard configuration. So the only thing to do is to enable it. But to be complete here is the configuration:


Importing Event Participants with Contribution/ Payment

The way to do this is to import the Contributions and Participant records separately via the CiviCRM import tools. You may need to also import any new contacts you have first. Using the import tools takes care of all the extra complicated tables.

Then to connect the Contributions to the Participants:
You will need to export a csv of all the imported Contributions and a csv of all the imported Participant records. Match up those two lists based on the Contact ID. Then you will manipulate that data to be importable into the civicrm_participant_payment table. Which is just Participant id and Contribution id.

Then you will have all data where it needs to be and properly connected


My preferred solution is to use this extension (which should be 4.4 compatible) rather than manually digging around the database. Hope that helps!

https://github.com/PalanteJon/coop.palantetech.nosmsurltracking


Sort Criteria for civiCRM custom in Drupal View

I did read all the way down!

Try Adding a Global PHP field under Sort Criteria-> you can then use PHP to say -> Gold=1, Silver=2 and Bronze=3; And indicate you want to sort Ascending.

If you need a hand with the PHP - let me know.


Automatically sync new Wordpress registrant to CiviCRM Contact

CiviCRM does this by default. Every time a new user signs up for a Wordpress account on your site it will create a CiviCRM contact record automatically.


is there an easy local install method for civics and all dependent software

Two options:

a. Use the bitnami package: https://bitnami.com/stack/civicrm

b. Use a CiviCRM hosting provider: https://civicrm.org/providers/hosting


Thinking of Creating MobileAPP for CiviCRM

Per Demerit's comment - there has been a new App developed as described in this blog


Different Result in Code Than API Explorer

At the point hook_post is called the timeline (activities) hasn't been created and the association with the client (CaseContact object) hasn't either.

See https://github.com/civicrm/civicrm-core/blob/master/CRM/Case/Form/Case.php and https://github.com/civicrm/civicrm-core/blob/master/CRM/Case/Form/Activity/OpenCase.php


One option would be to make a special contact sub-type for this purpose.

CiviCRM allows you to use a custom icon per sub-type (just pick one from the internet) which would make the contact appear special in search results, the summary screen, etc.


Is there a way to make some events a sub-category for another event?

Take a look at this extension: https://civicrm.org/extensions/event-additional-signup

This will register users for additional events automatically when they select specific price set options.


Is there a way to add a Null option to webform radio buttons?

No Required Radios example:

Alternatively in CiviCRM -> Custom Fields -> If you wanted to specifically record the 'none' option simply add it as an Option (Add Option) and it will automatically appear on your webform as an option as well!


Is there anyway to search on a non-primary email address?

In Search Builder (Top menu > Search > Search Builder), you can specify which type of email address you would like to search for (on the demo: Home, Work, Main, etc.). By linking the searches with "Also include contacts where", you can specify each type to include (see image).  It doesn't cover the specific search "emails that are not marked primary," but it will search emails that are not primary along with the primary ones as well.


Mail editor defaulting to Ckeditor and text wrap issue

I strongly suspect that what you're seeing is a side effect of CiviCRM dropping support for TinyMCE in core.  If upgrading to 4.7 is an option, I suspect that you can solve this problem by installing the TinyMCE extension.

Of course, if CiviMail is important to you, then upgrading to 4.7 shouldn't happen until these two bugs are closed in a released version of CiviCRM:

https://issues.civicrm.org/jira/browse/CRM-17968
https://issues.civicrm.org/jira/browse/CRM-17953


Getting an error 500 (PHP memory allocation) when adding event participant

It might be that the pdf receipt format is too complex, try to disable sending them, see if it makes a difference

It's under admin > setting > misc

"Attach PDF copy to receipts"

If you need to send the pdf, I recommend you to let civi use a dedicated software to generate the pdf instead of the default (doing it in php, that uses tons of memory), it's a setting in the same page:
"Path to wkhtmltopdf executable"

you'll need to install this software on your server.


Templates_c permissions differ when rebuilt on command line or by apache

civibuild shows a few ways to tackle this problem.

File Permission ACL's work well if they are available on your system.

Edit: You will need to set the ACLs to cover future files created in the directory as well as existing ones. For this, use the -d flag as shown here https://serverfault.com/a/445096.

Further edit: Set the ACLs on the civicrm directory above the templates_c directory. Sometimes the whole templates_c directory gets deleted and rebuilt.


"participant listing options" how to add another option with more fields

This is how i would do

Create Extension
Add install code via Managed hook to install new option value for option group 'participant_listing'

snippet:

{
  "option_group_id": "participant_listing",
  "label": "Your Name",
  "value": "4",
  "name": "Your Name",
  "description": "CRM_Event_Page_ParticipantListing_YOURNAME",
  "is_active": "1"
}

Copy CRM/Event/Page/ParticipantListing/NameStatusAndDate.php and CRM/Event/Page/ParticipantListing/NameStatusAndDate.tpl into your extension folder and rename the files to YOURNAME.php and YOURNAME.tpl resp.
Change the code(in YOURNAME.php) in respective function like run(), preProcess(), orderBY() as per your need and you can also modify the tpl file as per your needs.
Test! Test! Test!

HTH

Pradeep


How to get list of memberships whose start date is between a date range?

Done @petednz - fuzion

Solved it. I have used this. start_date: {"BETWEEN":["2016-08-13", "2017-08-12"]} Have got the info from support > Developer > API Explorer. I am a newbie in CiviCRM. Was not aware of such a helpful API Explorer.


Can I allow users to update their registration?

Drupal Webforms currently have this functionality, so if you set up your Civi event registration page using Drupal Webform-Integration, your users will be able to revisit the form and update their contact info, registration details, or even cancel their registration.


Getting error when using civix generate:module or civix generate:entity curly braces no longer supported in phar

UPDATE 2: The PR was merged so now the latest civix phar download supports php 7.4 (insert emoji yay! here)

UPDATE: PR submitted to update civix to update its version of cv: https://github.com/totten/civix/pull/200

Are you on php 7.4? You have an old version of cv within your civix phar. I'd download a new copy of civix.
i.e. https://github.com/civicrm/cv/commit/018c667429653ca06bc1dff6a93fdec87d9171bc


Avoid an activity entry for each recipient contact of a mass mailing

I think I found it: Administer > CiviMail > CiviMail Component Settings > "Enable CiviMail to create activities on delivery" is checked in our project.


You can potentially do this by implementing the hook:

CRM_Utils_Hook::dupeQuery

Check: CRM/Dedupe/BAO/RuleGroup.php

to see places where the hook is invoked


Uncaught ReferenceError: CRM is not defined when trying to access mail templates

Here are some places to check:

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


How to give fine grained access to communicating with selected contacts only?

You will need to create an extension and use acl where clause hook to restrict view/edit operation for a contact.


What hook(s) can modify variables passed into Smarty templates?

I often use the buildForm hook to modify data that is then passed to Smarty, or even add my own Smarty variables to the form.


How do I bulk import Communication/Privacy preferences?

Use the number "1" for yes and a blank for no.

One way to see this is if you do an export and then look at how it outputs it.


We have a setup like this. It's possible if you're comfortable with the smarty template language. If you enable the smarty email setting, you can put limited code into your email template that, say, does an API call to see if someone is a member. Then display the appropriate 'block' depending on the result. This works, but is vulnerable to users breaking it if they edit the template. I'm certainly interested to see what other suggestions people have.


How to add Option Group to Event Online Registration?

Shaun, Welcome to CiviCRM SE,

You will need to

Add a custom group extending participant (CiviCRM >> Administer >> Customize Data and Screens >> Custom fields)
Add custom field of type select/radio/checkbox in a custom group created in #1.
Include this custom field in your profile which you are thinking to include for event.

Note: Custom field UI doesn't provide option to select existing option group which is not part of any custom field, you can either re-enter the options again or save the form without options and using api/sql update the option_group_id(with the option group id you have already created) column in civicrm_custom_field table for custom field you created at #2.

Thanks

Pradeep


Installing Civicrm session_start(): error fatal

It looks like your hosting provider or server config has overridden the PHP ini setting session.save_handler (or related settings like session.save_path).

You could try applying a fix similar to the one over on CRM-17212: IPN and other scripts break on Pantheon due to session handler


have different events for different user groups

To restrict users to see events of their own group in CiviCRM UI then you will need to write an extension that will restrict this.

You can use CiviCRM hooks to restrict group to see their own events. Similarly in case of listing events on wordpress UI.

HTH

Pradeep


missing config_backend in civicrm_domain table, templates_c directory and Config.IDS.ini after migration

What is the problem the site is having?
In later versions there is no config_backend field, and templates_c and config.ids.ini will recreate themselves if the folder permissions are correct.


Importing contributions always imports $0 in Amount

Check how you are importing your data. It is often worth doing an export to see how they data is held as this often provides a clue as to how the data needs to be structured to import.

For example you may be importing as 5 when it expects $5 or vice versa.

Also be aware that there is a very helpful extension that extends what was possible with GUI imports. github.com/eileenmcnaughton/nz.co.fuzion.csvimport


Is there a way to enable or install the full version of CKEditor in CiviCRM 4.6.x?

The difference between the "full" and "standard" CKEditor is one of plugins.  You can drop additional plugins into the ckeditor plugins folder at: <civicrmroot>/packages/ckeditor/plugins.  Depending on the plugin, you may also need to edit the config at <civicrmroot>/packages/ckeditor/config.js.  Detailed instructions are available here.

I've had perfectly good success simply dropping in the latest version of CKEditor (https://issues.civicrm.org/jira/browse/CRM-16053).

UPDATE: I found that newer versions of CKEditor strip out the "meta" tags from the templates unless you edit config.js.  Also, be sure to clear all caches (including browser caches) or you may find that your CKEditor toolbar button icons are messed up (because of the wrong offset)


Drupal CiviCRM update account info with CiviCRM profile

"Create Mode" means just that, creating a new contact, thus the fields will appear blank. You want edit mode, with a url like /civicrm/profile/edit?reset=1&gid=N where N is the ID of the profile.


Editing Recurring Contributions without user login

I almost have this polished, just one little piece that may be beyond what my pea brain can handle. The short of it is that from the affected contact you need to send an e-mail with tokens. (I've put this into a template.) In the body of the e-mail put a link similar to this:

https://yoursite.com/civicrm/?page=CiviCRM&q=civicrm/contribute/updatebilling&reset=1&crid=XX&{contact.checksum}&cid={contact.contact_id}&context=dashboard

You need to replace the crid=XX with the correct crid for that failed transaction.  The only way I've found to get that crid from the front end is through a few steps.
1.  Open up the contact of the failed contribution.
2.  Click on the "Actions" button, then Right Click on the "Contact Dashboard" and choose "Open in new Tab."  This will open up the dashboard in a separate tab, as you'll need the first page later and can't easily get back to it.
3.  On the Contact Dashboard page, you'll find a "Recurring Contributions" line.  Click the "more" button, then Right Click on the "Change Billing Details" and choose "Open in new Tab."  This will open up the "Billing Details" in a new tab.  In the address bar, you'll find the "crid=" value buried in the string.

Moving forward, I'm hoping that someone with more skills than I can figure out how to add this crid as a token, and then be able to search for failed contributions and send the template e-mail to multiple contacts at once.  To go even a step further, being able to automate this once a failed transaction happens, the system automatically sends out this notice.


Insert file into greeting field with Smarty

The length limit of the greetings syntax can be quite tricky, especially when using different languages with gender specific greetings.
Luckily there is the extension More Greetings that provides

additional greeting fields
no length limit for syntax
more possibilities such as using API calls in the syntax
a basic syntax checker


Is there a way to use the same webform for anonymous submission and for back office queries, i.e. hide existing contact box for anonymous

In your webform, add a hidden field called Role

set the default value to the token [current-user:roles:first]
set the type to 'Hidden element'  (Secure value looks like it should work but didn't in my test.)

Then on the Conditionals tab add the rule:

If Role is anonymous user
then Contact1: Existing Contact isn't shown


Is there a way to customize Activity Type screens?

I've handled this with a .extra.tpl file with some jQuery in it. I also used a template override for one or two customizations, but shied away from them because of the overhead of upgrading them. However, the project in question was in many ways a customized activity form, so I went ahead and did it.


In API Explorer, Add Parameter and Add Option links do not work

This sounds like a javascript problem to me. Try the steps for troubleshooting javascript in CiviCRM.

You can also compare the explorer on your site to the one on the drupal demo and see if you can glean any clues from those differences (ignoring the one unrelated difference that the demo is running 4.6 and you are using 4.5)


How can we rank contacts in league tables based on 'points' for completing Activities, attending Events, having a Membership, etc - "gameify" CiviCRM?

I'm the author of CiviPoints that John and Erik mentioned. We have a points system internally at Future First for tracking engagement, and then colour codes based on that for reporting. Currently it's being done with spreadsheets.

Some development was done before the sprint on the database structure and API for this extension, and a basic UI including contact tabs. Hearing more about CiviRules at CiviCon and the sprint I thought it would be a great idea for automating our weekly figures. I'm interested in integrating it with CiviRules as both a trigger (when some level of points is hit, do X) and an action (when Y happens, grant some points). There's a preliminary version of the action part in a branch.

I haven't done anything on it since the sprint, and it's not in production or automatic distribution, because our main priority has been working on a new portal for our members. I do hope to give it more attention soon though!

League tables aren't something I've considered before, but sounds like a good idea. Some features it does have, in the underlying structure at least, are point-in-time history, and support for multiple points types (different programmes, or maybe engagement tracking as well as some sort of credits).

Some issues/enhancements are listed on GitHub. Please feel free to use it and test it, any feedback would be welcome. Thanks!


How do I import contact records with phone numbers without overwriting existing phone numbers?

Use the API CSV Importer and import to the Phone entity which will always add new entries.


Since you have the jQuery tag, I assume you're open to a jQuery solution.

This StackOverflow question covers pulling a variable from a URL argument.
Then it's just a matter of identifying the CSS identifier of the field you want to fill (right-click, use "Inspect Element") and referencing it.  E.g.:

var state = GetURLParameter('state');
$('#state_province_id-2').val(state);

The Select2 documentation suggests this should work on Select2 widgets as well.


is there a quick way to export the complete data from my database?

The short answer is "Yes" but it's not as useful as you might think.

First - consider a contact with 10 donations, 5 events attended, 3 memberships, etc.  If you exported this all in one table, it would be hundreds of columns, with data flattened to the point of uselessness.  On the other hand, if you export contacts in one table, donations in another, etc., it's quite hard to make good sense of what you're looking at since it lacks context.

My recommendation is to search for all contacts (going to Search menu >> Find Contacts and press Search without specifying any criteria).  Then from search results, select the All Contacts  radio button, and Export Contacts from the Search Actions drop-down.  Export All Primary Fields.

This is a) still information overload, b) doesn't contain quite a lot of database information, but will serve as a helpful starting place to familiarize yourself.


Unfortunately Drupal rules module is not triggered on CiviCRM membership CRUD function and CiviRules does but doesn't provide option to perform any CMS changes like creating OG groups in your case. I would recommend to create an extension or drupal module and use CiviCRM post hook to create OG group.
eg:
function extensions_civicrm_post($op, $objectName, $objectId, &$objectRef) {
  if ($objectName == 'Membership' && $op == 'create') {
    try {
      $orgName = civicrm_api3('Contact', 'getvalue', [
        'return' => "organization_name",
        'id' => 1,
        'contact_type' => "Organization",
      ]);
    }
    catch (CiviCRM_API3_Exception $e) {
      // Not a organization contact
      return;
    }
    // get the user id who will controll this group either Employee of relationship?
    $userId = 1;

    //create OG
    $node = new stdClass();
    $node->type = "og_node"; // use the machine name of OG group node type
    node_object_prepare($node);
    $node->title = $orgName;
    $node->language = LANGUAGE_NONE;
    $node->uid = $userId;
    $node->group_group[LANGUAGE_NONE][0]['value'] = TRUE;
    node_save($node);

    $roles = array_flip(og_roles('node', 'og_node', $node->nid));
    og_role_grant('node', $node->nid, $user->uid, $roles[OG_ADMINISTRATOR_ROLE]);
    $values = [
      'entity_type' => 'user',
      'entity' => $userId,
    ];
    og_group('node', $node->nid, $values);
  }
}

HTH
Pradeep


How can I make a contact the case manager of several cases with the same client contact?

So, I know it's against best practices, but after digging into the code a bit, I've located a (hacky) solution to my problem. When adding a Case Manager via a case view, CRM_Contact_BAO_Relationship::legacyCreateMultiple is executed.

At line 194 there's a check for duplicate relationships. If I comment out the "continue" at line 203 within the dupe check, I can successfully assign the case manager to the case.

I would much rather not have to do a core edit, so I await a better solution.

Edit: I had run into a problem elsewhere that ended up being caused by my hack. I do not recommend implementing my hack as I'm not sure of the implications.


Mosaico default template - unsubscribe setting

This is how I do. You have 2 tokens:

  {action.unsubscribeUrl}

to unsubscribe

and

  {action.optOutUrl}

to opt-out

I placed this code in a block at the end of the e-mail and it does the job.

Si vous ne souhaitez plus recevoir de message de notre part, cliquez ici pour vous d&eacute;sabonner et ici pour vous d&eacute;sinscrire de toutes les campagnes du DOMAIN

and these are the links I get in the e-mail:

https://domain.net/civicrm/mailing/unsubscribe?reset=1&jid=4&qid=6&h=06932199472f700e

https://domain.net/civicrm/mailing/optout?reset=1&jid=4&qid=6&h=06932199472f700e


Drupal Domain Access vs Multi-Site in Civi

Multi-Site is the way to go http://wiki.civicrm.org/confluence/display/CRMDOC/Multi+Site+Installation

With Domain Access you can get into trouble because CiviCRM would expect one domain per "civicrm.settings.php".


Edit 'Welcome Mr xyz' message on Contribution Form

I think you're looking for the "Welcome Mr X (Not Mr X, or want to do this for a different person?)" message.  That text is in templates/CRM/Contribute/Form/Contribution/Main.tpl

It is possible to override templates - see https://docs.civicrm.org/dev/en/latest/framework/templates/customizing/ for details.  As the documentation warns, there are problems associated with doing this.


Yes, you can run several independent Drupal sites off the same codebase.  Some instructions are here:
https://www.drupal.org/documentation/install/multi-site

Basically, each has its own database and its own sites/yoursite.org folder where the settings files and site-specific files go.  All use the sites/all folder.  When you visit via http://yoursite.org, Drupal checks the sites/yoursite.org folder for a settings.php file, and if there is no sites/yoursite.org folter, it uses sites/default.  (There's a more nuanced pecking order of folders, but this is the gist.)

For CiviCRM, it works the same: you put civicrm.settings.php in sites/yoursite.org, and the module lives in sites/all/modules.  Your database is independent of the other sites; the only thing shared is the module code.

However, there is a reason why many people don't set up their sites this way: there's not much benefit to having a single copy of the modules (the files aren't that big), but you can do things on one site that inadvertently cause problems on one of the others.  As an example, if you upgrade one site's CiviCRM, you're replacing the files used by all of your sites, requiring you to run the upgrade script on all of them.


You need to install civix to create civicrm extension and then follow documentation for creating module extension. There are many examples of extension under civicrm.org. The easiest one to start would be

https://civicrm.org/extensions/api-key
https://civicrm.org/extensions/phone-number-validator
https://civicrm.org/extensions/show-contact-deceased
https://civicrm.org/extensions/sms-api
https://civicrm.org/extensions/extended-logging-report
https://civicrm.org/extensions/olark-chat
https://civicrm.org/extensions/birthdays-month
https://civicrm.org/extensions/show-member-ids
https://civicrm.org/extensions/mysms-mantra-sms-gateway-integration
https://civicrm.org/extensions/civicrm-country-manager

Ref: https://www.youtube.com/watch?v=lrk8X_jt0wU

HTH

Pradeep


CiviCRM BuildKit install fails on Ubuntu 18.04.1 LTS

Updated:
The fix for this has now been merged as https://github.com/civicrm/civicrm-buildkit/pull/427
Original
Full solution: https://github.com/civicrm/civicrm-buildkit/issues/426
Assuming that we can get this fixed in the BuildKit installer this answer will be updated to reflect such a change.

Install a compatible version of NodeJS/NPM from NodeSource

curl -sL https://deb.nodesource.com/setup_8.x | sudo -E bash -

Download, don't run, the get-buildkit.sh script.

wget https://civicrm.org/get-buildkit.sh

Using the editor of your choice, edit the downloaded script.

editor get-buildkit.sh

On line 453:

(PACKAGES="acl git wget unzip zip mysql-server mysql-client php7.2-cli php7.2-imap php7.2-ldap php7.2-curl php7.2-mysql php7.2-intl php7.2-gd php7.2-dev php7.2-bcmath php7.2-mbstring php7.2-soap php7.2-zip php7.2-xml apache2 libapache2-mod-php7.2 nodejs npm php-pear libmcrypt-dev libreadline-dev")
Remove npm:
(PACKAGES="acl git wget unzip zip mysql-server mysql-client php7.2-cli php7.2-imap php7.2-ldap php7.2-curl php7.2-mysql php7.2-intl php7.2-gd php7.2-dev php7.2-bcmath php7.2-mbstring php7.2-soap php7.2-zip php7.2-xml apache2 libapache2-mod-php7.2 nodejs php-pear libmcrypt-dev libreadline-dev")

Make the script executable:

chmod +x get-buildkit.sh

Install BuildKit:
Important The script CANNOT be in the same directory you intend to install BuildKit to!

./get-buildkit.sh --full --dir ~/buildkit

Continue the usual steps from here:

https://docs.civicrm.org/dev/en/latest/tools/buildkit/#config


Your CiviCRM logfile (instructions to locate) should show details about the rejected form submissions.

Would be interested to hear details of what submitted data was triggering CiviCRM's IDS to reject registrations - if you can excerpt some details of a rejected submission from the logfile, someone might be able to give an informed reply to your question.


CiviCRM 5.9.1 on Joomla 3.9.2 Problems with the language

Michael, Welcome to Stackexchange. The language will be available if you have downloaded and place l10n folder in civicrm.

To configure CiviCRM to use an existing translation:

Download the translations distribution -
civicrm--l10n.tar.gz - from the CiviCRM Sourceforge
downloads site. This tarball contains all files for the latest
available translations.
Uncompress the tarball and you will see a directory called civicrm,
containing two subdirectories called l10n and sql. The l10n
directory contains a set of sub-directories named using their locale
codes. (Example: the Canadian French translation files will located
in /civicrm/l10n/fr_CA)
Copy this l10n directory, together with all
    its subdirectories into your CiviCRM codebase root directory. (note
    if creating the l10n folder manually it should be ell-ten-n, not
    capital-I-ten-n)

For Joomla this would be
   site_root/administrator/components/com_civicrm/civicrm. So if you
   wanted the en_GB language it would look like this

site_root/administrator/components/com_civicrm/civicrm/l10n/en_GB/

For Drupal this would be site_root/modules/civicrm. So if you wanted the en_GB language it would look like this site_root/modules/civicrm/l10n/en_GB/

Login to CiviCRM (as a user with "administer CiviCRM permissions").
Go to Administer » Localization » Languages, Currency, Location
You should now be able to see and select all the localization
options in the Default Language and drop-down menu. If you don't,
and instead can just see the default 'English (United States)'
option, check the preceding steps as the drop-down options are set
by the directories under your l10n directory. Also be sure to
confirm that the l10n directory is correctly named as l10n (that is:
el-ten-en and not eye-ten-en).

Cheers

Pradeep


How to use Event Calendar Extension with CiviEvents?

Follow the instructions here
https://github.com/osseed/com.osseed.eventcalendar/blob/master/README.txt

The latest release is here https://github.com/osseed/com.osseed.eventcalendar/releases/tag/2.0

It will not create the menu items automatically like it is supposed to, so you can create them yourself with the below instructions.

Go to Administrator -> Customized Data and screen -> Navigation Menu -> Add New Item .
Set the title "Calendar Settings" and the URL civicrm/eventCalendarsettings Make the Parent Events.
Click save.

Go to Administrator -> Customized Data and screen -> Navigation Menu -> Add New Item .
Set the title "Show Calendar" and the url civicrm/showevents.  Make the parent Events.
Click Save.
Now the items are in the civi menu under events.


What permission are required to select an existing event location in CiviEvent?

If you're able edit an event, I don't think you need any additional permission to add existing location for an event.

The reason why you don't see an option could be because you haven't yet created any event location on this site? If this is the case, try adding a location for this event and then create a second event - you must be able to choose location on this newly created event.


Outlook For CiviCRM - How to bypass activity confirmation dialog?

Outlook-CiviCRM documentation says that the confirm dialog box can be turned off through UI.
Prompt for All emails?: If this setting is enabled - While sending emails, you would always be asked whether you want to record this email in CiviCRM (A small pop up confirmation box would appear). If you don't want to be asked every time and just want to record every email you send, turn this setting off

HTH
Pradeep


Any extension for customize the dashboard

In addition to Pete's answer, you can also put Views blocks into CiviCRM dashlets: https://civicrm.org/blog/brandonferrell/drupal-views-in-civicrm-dashlets


Intermittent "Your browser session has expired and we are unable to complete your form submission" errors

Based on further investigation and discussion this seems to have been related to the WP Super Cache "Don’t cache pages with GET parameters. (?x=y at the end of a url)" setting being disabled. Once we got a bit of a spike in donors some people started seeing the error, but luckily a donor notified us so we caught it pretty quickly, and I was able to flip back to a Gravity Forms donation form as a stopgap while we did some troubleshooting. Live and learn.


Import exceeding max. number of processes on host

I found the solution to my issue. The php.ini was causing another issue with my site. When I renamed it, I was able to import as expected.


I have had success in differentiating content based on the value of a custom field by enabling Smarty for message templates http://wiki.civicrm.org/confluence/display/CRMDOC46/Smarty+in+mail+templates


Any new functionality to sync smart groups to Drupal roles?

It works just fine for us.  We are on Civi 5.8 and Drupal 7.x.


I have created a custom field but only admin users can see it

Karen, welcome to CiviCRM StackExchange.

Check user permission by navigating to CiviCRM >> Administer >> Users and Permissions >> Permissions (Access Control). Click on Drupal/Wordpress/Joomla Access control link(name is based on CMS you using).

Check for 'CiviCRM: access all custom data' permission for the user role. If uncheck, check the option under the role and save the permission. This will enable access to all custom field in your system for that user role. If you want to restrict specific custom group being visible to user than you will need to add ACl for the custom group to perform CRUD operation.


How can I modify the existing report template?

These two fields would be generally useful to many CiviCRM users, so I'd recommend adding them to the core report just before https://github.com/civicrm/civicrm-core/blob/master/CRM/Report/Form/Contact/Detail.php#L85.

Here are some instructions on using GitHub to contribute to core CiviCRM: https://wiki.civicrm.org/confluence/display/CRMDOC/Contributing+to+CiviCRM+using+GitHub

You can get the names of the fields at https://github.com/civicrm/civicrm-core/blob/master/xml/schema/Contact/Contact.xml#L162 and https://github.com/civicrm/civicrm-core/blob/master/xml/schema/Contact/Contact.xml#L359.

Just adding the field definitions should be sufficient to add them as data columns...a bit more work is required to make them available as order by fields. Once you have tested the changes, please submit a PR. You can ask me for help reviewing the contribution by mentioning @JoeMurray in a comment on the PR. Good luck!


How do i add parent information to a teenage volunteer profile?

You would need to created an extension using civicrm hook 'hook_civicrm_postProcess' which gets invoked when a civicrm form is submitted as you want the actions to be taken upon profile submission so this should work for you. In the hook you can create the relationships through the API call.

Detailed documentation on hook.

Hope this helps.


Column Sorting Removed Filters in Find Contribution

It looks like one of the amazing maintenance team have already provided a patch for this so it should be in the next release

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

Don't you just love the CiviCRM Community - this is all being done by volunteers - you can support the community in a number of ways via https://civicrm.org/support-us (not suggesting you aren't currently supporting it)


Fatal error when exporting accounting batch to CSV in 4.7

It was indeed a bug (filed here: issues.civicrm.org/jira/browse/CRM-18169).  This will be corrected in Civi 4.7.4 by this pull request: https://github.com/civicrm/civicrm-core/pull/7942


How are "Billing" location and "Is billing address" automatically set by CiviCRM?

I am not sure if this answers your question, but if you do not have an added profile type to collect a mailing address, the CiviContribute form will automatically only provide a place to check or enter billing address only. If you add a profile type that collects their mailing address also, then CiviCRM will ask on the front-facing form via checkbox if the billing address is different.

If you do not add a mailing address profile, CiviCRM will record the provided address as a billing address. If you do provide the mailing address profile, then CiviCRM will populate both fields according to what the user entered for mailing and billing.

Also, without the added profile to collect a mailing address, the CiviCRM will automatically populate the billing address field with whatever address it knows from the contact record, which may have been entered on the back end or from when the user registered for an account on your website.

When you set up the CiviContribute form on the back end, you will see a tab for "profiles" in which you can add or create a profile such as this.


OR operator in reports - How to draw a Participants report where A OR B?

What you're asking isn't supported with CiviReport, unfortunately.

You have a couple of alternative options:

You can build a Smart Group that meets your criteria, then filter by the Smart Group.  However, I'm not sure what the current state of relative date filters and smart groups is these days, so this may not work.
You can integrate a more advanced reporting engine like Hitachi Vantara or Tableau.
If you're using Drupal as your CMS, you can build a View with CiviCRM integration to provide the report you need.


Fresh Installation, with all old data. Current online version CiviCRM 4.6.20. (WordPress)

We have nursed about 50 sites through such an upgrade, many of which we inherited rather than built

Firstly read the docs: docs.civicrm.org/sysadmin/en/latest/upgrade

minimise risk by doing the upgrade on a copy of the site - that way you will be able to identify the problems and come back for more specific advice once you know what issues you have hit.
identify any customised files you have on your system and assume they will break - and consider if there are better ways to manage those customisations such as in Extensions
if you have budget consider getting a Partner who can step in to do this or at least be available on an 'as required basis' to help mentor, provide emergency support etc.


Custom activity types do not appear in report filter

In our case, we were creating custom Activity Types and selecting used for "Cases Only."

If we change this to "Contacts and Cases," they appear in the filter list.


CiviCRM (Drupal 7) Problem sending bulk emails

Sending bulk emails depend on execution of scheduled jobs present at civicrm/admin/job?reset=1 URL path OR Administer -> System Settings -> Scheduled Jobs navigation menu.

The name of the job is Send Scheduled Mailings. Pls check if this job is enabled and running on your site.

Also, check the status of the bulk mail you created via civimail.

If the status is scheduled - the mailing is awaiting the execution of the scheduled job.
If it is "Completed" - the mailing is sent to the recipients.

For more info - check https://docs.civicrm.org/user/en/latest/email/mass-mailings-using-civimail/


There likely isn't one clear winner here.

But authorize.net has been my go-to recently. That and PayPal Pro are built-in to Civi out of the box.

The Stripe payment processor extension is operating on 855 installs. iATS Payments is on 602 installs.

Here is a very helpful review from Gingko Street Labs which also addresses the 4 aforementioned processors: https://ginkgostreet.com/content/evaluating-payment-processor-options.

I'm on WP as well.


Trouble moving a Wordpress/CiviCRM install to a subdomain

The instructions for moving an installation should work even though you are only changing the base_url: see http://wiki.civicrm.org/confluence/display/CRMDOC/Moving+an+Existing+Installation+to+a+New+Server+or+Location.

We tend to truncate tables rather than exclude on backup and migrate so that the structure is migrated.

You may be able to check the mysql log (see my.cnf for its location) for the specific table.field that is missing, if you want to try to fix the database you are currently working on. Wild guess: it is custom field, which are stored in the civicrm_value* tables, and defined in the civicrm_custom_field and civicrm_custom_group tables.


I would say that it will probably be ok, but I wouldn't add it to your existing public-facing site. I would setup a subdomain for it and not install any other plugins, allow account creation or use it in a public way (except for CRM tasks like event registration, etc.)

Exploits of WordPress via plugins and themes are common, especially with the default permissions in a shared hosting environment like you describe. Keeping good backups is enough mitigation of this for a regular website, but you will have people's private information in this database, so you need to be much more careful.
Personally, I wouldn't be eager to do it, but if you have no other option, it is possible, just keep it separate from your main website.


I believe we solved this. The option group in question is a multiple choice integer (radio buttons) with values 0, 1, and 2 representing "No", "Yes",and "Retest". Nulls are allowed. All values in the table matched. Other than the warning, we never experienced any issues.

We noticed that standard Yes/No option groups used 0 and 1 values, but other multiple choice integer option groups used non-zero positive  integers. We reset all of our "No" records to value 3 and changed the Option Group to match. The warning immediately stopped.


You don't mention your php5 version, that would be the most likely cause (i.e if it's less than 5.4).

But if the problem is seen in an apache error file and it's in the smarty file, then just give us the error and it should be clearer.

If you only updated the code files and didn't clear caches afterwards and run db updates, then you'll definitely want to do that, as per the documentation.


Paypal IPN URL is giving error Failure: Missing Parameter

The "payment processor ID" is an integer, not a string - this may be your issue.  Go to Administer menu » System Settings » Payment Processor.  Next to the PayPal Standard processor you're working on, click the Edit link.  You should get a new page with a URL that looks like this:

http://dmaster.localhost/civicrm/admin/paymentProcessor?action=update&id=5&reset=1

Note the parameter near the end &id=5.  Whatever number is showing there (instead of "5") is your payment processor ID.  Change the "2" at the end of the pingback URL to match your payment processor ID.


I would suggest you sign up for an account with civicrm.org and hence on chat.civicrm.org (unless the latter can be done without the former) and then join the API channel there. Am sure they will love to hear from you. I understand having a tolerance for jokes about 'warm beer' can be helpful.


Upcoming activities in Case Control Panel - extend time span?

The definition is hardcoded in the view. See CRM_Case_BAO_Case::createCaseViewsQuery().

So you need to change the mysql view definition in the database. Copy and paste the "CREATE OR REPLACE..." code in the above function into phpmyadmin (or whatever) and change the 14 as desired. But it might get changed on upgrades if that view definition changes.

The original spec said "default", but then making it configurable I expect was just time/budget/priority.

See also How can I modify what is displayed on the civicase dashboard?


Yes and no!

Yes, this would certainly be possible within the framework which CiviRules is build on.

No, currently this specific event has not been developed. Conceptually this doesn't seem to be too difficult event to create. You or your developer can try to do it yourself using the new cookbook on CiviRules, or consider funding this work to be done by the first creators of the extension.


After Upgrade to 5.10 unable to close Case

Yes, this is a regression bug caused due to recent change to datetime on Activity forms. This is now fixed at PR#13497 and should be part of 5.11 release. You can either wait for 5.11 release or apply patch from here.

Thanks

Pradeep


Repeat Contributions Report - Where Is Data Pulling From?

CiviCRM has a notion of recurring contributions that is slightly more than just repeated transactions with the same information. Users can set up a series of contributions on a monthly or annual basis (or actually daily or weekly) that will charge an online payment processor appropriately. There is a separate table for storing the information about the recurrence, civicrm_contribution_recur, which is accessible via the API. Note that you can connect contributions to the appropriate record in this table by setting civicrm_contribution.contribution_recur_id.


Contribution form errors after latest security release

So the error occurs when CiviCRM is doing it's implementation of the Luhn algorithm https://en.wikipedia.org/wiki/Luhn_algorithm

The picture suggests it's javascript related, but note that there are no console errors showing.

Fix: I cleared both the site cache and the browser cache and now it works.

The weird [object Object] title that you can see in the console seems to be a red herring.

In our case, the issue is likely due to css/js/img resources having long caches and not getting cleared by CiviCRM with the upgrade, so restarting Varnish in front of the site is likely the right answer.


If the machine that connects to mailchimp (the wamp machine) can reach the internet then yes.


Is webform_civicrm 7.x-5.1 compatible with Drupal 7.67 and CiviCRM 5.19?

I dont see any thing on module page that it says not compatible with 7.67 and Civi 5.19. The minimum requirement for 5x is CiviCRM 5.12+ and you are on 5.19. So i dont see any reason why it wont support.


Access permission for Print Merge Documents

Also, if you are willing to develop an extension, you need to check https://docs.civicrm.org/dev/en/latest/hooks/hook_civicrm_summaryActions/ hook to add permission to the "Print/Merge Document" action link.

Something like -

function mymodulename_civicrm_summaryActions(&$actions, $contactID) {
  $actions[print_pdf_key_name]['permissions'] = array(...); //your list of permission
}

If you need to create a new permission for this task - you need to check https://docs.civicrm.org/dev/en/latest/hooks/hook_civicrm_permission/ hook as well.

Hope that helps.


Problem with CiviRules 2.13 Field Value Comparison

Try after applying patch from here on latest version of rules.


Why aren't bounced 'normal' emails reported?

Fuzion has undertaken some work recently to address this. The work is still underway but we expect to publish as an extension when this is completed.


If you are still looking for CiviGrant users, please include your contact info.
I'm also looking to connect with other CiviGrant users to share tips etc. I can be reached at edith (at) mrgfoundation.org.

Blog post about connecting to CiviGrant users is at:
https://civicrm.org/blog/edith-casterline/calling-all-users-of-civigrant


How to debug Smarty mail template codes, broken after upgrade

Any chance in your settings file the "CIVICRM_MAIL_SMARTY" just needs to be turned back 'on'?


How do I find users who haven't opened any bulk mail from me recently?

I think you may be able to use the Custom Search of Include/Exclude and make a Group that includes those who have opened, so you can 'exclude' them from a search of all possible recipients.


Same here.
Installed Drupal 7.50 / CiviCRM 4.7.11, fresh install. No other extensions.

Installed CiviVolunteer 4.6-2.1.2 and Angular Profiles 4.6-1.0.2

When i wanted to add a new project, it does not save anything. Tried with backtrace on, but nothing showed up. Have cleared caches, reset menu, etc, and tried again, no help.

Any idea what might be the case? I want to demo it to a client, so hopefully someone can help me.


Ginkgo Street Labs has collated four of the most common processors into one post:  Evaluating Payment Processor Options

For a larger comparison see: Payment Processors

For general instructions see: Contributions - Payment Processors


Is there a way to create a new group from report results (instead of adding to an existing group)?

You could create your group at Contact > New Group before you ran the report.


How to manually trigger update hook for an extension?

How about make a backup of the extension folder before the first update, then do on site A, then restore the backup folder, then do site B, etc...


Contact Print Summary - can fields be added?

It's hard to tell, but I think this is unintentional.  There's a line in the code that says to hide the first section of the contact when in print summary mode, but I suspect the "first section" used to be something else.  I can't see any reason why this should be removed.

I can tell you the quick fix, but I'll also submit this for consideration to others.

For now, you need to know how to find where CiviCRM is installed on your folder.

Inside that folder, find the file located at <civiroot>CRM/Contact/Page/View/Print.tpl.  This controls the print view.
Open the file and find the line (about 4 lines from the bottom) that says:

cj('#contact-summary' ).children(':first').remove();

Delete that line and save the file.

That should fix your problem!

UPDATE: Submitted a bug report here: https://lab.civicrm.org/dev/core/issues/477


One problem is that both members are given the option of membership type (1,2, or 3 yr). In fact, what I want is the chosen term applied to both. Only member one pays, and both get memberships

I would try to tackle this via webform Conditionals, eg if the Memb Type for cid1 is 'not empty', hide Memb Type for cid2 or something similar


PHP warning "Warning: Declaration of CRM_Mailchimp_Permission" logged when open a CiviReport

There is already a fix submitted for this warning but haven't got merged. But i believe the fix should fix the problem. Can you try after applying patch from here?

Cheers

Pradeep


View bounces when sending through general email (not CiviMail)

Found my own answer. Our bounces@... address is set up as a catch-all, so bounces (or other badly addressed email) come to it, but CiviMail only processes bounces from emails sent through that component. Other emails are sitting in the inbox of the bounces@ account, waiting to be read, or forwarded through judicious use of a filter.

Leaving this question for posterity.


One sets the default location type for all contact info (phone/address/email).  They can't be set separately unless you write an extension.  You can change it at Administer menu » Customize Data and Screens » Dropdown Options » Location Types.  Click "Edit" next to "Home" and check the "Default?" box.


Send an email function not always delivering

What is the mail server you are using to push them out?

If it's a local mailserver (eg. postfix) you can check the log and see if it's actually really sent.

If you are using an external provider, they usually have some kind of log as well.

In any case, have you set up SPF and DKIM for your domain? if not, you are increasing the risks of having some providers that will drop your emails without any notice


When you go to Administer menu » Customize Data and Screens » Summary Fields, the last option is When should these changes be applied?. Your summary fields will be primed at the time selected.  If you want to look at the code, the function is sumfields_gen_data.


Adding popup info via CRM.help() - doesn't quite work

This is how I have implemented the popup help texts in CiviSEPA. The main difference here is that the .hlp file extension is omitted, the directory separator in the path are escaped and that I have enclosed the code in {literal} {/literal}-tags.


Which SMS Gateway / Service providers are available?

Out of the box, you have two possible providers, clickatell and twilio.

Both seems to work fine, you should check directly on their website because the cost depends on your location, the location of your recipients and the volume you want to send.

https://wiki.civicrm.org/confluence/display/CRMDOC/Setting+up+a+SMS+Provider+for+CiviSMS

X+


Thats from Civimobile extension and You can find quick solution at https://lab.civicrm.org/extensions/civimobileapi/-/issues/57#note_54817

One thing I have found is editing the scheduled job Civimobile clean
old push notification messages and setting a command / API parameter
count_of_day=1 which means keep only 1 days worth of notification
messages can help


How to make fields on webforms mandatory

Yes, you can make a field mandatory in a webform. You will need to go under Webform tab of a webform. Click on edit besides the Phone field. On Edit phone scroll down till you see 'VALIDATION'. Check the 'Required' check box and save the form.


Drupal CiviCRM Contact View -- Show all groups for a contact

You can use Views Aggregator Plus module to group contact 2 rows.

Views Setting

Table format setting

Result

HTH

Pradeep


Still can't send SMS individually via Twilio extension

The instructions on the Civi wiki weren't clear enough for my sleep-deprived brain. I had omitted the From= prefix from the API parameters in my SMS Provider Settings in Civi. Soon as I added From= to the front of our Trilio phone number, it worked like a charm.

Now to put some ice on this palm-shaped bruise on my forehead ...


It sounds like the hook isn't being called (or not called correctly) when processing the update_greeting job. I think that qualifies as a bug and you could file it in issues.civicrm.org. But due to the high volume of issues, a core team member may not be available to jump on it anytime soon. I'd suggest you keep on with your debugging and compare the code that runs during that scheduled job to the code that correctly uses the hook and see how they differ. If you are able to come up with a patch that even partially addresses the problem it would help the issue get a lot more attention (issues with patches get bumped up in priority).


shoreditch: no option to enable on /civicrm/admin/setting/url?reset=1

Frequent reason for that error: Double-check, that your URL resource entries are correct! At best, you should use the URL variables, such as e.g.:

[civicrm.files]/extensions


problems with upgrade on multilingual site (in this case 4.7.31 to 5.3.1)

There is some issue in rebuilding schema for multilingual instance when upgraded to 5.x version. For the moment you will need to manually rebuild the schema using drush or civi api.

Details to rebuild schema can be found at Multilingual instances show 'no such field' errors after update

HTH

Pradeep


Migrate from Drupal to WordPress - 'DB Error: no such table'

This is down to the fact that you probably have logging turned on in your Drupal environment. So the easiest thing to do would be to turn it off before you migrate and turn it back on in Wordpress (Administer -> Misc -> Logging). If you cant do that (or it still doesn't work) then you have a couple of 'hacks' to make get to the point that you can at least get to the settings, including dropping the database triggers on the settings table, and any subsequent tables, until you get to the home page and to the logging page. But I would turn off at the source, thats the easiest approach.


See CRM-19545  There was a a regression introduced in 4.7.14 and fixed in 4.7.17  If you want the fix sooner see https://github.com/civicrm/civicrm-drupal/pull/417/files


What Are the Best WordPress Theme Recommendations for CiviCRM

I can recommend the Divi theme from Elegant themes.  It is fully responsive and mobile friendly and we've had very few issues.  We've had some problems with certain plug-ins but not from the theme itself.


All contributions on this webform are created as recurring

You need to set a conditional to ensure instalments = 1 for the one time scenario. Instalments = 0 is open ended recurring and any other number is recurring with that number of instalments.

There was a change/PR to the repo that enabled open ended recurring contributions: https://github.com/colemanw/webform_civicrm/pull/141
so now it's even more important than before to ensure civicrm_1_contribution_1_contribution_installments is a number and set properly. It's a Number --> No is not a valid value.

Best to keep the Widget: Number -> this is how the component config looks when it's first enabled:

If you want to hide the Element -> change the widget to Hidden and use conditionals to set its value to either 0 or 1 (based on another field).


Clean URLs don't work after install in Backdrop

If Clean URLs are working in Backdrop, but not in Civi under Backdrop, then the problem is almost certainly in civicrm.settings.php.  My Backdrop/Civi sites (and also Drupal 7/Civi sites) have this snippet of code in civicrm.settings.php:
if (!defined('CIVICRM_CLEANURL')) {
  if ( function_exists('variable_get') && variable_get('clean_url', '0') != '0') {
    define('CIVICRM_CLEANURL', 1 );
  }
  else {
    define('CIVICRM_CLEANURL', 0);
  }
}

I suspect you're either missing this code, or perhaps there's something wrong with your "clean_url" variable in Backdrop.
Try replacing that with just this and let us know if it solves the problem?
define('CIVICRM_CLEANURL', 1 );


Differences in results between 'Find Cases' and a 'Case Report'

The Case Summary report has a grouping on contact. Do two or more of the cases have the same client?


Just sharing that we have developed and released a CiviCRM extension which solves this problem, see https://github.com/agileware/au.com.agileware.membershiprelationshiptypeeditor

Membership Relationship Type Editor for CiviCRM - edit existing Relationship Types and re-calculate inherited memberships

We hope this is useful to people using CiviCRM.


Exporting related contact's information on a contact that is a subtype

It sounds to me like you've already confirmed it's a bug, if you can replicate it on the demo server.  I'd open an issue for this.


How can I change the user access permission (read write mode for different user) using drupal and civicrm?

Assuming you are interested in CiviCRM permissions rather than Drupal content, take a look at the Hooks section in the Developer guide, specifically the Permission Hooks subsection.