How do we preprocess CSV columns when using CiviCRM builtin import functionality?

One possibility could be importing the data as it is (maybe using a temporary field for that column) and use
hook_civicrm_post() to manipulate the contribution just after creation:

function example_civicrm_post($op, $objectName, $objectId, &$objectRef) {

  if ($objectName == 'Contribution' && $op == 'create') {

    if (!empty($objectRef->temporary_field)) {

      // Preprocess field. FIXME: do some validation first.
      $objectRef->real_field = do_awesome_stuff($objectRef->temporary_field);

      // Clear temporary field.
      $objectRef->temporary_field = '';
    }
  }
}


Is an SPF Record required to get CiviCRM to work with Amazon SES? (1and1 hosting)

An SPF record is recommended, but not the cause of the above error.

That error message indicates failure to make a network connection from CiviCRM's mail library to the configured SMTP server.

According to http://docs.aws.amazon.com/ses/latest/DeveloperGuide/smtp-connect.html, port 587 is for STARTTLS connections. ("TLS" is an overloaded term used in a confusing sense here, don't sweat it.)

It looks like you currently have a value of ssl://email-smtp.us-west-2.amazonaws.com:587 in your Admin > System Settings > Outbound Email > SMTP Server field.

I suggest you try using the following - please report back if one or both work?

tls://email-smtp.us-west-2.amazonaws.com:587
ssl://email-smtp.us-west-2.amazonaws.com:465

I see that for optimal performance, Palante recommend using a local Postfix MTA which then routes email to Amazon SES. Make special note of the SMTP throttling warning at the bottom of that page.


I ended up hardcoding it so it uses $contact['email'] instead of $params['to_email']

I am leaving it open for some time, if anybody has a better idea (or if I missed something obvious)

UPDATE:

The developers of the extension included this feature. Using version 2.0 the PDF will be emailed to the associated contact if the to email field is left empty. So no need for hacks anymore. Big thanks to ErikH - CiviCooP


Can't Uninstall CiviCRM from Joomla after failed civiCRM upgrade

I unzipped the civcicrm file that did not get unzipped during the upgrade process. This allowed me to get the Joomla admin area back. I downloaded an alt version of civicrm and tried the upgrade again. It didn't work but at least I can get back into my joomla admin.


Unable to locate folder xml under the civicrm root directory

It sounds like perhaps you are developing your extension within a normal CiviCRM installation instead of a development installation. If this is the case, you'll need to set up a development installation in order to get the xml folder (and other things too).

The best way to set up a development installation is to use the civibuild tool which you will get if you install buildkit.


How should I configure CiviMember so both individuals and organizations can hold memberships?

I think the missing piece of your puzzle is to enable CiviCRM's inherited membership functionality.

Create a membership type that will be inherited from your organization members.
Set the relationship type to Employer of.
Your organizations' staff will now be considered members, which allows you to send them emails, and lets them renew their employer's membership online.

You can read more about this in the user and administrator guide.


How do I disable custom css on frontend with Wordpress?

It might be simpler to just tweak the css to apply only to the admin pages using body.wp-admin (there may be more specific CiviCRM or WP classes you can use).


Why does PHP Contribution API not filter on contact_id in 4.6.2?

This is a bug and has been reported by @huulbaek as https://issues.civicrm.org/jira/browse/CRM-16393?jql=project%20%3D%20CRM


Please refer to CiviCRM documentation, section on installation here https://docs.civicrm.org/sysadmin/en/latest, CiviCRM database is stored on your hard drive or local network depending on your setup


How can I change what data gets exported using the Accounting Batches feature?

Have  you seen Eileen's extension for integration with Xero?
CiviXero


I figured out how to create a custom search using 'search builder' and it has an option to search for attachments in the drop down.

Issue resolved


How to convert a STOP message sent to an SMS provider into the "Do not SMS" privacy preference in CiviCRM?

It's probably possible to do via an extension, e.g. something similar to https://civicrm.org/extensions/auto-reply-twilio-sms
Otherwise there is a generic "inbound" function that handles incoming sms if the provider lets you set up a callback, e.g. twilio setup, and it's implemented in civi via this code and individual sms provider extensions can use it like this.
So it seems possible to implement something generic.


Solved - Wrong base URL for Civi include files (Wordpress)

The problem I am experiencing is related to this issue Word Press Install Missing civicrm.settings.php; dashboard unavailable; no menus

The override provided has the site up and running. Yay!

