Settings - Date Preferences - mailing - start offset, end offset (what do they mean?)

OK, I'm an idiot. The start offset means that users can't schedule mailings in the past, and the 1 means that they can schedule mailings up to one year into the future.

Maybe "offset" isn't the ideal word. "Start of valid range" and "End of valid range" would be clearer.


I have rewritten the code found in this thread https://forum.civicrm.org/index.php?topic=19322.0
'Collins22' chicago-orienteering.org/civicrm_code.htm

to suit my specific purposes.  It isn't a civicrm extension nor uses API so far from architecturally pure, but it can be run as a php cron job so does the what is needed.

I have published the code on github https://github.com/alanef/civicrm-contribs-to-membership maybe it is of use to others - maybe some one wants to contribute and write it properly.


Is it possible to Contact.get where civicrm_id = external_identifier, using API?

If you want to stay with the API you can filter in php:

$result = civicrm_api3('Contact', 'get', array(
  'sequential' => 1,
  'return' => array("id", "external_identifier"),
  'external_identifier' => array('IS NOT NULL' => 1),
  'options' => array('limit' => 0),
));
$ids = array();
foreach ($result['values'] as $contact) {
  if ($contact['id'] == $contact['external_identifier']) {
    $ids[] = $contact['id'];
  }
}
print_r($ids);


This was caused from the oldest problem in the book. I needed to delete the everything inside sites/default/files/civicrm/templates_c and then clear caches and make it writeable (chmod 775).

That solved all of the above mentioned page load issues.

We had recently restored the website from an older backup and this always needs to be done when moving or refreshing CiviCRM on the server.


Tyring to Upgrade to civicrm 4.7.28 on Joomla but wsod error says civicrm.settings.php is missing

Since you said you're upgrading, that file should already be there. Which means it isn't creating it, but instead viewing/updating it. The four best reasons for you getting this error that I can think of:

You accidentally deleted your settings file.

You accidentally moved your settings file.

The permissions on the file are incorrect. Looking at my install, it is set to 644.

The user associated with the file is incorrect. This one usually happens if you're like me and log into your server via root so that you can work with multiple accounts on the same login. Then your file uploads as belonging to "root" instead of the actual user.


Drupal module to check "auto renew" checkbox for membership getting overridden, why?

I had an almost identical problem to solve today, which was to default a recurring contribution checkbox to "yes".  I think your original code is close, but QuickForm doesn't expect an array for a default value for a checkbox.  So, for instance, here's the code that worked for me:

function alwayscheckrecurring_civicrm_buildForm($formName, &$form) {
  if ($formName == 'CRM_Contribute_Form_Contribution_Main') {
    // "recurring" should always be set to "yes" if it exists.
    $defaults['is_recur'] = 1;
    $form->setDefaults( $defaults );
  }
}


Why do custom fields on Membership not pre-load when a member is renewing

We tried the suggestion to

  hack /srv/www/yfnz/yfnz.fudev.co.nz/sites/all/modules/civicrm/CRM/Contribute/Form/Contribution/Main.php
  line 33 $removeCustomFieldTypes = array('Contribution', 'Membership');
  needs to be changed to be $removeCustomFieldTypes = array('Contribution');

and it did what we needed.


I've used Amazon SES for a similar sized mailing list to you for a client.  I was confused initially and then surprised when they gave me a 14/s send limit.

However, when you work it out that's just over 50,000 per hour so the only issue is how to keep below the 14/s limit.  Well, as you've mentioned, CiviCRM has the very helpful "Throttle Time" which you can set to 75000microseconds to limit the send rate from CiviCRM to just under 14/second.

The client has found SES to be extremely fast and reliable. Just make sure you've got access to your DNS so you can configure necessary DNS entries to allow SES to send email for you.


Need to add Contribution page for "in kind" donations with image upload

You can add Custom Fields to a set of fields that are specifically used for Contributions. One such field could be a file field type - and therefore you should then be able to include that in to a Profile that you then include on the Contribution form. I can flesh this out more, but if you know your way around creating Custom Fields and Profiles the above might be enough to help you advance.


How to remove a contact from a group with Webform?

On the CiviCRM tab of webform, add a contact using Existing contact
Set Enable Groups and Tags to Yes
In the Groups box, choose -User Select-

If you don't want all the groups showing:

Go to the 'Webform' tab
Click 'Edit' for the Groups component
Select 'Static Options' and choose which groups to show

When the form is loaded with an existing contact, the checkboxes corresponding to the existing groups should be ticked.  Untick and save to remove from the group.


Emails get stuck on send. How do I debug it?

This is known issue reported by Andy. Quick fix would to remove the $mailer->disconnect() function at line 77 in src/Listener/DefaultSender.php file


is there any way to restrict data export?

Yes, it is now possible. I didn't hear from Kboy so I wrote an extension myself:

https://github.com/progressivetech/net.ourpowerbase.exportpermission


How can you set up CiviCRM multisite with Wordpress multisite?

There is documentation covering setting up multisite CiviCRM on multisite Wordpress here.

