Where is the CiviCRM ERD / data-dictionary?

You should use the API as the data dictionary. The API explorer (available in every installation) provides a convenient interface to browse the data dictionary.

The demo sites each have an API explorer and they are the authoritative public data dictionary for CiviCRM. For example  http://dmaster.demo.civicrm.org/civicrm/api/explorer (login first with username:demo and password:demo). Other versions are also available..

The entity select box shows a list of all available entities.  For each entity, the three most important actions from a 'data dictionary' perspective are

getfields - for the given entity, this action shows available fields
getactions - for the given entity, this action shows available actions
getoptions - for the given entity and field this action shows available options (only available for multiple choice fields).

Here are some examples of useful API calls:

To list all entities

civicrm_api3('Entity', 'get');

To list fields for an entity

civicrm_api3('[EntityName]', 'getfields');

To list options for a field (only available for multiple choice fields):

civicrm_api3('[EntityName]', 'getoptions', array( 'field' => "[FieldName]"));

To list actions for an entity:

civicrm_api3('[EntityName]', 'getactions');

FWIW, the above four API functions are used to build the API explorer, which is quite neat, IMO.

As you might expect, in most cases the API is a fairly close match to the database structure.  This database structure is defined in a series of XML files that you can find in our git repo (for example this xml file defines the table civicrm_group).

A couple of areas that merit a bit more explanation:

Custom data: At the database level, each custom set is a database table and each custom field is a database column.  All custom data is registered in two tables civicrm_custom_group and civicrm_custom_field.  These tables are exposed in the API as the entities CustomGroup and CustomField.
Options: At the database level, a lot of the simple drop-down options that you see in the user interface (for example activity status) are stored in the two tables civicrm_option_value and civicrm_option_group. These are exposed in the API as OptionValue and OptionGroup. The more complex options (for example membership status) typically  get their own table and API Entity.

To answer the second question, when you say "patch the data-dictionary", I'm not entirely sure what you mean, but if you were "refining the core" and wanted to for example, add/edit/remove a field, I would

Edit the xml file that creates the database table you are interested in
"Run GenCode.php" to rebuild the data files
Do various other things depending on what you changed!

Of course if you are going down this route, I would recommend discussing any changes with someone who has a deep understanding of CiviCRM and its data structures.


I just fixed this issue on a site I was working on.  Hopefully it helps you as well.  My issue was directory permissions.  You need to make sure that all of your directories have permissions set to 755.  My contribute folder was set to 750, which did not allow the directory structure to be loaded beyond that point.  Because of that, it's not able to load the angular-modules.2513685c7e9bf04c4c187f640cffc720.js file.

An easy way to do this is to use FileZilla and navigate to somewhere you know is ok, maybe your /var/www/html/drupal/sites/default/ directory.  Then you can right-click on the files folder and choose File Attributes or File Permissions depending on which pane you use, and make sure permissions are set to 755.  Now choose Recurese into subdirectories and MAKE SURE you select Apply to directories only, you don't want to apply it to files.  Click OK and once it completes, try going to your system status page again and hopefully it works now!


A 'user' account is usually managed by the CMS. Their are integration tools that will set a user 'role' according to eg Member status or Groups, but that isn't what you are describing.
If you are using Drupal it could be that you had Drupal Rules that are designed to set a user record as Blocked based on some characteristic.
It may be possible to do similarly via CiviRules or an equivalent in WP.


Retrieve all phone info through PHP object-oriented API

If you look in CRM_Contact_BAO_Query, it looks like it takes the "location" return property into account when considering primary, but location is an array but using the api you'd have to somehow put it in the return string, so I'm not sure how you'd specify it.

If you're willing to stray a little from the official api, there is the less official CRM_Contact_BAO_Contact::retrieve(). So something like

$params = array('contact_id' => 4); // 4 is an example, use the desired contact id
$defaults = array();
$contact = CRM_Contact_BAO_Contact::retrieve($params, $defaults);

And then there's an array under $contact->phone


Could Civi or Drupal Rules be used to aggregate ratings for services?

You would do this with an extension. Check out the Summary Fields extension for inspiration. It's similar to your goal, just geared toward donations and event participation.


Unable to access administration links after upgrade to CiviCRM 4.6.10

This looks like a permission error.

Check that your user has sufficient permission to access these pages.  Ensure that you have the 'Administer CiviCRM' permission.

See the book for more details: Permissions and access control


Membership renewal not updating contributions correctly

We have resolved this issue and it was related to a deleted Organisation contact still being associated with a membership type.

You might be able to resolve it in the interface by re-saving each membership type, especially where an associated Organisation has been deleted / changed to the same name but a new ID.

I actually made the change in the database so this could be your second option. The 'civicrm_price_field' table stores the Organisation ID in the 'name' column, for some reason this hadn't got updated to the new Organisation ID.


Is it possible to trigger e-mail on specific CiviMember transition?

You could also use the CiviRules extension in combination with the Email API extension.
That enables you to add a trigger for a membership change, set the condition to status is ...... and then send a mail.

CiviRules can be found here: https://civicrm.org/extensions/civirules and the Email API here: https://civicrm.org/extensions/e-mail-api

Documentation on CiviRules is here: https://docs.civicrm.org/civirules/en/latest/


Easiest way to redirect an event registration confirmation to another page

Depending on the exact flow you need you may find this Fuzion extension offers what you need as it provides fields eg on an Event where you can specify the page to redirect to after submission.

Note it has a dependency on another Extension


There are multiple ways to do this. One is to use a .extra.tpl which has to have the same path and first part of the name as the original .tpl where you want it to get inserted. If you name it that way the tpl file will get picked up automatically. So in this case the original .tpl that controls that event screen is in templates/CRM/Event/Form/ManageEvent/EventInfo.tpl, so you want to make a file templates/CRM/Event/Form/ManageEvent/EventInfo.extra.tpl

Another way is like in your original question but then you're missing the line from the docs (https://docs.civicrm.org/dev/en/latest/hooks/hook_civicrm_buildForm/) that says

CRM_Core_Region::instance('page-body')->add(array(
  'template' => "{$templatePath}/testfield.tpl"
));

to tell it the path and name of your template file. Otherwise it doesn't know about your .tpl file.


Where is the exact path to the ConfigAndLog log *file*?

Found it!

The log file is named by CRM_Exception::generateLogFileName($prefix);  in civicrm/CRM/Core/Error.php.


Our understanding is:

Yes it does work =]
Using this feature compares everyone in the
smart group with everyone in the database (whether they are in the group or not). But this still dramatically reduces the number of comparisons.


"Could not find a valid session key." Unable to save any admin forms

As Coleman's answer suggests, the most common cause for this I've seen is a mismatch between the URLs CiviCRM is configured to use and the ones it actually uses.

Other places to check are -

your webserver configuration (eg a canonical URL redirect)
the CIVICRM_UF_BASEURL constant in civicrm.settings.php
Administer > System Settings > Resource urls as Coleman mentions

If your site DB has been migrated to your VM, you may also need to follow the steps in Moving an existing CiviCRM installation.

If these various settings don't match, CiviCRM doesn't recognise / receive its session identifiers, and the result is this confusing (and often reported) error message.


It is very likely not linked with civicrm, but an issue with the CMS that is around it (drupal, wordpress or Joomla). You should check on the support of your CMS.


What is Best Approach When integrating custom payment gateway to CiviCRM/Wordpress

Put your code in a native CiviCRM Extension! There are a number of Payment Processor Extensions already available - go here:

https://civicrm.org/extensions/home?title=&body_value=payment&field_extension_cms_tid=All&field_extension_ready_value=All&sort_by=title&sort_order=DESC

That will find most of them!


These can be controlled by CSS.  CSS is a generic skill for positioning elements on web pages, and CSS-specific questions are out of scope for this Stack Exchange, but there are many CSS tutorials on the Internet.  To add custom CSS to CiviCRM, you can upload a file and designate it via Administer menu > System Settings > Resource URLs and fill in the Custom CSS URL.  Your CMS should also have a way to include custom CSS, which is also an option.


How to create tokens for custom fields (participant, individual, organisation)

Davy, You can use CiviCRM api to fetch the custom fields of participants, contact and then use as smarty in your message template

Something like this you can include in invoice template

{crmAPI var='result' entity='ParticipantPayment' action='get' return="participant_id.contact_id.custom_3,participant_id.custom_4" contribution_id=$id}
{assign var="contactCustomField" value="participant_id.contact_id.custom_3"}
{assign var="ParticipantCustomField" value="participant_id.custom_4"}
{foreach from=$result.values item=participantpayment}

    Contact custom field
    {$participantpayment.$contactCustomField}

    Participant custom field
    {$participantpayment.$ParticipantCustomField}

{/foreach}

HTH

Pradeep


CiviMail - when Track Click Throughs is enabled, links result in a white screen with warnings

Richard's answer is correct.  While this seems unrelated, look at this answer for an explanation of what's happening here, except instead of a PDF header, it's redirect code.  You're getting an unrelated warning, and you can't send a warning and then send a redirect header.  In fact, I'm guessing that you can't currently generate PDFs right now either.  Fixing the "unrelated" warning will fix this problem, and the problem is that your webhost hasn't defined a timezone for PHP.

Note that Richard's answer is only one way to set a PHP setting, and doesn't work if your webhost disallows it.  I would take up with your webhost the best way to resolve this.  Another way that works in almost any environment is to use an ini_set command anywhere in your civicrm.settings.php file.


Error: No block-level parent found. Not good

That error is coming from dompdf, bundled with CiviCRM.

Here are a couple of references to that error outside of CiviCRM:

https://github.com/dompdf/dompdf/issues/902
https://github.com/barryvdh/laravel-dompdf/issues/389

The error happens for both 4.6 and 4.7, different php, so the trigger to the issue appears to be somewhat removed.

I fixed one case using the pdf setting (here: /civicrm/admin/setting/misc?reset=1). Using the wkhtmltopdf binary instead of the dompdf bundled with CiviCRM solved the issue.

I upgraded to the latest 4.7.27 version with an updated dompdf, and that did not solve the issue, but instead generated a new problem of running out of memory.

I did a bit more research and fixed the 4.6 version of the problem by removing whitespace in the html that is being fed into dompdf, in the file CRM/Utils/PDF/Utils.php, as per the suggestion by benabbotnz in the second issue linked above.