(If someone can relay my thanks to Kevin Cristiano I'd really appreciate it!)


Who supports civiCRM in Raleigh NC using Wordpress?

You'll find a good list of available CiviCRM/Wordpress implementation experts here:

https://civicrm.org/partners-contributors?country=All&services=Implementation&language=All&cms=WordPress


Why are Activity Imports failing with error message "source contact id not valid"?

The issue we were having was with two fields in the import field mapping having the same name.

Amending the field labels through Admin>custom data to allowed us to able to link the data to the right location.

-As I said both fields shared values and labels so it's not clear why this was a problem. Or at least, became a problem between this month's import and last months.


Welcome to S.E. and CiviCRM. Having Contacts without First and Last is quite common and is often done intentionally to get Contacts signed up for Mailing Lists. If a contact has no First or Last then it is correct that the email shows as their Display Name and their Sort Name.

That said, if you really want to find and destroy/cull, then Search Builder (under Search) is your friend as it offers a Filter for 'IS NULL or IS Empty' hence you should be able to do something like the following

Individual > First Name > Is NUll (or empty)
Individual > Last Name > Is NUll (or empty)

From the Actions tab you can then Export them, and then Delete them


How to create a WP account for an user already in CiviCRM?

Are you using Caldera add on plugin to create wp user if yes than i guess its a question to ask Caldera support team.
Also can you check the email address you used already has wp user account or there is an entry in civicrm_uf_match table under uf_name column


Any CiviCRM integrations with Zapier or IFTTT?

No progress been made on the Zapier integration. The customer in question thought it was nice for testing purposes and as a proof of contact but did not deem Zapiera good solution in the long run. So no funding.


We did experience that for specific mail providers. Local delivery and most mail providers were fine or not having any non 7bit encoded characters.

We ended up forcing a downconversion to 7bit encoding on our MTA prior to signing with DKIM as described here for postfix: http://postfix.1071664.n5.nabble.com/On-DKIM-and-Content-Transfer-Encoding-tp68767p68769.html


How can I avoid my import crashing with a Fatal Error due to an existing external ID?

Thanks to Jamie McClelland, there is a patch available to make this more user-friendly. At some point hopefully it will be merged into core.

JIRA: https://issues.civicrm.org/jira/browse/CRM-19664
PR: https://github.com/civicrm/civicrm-core/pull/9410

With this patch applied, instead of a fatal error, the import will continue and the problem rows will be pulled out in an error file at the end.


How can I integrate (optional) membership sign-up on a CiviEvent registration form?

There's an extension my colleague built for a client of ours that handles this: https://github.com/aghstrategies/com.aghstrategies.eventmembershipsignup

It should work for you. Unfortunately, we just haven't had the time to get it documented as much as I'd like (or to list it in the extensions directory). If you end up implementing this, please drop me a note at andrew -at- aghstrategies.com. I'd love to hear what suggestions you have, since it is on my to-do list to get it listed and write the documentation needed.


2
down vote
I have published a quick Laravel package that can help building the API3 integration... it also has a lot of documentation that is not easy to find in the Civi world...

Take a look... contribute...

https://github.com/leanwebstart/civi-api3

Also on pakagist... leanwebstart/civi-api3

Hope this helps someone...


After security update civi admin menu has twinned support menu-heading

This is a very small bug, but to fix easily, here's my above comment again. This problem is also true for Drupal on a couple of 4.6.9 test systems of mine. I fixed by using the navigation menu update in administer/customise data and screens. I deleted the second Support item and all was well.


Insert buttons in public registration forms

You should use Smarty:

According to the CiviCRM Javascript Reference, public-facing pages should follow the principle of Progressive Enhancement.

"Front-facing pages like contribution pages and event signups should adhere to the standards of PE. All front-end pages should be fully functional with js disabled."


Does CiviCRM Spark come with a Drupal or Joomla website?

Sorry, Spark cannot handle the public-facing website part. We have locked out those Drupal features. Only the CiviCRM features are available.

However, you can use another service to create your website, then point to your CiviCRM forms hosted on Spark (donation form, newsletter signup, event registration, etc).

CiviCRM Spark aims to help people evaluate and get started with CiviCRM. It is also suitable for smaller organisations (larger ones will hit the contact/email limits and will want to customize it more). For those who outgrow Spark or who have more customization requirements, we recommend contacting a CiviCRM hosting partner.


How to show Days in Case in Drupal Views?

Got it!

In Drupal added the Unix Timestamp format:
Administration/Regional and Language/Formats/Add Format.
For the string I put in U.
Added the Date Type Unix Timestamp

In the View:
Added the Start and End Date fields.
Under Date Format selected the Unix Timestamp type I just created.
Added a Math Expression field with the expression (([end_date]-[start_date])/86400) since there are 86400 seconds in a day.


Submit Button Hidden on Reports for adding contact to group

The submit button is hidden because the user does not need to click it. When selecting a group you will be instantly presented with a confirm dialog:

If this is not working for you, you might be experienceing javascript errors on your website. Try this troubleshooting guide.


I am not sure WHAT was different, but I just went back and reloaded the System.php file again, and it is working now.


Error Upgrading DB to 5.15.alpha1 on Drupal 7: SQL error

What you can try is in line 8 in CRM/Upgrade/Incremental/sql/5.15.alpha1.mysql.tpl you can change it from

SELECT @option_group_id_ps as option_group_id, {localize field='label'}`label`{/localize}, value, ov.name, weight, ov.is_reserved, ov.is_active, is_default

to

SELECT @option_group_id_ps as option_group_id, ov.{localize field='label'}`label`{/localize}, ov.value, ov.name, ov.weight, ov.is_reserved, ov.is_active, ov.is_default


Where to hire CiviCRM consultants or developers

You may want to have a look at CiviCRM's Partners and contributors page.
For special requirements, it would be helpful if you specify a bit more in detail, what you are looking for. Also, this CiviCRM forum may be of interest: Professional CiviCRM Services

Regards
Fabian


Create an event without country and state

Its a core bug. You need to first empty the selection for state/province save the form and than empty country selection and save the form.
HTH
Pradeep


When adding CSS in civimail (under source) getting an error when trying to see or send test

You will need to add your style sheet inside {literal} when adding stylesheet in Message template. For example

{literal}
<style>
 your code
</style>
{/literal}


Can multiple websites be synchronized under the same CRM installation

It is possible to have a single civicrm wired to several CMS instances.
There is some documentation here
https://docs.civicrm.org/sysadmin/en/latest/install/multi-site/
There are hurdles to get over, for example, how to synch users across the various CMS
There are other approaches to pull in data from other sites without wiring CiviCRM in to it including

Remote Forms

Profiles using HTML snippets

using the RestAPI

Some good answers here
Perhaps best if you want more input on this Q+A to add more info to your Question detailing a bit more including how you see logged in users functioning across the sites


Sync WordPress users to Organizations instead of Individuals?

I have used the Contact Editor extension to change households to individuals.  It should change individuals to organizations but I have never tried this.

I can't speak towards changing CiviCRM contacts synced to WordPress users.  This could have an adverse effect so I would proceed cautiously.


How to let extension users choose cache system?

1. CRM_Utils_Cache::create()

When looking through the list of cache drivers, you see options like Memcache, Memcached, and Redis. Generally there's little reason why a deployment would use all three -- rather, the typical question this:

Do we have any kind of high-speed/shared/memory-based cache? If so, use it.
Do we have any kind of SQL-backed cache? If so, use it.
Otherwise, use an ephemeral array() (for the duration each request)

In v4.7, CRM_Utils_Cache::create() is a factory function which accepts an ordered list of drivers, and it picks the first one that's usable, e.g.

$myCache = CRM_Utils_Cache::create(array(
  'name' => 'somethingsomething',
  'type' => array('*memory*', 'SqlGroup', 'ArrayCache'),
));

This aims to address the typical use-case by making it unnecessary for the admin to configure anything extra for your specific extension.

Your extension would need to retain a copy of that cache object, e.g.

function myextension_cache() {
  if (!isset(Civi::$statics['myextension_cache'])) {
    Civi::$statics['myextension_cache'] = CRM_Utils_Cache::create(array(
      'name' => 'somethingsomething',
      'type' => array('*memory*', 'SqlGroup', 'ArrayCache'),
    ));
  }
  return Civi::$statics['myextension_cache'];
}

I believe this answers the typical requirement/issue when someone wants to configure the extension's cache, but it doesn't literally answer the question...

2. Named services and caching

The Symfony service container is a general-purpose tool for naming and tracking a bunch of objects -- cache services, database services, entity-repositories, etc. Rather than have a hundred functions like myextension_cache() which hard-code the factory, we put all the factories together in the container. This pattern improves our leverage; in principle, you can expose the container to different processes, e.g.

Reading multiple YAML/XML files to configure the container
Allowing extensions/hooks to alter the container
Allowing site admins to alter the container
Allowing dev-tools and admin-tools to inspect the container

For this reason, new caches in core tend to be created through the container, e.g.

Civi::cache() is equivalent to Civi::container()->get('cache.default')
Civi::cache('js_strings') is equivalent to Civi::container()->get('cache.js_strings')

However, at this point, the container in Civi needs improvement. For example, you can alter the container via hook_civicrm_container, but there's no YAML/XML/annotation mechanism for updating the container, and there's no mechanism for site-admins to modify services via config file (civicrm.settings.php).

The long-term goal is to shift more service-management into a container so that questions like "How does a site admin customize service X?" have a categorical answer. Improving the container is very much patch-welcome.


These are the various types of permissions to be needed for the users. Allowed values are CRM_Core_Permission::VIEW, CRM_Core_Permission::EDIT, etc.

See more types of permission here - https://github.com/civicrm/civicrm-core/blob/master/CRM/Core/Permission.php#L49-L54


There are several extensions designed to do exactly this.

First is the aptly-named Option Values Importer.  It hasn't been updated recently, and it only does the one thing - but it may be simpler to use as a consequence.

There's the configitems extension.  This one has a bit more setup, but is great if you have to add/remove values on a regular basis.

Finally, there's the CSV API GUI extension.  This is an alternative to the "API Explorer" approach Pete suggests, that lets you import in bulk from a CSV file.  This works with all modern versions of CiviCRM and is probably the best bet if you don't want to mess with putting files into your web server's file system.


Email Greeting Updater in scheduled jobs failed

You need to provide the required parameters for this particular job, in this case it's looking for the contact type (ct) and greeting (gt) parameters. The link below has more info on what you're choosing from.

https://docs.civicrm.org/user/en/latest/initial-set-up/scheduled-jobs/#job_update_greeting


You should be able to implement a hook via PHP to validate the profile when it is submitted: https://docs.civicrm.org/dev/en/latest/hooks/hook_civicrm_processProfile/.

Someone else may want to chime in. I'm not sure if you can use form hooks with profiles. Otherwise you may check this: https://docs.civicrm.org/dev/en/latest/hooks/hook_civicrm_validateForm/

You can then use PHP to validate the file size:
Check this thread (https://stackoverflow.com/questions/9153224/how-to-limit-file-upload-type-file-size-in-php).


On current versions of civicrm as per demo at http://d46.demo.civicrm.org/civicrm/report/instance/22?reset=1 you can click on Column tab and tick 'Organization Name' (which is the organisation the person is an employee of).

Organization Name was added as of CiviCRM 4.6.9 - see here.


Check this out!

https://civihr.org/

It's an extension (add-on) to core


How to sell membership on event page and apply the membership discount? (Autodiscount)

The Event Membership Signup extension is designed for this purpose--to give a discounted price for the membership/event combo--but it won't help in certain complex scenarios.

If your event fee is $100, and your membership fee is $50, and you want to give a $20 combo discount, there are two ways to do it. You could add a new price field with a single checkbox option for $30 membership, or you could add a new option to your existing event price field offering a registration and membership together for $130.

On the other hand, you cannot (without custom code) say that selecting the membership option gives 20% off on each of a bunch of possible add-on items.  The discount comes from the price you assign to the option that gives you the membership, so the discount can't be variable.


Fatal error: Call to undefined function ctype_space()

I solved this thanks to the friendly help above. There were indeed php.ini's inside and outside of the jail, but they weren't really the problem (ctype was activated there). Instead, I had to restart php-fpm to make PHP notice them. Not sure why but it did the trick.


Enable Volunteer Opportunity Listing with Wordpress

If your wordpress install will not show volunteer opportunities, this is what worked for me:

/civicrm/?page=CiviCRM&q=civicrm/vol/#/volunteer/opportunities

instead of:
/civicrm/vol/#/volunteer/opportunities


What should I do about Deprecated Functions?

All you can really do is log an issue or PR. You're right they don't hurt anything but yes they'll need to be fixed by the extension/core eventually.
If you want to turn them off temporarily you can hack CRM/Core/Error/Log.php to just return instead of logging them, but of course they'll come back when you upgrade if they aren't fixed yet.
I'll note though that the logging is also there in the situation where it was marked deprecated but it's not known fully if anyone has a configuration where it's used, and so the hope is they'll report it.


How do I add a Membership Expiry view-only field to a user profile page in Wordpress?

If you want to fetch this information directly, the following code should get you started. It displays the logged-in user's membership expiry date:

// get current WP user
$user = wp_get_current_user();

if ( civi_wp()->initialize() ) {

    // get contact ID
    require_once 'CRM/Core/BAO/UFMatch.php';
    $civi_contact_id = CRM_Core_BAO_UFMatch::getContactId( $user->ID );

    // get CiviCRM membership details
    $memberships = civicrm_api( 'Membership', 'get', array(
        'version' => '3',
        'page' => 'CiviCRM',
        'q' => 'civicrm/ajax/rest',
        'sequential' => '1',
        'contact_id' => $civi_contact_id,
    ));

    // show expiry date
    echo $memberships['values'][0]['end_date'];

}

Obviously your production code would include error checks after fetching the CiviCRM Contact ID and the Memberships that they may or may not hold. It would also convert the date to a more friendly format.


why are my expired memberships showing as current?

Is your cron running and is in the scheduled jobs "Update Membership Statuses" enabled?

If both are active what is in the "View Job Log" of "Update Membership Statuses"?

You can also run "Update Membership Statuses" manually once to see if this will solve your problem.


Reports will no longer generate pdfs:Shows HTTP 500 error

After updating to the latest CiviCRM it seems the problem was corrected.


Print PDF Letter. Image not readable or empty

Please try to add Image tool and upload your image using the Image tool that should work correctly - please try the same against Demo server


Upgrade from 4.5.8 to 4.6.2 killed View Contact Tabs

Aaahhhh!!!! I just noticed that this client's Drupal user ID was set to view the site with the default Garland theme whereas my Drupal user ID was set to view the site with the custom theme built for this site. I switched the client's Drupal user ID to use the custom theme, and now AJAX refreshes correctly. So, it appears Drupal Garland theme specific.


How to get Geocoding to use my Google API key?

You weren't imagining things. CiviCRM 4.6 and 4.7 until recently was ignoring the Google API key altogether! I'm not sure the history of that, but it would have been great if someone had documented that in the settings. As of the latest 4.6 and 4.7 the Google API key is getting recognized again (https://github.com/civicrm/civicrm-core/blob/4.6.23/CRM/Utils/Geocode/Google.php). Once I upgraded, I checked the URL getting passed and it now attaches the key and uses https (the other requirement of Google). And in the API dashboard I'm now seeing activity.

So the answer to your question is: upgrade CiviCRM to the latest in order to get Geocoding to use your Google API key.


How do I allow multiple monetary display formats on the same installation?

Here is an extension that might help a bit with money formatting issues in Canada:
https://civicrm.org/extensions/canadianbacon
It basically sets the CiviCRM money settings dynamically when it detects the fr_CA or fr_FR language. We have been using these kind of hacks for a while, but had never bothered to make a proper extension, hoping it would be fixed in core (which is more complicated to fix than expected).


Is it possible to access contribution tokens in hook_civicrm_tokenValues?

I think I can self-answer this after exploring various methods to create end of the year thank-you letters for recurring/multiple contributions - the donation tokens are not passed in the $values array, and are not otherwise easily accessible from within the hook function.

In theory it may be possible to access an array of contribution data passed in the Smarty variables, but it was way easier to simply make a custom token that does it's own queries to create a small table showing all donations made in the previous calendar year (including donations made by a spouse)...


You have several options, which I detail below - but I think the most important thing to do is check your CiviCRM log.  It's likely to tell you what your problem is.

Past that:

One option is to adjust your php.ini settings to change the max_execution_time to zero.  You can also do this in civicrm.settings.php if you prefer.

Another is to import your data on the command line using the API CSV import tool - but this requires breaking up your data into separate entities (e.g. Contact, Address, Email, etc.).  This is very efficient on large imports but not worth it unless you can script it (e.g. with Pentaho Data Integration).

I agree that it's very likely that either geocoding or USPS address validation is likely a culprit - but the easiest way to test that is to disable, do a test import and check the result.

If you're a programmer and don't like using Pentaho, you could also try writing an importer that uses the advimport extension.


Perhaps you have is_test participants?

Events -> Find Participants
Participant is a test? Hit the Yes radio button
Search

If you have any - then select the participants you found - and then in the actions: delete participants.


Is sandbox the way to try out certain extensions now (instead of Cividemo)?

To try out extensions, I recommend setting up CiviCRM Buildkit. CiviCRM Buildkit makes the task of spinning up CiviCRM test instances (in multiple flavours) much easier, then you can try any extension you like on it - and have a more complete environment to test in.

https://github.com/civicrm/civicrm-buildkit


Create custom fields under Administer - Custom Data and Screens - Custom fields.

Make sure you check the box for "is this field searchable".

Then the field should be available for searching in Advanced Search or Search Builder.


Add custom data field column to relationship tab

Some of the pages that you would expect to support hook_civicrm_searchColumns don't - they're mostly older screens that don't use the appropriate shared code.

Ideally, we would rewrite these pages to use CRM_Core_Selector_Query so the hook fires.  Since that's not often feasible within a budget, I've resorted to using template overrides, with API calls within the override to pull in additional data.

If you want to avoid overrides, you could probably use JavaScript includes.

None of these are perfect, but short of rewriting the screens (a noble goal!) this is what we have to work with!


You can use try/catch and the CiviCRM_API3_Exception class to get more information. It would be something like this:

try{
  $result = civicrm_api3('contact', 'get', $params);
}
catch (CiviCRM_API3_Exception $e) {
  // handle error here
  $errorMessage = $e->getMessage();
  $errorCode = $e->getErrorCode();
  $errorData = $e->getExtraParams();
  return array('error' => $errorMessage, 'error_code' => $errorCode, 'error_data' => $errorData);
}

The getExtraParams method should give you what you are looking for.


Mosaico: Where can I find the source code of my mailing?

I believe you can set the "Mailing Visibility" option (accessed by clicking the "Advanced Mailing Options" button on the 3. Options page of the Mosaico workflow) to "Public Pages" which will create a public HTML page that visitors can view, accessed by a tokenized link in the email itself. You should be able to get the HTML from this page and add it to your homepage... or just add a link to that public page.

  Mailing Visibility

  This option controls who can view the contents of
  this email on your website. The link can be included by inserting the
  "Mailing permalink" token (place it in a link when composing in HTML
  mode).

  The options for mailing visibility are:

  "Public Pages" will make the content of this mailing viewable everyone
  who has the permission "view public CiviMail content". Note that even
  people who did not receive the mailing would be able to find it via
  search engines. "User and User Admin Only" means that only users that
  received the mailing or administrators can view this email on your
  website; users must be logged in to view the message.


Note this is also tracked in gitlab https://lab.civicrm.org/dev/membership/-/issues/34


Drupal views: How to aggregate CivCRM Relationships?

In the past when I have tried doing this sort of thing I have had to use a Drupal module.

Maybe try this module:
https://www.drupal.org/project/views_aggregator


How do I find a patch for an issue in CiviCRM's issue tracker (JIRA)?

If you click the all tab on the issue - you'll see the link to the patch

How to apply a patch: How do I apply a patch supplied in the issue queue via Git?


When I looked at this I found that SiteHealth does not account for sessions and CiviCRM depnds on them.  See the discussion at https://lab.civicrm.org/dev/wordpress/-/issues/32


CiviEvent Widget: Event Title Not Showing on Event Info Page

This is a bug in CiviEvent Widget - though an understandable one.

The widget uses CRM_Utils_System::url() to construct URLs to the CiviEvents but -- when the widget is viewed on a page/post where there is a CiviCRM shortcode present -- the url() method returns public-facing URLs using the permalink of the page/post instead of the WordPress "basepage". FWIW, the reason for this is that the CiviCRM forms treat the post where the shortcode is embedded "as if" it were the basepage.

The solution would be for CiviEvent Widget to construct URLs that always point to the WordPress basepage, whose "slug" (which is its $post->post_name) is available via $config->wpBasePage. Something like this in its code:

$config = CRM_Core_Config::singleton();
$slug = $config->wpBasePage;
$post = get_page_by_path( $slug );
$basepage_url = get_permalink( $post->ID );

Indeed, I see that the plugin already accesses the basepage slug so it's almost there.


Settings values not showing up. Cache issue?

I reviewed the problem carefully and found that it is caused by the jSGCache plugin that comes preinstalled on all Joomla sites installed via Softaculous. When the plugin is enabled, it adds a special cookie to to prevent caching the admin panel. This seems to conflict with CiviCRM and results in the problem you reported.


Is it possible in civicrm to create a structure where there is a main Branch this BRANCH has 4-5 sub branches BRANCH1, BRANCH2, BRANCH3, BRANCH4, BRANCH5 each of sub branches has 4-5 membership type.

Yes - just make a Membership Type and set each of the sub-Branches as the 'Organisation' for that Memb Type

  what type should i mention for custom fields like 'RESEARCHING SCHOLAR LINKS' where somebdy was member of Branch1 and new member is trying to be member of branch 2,.

Probably a Contact Reference field

  what should be the content type be given to custom fields so that relationships can be easily created/established.

Relationships do not have anything to do with Custom Fields. You can use Contact Reference custom fields to link one Contact to another, but it is more common to use Relationship Types


contribute page for membership admin use only

If you set your link to the contribution page so that it has the following at the end of the url - &cid=0 - then you should see the page load with no contact linked to it. And if you set the cid to an existing contact id, then people with permission would see the form loaded with that contacts data in place. EG

http://d46.demo.civicrm.org/civicrm/contribute/transact?reset=1&id=1&cid=0 should load with no contact

http://d46.demo.civicrm.org/civicrm/contribute/transact?reset=1&id=1&cid=203 should load with contact 203

Does that help you when combined with the right permissions?


I think your action is way too long and possibly separated into a few words in your function name? Can you check?


There is an extension called Report Plus which provides nice matrix on Contact, Contribution Membership etc. I guess you can use this extension to build your report.

HTH

Pradeep


This conversation has been taking place on the CiviCRM Partners' list in the past week.  Fortunately, some folks from the list created a wiki page to track the best options, which is available here: Mailing Providers.

I like Amazon SES, which termdark referenced (I'm the author of that documentation they linked).  However, CiviCRM partners with much larger installations don't like it because it lacks some high-end features (e.g. sub-accounting) and because they can vary their throttling.

If you're only sending 600 messages/month, you can probably use your web host's SMTP servers.  If you're on a VPS, you can set up Posfix yourself - you're unlikely to get blacklisted with such a low volume if you configure it right, and being able to configure Postfix is an important part of how to set up Amazon SES.

EDIT: There's a lot of interest amongst the partners in SparkPost.  They offer 100,000 free messages a month, and support many of the high-end features.  There's also an extension under development by the folks at CiviDesk to use the more efficient (and easier to set up) API for bounce handling.


We have a little trick for this situation.

This extension

https://github.com/eileenmcnaughton/nz.co.fuzion.notificationlog

allows you to replay processing IPNS from the system log - e.g after installing try

drush cvapi NotificationLog.retry system_log_id=xxx


Change Recurring Contribution Details from Views/Drupal

Hmm, this sounds similar to the access problems we once had for users not able to change amount or update details of the recur payment.

Not sure if it exactly matches with your use-case, can you try applying https://gist.github.com/jitendrapurohit/8e445fd869595411ee12e0a1345a6d12 on your site and confirm if it works for you?


How can do a bulk delete of users in Civi?

This is actually a Drupal and not a CiviCRM question.  A good answer is posted here; an alternate approach is the Bulk User Delete module, but for your use case I think that might not be as easy as some of the answers under the first link.


Blank pages indicate that PHP has exited ("fatal error" etc), but that debug output is disabled. Your next step is either to enable display of debug in the page output, OR to obtain the debug from the backend.

Please refer to this answer which explains how to debug when you run into a blank page:

Joomla Backend (Admin), CIVI White Page after installation

Can you be specific about which site logs you've checked? It may be there are some other logfiles you need to look at (see linked answer).


How to list upcoming events with pictures and updating registration links?

You could try CiviCRM Event Organiser, which syncs events between Event Organiser and CiviCRM. If you create your events in WordPress via Event Organiser then each event can be assigned a Feature Image. Here's an example listing where some events have Feature Images. As a bonus for busy sites, you get a nice calendar that comes as standard with Event Organiser.

Sync works with repeating events if they are created in Event Organiser and then synced to CiviCRM - but not the other way round yet. Each event that has been synced to CiviCRM will have a link to the relevant CiviCRM registration page on its standalone page but it's possible to inject this into the archive template too.

It has to be said, however, that this is a fairly heavyweight solution and can take a fair bit of setting up so YMMV, caveat emptor, etc etc. I would strongly recommend installing on a development version of your site (or a test site) first.


"You cannot transfer or cancel as you are not currently registered for this event."

Also noticed that this is a pending/pay-later event registration, could that be why?

Yes, according to the latest code till 5.19.1, I see transfer or cancel is only possible for participant with status = Registered


Extending default search for name to consult a custom field

I can't think of a way to easily alter the search in all cases (quick search, autocomplete, normal search...

What we usually do when we have to store organisational units is to create a new contact type (department) and store together the org+"|"+dep as the organisation name.

if this is a matter of making it easier to input the departments in that format or tweak some reports, you can still keep a separate field for the department and alter the organisation name via the hook, or split the organisation name on the "|" to separate the university from the department.

From a data modelling point of view, it won't win any beauty contest, but does the job. and it's more or less what's happening with the individuals, where first and last names are separate columns that are concatenated into the sort_name and display_name.


How can I export contacts and tags, but only for a particular tag?

Yes, you can export tags for contacts with a particular tag. It doesn't seem you can export just one particular tag, but you could easily do this as a post-process once you've exported to CSV.

Checked on http://dmaster.demo.civicrm.org/ -

Search => Advanced Search
"Basic Criteria" group => Tags => Volunteer
Submit "Search"
Click "All 61 Records"
Select "Export records" action
Export PRIMARY fields
Exported CSV contains tag information ...


This is basically a system admin question rather CiviCRM specific. I personally don't have very good experience in doing this but when there is URL changes

Make sure your new domain is pointing to correct server IP
Update the url in apache or nginx conf.
Update .htaccess file in your site directory if its using any base url.
Update the base url in wp-settings.php or drupal's settings.php file.
Update the base url in civicrm.settings.php file
Clear drupal and civicrm cache
If using wordpress you may need to update in database

Query:

UPDATE wp_options SET option_value = 'http://new_domain.org' WHERE option_name IN ('siteurl', 'home');

Cheers

Pradeep


Why is the receipient count in CiviMail less than the number in the group? No, I mean, specifically!

Here's a piece of sql that answers the question to some degree:
select count(distinct(gc.contact_id)), gc.status, e.on_hold, c.do_not_email, c.is_opt_out, c.is_deceased from civicrm_group_contact gc inner join civicrm_email e on gc.contact_id = e.contact_id inner join civicrm_contact c on gc.contact_id = c.id where group_id = the_group_id_you_care_about and e.is_primary = 1 group by status, on_hold, do_not_email, is_opt_out, is_deceased;

And here's what I got from it:
+--------------------------------+---------+---------+--------------+------------+-------------+
| count(distinct(gc.contact_id)) | status  | on_hold | do_not_email | is_opt_out | is_deceased |
+--------------------------------+---------+---------+--------------+------------+-------------+
|                          10374 | Added   |       0 |            0 |          0 |           0 |
|                           1085 | Added   |       0 |            0 |          1 |           0 |
|                              9 | Added   |       0 |            0 |          1 |           1 |
|                              2 | Added   |       0 |            1 |          0 |           0 |
|                              2 | Added   |       0 |            1 |          1 |           0 |
|                           3792 | Added   |       1 |            0 |          0 |           0 |
|                              1 | Added   |       1 |            0 |          1 |           0 |
|                              3 | Added   |       1 |            0 |          1 |           1 |
|                              1 | Added   |       2 |            0 |          0 |           0 |
|                              1 | Pending |       0 |            0 |          0 |           0 |
|                              2 | Pending |       1 |            0 |          0 |           0 |
|                           2546 | Removed |       0 |            0 |          0 |           0 |
|                            313 | Removed |       0 |            0 |          1 |           0 |
|                              2 | Removed |       0 |            1 |          0 |           0 |
|                              2 | Removed |       0 |            1 |          1 |           0 |
|                             67 | Removed |       1 |            0 |          0 |           0 |
|                              1 | Removed |       1 |            1 |          1 |           0 |
+--------------------------------+---------+---------+--------------+------------+-------------+

The pending and removed could be ignored, but it's also nice to see how many people removed themselves from your list.
Note this doesn't give a complete answer, there's still about 800 to go to get down to 9560 receipients, but in this case, it was due to 800 duplicate email addresses. I'd probably need to use a separate sql to show that, but patches welcomed.
Also seems like a civireport to do this might be nice.


Mange Event > Configure > Dithered Options

This is a known issue that happens with the Shoreditch theme. It is due to a problem between Core and Shoreditch/Bootstrap, that I've written about here.
You can still click the top option and then use the top tabs to navigate to the page you need.


Number of zero after colon in Price field

The backend isn't exposed to the visitor, so you might just not worry about it.
There is a good reason to have currency showing to what might seem an excessive number of places: taxes! For example, a membership price on that screen would be showing the amount exclusive of taxes, and if you lived somewhere that typically shows prices with tax included, then you might want a membership price that makes use of those extra places.


"Please go back and complete the CAPTCHA" appearing when registering multiple participants for an Event

Looks like a bug- see comments
2 possible workrounds

1) Limit to single participant registration

2) Create new profile w/o captcha and use this as profile for additional participants

Or as you suggest disable captcha for profile entirely


How to code a handler for  HTTP requests?

It seems CiviCRM takes the default page action, civicrm/contact/view/someaction?qstr seems to return the same as civicrm/contact/view?qstr

Civi's router uses a fallback search. (The wisdom of this can be debated elsewhere - I'm just reporting facts.) For example, if you request civicrm/foo/bar/baz, then it will look for the routes in this order:

civicrm/foo/bar/baz
civicrm/foo/bar
civicrm/foo
civicrm

The first matching route will handle the page-request.

  Or perhaps register a route for civicrm/contact/view/someaction

If I understand correctly, I believe this is what you want.

Since you mentioned civix, look at Create a Module Extension for instructions to "Add a basic web page". It describes the command civix generate:page <ClassName> <web/path>, which will generate scaffolding for a new route.

Aside: When I first read the title, I interpreted the question to mean "How code different handlers for (GET/POST/PUT/DELETE) HTTP requests?" In case that really is the question: Civi's router doesn't distinguish between HTTP verbs. You can just define one route and then use something like switch($_REQUEST['REQUEST_METHOD']).


Handling registration of multiple participants for an event?

This by default is not available in CiviCRM ATM. You can alter the message template under System workflow message for 'Events - Registration Confirmation and Receipt (off-line)' to include additional details. If you are good in smarty variables than you can use api to fetch details like additional participant or payments and include it in your message template, or you can create extension to
 implement tokens and tokenvalue hook to add tokens and process the value when rendering message template before it is send to user.


Drupal Views Field: Relationship Type B-to-A?

It is correct that not all fields from the CiviCRM RelationshipType entity are available in the the views by default. The socialistic party in the Netherlands had the same problem. And I created a drupal module for them to fix this.

You can find the module at https://github.com/SPnl/nl.sp.drupal-civicrm-views-enhancement

This module adds the name-a-b, label-a-b, name-b-a, label-b-a, contact-type-a, contact-type-b, contact-sub-type-a, contact-sub-type-b, description, is-reserved, is-active to drupal views.


What is the GuzzleHttp\Psr7\Uri class, and is its absence in Windows the death knell to CiviCRM under IIS?

.

cd to PHP install directory.
composer require GuzzleHttp/psr7
Add this to CiviCRM.settings.php: require_once $_SERVER["PHPRC"]. '/vendor/autoload.php';


Avoiding automatic creation of civi contact upon drupal account creation

There is no way via the standard config to do this afaik. In theory, if the drupal contact that is created matches a unique email for a civi Individual (that has no drupal user yet) then the match should be made.
Otherwise you have to drive that type of clean up via your dedupe workflow.
Also just spotted you said Organisation. So in theory, again, Drupal users can only be Individuals - since organisations find it hard to use the keyboard. Perhaps that is part of the issue you are needing to resolve?


Registration confirmation email uses wrong From email address

The email address which is used by default as the 'Receipt From' address, in the 'Register Participant' back-end form is the FIRST email address (with the highest order) defined in the 'FROM Email Addresses' list. NOT the one that is marked as default.

Moving the address I wanted to use by default, to be the first one on the list - solved the problem.


How to include an opt-out link (with token) in a reminder?

This can't be done - because that token was created with CiviMail in mind.  There was a sense that scheduled reminders wouldn't be used for something that required an opt-out - but of course, people always want to use the software in new and interesting ways!

Unfortunately, I don't think you're going to get this one unless someone writes an extension to do so, or submits a patch to core CiviCRM.


Can CiviCRM set up an event registration on a separate server?

CiviCRM profiles still have HTML snippets, which you can post on another website. They can be used for Mailing subscription forms, but if I'm right not for event subscription.

Other options I am thinking about would be:

2 sites, 1 CiviCRM
http://wiki.civicrm.org/confluence/display/CRMDOC/Multi+Site+Installation
So you are using CiviCRM with 2nd site, and only form submission via site 1
Creating your own form on the front end site and connect with CiviCRM via the CiviCRM API


Update Reports not available after Upgrade to 4.7.10

This functionality has been moved to the action drop-down list.


Cannot get the import of employer-employee relationship to work

Stefan - in order to rule out it being a bug with your set up I would recommend you take an equivalent file and test on the Demo Site.

I just created a file with 3 cells

Peter | Davis | Acme

I had already created Org = Acme in http://dmaster.demo.civicrm.org/

The import ran as expected.

Acme now has an 'employee' called peter Davis


Is smart/fuzzy searching possible in CiviCRM?

This feature exists. It is part of MySQL and called collation. You can read about the background on https://dev.mysql.com/doc/refman/5.7/en/charset-collation-effect.html .

In my test database a search on Nandor returns Nándor. Reason last_name column is defined as

 `last_name` varchar(64) COLLATE utf8_unicode_ci DEFAULT NULL COMMENT 'Last Name.'

and the collation utf8_unicode_ci defines them to be the same.

Altering the setting with

ALTER TABLE civicrm_contact MODIFY last_name varchar(64) COLLATE latin1_bin;

has the effect that they are not considered the same anymore.

What is your collation setting?


Self-service cancellation from a registered event seems to be broken

Can you try reproducing on https://wpmaster.demo.civicrm.org/ (I did try and wasn't able to).
Looks like its a environment issue. Could you please check your htaccess or server config? Or WP permlinks?


How to create a relationship if a contact marked with multiple subtype?

I am not sure if I understand, I have a relationship on my install between subtype 'Suplier' and subtype 'recruiter'? Can you explain what is different?


Go to Manage Events

Find the Event

Click on Configure and then to Fees and set the Price Set there


You can find the list of required permissions here: https://docs.civicrm.org/sysadmin/en/latest/requirements/#mysql-permissions

You might want to check out some of the options for hosting here https://civicrm.org/partners-contributors?country_1=All&services=Hosting&language=All&cms=All


If I've set up a Financial Type of In-Kind Donation, how should I properly set up the required Payment Instrument?

In order for the 'In-Kind' financial account to show as an option when you setup a new payment instrument it needs to be setup as an Asset account.

You should review the account relationships (under Financial Types) to make sure they meet your needs.

Depending on your accounting setup and reporting requirements I recommend looking closely at this setup to assure you get the results you require.

Hope this Helps!


Use Drupal Views to select Organisation and display contacts with a particular relationship to Organisation

To create a Drupal relationship in a View for contacts A - B or B - A you need to add 2x Drupal relationship.

In the case of starting with the Org assuming it as at the B end of the relationship, first you choose the option that says

CiviCRM Contacts: CiviCRM Relationship (starting from Contact B)

and configure that with the relevant Relationship Type

Then you choose

CiviCRM Relationships: Contact ID A

and use the relationship you created above to Join contact A via the relationship to contact B.

Then as Laryn says, select a field for DisplayName and tell it to use the second of these relationships (probably only one that shows in that context) and bingo!


Mandrill - webhooks for two different sites?

If you must use the same account on both environments, Drupal/CiviCRM hooks could potentially support this? (All of this answer is likely more work than just using the provider's supported test mode, though!)

You can pick any hook that fires before Mte.callback gets fired, and trigger rejection / invalidation based on any of the incoming data including the secret key or contact details in the request.

CMS boot hooks (eg Drupal hook_init) or CRM config hook (hook_civicrm_config) happen early but on many requests so will add overhead; if possible I'd do this as late and specifically as possible - hook_civicrm_apiWrappers could be just the ticket if it works for this usage? Alternatively you could just throw some interception in settings.php / civicrm.settings.php / environment-specific settings.development.php.

If the secret keys aren't suitable, you could look for test-specific properties of the submitted contact data.

That might look like,

// Lives in settings.php so it's not in your committed code.
$mandrill_secrets = [
  'development' => 'devkey',
  'production' => 'livekey'
];

Boot time: obtain current environment, put in $environment:

Drupal environment module
strpos($_SERVER['SERVER_NAME'], '.demo.example')
Whatever you want to use ...

Before CiviCRM has a chance to respond to civicrm/ajax/mte/callback: If the supplied secret doesn't match the current environment, unset it or make it invalid.

if (isset($_GET['mandrillSecret']) && $_GET['mandrillSecret'] != $mandrill_secrets[$environment]) {
  $_GET['mandrillSecret'] = 'invalid';
}


How can I create a copy of my CiviCRM site?

There are some instructions at https://docs.civicrm.org/sysadmin/en/latest/misc/switch-servers.

The wiki page referenced in a couple similar questions is still there but getting out of date, and there's something wrong with the styling at the moment, but it's still legible: https://wiki.civicrm.org/confluence/display/CRMDOC/Moving+an+Existing+Installation+to+a+New+Server+or+Location


The install instructions at https://wiki.civicrm.org/confluence/pages/viewpage.action?pageId=86213770#SettingupaSMSProviderforCiviSMS-twilio say

In Twilio account settings, go to Numbers and click on the number you want CiviCRM to "listen to". That will open configuration settings for that phone number. Under Messaging, change Request URL to http://yoursiteurl/civicrm/sms/callback?provider=org.civicrm.sms.twilio with HTTP POST

So if you remove that url it should stop posting inbound to CiviCRM.


There is no setting to have the same password for all people signing in. If you have a CiviCRM installation that is accessible from outside your domain in any way I would strongly advocate you do NOT allow the same password for everyone. All security and integrity recommendations would mention that you do NOT allow all your users to have the same password?


Is there a way to automate event feedback using Civi and Drupal webform?

We could create an option to disable the unregistering from events as this also solves the problem that if multivalue widgets are enabled for multiple sets of event fieldset, they do not work together well. This way we can get a better control towards the behaviour, also makes the solution possible for any widget.

Regarding the loading event form URL, I think it will also be good to become a checkbox under "Event Registration Options" as people might not want to allow users to change some event setups through URL freely.


How to I access the A/B testing features after upgrading to 4.6?

The A/B testing features come with two menu items. For me, they weren't showing up for some reason, even after rebuilding the menu by visiting civicrm/menu/rebuild&reset=1

I don't understand why this worked, but I did the following:

Go to "Admin" > "Customize Data and Screens" > "Navigation Menu"
Expand the Mailings item and you should see "New A/B test" and "Manage A/B tests" at the bottom.
For each of these two items, take the following steps:

Right click on the menu item and choose "Edit"
Change the # character in the URL field to something else like foo.
Save. Then edit again, and change back to #


ezcMailParser not able to retrieve bcc from a mail

In my experience, reading the Bcc field is not a reliable source of information, because there is not always available data. Thanks to your question I checked the RFC in response to your question and learned why!

What's happening

See https://tools.ietf.org/html/rfc2822#page-22

  The "Bcc:" field (where the "Bcc" means "Blind Carbon Copy") contains    addresses of recipients of the message whose addresses are not to be    revealed to other recipients of the message.  There are three ways in    which the "Bcc:" field is used.

  In the first case, when a message    containing a "Bcc:" field is prepared to be sent, the "Bcc:" line is    removed even though all of the recipients (including those specified    in the "Bcc:" field) are sent a copy of the message.

When sender and recipient are on different servers, this is the behaviour you'll observe. (Outlook.com => Gmail.com result)

  In the second    case, recipients specified in the "To:" and "Cc:" lines each are sent    a copy of the message with the "Bcc:" line removed as above, but the    recipients on the "Bcc:" line get a separate copy of the message    containing a "Bcc:" line.

  (When there are multiple recipient    addresses in the "Bcc:" field, some implementations actually send a    separate copy of the message to each recipient with a "Bcc:"    containing only the address of that particular recipient.)

When sender and recipient are on Outlook.com, this is the behaviour you observe. (Outlook.com => Outlook.com result)

  Finally,    since a "Bcc:" field may contain no addresses, a "Bcc:" field can be    sent without any addresses indicating to the recipients that blind    copies were sent to someone.

So - it's not a difference in Outlook vs GMail behaviour, so much as a difference in how MTAs handle internal and external deliveries. I still would not expect to see other Bcc recipients appear though.

See also this similar question/answer.

How to handle this

My take is: if you're parsing an email and the receiving address is not in To or Cc, it’s a fair bet that it was either Bcc'd or the receiving address is the final recipient of an email alias.

Beyond that, don’t expect to know who’s in the Bcc field - that’s what it’s for.


4.7.28 upgrade gives false warning that my resource URL is not correct

after chasing my tail for a while, I finally realized that the check for resource url is not done by the browser in a way that would pass along other validation credentials.

This led to the resource url check, which tries to load the small arrow image used in the civiCRM admin menus, to fail in my case because all non live/production sites are behind htaccess passwords.

When the update was moved to a publicly accessible url, the resource url check worked as expected.


Financial Type on Contributions - Receipt (on-line) template

In your question you state "We're not using Price Sets." In that case you must have multiple contribution pages, one for each financial type.

You can edit the online contribution receipt to include something like:

{if $contributionPageId eq "4"}

      {ts}Donation to General Fund{/ts}

{elseif $contributionPageId eq "3"}

      {ts}Donation to Child Sponsorship Fund{/ts}

...

{/if}

I would place it in the receipt table just under the "Payment Details" header.

I realise it is a somewhat rudimentary solution, but "quick and dirty" is effective if you are struggling with tokens.


Authorize.net Automatic Recurring Billing (ARB) has stopped working

All the payment processors have been tightening up security, especially with regards integrations between systems.

My first inclination would be to check if the SSL postback that Authorize.net uses has the correct secure protocols set up.  Specifically, you should be sure that your server is configured to accept TLS 1.2 connections. Check with your hosting provider if necessary.

If this fails to help, I would recommend that you reach out to Authorize.net to see what information that may have in their logs with regards to the failure.


Installed CiviCRM in Wordpress via ftp, but it doesn't appear in plugin directory

I believe the issue might be what Lesley is pointing out at the end of the comment, regarding the folder structure.
In order for WordPress to identify a plugin, the plugin shouldn't be in a sub-folder, it could have happened that depending on the zip/unzip software you have used to extract the plugin, the civicrm folder (inside your /wp-content/plugins folder) might look like:

civicrm-4.6.8

civicrm

civicrm.php
uninstall.php
civicrm
includes
assets
...

When it should look like:

civicrm

civicrm.php
uninstall.php
civicrm
includes
assets
...


how do you include email as field in all the contribution reports in Civi CRM

If you are not seeing an option to edit the report columns/ filters etc you might be missing a permission


Norris, I think you might be right. I was just testing some code and dumped out the raw response from the Yahoo geocoder and got this message:

  geo.placefinder table is no longer supported

Might be time to revisit our Yahoo integration.


"Failed to authenticate key" when posting to REST api

Turns out the problem was that I was calling curl without putting quotes around the url.


HTTP 500 error trying to import contacts

I am switching to DigitalOcean. Works fine there. Bye bye Arvixe.


Your questions are not provider specific and you didn't specify one, but if you are using Google, it looks like the documentation you reference is a bit out of date with regards to Google's requirement for API keys: the use of API keys was optional until changes recently went into effect in the Google Maps Platform. This month's Cividesk newsletter includes an article that details what needs to be done for Google APIs to continue functioning properly - you'll find that article HERE.

That said, I copy and paste your questions and intersperse them with my responses below and include links to resources where you should find more detailed instruction:

Q1: How long does it run each time it is triggered? (max exec time?)

A1: It depends on  how you run the cron - the answer to THIS question should point you in the right direction.

Q2: Can I throttle the amount of contacts it attempts to code for each run? I want to avoid it running non-stop and killing the server by overloading it.

A2: You will find job parameters detailed HERE (including throttle and limiting to specific contact IDs).

Q3: I don't like to have more than one street address field (disabling supplemental 1,2,3) as users do not consistently input the their data right if you give them too many options. However, is it okay to include APT numbers etc in the main street address field and it still geocode reliably? I've done a few tests on records but not with a large sample.

A3: The basic rule of thumb is to specify addresses in accordance with the format used by the national postal service of the country concerned. Additional tips on address formatting can be found HERE. CiviCRM includes an optional plugin for interfacing the the United States Postal Services (USPS) Address Standardization web service, details of which you will find HERE.


Graham, there are loads of tutorials on how to use jQuery. The CiviCRM approach would be:

Identify the ID of the field to hide using FireBug (or the inspect element function of your browser)
Add a template with the jQuery required to hide the identified id's which will be something like this:

{literal}

    cj(document).ready(function() {
      cj('#firstTestID').hide();
      cj('#secondTestID').hide();
    });

{/literal}

Add a hook in an extension to add the template with your hides to the template with something like this statement:
        CRM_Core_Region::instance('page-body')->add(array('template' => 'GroupProtect.tpl')); OR add the jQuerys to a .extra template (in the documentation https://wiki.civicrm.org/confluence/display/CRMDOC/Page+Templates)

Does this help?


Deduping between Individuals and Organisations

You can change a contact's type either by the API or (safer) using the contact-editor extension.  Obviously once you fix the types the dedupe rules will work better for you - but I don't know of an easy way to search for dupes across types.


How to send a contribution receipt through a text message when receiving a donation

You can send text messages with CiviCRM. Look at Setting up an SMS provider!
But you want to send a message the moment you register a contribution. The extension CiviRules can do this task for you. It allows you to configure an action (for example sending a text message) that must be executed when a predefined event happens (for example, adding a contribution). See the [CiviRules Cookbook] (https://wiki.civicrm.org/confluence/display/CRMDOC/CiviRules+Cookbook).


Creating Invoices for Membership Renewals that are coming due

If you need to create Invoice for future contribution - still you need to create the contribution for future date (Received date) and set the contribution as Pending

This will allow you to create the Invoice and once you have received the amount then you can set the contribution to completed - I guess this helps


Filter in report mixing is one of and is not one of

You could use the include exclude custom search to get the data you've described. If you wanted to include only those in a report then probably you could create a smart group from the results and use that in the group of choice.


Drupal views: Civicrm drupal_id entity missing after update?

The problem has disappeared.

Ehm, I cleared caches. Fairly sure I cleared caches the first time, but I did it again, now using the UI, and all looks normal now.


Error importing custom date fields when the day of month is above 12

In the CiviCRM engine the usuall date format is YYYYmmdd hhmm. You could try that date format. You could leave out the hhmm part.

Explenation of the format
- YYYY = year in four digits (2014)
- mm (months in 2 digits, 01 for january)
- dd (day of month in 2 digits e.g. 21)


I would suggest to try telling CiviCRM what is your base template.php pasting this in your functions.php

add_filter( 'civicrm_basepage_template', 'my_basepage_template' );

function my_basepage_template( $template ) {
return 'page.php';
}

Replace page.php with the page template in use by your theme.

If that doesn't work, try changing to the default WordPress theme (Twenty Fifteen) and try submitting the form in the Contribution page you have created and report back.


Look at the bottom lines here to get you started:
https://github.com/civicrm/civicrm-core/blob/master/CRM/Mailing/Controller/Send.php

i.e.
$clone = civicrm_api3('Mailing', 'clone', array('id' => $mid));
and then follow thru the rest of the code.


CKEditor not fully functional in CiviCRM 4.6.11

Take a look at
Is there a way to enable or install the full version of CKEditor in CiviCRM 4.6.x?
as well as
Big Changes To WYSIWYG Editing In 4.7


Clicking Fields in Front-end Profile View Gives Inconsistent Results

When you setup your fields set visibility to "Public Pages". Otherwise in the detailed view the data will show as a link which when clicked will re-run the search based on that value.

Websites are turned into a hyperlink by default.

Hope this helps.


How do I hide wordpress and get pretty urls

If you don't want or need a CMS, Drupal works a little better than WordPress for this.  WordPress wants to make it as easy as possible to run a blog, so it makes decisions for you that can work against having a minimalist framework.

On the other hand, you can easily disable a ton of Drupal's functionality and even make CiviCRM the homepage.  Direct URLs to CiviCRM contacts aren't quite as pretty as you like, but they're much more concise than WordPress or Joomla: foo.org/civicrm/contact/view?cid=1234&reset=1 brings up contact 1234.

Working with Drupal also gives you a lot more flexibility in your page layout: you can use any theme, and there are a number of blocks (widgets in WP parlance), unavailable in WordPress, for CiviCRM admins that let you view the most recent contacts, quickly add new activities/contacts/etc., and more.

A friend mocks Drupal by saying that it's like going to the car dealer and being asked, "Would you like a steering wheel with that?  How about a brake pedal?"  WordPress makes it easy to build a basic website because it makes a lot of assumptions.  However, if you just want a stripped-down framework to render CiviCRM and let people log in, Drupal's lack of assumptions will make it a lot easier.


Show different events to different user groups

I solved this by:

Enabling the PHP module that comes as part of Drupal 7 core but is disabled by default.  Enabling this module creates a new text format called "PHP Code"
Creating a new page and setting the text format of that page to "PHP Code".  I called the page "Calendar of Events".
Putting the following code in the body of that new page:

  <?php
     $role = user_role_load_by_name('My Role');
     if (user_has_role($role->rid)) {
       header("Location: https://mysite/civicrm/event/ical?
       reset=1&list=1&html=1&type=7");  /* Redirect browser */
       exit();
     }
     ?>

This solution requires you to have a separate Drupal role for each group of users you want to show different events to.  It also requires that you have defined different event types.  So for example, users in the group Managers would see events that have event types such as "Manager Meeting", "Employee Meeting", and "Very Secret Meeting".  You define the event types in CiviCRM's Administer menu for CiviEvent.  The &type=X is what defines what event types will be displayed; the X value comes from the event type list in CiviCRM's CiviEvent administration.  You can comma separate the &type=X,Y,Z for example to show one user role multiple event types.


CiviCRM and WordPress on different hosts?

There are multiple ways to do integration with CiviCRM.
CiviCRM and WordPress on the same server.
There are certainly benefits that come with hosting CiviCRM and WordPress together. Those benefits are a distinguishing feature compared to other CRMs that often lead folks to pick CiviCRM.  For instance, using Caldera Form-CiviCRM integration, or the CiviEvent widget.  Donation, membership and event signups automatically inherit your site's theme.  A shared login system.
CiviCRM and WordPress on different servers
Many folks choose to keep their website and CRM separate.  Sometimes the CRM contains data that necessitates higher security. Sometimes a parent organization offers CiviCRM to its branch offices, who wish to maintain their own website but use CiviCRM.
You can still do a good amount of integration.  There is Remoteform to do remote event/donation pages and email signups remotely (though not yet with 100% of features of a same-site page).  Contact Form 7 CiviCRM integration allows remote form submission.  I have a proposal in to synchronize events from CiviCRM to a remote (or local) WordPress site running Event Calendar Pro which I would release publicly if funded.  However, there's no denying these are more advanced configurations which are more difficult to set up.
The short answer
Ultimately CiviCRM requires a CMS, even as a "shell" to manage users.  If you're going to go with a host capable of running CiviCRM anyway, there's no reason not to switch your WordPress site to that same server and likely save a few bucks by canceling that hosting.


Is it possible to customise report export file names?

The code currently puts all pdf's under CiviReport.pdf (and similar for csv)

Would be good to use the report title as the file name. The code to make the change is here:

CRM/Report/Form.php

search for CiviReport.pdf

If you can make the change, please file an issue and submit a PR against master so it can be included in the next release.


Unable to Change Selections on Event Registration, Error: "Expected one Contribution but found 0"

This seems to be resolved with the commit from March 2, 2018 here: https://github.com/civicrm/civicrm-core/commit/b512c92fe8bbe9a8ef71ae9ba5adbcfe7500d81c

With that change applied, we longer receive the error and everything works as expected.


Can civi pre-authorise funds for events and is only charged the amount if the registered participant is a no-show?

Yes, the answer to this is - it depends on the Payment Processor that you use whether you can do this. With the CiviCRM iATS extension you could have people schedule a recurring contribution with one installment for a date in the future (perhaps the day after your event). What this will do is tokenize the credit card; on the future date the token with an amount are submitted to iATS for payment processing. So all you need to do is then make sure you cancel the recurring series ahead of the future date (for people who did show up).

We developed this for a number of reasons, including the abilty to tokenize card for $1 ahead of fundraising/silent auction events. Then on the evening of the event -> you can process the card on file for any $amount for a fast checkout from within CiviCRM (and of course send a receipt to the donor).


How to generate a report on VAT collected (HST in my case)

Keith, Welcome to SE. Did you try extended report extension? It provides additional reports with useful columns example

Extended Report - Bookkeeping with extra fields

HTH

Pradeep


Remove required field in Grant Application

I don't think there is a non-coding way to do this. You could try to manipulate the UI with an extension to accept a submission without an amount value. But there may be reasons in the business logic why an amount is required, i.e. you may experience follow-up problems if there are grant records without that value in your database.

So unless this is a serious problem for you, I think your workaround is the best way to go.


The error seems to come from something unrelated to civi:

plugins/section-widget/olt-checklist/loader.php

Can you try to disable this plugin and see if it works?


Changing template for event/contribution forms

Add the following snippet to your theme functions.php replacing page.php with the template you want to use.

Note: you have to be using >= v4.6 of CiviCRM in order to use this.

add_filter('civicrm_basepage_template', 'my_base_template');

function my_base_template($template){
    return 'page.php';
}


CiviCRM admin screens don't display icons/special chars

Based on comments the problem was civicrm.settings.php still had old settings.


How to update "wpLoadPhp" setting for CiviCRM WordPress when moving/migrating installation?

You can safely ignore this setting unless you're hitting scripts in civicrm/extern or civicrm/bin or using cv directly. In that case I'd recommend switching to routes that go via WordPress e.g. the REST API or wp cv instead - they are much more reliable in WordPress.


Converting My Data to CiviCRM data formats

one thing I have found has helped me and many others is to do an export from CiviCRM of a sample set of the fields you are going to import, then you can see how civicrm expects fields, tags and other data structures.


Give anonymous users access to a report's contents?

How about creating an ACL(View only) on a group and restricting the report based on custom permission?
Isn't creating a view or report using dataprocessor not an option?


Why doesn't the count of '0' change on Search Results when i select some records or 'all on this page'

A bug had already been filed on JIRA and it is listed as FIXED for 4.6.17


I usually change the field type to be 'Note' when I need a longer length - then you specify length and number of lines - and it's expandable - if the user needs to add more they can resize the box.


Are there Realease Notes when a new Release is published?

You should find release notes for all versions linked from https://civicrm.org/blog/tags/release (this page is linked from the download page). Maybe they haven't added in the latest yet: 5.18.0 not there either

https://lab.civicrm.org/dev/core/blob/master/release-notes.md links to all the release notes including 5.18.0 and 5.18.1


Upgrade Issues - Events links going to home page

Plug In AGP Font Awesome Collection was conflicting with CiviCRM, no idea why, but Disabled it and it is now working great.


Where to find the path and the name of the tpl file in source code in 4.7.16

In current 4.7 you need to enable debugging for the tpl to be shown in the source.  Go to Administer > System Settings > Debugging and Error Handling then select Enable Debugging and save.  Remember to disable it when done.


Word Press Install Missing civicrm.settings.php; dashboard unavailable; no menus

I dug further into the changes that WPE does to the file structure.

It looks like the new magic method of determining the file location using [civicrm.files] is failing. See https://github.com/civicrm/civicrm-core/blob/master/Civi/Core/Paths.php

I am able to get both 4.6.13 and 4.7.2 running on WPE by adding the following to my civicrm.settings.php file right after the opening <?php tag:

global $civicrm_setting;
$civicrm_setting['Directory Preferences']['customTemplateDir'] = '/nas/content/live/kcrist/wp-content/civicrm/templates/';
$civicrm_setting['Directory Preferences']['customPHPPathDir'] = '/nas/content/live/kcrist/wp-content/civicrm/php/';
$civicrm_setting['Directory Preferences']['extensionsDir'] = '/nas/content/live/kcrist/wp-content/civicrm/extensions/';
$civicrm_setting['URL Preferences']['extensionsURL'] = 'http://kcrist.wpengine.com/wp-content/civicrm/extensions/';
$civicrm_setting['URL Preferences']['imageUploadURL'] = 'http://kcrist.wpengine.com/wp-content/uploads/civicrm/persist/contribute/';
$civicrm_setting['URL Preferences']['userFrameworkResourceURL'] = 'http://kcrist.wpengine.com/wp-content/plugins/civicrm/civicrm/';

This is based on the following article  https://wiki.civicrm.org/confluence/display/CRMDOC/Override+CiviCRM+Settings

Give this a try and I will create an issue for the [civicrm.files] issue.  edit- Issue updated https://issues.civicrm.org/jira/browse/CRM-18009


Real-time dashlet of contacts without certain activity

If the smart group approach is working other than the update latency, you could reduce the Smart Group Cache Timeout at Administer > Customize Data and Screens > Search Preferences.  Beware that it is likely to increase load on the system, but that may be worthwhile in your case.

See https://docs.civicrm.org/user/en/stable/organising-your-data/smart-groups/#smart-group-caching


SOLVED CiviMobile won't login "please install CiviMobile in your CiviCRM"

The Civimobile team was great. After updating the extension and app to the latest version 4.1.1 the app works like a dream.


CiviCRM 5.12.0 - Case API returning an Analyzer object containing XML and JSON. Only want JSON

Not a direct answer, but following on from the comments here are some more things you can try.

If you haven't already, check the civicrm log. Maybe there is something helpful there. For example maybe there is a recoverable error happening but it dumps some output to stdout instead of the log, which during a REST call will be part of the response output.
It's possible you have some code or an extension that implements the civicrm_caseChange hook and then does some debug output. When looking or grepping be sure to look in any custom php and extension folders defined at admin -> system settings -> directories.
Use diff -r or kdiff or something to compare your civicrm tree to a fresh unzipped 5.12 download to see if there's any differences.
It's definitely print_r output, but it might be coming indirectly from something that calls 'CRM_Core_Error::debug(' or 'CRM_Core_Error::debug_var(', so can try grepping for that. Note I've included the opening bracket in the search string since I'm thinking that will give the least false matches.
Try disabling some extensions one by one.
Run a php step-debugger to see exactly what step it gets output and where it's coming from. This will be time consuming, but you will almost certainly find it. If you can reproduce the problem on a local development copy of the site it will be slightly easier to set this up using that copy.


CiviCRM profiles / Caldera Forms: What to use when?

This might not be the same, but the information at this link comparing drupal civicrm webform to profiles might be a similar starting point:

https://docs.civicrm.org/sysadmin/en/latest/integration/drupal/webform/#compared-to-civicrm-profiles


Jitendra's comment is correct - it should be posted as an answer!

As for your second error, that's caused by skipping the first error.  The SQL for 4.6.alpha1 includes the command to create the "civicrm_recurring_entity" table.  When you skip the rest of the 4.6.alpha1 SQL, you're creating the circumstance that leads to the second error.


How to get a/b testing on the number of unique open?

I suspect this is a code change and should be made at the api level:

api/v3/MailingAB.php, function civicrm_api3_mailing_a_b_graph_stats

(which in turn calls function in the CRM_Mailing_Event_BAO_Opened class)

Would be good to fix the definition of opened as you suggest across both A/B stats and the reports since that is the accurate and valid number


How to Clone a Price Set Field and Its Options

Sorry - your best bet is a big pot of coffee and just getting it done via the GUI! That's because there are quite a few places in the database that are touched when storing price options. Even with phpMyAdmin access (like you have) it's going to be a lot of copying of rows - then updating IDs - carefully linking them properly to the other tables involved in Pricesets. Something is likely going to be out of place. Best to use the GUI.


You do need permissions like import contacts to import contacts. You will need to ask for that permission to be added to your current role.

The permissions for various import functionalities are defined in CRM/Core/xml/Menu/Import.xml


Message is localized but message template is not

For the name_xxx check your settings at Administer - CiviCase - CiviCase settings. There's a setting called "Redact Activity Email" that changes real names for privacy.
And yes the email template used to send to activity assignees is called "Cases - Send Copy of an Activity" even for regular emails.


CiviCRM error on Joomla 3.x - There are no public mailing list groups to display

Check your directory and resource URL in the Administer CiviCRM section.
Make sure your permissions are correct for the user.
Clear the cache folders in Media TemplateC
Make sure your going to http:// or https:// not to http://.www


Shouldn't duplicate group titles be possible?

I suspect the reason is that the requirement that names be unique predates the ability to have parent groups.  That said, allowing non-unique groups would complicate UI design.  For instance, I've seen the scenario where someone has permission to view a parent group but not a child group.  In your case, if someone did that, they'd have no way to differentiate between Customers A and Customers B.

That said, I don't think there's any other compelling reason not to drop the unique index from the name column in civicrm_group and see what happens.  Don't forget to create a new non-unique index once you delete the old one!


how do I best configure this complex event registration scheme?

I would approach this roughly as follows:

Early bird registration fees can be handled either through the standard pricing options or using a price set. given that you want to have the additional banquet option using a price set would be the way to go, and simply set the start and end dates for your price fields accordingly.

All of the participant roles that you have defined can be handled in one of two ways: Either register all of these people via the back end so that you have control over whether they pay or not. Or, if you want them to register themselves through the website then set up suitable discount codes (using the CiviDiscount extension) and distribute those codes accordingly.


Using HTML snippets for Forms no longer an option?

Looking at the release notes for CiviCRM 4.7.11 there was a security issue that was fixed to do with these external snippets: https://civicrm.org/advisory/civi-sa-2016-17-manage-csrf-overrides-for-external-profile-forms

The release notes state, though, that existing installations should not have been affected by the update.

I would recommend that you look in the settings (Administer => System Settings => Misc) for the QF key security on profile forms.

If this setting has been enabled then it sounds like a bug - as the release notes suggest it should not have been enabled when upgrading an existing installation. If so then report it on the issue log and comment back here with a link =]

It is certainly worth reviewing that security issue though, which discusses the implications of using HTML snippets (and offers some preferable alternatives).


Event registration using External Id to match contact.

Mike,  without a customization you can not do this with events/profile.  I am not sure if it can be done using a webform (the webform bypasses the event submission rules)

You can test this, not on your production site, by setting your unsupervised rule to only consider external_ID and see if it works.  I'm curious.   If that works, then you should be able to use force that webform to use a different rule, but I believe that would also be custom.


Installs fails with Error Database does not support creation of triggers - User has TRIGGER privilege

In the MySQL CLI, run:
SET GLOBAL log_bin_trust_function_creators=1;


How can a member view past and present pledges?

You can give your contacts (who have a user login) access to their Contact Dashboard - and once there they can see Pledges

If you don't have CiviPledge enabled go to Admin > System Settings > Enable components.

If you have enabled it but don't see it you may need to go back to your Permission settings and enable those.

You will also find that when you add a Pledge it offer a SelfService Payments Page option.

Maybe worth reading the chapter in the civi book


How can I automatically redirect anonymous users to a login page?

A solution is to restrict access to the WordPress page that you are inserting the directory short code into. A plugin such as 'Members' allows you to restrict access to pages & posts by user role, customize the message visitors see when they do not have permission and provide a login widget.


As you have discovered Jenni, changing any of the start offset and end offset values in the date preferences settings do not reflect participant and event dates.

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

So unfortunately, there is no option to make these amendments via the UI.

However, CiviCRM does allow you to manually input dates/years well before 1999/2009 which are accepted, and the records do get saved without an error –

The same method also works when importing participants.

This is a sample CSV I’ve used which had a registered date of 1966 which imported successfully –


How can I chase up mailing list subscribers who don't confirm their opt-in?

Taking answer from comment from @eli lisseck... Try using {action.subscribeUrl.gid} where gid is your group e.g. {action.subscribeUrl.5}. More generally, however, beware of assuming that these people have indeed chosen to signup rather than had their emails added by a bot/spammer. Trying to work around the double opt-in will make your site non-compliant with anti-spam legislation in the US and elsewhere, and will make your site more likely to get blacklisted as a spammer.


If there is a contact (y) with that ID already then one option via the UI would be

create a new contact (z). Then merge z and y so that z inherits all the information for contact y
retrieve y from trash, and go through the same steps of merging y with x (your original contact) such that y inherits all the info from x.

Outcome should be that your original contact will now have the ID of y.


Should civicrm_post hook receive populated Relationship object following relationship enable/disable in UI?

Sorry but it's the intended behavior. Generally pre and post hooks just pass whatever happens to be loaded in that object rather than taking the performance hit of doing a full database load for the sake of a hook which may or may not be implemented and may or may not care.

I recommend not relying on the object being passed to pre/post hooks and doing your own api lookup using the provided id.


How to disable one checkbox in a group based on text box having value

You can use jQuery in the webform to hide/display the checkboxes based on the contents of the membership id box.  A simple implementation could just check whether the membership box is blank, but then any random stuff would show the member options.  A next step would check the membership id is of the right format.  Even better would be using the API to check the validity of the id entered.

That will let you display what you want but does not prevent a determined user displaying the hidden options so you should probably add a validation rule as well.

Also, if the person filling out the form is an existing contact, you could use the auto-populate feature for existing contacts to get the webform to display the membership number directly.


Are log tables updated during an upgrade?

See Are the logging tables upgraded:

  yes. you disable logging during upgrade (the upgrade changes are not
  logged)

  when u reenable logging, it checks for schema differences and makes
  the needed changes to the logging table

Since version 4.3, logging should be automatically disabled and re-enabled during upgrades: see Upgrade should disable logging and triggers.

This suggests the possibility that if logging remained enabled during an upgrade prior to 4.3.0, the structure of logging tables may not have been updated at that point.

It also suggests that disabling and re-enabling logging ought to bring the logging schema up to date.


It is a bit complicated. You will need to do at least 2 different imports, with external IDs. The CSVs for imports would look at this
1st import
first_name, last_name, extID
Jane, Doe, 1

2nd import
first_name, last_name, extID, Spouse-extID
John, Doe, 2, 1

Take a look at CiviCRM 5.29.0 - import relationships


You can Follow this discussion to clarify your Stripe Checkout integration
which talks about what your question requests


SOLVED - Cron setting for CiviCRM 4.x.x on Drupal 7.x via cPanel Cron admin panel

The cron job you have there looks like a Drupal cron job.  You should look at the scheduled jobs wiki page for full details, but in the case of a Drupal site using wget (since that is the direction you're seeming to go in), try:

*/6 * * * * wget -O - -q -t 1 http://mydomain.com/sites/all/modules/civicrm/bin/cron.php?name=username&pass=password&key=site-key

You'll find the "site-key" in the civicrm.settings.php file, and the "username" and "password" correspond to a Drupal user with Administer CiviCRM permission.

You'll see that I have it going every six minutes rather than every 2 hours: you'll want to set CiviCRM cron to run multiple times per hour; you can set specific scheduled jobs to run less frequently from the management page in CiviCRM.


Wrong question was asked; fancy CiviCRM stuff works almost, if properly called via CiviCRM own jQuery methods; pretty strange  CRM.alert in Chrome pops up a default JS alert() message though, so it might be better to use  CRM.status with appropriate parameters

This page helps a lot: https://wiki.civicrm.org/confluence/display/CRMDOC/Notifications+and+Confirmations

Additional reading:

https://wiki.civicrm.org/confluence/display/CRMDOC43/Javascript+Reference
https://wiki.civicrm.org/confluence/display/CRMDOC43/Resource+Reference#ResourceReference-Javascript
https://wiki.civicrm.org/confluence/display/CRMDOC/Ajax+Pages+and+Forms#AjaxPagesandForms-CRM.refreshParent


I don't see a way of doing it without writing custom code

One path would be to create a custom search that has the right sql to contain only the most recent one. This is closest to what you want, but might have a performance impact (eg if you have loads of records/contacts) when civi builds the smart group

Another one is to denormalise and create the same custom fields you have on the activity but add them (as read only) on the contact instead of the activity

and then you write a hook so everytime a new activity is created with these custom fields, it would automatically duplicate them to the contact... or skip the duplicate custom fields on contact and directly add them to the right group if it's your only use case.

So the activities contain all the history, but the latest version is always stored in the contact (or belong to the right group)

This might get a little bit more tricky if you have to handle edge cases (eg what happens if you delete an activity? if you merge two contacts that have activities?)

This might or might not be an issue in your case

Another way to skin that cat would be to improve civirule to allow new triggers on custom fields.

Good luck, writing an extension isn't that complicated if you know php/sql
X+


How to setup bounced processing on CiviCRM for a Gsuite account?

So I just ran into a similar issue. Our bounce handling stopped a few months ago and nobody noticed. We also use GSuite, and our email address appears in a similar fashion in the log. I thought it looked strange at first too, but since we changed nothing and it went from working to not working, I knew that wasn't the issue. I also tried changing the email account password to see if that would fix the problem.
It turned out that Google turned off access for less secure apps automatically, effectively blocking access to the return email account from CiviCRM. As soon as I toggled that switch, bounce handling started working again. This is the link that worked to turn it back on: https://myaccount.google.com/u/5/lesssecureapps?hl=en


what sort of code style errors are you coming up against? CiviCRM's code style is very similar to Drupal's code style. I found some information about setting up NetBeans on CiviCRM's wiki, here:
https://wiki.civicrm.org/confluence/display/CRMDOC/IDE+Settings+to+Meet+Coding+Standards#IDESettingstoMeetCodingStandards-NetBeans

Hopefully these links provide the right answers. Otherwise let's update the wiki page!


You need to cross check each and every path configured in Administer -> System Settings -> Resource URLs. Set them as per your site configurations.

CiviCRM Resource URL : is the URL path to your civicrm directory - Eg http://example.org/wp-content/plugins/civicrm/civicrm
Image Upload URL: is the URL path where your image will be stored. Eg http://example.org/wp-content/plugins/files/civicrm/persist/contribute
Extension Resource URL: is the URL path of the extensions used in your site.

Navigate to Administer -> System Settings -> Directories and set the path as per your needs.

Image Directory: should be the same path as above(Image Upload URL) without the URL part. Eg /var/www/site-name/wp-content/plugins/files/civicrm/persist/contribute
Extensions Directory: same path as set for extensions in the resource URL(without the URL part). Eg /var/www/site-name/path/to/extensions/

Similarly, set all the paths and check if it fixes your site display.


Creating activities in code adds extraneous contact to 'with' field

So I'm fairly sure this issue was actually a dev environment specific issue. The dev database wasn't using the full 'activity' table (as it was so large) and thus creating some oddities.

If I see it again on a live env I'll have to investigate in future though.


Assigning case role to contact in webform- not updating as expected

Rephrased my search and found this question
What determines the suite of Case Roles presented for assignment on the CIVICRM Webform Case Tab?

1st answer talks about relationship names/labels not matching

Newer version of create relationship only allows user to set relationship label. name is auto generated

In this case "Other Professional is". The relationship was assigned the name "Other_Professional_is"

Editting the relationship name  to "Other Professional is", meant that it showed in the case roles.

Don't know if this level of tinkering will have knock on effects anywhere else.


Can I auto update Civi data w/ data from my listserv?

Assuming you mean a discussion listserv, not an announcement listserv (which would allow you to use CiviMail, or Mailchimp/Constant Contact with the relevant integration extension), you have the option of Mailman integration.  This method of Mailman integration requires that you have shell access on the Mailman server, but it works to sync your users from Civi to Mailman.  So if you wanted someone to unsubscribe, they would use a Civi unsubscribe page, and it would remove them from a group, which would in turn cause them to be unsubscribed from the Mailman group.

Ideally this wouldn't require shell access, but unfortunately, most listserv software simply doesn't have an API.  Mailman 3.0 will have an API, but that's been in development for many years.  I'd considered at one point creating a CiviMailman integration module using PHP-Mailman, but at this rate Mailman 3.0 might be out first!


MySQL Tuning: Is Defragmenting Tables safe?

Yes, running OPTIMIZE TABLES on a regular basis is beneficial. I don't think there is significant risk with it. I'd run it on a copy of the DB first.

If you have the memory on your database server increasing the cache and buffer sizes of MySQL is a good thing, IMO.

In the past, I've found the Percona blog quite a useful resource. Also some folks (NYSS) have been using the Percona distribution for improved performance.


How to alter the 'Manage Case' display so that it doesn't break with longer activity subjects

I don't know offhand why there's a hardcoded width, but you could try something like

div.crm-case-caseview-form-block table.nestedActivitySelector { width: auto; }

to override the width setting?


Can you use civicrm for inbound marketing instead of HubSpot?

You can create webforms with CiviCRM to capture the data you're requesting.  With the CiviRules extension, you can easily send automated email on a schedule like you describe.  In fact, CiviRules was originally created to do almost exactly this.


Create an external form to launch a search

The reason was that my form was missing qfKey. This is a CSRF key generated as part of QuickForm forms.
This key must be generated for the particular form in use. By using XDebug in Vim, I was able to find out that the form name must be CRM_Contact_Controller_Search, and that it expects a sequence number too.
So my form is generated as follows:
<?php
// ...
civicrm_initialize();
$qfKey = htmlspecialchars(CRM_Core_Key::get('CRM_Contact_Controller_Search', 1));
$mySearchForm = <<<HTML

<form action="/civicrm/contact/search/advanced" method="post">
  <div>
    <label>Search name or email
      <input type="text" name="sort_name" accesskey="q" />
    </label>
    <input type="hidden" name="hidden_location" value="1" />
    <input type="hidden" name="hidden_custom" value="1" />
    <input type="hidden" name="qfKey" value="$qfKey"/>
    <input type="hidden" name="_qf_Advanced_refresh" value="Search" />
  </div>
</form>
HTML;

Posting here as it took me ages to figure out!


CiviCRM installer reports Warning: CRM_Core_ClassLoader message

I think I may have found the cause? I've just noticed under the Drupal modules list a message to say the PHP version is insufficient (see screenshot). I presume this would hinder the install.


I think you're looking for the ReportTemplate.getrows API call.  You can see examples of its use in the API explorer's built-in help (also available on Github).  More examples exist in the tests folder, since the most common use of this API is to create tests for reports.

UPDATE: As @demerit points out, this answer isn't really correct - but it CAN be :)  All(?) of the info on this mailing report is also available from the "Mailing Summary" report (for the stats) and the "Mailing Detail" report (if you need drilled-down data on click-throughs etc.).  So I recommend Demerit's answer if you're writing an extension, but my answer if you need to collect this data over REST.