Additionally, this is an example of the code I put into civicrm.settings.php to set the base URL based on the domain:

  $multi_site_path = explode("/", $_SERVER[REQUEST_URI]);
  if ($multi_site_path[6] == "cron.php") {
      $multi_site_choice = $_GET["site"];
  } else {
      $multi_site_choice = $multi_site_path[1];
  }

  switch ($multi_site_choice) {

  case 'hcnmd':
    define( 'CIVICRM_DOMAIN_ID', 2 );
    define( 'CIVICRM_DOMAIN_GROUP_ID', 74);
    define( 'CIVICRM_DOMAIN_ORG_ID', 67459);
    define( 'CIVICRM_UF_BASEURL'      , 'http://hcn.local/hcnmd' );
    $civicrm_setting['URL Preferences']['userFrameworkResourceURL'] = 'http://hcn.local/hcnmd/wp-content/plugins/civicrm/civicrm';
    break;

  case 'hcfat':
    define( 'CIVICRM_DOMAIN_ID', 3 );
    define( 'CIVICRM_DOMAIN_GROUP_ID', 65);
    define( 'CIVICRM_DOMAIN_ORG_ID', 82031);
    define( 'CIVICRM_UF_BASEURL'      , 'http://hcn.local/hcfat' );
    $civicrm_setting['URL Preferences']['userFrameworkResourceURL'] = 'http://hcn.local/wp-content/plugins/civicrm/civicrm';
    break;

  ...more multi-site config here...

  case 'wp-admin':
  case '':
  case false:
  default:
    define( 'CIVICRM_DOMAIN_ID', 1 );
    define( 'CIVICRM_DOMAIN_GROUP_ID', 84);
    define( 'CIVICRM_DOMAIN_ORG_ID', 1);
    define( 'CIVICRM_UF_BASEURL'      , 'http://hcn.local/' );
    $civicrm_setting['URL Preferences']['userFrameworkResourceURL'] = 'http://hcn.local/wp-content/plugins/civicrm/civicrm';
    break;


if your user has cron access, you can always create a file, call it cron for simplicity sake, in the file add the command you wish to run, for example mine is a bit interesting cause I have to export my civicrm settings at the same time:

export CIVICRM_SETTINGS="/home/domain/public_html/administrator/components/com_civicrm/civicrm.settings.php"
cv api --user=cron job.execute

mind you, thats using the CV command, however, this can still be implemented via the cli.php.
Example:

 /path/to/php /path/to/civcrm/bin/cli.php \
  -s example.org \
  -u myusername \
  -p mypassword \
  -e Job \
  -a execute

save that in the file you created earlier (with your changes of course), then with cpanels cron, just  set the command/job to execute:

sh cron > /dev/null

or

sh cron > /home/domain/logs/cron.log

just make sure the file is outside of the web folder and is executable.


Can I use CiviCRM to track web use demographics on a joomla website?

Not really, maybe partially.

If you're looking to collect information from your users via a form, CiviCRM can help with that - but is probably overkill for your purposes.  If you want to know which pages your users are visiting, you're looking for an analytics tracking program, like Piwik or Google Analytics (or something fancier still).  People have occasionally linked CiviCRM with analytics tools, but that's a big-budget project.

Google Analytics will provide you with demographics and interest analysis in aggregate.  I'd start there and see how far that gets you before considering a tool like CiviCRM.


CiviCRM DB Error: syntax error during upgrade in Wordpress

My theory is you have a table called 'civicrm_group_contact_05Feb20-2049' in the database, maybe a backup whilst you were investigating an issue or something? If you drop this table prior to commencing the upgrade you'll probably have better luck.
Note that the reason its an issue is that CiviCRM will add audit log triggers to any table prefixed with 'civicrm'. So its trying to add/drop a trigger from that table and falling over. I'm not 100% sure on the reason, looks like trigger names dont support hyphens perhaps. In this case dropping or renaming the table (prefixing it with bkp_ or something) will stop the trigger drop/create failing.


Can we disable the "Record payment" button on contributions?

Once can find payments for contribution by clicking on Amount from Contribution result. The section which appears after clicking on amount shows all the payments against the contribution.

I believe its not possible to turn off 'Record Payment' link from contribution through UI. But you can implement hook_links() in your extension and unset the record payment link. Here is the snippet on how you can remove the 'record payment link

function extension_civicrm_links($op, $objectName, $objectId, &$links, &$mask, &$values) {
  if ($objectName == 'Contribution' && 'contribution.selector.row' == $op) {
    foreach ($links as $key => $link) {
      if ($link['name'] == 'Record Payment') {
        unset($links[$key]);
        break;
      }
    }
  }
}

By default Accrual Accounting is disabled until you enable (Enable Deferred Revenue) them by navigating to Administer >> CiviContribute >> CiviContribute Component Setting. You can turn off the settings if its enabled in your site.

HTH

Pradeep


Setting Up CiviCRM Multisite on Wordpress

It should be vastly superior to run multisite for the very fact you state: "That way people who register for the site will be added to our main Civi user database, rather than keeping track of two separate databases on each website."

One of the main benefits of using a CRM is to have a centralized database of all constituent information, be it contacts, contributions, events, etc. If you split it up, you are only causing yourself headaches later on trying to merge it.

Getting multisite working is worth it.  (Note: I haven't an idea how well Wordpress does multisite; my experience is usign Drupal.)


How can I detect potential duplicates in a CSV I want to import?

I like Allen's answer but it seems there should be an approach at the point of import that would work. Esp if you had a gazillion contacts in the db already. Is the issue here is that the potential matches are more complex than any matching rules?

If there is a Matching Rule or a series of them that can work for you - then start with the loosest rule and then rerun and tighten them - and set your import to SKIP.

Eg, if you first run the import with First Name match, then every record that has a matching first name will be reported back to you. Then run it with eg First AND Last, or First AND Phone etc.


CiviCRM report for Case activities listing Case data

Are you using drupal? You might get what you want with a drupal view.

The "extended report" extension (https://github.com/eileenmcnaughton/nz.co.fuzion.extendedreport) has a case pivot report where you can filter on activity date for example. It might get you close.

A sideways thought: You mention upcoming scheduled so I assume there is a further end use for this report, which might be achievable other ways. For example scheduled reminders or civirules might be able to give advance notice when certain conditions are met.


I had a similar problem (CiviCRM 4.6) and solved it as follows:

The price sets kind of belong to the event component, and therefore they require not only "regular" CiviCRM permissions, but also access CiviEvent. Since the CiviEvent component wasn't enabled, the permissions weren't there, and the admin user didn't have them.

After enabling CiviEvent and giving CiviEvent access (in Drupal) to the administrator role it worked.


I'm guessing it's whether the particular sort implementation in each case is configured to be UTF8-aware. If I order by name asc in MySQL, I see Côte d'Ivoire just after Costa Rica. If I look at a hex dump of the actual bytes, ô expands to EF BF BD, which will appear long after o (6F) and even z if the sort isn't UTF8-aware. Have a look at the localisation configuration of PHP on your servers.

Sort order can be affected by cultural differences as you suspected, eg Swedish vs German at https://sgehrig.wordpress.com/2008/09/24/on-how-to-sort-an-array-of-utf-8-strings/


This ended up being a Pantheon environment variables and path change, I fixed if following the suggestions here, edited for my non-starter kit environment: github.com/herbdool/civicrm-starterkit-drops-7/pull/17/commits/


DB Error: no such field in civicrm_api3() (when upgrading to 4.7.1) (Drupal)

I forgot to run the Upgrade Script (step 11 of the CRMDOC)
When done, everything seems OK.
Thank you John, for reminding me.


Are there any tricks to importing contact data if you include a column for 'is_deceased'

If you import contacts with an 'is_deceased' column, then as well as having a 1 for everyone who is deceased, i recommend you use 0 instead of blank/empty for everyone else.

The reason is that some civi code checks whether someone is deceased or not, and a value of NULL creates problems.

This hit us with Scheduled Reminders. Seemed they were not going out to most folks, and jitendra tracked it down to the fact that Scheduled reminders only load contact with "is_deceased" is set to 0 - and therefore ignores NULL ones.

I expect we will get this patched for this scenario but chances are that other functions might do the same - so best to ensure you have a 0 in your living contacts when you import.


Moving wordpress / CiviCRM to another folder

There's also all these in civicrm.settings.php

// Additional settings generated by installer:
$civicrm_paths['wp.frontend.base']['url'] = 'http://domain.org/wpcivi/';
$civicrm_paths['wp.backend.base']['url'] = 'http://domain.org/wpcivi/wp-admin/';
$civicrm_setting['URL Preferences']['userFrameworkResourceURL'] = 'http://domain.org/wpcivi/wp-content/plugins/civicrm/civicrm';

and further down there's global $civicrm_root;

and site urls

and double check in admin:

resource url
directories
CMS database integration
CMS database


Is content accessed through a click-through link cacheable by Varnish or similar?

So, only the civicrm click-through requests are grinding the VM/Server?

I am not seeiing how to cache those without breaking the counter functionality.

Is site OK when not using the click-through functionality? To make 100% sure that those are the cause, and not some other Varnish config (like not caching when certain session cookies are available).

If it is really the CiviCRM counter functionality and not the pages it forwards to and you need that functionality then I only see 2 options:

upgrade the server/VM
send the mailing in batches (maybe even spread over a few days)


Can I reference the contact ID of the Current Employer with a Drupal entity token?

We ended up using Markup field in the webform with some PHP code that made a CiviCRM API call:

<?php
$params = array(
  'version' => 3,
  'is_active' => 1,
  'sequential' => 1,
  'contact_id_a' => $_SESSION['CiviCRM']['contact_id'],
  'relationship_type_id' => 4,  // Employee Of
);
$result = civicrm_api('Relationship', 'get', $params);

if ( ! $result['is_error'] ) {
  $employer_id = array_shift($result['values'])['contact_id_b'];
}

if ( $employer_id ) { ?>
    <input onclick="location.href='/link-to-webform?cid1=<?php echo $employer_id ?>';" type="button" value="Manage Contacts" />
<?php }

I'm going to file an issue on the module.


Search Custom Template Directory first when using Smarty {include}

You can find some information about overriding templates and the Custom Template Directory in the developer guide here... along with the recommendation that you don't do that but use extensions instead.


Getting problem while installing of my extension

To debug this problem, it helps to turn on debugging and backtrace (Administer menu » System Settings » Debugging and Error Handling).  This will give more detailed errors.  You can also check the log in the ConfigAndLog folder.

It also helps if you can post your code on Github with a link so folks can see problems.  In your comments you say that you're using the API to create your records.  However, you must also remove those records on uninstall.  Using hook_civicrm_managed instead of the API will handle this for you.

To resolve this problem for now, manually delete the records your extension creates, then add an uninstall routine and you should be good.


Switched "logging" on - now get 'Unable to reach server'?

This seems to be a bug as it's also reported by another user.  So I raised this issue https://issues.civicrm.org/jira/browse/CRM-21799


CiviMail tracked links in WordPress site are marked down by Mail Tester

This is a known issue with all scripts in CiviCRM's extern directory - pointing directly to a PHP script inside wp-content is considered highly likely to be malicious. This will be solved out-of-the-box once the CiviCRM WP REST API Wrapper is merged into the CiviCRM WordPress plugin, but for now you probably need to install that and follow the instructions for replacing calls to those CiviCRM scripts with proper WordPress REST API calls.


Did you recently merge Organization contact which was related to membership type? If yes than its a known error in CiviCRM. I always prefer to retain the contact linked to membership type or settings. Or another option to avoid this in future we have installed an extension on most of our client site.
Solution to fix the problem? Run below query to fix the price set data.
SELECT cpf.id, cpf.name, cmt.member_of_contact_id,  cpfv.membership_type_id
FROM civicrm_price_field cpf
  INNER JOIN civicrm_price_field_value cpfv
    ON cpfv.price_field_id = cpf.id
  INNER JOIN civicrm_price_set cps
    ON cps.id = cpf.price_set_id AND cps.name = 'default_membership_type_amount'
  INNER JOIN civicrm_membership_type cmt
    ON cmt.id = cpfv.membership_type_id;

-- Incase above query returned results with cpf.name <> cmt.member_of_contact_id than run below query.
UPDATE civicrm_price_field cpf
  INNER JOIN civicrm_price_field_value cpfv
    ON cpfv.price_field_id = cpf.id
  INNER JOIN civicrm_price_set cps
    ON cps.id = cpf.price_set_id AND cps.name = 'default_membership_type_amount'
  INNER JOIN civicrm_membership_type cmt
    ON cmt.id = cpfv.membership_type_id
SET cpf.name = cmt.member_of_contact_id;

HTH
Pradeep


Display CiviCRM Survey in Drupal Content Type

By design, a CiviCRM survey can't be displayed anywhere on your website. From the docs (emphasis mine):

  CiviCampaign has a feature that enables offline surveys by providing a standardised way to record survey responses and to then generate reports from the survey data.

If you want an online form for your website visitors to fill out, alternatives are CiviPetition and Webform-CiviCRM Integration. For your use case I recommend the latter. Webform-CiviCRM can do everything CiviPettion can do, plus a whole lot more, including the ability to be embedded into drupal content (well, technically a webform is drupal content, so you can do anything with it that you can do with other nodes or blocks).


ACL role assignments not showing on screen, but still working

Once I saw a second person report the same issue, I suspected a bug, so I successfully replicated the problem on the demo site.  See the CiviCRM bug reporting page.

I determined that this is a side effect of changes made in CRM-20351.

Because this seemed like an easy enough bug to fix, I went ahead and did so.  I filed it as CRM-21076, and submitted a solution as pull request #10866.

It's a one-line fix, so feel free to fix manually.  I'm going to argue that this should go into 4.7.24, but 4.7.25 seems almost a certainty.


Assign a group from logged in user contact group to new individual

If I understand it correctly you want to add contact (New individual) to a group of  logged in user, then i would write something like this

function search_civicrm_pre($op, $objectName, $id, &$params) {
  if ($objectName == 'Individual' && $op == 'create) {
    $groups = civicrm_api3('Contact', 'getsingle', [
      'return' => "group",
      'id' => 'user_contact_id',
    ])['groups'];
    foreach (explode(',', $groups) as $groupId) {
      $params['group'][$groupId] = 1;
    }
  }
}

HTH

Pradeep


What is CiviCRM's position on WordPress 4.3?

I can't specifically answer your question, but I always develop my Civi plugins and test the main Civi plugin on WP bleeding edge and have not run into any problems doing so. YMMV, of course.


Can multiple mailings have deduplicated email addresses, so each address will not receive multiple emails?

Hopefully someone else comes by with a simple strategy - here is an off the cuff idea.

a/ you know the emails you sent to
b/ if you import emails then you can add them to a Group
c/ i don't know if when you import an email that is used by several folk they all get updated, it may only update the lowest cid
d/ if the import does do what you want then you can probably figure that path from there


When sending mailing incorrect amount of contacts displayed

I had a similar problem, probably with version 4.3, and found that a recent import had resulted in contacts with "deceased" set to null, while the query that selected e-mail addresses for a mailing excluded contacts where "deceased" was not false, thus excluding all those newly imported contacts with "deceased" set to null.

I re-imported those contacts, explicitly setting "deceased" as False, and then I was able to send e-mail to them.


CiviMobileAPI / CiviCRM WP REST API error, and possibly related: WordPress - Site Health reporting REST API errors

I was under the assumption that you do not require CiviCRM WP REST API plugin anymore if you are on 5.28.x
To ignore the Site Health error you install a small plugin that i have created.


hook_civicrm_postSave_table_name not called on table update

You can use hook_civicrm_post hook which gets called every time a core object is written to db. Detailed description can be found here: https://docs.civicrm.org/dev/en/latest/hooks/hook_civicrm_post/


Do you mean the "spark" product offered separately by CiviCRM?

You don't have to use spark you can download and install CiviCRM yourself with any hosting company. If you are looking for someone to set it up for you then take a look at https://civicrm.org/partners-contributors


Where is the documentation for installing CiviCRM with Drupal 8 or for upgrading a Drupal 7 system with Civi to Drupal 8

Currently the primary location for documentation is

Installation

Migration of a CiviCRM system from D7 to D8 (tbc)


Based on comments, it sounds like you have a permission issue.  It's possible you have an ACL issue, but it's pretty unlikely; you would know if you set up ACLs.

Go to Administer menu » Users and Permissions » Permissions (Access Control).
Click the WordPress Access Control link.
Check the permissions: CiviCRM: profile create and CiviCRM: profile view and ensure they can be used by the role in question.


What does "Result Column? 'In Sector' Cannot be checked with participant" mean?

There are two fields Searchable? and Results Column? that make sense only for Public Pages and contact profile.

The field Searchable ? should be automatically unchecked when setting the visibility to "User and User Admin Only". When testing in http://dmaster.demo.civicrm.org in doesn't seems to be possible to even check them in a participant profile context.

Anyway, you might be able to submit the form by doing :

change visibility to Public Pages
uncheck Searchable? and Results Column?
change visibility back to User and User Admin Only

If that doesn't work, i suggest you udpate your CiviCRM to latest version.


Change CiviCRM Event notification emails

In the event settings under 'Online Registration' you will see a section for 'Confirmation Email'.  If you select this CiviCRM will send a confirmation email to the participant.  You can also send a copy (CC or BCC) to another email address.

See the user guide for more information: Registration confirmation


This is possible in one of two ways:

Use the API CSV Import GUI extension.  This will allow you to import relationships with start/end dates.  As a matter of workflow, you'll probably end up exporting existing relationships and reimporting via the extension.
Make the changes directly in SQL, in the civicrm_relationship table.

There's actions to add relationships between contacts and a household/organization in the search action menu, but what you're describing doesn't exist out of the box.  I certainly think it's a good candidate for a sponsored improvement though.


How to fix this JSON Error with Joomla 3.7, CiviCRM 4.7.19, PHP 7.1?

As of May 2017, I'd say PHP 7.1 / CiviCRM combination is probably not ready for production use - I tried it the other day and ran into some errors. If you need to run CiviCRM in production, I'd switch down to PHP 7.0.x or 5.6.x.

You might be able to get it to behave with some other configuration changes or by being more actively engaged in CiviCRM development, but for a production site I'd recommend shifting down to 7.0.x.


Changing CiviCRM Site Key in the civicrm.settings.php file

Changing the site key will break a few things. How many of these are important is up to you, but at least:
- every rest interface that connects to the site to read or write (you might not have any)
- any hash (eg. link to update preferences). this might not be an issue if the domain name changes too
- anything that is saved encrypted (eg. the password for the smtp connection).

search the code base for CIVICRM_SITE_KEY to have a complete list.

This being said, the easiest is probably simply to change and wait for a while to see if it breaks any of the features YOU use.

The value of the key itself doesn't matter, as long as it's hard to guess and long enough. The setup process generates it that way:

md5(uniqid('', TRUE) . $params['baseURL'])

so a random hash of 32 characters


Adding a contact profile to a contribution page (user registration)

It sounds like the problem is the one described here: Backbone isn't loading on Civi 4.6.11/WP 4.4.1

Please try changing your theme to the default theme, which doesn't conflict with Backbone.  If you find that this solves the problem, you can follow the instructions on the other question on dequeuing Backbone from your WordPress theme.


Get civi mailing with status = 'Complete' using API explorer

Yes, this is doable via API Explorer.

Entity is Mailing,
The Action is Get, and
The Parameter is Mailing Completed = Yes


Custom field API and Custom field Machine name

If I understand right, the CustomField 'name' is unique in every CustomGroup. In my prototype I have two CustomFields 'Role' but they have two different 'custom_group_id'. When I try to add a 'Role' CustomField to either one of these CustomGroups, then it errors out with the message:

Field Label
Custom field 'Role' already exists in Database.

But I can still add 'Role to any other CustomGroup where it is not used yet.

In the form I can only set the label, but at creation the 'name' is created from the label. When I rename the label, the 'name' is unchanged. This is the machine name of CustomField.

So before you push, you should do a query on both:

$result = civicrm_api3('CustomField', 'get', array(
  'sequential' => 1,
  'custom_group_id' => "Entity",
  'name' => "Role",
));

This will return the right id and will allow you to do your push. Then it is very useful to straight away to use the returned id through api chaining.


Paypal button not linking while using Paypal pro

I found the problem. I had "BIlling address required" turned on and that forced CiviEvent to demand more info and not let the user go to Paypal. I turned that off and it works.


What is the best way to override changes to CRM_Core_Config?

I've come up with this function to clear cache, when file paths change.

function cacheoff_civicrm_config(&$config) {

  // 1. Get document root from the server
  // 2. Compare to a set path in the cache
  // If 2. doesn't start with 1., then regenerate cache
  // This means the file path has changed

  $templateDir = $config->customTemplateDir;
  $document_root = $_SERVER['DOCUMENT_ROOT'];

  if (!substr($templateDir, 0, strlen($document_root)) === $document_root) {

    CRM_Core_Error::debug( "Path changed: " . $document_root . " doesn't match " . $templateDir );
    CRM_Core_Config::clearDBCache();

  }
  _cacheoff_civix_civicrm_config($config);
}


failed to open stream after PHP upgrade to 7.3

May be a stupid question but have you purged caches / cache folders entirely? e.g. Clear the templates_c folder?


Getting error message from cron but no clue why - can anyone help?

Based on comments this was tracked down to extensions. @andy-clark looked at the installed extensions and an older version of the CiviCalendar extension was creating the string error.

Also the Summary Fields extension was creating deprecated warnings.


Re-ordering search results changes results

This is https://lab.civicrm.org/dev/core/issues/981 with a fix included in 5.14.0


What could trigger a transaction rollback on contact save?

No errors of any kind, it's just when you get back to contact summary, the data hasn't changed? Strange if that's the case, you'd expect an exception to be thrown.

Are those queries you posted the full list? Have you done a side by side comparison of all queries?

It looks like there are several methods in /CRM/Core/Transaction.php that execute a rollback.

Those may be places that you could run var_dump(debug_backtrace()) and look for differences, write it to a file if you have to.

Another thing to try would be to copy all the sql statements, and run them outside of civi, like in mysql directly, or a mysql client, and see if you get an error message from that.

Your not getting anything about database locks in a log are you?
https://dev.mysql.com/doc/refman/5.7/en/innodb-deadlock-detection.html


How to add a secondary Case Role that has access to Activities they are not 'on', eg ones that existed before they were added

I'd say this is coming from CRM_Case_BAO_Case::checkPermission(), around line 2659 where it says

//user has only access to my cases and activity. [sic]
//here object specific permmions come in picture.

It seems like this is part of the definition of "my cases and activities", where you have to be either the reporter, with contact/target, or assignee of the activity to be able to view it.

So to get the arrangement you're looking for you either have to give them access to all cases and activities, or something more complicated involving code is needed.


You could do this using chaining in the API, either by script or with the API Explorer.

Eg:

$result = civicrm_api3('Event', 'get', [
  'sequential' => 1,
  'options' => ['limit' => 0],
  'event_type_id' => "Fundraiser",
  'api.Event.create' => ['id' => "\$value.id", 'event_type_id' => "Meeting"],
]);

Or in words: find all the events of type Fundraiser.  For each one, use the 'create' API call with the id of the found event and set the type to Meeting.

To run this in API Explorer you need to enter the chained part as json:


Re-run iATS recurring contributions that failed due to bad iATS account credentials?

Change the date for the next scheduled recurrence.
Table civicrm_contribution_recur > Column next_sched_contribution_date

Change it to today and run your cron job or change it to tomorrow and it should process them with tomorrows transactions.


Mosaico and 'View in your browser' not working

In general, bugs with extensions should be reported on the extensions' github page.

In this case, you may be interested to know that there is a new CiviMail/Mosaico extension nearing completion which will supercede the one you are trying out.


How to create a modern looking contribution page?

You can use the Civi Bartik Public Theme for Drupal/CiviCrm.

The theme has some configuration as to change colors, logo etc...


My Scheduled Jobs Log doesn't display a date or time

The run_time field is set to current timestamp by default and its a not null field which mean that run_time will never NULL values. Can you please check you schema for civicrm_job_log. I am pasting below for CiviCRM version 4.7.29

mysql> DESCRIBE `civicrm_job_log`;
+-------------+------------------+------+-----+-------------------+-----------------------------+
| Field       | Type             | Null | Key | Default           | Extra                       |
+-------------+------------------+------+-----+-------------------+-----------------------------+
| id          | int(10) unsigned | NO   | PRI | NULL              | auto_increment              |
| domain_id   | int(10) unsigned | NO   | MUL | NULL              |                             |
| run_time    | timestamp        | NO   |     | CURRENT_TIMESTAMP | on update CURRENT_TIMESTAMP |
| job_id      | int(10) unsigned | YES  |     | NULL              |                             |
| name        | varchar(255)     | YES  |     | NULL              |                             |
| command     | varchar(255)     | YES  |     | NULL              |                             |
| description | varchar(255)     | YES  |     | NULL              |                             |
| data        | text             | YES  |     | NULL              |                             |
+-------------+------------------+------+-----+-------------------+-----------------------------+
8 rows in set (0.00 sec)


Activities don't show on the profile page

Case activities usually don't show on the "non-case" side of things, like on their user record. As to why it shows "3" on the tab there that might be the theme since I don't see it counting them on dmaster.demo.civicrm.org. Looks like maybe shoreditch theme?


How do I get wordpress and Civicrm membership synced?

Thank you for your help. Turns out I didn't do the first step to installing
Wordpress Civicrm members sync:

  The first step is to Download the Plugin and put it under your sites
  wp-content\plugins\ directory and rename the folder as
  "civi_member_sync". Then Activate the plugin by going to your
  WordPress site's Plugin page at
  http://example.com/wp-admin/plugins.php It will be CiviMember Role
  Synchronize.

https://github.com/jeevajoy/Wordpress-CiviCRM-Member-Role-Sync


How to create a statemachine/wizard in a modal/popup?

I'm not saying that civi statemachine has been done a decade ago and that it shows, but most of us would rather do something else than trying to use it ;)

How familiar are you with angular? You would end up with a nicer and smoother interface, and angular is now part of the core and with lots of useful helpers to interface with the api.

Look what @totten has done for the new civimail interface on 4.6 for instance for inspiration and an example of modal interface.

He and robin did a session about angular at civicon london that you can watch online:
https://london2014.civicrm.org/sessions/using-angularjs-enhance-user-experience


How to set all donation to redirect users to another page if successful payment is made

This is not supported by CiviCRM by default and i cant find any drupal modules which can do the redirect from the thank you page.

If you are a developer, you can do this using hook_civicrm_buildForm hook.

We have done something similar to redirect from thank you page using buildForm hook. I have packaged the hook in an extension. You can download the extension here - https://github.com/rajeshrhino/uk.co.vedaconsulting.module.contributionpagesredirect

Before installing the extension, you need to edit main PHP file (Line no.6 - https://github.com/rajeshrhino/uk.co.vedaconsulting.module.contributionpagesredirect/blob/master/contributionpagesredirect.php#L6) and change the redirect URL to the URL in your site.

Hope this helps.


How to make a single form that works with an individual, and organisation and their Relationship in Wordpress

Sounds like you might need to set your Membership page up so that it is 'on behalf of' ie so the Membership is created for the Org, and the Individual becomes permissioned 'current employee of' that Org.
The 'on behalf of, settings are on the Contribution 'Title' tab. The profile it offers by default is a 'reserved' Profile (so is on the Reserved 'tab' on Profiles), but you can clone it, change the clone and use that if you don't like what the default one offers by way of fields.


Missing payment fields on membership renewal

In the screenshot the "membership organisation and type" field is empty.  Did you blank it out or have you disabled the relevant membership type?  Without  a membership type with an associated fee there won't be any payment fields.


How to generate a monthly report for multiple years?

You can try Report plus extension, it does provide some reports grouped by contribution date in month or year may be Contribution Summary Plus or Contribution Matrix Plus


Civicrm Development (Coding) Environment Virtual Machine

There's docker, there's vagrant but there isn't a pre-built VM setup.

I can probably knock something up next week if there's a demand for it (we have a local Ubuntu 18.04 BuildKit VM which we have templated for re-use.

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

We're also continually testing BuildKit on Windows Subsystem for Linux and this is so close to working with one issue remaining on the WSL platform which is preventing full functionality.


Not receiving email from Scheduled Reminder for Activity

OK, answering my own question after much investigation. This was a bitnami civiCRM stack and the crontab to run Job.execute was running as the bitnami user (our error), but needed to run as daemon.
That is documented on bitnami's site:
https://docs.bitnami.com/bch/apps/civicrm/configuration/configure-scheduler/

Strange behaviour as a result of this - cron seemed to be running fine, but it clearly didn't have permissions to send emails.


How to pull an event report that lists how many people bought tickets at the different level of ticket prices

You will want to use: https://civicrm.org/extensions/extended-reports extension - it gives you access to many more templates - including price set - line item ones.


Changed Resource URL setting, now can't access Civi on Wordpress

If I understand your question correctly, you are asking how to return the settings back to default.

I believe that the default settings for WordPress (in Administer >> System Settings >> Resource URLs) are as follows:

CiviCRM Resource URL: [civicrm.root]/
Image Upload URL: [civicrm.files]/persist/contribute/
Custom CSS URL: (blank)
Extension Resource URL: [civicrm.files]/ext/

You would typically only need to override the Resource URL in civicrm.settings.php if you have moved your site. I suggest that you set this back to how it was previously.

You may want to post a separate question about the problems you are having with 404s if this is still an issue.


can a search for the individuals in a group display notes instead of address, etc

That might be a little visually difficult if they have 30 notes, but here's two options:

At the search results screen select some or all and then from the actions dropdown at the top of the list choose Export.
In the export screens choose "select fields for export".
When choosing the fields, include the field called "Note(s)".

If you want it on the screen instead of an export, and you're ok with only seeing the first note you can do like so:

Go to Administer - Customize Data and Screens - Profiles.
Click on the Reserved tab.
Click on "Fields" on the right side of the screen next to the Summary Overlay one.
Click Add Field.
For field name, select Contacts , and then the one called "Note".
Click save.
Do a search and in the search results list, if you hover over the contact icon in the 2nd column you'll see the first note in the popup that comes up.


How to get Views to work in CiviCRM on Drupal9 with separate CiviCRM database

Do it exactly like was done in Drupal 7..
You should be able to goto path: civicrm/admin/setting/uf?reset=1
And then copy the integration code for the settings.php or settings.local.php from the "Views Integration settings"


Anyone using CiviCRM for Scholarship Management?

Without information from you this answer is just waving in the dark but here goes.

Assuming a Scholarship involves

an application
a review/decision
a notification of outcome
for succesful, a one-off or series of payments
perhaps a report at the end

Then I would approach this by using CiviCase and a bunch of custom Activity Types.

In an iDrupal world I would then provide the user with forms using webform_civicrm to open and update the status of the Case while also creating or updating the relevant Activities.

I would probably also provide a Drupal View of current applicants so admins can easily click through to a prefilled Webform and make the relevant updates.

Webform can also take care of pushing out the success/failure notifications, or that could be triggered via CiviRules or directly via an Activity to let applicants know the outcome.

HTH


Activities have a fairly complicated pattern in the database, where the column is_current_revision determines what the actual version is. You migt want to check the civicmr_activity table to see what the situation in your case.
Also, if you have logging switched on that might help.
Obviously if you have a backup that might be the quickest fix.

I am not sure if this is a bug, best option to find that out is try your scenario in a demo version?


installation canary Error Message upon installation

The message itself gives a quite bit of info that the installation wasn't done correctly or there would be something missing from the process. Make sure you followed the docs correctly while installing CiviCRM.

I've seen this on doing a page relaod while the installation is still in progress.

If you think the process is done correctly and just want to get rid if this error - try deleting civicrm_install_canary table from the database and reload the page.


Can CiviMail send multiple mailing jobs concurrently?

Just to follow up on this, this was a bug that will be fixed for the 4.6.4 release. More details can be found at issues.civicrm.org/jira/browse/CRM-16387


Rest API contribution get doesn't return display_name

You're in a bit of a tough spot, I'm afraid.

The display name is attached to the contact, not the contribution.
You would typically use an API join to handle this.  However, joining to the Contact entity isn't supported in APIv3.  It is supported in APIv4 (and in fact is one of the main reasons behind API4).
However, API4 doesn't have a REST interface at present.

So you have two options:

Make 2 REST calls;
Try to use APIv3 chaining.  This will let you make a single REST call, but does NOT reduce the number of API calls made internally.  I've always found it to be more trouble than it's worth though, and I shudder to think about what that would look like over REST.


Is there a way to update CiviCRM through the Drupal Admin/Modules panel?

I feel your pain.

There is no way to do it through the modules panel.

However, I believe the instructions you are following are unnecessarily complex. What we do is back up, then delete the civicrm directory, upload the new version and then run the update script. We don't bother disabling and enabling extensions. We use maintenance mode if it's during working time - you don't need to unless you expect people to try and use the system during the upgrade.

To be fair we do have a test system that we do it on first. But we have not had any trouble (sometimes things don't work after upgrade but this has always turned out to be the result of bugs rather than anything we did), and in any case you are already backing up first so if something did go wrong you could restore.

I think this is quite a common approach, see for example https://civicrm.stackexchange.com/a/11436/465

As for the error that you say appears after upgrade - usually one or two clears of the drupal cache will fix such things http://www.inmotionhosting.com/support/edu/drupal-7/configure-caching/clear-caching


OK, the answer turns out to be a matter of capitalization. I'm using the cv addon (https://github.com/civicrm/cv) to send the command "job.execute" from cron. My cron line looks like:

cv api job.execute --user=username --cwd=/var/www/html/sites/default

However, my username on the server is not capitalized while my Username in Drupal IS capitalized. When I changed the cron to "--user=Username" all is well. It is interesting that the cron WAS executing and that the commands were being fired, thus the entries in the CiviCRM logs. However, since Drupal was seeing "username" as an unauthenticated user without the authority to send email, even though the process_mailing command was working, SMTP was failing.


OK, so the civirules 1.2 extension was causing the problem.  The problem is documented a bit here: https://github.com/CiviCooP/org.civicoop.civirules/issues/132

Luckily I hadn't set up at civirules stuff so it was easy to just disable it.  Maybe in the future I'll use an updated version of it.


Why is there a page in a CiviCRM WordPress install that says "Do not delete this page."

CiviCRM has some public-facing pages that it generates. e.g. event registrations, unsubscribe confirmations etc.

On Wordpress the page you're seeing is the one that's used by CiviCRM for these purposes. So it's not a page you use or link to directly yourself, but it has to exist as far as Wordpress is concerned so that CiviCRM can provide dynamic content.

EDIT

Here's an example of when CiviCRM will use this page. You have an event, you want to give people a link to sign up for it.

From the Manage Events page you click (1) event links, then you see (2) test and live event registration links. You right-click the one you want and choose "Copy Link Location" (or whatever similar description your browser offers), and send people the link.

When people click that link CiviCRM will use the base page to decorate its sign up form.


How do I store old leads so they don't bother the current leads?

You can use Tags to denote Leads v Unleads.


Andrew West's comment seems to be correct.  There are two different things happening here - or three, depending on how you look at it.

The most important is "Permission Denied".  I just visited your site, and confirmed you're running Drupal as your website software.  Go to this page:  www.mcuw.org/admin/people/permissions.  In the "CiviCRM" section, find "CiviContribute: make online contributions", and make sure that it's checked off for both "Anonymous User" and "Authenticated User".  Note that you'll need to be a Drupal administrator to view that page; if you're not, please contact your website administrator.

Second - you're getting notices on the top of the page.  Those notices shouldn't affect anything, but they're bad for the donors to see, it erodes trust.  You should hide those.  A good explanation of how to do that is here.

Third - I'm not sure why you'd be getting those notices at all.  You may want to ask your website administrator if there are any customizations they can think of that might lead to those notices appearing.


Go in to Adv Search, check the 'search in trash' box, select all your contacts in Trash, and then choose the dropdown option to Permanently Delete. That should help


Contacts: can one organisation be a 'child' of another?

What I would do is:
- configure a new contact type 'NHS Team' based on organization
- cofigure a relationship type between organization and NHS team
The standard relationship type 'Child of' only works between Individuals, as you can see in the configuration of the relationship types.

If this is gobbledygook for you, I'd recommend reading this: https://docs.civicrm.org/user/en/stable/organising-your-data/relationships/


My sense is that this is more likely to be a hosting/configuration issue than a Wordpress issue. Though it could of course be a hosting issue that only affects Wordpress sites :p.  Did you try testing on http://wpmaster.demo.civicrm.org/?

'Empty mail protocol' is from the more helpful end of the error message spectrum.

I would first check on this page civicrm/admin/mailSettings?reset=1 that the protocol is set for the processor you are using for Bounce processing.

If and when you have ruled out any issues there, it would be time to start digging a little deeper...

Hopefully you don't have to read this far, but just in case...

Depending on your willingness to jump into the code case, the next step would be to look through the code of the Fetch Bounces scheduled job. https://github.com/civicrm/civicrm-core/blob/master/api/v3/Job.php#L356 passes of to https://github.com/civicrm/civicrm-core/blob/master/CRM/Utils/Mail/EmailProcessor.php quite quickly.

It looks like your error message is being generated here: https://github.com/civicrm/civicrm-core/blob/master/CRM/Utils/Mail/EmailProcessor.php#L165 and here: https://github.com/civicrm/civicrm-core/blob/master/CRM/Mailing/MailStore.php#L57.

So the question is, why isn't $protocols[$dao->protocol] set on https://github.com/civicrm/civicrm-core/blob/master/CRM/Mailing/MailStore.php#L56?

Happy to expand on this answer if necessary.


This looks like a bug. It's coming from CRM_Case_Page_Tab::preProcess(), which calls CRM_Case_BAO_Case::getCases(), which then returns a list that's keyed sequentially, but then preProcess checks for a key that matches the case id, so there is no match.

$userCases = CRM_Case_BAO_Case::getCases(FALSE, array('type' => 'any'));
if (!array_key_exists($this->_id, $userCases)) {
  CRM_Core_Error::fatal(ts('You are not authorized to access this page.'));
}

This appears to have inadvertently been changed as part of CRM-21461. I'll file a bug report.


Summary Fields Extension - Do the contribution fields include event/membership payments

You can select the contribution types you want to include (there is a setting page). I don't know about partial payments though...


For those using Drupal -> you can use Drupal Views to create such displays - here's an example of a CiviCRM Event Display - using a Bootstrap Grid (responsive display):


Temporary table keeps showing up and throwing MYISAM error and Missing Log Tables error

I had a server tech look at this and it looks like this installation is on a server that has been upgraded from some time back, but retained an old setting:

  It looks like the default engine set within /etc/my.cnf was still set to MyISAM...

We are in process of updating that and will restart MySQL in the middle of the night soon. I'm assuming this will fix it (but will update here if not).


For security reasons, CiviCRM does not expose uploaded files directly, but routes them through a php script which checks permissions before fetching the image. If you know the file id and the event id, then you can construct the url yourself:

yoursite.org?q=civicrm/file&reset=1&id=FILE_ID&eid=EVENT_ID


Upgrade from CiviCRM 5.12.4 to 5.13.5 generates Sparkpost PHP fatal error

See if https://github.com/cividesk/com.cividesk.email.sparkpost/pull/77 fixes your problem.  It's been merged but there has not been a release of the sparkpost extension since then so either pull from git or apply the fix manually - it's only one line of code.


Is there a way to bulk create (and connect) drupal users from CiviCRM Organizations?

That is indeed how the Drupal / CiviCRM user integration works: Users = Individuals.

We stick to this way of working so we're not restricting ourselves to having to maintain a customisation like this which would be business critical if it stopped working after an upgrade.

Having accounts linked to an individual is also good, as it shows who in the organisation did something, like apply for membership.

It also means things like event registrations work as expected as a person will be attending those.

Using webforms, you can easily expose information about a person and their related contacts so they can update their details as well as their organisation's at any time. Keeping contact 1 as the logged in user makes this easy.

There is also this blog from Whitefuse Media which explains a similar situation and how they handled it (see the section: Drupal Users Synced to CiviCRM Organisations)

http://www.whitefusemedia.com/blog/civicrm-development-case-study


Changes in display of batch data entry form in 4.6.x

From UI perspective, it is not currently possible to include an email in the select box. Some code changes need to be done.

I was just skimming the code of Common.js file where this functionality seems to be handled.

I guess the formatSelection function is the one which returns to what is seen after the selection of the contacts from the dropdown. You can make a change here to include the email to be concatenated to the name. Something like:

var email = (row.extra.email !== '' ? ' - ' + row.extra.email + ' ' : '');

and then add this to the label.

Well, modification in this file may not be recommended  as changes done here are too core and may affect some other functionality elsewhere. This file is called in almost all the pages of CiviCRM and hence this change would affect all the dropdown present in it.


Backend Registrations face group-based pricing (extension) selections

Solved: they have to be in the CiviCRM group 'Administrators' to see the price fields restricted by group.

This wasn't documented as far as I noticed...but obvious in the code. Thanks extension creator! /civicrm/group/search?reset=1&force=1&context=smog&gid=1


body_text and body_html are the fields in the database that store these values, and the are of type 'longtext', which are of size 4Gb. So you're probably not hitting this limitation.

More likely, it's your php.ini configuration that is limiting the size of your "posting" (i.e. post_max_size), or a mysql limitation (e.g. max_allowed_packet).

It's also easy to put way too much bad html into these fields, particularly if you're copy/pasting from say, Word. If you take a look at your source, you might find a bunch of html you can and should remove.


Lots of failed Static function errors after upgrade to 4.7.13 (Joomla)

Solved. There were some old customised files hanging around that are no longer needed.


After 4.7 Upgrade Contact Pages Throwing Error

I got this error in Drupal after upgrading 4.6.9 to 4.7.3. Exact text (repeating several times):

Warning: array_keys() expects parameter 1 to be array, null given in CRM_Utils_Array::formatArrayKeys() (line 1037 of /home/mysitename/public_html/sites/all/modules/civicrm/CRM/Utils/Array.php)

I was able to fix one record by editing & saving. But doing that for thousands of records wasn't an option.

So comparing custom fields of fixed records to broken records in phpMyAdmin, I found that the fixed records had blank entries whereas broken records were NULL, and that the number of fields that were checkboxes matched the number of error messages. I disabled my custom field sets and the errors went away.

After disabling my fields, I updated the custom field to set the value to blank where value is null. The SQL was similar to this:

update `civicrm_value_custom_table_1` set `custom_field_123`="" where `custom_field_123` IS NULL;

I repeated that for all problematic fields, enabled my custom fields and all was well.

tl;dr: Cause is NULL values in custom checkbox fields. Fix is to update NULL values to blank values


How can I fix an incorrect SQL field in Recurring Contribution View?

That particular table is exposed to Views by the Core CiviCRM module, not CiviCRM entity.  I haven't exposed that entity to Drupal yet, but its on the todo list.

I have added some code to CiviCRM Entity to fix this...

Its available in the latest -dev release from the CiviCRM Entity project page
and will be in beta7 when it is released


How can a user related to an Organization login and be restricted so they only see related members of the organisation

I will try to answer though the english version of your question may mean i guess wrongly.

if the goal is to have John connected to organisation First Co, and Mary connected to organisation Second Co, then yes it is possible that when John logs in he is restricted to seeing only contacts connected to First Co and will not see those connected only to Second Co., and the opposite will apply for Mary.

EDIT: To do this you need to apply Access Control ACL  and the way to do that will depend a bit on the general purposes of your site.

One option for example is that you can set ACLs to work on Relationships (I can provide more detail on this) so that for example John or anyone else who is an 'officer' of First Co can then access anyone who is an 'employee' of First Co.

To achieve the latter involves installing extensions. In this case the Related Permissions extension and the extension that it depends on, CiviCRM Entity Settings.

When the above extensions are enabled, on any Relationship Type you should now see a new field saying Always Permission A to B (and vv). And at civicrm/admin/setting/misc?reset=1 you should see an option for 'Allow second-degree relationship permissions'.


Why am I getting no values when using REST api?

This is going to be a fuller answer eventually but for right now it is a partial answer that addresses how to get publicly available data via REST.

The REST API works differently than the PHP or other versions of the API. Some of this is documented and some is not.

The most important difference between the rest API and the others is that the REST API does not instantiate an authenticated user as the current user in a Joomla! environment. Therefore it cannot use any of the Joomla access controls when determining what data to provide or what actions to allow. Also  because the current user is not an authenticated user, CiviCRM roles (such as the default Authenticated User and Administrator) are not available.  Therefore the only role that is available is Everyone.

However this does not literally mean that everyone (in the sense of the unregistered public) can see.  This is because there must be a contact record with an api_key value and a registered Joomla user associated with that contact.

This also does not mean that Everyone can see everything. An ACL record still must be created. That is you must create ACL for each kind of data that you want to have accessible to the REST interface.

For GET the basic approach should be to create a group that contains the records you want to return. Call this, for example, MyGroup. To reiterate: This is not the group of users who have access to the interface, it is the group of users about whom data will be returned.

In the ACL interface click on Manage ACL.

For Role: Everyone
Action:View
Type of Data: A group of contacts
Group: MyGroup

These settings will allow you to use the REST interface to return data on one or more users in the MyGroup group, with data based on the URL you craft.

If you have a Joomla front end and you want to access a list of contacts via the rest interface you need to include a number of steps. This includes reading the keys, crafting the URL, and creating the request.

If you have a civicrm.settings.php file you can obtain the site key with the following code:

require_once JPATH_ROOT . '/administrator/components/com_civicrm/helpers/api.php';
CivicrmHelperApi::civiInit();
echo CIVICRM_SITE_KEY;

However, if you don't have access to the helper you can just require_once the settings file and that will define the site key constant.

You also need to to access the individual user level API key. Most likely it would make the most sense to  to store that in a file locally and read it in. Call that CIVICRM_API_KEY.
Then you can craft a request url, which will have three parts, the base, the api parameters, and the keys.

// Of course this should be https if possible.
$restbase  = 'http://example.com/jooomla-cms/administrator/components/com_civicrm/civicrm/extern/rest.php?';
$restkeys = '&key='. CIVICRM_SITE_KEY .  '&api_key=' . CIVICRM_API_KEY;
$restvars = 'entity=contact&action=get&json={"sequential":1,"return":"first_name"}';

// Make the request
$http = new JHttp();
$return = $http->get($restbase2 . $restvars  . $restkeys);

// Do something with the data
$body = $return->body;
$values = json_decode($body)->values;

foreach ($values as $value)
{
    echo '<div>' . htmlspecialchars($value->first_name) . ' </div>';
}

Some notes

There are many combinations of actions and entities which cannot be created in the ACL settings.

Depending on what you are envisioning you may want to create a Joomla user to be the one that provides access or you could register a user for each application that will be allowed to access publicly available data via the REST API.

These include most post and delete actions. In these cases there is sometimes checking of specific Joomla permissions such as access Civicrm but it does not work as expected. At least at this point the authorization process always returns false unless you have given the public permission to do these things via Joomla ACL. Not a good idea.

Update

I sent a pull request for a fix for this so that now permissions will be checked. You can apply this as a patch and it will work the way the documentation says (or at least it has been for me -- would love a few people to test it).


Drupal 8 account creation using email in contribution page

Yes, there isn't any such validation. If you have required registration ticked and requires email verification to activate account than add a js to hide the registration field and populate it when email address is entered


How can I create early bird fees with Webform CiviCRM?

Add a field of type Date to the webform -> set it to default: now - and set it such that start date = now and end date = now; deselect the Enable popup calendar

Conditionals: example:

Hide the date field with CSS and hide your element with CSS - as you can see above mine is called today:

.webform-component--today {
  display: none;
}


Membership Signup Form - add "Phone Number" field (required)

To add to Rowan's answer, go to Administer>Customize data and Screens>Profiles and choose the profile that is being used in your Contribution Page.  On the right hand side of that screen you will see a button called "Fields".  On clicking that button you will be taken to a page called Profile Fields where there is another button called "Add Field".   Select the type of CiviCRM record and the field you want to include in this Profile ("Phone" is an option under "Contacts" and you can make it required).

Voila!  Hope it helps.


DB Error: no such field : Assignee Contact Email

Which version did your database come from? I could imagine your report still tries to retrieve the assignee contact id from the table civicrm_activity_assignment (prior to CiviCRM version 4.4) rather than from civicrm_activity_contact?


Ok, once again I should have looked more carefully at the suggested answers
If contact has multiple cases, how do I filter a view to show only case roles associated to that case type
Start with a relationship view
Then pull in the case id from the views relationships and filter on the case type, relationship type and is the relationship active
And then bring in the related contacts
Thanks @pmoz and @ehommel


I would recomment reading up on how to customize CiviCRM here: https://docs.civicrm.org/dev/en/latest/ and here: https://docs.civicrm.org/sysadmin/en/latest/customize/extensions/

That should answer your question and also allow you to do the customizations in a recommended and structured way.

If you would like a more specific answer it will help us all ot help you if you tell us a little more about what you want to change for what reason, what version of CiviCRM you are using and what CMS.


How can I resolve Civi Dashboard Javascript error: widget.name is null?

I'm glad you found the cause of your problem. It does sound like something went wrong back when you originally created those dashlets, and it's not clear what that was. But it would be good to proactively repair this during the upgrade.

I've created a PR to do so: https://github.com/civicrm/civicrm-core/pull/9672


Go to Administer > System Settings > Directories and Administer > System Settings > Resource URLs and make sure those show the new values.  Depending on your CMS, you may need to make changes to its configuration as well.


You can import pledges with the API csv Import GUI extension mentioned in these questions:

api csv import - cannot find start page

Importing Pledges


What version of CiviCRM are you using? Can you check for any Javascript error on browser?

Try rebuilding menu by running /civicrm/menu/rebuild?reset=1 or clearing CiviCRM cache.


Access Denied After SSL Changes on Resource URL Admin Page

You can override the SSL settings in civicrm.settings.php, which will hopefully be enough to get you back in.

Add the following lines to civicrm.settings.php:

global $civicrm_setting;
$civicrm_setting['CiviCRM Preferences']['verifySSL'] = false;
$civicrm_setting['CiviCRM Preferences']['enableSSL'] = false;

Sources:

https://wiki.civicrm.org/confluence/display/CRMDOC/Override+CiviCRM+Settings
https://github.com/civicrm/civicrm-core/blob/4.6/settings/Core.setting.php


Review the page at https://docs.civicrm.org/sysadmin/en/latest/misc/switch-servers/

Did the directory path change in addition?

Stuff to try:

look at your setting.civicrm.php file for any thing that needs updating
clear out your civicrm cache directory. typically at media/civicrm/templates_c Just get rid of everything in that directory (you can leave the .htaccess). But get rid of everything else including any subdirectories (e.g. en_US) (see above link for info)
if you can access your administrative page check your directories and resource_url settings
rebuild your menu's (described in above url)


contribution page PayPal error "The link you have used to enter the PayPal system contains an incorrectly formatted item amount"

Well, asking the question seems to have helped me find the answer on my own :-)

Turns out that a custom extension for adding a percentage surcharge was not rounding the result of its calculations to two decimal places. Therefore, the total value calculated and sent to PayPal had more than two decimal places in the cents -- which PayPal doesn't accept. However, the DISPLAYED total amount value on the confirmation page DOES round to two decimal places, so it's hard without looking at the actual PayPal data to see the problem.

The form worked fine as long as all the prices were in whole dollars, but the new price item included cents.  Pure percentage calculations with cents were almost always producing surcharge values with hundredths and thousandths of cents.

Putting in a round() function on the offending calculation solved the problem.

Hope this helps someone else!


Hopefully a new release will be made for the API Key extension soon. Here are detailed instructions for creating one manually without needing to get access to your database through phpMyAdmin, mysql on the command line or some similar MySQL database administration tool.

Usually it is a good idea to create a special separate contact for each service that needs to use CiviCRM's REST API. Do this at Contact > New Individual, enter a name like Attentive.ly Service, and click Save. At the bottom of your page in small faint type and in the url you can get the Contact ID of the new contact.

Create a 16 character random value for the API Key, eg at http://passwordsgenerator.net/ with settings that exclude special characters, eg

Now use your CiviCRM installation's API explorer to set the API key for your user. Navigate to Support > Developer > API Explorer (/civicrm/api#explorer), and enter the following values then click on the Execute button. Note that the image shows Internal Contact ID as the fieldname. This is true CiviCRM up to version 4.6, but you'll need to select the Contact ID for versions 4.7 and above since it was relabeled in the API Explorer.

You will need to ensure that the contact is given a role that has the appropriate permissions required for the relevant Extension. At a minimum this will include 'Access AJAX API', and unless otherwise specified, 'Administer CiviCRM'.


Why is Microsoft Edge autofilling disabled fields on my Webform CiviCRM?

I found the answer in a post on the Miscrosoft developer forum:
https://developer.microsoft.com/en-us/microsoft-edge/platform/issues/9847360/

Some of the 'highlights':

From Microsoft:
“In IE11 and Edge, we made the decision to ignore autocomplete=off”

From a developer:
WHAT !!! ???
That’s why we are receiving so many UI complaints recently. This is a terrible decision Microsoft.
Please STOP breaking Edge by NOT supporting standard HTML correctly.
Edge should honor the autocomplete="off" tag.

And from another one:
“By Design” doesn’t mean that the functionality is correct. I’m struggling with a complex web form that is auto-populating the wrong values into some text fields in Edge browser"


In CiviCRM you cannot assign email-adresses to groups but only contacts, including all their related information such as email-adresses.

Could you specify, what you want to do with the contacts in question (e.g. sending an email to a specific address, create a pdf-letter...)? Maybe there is another solution for your task at hand.

I think the non-primary email-addresses are not found by simple or advanced search due to performance reasons - there is an older threat here:

http://forum.civicrm.org/index.php/topic,16221.msg115088/topicseen.html#msg115088


This is a symptom of missing the bower_components folder, which should be in your CiviCRM module's root folder.


is it possible to merge duplicate event locations?

Location details for events are stored in a sql table called civicrm_loc_block which brings together an address an email and a phone number for each event.

At a push you could identify the affected events and update them so they all share the same loc_block id. But that would need to be done by querying/updating the SQL tables.

Basically, there isn't a function to address this in the user interface.


1/ You can do this in a Drupal Webform so that the original coach has their relationship expired

2/ we did some work for another age-based organisation to ensure that only the valid membership type was available based on the Date of Birth. It isn't something that I could just 'share' but if it helps you and you have a bit of budget we could probably extract what you need fairly quickly.


Adding copy/code to specific donation pages

There are two "better ways" you can try.

First, you can put a template override into a folder with the contribution page ID.  So if the current override is at <overrides>/templates/CRM/Contribution/Form.php, then <overrides>/templates/CRM/Contribution/1/Form.php will only override page ID 1.

However, template overrides aren't very maintainable, and they're pretty hacky.

Instead, you can create an extension.  You can use hook_civicrm_buildForm like so:

function myextension_civicrm_buildForm( $formName, &$form ) {
  if ($formName == 'CRM_Contribution_Form_Main' ){
    CRM_Core_Resources::singleton()->addScriptFile('org.example.myextension', 'js/myjavascript.js');
  }
}

This technique is covered in greater detail in the Resources Reference.


Mine is still in testing, but yes, also seeing API errors on mobile app start. CiviCRM 5.14.1, Drupal 7.67.
There has been a new 3.1.1 release of CiviMobileAPI since your post you may want to try? I'm still seeing an error on app start with it.

Not sure about your CiviMobile, the app on play is com.agiliway.civimobile? Otherwise I don't think this: https://civicrm.org/extensions/civimobile/version-20 is required, or at least, it's an old dev and not related to the current API?


How do I control the imported user role when using CiviCRM WordPress Member Sync?

How do I control the user role that the CiviCRM users are synced as WordPress users? I'm using the "Role" Synchronization Method. Is this controlled by Association Rules?

Yes, exactly. Association Rules are the "glue" between CiviCRM Memberships and WordPress Roles (or Capabilities).

  I need to add a rule for each CiviCRM membership level?

Yes. FYI, if you have a large number of Membership Types, have a look at the newest feature in CiviCRM WordPress Member Sync, which allows you to do "bulk creation" of Association Rules.

  Will the "New User Default Role" in WordPress>General Settings override synced users Association Rules?

No. It comes into play when syncing to Capabilities, since WordPress users must have a role of some kind. When syncing to Roles, the selected role is granted instead.

  Do I need to use https://wordpress.org/plugins/groups/ ?

No, but CiviCRM WordPress Member Sync has deeper integration with the Groups plugin than with the Members plugin.

The integration with Members consists solely of granting WordPress users the restrict_content capability, which is what Members uses to determine access to, well, restricted content. The capability is removed when the Membership expires.

The integration with Groups is more sophisticated, in that Group membership can be independent of the user's role or capability. Capabilities can be assigned to groups in much the same way that roles are collections of capabilities. Membership Types can be added to (or removed from) groups depending on the status of the membership.

So... if you have removed the WordPress admin users and want to recreate them with a different role, make sure you have edited your Association Rules so that the Contacts with the appropriate Membership Type sync to your desired current and expiry roles.

FWIW, by default CiviCRM WordPress Member Sync will not sync users with the admin role in WordPress. This can be modified with a filter, but since you're avoiding granting WordPress users admin rights, you shouldn't be caught by this.


For Wordpress, make sure you have the following structure of files:

plugins/civicrm/civicrm/l10n
plugins/civicrm/civicrm/l10n/fr_FR/LC_MESSAGES/civicrm.mo
plugins/civicrm/civicrm/sql/civicrm_data_fr_FR.sql
etc

Reference documentation:
http://wiki.civicrm.org/confluence/display/CRMDOC/Installing+CiviCRM+for+WordPress


You've probably done this, but the CiviCRM wiki provides instructions on how to set up the return URL for paypal.


Welcome to SE! You don't give a lot of detail. Are you just setting up or did it work and now it doesn't?

I've seen something like this (though the menu items were part hidden under the LH WordPress menu) when I'm hosting in a subdomain. Possibly because of the symlinks in my hosting provider. I got round this by going to Adminster >> System Setting >> Resource URL (or http://..org/wp-admin/admin.php?page=CiviCRM&q=civicrm%2Fadmin%2Fsetting%2Furl&reset=1 if you can't actually see the menu) and changing the Image Upload URL to http://..org/wp-content/uploads/civicrm/persist/contribute/

Can't remember now how I worked that out as it isn't obvious!

If that doesn't work you need to provide a few more details.


The state token is a token and not a smarty variable, so it has to just be on its own, and you can't use it in the middle of a smarty if statement. You have to capture it first into a smarty variable:
{capture assign=stateProv}{contact.state_province}{/capture}
{if $stateProv eq 'FL'}

A COPY OF THE OFFICIAL REGISTRATION AND FINANCIAL INFORMATION MAY BE OBTAINED FROM THE DIVISION OF CONSUMER SERVICES BY CALLING TOLL-FREE (800-435-7352) WITHIN THE STATE. REGISTRATION DOES NOT IMPLY ENDORSEMENT, APPROVAL, OR RECOMMENDATION BY THE STATE.

{/if}


Invalid Date with Contribution API and Custom Date Field

Sounds like you are running into the Year 2038 problem.

You have different behavior on different machines, which makes sense, and also probably will make this problem easier for you to troubleshoot. (I couldn't reproduce the error message in my environment, which makes this tricky to diagnose.)

I'm not positive what the exact culprit is for you, but here are some guesses...

Different architecture

I think the most likely explanation for your different behavior is different architecture.

Assuming both machines are unix-based, you can run uname -i to see your system architecture on each.

A result of x86_64 means you are running a 64 bit system (good)
A result of i386 (or similar) means you are running a 32 bit system (bad)

If your dev box shows x86_64 and your production server shows i386, I would guess that upgrading your server to a 64 bit OS would solve this problem.

Different software

I think it's also possible that your two systems have the same architecture, but some difference in system software that would lead to this problem, since many software projects are still in the process of mitigating against Y2k38.

I recommend comparing the versions of MySQL and PHP running on each machine and troubleshooting from there.

Please post a comment when you figure out what the culprit was for you!

Other notes

Again, I'm not certain what exactly is causing this problem, but I would say it's very unlikely to be an issue within CiviCRM.
Even for custom fields, CiviCRM stores dates as a DATETIME data type in MySQL which will continue to work until we hit the Y10k problem.
MySQL still has some Y2k38-related problems, like this one, but based on the fact that you and I are both able to use large dates on our dev boxes, I'm guessing your're not running into that


How do I display the Contact ID on User Dashboard?

There are a couple ways you could do this:

Create a report that shows the contact ID and name, make that report available on a user dashboard, then you can use the dashlet extension to place the dashlet on the end-user dashboard.

Take the Contact IDs and reimport them as the External ID, then display that in the Contact Dashboard as part of the member profile.

Write some code to pull the ID out of the database and display it graphically as part of a Membership Card. I do this on one of my Joomla sites but there's no reason why it can't work in Wordpress.

Example:


I've done this sort of thing by using the Include / Exclude custom search (Search => Custom Searches => Include/Exclude Contacts in a Group/Tag)

Include a group that has all the contacts that you're looking at.  In your case you may need to create a smart group that has all the people in the country.  Then in the exclude list all the groups that they should be/could be assigned to.  Search.  You'll be left with all the people in the country to don't belong to any of the groups you listed in exclude.


Change Receipt Email Title: Template, Localisation File or Somewhere Else?

Normally this would be done in the System Workflow message templates - you can change both the message subject and text there, as well as adding more extensive customization using Smarty tags. So it's odd that it's not showing there...

One other option I can think of is that you can change certain pieces of text globally using the Word Replacements feature (Administer > Customize Data & Screens > Word Replacements. So perhaps if there was a word or phrase that you changed not only for the receipt titles but anywhere it was used on the site, you might find it there?


Did anyone have a problem with CKEditor after 4.6.22 upgrade?

After checking my js console, I found my justify plugin folder was missing:

../civicrm/packages/ckeditor/plugins/justify  <= folder missing

I downloaded the plugin from here: http://ckeditor.com/addon/justify

Expand the .zip in plugins folder, it will create the justify folder and fixes the problem.


How do I set the display size for custom fields?

The Add/Edit custom field doesn't provide facility to add additional attributes but the Custom field table does have a column to store this attributes and this field is used while rendering the custom field. You can do this by any one of the method below

Create a extension and use buildform() hook to add the attribute field on Add/Edit Custom field form. Once its added on the form after submit it will be automatically processed and stored in db by Civi.
Once you have created the custom field you can use API explorer(CiviCRM >> Support >> Developer >> API Explorer) to update the attribute for a custom field as shown in below screenshot

  Note: Make sure you add space at the end for each attribute as this is concatenated with other attributes while rendering the field.

Thanks

Pradeep


Erik I had this in my civicrm.settings.php file. After I changed it fixed the layout


How to show/hide Profile based on Price set Total on a Contribution page?

I would use calculateTotalFee() to check if total amount is > 0.

CRM_Core_Resources::singleton()->addScript("
  CRM.$(function($) {
    hideshowMainProfile();
    $('#priceset [price]').bind('change keyup click blur', hideshowMainProfile);

    function hideshowMainProfile() {
      if (calculateTotalFee() > 0) {
        $('.crm-public-form-item.crm-group.custom_pre_profile-group').show();
      }
      else {
        $('.crm-public-form-item.crm-group.custom_pre_profile-group').hide();
      }
    }
  });
");


How to send Participant-Specific information via CiviMail

OK, so this is a partial answer to my question - don't use CiviMail but use Scheduled Reminders instead - a reminder about a specific event will have access to tokens such as event summary, event start date, etc. so I can send a reminder to those signed up for an event and use tokens to specify the event. The reminder can be reused for other events without changing the body.
That's the gist, here's more detail
So there aren't tokens specific to events available from CiviMail (except that the Fuzion Tokens Extension has lots of things that are close - such as a list of upcoming events, etc., and it adds tons of tokens about latest membership start, end, fee level, etc. THANK YOU EILEEN, and @petednz for pointing me there)
However Scheduled Reminders DOES have information about events. It doesn't necessarily have tokens for some custom fields that we use during registration, but it does have lots of information as detailed below. So whereas I can't seem to get a list of attendees for an event and then email their particular registration, I CAN cause an email to automatically be sent to attendees of a particular event via scheduled reminders.
https://docs.civicrm.org/user/en/latest/email/scheduled-reminders/#tokens-available-to-scheduled-reminders
Tokens available to scheduled reminders¶
In addition to the standard tokens that are available in CiviMail, messages sent via scheduled reminders can also contain tokens representing information about events, activities, contributions and memberships that the scheduled reminder pertains to. This allows you to use one scheduled reminder template for various events, membership, contribution or activity types.
In event messages, tokens such as event location will be replaced with the specific location of the event. In membership messages, you have access to each individuals expiry date, and so on. Membership and event ID tokens are also available and can be used to create links to specific pages (such as the membership renewal page).
Note that you also have access to the checksum token which allows you to authenticate people to specific pages without them needing to log in, and show forms with details already filled in.


Changing information displayed for Pay Later feature on contribution pages

It is on the Contribution Amounts tab for any Contribution Page eg http://d46.demo.civicrm.org/civicrm/admin/contribute/amount?reset=1&action=update&id=1.

Enable Pay Later and you will see

Pay Later label
Pay Later instructions


Which version of mosaico did you use, because I had the same issue with mosaico 1.1 (described as stable on  https://civicrm.org/extensions/email-template-builder), but actually it is not supported anymore and you should go with the 2.x releases.


The table is called civicrm_participant which holds all the event participant record

If an single user is registering for multiple user then you can find the registered user using column name registered_by_id

I guess this help


I am not sure whether this correct way – But easy way – I did once for Event registration

Just make sure you have the same file path on your address bar (highlighted one)
http://examplesite/civicrm/contribute/transact

If yes then you will find a file called main.tpl in the below location
civicrm\templates\CRM\Contribute\Form\Contribution\Main.tpl

Where you can change the order by just playing around in it – also please use custom tpl folder and copy the file over there


Search builder operators do not work for Preferred Communication Method

You've found a bug.  Check out Reporting a Bug, starting with step 7.

As a point of interest - variations on this bug have been reported before. For instance, CRM-6652, several years ago, which was only fixed last month with CRM-16483.

If you're looking to patch this yourself, I would definitely look to CRM-16483 as a model.


How can I preserve smarty date formating in message templates?

You can stop ckeditor encoding quotes by editing ckeditor.js in /packages/ckeditor. There's a push command that begins 'quot,iexcl,cent,pound,curren,yen' - remove quot from this list. This isn't terribly elegant, and would obviously need doing on every upgrade, but I couldn't find anything equivalent in the ckeditor config files without disabling all html entities entirely.

Alternatively, if you don't need to use visual editor at all, you could separate the two entirely. Copy the content from the template into a .tpl file and put it in the templates directory somewhere (or in the templates folder in an extension). Then include in the visual editor with:

{include file=CRM/membership.tpl} (or as appropriate)

Then edit this file directly in whatever way suits.

(We had odd problems with the presence/non-presence of the $ sign in smarty tags when we included files like this, but that was a few versions ago so that bug may have been fixed by now.)


This is related to Word Press Install Missing civicrm.settings.php; dashboard unavailable; no menus

I suspect that the culprit is the userFrameworkResourceURL  I would tray the overrides mentioned in the above thread


There is extension 'Move Contribution' available for moving contribution from one contact to another. Once you have installed the extension transfer can be done through the contact's contribution tab or through a Find Contributions search result action.
HTH
Pradeep


Why am I getting duplicate contacts for contributions?

Hi I can confirm the same behaviour. We are on Drupal 7, CiviCRM 5.19.4 and the problem is that the Billing address profile seems to be ignored for the dedupe rules. You must create a new profile with all fields needed for dedupe rule and include it in page. The billing address name and first name is not used.


Why does the donation process not produce a receipt either on screen or dispatched by email to donor?

'Failed to update contribution in database' tells us that your Contribution is never fully completed on the CiviCRM side of things - and hence it will not get to the part where CiviCRM sends out a receipt.

In other words - the monies are processed on the PayPal side of things - but when CiviCRM hears about it - and is trying to record that the transaction was successful - it runs into a Failed to update.


Add custom field and populated with array/data from a non-civicrm table

You can do this in a few ways:

If the legacy table is static, just move the data across into a custom field select option. You'll be happier when it's done. You can do this with a SQL command if there are a lot of options.

If the data in the legacy system is changing, there are two few ways:
A) Create MySQL triggers to update the values,
B) Create a batch script to update the options in Civi from the table,


Memberships - Receipt (on-line) template: how to check if it is a subscription or a renew

I found a solution, not perfect, but it works for me: I use the $mem_status token and check if it is New. In this case I assume that it is a signup else it is a renew


"Log Volunteer Hours" form required permissions?

CiviVolunteer's "Log Volunteer Hours" dialogue relies on API permissions that appear to be missing (which is why it works for users with "Administer CiviCRM", since they have full API access). I've filed a bug report here: https://issues.civicrm.org/jira/browse/VOL-138


Issue creating Premium - requiring subscription

Problem identified and fixed by @eileen with commit planned for 5.32 - https://lab.civicrm.org/dev/drupal/-/issues/148


wrong currency on contribution pages - how to correct?

Try re-saving the contribution pages so that the new default currency is updated. You can cross check the currency used for contribution page using api explorer, it might be helpful to track the error.

HTH

Pradeep


What exposure would my CiviCRM campaign receive?

GoFundMe and CiviCRM are very different things.  If you want to build your own fundraising platform like GFM you might start with CiviCRM but if your interest is just to raise funds for your son's orphanage then GFM or similar is a much easier route.


How to write unit tests for methods thsat echo instead of return (e.g., AJAX call handlers)

I'm a bit out of date on the current status of the civi test framework, but if WebTests are still available I would do this as a WebTest.
https://wiki.civicrm.org/confluence/display/CRM/Setting+yourself+up+to+work+with+Selenium+tests

Include a line that waits for some element you are expecting to appear, then test its value using the webtest api.


Upgrade to 4.6.16+ caused site to fail with error

This is a JIRA ticket here which references a patch that others have said has fixed things. I just tried cherrypicking the changes over and then run drush cc but still seeing same errors.

clearly relates in my case to a contact_sub_type that looks like it had its name changed (in contact_type I am seeing label = Funder. and name=Funder_ but in custom_group it is just referred to as Funder)

I did try changing the contact_type name from Funder_ to Funder but no joy

EDIT: actually i think renaming did succeed, as i then reversed the patch out, for the sake of something else to try, but same error on drush cc - and then on a whim visited civicrm/upgrade, and while that page told me "Your database has already been upgraded to CiviCRM 4.6.16.0" it did the job, and the resolved alerts flooded on to the phone etc.

Hope that gives you some clues.

Also, in case it has any relevance, the sub-type that caused the problem had "CiviEngage - Funder" in the description, so wondering if the misnamed type came as part of that? Maybe worth checking.


How can I modify the Activity Report to display phone number?

Check out Lola Slade's excellent CiviCon presentations on this topic:  2015 session (download the PDF on this page); 2015 video, and the CiviCon 2012 slideshow.


i think you are right that there is not a lot of information about this currently. Multiple language can be enabled on the Localisation screen ie at http://d46.demo.civicrm.org/civicrm/admin/setting/localization?reset=1

Some documentation about it is here
http://gitbook.civicrm.org/the-civicrm-community/localising-civicrm.html
http://wiki.civicrm.org/confluence/pages/viewpage.action?pageId=88408149

Once multiple languages have been enabled, when you are creating eg a Contribution Form you should see new green buttons next to fields that will allow you to provide a translation of the text.

NOTE: we have had issues when trying to run CiviCRM with more than 2 or 3 languages so you need to test this on a dev site of course.

RANDOM IDEA: I haven't thought about this previously but if you are using Drupal then there may be options to provide alternative language versions of a webform_civicrm form that is connected to your Member Form


Is it a bug that Relative Dates are broken in Search and Smart Groups?

I think you may find that, although the search results show the relative dates converted to fixed dates, when you create a smart group from the results it will save the relative date range.

That is certainly what happens in my live v4.4.

I have also checked this as best I can on a 4.7.10 site that has had no activity or changes on it since February this year. I have a smart group based on a search that used the relative date filter Previous month.  That group has no contacts now and if I go to Edit smart group search criteria... (via the Contacts link on the Manage Groups page) I see:

  No matches found for:
   ...AND Activity Date - greater than or equal to "01 July 2016 12:00
  AM" AND less than or equal to "31 July 2016 11:59 PM" ...AND.

but when I click on Edit smart group search criteria... for the second time it shows me the actual search parameters which include:

  Activity date :Previous Calendar month


Drupal 7 unable to reach CiviCRM installer

It mentions WP_PLUGIN, are you sure you downloaded the civicrm version for drupal, and not the one for wordpress?

You can't just re-use the same civicrm code base between wordpress and drupal, you'll need to download the CMS specific version again

X+


Error on merging duplicate contacts, wordpress, civi 4.4.14

While it doesn't seem like it, your problem here is very similar to this.  You should check out the advice here and here; notices shouldn't be displayed in a production environment.

As for squelching those notices to begin with - I would see if the problem exists in CiviCRM 4.6 by trying the demo server.  If not, I'd say it's fine to just suppress notices using the info in the links above.


Issue with CiviMail reports after upgrade to 5.19.0

I believe this is fixed with https://github.com/civicrm/civicrm-core/pull/15780. It will be hopefully included in a point release that should come out soon for 5.19


A NULL value won't be a valid email address, so you'll struggle to get this into CiviCRM. This is intentional - why store an email that's not valid?

Remove address by contact edit

Correct procedure is to remove the address you want to get rid of. When editing a contact, you should be able to click on the email section, delete the text in the email field, and hit save.

Does that solve your problem? Your question doesn't indicate why you'd want to store a NULL instead of just deleting the relevant email entry.

Remove addresses by SQL

Since you say you have a bunch of "bad" addresses, you can remove them via SQL. Accessing the underlying data in CiviCRM may have risks (eg other data might be associated with an address you delete), so this should be done with caution. Here's the SQL command to delete emails none@none.com

DELETE FROM civicrm_email WHERE email='none@none.com';

(If anyone can suggest issues to this approach, please do so in comments?)

Remove addresses via API

You can also use the API - slightly more complex, but you're updating CiviCRM via its proper interfaces and it will be better able to handle the business logic around removing related data.

There's an API explorer in CiviCRM at civicrm/api/explorer, and using the tools there you can compose API commands to do what you want. Example code is given in the API explorer for javascript, PHP etc. For example, to find then remove addresses none@none.com using javascript (works from browser console if logged in with appropriate rights).

CRM.api3('Email', 'get', {
  "sequential": 1,
  "email": "none@none.com",
  "options": {"limit":0}
}).done(function(result) {
  result.values.forEach(function(email) {
    CRM.api3('Email', 'delete', { "id": email.id });
  });
});

You could use the sample PHP provided there instead, via a custom extension or module.


Using a Java Applet in CiviCRM Extension

It looks like the archive path is incorrect.
You can make it an absolute path by assigning it to the template from php:

$path = CRM_Extension_System::singleton()->getMapper()->keyToBasePath('myextension');
$this->assign('basePath', $path);

Your archive url can then begin with the smarty variable {$basePath}


How to make one CiviCRM work with Wordpress multisite

For the multisite integration across websites to work, yes you do need to do what is outlined here. That with some a few enhancement that https://wordpress.org/plugins/civicrm-admin-utilities/, which Christian noted above, allows you to connect multiple websites on a WordPress multisite to the same CiviCRM instance.


create user choice form and store that value into database

You can create custom field for a contact and then include the custom field on drupal webform.

Below are the documentation to

Create custom field for a contact
Add CiviCRM field on webform

HTH

Pradeep


How can I show groups in membership report columns?

The current correct way to create a custom report is to use an extension, rather than the manual process linked to in the question.

Updated documentation for creating a report extension is found here:

https://docs.civicrm.org/dev/en/latest/extensions/civix/#generate-report

The link in Donald Lobo's answer is now broken, but an old version of the document is still available here:

https://wiki.civicrm.org/confluence/display/CRMDOC46/Create+a+Report-Template+Extension


Symbunt Report: I need Advanced time period option

First create 2 groups, one for donors for time period 2010-2013 and the second for period 2014-present.

Then go to Search - Custom Searches - Include / Exclude Search

Then choose group 1 as "include group" and group 2 as "exclude group" and click Search.

The result will contain exactly the people you want.
It would make sense to add them to a third group, so you can send them a Mailing or whatever you want with them.