Multiple Roles in WordPress and CiviCRM access rights

I did testing today on this and from what I can tell, when setting a second user role in WP CiviCRM will read the security settings from both roles.  It is optimistic security in that if one of the user roles has 'administer CiviCRM' and the other does not, the user can administer CiviCRM.


The include/exclude was amalgamated into a single field, if you drop the recipients list down you should see something like this


Why Could My Payment Page Not Be Accepting Payment?

The final solution came from @Coleman and our developer resolved this by implementing a 1.9.1 branch of Stripe from GitHub alongside the dev Webform-civicrm ...

I would tick Colemans comments as the solution, but it won't let me.


Can distmaker be run off a specific branch

Check the settings in distmaker.conf, the ones at the end. They specify the git branch to pull from:

## Git branch/tag name
DM_REF_CORE=master
DM_REF_DRUPAL=7.x-${DM_REF_CORE}
DM_REF_DRUPAL6=6.x-${DM_REF_CORE}
DM_REF_JOOMLA=${DM_REF_CORE}
DM_REF_WORDPRESS=${DM_REF_CORE}
DM_REF_PACKAGES=${DM_REF_CORE}


Custom code that sets custom field value stopped working in 4.6

I don't believe that the document you referenced is current best practice - it should probably be rewritten!  Using the BAO rather than the API to set values greatly increases the chance that an upgrade will break someone's custom extension.

You can troubleshoot the BAO code.  There's certainly something that could be done to make it work (assuming the issue is the code, and not that the hook is no longer firing).  However, I'd suggest rewriting the BAO call as an API call instead.  Something like this (assuming the custom field is attached to a Contact entity, otherwise change appropriately):

$params = array(
  'version' => 3,
  'custom_133' => 'foo',
  'id' => 1202,
);
$result = civicrm_api('Contact', 'create', $params);


How to speed up CiviCRM 4.7 php execution time

This would appear to be a fairly general question of Linux server optimization, which is a complicated subject. The details of such optimization depend on a myriad of factors and settings and is, generally speaking, not the kind of thing that can be answered on a site like this--it depends as much upon the hardware as it does on the software and settings.

To optimize your server would require an analysis of your server and its details by a sysadmin with Ubuntu experience.


Sync name and address with drupal user page via civicrm webform

I think that the instructions in this blog about setting up a webform so that it adds a 'tag' to the contact, and Drupal Rules then use that contact to create a Drupal User for the contact (and log them in instantly if required) might be helpful to you.


Form to partially pay for Event Attendance

You could use Line Items. Create a Price Set with the Attendee Name(s)/Contribution Id(s) that you would like to have available for people to help pay. Donors can enter the amount they want to give toward specific attendee(s). You will have to manually apply these contributions to the attendee's event fee. We do this for tuition here https://radiusinternational.org/paytuition/

The other way to do this is to use Contribution Notes via Profiles. Then the donor would just write in the name that they want to have the money applied to. The downside here is the limited placement of Profiles on the contribution page. Neither of the 2 placement options really puts the Notes anywhere logical in relation to giving form. The Notes are not next to the contribution label so then you have to add a description telling donors where to find the Notes further down the page.


For a quick fix, change $memType['auto_renew'] to ($memType['auto_renew'] ?? 0) for the first one, and
change $membershiptTypeValue['auto_renew'] to !empty($membershiptTypeValue['auto_renew']) for the second one.


Clearing cache may be the solution? If yes you can turn on 'Clean-up Temporary Data and Files' schedule job with below parameter.
dbCache=1
memCache=1


how can I set the default value for the field "priority" in the actions form?

Bernard, you can do this by developing a little extension and using the buildForm hook to set the default value of the priority. In the buildForm hook you can do something like this:

if ($form->_action == CRM_Core_Action::ADD) {
  try {
    $normaal = (int) civicrm_api3('OptionValue', 'getvalue', [
       'return' => "value",
       'option_group_id' => "priority",
       'name' => "Normal",
    ]);
    $defaults['priority_id'] = $normaal;
    $form->setDefaults($defaults);
  }
  catch (CiviCRM_API3_Exception $ex) {
    Civi::log()->warning(E::ts('Onverwachte fout: geen prioriteit met naam Normal gevonden in ') . __METHOD__ . E::ts(', foutmelding van API OptionValue getvalue: ') . $ex->getMessage());

}
}

More information on the buildForm can be found here: https://docs.civicrm.org/dev/en/latest/hooks/hook_civicrm_buildForm/

Does this make sense?


How to add case fields to activity report?

Search - Custom Searches - Activity Search supports case id at least already, but the display template explicitly doesn't show it, although it uses it to create links.

Doesn't look like it would be difficult to modify Activity Search. You might also be able to modify the Activity CiviReport similarly. For Activity Search, it would be something like:

1) In CRM/Contact/Form/Search/Custom/ActivitySearch.php:
(a) Near the top where it defines the columns, add your columns labels as desired.
(b) In function all(), add the case-related fields to the select definition.
(c) In function from(), add a left join on civicrm_case.

2) In templates/CRM/Contact/Form/Search/Custom/ActivitySearch.tpl, display your new columns as desired.


Mandatory volunteer contribution to maintain membership status. How would you implement?

I would probably use the CiviRules extension for this (to be found here: https://civicrm.org/extensions/civirules with documentation here: https://docs.civicrm.org/civirules/en/latest/ ) and then:

set up an activity for uploading the document
set up a CiviRule with trigger new activity, condition on activity type and status (and possibly attachment) and action tag the contact as an active member.


Can I access/create InnoDB tables in the database

CiviCRM requires InnoDB support. It sounds like your MySQL server is not currently configured to provide this. If you have control over your MySQL server you should be able to enable this. If you don’t have control talk to your hosting provider to get it enabled.

Best practice is to have a separate database for CiviCRM.


Changing the content of the group that I have created

To start with take a look at the user guide: Managing Groups

If that doesn't help, perhaps you could edit your question to provide a bit more information (and a screenshot if possible).


Sending a CiviContribute form that's not coming from a standard donation page

There IS a viable approach to this, but I don't think it's quite what you're imagining.  Sending the form fields to CiviCRM isn't going to load the CiviContributionPage session object, where much of the data is stored.

Approaches you could take include:

Use template overrides to change the template.  It sounds like you've explored this approach.
Build the form using Webform-CiviCRM integration, which gives you much greater control over the look and feel.  This requires Drupal.
Modify the existing template's HTML after it's rendered using hook_civicrm_alterContent.
If none of these will satisfy, instead of submitting all the same form elements, instead use the Contribution API to submit your values.

Check out the Simple Donate extension as an example of folks who took the last approach.  They're using AngularJS, so the other options weren't on the table for them.


If you're using Drupal + CiviCRM you should check out the "Shoreditch" theme for CiviCRM which changes the CiviCRM UI to use bootstrap based styling.

Note: Shoreditch is in Alpha state and undergoing active development, we are using this in production and aside from a few minor issues it's working very well.

If you're not using Drupal you would want to look at overriding the CSS in your CMS/site theme. You can get the button classes etc using the "Web Inspector" in any major web browser - these are not directly documented at present.


Support for crypto-currencies like Bitcoin

You can use the BitPay payment processor.


Config file issue / civicrm 4.6.8 / could not load the settings file

I think CiviCRM expects to find the CiviCRM module in /sites/all/modules/civicrm, as per: http://wiki.civicrm.org/confluence/display/CRMDOC/Installing+CiviCRM+for+Drupal+7

This affects the loading of the settings file, which is expected to be in a directory relative to this. We encounter the same issue and have a patch for it which we will submit back once it is a more generic fix.


I have a list of contacts exported in an Excel. Now I want to adding the same activity to all of them

Welcome to SE Emma:
Make sure that you have contact Id in the exported list. You need this to match accurately to the contact. You then add columns to the spreadsheet for your information for the activities. You probably want to export a trial activity to see what you need and make sure you include all the mandatory fields. You can copy the information to all the contacts. Save as a CSV file. The go to Contacts >> Import Activities and follow the wizard.
I strongly recommend some testing, either on a test site of with some dummy contacts that you can delete afterwards. You will need a bit of trial and error to understand the detail. Set the source field to something specific so that you can identify these activities afterwards in case of any problem.
https://docs.civicrm.org/user/en/latest/common-workflows/importing-data-into-civicrm/#import-activities in the documentation will help.


Could be that the setting is being cached - I've seen this happen on previous versions. Do you have memcached set up? You can normally wait for memcached to refresh, or manually restart it via the command line - 'service memcached restart', on ours.


Exporting 'all' data is not a simple process. You will need to eg

Find all Contacts: export including all Custom Fields using for Contacts
Find all Contribution: export including all Custom Fields using for Cont
Find all Events: export including all Custom Fields using for Cont


Cannot Find Solution For “Membership status cannot be calculated for ” Renewal Error!

The error message shows future start and join dates.  Civi is attempting to the determine the status as of the time of import, but none of the default status rules cover that scenario hence the error message.  'New' only applies from the 'member since' / 'join date' so is not applicable.

One option is to change your join dates to be the current time so that the memberships show as 'New'.  Your memberships would then be regarded as 'current' despite being before the membership start date.

Alternatively, you could create a 'future' status with start event of 'start date' with eg a '-1 month' adjustment, and an end date of 'start date'.  That should let you import the membership which will be inactive until the start date is reached.  (Not tested extensively but seems to work on a quick test.)


Webform-civiCRM equivalent for Wordpress?

CiviCRM has a built in form builder which are called Profiles. It's not as powerful as Webform integration, but may fit your needs.

If not, the equivalent for WordPress would be Caldera Forms with CiviCRM integration.


How to add a column in a membership report for a secondary email?

Which CMS are you using? If Drupal, then one approach might be to use Views instead of CiviReport. See Selecting location type or multiple email/phone fields in Reports.


How to change mailing form and set the default value for url_tracking to false?

Disclaimer: I'm not an angularjs expert

Again this is a bit of a hack, we are intercepting a built-in CiviCRM angular directive and extending to add behaviour.

Create a custom extensions or use an existing one and implement hook_civicrm_angularModules:

function myextension_civicrm_angularModules(&$angularModules){
        $angularModules['myModule'] = array(
                'ext' => 'myextension',
                'js' => array('js/myModule.js'),
        );
}

In your js file:

// js/myModule.js

(function(angular, $, _){
  // Your module
  angular.module('myModule', []);

  // the hack
  angular.module('crmMailing').config(function($provide){

    // crmMailingBlockTracking directive
    $provide.decorator('crmMailingBlockTrackingDirective', function($delegate){
        var directive = $delegate[0];

        // Original link function
        var link = directive.link;

        // compile function, returns new link function
        directive.compile = function(){
            return function(scope, element, attrs){
                // get old link functionality
                link.apply(this, arguments);

                // new functionality here
                scope.$parent.$watch(attrs.crmMailing, function(){
                    var createdDate = new Date(scope.mailing.created_date).getTime()/1000;
                    var nowDate = new Date().getTime()/1000;

                    if((nowDate - createdDate) < 60){
                        scope.mailing.url_tracking = '0';
                        CRM.alert('Tracking Disabled');
                    }

                });
            };
        };

        return $delegate;
    });
  });
})(angular, CRM.$, CRM._);

The angular Mailing app uses a kind of boilerplate service, crmMailingSimpleDirective for constructing directives see here more info

The above snippet will do the same as my other answer without relying on setTimeout().

Hope that helps.


Wordpress shortcodes do not display 'insert' button

Probably a typical WP plugin/theme conflict. Try to disable all your plugins except CiviRM and see if you can see the button.  If you can see it, then turn them on in small groups, once you find a group, then do those one-by-one to narrow down which one is causing the problem. If you still cannot see it, turn all your plugins back on and change your theme to one of the WP twenty-themes and see if you can see it.

If it is the theme, you can make your shortcode edits and then switch back to the theme you normally use.


What's the best way to fix this Drush clear cache bug?

I'm going to add an answer (don't want to bury this in the comments) that for a 4.7.17 - with two separate databases - drupal and civicrm; this is NOT an issue;

My view with custom data before and after and in-between:

[karin@louise bin]$ sudo -u apache drush civicrm-upgrade-db
Starting with v4.7.16 -> v4.7.17 upgrade ..

Specifically trying to just drush cc all:

[karin@louise bin]$ sudo -u apache drush cc all

is fine - the way they were on 4.7.16 - with CiviCRM Custom field listed under Fields


CiviCRM does not do anything special to either keep your data secure or insecure. It stores data in a MySQL database like lots of other applications.

The security is more in the way you configure your database server and the way CiviCRM (which is a web application and not a desktop application) can be accessed from outside.

A little more information in the configuration we tend to advise as the most secure (but also as usual most cumbersome and expensive) can be found in this CiviCon session by my community mate Björn Endres: https://www.youtube.com/watch?v=JKNR0bDjB9k


Cannot properly configure PayPal Sandbox

I think you've found a bug. I just confirmed that if on 4.7.8 - you have - under Processor Details for Test Payments:

And then hit Save = you end up with [for the very same Processor Details for Test Payments]:

Go ahead and file this on JIRA: http://issues.civicrm.org - not sure why those settings are not retained. They certainly used to be completely functional.

In the mean time I'd recommend run some Live Tests - with real easy to spot $ ($1.11, $2.22 etc).


How can I export Contact Contribution and event data?

Typically, bots contacts/contributions will follow some standard method of populating information - e.g. a recent bot attack on one of our clients created contacts with "%phone_short%" listed as their main phone number, so using search builder in the GUI allowed me to identify all associated spam contacts and delete them permanently.

If these spam contacts are associated with contributions, you'll need to delete the contributions before you are able to permanently delete the contacts - you can isolate those contributions by creating a group from the search builder results, then use Contributions > Find Contributions to search for and delete all contributions made by contacts in your spam group.

Depending on your payment processor, you may have contributions with a status of "Failed" - if so, you can search for all failed contributions (I would do this search using Search > Advanced Search with Display Results as "Contributions"). Review the list to see if you get any legitimately failed contributions associated with legitimate contacts - if you do, narrow the results further by entering a received date and time range since spam contributions are typically created in rapid succession. Once you've isolated the spam contributions, run the same same search, only this time with Display Results as "Contacts", then create a group of these contacts - this will allow you to isolate the spam contacts for permanent deletion after you have deleted the contributions.

With the above tips, you may be able to stick with the existing database and avoid the need to transfer recurring contributions, but if not, I would suggest creating new recurring contributions since migrating existing ones could prove to be very time consuming and complicated given the many different tables in which contribution information is stored, e.g.:

Records in civicrm_contribution_recur are associated with a specific civicrm_contact.id
Records in civicrm_contribution are associated with a specific civicrm_contribution_recur.id
Records in civicrm_contribution are associated with several other tables, many of which are interconnected with IDs from yet other tables - e.g.:

3.1. civicrm_financial_type > civicrm_financial_acount > civicrm_entity_financial_acount

3.2. civicrm_contribution.id > civicrm_line_item.id

3.3. civicrm_line_item.id > civicrm_financial_item.id

3.4. civicrm_entity_financial_trxn > civicrm_contribution > civicrm_financial_item.id > civicrm_financial_trxn

3.5. civicrm_contribution_id > civicrm_contribution_page.id

3.6. civicrm_contribution_id > civicrm_event.id > civicrm_participant.id > civicrm_participant_payment.id

Keep in mind, the above may not be an exhaustive list, and you would most definitely want to do this directly in the database so that you can preserve all of the existing IDs.

Hope this helps,
Tamar


Contribution Amount via Webform Conditionals (Error)

Seems to be a Drupal problem :

Even if you work in french, you must define every numeric Webform fields in english format (coma thousand separator, period decimal separator).

Contribution amount is an example, but the same problem exists also for any numeric Webform "new component".


Paypal payments - Pending (Incomplete Transaction)

Issue had been filed https://issues.civicrm.org/jira/browse/CRM-18483 and this is my fix https://github.com/civicrm/civicrm-core/pull/8270/files

As earlier in case of drupal site, CRM_Utils_System::loadBootStrap() eventually calls CRM_Utils_System_Drupal::loadBootStrap() and fails at https://github.com/civicrm/civicrm-core/blob/master/CRM/Utils/System/Drupal.php#L545 because we are not passing any drupal userID as $uid parameter in loadBootStrap() fn and got halt at the same point. Unlike in other CMS (wordpress, joomla) the underlying bootstrap code is not too reliant on user id and didn't break.

As per my fix CRM_Utils_System::loadBootStrap($params, TRUE, FALSE) where 2nd parameter stands for $loadUser = TRUE and third $throwError = FALSE so if there is no corresponding CMS userID assigned against civiCRM contactID then it won't break rather it will return false and will complete the workflow just what happen when we call REST url https://github.com/civicrm/civicrm-core/blob/master/CRM/Utils/REST.php#L711.

The reason behind calling loadBootstrap function lies in https://issues.civicrm.org/jira/browse/CRM-18245

Can anyone please verify my patch if it works for ya!!

Thanks


Error when printing PDF letter or mailing label from search results list

With your first error, the issue is with TCPDF, the standard PDF library that CiviCRM ships with.  TCPDF isn't very efficient, and takes a lot of memory when you try to generate a large PDF.  Unfortunately, the other two PDF options have issues: DomPDF doesn't support all of the features TCPDF does.  wkhtmltopdf is great, but is written in C, which means that unlike PHP applications, you need a version specific to your environment.  If you install wkhtmltopdf on your server though, you can tell CiviCRM to use that instead.  I think this is the best solution for you.

You can either a) install wkhtmltopdf and tell CiviCRM to find it (Administer menu > System Settings > Misc), or b) increase the amount of memory available to PHP in your php.ini.  I recommend the first option!


What are the different cache clearing mechanisms relevant when developing?

For the first example, you need to 1. clear the compiled Smarty templates cache. In the second case you need to 2. rebuild the menu system using your xml file. 3. There are some db cache tables you sometimes need to clear out using mysql or a link in the UI. 4. Caching in the CMS can also affect CiviCRM pages.

a) One way to do this is to go to Admin > System Settings > Cleanup Caches and Update Paths (civicrm/admin/setting/updateConfigBackend?reset=1), then click Save.

b) A more convenient method during development is to be able to append arguments to the url you are debugging to have the cleanup done automatically. Go to Administer > System Settings > Debugging and Error Handling.

Click to Enable Debugging. At this point you can add a key-value pair to your URLs to clear the compiled Smarty file cache under templates_c, and also if you want the upload file directory:
Directory Cleanup -Empties template cache and/or temporary upload file folders.
To empty template cache (civicrm/templates_c folder), add &directoryCleanup=1
To remove temporary upload files (civicrm/upload folder), add &directoryCleanup=2
To cleanup both, add &directoryCleanup=3

You might also want reset the session, since that caches various values:
Session Reset - Resets all values in your client session. To trigger, add &sessionReset=2

a) Enter the appropriate one of the following urls to rebuild the menu system, which also clears various caches:

Drupal sites: http:///index.php?q=civicrm/menu/rebuild&reset=1

Joomla 1.5 sites: http:///administrator/index2.php?option=com_civicrm&task=civicrm/menu/rebuild&reset=1

Joomla 1.6 sites: http:///administrator/index.php?option=com_civicrm&task=civicrm/menu/rebuild&reset=1

Wordpress sites: http:///wp-admin/admin.php?page=CiviCRM&q=civicrm/menu/rebuild&reset=1

This action also resets the IDS (intrusion detection system) file.

b) As explained in @Tim Otten's answer, this can be done conveniently from the commandline as well, using a better named wrapper for the same actions:

In Civi-Drupal, the analogous command is:
$ drush cvapi system.flush

In Civi-Wordpress, it's:
$ wp civicrm api system.flush .

Or alternatively, in Firebug's CLI: CRM.api3('system','flush'))

There are other sorts of caches that may occasionally need to be reset.
a) At Contacts > Manage Groups, it is possible to reset the caches for contacts that are in Smart Groups by clicking near the top left of the page the Update Smart Group Counts link.

b) More generally, depending on the area of CiviCRM you are working on you may need to truncate any of the CiviCRM tables that have cache in their name:

mysql> show tables like '%cache%';
+-------------------------------------+
| Tables_in_clubcdn_civ_new (%cache%) |
+-------------------------------------+
| civicrm_acl_cache                   |
| civicrm_acl_contact_cache           |
| civicrm_cache                       |
| civicrm_group_contact_cache         |
| civicrm_prevnext_cache              |
+-------------------------------------+
5 rows in set (0.00 sec)

Use TRUNCATE civicrm_acl_cache; or similar queries on the command line or in phpMyAdmin to clear these tables.

CMSes have their own caches that can often cause grief when developing in CiviCRM. For example, in Drupal 7, go to Configuration > and in Development set of modules click on Performance. Click to purge the caches. You might also want to disable caching of pages for anonymous users, caching of blocks, and / or aggregrating and compressing css and javascript files.


There are limitations in CiviCRM profiles mixing Contact and Activity fields (survey responses are stored as activities).  If your profiles work as you expect during testing, there won't be any hidden side effects, but having two profiles on a survey is meant to allow you to ask for both contact-specific and survey-specific information on a single survey.


how to get participant id on registration thank-you page

the following did the trick - works in this situation well enough as we only allow registering one participant:

{$participantIDs.0}

The above grabs the participant ID of the first (and only in our case) participant


How to get a CiviRule to fill in a custom field upon a webform submission?

You will probably need to develop an action that can take that ID from the data coming into the action and set it. There is a standard action to update a custom field (Set Custom Field) but it will ask for a value and will not be able to pick up the value from the input just like that.
Developing your own action is documented here: https://docs.civicrm.org/civirules/en/latest/create-your-own-action/
An alternative might be to use the Form Processor extension, and pick up the ID from the incoming data like that. Check the documentation here: https://docs.civicrm.org/formprocessor/en/latest/


Uncaught ReferenceError: CRM is not defined whilst open the "directories" page on the admin page

It sounds like your Resource URLs and directories need to be updated.

Since you're having trouble opening the directory page, try using an override in civicrm.settings.php.


Membership contribution page leads to "Not found" error

Most likely, if the test drive page is working and the live page is failing, your CiviCRM base page isn't set up yet.  On Civi 4.6, this is supposed to happen automatically, but either a) you upgraded, or b) I've seen plugins that interfere with the alias naming process.

In CiviCRM, go to Administer menu > System Settings > CMS Database Integration.  Note the "Wordpress Base Page" setting.  Next, in Wordpress, go to Pages > All Pages.  Make sure that page exists.

Last time I had a plugin interfere with the naming process, Civi had created a base page called "CiviCRM", but I had to go in and manually edit the permalink to match the base page setting.

Hopefully this clears up your issue!


Mailchimp extension limits to most recent 25 lists

The first thing I'd do is upgrade the extension from 1.6 to 1.8 to see if this issue has already been addressed. If it still remains, then I would create an issue at https://github.com/veda-consulting/uk.co.vedaconsulting.mailchimp/issues


Membership structure with 2 renewal cycles?

This is a strong point of CiviCRM - there's no system out there that supports all of the MANY different quirky membership structures that exist in the world - but CiviCRM makes it easy to write an extension to implement your particular structure.  That said, it DOES require that you write custom code, or hire someone who does.  You can use civix to create a CiviCRM extension.  Most times, you can use hook_civicrm_post, in some special cases you might want to use hook_civicrm_alterCalculatedMembershipStatus.


You could use Scheduled Reminders (accessed via the Admin menu) to link an email reminder to an activity that you set up in the contact's record.

Or you could set up CiviCase to create a workflow if you want a series of connected actions/emails


Social Media: In receipts, {$url} incorrect from SocialNetwork.tpl, SEF URL, missing buttons

@BruceW

I have created an issue and included a patch.

look at here. Hopefully this resolve it.

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

Regards
Kajan


MySQL errors when transferring database from one server to another

Try doing the migration after emptying (dropping all the tables) the DB for the clean install of CiviCRM (so that there is no data or structure in the DB for CiviCRM). I have not had any issues doing an import of my CiviCRM DB into a fresh DB.

I do a full DB dump and don't bother ignoring any tables. Before exporting your CiviCRM DB clean all the caches (drush cc civicrm). Then simply do a mysqldump -u user -p mycivicb > civicrm_db.sql

Clear the cache after import (civicrm and drupal). Initially you will get a bunch of errors when loading the page. You'll need to setup your directories and resource urls again. Clear cache whenever you have problems after changing a setting...

Let me know if this works for you. It is a pretty quick process to see if it does...

Note: I usually do a full dump of the drupal and civicrm DBs and import those.


Failed Upgrade 4.6.4 to 4.6.5 Joomla 2.5 & 3.4

Civi 4.6.5 adds a new table "civicrm_cxn".  Your upgrade is failing because it's trying to add this table, but it already exists.

Usually this happens when you attempt an upgrade which didn't complete for whatever reason, then attempt a second upgrade without doing a DROP DATABASE and CREATE DATABASE command.  Even though you may have restored a backup, newly-created tables will still be present.

The most "correct" way to handle this is to do a DROP DATABASE command for your Civi database, then CREATE DATABASE and load in your backup.  That said, I suspect you can get away with blowing away the new table and running the upgrade again; try DROP TABLE civicrm_cxn; in MySQL and see if the upgrade works.  Make a backup first, of course!


Is CiviCRM compatible with the CMS system Umbraco?

Umbraco won't work directly with civicrm (they are written in different programming languages, ASP vs. PHP)

What you can do easily is to host your civicrm with one of the supported CMS (drupal, wordpress or joomla) into a subdomain (eg. members.example.org) and switch the main site to umbraco (www.example.org)

the civi site will not use any CMS feature beside handing the login/password, but might want to customise a bit the layout so it looks more or less like your main website (eg set the colors, put your logo), so you can use some civi pages (like donation, membership registration, event registration...) into that sub site without confusing too much your visitors, and add a link to the civi subsite when needed in your main site.

It's not as transparent and nice as having everything on the same site, but plenty of organisations do have different sites for the CRM and the main site, and it seems to work for them


Update: BuildKit currently cannot build Drupal 8 sites because of the composer requirement.

To build a Drupal 8 Clean site with CiviBuild you would use the command:

Note: CiviBuild cannot currently build Drupal 8 sites with the demo data.

civibuild create d8-master or civibuild create <NAME> --type drupal8-clean

Note: This will create a Civi 'master' site using the latest bleeding edge CiviCRM code. To build using a specific CiviCRM version use --civi-ver e.g. --civi-ver 5.6.0

The full command to create a Drupal 8, CiviCRM 5.6.0 without demo data and named d8c560 with the URL http://d8c560.test is:

civibuild create d8c560 --type drupal8-clean --civi-ver 5.6.0 --url http://d8c560.test

The build you refer to dcase or ==type drupal-case builds a Drupal 7 site for testing the CiviCase v5 extension.

CiviBuild Docs

The CiviBuild documentation is worth reading:
https://docs.civicrm.org/dev/en/latest/tools/civibuild/#build-types

CiviCase v5

Information on CiviCase v5 (it's awesome!) and the associated dcase build is here:
https://github.com/civicrm/org.civicrm.civicase


CiviMail mailing sometimes has 0 intended recipients

Check your user permissions. All too often something that works for me via the GUI, fails in the automation.


issue with Joomla and CiviCRM Dashboard as a Menu Item

There are actually several dashboards in CiviCRM. The two you may be confusing are

the "user dashboard" which is visible at http://example.org/index.php/?option=com_civicrm&task=civicrm/user&reset=1
the main "backend" dashboard at http://example.org/administrator/index.php?option=com_civicrm&task=civicrm/dashboard

Both require the user to be logged in or the page will not work.
Note that the url's are constructed differently, and any page you want available to normal (non super) users should point to /index.php and not /administrator.


Problem with loading (jqery / css) CiviCRM files in Joomla 3.4.8

You need to ensure that your paths are set correctly. In the menu go to Administer > System Settings > Resource URLs and correct the CiviCRM Resource URL. (if the menu isn't working, type directly the path civicrm/admin/setting/url&reset=1 to get there) In 4.7 in most cases it should simply be [civicrm.root]/.

If you're unclear what the correct url should be, try doing "view source" in your browser and check what urls are being prepended to Civi's js/css files - what about it is incorrect? That should give a hint of what needs fixing.


How to set a permission using drupal ACL?

There is a example and information on the hook here.  Throw the hook into your custom module and it should work.  The below example includes a version check that you likely won't need.

function civimonitor_civicrm_permission(&$permissions) {
  $version = CRM_Utils_System::version();
  if (version_compare($version, '4.6.1') >= 0) {
    $permissions += array(
      'access CiviMonitor' => array(
        ts('Access CiviMonitor', array('domain' => 'com.aghstrategies.civimonitor')),
        ts('Grants the necessary API permissions for a monitoring user without Administer CiviCRM', array('domain' => 'com.aghstrategies.civimonitor')),
      ),
    );
  }
  else {
    $permissions += array(
      'access CiviMonitor' => ts('Access CiviMonitor', array('domain' => 'com.aghstrategies.civimonitor')),
    );
  }
}


Two settings that can cause this issue are:

The link to the button image is missing in the payment processor settings. The setting is called "Button URL" and it should normally point to https://www.paypal.com/en_US/i/btn/btn_xpressCheckout.gif.
The page is configured for membership signups and has the option turned on to allow "Separate Membership Payment" in the contribution page's membership tab. This setting is currently incompatible with Paypal Express. In some versions of CiviCRM this setting causes the Paypal Express button to be hidden. In others an explicit error is given when clicking on the button. See: https://issues.civicrm.org/jira/browse/CRM-8221


Memberships - Renewals and grace periods

You could use the CiviDiscount module and tie various discounts to membership status rules.
You would need to create a discount code for each membership type and status and then in the "Automatic discounts" section at the bottom of the settings for the discount code, choose the appropriate membership status for that code.


Mosaico template editing not loading consistently

After using Mosaico from some time, I've noted that you need to make sure you've correctly installed this extension as per the steps mentioned in the doc, i.e,

Doc mentions you need to install shoreditch theme, flexmailer and then Mosaico in order.
Make sure you've downloaded all the dependencies it needs to be included by executing ./bin/setup.sh -D from your terminal.

After these steps, it worked fine for me on around 4-5 sites.


It sounds like you have selected one of the columns to be "Master Address Belongs To". If the record that column references doesn't exist yet you will get this error. Also FYI it looks like that column needs to be an integer.


Lookup field for parliamentary constituency

For interest's sake in the end I went with a solution that sat outside civicrm (for now). I used PHP to look up and return the MP name from a sql table which I created by uploading data from http://www.list-logic.co.uk/lists/parliamentary-constituencies/list-of-uk-constituencies.html

The list of people who submitted the form are being manually uploaded into civicrm daily.


How to setup CiviCRM to proper send authenticated (DKIM) emails?

Is CiviCRM using the mailbox i configured for sending out the email if the email address is the same, or do i need to change anything else

For outbound mail, CiviCRM uses whatever you have configured at Administer > System Settings > Outbound Email (SMTP/Sendmail). How do you have that configured?

From a quick look at the source code of the email you linked to, my best guess is that you have it set up with the mail() option, which is likely not going to handle dkim (though that does depend on your webserver set up). If you have SMTP details for tickets@yogamela.org you could choose SMTP option there, add your details and then your SMTP server will then take care of DKIM.

Choosing SMTP and adding your details is likely the simplest route if you want to just get it working. That said, there are a few different ways that outbound mail can be configured so it is hard to give the best advice without knowing a bit more about your set up. Answers to questions like:

Who provides your email?
Do you want to email from multiple addresses or just tickets@yogamela.org?

would help provide a better answer.

Depending on your email provider, the SMTP details you have may allow you to send email from any email that ends @yogamela.org. Otherwise, if you want send email from lots of different email addresses ending @yogamela.org, you might want to look at a third party provider like Sparkpost or Sendgrid.

UPDATE:

That error message you pasted is a a bit wrong. The text does not match with the link. The text references FROM Email Addresses (civicrm/admin/options/from_email_address?reset=1) but the link you shared points at /civicrm/admin/domain?action=update&reset=1. What do you have set in /civicrm/admin/domain? (see picture below). Try adding tickets@yogamela.org there.

I suspect it will then work.


Manually started scheduled email not completing

Do you have a cron job configured for CiviCRM that runs periodically?

Can you check CiviCRM and/or Apache Error log for any errors?

Scheduled Mailing jobs are executed in batches of 1000 or the batch limit specified under Administer >> CiviMail >> Mailer Settings.

If the recent Schedule job log says 'Started' then the last job was terminated because of error. This might be for several reasons like php time out, memory allocation, mysql connection time out, DB errors etc. To trace the problem you will need to check CiviCRM and Apache logs to see if any errors were recorded.

To complete the job you can re run the Send Scheduled Mailings manually if your system is not configured to do it automatically.


I think this is nothing to do with the checksum (other than that causes the right contact to load) but is an issue with webform-civicrm overwriting existing info in the membership table.

Pretty sure this is an issue with the webform_civicrm code. Have raised here


Approach to dynamically filled custom field using member since date

How immediately do you need this field's value to be set? If it can be delayed, I'd probably do this as a cron script that loops through all that aren't set yet and then sets its value.

I'm assuming also you're familiar with the "View only" checkbox at the bottom of the custom field definition form - that would be how I'd create this field.


How can I customise the display of an event's associated images?

This is really a CSS question, but you can slice it several ways. All solutions will require a bit of understanding or expertise.

CSS only: You could add CSS to a custom site theme which sets the event background based on the event ID. (For example, the event info page contains a region with class .crm-event-id-3 you could target.) This may be less flexible if you don't want to make image changes in your CSS, but it is fine if you can set-and-forget, or don't mind changing text files. This is what I'd typically do - I find CSS an effective tool.
Smarty, CSS via Custom TPL: Depending on your needs, you might find you want to use Event information to set CSS inline (eg, if you wanted to be able to use CiviCRM to change images via the web UI). To achieve this you might provide custom templates for CiviCRM. Documentation is at Customize Built-in, Profile, Contribution and Event Registration Screens and Page Templates. Note that the first page there recommends the next method! I would avoid this because working with Smarty makes me sad, and for backgrounds you'll end up working in CSS anyway.
Smarty, CSS via Extension: The docs above recommend using an extension to customise the Smarty templates or inject custom CSS. This is the "new" means to achieve the above, but may have a higher barrier to entry. It is better to maintain. I'd do this if, for example, client request was "make it possible for staff to change background per event". I'd still avoid Smarty and just inject CSS to the page.

Three options there! How you deliver this really depends on what your design requirements are, but I hope the pointers are some help.


jquery datepicker missing (wordpress) after updating to 5.26 from 4.6.33?

Never mind - all working now.
I modified the CiviCRM Resource URL from the default that was in there of [civicrm.root]
to be the full URL http://example.com/wp-content/plugins/civicrm/civicrm and the choice of 'Choose Date Range' showed up in the drop down giving the functionality needed.
Or it is entirely possible that Choose Date Range was there the whole time and I just missed it.  Been such a slog of updating this ancient site that that is entirely possible.
Strangely, that jquery error is still showing up in the console, though.  But I will look at that tomorrow.


Yes, CiviCRM can do all of these things.  It is also a very flexible system with a number of extensions that provide additional functionality that you may need in future.

To get a better idea of what CiviCRM can do I would suggest that you read the user guide and try the one of the demo sites.


Upgrading to 4.7.7 gives Error "The website encountered an unexpected error. Please try again later."

This looks like step 11 failed.  What happens when you visit:
* Point your web browser to the following URL (you should already be logged in to Drupal with administrator-level permissions):

*- If "clean URLs" are enabled
http://<your_drupal_home>/civicrm/upgrade?reset=1

*- If "clean URLs" are NOT enabled
http://<your_drupal_home>/?q=civicrm/upgrade&reset=1

Do you see errors after this?

(Sorry, I mixed posts in my head and missed the Drupal piece.  First version was for WordPress.)


What is the default unsupervised dedupe rule you have? it should probably have first+last+email if you want to be on the safe side and avoid incorrect merging


Civi Event scheduled reminders error - missing date causes DB syntax error

Problem a result of a reminder that has no sending date.  (see attached image) This error results in a syntax error that prevents all subsequent reminders from being sent.  Solution is to add date or disable reminder with no date.   (ConfigAndLog error messages show the ID for the reminder that has the error.)

Will report as a bug with recommendation that reminder cannot be saved without a date.


Force membership sign-ups to register as user

When you create a Profile, in the Advanced Settings (at least for Drupal) there is an option to 'require user account creation'. So if you have this selected in the Profile, and then set that Profile to show on your Membership page then I would expect anyone completing the form to create a user account.


How to change WordPress permalink settings without killing CiviCRM

My current permalink settings are just that (though it might have been set to that before we installed civi but I do not think so).
I do not think it would brake the site since civicrm is a page and not a post but I may be wrong.


Error Linking Drupal user to edit their Civi CRM profile

To expose a profile to Drupal Users/Members for updating in Drupal - you have a number of options - including out of the box - the Profile Name and Address on /user - when your Members have a Drupal account and are logged in:

hit Hello 'Name' to get to /user
Name and Address is a CiviCRM Profile -> hit Edit to update it

Name and Address profile appears here because in it's Profile setting is has View/Edit Drupal User Account checked.


Could not create database trigger (AWS, RDS)

You will need to grant access for mysql user to create triggers. You can run below command in mysql using super privilege user(root)

GRANT TRIGGER ON <db_name>.* TO '<db_user>'@'localhost';

HTH

Pradeep


Problem with Event Calendar extension after upgrade to 4.7.3

https://github.com/osseed/com.osseed.eventcalendar/issues/21

The author has said he'll look into updating the extension to match 4.7 - clearly it's popular! It might be worth contacting him, particularly if you're able to help contribute to the next release.


I found the problem.  The permissions were not set correctly for recurring contributions on authorizeIPN.php. So when the silent post was running it was getting a 404. I did not see this in the log. For others out there make sure authorizeIPN.php is retrievable.


How can I hide specific tabs in member view regardless of viewer permissions?

The $tabs variable passed into the tabs hook is an array of arrays, with unique identifying values in the "id" column of each entry.  I found a function to scan all elements of the array to check the "id" column for a given value.  This returns the correct $tabs index to use with the unset() function.

function searchForId($id, $array) {
  foreach ($array as $key => $val) {
    if ($val['id'] === $id) {
      return $key;
    }
  }
  return null;
}

Example usage:

$duestab = searchForId('custom_15', $tabs); //tab holding dues
unset( $tabs[$duestab] );

If my server used PHP 5.5 or greater, I could have skipped the searchForId function and used a one-liner:

$duestab = array_search('custom_15', array_column($tabs, 'id'));
unset( $tabs[$duestab] );


I want Theme developer to have admin access to WP but not civicrm, is that possible?

I wouldn't hire an IT person who thinks it's ok to do  development on a live site. You always do development and testing on a COPY of the site. See also https://codex.wordpress.org/Running_a_Development_Copy_of_WordPress

One of many reasons is that the dev copy can have fake or anonymized data in it - I assume your concern is the devs seeing the real data.


Update DB Query fails sporadically when saving contact; nativecode=1205 ** Lock wait timeout exceeded

We have seen this on large instances. Things to do:

upgrade to 5.13.5 (this also puts you close to the next ESR - a paid for service - which will be released on Nov20).

There have been performance improvements - this will help.

cull your smart groups; do you really still need all of them.
reschedule the cron job -> ask yourself how up to date your smart groups need to be.


Add/Update form actions(context?) detection from hook_buildForm

This should be it:

    $mode = $form->getVar('_mode');
    // civicrm mumbo jumbo below targets EDIT form mode
    if (in_array($mode, array(CRM_Profile_Form::MODE_EDIT)))
    {}

But it doesn't work for all forms, so, for example, for Relationship add/edit form, we should check if $form->getVar('_relationshipId')  isset/empty :
thus no Relationship has been created  yet: we are in Relationship ADD "mode".


Civimail wont send (but Civi email will)

well the answer turned out to be using a profile that included the "is deceased" field.  Somehow that was setting that field to Null and Civimail didnt like that.

Setting the "is deceased" field to 0 fixed it up and all good now


I think you are looking for the API getfields action? In the API explorer you can do a getfields and it will show you the possible fields for the API.


How can I create a contribution page that allows the user to select the currency they wish to use?

You don't have an option of selecting multiple currency in the same page

So, Creating separate page of each currency could be a best option also easier way.

Or

You can create an extension for listing multiple currency in a single page, playing around price set  - which is going to take some time


CiviCRM has not bootstrapped sufficiently to fire event "hook_civicrm_alter_drupal_entities"

This looks like a change in 5.29. See https://github.com/civicrm/civicrm-core/pull/17831. It's signalling that somehow something isn't working with the way either the civicrm_entity module is setting the hook now or something about that change isn't working as expected. I'm not sure which.


You should check what the webform_civicrm module offers as it allows for Cases to be created, and in theory if you set the Contact on the webform to be restricted to Organisation, then you may get the outcome you require.

If not, please expand on your question with more specific requirements


Primary address being set to the wrong address

I think when you import if you choose "Primary" rather than "Main" from the drop-down options it will do both for you - set the address as location Main and set it as the primary. This is based on you saying you set Main as the default location. (I may not have entirely gotten your question as you mentioned another custom location but hopefully, this gives you something to start with.)


How to connect to Attentive.ly (Social Media Service)?

CiviCRM has multiple layers of security, all of which need to be handled properly to update its data remotely. You need to create a user which will be provided the permissions needed to update data in CiviCRM from Attentive.ly. This is part of the CiviCRM permissions model for using an external programmatic interface to interact with CiviCRM (see https://wiki.civicrm.org/confluence/display/CRMDOC/API+Security#APISecurity-PermissionswithinAPI for more details - that page is dated but I think generally accurate still). This approach to permissioning allows different external services to interact with different permissions, leverages the existing user/contact based permissioning system, and allows tracking of changes made by services to follow the paradigm set up for tracking which user makes changes to a contact.

@Andrei's suggestions are good ones. The official documentation for creating API user keys is at https://wiki.civicrm.org/confluence/display/CRMDOC/REST+interface#RESTinterface-CreatingAPIkeysforusers . I've added updated instructions that do not require interacting directly with the database at How do I set up an API key for a user?


Installer says cannot create triggers but I can with phpMyAdmin

I found getting SUPER privileges by the host was necessary.
After that the warning about Triggers disappeared.


How can I search for all contacts without email?

Go to Search - Search Builder.

Choose:

Contacts
Email
Primary
Is Empty

Then on the results screen you can also from the Actions dropdown choose Groups - Create Smart Group to save this search so you can run it again in the future and because it's a Smart Group it will automatically adjust the results to be current.


I had exactly this problem too and it seemed to me that the missing class should have been loaded earlier in the sequence. In Civi 4.6 there is an extra statement on line 646 of /home/[USERNAME]/public_html/info/administrator/components/com_civicrm/civicrm/CRM/Utils/System/Joomla.php so I made my 4.4.20 version look like this (with Joomla 3.4.5):

if( version_compare(JVERSION, '3.0', 'lt') ) {
  require $joomlaBase . '/libraries/joomla/environment/uri.php';
  require $joomlaBase . '/libraries/joomla/application/component/helper.php';
}
else {
  require $joomlaBase . '/libraries/cms.php';
  require $joomlaBase . '/libraries/joomla/uri/uri.php';
}

It is the require $joomlaBase . '/libraries/cms.php'; statement that I added.

I am not sending mail at the moment but at least the crons have stopped sending me error messages every 10 minutes. I could not upgrade to 4.6 so this will have to do for me for now.


How to add a field on Date Formats setting form?

I wouldn't do this by editing core files. I would implement the buildForm and postProcess hooks in a module extension.

https://wiki.civicrm.org/confluence/display/CRMDOC/Create+a+Module+Extension

https://wiki.civicrm.org/confluence/display/CRMDOC/Hook+Reference

But having said that I probably also wouldn't add it to a core form, I would make a settings page for my extension, which is just a module extension that implements the "add a basic web form" instructions at the first link.


If you want to use a smart group (because it automatically keeps itself updated based on certain criteria) you start by doing a search. In your case, find all people with a membership (Search > Advanced Search). Then you save your search as a smart group by selecting all the results and in Actions > Create Smart Group. Then give it a name and it will keep itself updated for you. As others mentioned, if you want to add people manually, then you would create a regular group, not a smart group to keep it clean and simple.


Hoe heb je Nick toegevoegd? Als je de contactkaart in CiviCRM bekijkt dan zie je daar als het goed is een tabje lidmaatschappen staan. Als je daar op klikt dan kan het zijn dat daar een inactief lidmaatschap staat.

Overigens helpt het als je vraag in het engels stelt want dan zijn er meer mensen die je vraag kunnen beantwoorden.


Welcome to CiviCRM SE! The first place to look for this information is in the relevant section of the developers guide at https://docs.civicrm.org/dev/en/latest/api/


Upgrading to 4.7.21 on Wordpress get uncaught exception on status page

Status page failed to load, giving an uncaught exception error.
Loaded the upgrade url directly -->https://xxx/wp-admin/admin.php?page=CiviCRM&q=civicrm/upgrade&reset=1.
This ran the update
Status page now loaded, with option to rebuild indices


Tokens in civicrm webform - not showing contact

I suspect those tokens are coming from another module (possibly CiviCRM itself). I never added any token support to webform_civicrm. That said, the best way to achieve your goal is probably to use the token from the contact_1:existing_contact field. This has the upshot of working correctly even when the user is anonymous. It's something like

[submission:values:civicrm_1_contact_1_contact_existing]

(but would need to be adjusted if it is inside a fieldset)


Donors who gave the same amount in X and Y year

I don't think there is such a report. I would probably look at using Summary Fields extension and then adding a new calculated field that does your calculation - and then report on that.

In drupal I would also consider doing this in Views and using eg views_calc to do the calculation for me instead of creating a calculated field


When Sending a Mailing the Reply-to email is different than the From Address

This is a mechanism for handling bounce messages and replies in response to the mailing so that they are associated with the individual that mail was sent to. It is quite complicated and you should start by reading https://docs.civicrm.org/sysadmin/en/latest/setup/civimail/ and probably also the Sparkpost documentation as well. Too much to explain here. I presume that you didn't set the Sparkpost up. You could talk to whoever did.


Financial Account cannot be change to non deductible

This is a core bug and have reported issue at https://lab.civicrm.org/dev/financial/issues/28  and also submitted fix at https://github.com/civicrm/civicrm-core/pull/12500

Can you please try after applying the patch from here?

If the patch works without any error than please comment on the PR as it would help for PR to get merge quickly into core.

HTH

Pradeep


Trying to get New Member, Member Renewal Contribution working

My guess is that you're sending emails out using CiviMail or the "send mail to contacts" search action.  This won't pick up the membership ID, because a contact can have multiple memberships and there's no way to know which to use.
I believe at present the only way (in CiviCRM core) to use the membership ID token is when using Scheduled Reminders (**Administer menu >> Communications >> Scheduled Reminders).  There's ongoing work to use the new token processor in other areas of CiviCRM, which would allow using this token elsewhere.
If you only have one active membership per contact, you can install Fuzion Tokens, which has a "latest membership ID" token.  This works for contacts because it eliminates the ambiguity of which membership is meant.


I would suggest you try out Caldera Forms CiviCRM WordPress plugin: https://github.com/mecachisenros/caldera-forms-civicrm

You need to firstly install the Caldera Forms plug-in for WordPress and then install the Caldera Forms CiviCRM plug-in (also for WordPress). Caldera Forms out of the box, allows for the creation of multiple pages for a single form. The Caldera Forms CiviCRM plug-in, adds the integration with Caldera Forms and CiviCRM. I currently have both plug-ins installed in our WordPress site and I'm busy exploring the creating of a contact capture form with custom CiviCRM fields. The form is pretty large, so I am busy splitting it into multiple pages. I have not tested any form submission yet, but hope to complete the form and test it within the next week.


Can I convert a smart group to a static group by editing the db directly?

Unfortunately NO, updating saved_search_id to NULL will actually convert it to normal group but no contact's will get added into this group since for smart group the contact are calculated from civicrm_group_contact_cache table which is rebuild periodically and for normal group its from civicrm_group_contact which is static. So you will need to first rebuild the contacts for a group and then move data from cache to static table like

INSERT IGNORE INTO civicrm_group_contact (group_id, contact_id, status)
SELECT group_id, contact_id, 'Added' FROM civicrm_group_contact_cache
  WHERE group_id IN (1);

HTH

Pradeep


How to enable multi valued profile fields in contribution page?

You can either create custom fields against contact and include them in a profile and using JS play hide and seek with those custom fields or you can create your own fields using buildform hooks and add it to profile form and include JS to hide show.

HTH

Pradeep


Can members sign-up for two memberships from same organization?

Yes, introducing a second "dummy" organisation is the way to go. This is described in more detail in the user documentation:

  Some organisations may want people to have two or more memberships of the same organisation that run concurrently. For example, an organisation focused on child health might want to offer a membership for parents that includes a parenting magazine and a membership for health professionals that includes a peer-reviewed journal and discounts at training events. Parents who are health professionals may want both memberships. A challenge to supporting this use case is that CiviCRM's Membership Up-Sell feature expects a contact to have only one active membership with a single organization at any given time. A 'workaround' for this is to create 'dummy' organisations for each of the possible concurrent memberships. For the situation just described, we would need to create an extra organisation for health professionals. Note that you don't have to expose the dummy organisation to your members on the website; it is for administrative purposes only.


How can I send a copy of a receipt to member who has already recieved it during signup?

Via Contributions > Find Contributions (civicrm/contribute/search) you can search for the contributions in question, then select Print or Email Contribution Receipts.

The next page is titled Print Contribution Receipts but it has an option to email them anyway.


CiviCRM populates current employer based on what is stored in civicrm_contact.current_employer rather employee/employer of relationship. While adding employee/employer of relationship relationship the form provide is_current employee option, if ticked  civicrm_contact.current_employer is stored with organization name and also same field is used in add/edit contact form.

For some reason the data for 5 contacts didn't had civicrm_contact.current_employer saved properly, resaving them might populated the field correctly.


payment_instrument_id is not a valid integer | Importing contribution

If you guys found similar issue with me. Please check whether you've already made some changes to Payment Method option value which is by default you could access it by http://yoursiteurl.com/civicrm/admin/options/payment_instrument?reset=1

Revert the changes you've made to default value, and try to re-upload/re-import the contribution. It solved my problem.


Separate membership payment on contribution form with donation

The separate transaction option is not available with price sets - if you want both you should maybe hire a consultant to develop something.


Can I set a daily Scheduled Job to run at a specific time of day?

The solution is to exclude the iATS job from the "normal catch all" cronjob (so don't put it to run automatically daily)

Then add a line on your cron to run it at 3 am

0 3 * * * www-data nice -n19 /usr/bin/drush -u 1 -r $drupal_root civicrm-api job.whatever-iats-name auth=0 -y

You will need to find what is the name of the iats api job, and put it in the line

and voila, you should have it working now at 3 am


What are some ways to handle flight information?

looks like you have done a good analysis of the options. Here is one extra one - add CiviCRM to a Drupal website - make the Drupal website theme match your joomla one - push folks through to the Drupal site - and then make use of Views and Webforms to deliver all the bits that you can't do via Joomla.

Possibly not the answer you want, but trade-off might be doing a fair amount of workaround/customisation with joomla, versus having a different front end for civicrm and getting a bunch of drupal tools that will take care of a lot of what i see you need.


better display of incoming email messages in database

Thank you @demerit and @jitendra for your help!

It turns out, the answer is: don't change the label for the Incoming Email activity type :).

The user changed it from Incoming Email to just Email. Changing the label should definitely not break things - but since this issue is still open, it does.

So, in the short term, I'll change the label back. In the long term, getting 1116 fixed would be ideal.


Auth.net completed transactions showing as Pending (Incomplete Transaction) - sometimes

There were some issues with Authorize.net transactions failing due it not managing to send an email- could that be related? Is email always required on the page? I think there are a.net fixes in both 4.7.18 & 4.7.19 (still in rc) so it might be worth checking if a point upgrade changes anything (4.7.19 is due out first Wed next month)


A report for monthly newsletter subscription rates? (need advice)

If you are using Views you might be able to use Aggregation on a field that has the 'month' and then 'count' the subscribers for that 'month' field. Aggregation is in the Advanced section of the View.


Gift Aid Declarations with overlapping dates

The short answer is 'No' there aren't any settings to allow this. Gift Aid declarations don't have to have an end date, when you sign up to Gift Aid to an organisation you can effectively sign up for ever (unless you specify an end date). Bearing this mind, I suggest that you change the end date of the previous declaration to avoid the overlap.


Up until now the answer has been no. However this improvement is now available with the PR from this JIRA issue.


How to add a checkbox like "I agree following terms & conditions..."

You can definitively do that with a custom field! Custom Field -> Used for: Participants -> choose Field Type: checkbox; make one multiple choice option (Label: 'I agree to the terms and conditions'); or: Label: 'Read, Understood and Accepted'.

Stick this new Custom Field into its own profile (so it can can have its own pre-form and/or post-form 'help' i.e. Terms and Conditions) -> make it required (in the profile) so users can't proceed without agreeing/checking the box.

Finally -> stick that profile into your Event Registration page (Event Config -> in the Online Registration tab).


Updating Custom Form Value via jQuery not Saving to Database

Are you changing it to the "value" or the "label" for the dropdown options? It should be the "value" (as defined when you set up the multiple choice options for the field). Or you can look in the generated html which might look like this <option value="1">Yes</option>, and then you'd use "1", not "Yes". It's the select tag you want to update not the associated input tag (well, yes the input tag too, but it only matters for the display on-screen).


System status notice about option value 0 in number field

We finally poked around and noticed standard option groups with integer values did not use zero. We had used value zero to represent "No". We changed "No" to value 3 and updated the existing records. Once all zeroes were gone, the warning disappeared. Later, we noticed that other radio button option groups use Alphanumeric data type even if the values are integers. Ours had been configured as an Integer (INT11 in the database). I can't say whether either of these conditions are the root of the warning, but avoiding zero appears to have worked. See also:

Option Values with problematic Values


Has anyone compared the two Sparkpost extension?

I've used them both. CiviDesk's version wins hands down on ease of installation as you just install and plug in your API from SparkPost. Also if I understand it, sending via the API is preferred.

PESC's version requires installation, update SMTP settings with those provided by SparkPost, and then configuring a Scheduled Job with API and other configuration settings.

One issue I am noticing on a site with CiviDesk's module is a high bounce rate reported in CiviCRM (bounces of type "Syntax") which are not actual bounces in SparkPost - but I may not have had the latest version. Testing now.


Event Search results - hide Event ID and display another custom field

I could find no way to configure the component dashboards via the user interface, but you may wish to make use of dashlets from your user dashboard - the following link provides instruction on how to do this: https://docs.civicrm.org/user/en/4.6/the-user-interface/menu-dashboard-and-dashlets/

Hope this helps,
Tamar


Accomplished it by filtering field data in CRM_Custom_Page_AJAX
in the function getMultiRecordFieldList(),
code goes like:
$data_arr = array('1','2','3');
$obj = new CRM_Profile_Page_MultipleRecordFieldsListing();
list($fields, $attributes) = $obj->browse();
foreach ($fields as $key => $value) {
  if($fields[$key][[custom_field_id]]['data'] && !in_array($fields[$key][[custom_field_id]]['data'], $data_array)){
    unset($fields[$key]);
  }
}


Is there a CiviCRM hook or other method which can be used to push data updates to other systems?

In having to do this with Salesforce and CiviCRM a number operations included the creation of a new contact being initiated on one end, which then had to be replicated on the other. In this case we wanted to prevent both sending unnecessary data and creating duplicate contacts.

Whenever the data being synced didn't involve a chain of transactions that required the result of each previous one (like a primary key id), we used the log to create the data package as each row only contains the exact fields that were changed. In the other cases we did use the pre and post hook along with storing data in the session to create a package that was ultimately sent in the post hook. In both cases, only the data that was added or modified was sent, and not full entity records. We put the responsibility on the receiving systems to understand whether they were adding a new record or updating an existing one, based on certain characteristics of the data package.

Pushing this strategy let us take advantage of the cron and the bulk Apis whenever the data allowed it.


Email-to-activity processing – can't create subfolders of the inbox

You can aslo create an issue on https://lab.civicrm.org/dev/core/issues and then send a Pull Request on GitHub.


Fatal error when activating CiviCRM fails and throws up catchable fatal error

Do you have the CiviCRM WP REST API Wrapper plugin installed?
If so,try disabling that as it's not required with newer versions of Civicrm


Check for Matching Contacts no longer gives an option to merge

It looks like the merge link was taken away in a recent update when the page was updated to use ajax for the matching lookup.  For those who may be looking for a temporary work-around (until hopefully this comes back into the core product), using the URL info from @Demerit in the comments above, I looked for a way to add the Merge link back into the popup notification when a person clicks on the Find Matching Contacts button.  This can be done by creating a custom Contact.tpl template and modifying one line in the "duplicates-msg-tpl" section.

The way I did it was to override just that template section, and then re-import the main Contact.tpl file (since I don't want to have to manage merging things every time that template changes). Not sure why, but I had to use the full path for that include call. Here is the example custom Contact.tpl file (you need to first define where your custom templates go and include that in the Civi Admin system settings).  You may need to change the rgid to whatever rule id you use (it may not even be necessary to have that param in the URL at all, but I kept it there just in case).  You may also want to switch your cid and oid values, depending on which contact you want to merge into the other.  In this case, I'm assuming the one being edited should merge into the existing one that shows up on the list.

 {literal}

{/literal}
{include file="/var/www/civicrm/sites/all/modules/civicrm/templates/CRM/Contact/Form/Contact.tpl"}


Retrofitting languages into English-based Install

To change it to the local language you do not need to make it a multi-lingual site as far as CiviCRM is concerned? I assume you mean that you installed the language pack. If you then want to change the language of your CiviCRM install you go to Administer/Localization/Languages,Currencies,Locations and change the language to what you want it to be. Unless I have completely misunderstood your question, but then you might want to expand a little on what you want exactly :-)


Can a user be allowed to Create a CiviMail but not Schedule it

Just had this pointed out to me on IRC - which suggests that some thought was giving to creating 3 levels of permissions:

Create mailing
Schedule mailing
Approve mailing

but looking like it missed the cut in the implementation.

Further documentation at 18400


We've accomplished this by modifying the core function getTokenData() to track non-tokenised part of the URL string. For eg. with the url posted in the question -

https://site-name/info?cid1=<contact_id_token>&cs=<contact_checksum>

Grab the main URL before the ? (https://site-name/info) and get the trackable url of this string from CRM_Mailing_BAO_TrackableURL::getTrackerURL() function.
This enters the URL in civicrm_mailing_trackable_url table.
Replace the HTML with this trackable URL so that main URL that is sent is in the form -
http://site-name/sites/all/modules/civicrm/extern/url.php?u=13&qid=17&cid1=<contact_id_token>&cs=<contact_checksum>, i.e, trackable url + query string from the original URL string.
When the user clicks the link in the mail, user gets navigated to trackable URL and is redirected to the original URL from civicrm_mailing_trackable_url table.
The extra query string automatically gets appended to the main URL.

The above is working correctly for us and tracks each click when the URL https://site-name/info is loaded.

Overriden the file in an extension. Sample Code diff looks like -

$ git diff CRM/Mailing/BAO/Mailing.php
diff --git a/CRM/Mailing/BAO/Mailing.php b/CRM/Mailing/BAO/Mailing.php
index 3a0f08048c..f2501a0b91 100644
--- a/CRM/Mailing/BAO/Mailing.php
+++ b/CRM/Mailing/BAO/Mailing.php
@@ -1348,6 +1348,21 @@ ORDER BY   civicrm_email.is_bulkmail DESC
       elseif (preg_match('/^href[ ]*=[ ]*\"/', $url)) {
         $url .= '"';
       }
+      if (!empty($token_a['embed_parts'][0])) {
+        $string = ' ' . $token_a['embed_parts'][0];
+        $start = 'http';
+        $end = '?';
+
+        $ini = strpos($string, $start);
+        if ($ini != 0) {
+          $ini += strlen($start);
+          $len = strpos($string, $end, $ini) - $ini;
+
+          $partialLink = "http" . substr($string, $ini, $len);
+          $trackableLink = CRM_Mailing_BAO_TrackableURL::getTrackerURL($partialLink, $this->id, $event_queue_id);
+          $url = str_replace("{$partialLink}?", "{$trackableLink}&", $url);
+        }
+      }
       $data = $url;
       // CRM-20206 Fix ampersand encoding in plain text emails
       if (empty($html)) {


Contribution Amount not displaying on Contact

As we were upgrading our civi software we learned that removing the values in the Monetary Value Display fixed the problem. It looks like petednz-fuzion was pointing me in the correct direction. After the software upgrade, the value shown in his screenshot below for Monetary Value Display (%!i) were automatically populated into my config, and this also worked.
Thanks for your help!


How to update to new SQL database username and password?

These values need to be entered in the civicrm.settings.php file (i assume this is the same for WP as for Drupal)


I understand messages like this can be worrisome but the msg actually tells you exactly what you need to fix the problem, eg it is suggesting you replace what you currently have set as the paths with the tokens shown. Try clicking on the 'Directories' link and then reading the help message that you will find there. If you need more help then paste a screenshot or the string in the 'paths' that you currently have, and someone will help coach you through which bits to replace with eg [cms.root]


Smart Group Features Extension to Memberships, Events, Contributions, Activities,

If you are using Drupal then I would consider building Views and Webforms to give you the flexibility you need without sending users deeply in to civicrm itself. If that sounds useful then get in touch for a more fleshed out explanation.


The last one look OK to me, the JSON parameter AFAIK is there just so I get the results in JSON format rather than XML format.

But are you doing your api call with the REST, in Javascript or in PHP? And did you check the API chapter in the Developer Guide? It can be found here: https://docs.civicrm.org/dev/en/latest/api/


Theoretically, CiviCRM can easily be migrated.  In my experience though, following the recommended instructions often runs into hiccups.  For this reason, I'll share my alternate method for local testing.

Since it's not hard to mirror server setups for local testing, it's usually good enough and easy to do just that.  For example, if the website is at http://example.com and the base path is at /var/www/example.com/htdocs, just setup your virtual hosting and hosts file to handle that url and base path.

I won't give instructions on how to setup virtual hosting, because those are very OS dependent.  So if you'd like to know how to setup virtual hosting, good article are easily found in google searches.


As Chris says, the problem is due to CiviCRM's Data Logging feature having a problem with column names that are MySQL reserved words. As John says, in this case it's the column named desc.

I think this is a bug in Civi logging rather than in the extension: it's allowed in MySQL to have a column name that is a reserved word, provided it is properly escaped when referred to. Civi logging should deal with that.

I have filed an issue: SQL syntax error creating logging triggers if column name is reserved word and tested a fix against 4.6.27, which from a quick look at the code should apply to 4.7 too - I'm going to test that and create a pull request. If you test the fix, please leave a comment on the issue with your results.

Update 20 Jun 2017: I've now replicated the problem with the latest 4.6 & 4.7 (master) code and verified that the fix (suitably adapted) works for both versions. Created PRs for 4.6 & 4.7 . The 4.7 one has been merged and the issue marked fixed.


Why doesn't the activity "send email" have a 'schedule follow up activity' option

Great question, and you're not missing anything: that feature just doesn't happen to exist at the moment.  It would be both useful and consistent with other activities.

With CiviCRM (and many other mature open-source projects), there often isn't a grand product plan, or if there is, many features come from people solving specific problems they or their clients have.  When the email feature was added, someone either didn't think about follow-up activities or decided it would be too much work.

On the flip side of this, however, it also means that there's nothing really stopping you or anyone from building that feature except for the time and expertise to write the code.  If you, a coworker, or a consultant can build it, I'm sure the core team would incorporate it into an upcoming version. You could also persuade them to build it by raising a ruckus and/or funds.

Unfortunately, this is one of the few parts of open-source where you really get what you pay for: if nobody shared the feature, it won't be there, no matter how logical it would be.


Way to display non-public events to employees

I think you could do this with an additional acl.

tested this on a client's site and it seemed to work

But I don't know you exact needs, you might want 'all' instead of 'edit' in the form


Change the layout of CiviCRM > CiviCase Dashboard > Find Cases

Did you try civicase v5 extension? It has got nice UI to manage cases.


CiviCRM 4.6.3 - [CiviContribute] - Option to automatically email a receipt for a contribution

Is this for one contact or for all contacts?

If for just one contact,  are you sure they have an email address in their contact record and that the communication preference "Do not email" is not set?


How do I fix this in CiviCRM System Status - sites/default/civicrm/extensions is not writable Please change your file permissions?

if you want to be able to download and install extensions automatically, you need to either change the owner of your folder sites/default/civicrm/extensions to www-data and/or change its access rights so www-data can write into it


Unable to CANCEL or DELETE a Scheduled Mailing (Mosaico is installed)

If you use the Events Manger plugin try navigating to https://yoursite.com/wp-admin/edit.php?post_type=event&page=events-manager-options&action=update&update_action=timezone-backcompat if you see a description about the timezone settings with a button to Finalise Upgrade on that page, it's likely the issue is caused by a non completed update of the Events Manager plugin.

Click on Finalise Upgrade, after the upgrade is completed you should be able to cancel/delete scheduled/unscheduled mailings.


Profile registeration interaction between wordpress and civicrm

A good place to start is in the documentation at https://docs.civicrm.org/user/en/latest/membership/online-membership-sign-up/ in the Civicrm user guide. It would be best to read the whole membership documentation before and after the link given.
For Wordpress you will need a login system like the one you mention "Profile Builder" which I use myself and can recommend.  You will need to switch on wordpress/settings/General/Membership/Anyone can register but also first get a good security system plug-in otherwise you'll more than likely get a mass of brute-force attempts to infiltrate your system.
You may want to consider a plugin to prevent non-members from seeing certain membership pages.  Alternatively, after you've set up a membership profile, you could use civicrm to forcibly get non-registered users to open a WordPress user account by using the registration option in ...civicrm/administer/customize data/profiles/settings/advanced settings.
There's a lot to be considered.  Hope this helps you to get going.


what should be the auto return url for paypal civicrm?

The Return URI should be the URL of your site. The docs says

  Enter your CiviCRM site home page as the Return URL. This is a placeholder. CiviContribute will pass the exact return URL to PayPal automatically during each transaction.


Civicrm Event Info Page has Register, iCal, and iCal feed buttons too close to each other

OK, it is easy to do with minor edits to the code (a template). I edited the following smarty template:
wp-content/plugins/civicrm/civicrm/templates/CRM/Event/Page/iCalLinks.tpl
I commented out lines 10 to 16, which is the entire executable for this file.
This gets rid of the two badges under the edit button, and solved this problem for fat-fingered folks.
I still wonder if there's anything in the CiviCRM UI that would do the same thing without editing the template..
Thanks All in advance.
WordPress 5.6, CiviCRM 5.32.1


New EU-DSGVO 2018 - Is a new agreement necessary?

I do not think there will be an easy answer to this GDPR question (also it is only party CiviCRM-related) but the following resources could be useful:

https://www.fellowshipproductions.co.uk/make-your-website-gdpr-compliant/
https://en.wikipedia.org/wiki/General_Data_Protection_Regulation
https://www.gdd.de/gdd-arbeitshilfen/praxishilfen-ds-gvo/praxishilfen-ds-gvo
(coherent information in German lanaguage)

Also, you will be happy to know that there is a CiviCRM extension which focusses on the topic of GDPR / DSGVO: https://civicrm.org/blog/parvez/announcing-a-new-gdpr-extension


How do we move our civicrm SQL database from the cloud to our network?

If you have access to your server and database, and you want to move the whole installation this wiki page should provide all the information you need. If you only want to move the database, have a look at this page.

I am assuming you are talking about CiviCRM, not CiviCSM ;)


Sometimes even i face similar problem when i try to install CiviCRM. But i make it work by commenting the line that throws this error.

You can find quick solution here.


Upgrade from 4.6.20 to 4.6.21 fails with fatal error (sqlfile not found)

I would recommend you grab this file https://github.com/civicrm/civicrm-core/blob/4.6/CRM/Upgrade/Incremental/sql/4.6.21.mysql.tpl and then save it into same path within your civicrm dir i.e. in CRM/Upgrade/Incremental/sql/

Once you have done that re-load your pre-upgrade database and run the upgrade again.

Should be all good then


CiviEvent 4.7* Wordpress - calculated fees with default values doubled w/WP Plugin

It turned out that the problem was due to a Wordpress plugin I set up called Inactive Logout (https://wordpress.org/plugins/inactive-logout/) caused the problem. Once I deactivated the plugin all worked well.
 Moral of the story: beware the smiling WP plugin, the javascript that bites, the session vars that snatch, beware the easy download and shun the frumious extension.
 On a serious note I think the plugin doubled the logged-in users but have to investigate.

It turned out the problem was caused by a call to wp_footer in src/inactive-logout-functions.php line 16, commenting-out that line fixed the problem and the inactive logout still works. wp-footer appends data to the /body tag


Changed URL, but Event and Contributions modules not recognizing the change

It sounds like you changed your URL in the CiviCRM user interface, but perhaps not in your civicrm.settings.php file. In that file you will need to look for and adjust your CiviCRM Base URL to the new domain.


How can I make it easier for users to generate the reports they need?

We have had great success using Jasper Reporting with CiviCRM.

It does require knowledge of the underlying CiviCRM database, and writing SQL against it, but the formatting capabilities are powerful and fairly easy to use.

Once a report is created, it can easily be added to the CiviCRM menu.

More details here: https://civicrm.org/blogs/lcarter/civicrm-and-jasper-reports


Where to put api wrapper class in an extension

The example in the wiki was problematic. If you look at the wrappers included with core, they're never placed under the api/v3 folder -- they're always under CRM/Utils/API. (I've updated the wiki to use a different name.)

That's merely a matter of convention, though. The API-wrapper system doesn't impose any constraints on where to put the class or how to name it. As far as that system is concerned, you can use any valid PHP class (as long as it implements the API_Wrapper interface).

The limitation here is in the reflection mechanism (MagicFunctionProvider->getEntityNames() and getActionNames()) which maps between API entities/actions and files/folders/functions. This is tricky to do because the naming conventions have been traditionally loose/ambiguous, so the current implementation uses a general rule of thumb: if you put any PHP file under "api/v3", then it will be reported as an entity name.


Is the activity id of an activity created in webform available as a token to then use in an email generated by the webform?

The latest version (7.x-4.20) has a token for that:
[submission:activity-id:?]
Replace ? with 1 for the first activity.